diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c75e475f..773454e39 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: - java-version: 14 + java-version: 16 - uses: actions/cache@v1 with: path: ~/.m2/repository @@ -25,12 +25,13 @@ jobs: - name: Build and Test run: mvn -B install --file main/pom.xml -Pcoverage - name: Run Codacy Coverage Reporter + if: github.repository == 'cryptomator/cryptomator' run: | curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial - $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial + $JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar final env: CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} - name: Assemble buildkit-linux.zip @@ -59,7 +60,7 @@ jobs: name: Draft a Release on GitHub Releases runs-on: ubuntu-latest needs: build - if: startsWith(github.ref, 'refs/tags/') + if: startsWith(github.ref, 'refs/tags/') && github.repository == 'cryptomator/cryptomator' steps: - name: Download buildkit-linux.zip uses: actions/download-artifact@v1 diff --git a/.idea/misc.xml b/.idea/misc.xml index eab8a318e..feca1b9ff 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,7 +8,7 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index e07ab285f..d5cf5ea8e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build](https://github.com/cryptomator/cryptomator/workflows/Build/badge.svg)](https://github.com/cryptomator/cryptomator/actions?query=workflow%3ABuild) [![Known Vulnerabilities](https://snyk.io/test/github/cryptomator/cryptomator/badge.svg?targetFile=main%2Fpom.xml)](https://snyk.io/test/github/cryptomator/cryptomator?targetFile=main%2Fpom.xml) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2a0adf3cec6a4143b91035d3924178f1)](https://www.codacy.com/app/cryptomator/cryptomator?utm_source=github.com&utm_medium=referral&utm_content=cryptomator/cryptomator&utm_campaign=Badge_Grade) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2a0adf3cec6a4143b91035d3924178f1)](https://www.codacy.com/gh/cryptomator/cryptomator/dashboard) [![Twitter](https://img.shields.io/badge/twitter-@Cryptomator-blue.svg?style=flat)](http://twitter.com/Cryptomator) [![Crowdin](https://badges.crowdin.net/cryptomator/localized.svg)](https://translate.cryptomator.org/) [![Latest Release](https://img.shields.io/github/release/cryptomator/cryptomator.svg)](https://github.com/cryptomator/cryptomator/releases/latest) @@ -17,11 +17,26 @@ Cryptomator is provided free of charge as an open-source project despite the hig ### Gold Sponsors -[gee-whiz](https://www.gee-whiz.de/) + + + + + + + +
gee-whizProxy-Hub
### Silver Sponsors -[![TheBestVPN](https://cryptomator.org/img/sponsors/thebestvpn.png)](https://thebestvpn.com/) + + + + + + +
TheBestVPN
+ +- [Jameson Lopp](https://www.lopp.net/) --- @@ -65,7 +80,7 @@ For more information on the security details visit [cryptomator.org](https://doc ### Dependencies -* JDK 14 (e.g. adoptopenjdk) +* JDK 16 (e.g. adoptopenjdk) * Maven 3 * Optional: OS-dependent build tools for native packaging (see [Windows](https://github.com/cryptomator/cryptomator-win), [OS X](https://github.com/cryptomator/cryptomator-osx), [Linux](https://github.com/cryptomator/builder-containers)) diff --git a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java index ed278e1ab..2a0a42ecb 100644 --- a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java +++ b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java @@ -47,10 +47,12 @@ public abstract class CommonsModule { @Named("licensePublicKey") static String provideLicensePublicKey() { // in PEM format without the dash-escaped begin/end lines - return "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW" // - + "fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV" // - + "gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE" // - + "r0DzRyj4ixPIt38CQB8="; + return """ + MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW\ + fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV\ + gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE\ + r0DzRyj4ixPIt38CQB8=\ + """; } @Provides diff --git a/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java b/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java index 93f16f755..38bf8e191 100644 --- a/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java +++ b/main/commons/src/main/java/org/cryptomator/common/LicenseChecker.java @@ -33,8 +33,8 @@ class LicenseChecker { try { byte[] keyBytes = BaseEncoding.base64().decode(pemEncodedPublicKey); PublicKey key = KeyFactory.getInstance("EC").generatePublic(new X509EncodedKeySpec(keyBytes)); - if (key instanceof ECPublicKey) { - return (ECPublicKey) key; + if (key instanceof ECPublicKey k) { + return k; } else { throw new IllegalStateException("Key not an EC public key."); } diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java index c73190f38..faca30b94 100644 --- a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java +++ b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java @@ -200,8 +200,7 @@ public class VaultSettings { @Override public boolean equals(Object obj) { - if (obj instanceof VaultSettings && obj.getClass().equals(this.getClass())) { - VaultSettings other = (VaultSettings) obj; + if (obj instanceof VaultSettings other && obj.getClass().equals(this.getClass())) { return Objects.equals(this.id, other.id); } else { return false; diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java index ae1f6aac6..98a6cf21b 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -355,8 +355,7 @@ public class Vault { @Override public boolean equals(Object obj) { - if (obj instanceof Vault && obj.getClass().equals(this.getClass())) { - final Vault other = (Vault) obj; + if (obj instanceof Vault other && obj.getClass().equals(this.getClass())) { return Objects.equals(this.vaultSettings, other.vaultSettings); } else { return false; diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java index a7e422115..3fd6f4e23 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListChangeListener.java @@ -22,10 +22,10 @@ class VaultListChangeListener implements ListChangeListener { public void onChanged(Change c) { while (c.next()) { if (c.wasAdded()) { - List addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).collect(Collectors.toList()); + List addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).toList(); vaultSettingsList.addAll(c.getFrom(), addedSettings); } else if (c.wasRemoved()) { - List removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).collect(Collectors.toList()); + List removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).toList(); vaultSettingsList.removeAll(removedSettings); } } diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java index 984008ba9..b7c10a4d4 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/VaultListManager.java @@ -79,7 +79,7 @@ public class VaultListManager { } private void addAll(Collection vaultSettings) { - Collection vaults = vaultSettings.stream().map(this::create).collect(Collectors.toList()); + Collection vaults = vaultSettings.stream().map(this::create).toList(); vaultList.addAll(vaults); } diff --git a/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java b/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java index 11bfa4e2e..b68d4a631 100644 --- a/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/EnvironmentTest.java @@ -32,7 +32,7 @@ class EnvironmentTest { public void testSettingsPath() { System.setProperty("cryptomator.settingsPath", "~/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json"); - List result = env.getSettingsPath().collect(Collectors.toList()); + List result = env.getSettingsPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(2)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/settings.json"), // Paths.get("/home/testuser/.Cryptomator/settings.json"))); @@ -43,7 +43,7 @@ class EnvironmentTest { public void testIpcPortPath() { System.setProperty("cryptomator.ipcPortPath", "~/.config/Cryptomator/ipcPort.bin:~/.Cryptomator/ipcPort.bin"); - List result = env.getIpcPortPath().collect(Collectors.toList()); + List result = env.getIpcPortPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(2)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/ipcPort.bin"), // Paths.get("/home/testuser/.Cryptomator/ipcPort.bin"))); @@ -54,7 +54,7 @@ class EnvironmentTest { public void testKeychainPath() { System.setProperty("cryptomator.keychainPath", "~/AppData/Roaming/Cryptomator/keychain.json"); - List result = env.getKeychainPath().collect(Collectors.toList()); + List result = env.getKeychainPath().toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/AppData/Roaming/Cryptomator/keychain.json"))); } @@ -88,7 +88,7 @@ class EnvironmentTest { @DisplayName("test.path.property=") public void testEmptyList() { System.setProperty("test.path.property", ""); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(0)); } @@ -97,7 +97,7 @@ class EnvironmentTest { @DisplayName("test.path.property=/foo/bar/test") public void testSingleAbsolutePath() { System.setProperty("test.path.property", "/foo/bar/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/foo/bar/test"))); @@ -107,7 +107,7 @@ class EnvironmentTest { @DisplayName("test.path.property=~/test") public void testSingleHomeRelativePath() { System.setProperty("test.path.property", "~/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(1)); MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/home/testuser/test"))); @@ -117,7 +117,7 @@ class EnvironmentTest { @DisplayName("test.path.property=~/test:~/test2:/foo/bar/test") public void testMultiplePaths() { System.setProperty("test.path.property", "~/test:~/test2:/foo/bar/test"); - List result = env.getPaths("test.path.property").collect(Collectors.toList()); + List result = env.getPaths("test.path.property").toList(); MatcherAssert.assertThat(result, Matchers.hasSize(3)); MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/test"), // diff --git a/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java b/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java index 6bb4befb4..066126ccf 100644 --- a/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/LicenseCheckerTest.java @@ -9,10 +9,12 @@ import java.util.Optional; class LicenseCheckerTest { - private static final String PUBLIC_KEY = "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ" // - + "PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47" // - + "6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM" // - + "Al8G7CqwoJOsW7Kddns="; + private static final String PUBLIC_KEY = """ + MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ\ + PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47\ + 6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM\ + Al8G7CqwoJOsW7Kddns=\ + """; private LicenseChecker licenseChecker; diff --git a/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java b/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java index 8d19a0d8d..a03eb1d57 100644 --- a/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java +++ b/main/commons/src/test/java/org/cryptomator/common/settings/SettingsJsonAdapterTest.java @@ -21,13 +21,18 @@ public class SettingsJsonAdapterTest { @Test public void testDeserialize() throws IOException { - String vault1Json = "{\"id\": \"1\", \"path\": \"/vault1\", \"mountName\": \"vault1\", \"winDriveLetter\": \"X\"}"; - String vault2Json = "{\"id\": \"2\", \"path\": \"/vault2\", \"mountName\": \"vault2\", \"winDriveLetter\": \"Y\"}"; - String json = "{\"directories\": [" + vault1Json + "," + vault2Json + "]," // - + "\"checkForUpdatesEnabled\": true,"// - + "\"port\": 8080,"// - + "\"numTrayNotifications\": 42,"// - + "\"preferredVolumeImpl\": \"FUSE\"}"; + String json = """ + { + "directories": [ + {"id": "1", "path": "/vault1", "mountName": "vault1", "winDriveLetter": "X"}, + {"id": "2", "path": "/vault2", "mountName": "vault2", "winDriveLetter": "Y"} + ], + "checkForUpdatesEnabled": true, + "port": 8080, + "numTrayNotifications": 42, + "preferredVolumeImpl": "FUSE" + } + """; Settings settings = adapter.fromJson(json); diff --git a/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java b/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java index 8c9ac2f9f..9d1e3144d 100644 --- a/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java +++ b/main/launcher/src/main/java/org/cryptomator/launcher/FileOpenRequestHandler.java @@ -41,7 +41,7 @@ class FileOpenRequestHandler { } private void openFiles(OpenFilesEvent evt) { - Collection pathsToOpen = evt.getFiles().stream().map(File::toPath).collect(Collectors.toList()); + Collection pathsToOpen = evt.getFiles().stream().map(File::toPath).toList(); AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen); tryToEnqueueFileOpenRequest(launchEvent); } @@ -59,7 +59,7 @@ class FileOpenRequestHandler { LOG.trace("Argument not a valid path: {}", str); return null; } - }).filter(Objects::nonNull).collect(Collectors.toList()); + }).filter(Objects::nonNull).toList(); if (!pathsToOpen.isEmpty()) { AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen); tryToEnqueueFileOpenRequest(launchEvent); diff --git a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java index ba556933e..0b24e0e24 100644 --- a/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java +++ b/main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java @@ -47,8 +47,8 @@ public class LoggerModule { @Singleton static LoggerContext provideLoggerContext() { ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory(); - if (loggerFactory instanceof LoggerContext) { - return (LoggerContext) loggerFactory; + if (loggerFactory instanceof LoggerContext context) { + return context; } else { throw new IllegalStateException("SLF4J not bound to Logback."); } diff --git a/main/pom.xml b/main/pom.xml index 47ea800da..1e48da8a7 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -22,7 +22,7 @@ UTF-8 - 14 + 16 1.9.14 @@ -32,7 +32,7 @@ 1.0.0-beta1 1.2.9 1.2.4 - 1.1.3 + 1.1.4 15 diff --git a/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java b/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java index ad6056c44..7f6daa44d 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java +++ b/main/ui/src/main/java/org/cryptomator/ui/common/DefaultSceneFactory.java @@ -42,8 +42,8 @@ public class DefaultSceneFactory implements Function { protected void configureScene(Scene scene) { scene.windowProperty().addListener(observable -> { Window window = scene.getWindow(); - if (window instanceof Stage) { - setupDefaultAccelerators(scene, (Stage) window); + if (window instanceof Stage s) { + setupDefaultAccelerators(scene, s); } }); } diff --git a/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java b/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java index b8d1f5372..0ab11d374 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java +++ b/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java @@ -1,5 +1,6 @@ package org.cryptomator.ui.launcher; +import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.fxapp.FxApplication; import org.slf4j.Logger; @@ -55,7 +56,7 @@ class AppLaunchEventHandler { case REVEAL_APP -> fxApplicationStarter.get().thenAccept(FxApplication::showMainWindow); case OPEN_FILE -> fxApplicationStarter.get().thenRun(() -> { Platform.runLater(() -> { - event.getPathsToOpen().forEach(this::addVault); + event.getPathsToOpen().forEach(this::addOrRevealVault); }); }); default -> LOG.warn("Unsupported event type: {}", event.getType()); @@ -63,13 +64,18 @@ class AppLaunchEventHandler { } // TODO dedup MainWindowController... - private void addVault(Path potentialVaultPath) { + private void addOrRevealVault(Path potentialVaultPath) { assert Platform.isFxApplicationThread(); try { + final Vault v; if (potentialVaultPath.getFileName().toString().equals(MASTERKEY_FILENAME)) { - vaultListManager.add(potentialVaultPath.getParent()); + v = vaultListManager.add(potentialVaultPath.getParent()); } else { - vaultListManager.add(potentialVaultPath); + v = vaultListManager.add(potentialVaultPath); + } + + if (v.isUnlocked()) { + fxApplicationStarter.get().thenAccept(app -> app.getVaultService().reveal(v)); } LOG.debug("Added vault {}", potentialVaultPath); } catch (NoSuchFileException e) { diff --git a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java index 12f6d4dc6..c1b5fbd45 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java +++ b/main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockWorkflow.java @@ -76,8 +76,8 @@ public class UnlockWorkflow extends Task { setOnFailed(event -> { Throwable throwable = event.getSource().getException(); - if (throwable instanceof InvalidMountPointException) { - handleInvalidMountPoint((InvalidMountPointException) throwable); + if (throwable instanceof InvalidMountPointException e) { + handleInvalidMountPoint(e); } else { handleGenericError(throwable); } diff --git a/main/ui/src/main/resources/i18n/strings_ar.properties b/main/ui/src/main/resources/i18n/strings_ar.properties index f577b05be..d14749c9e 100644 --- a/main/ui/src/main/resources/i18n/strings_ar.properties +++ b/main/ui/src/main/resources/i18n/strings_ar.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=نسيت كلمة المرور # Unlock unlock.title=افتح الحافظة unlock.passwordPrompt=‮أدخل كلمة السر لـ "‪%s‬": -unlock.savePassword=احفظ كلمة المرور unlock.unlockBtn=افتح ## Success unlock.success.message=تم فتح المخزن "%s" بنجاح! يمكنك الوصول إليه الآن. diff --git a/main/ui/src/main/resources/i18n/strings_bs.properties b/main/ui/src/main/resources/i18n/strings_bs.properties index d5781878b..680c87890 100644 --- a/main/ui/src/main/resources/i18n/strings_bs.properties +++ b/main/ui/src/main/resources/i18n/strings_bs.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Zaboravili ste šifru # Unlock unlock.title=Otključaj sef unlock.passwordPrompt=Unesite lozinku za "%s": -unlock.savePassword=Snimi lozinku unlock.unlockBtn=Otključaj ## Success unlock.success.message=Uspješno ste otključali "%s"! Vaš sef je sada dostupan. @@ -105,61 +104,214 @@ unlock.success.revealBtn=Otkrij sef unlock.error.heading=Sef nije moguće otključati ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Tačka postavljanja "%s" nije direktorij, nije prazna ili ne postoji. +unlock.error.invalidMountPoint.existing=Tačka povezivanja "%s" već postoji ili nadređeni folder nedostaje. # Lock ## Force +lock.forced.heading=Zaključavanje nije uspjelo +lock.forced.message=Zaključavanje "%s" blokirano je operacijama na čekanju ili otvorenim datotekama. Možete prisilno zaključati ovaj sef, međutim prekid U / I-a može rezultirati gubitkom nespremljenih podataka. +lock.forced.confirmBtn=Prisilno zaključaj ## Failure +lock.fail.heading=Zaključavanje sefa nije uspjelo. +lock.fail.message=Sef "%s" nije moguće zaključati. Osigurajte da je nespremljeni rad sačuvan negdje drugdje i da su važne operacije čitanja / pisanja završene. Da biste zatvorili sef, zaustavite Cryptomator proces. # Migration +migration.title=Nadogradi sef ## Start +migration.start.prompt=Sef "%s" treba ažurirati na noviji format. Prije nastavka, provjerite da nije na čekanju sinkronizacija koja utječe na ovaj sef. +migration.start.confirm=Da, moj sef je u potpunosti sinhroniziran ## Run +migration.run.enterPassword=Unesite lozinku za "%s" +migration.run.startMigrationBtn=Nadogradi sef +migration.run.progressHint=Ovo bi moglo potrajati… ## Sucess +migration.success.nextStepsInstructions="%s" je uspješno nadograđen.\nSada možete otključati svoj sef. migration.success.unlockNow=Otključaj sada ## Missing file system capabilities +migration.error.missingFileSystemCapabilities.title=Nepodržan tip datoteke +migration.error.missingFileSystemCapabilities.description=Migracija nije započeta, jer se vaš sef nalazi u neadekvatnom sistemu datoteka. +migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Sistem datoteka ne podržava duga imena datoteka. +migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Sistem datoteka ne podržava duga imena datoteka. +migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Sistem datoteka ne dozvoljava čitanje. +migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Sistem datoteka ne dozvoljava pisanje. ## Impossible +migration.impossible.heading=Sef se ne može nadograditi +migration.impossible.reason=Sef se ne može automatski migrirati jer njegovo mjesto za pohranu ili pristupna točka nisu kompatibilni. +migration.impossible.moreInfo=Sef se i dalje može otvoriti sa starijom verzijom. Za upute o ručnom migriranju sefa posjetite # Preferences preferences.title=Postavke ## General +preferences.general=Generalno +preferences.general.theme=Izgled +preferences.general.theme.automatic=Automatski +preferences.general.theme.light=Svijetlo +preferences.general.theme.dark=Tamno +preferences.general.unlockThemes=Otključaj tamni mod +preferences.general.showMinimizeButton=Pokaži dugme za minimiziranje +preferences.general.showTrayIcon=Prikaži tray ikonu (potrebnan restart) +preferences.general.startHidden=Sakrij prozor prilikom pokretanja Cryptomatora +preferences.general.debugLogging=Omogući evidenciju otklanjanja pogrešaka +preferences.general.debugDirectory=Pokaži dnevnik podataka +preferences.general.autoStart=Pokreni Cryptomator pri pokretanju sistema +preferences.general.keychainBackend=Pohrani lozinku sa +preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome Keyring +preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE Wallet +preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=macOS Keychain Access +preferences.general.keychainBackend.org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess=Windows Data Protection +preferences.general.interfaceOrientation=Orijentacija Interfejsa +preferences.general.interfaceOrientation.ltr=S lijeva ka desno +preferences.general.interfaceOrientation.rtl=Sa desna ka lijevo ## Volume +preferences.volume=Virtuelni pogon +preferences.volume.type=Tip volumena +preferences.volume.webdav.port=WebDAV Port +preferences.volume.webdav.scheme=WebDAV Scheme ## Updates +preferences.updates=Ažuriranja +preferences.updates.currentVersion=Trenutna verzija: %s +preferences.updates.autoUpdateCheck=Automatski provjeri ima li ažuriranja +preferences.updates.checkNowBtn=Provjeri sada +preferences.updates.updateAvailable=Dostupno ažuriranje na verziju %s. ## Donation Key +preferences.donationKey=Donacija +preferences.donationKey.registeredFor=Registrovan za %s +preferences.donationKey.noDonationKey=Nije pronađen važeći ključ za donaciju. To je poput licence, ali za sjajne ljude koji koriste besplatni softver. ;-) +preferences.donationKey.getDonationKey=Nabavite ključ za donaciju ## About +preferences.about=O programu # Vault Statistics +stats.title=Statistika za %s +stats.cacheHitRate=Brzina učitavanja u predmemoriju ## Read +stats.read.throughput.idle=Čitaj: U pripravnosti +stats.read.throughput.kibs=Čitanje: %.2f kiB/s +stats.read.throughput.mibs=Čitanje: %.2f MiB/s +stats.read.total.data.none=Pročitano podataka: - +stats.read.total.data.kib=Pročitano podataka: %.1f kiB +stats.read.total.data.mib=Pročitano podataka: %.1f MiB +stats.read.total.data.gib=Pročitano podataka: %.1f GiB +stats.decr.total.data.none=Otključani podaci: - +stats.decr.total.data.kib=Otključano podataka: %.1f kiB +stats.decr.total.data.mib=Otključano podataka: %.1f MiB +stats.decr.total.data.gib=Otključano podataka: %.1f GiB +stats.read.accessCount=Ukupno pročitano: %d ## Write +stats.write.throughput.idle=Pisanje: U pripravnosti +stats.write.throughput.kibs=Upisano: %.2f kiB/s +stats.write.throughput.mibs=Upisano: %.2f MiB/s +stats.write.total.data.none=Podaci su upisani:- +stats.write.total.data.kib=Upisano podataka: %.1f kiB +stats.write.total.data.mib=Upisano podataka: %.1f MiB +stats.write.total.data.gib=Upisano podataka: %.1f GiB +stats.encr.total.data.none=Otključano podataka: - +stats.encr.total.data.kib=Otključano podataka: %.1f kiB +stats.encr.total.data.mib=Otključano podataka: %.1f MiB +stats.encr.total.data.gib=Otključano podataka: %.1f GiB +stats.write.accessCount=Ukupno upisano: %d # Main Window main.closeBtn.tooltip=Zatvori +main.minimizeBtn.tooltip=Minimiziraj main.preferencesBtn.tooltip=Postavke +main.debugModeEnabled.tooltip=Omogućen je mod otklanjanja pogrešaka +main.donationKeyMissing.tooltip=Molimo razmislite o doniranju ## Drag 'n' Drop +main.dropZone.dropVault=Dodajte ovaj sef +main.dropZone.unknownDragboardContent=Ako želite dodati sef, povucite ga u ovaj prozor ## Vault List +main.vaultlist.emptyList.onboardingInstruction=Kliknite ovdje da dodate sef +main.vaultlist.contextMenu.remove=Ukloni Sef… main.vaultlist.addVaultBtn=Dodaj sef ## Vault Detail ### Welcome +main.vaultDetail.welcomeOnboarding=Hvala što ste izabrali Cryptomator za zaštitu podataka. Ako vam je potrebna pomoć, pogledajte naše vodiče za početak: ### Locked +main.vaultDetail.lockedStatus=ZAKLJUČANO +main.vaultDetail.unlockBtn=Otključaj… main.vaultDetail.unlockNowBtn=Otključaj sada +main.vaultDetail.optionsBtn=Opcije sefa +main.vaultDetail.passwordSavedInKeychain=Šifra sačuvana ### Unlocked +main.vaultDetail.unlockedStatus=OTKLJUČANO +main.vaultDetail.accessLocation=Sadržaj Vašeg sefa je dostupan ovdje: +main.vaultDetail.revealBtn=Otkrij pogon main.vaultDetail.lockBtn=Zaključaj main.vaultDetail.bytesPerSecondRead=Čitaj: main.vaultDetail.bytesPerSecondWritten=Piši: +main.vaultDetail.throughput.idle=u stanju mirovanja +main.vaultDetail.throughput.kbps=%.1f kiB/s +main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Statistika sefa ### Missing +main.vaultDetail.missing.info=Cryptomator nije mogao pronaći disk na ovoj lokaciji. +main.vaultDetail.missing.recheck=Provjeri ponovo +main.vaultDetail.missing.remove=Ukloni sa liste sefova… +main.vaultDetail.missing.changeLocation=Promijeni lokaciju sefa… ### Needs Migration +main.vaultDetail.migrateButton=Nadogradi sef +main.vaultDetail.migratePrompt=Da biste mogli pristupiti svom sefu, morate ga nadograditi na novi format # Wrong File Alert +wrongFileAlert.title=Kako enkriptovati podatke +wrongFileAlert.header.title=Da li ste pokušali enkriptovati ove datoteke? +wrongFileAlert.header.lead=U tu svrhu Cryptomator kreira volumen u vašem upravljačkom sistemu. +wrongFileAlert.instruction.0=Da biste enkriptovali datoteke, slijedite ove korake: +wrongFileAlert.instruction.1=1. Otključajte sef. +wrongFileAlert.instruction.2=2. Kliknite "Otkrivanje" da biste otvorili volumen u vašem upravitelju datotekama. +wrongFileAlert.instruction.3=3. Dodajte datoteke u ovaj disk. +wrongFileAlert.link=Za dalju podršku, posjetite # Vault Options ## General +vaultOptions.general=Generalno vaultOptions.general.vaultName=Ime sefa +vaultOptions.general.unlockAfterStartup=Otključaj sef pri pokretanju Cryptomatora +vaultOptions.general.actionAfterUnlock=Nakon uspješnog otključavanja +vaultOptions.general.actionAfterUnlock.ignore=Ne radi ništa +vaultOptions.general.actionAfterUnlock.reveal=Otkrij pogon +vaultOptions.general.actionAfterUnlock.ask=Pitaj ## Mount +vaultOptions.mount=Povezivanje +vaultOptions.mount.readonly=Samo čitanje +vaultOptions.mount.customMountFlags=Prilagođena obilježja povezivanja +vaultOptions.mount.winDriveLetterOccupied=zauzeto +vaultOptions.mount.mountPoint=Tačka povezivanja +vaultOptions.mount.mountPoint.auto=Automatski odaberi pogodnu lokaciju +vaultOptions.mount.mountPoint.driveLetter=Koristi dodjeljeno slovo (oznaku) diska +vaultOptions.mount.mountPoint.custom=Prilagođena adresa vaultOptions.mount.mountPoint.directoryPickerButton=Odaberi… +vaultOptions.mount.mountPoint.directoryPickerTitle=Izaberi praznu mapu ## Master Key +vaultOptions.masterkey=Šifra vaultOptions.masterkey.changePasswordBtn=Promjeni lozinku +vaultOptions.masterkey.forgetSavedPasswordBtn=Zaborav spremljenu šifru +vaultOptions.masterkey.recoveryKeyExpanation=Ključ za oporavak je vaše jedino sredstvo za vraćanje pristupa sefu ako izgubite lozinku. +vaultOptions.masterkey.showRecoveryKeyBtn=Pokaži ključ za oporavak +vaultOptions.masterkey.recoverPasswordBtn=Povrati šifru # Recovery Key +recoveryKey.title=Ključ za oporavak +recoveryKey.enterPassword.prompt=Unesite šifru da biste prikazali ključ za oporavak za "%s": +recoveryKey.display.message=Sljedeći ključ za oporavak može se koristiti za vraćanje pristupa "%s": +recoveryKey.display.StorageHints=Pohranite ga negdje vrlo sigurno, npr.:\n • Spremite ga pomoću menadžera lozinki\n • Spremite ga na USB disk\n • Odštampajte ga na papiru +recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s": +recoveryKey.recover.validKey=Ključ za oporavak je ispravan +recoveryKey.printout.heading=Cryptomator Ključ za oporavak za \n"%s"\n # New Password +newPassword.promptText=Unesi novu šifru +newPassword.reenterPassword=Potvrdi novu šifru +newPassword.passwordsMatch=Šifra odgovara! +newPassword.passwordsDoNotMatch=Šifre se ne poklapaju +passwordStrength.messageLabel.tooShort=Upotrijebite najmanje %d znakova +passwordStrength.messageLabel.0=Veoma slabo +passwordStrength.messageLabel.1=Slabo +passwordStrength.messageLabel.2=Dovoljno +passwordStrength.messageLabel.3=Sigurno +passwordStrength.messageLabel.4=Veoma sigurno # Quit +quit.prompt=Zatvoriti prijavu? Postoje otključani sefovi. +quit.lockAndQuit=Zaključaj i zatvori diff --git a/main/ui/src/main/resources/i18n/strings_ca.properties b/main/ui/src/main/resources/i18n/strings_ca.properties index 35254759f..ed20adecf 100644 --- a/main/ui/src/main/resources/i18n/strings_ca.properties +++ b/main/ui/src/main/resources/i18n/strings_ca.properties @@ -202,7 +202,7 @@ stats.read.accessCount=Lectures en total: %d stats.write.throughput.idle=Escriu: inactiu stats.write.throughput.kibs=Escriu: %.2f kiB/s stats.write.throughput.mibs=Escriu: %.2f MiB/s -stats.write.total.data.none=Dades llegides: - +stats.write.total.data.none=Dades escrites stats.write.total.data.kib=Dades escrites: %.1f kiB stats.write.total.data.mib=Dades escrites: %.1f MiB stats.write.total.data.gib=Dades escrites: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_cs.properties b/main/ui/src/main/resources/i18n/strings_cs.properties index c6a4c4d79..ee4f9b92a 100644 --- a/main/ui/src/main/resources/i18n/strings_cs.properties +++ b/main/ui/src/main/resources/i18n/strings_cs.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Zapomenout heslo # Unlock unlock.title=Odemknout trezor unlock.passwordPrompt=Zadejte heslo pro "%s": -unlock.savePassword=Uložit heslo +unlock.savePassword=Zapamatovat heslo unlock.unlockBtn=Odemknout ## Success unlock.success.message=Trezor "%s" byl úspěšně odemčen a nyní je dostupný. @@ -197,7 +197,7 @@ stats.read.accessCount=Celkem přečteno: %d stats.write.throughput.idle=Zápis: nečinný stats.write.throughput.kibs=Zápis: %.2f kiB/s stats.write.throughput.mibs=Zápis: %.2f MiB/s -stats.write.total.data.none=Přečteno: - +stats.write.total.data.none=Zapsaná data: - stats.write.total.data.kib=Zapsáno: %.1f kiB stats.write.total.data.mib=Zapsáno: %.1f MiB stats.write.total.data.gib=Zapsáno: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_de.properties b/main/ui/src/main/resources/i18n/strings_de.properties index 9e78da0f0..d5e541f6e 100644 --- a/main/ui/src/main/resources/i18n/strings_de.properties +++ b/main/ui/src/main/resources/i18n/strings_de.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Passwort vergessen # Unlock unlock.title=Tresor entsperren unlock.passwordPrompt=Gib das Passwort für „%s“ ein: -unlock.savePassword=Passwort speichern +unlock.savePassword=Passwort merken unlock.unlockBtn=Entsperren ## Success unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst du auf deinen Tresor zugreifen. @@ -189,28 +189,28 @@ stats.cacheHitRate=Cache-Trefferrate stats.read.throughput.idle=Lesen: Leerlauf stats.read.throughput.kibs=Lesen: %.2f kiB/s stats.read.throughput.mibs=Lesen: %.2f MiB/s -stats.read.total.data.none=Daten gelesen: - -stats.read.total.data.kib=Daten gelesen: %.1f kiB -stats.read.total.data.mib=Daten gelesen: %.1f MiB -stats.read.total.data.gib=Daten gelesen: %.1f GiB -stats.decr.total.data.none=Daten entschlüsselt: - -stats.decr.total.data.kib=Daten entschlüsselt: %.1f kiB -stats.decr.total.data.mib=Daten entschlüsselt: %.1f MiB -stats.decr.total.data.gib=Daten entschlüsselt: %.1f GiB -stats.read.accessCount=Gesamt gelesen: %d +stats.read.total.data.none=Gelesen: - +stats.read.total.data.kib=Gelesen: %.1f kiB +stats.read.total.data.mib=Gelesen: %.1f MiB +stats.read.total.data.gib=Gelesen: %.1f GiB +stats.decr.total.data.none=Entschlüsselt: - +stats.decr.total.data.kib=Entschlüsselt: %.1f kiB +stats.decr.total.data.mib=Entschlüsselt: %.1f MiB +stats.decr.total.data.gib=Entschlüsselt: %.1f GiB +stats.read.accessCount=Lesezugriffe: %d ## Write stats.write.throughput.idle=Schreiben: Leerlauf stats.write.throughput.kibs=Schreiben: %.2f kiB/s stats.write.throughput.mibs=Schreiben: %.2f MiB/s -stats.write.total.data.none=Daten gelesen: - -stats.write.total.data.kib=Daten geschrieben: %.1f kiB -stats.write.total.data.mib=Daten geschrieben: %.1f MiB -stats.write.total.data.gib=Daten geschrieben: %.1f GiB -stats.encr.total.data.none=Daten verschlüsselt: - -stats.encr.total.data.kib=Daten verschlüsselt: %.1f kiB -stats.encr.total.data.mib=Datenverschlüsselt: %.1f MiB -stats.encr.total.data.gib=Daten verschlüsselt: %.1f GiB -stats.write.accessCount=Gesamt geschrieben: %d +stats.write.total.data.none=Geschrieben: - +stats.write.total.data.kib=Geschrieben: %.1f kiB +stats.write.total.data.mib=Geschrieben: %.1f MiB +stats.write.total.data.gib=Geschrieben: %.1f GiB +stats.encr.total.data.none=Verschlüsselt: - +stats.encr.total.data.kib=Verschlüsselt: %.1f kiB +stats.encr.total.data.mib=Verschlüsselt: %.1f MiB +stats.encr.total.data.gib=Verschlüsselt: %.1f GiB +stats.write.accessCount=Schreibzugriffe: %d # Main Window main.closeBtn.tooltip=Schließen diff --git a/main/ui/src/main/resources/i18n/strings_el.properties b/main/ui/src/main/resources/i18n/strings_el.properties index df49fdb2b..105219c26 100644 --- a/main/ui/src/main/resources/i18n/strings_el.properties +++ b/main/ui/src/main/resources/i18n/strings_el.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Ξέχασα τον κωδικό πρόσβασης # Unlock unlock.title=Ξεκλείδωμα Vault unlock.passwordPrompt=Εισάγετε τον κωδικό για "%s": -unlock.savePassword=Αποθήκευση κωδικού +unlock.savePassword=Απομνημόνευση κωδικού πρόσβασης unlock.unlockBtn=Ξεκλείδωμα ## Success unlock.success.message="%s" ξεκλειδώθηκε επιτυχώς! Το vault σας είναι διαθέσιμο. @@ -149,6 +149,8 @@ preferences.general.theme.automatic=Αυτόματα preferences.general.theme.light=Ανοιχτό preferences.general.theme.dark=Σκούρο preferences.general.unlockThemes=Ξεκλείδωσε το σκούρο θέμα +preferences.general.showMinimizeButton=Εμφάνιση κουμπιού ελαχιστοποίησης +preferences.general.showTrayIcon=Εμφάνιση εικονιδίου κοντά στο ρολόι (απαιτεί επανεκκίνηση) preferences.general.startHidden=Απόκρυψη παραθύρου όταν ξεκινά το Cryptomator preferences.general.debugLogging=Ενεργοποίηση καταγραφής σφαλμάτων preferences.general.debugDirectory=Αποκάλυψη αρχείων καταγραφής @@ -200,7 +202,7 @@ stats.read.accessCount=Συνολικές αναγνώσεις: %d stats.write.throughput.idle=Εγγραφή: ηρεμία stats.write.throughput.kibs=Εγγραφή: %.2f kiB/s stats.write.throughput.mibs=Εγγραφή: %.2f MiB/s -stats.write.total.data.none=Ανάγνωση δεδομένων: - +stats.write.total.data.none=Δεδομένα που γράφηκαν: - stats.write.total.data.kib=Δεδομένα που γράφτηκαν: %.1f kiB stats.write.total.data.mib=Δεδομένα που γράφτηκαν: %.1f MiB stats.write.total.data.gib=Δεδομένα που γράφτηκαν: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_es.properties b/main/ui/src/main/resources/i18n/strings_es.properties index 365186f44..bea555acd 100644 --- a/main/ui/src/main/resources/i18n/strings_es.properties +++ b/main/ui/src/main/resources/i18n/strings_es.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Olvidar contraseña # Unlock unlock.title=Desbloquear bóveda unlock.passwordPrompt=Ingresar contraseña para "%s": -unlock.savePassword=Guardar contraseña +unlock.savePassword=Recordar contraseña unlock.unlockBtn=Desbloquear ## Success unlock.success.message=¡"%s" se desbloqueó con éxito! La bóveda ya es accesible. @@ -202,7 +202,7 @@ stats.read.accessCount=Total leídos: %d stats.write.throughput.idle=Escritura: inactivo stats.write.throughput.kibs=Escritura: %.2f kiB/s stats.write.throughput.mibs=Escritura: %.2f MiB/s -stats.write.total.data.none=Datos leídos: - +stats.write.total.data.none=Datos escritos:- stats.write.total.data.kib=Datos escritos: %.1f kiB stats.write.total.data.mib=Datos escritos: %.1f MiB stats.write.total.data.gib=Datos escritos: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_fr.properties b/main/ui/src/main/resources/i18n/strings_fr.properties index dd3b29882..dbcc83a00 100644 --- a/main/ui/src/main/resources/i18n/strings_fr.properties +++ b/main/ui/src/main/resources/i18n/strings_fr.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Oublier le mot de passe # Unlock unlock.title=Déverrouiller le coffre unlock.passwordPrompt=Entrez le mot de passe pour “%s” : -unlock.savePassword=Enregistrer le mot de passe +unlock.savePassword=Mémoriser le mot de passe unlock.unlockBtn=Déverrouiller ## Success unlock.success.message=“%s” déverrouillé ! Le contenu de votre coffre est maintenant accessible. @@ -202,7 +202,7 @@ stats.read.accessCount=Total des lectures: %d stats.write.throughput.idle=Écriture : inactif stats.write.throughput.kibs=Écriture : %.2f kiO/s stats.write.throughput.mibs=Écriture : %.2f Mo/s -stats.write.total.data.none=Lecture des données : - +stats.write.total.data.none=Données écrites : - stats.write.total.data.kib=Données écrites : %.1f kiO stats.write.total.data.mib=Données écrites : %.1f MiO stats.write.total.data.gib=Données écrites : %.1f GiO diff --git a/main/ui/src/main/resources/i18n/strings_hu.properties b/main/ui/src/main/resources/i18n/strings_hu.properties index 02db56bf8..4a6d80c2f 100644 --- a/main/ui/src/main/resources/i18n/strings_hu.properties +++ b/main/ui/src/main/resources/i18n/strings_hu.properties @@ -1,5 +1,4 @@ # Locale Specific CSS files such as CJK, RTL,... -additionalStyleSheets= # Generics ## Button @@ -41,7 +40,6 @@ addvaultwizard.new.namePrompt=A széf neve ### Location addvaultwizard.new.locationInstruction=Hova mentse a Cryptomator a széf titkosított fájljait? addvaultwizard.new.locationLabel=Tárolási hely -addvaultwizard.new.locationPrompt=… addvaultwizard.new.directoryPickerLabel=Egyedi hely addvaultwizard.new.directoryPickerButton=Választás… addvaultwizard.new.directoryPickerTitle=Könyvtár kiválasztása @@ -49,7 +47,7 @@ addvaultwizard.new.fileAlreadyExists=Nem lehet a széfet létrehozni ezen a hely addvaultwizard.new.locationDoesNotExist=Nem lehet a széfet létrehozni ezen a helyen, mert az útvonal legalább egy darabja nem létezik. addvaultwizard.new.invalidName=Érvénytelen széf elnevezés. Kérjük vegye figyelembe a szabályos könyvtárelnevezésre vonatkozó szabályokat. ### Password -addvaultwizard.new.createVaultBtn=Széf létrehozása +addvaultwizard.new.createVaultBtn=Új széf létrehozása addvaultwizard.new.generateRecoveryKeyChoice=Nem fog tudni hozzáférni az adataihoz a jelszó nélkül. Akar egy visszaállítási kulcsot arra az esetre, ha elveszíti a jelszavát? addvaultwizard.new.generateRecoveryKeyChoice.yes=Igen kérem, jobb félni, mint megijedni. addvaultwizard.new.generateRecoveryKeyChoice.no=Nem köszönöm, nem fogom elveszíteni a jelszavam. @@ -96,7 +94,6 @@ forgetPassword.confirmBtn=Jelszó elfelejtése # Unlock unlock.title=Széf feloldása unlock.passwordPrompt=Írja be a jelszavát a következő széfhez "%s": -unlock.savePassword=Jelszó mentése unlock.unlockBtn=Feloldás ## Success unlock.success.message="%s" sikreresen feloldásra került! Mostmár hozzáférhet a széféhez. @@ -108,6 +105,10 @@ unlock.error.heading=Nem lehet feloldani a széfet unlock.error.invalidMountPoint.notExisting=A csatolási pont "%s" nem egy könyvtár, nem üres vagy nem létezik. unlock.error.invalidMountPoint.existing=A csatolási pont "%s" már létezik vagy a already exists or szülőmappa hiányzik. +# Lock +## Force +## Failure + # Migration migration.title=Széf frissítése ## Start @@ -115,7 +116,7 @@ migration.start.prompt=A "%s" széf formátuma frissítésre szorul. A folytatá migration.start.confirm=Igen, a széfem teljes mértékben szinkronizálva van ## Run migration.run.enterPassword=Írja be a jelszót a következőhöz Enter the password for "%s" -migration.run.startMigrationBtn=Széf migrációja +migration.run.startMigrationBtn=Széf frissítése migration.run.progressHint=Ez eltarthat egy darabig… ## Sucess migration.success.nextStepsInstructions=A "%s" sikeresen migrálva. \nMost már feloldhatja a széfet. @@ -146,18 +147,12 @@ preferences.general.debugLogging=Hibakeresési naplózás engedélyezése preferences.general.debugDirectory=Naplófájlok megjelenítése preferences.general.autoStart=Cryptomator indítása a rendszerrel együtt preferences.general.keychainBackend=Itt tárolja a jelszavakat -preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome Keyring -preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE Wallet -preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=macOS Keychain Access -preferences.general.keychainBackend.org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess=Windows Data Protection preferences.general.interfaceOrientation=Felhasználói felület orientációja preferences.general.interfaceOrientation.ltr=Balról jobbra preferences.general.interfaceOrientation.rtl=Jobbról balra ## Volume preferences.volume=Virtuális meghajtó preferences.volume.type=Kötet tipusa -preferences.volume.webdav.port=WebDAV Port -preferences.volume.webdav.scheme=WebDAV Scheme ## Updates preferences.updates=Frissítések preferences.updates.currentVersion=Jelenlegi verzió: %s @@ -192,7 +187,6 @@ stats.read.accessCount=Összes olvasás: %d stats.write.throughput.idle=Írás: tétlen stats.write.throughput.kibs=Írás: %.2f kiB/s stats.write.throughput.mibs=Írás: %.2f MiB/s -stats.write.total.data.none=Írott adat: - stats.write.total.data.kib=Írott adat: %.1f kiB stats.write.total.data.mib=Írott adat: %.1f MiB stats.write.total.data.gib=Írott adat: %.1f GiB @@ -232,8 +226,6 @@ main.vaultDetail.lockBtn=Zárolás main.vaultDetail.bytesPerSecondRead=Olvasás: main.vaultDetail.bytesPerSecondWritten=Írás: main.vaultDetail.throughput.idle=tétlen -main.vaultDetail.throughput.kbps=%.1f kiB/s -main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Széf statisztika ### Missing main.vaultDetail.missing.info=A Cryptomator nem talált széfet ezen az útvonalon. @@ -262,22 +254,22 @@ vaultOptions.general.unlockAfterStartup=A széf feloldása a Cryptomator indít vaultOptions.general.actionAfterUnlock=Sikeres feloldás után vaultOptions.general.actionAfterUnlock.ignore=Ne tegyen semmit vaultOptions.general.actionAfterUnlock.reveal=Jelenítse meg a kötetet -vaultOptions.general.actionAfterUnlock.ask=Kérdezzen +vaultOptions.general.actionAfterUnlock.ask=Kérdez ## Mount -vaultOptions.mount=Csatolás -vaultOptions.mount.readonly=Csak olvasható +vaultOptions.mount=Felcsatolás +vaultOptions.mount.readonly=Csak-olvasható vaultOptions.mount.customMountFlags=Egyedi csatolási paraméterek vaultOptions.mount.winDriveLetterOccupied=foglalt vaultOptions.mount.mountPoint=Csatolási pont -vaultOptions.mount.mountPoint.auto=Válasszon egy megfelelő helyet autómatikusan +vaultOptions.mount.mountPoint.auto=Válasszon egy megfelelő helyet automatikusan vaultOptions.mount.mountPoint.driveLetter=Használja a kiválasztott meghajtó betűjelét vaultOptions.mount.mountPoint.custom=Egyedi útvonal -vaultOptions.mount.mountPoint.directoryPickerButton=Kiválasztás… +vaultOptions.mount.mountPoint.directoryPickerButton=Kiválaszt… vaultOptions.mount.mountPoint.directoryPickerTitle=Válasszon egy üres könyvtárat ## Master Key vaultOptions.masterkey=Jelszó vaultOptions.masterkey.changePasswordBtn=Jelszó megváltoztatása -vaultOptions.masterkey.forgetSavedPasswordBtn=Elmentett jelszó elfelejtése +vaultOptions.masterkey.forgetSavedPasswordBtn=Mentett jelszó törlése vaultOptions.masterkey.recoveryKeyExpanation=A helyreállítási kulcs az egyetlen módja annak, hogy visszaállítsa a széfhez való hozzáférést, ha elveíti a jelszavát. vaultOptions.masterkey.showRecoveryKeyBtn=Visszaállítási kulcs megjelenítése vaultOptions.masterkey.recoverPasswordBtn=Jelszó visszaállítása @@ -292,8 +284,8 @@ recoveryKey.recover.validKey=Ez egy érvényes visszaállítási kulcs recoveryKey.printout.heading=Cryptomator visszaállítási kulcs\n"%s"\n # New Password -newPassword.promptText=Írja be az új jelszavát -newPassword.reenterPassword=Erősítse meg az új jelszavát +newPassword.promptText=Adjon meg egy új jelszót +newPassword.reenterPassword=Az új jelszó megerősítése newPassword.passwordsMatch=A jelszavak megegyeznek! newPassword.passwordsDoNotMatch=A jelszavak nem egyeznek meg passwordStrength.messageLabel.tooShort=Használjon legalább %d karaktert diff --git a/main/ui/src/main/resources/i18n/strings_it.properties b/main/ui/src/main/resources/i18n/strings_it.properties index 1770788c0..c11ba1bc3 100644 --- a/main/ui/src/main/resources/i18n/strings_it.properties +++ b/main/ui/src/main/resources/i18n/strings_it.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Password dimenticata # Unlock unlock.title=Sblocca Cassaforte unlock.passwordPrompt=Inserisci la password per "%s": -unlock.savePassword=Salva password +unlock.savePassword=Ricorda la Password unlock.unlockBtn=Sblocca ## Success unlock.success.message=Sbloccato "%s" con successo! La tua cassaforte è ora accessibile. @@ -200,7 +200,7 @@ stats.read.accessCount=Totale lettura: %d stats.write.throughput.idle=Scrivi: inattivo stats.write.throughput.kibs=Scrittura: %.2f kiB/s stats.write.throughput.mibs=Scrittura: %.2f MiB/s -stats.write.total.data.none=Dati letti: - +stats.write.total.data.none=Dati scritti: - stats.write.total.data.kib=Dati scritti: %.1f kiB stats.write.total.data.mib=Dati scritti: %.1f MiB stats.write.total.data.gib=Dati scritti: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_ja.properties b/main/ui/src/main/resources/i18n/strings_ja.properties index 867112a56..8f8b8a124 100644 --- a/main/ui/src/main/resources/i18n/strings_ja.properties +++ b/main/ui/src/main/resources/i18n/strings_ja.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=パスワードを削除 # Unlock unlock.title=金庫を解錠 unlock.passwordPrompt="%s" のパスワードを入力してください: -unlock.savePassword=パスワードを保存 +unlock.savePassword=パスワードを記憶させる unlock.unlockBtn=解錠 ## Success unlock.success.message="%s" の解錠に成功しました! 金庫にアクセス可能です。 @@ -202,7 +202,7 @@ stats.read.accessCount=合計読み取り: %d stats.write.throughput.idle=書き込み: アイドル状態 stats.write.throughput.kibs=書き込み: %.2f kiB/s stats.write.throughput.mibs=書き込み: %.2f MiB/s -stats.write.total.data.none=データ読み込み: - +stats.write.total.data.none=書き込み済みデータ: - stats.write.total.data.kib=書き込み済みデータ: %.1f kiB stats.write.total.data.mib=書き込み済みデータ: %.1f MiB stats.write.total.data.gib=書き込み済みデータ: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_ko.properties b/main/ui/src/main/resources/i18n/strings_ko.properties index 8aeea1acf..c5ca492f6 100644 --- a/main/ui/src/main/resources/i18n/strings_ko.properties +++ b/main/ui/src/main/resources/i18n/strings_ko.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=비밀번호 분실 # Unlock unlock.title=Vault 잠금해제 unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요. -unlock.savePassword=비밀번호 저장 +unlock.savePassword=비밀번호 기억 unlock.unlockBtn=잠금해제 ## Success unlock.success.message="%s"의 잠금해제가 성공적으로 수행되었습니다! 이제 이 Vault의 접근이 가능합니다. @@ -149,6 +149,8 @@ preferences.general.theme.automatic=자동 preferences.general.theme.light=밝게 preferences.general.theme.dark=어둡게 preferences.general.unlockThemes=다크모드 해제 +preferences.general.showMinimizeButton=최소화 버튼 표시 +preferences.general.showTrayIcon=트레이 아이콘 보기 (재시작 필요) preferences.general.startHidden=Cryptomator를 시작할 때 창 숨김 preferences.general.debugLogging=디버그 로그기록을 사용하도록 설정 preferences.general.debugDirectory=Log 파일 표시 @@ -200,7 +202,7 @@ stats.read.accessCount=총 읽기 횟수: %d stats.write.throughput.idle=쓰기: 대기중 stats.write.throughput.kibs=쓰기: %.2f kiB/s stats.write.throughput.mibs=쓰기: %.2f MiB/s -stats.write.total.data.none=데이터 읽기: - +stats.write.total.data.none=데이터 기록됨: - stats.write.total.data.kib=데이터 쓰기: %.1f kiB stats.write.total.data.mib=데이터 쓰기: %.1f MiB stats.write.total.data.gib=데이터 쓰기: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_lv.properties b/main/ui/src/main/resources/i18n/strings_lv.properties index 8bcd88139..938ac5833 100644 --- a/main/ui/src/main/resources/i18n/strings_lv.properties +++ b/main/ui/src/main/resources/i18n/strings_lv.properties @@ -93,7 +93,6 @@ forgetPassword.confirmBtn=Aizmirst paroli # Unlock unlock.title=Atslēgt glabātuvi unlock.passwordPrompt=Ievadiet "%s" paroli: -unlock.savePassword=Saglabāt paroli unlock.unlockBtn=Atslēgt ## Success unlock.success.message="%s" sekmīgi atslēgts! Jūsu glabātuve tagad ir pieejama. diff --git a/main/ui/src/main/resources/i18n/strings_nb.properties b/main/ui/src/main/resources/i18n/strings_nb.properties index ad6e8f8cf..2bda8d0b3 100644 --- a/main/ui/src/main/resources/i18n/strings_nb.properties +++ b/main/ui/src/main/resources/i18n/strings_nb.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Glem passord # Unlock unlock.title=Lås opp hvelvet unlock.passwordPrompt=Skriv inn passordet for "%s": -unlock.savePassword=Lagre passord unlock.unlockBtn=Lås opp ## Success unlock.success.message=Vellykket opplåsning av "%s"! Hvelvet ditt er nå tilgjengelig. @@ -202,7 +201,6 @@ stats.read.accessCount=Lesninger totalt: %d stats.write.throughput.idle=Skrive: inaktiv stats.write.throughput.kibs=Skriver: %.2f kiB/s stats.write.throughput.mibs=Skriver: %.2f MiB/s -stats.write.total.data.none=Data lest: - stats.write.total.data.kib=Data skrevet: %.1f kiB stats.write.total.data.mib=Data skrevet: %.1f MiB stats.write.total.data.gib=Data skrevet: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_nl.properties b/main/ui/src/main/resources/i18n/strings_nl.properties index 1b5f489c6..d824bfc7b 100644 --- a/main/ui/src/main/resources/i18n/strings_nl.properties +++ b/main/ui/src/main/resources/i18n/strings_nl.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Wachtwoord vergeten # Unlock unlock.title=Kluis ontgrendelen unlock.passwordPrompt=Voer wachtwoord voor "%s" in: -unlock.savePassword=Wachtwoord Opslaan unlock.unlockBtn=Ontgrendel ## Success unlock.success.message="%s" is met succes ontgrendeld! Uw kluis is nu toegankelijk. @@ -202,7 +201,6 @@ stats.read.accessCount=Totaal gelezen: %d stats.write.throughput.idle=Schrijven: inactief stats.write.throughput.kibs=Schrijven: %.2f kiB/s stats.write.throughput.mibs=Schrijven: %.2f MiB/s -stats.write.total.data.none=Gegevens gelezen: - stats.write.total.data.kib=Gegevens geschreven: %.1f kiB stats.write.total.data.mib=Gegevens geschreven: %.1f MiB stats.write.total.data.gib=Gegevens geschreven: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_nn.properties b/main/ui/src/main/resources/i18n/strings_nn.properties index a6c575137..7d291d646 100644 --- a/main/ui/src/main/resources/i18n/strings_nn.properties +++ b/main/ui/src/main/resources/i18n/strings_nn.properties @@ -94,7 +94,6 @@ forgetPassword.confirmBtn=Gløym passord # Unlock unlock.title=Lås opp kvelven unlock.passwordPrompt=Skriv inn passordet for "%s": -unlock.savePassword=Lagre passordet unlock.unlockBtn=Låse opp ## Success unlock.success.message=Vellykka opplåsning av "%s"! Kvelven din er no tilgjengeleg. diff --git a/main/ui/src/main/resources/i18n/strings_pa.properties b/main/ui/src/main/resources/i18n/strings_pa.properties index 528f5568f..33660d71e 100644 --- a/main/ui/src/main/resources/i18n/strings_pa.properties +++ b/main/ui/src/main/resources/i18n/strings_pa.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ # Unlock unlock.title=ਵਾਲਟ ਅਣ-ਲਾਕ ਕਰੋ unlock.passwordPrompt="%s" ਲਈ ਪਾਸਵਰਡ ਦਿਓ: -unlock.savePassword=ਪਾਸਵਰਡ ਸੰਭਾਲੋ unlock.unlockBtn=ਅਣ-ਲਾਕ ਕਰੋ ## Success unlock.success.message="%s" ਕਾਮਯਾਬੀ ਨਾਲ ਅਣ-ਲਾਕ ਕੀਤਾ! ਤੁਹਾਡਾ ਵਾਲਟ ਹੁਣ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। @@ -149,6 +148,8 @@ preferences.general.theme.automatic=ਆਟੋਮੈਟਿਕ preferences.general.theme.light=ਹਲਕਾ preferences.general.theme.dark=ਗੂੜ੍ਹਾ preferences.general.unlockThemes=ਗੂੜ੍ਹਾ ਢੰਗ ਅਣ-ਲਾਕ ਕਰੋ +preferences.general.showMinimizeButton=ਘੱਟੋ-ਘੱਟ ਬਟਨ ਦਿਖਾਓ +preferences.general.showTrayIcon=ਟਰੇ ਆਈਕਾਨ ਵੇਖਾਓ (ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ) preferences.general.startHidden=ਜਦੋਂ Cryptomator ਸ਼ੁਰੂ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋ ਲੁਕਾਓ preferences.general.debugLogging=ਡੀਬੱਗ ਲਾਗ ਸਮਰੱਥ ਕਰੋ preferences.general.debugDirectory=ਲਾਗ ਫਾਇਲਾਂ ਦਿਖਾਓ @@ -200,7 +201,6 @@ stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ stats.write.throughput.kibs=ਲਿਖੇ: %.2f kiB/s stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s -stats.write.total.data.none=ਡਾਟਾ ਪੜ੍ਹਿਆ: - stats.write.total.data.kib=ਡਾਟਾ ਲਿਖਿਆ: %.1f kiB stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_pl.properties b/main/ui/src/main/resources/i18n/strings_pl.properties index 6de44a403..f3c18adfe 100644 --- a/main/ui/src/main/resources/i18n/strings_pl.properties +++ b/main/ui/src/main/resources/i18n/strings_pl.properties @@ -202,7 +202,7 @@ stats.read.accessCount=Całkowite odczyty: %d stats.write.throughput.idle=Zapis: bezczynny stats.write.throughput.kibs=Zapis: %.2f kiB/s stats.write.throughput.mibs=Zapis: %.2f kiB/s -stats.write.total.data.none=Dane odczytywane: - +stats.write.total.data.none=Zapisane dane: - stats.write.total.data.kib=Zapisane dane: %.1f kiB stats.write.total.data.mib=Zapisane dane: %.1f MiB stats.write.total.data.gib=Zapisane dane: %.1f kiB diff --git a/main/ui/src/main/resources/i18n/strings_pt.properties b/main/ui/src/main/resources/i18n/strings_pt.properties index d2d2ec046..4f1ad61f4 100644 --- a/main/ui/src/main/resources/i18n/strings_pt.properties +++ b/main/ui/src/main/resources/i18n/strings_pt.properties @@ -86,7 +86,6 @@ forgetPassword.confirmBtn=Esqueci a Senha # Unlock unlock.title=Destrancar Cofre unlock.passwordPrompt=Insira a senha para "%s": -unlock.savePassword=Lembrar Senha unlock.unlockBtn=Destrancar ## Success unlock.success.message=Desbloqueado "%s" com sucesso! O seu cofre está agora acessível. diff --git a/main/ui/src/main/resources/i18n/strings_pt_BR.properties b/main/ui/src/main/resources/i18n/strings_pt_BR.properties index 46e12a324..6323b2cb6 100644 --- a/main/ui/src/main/resources/i18n/strings_pt_BR.properties +++ b/main/ui/src/main/resources/i18n/strings_pt_BR.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Esquecer Senha # Unlock unlock.title=Desbloquear Cofre unlock.passwordPrompt=Digite a senha para "%s": -unlock.savePassword=Salvar Senha +unlock.savePassword=Lembrar Senha unlock.unlockBtn=Desbloquear ## Success unlock.success.message="%s" foi desbloqueado com sucesso! Seu cofre agora está acessível. @@ -202,7 +202,6 @@ stats.read.accessCount=Total de leituras: %d stats.write.throughput.idle=Escrita: ociosa stats.write.throughput.kibs=Escrita: %.2f kiB/s stats.write.throughput.mibs=Escrita: %.2f MiB/s -stats.write.total.data.none=Dados lidos: - stats.write.total.data.kib=Dados gravados: %.1f kiB stats.write.total.data.mib=Dados gravados: %.1f MiB stats.write.total.data.gib=Dados gravados: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_ru.properties b/main/ui/src/main/resources/i18n/strings_ru.properties index 5ab401c49..ba7b08e0d 100644 --- a/main/ui/src/main/resources/i18n/strings_ru.properties +++ b/main/ui/src/main/resources/i18n/strings_ru.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Не помню пароль # Unlock unlock.title=Разблокировать хранилище unlock.passwordPrompt=Введите пароль для "%s" -unlock.savePassword=Сохранить пароль +unlock.savePassword=Запомнить пароль unlock.unlockBtn=Разблокировать ## Success unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт. @@ -202,7 +202,7 @@ stats.read.accessCount=Всего операций чтения: %d stats.write.throughput.idle=Запись: бездействие stats.write.throughput.kibs=Запись: %.2f КиБ/с stats.write.throughput.mibs=Запись: %.2f МиБ/с -stats.write.total.data.none=Прочитано: - +stats.write.total.data.none=Записано данных: - stats.write.total.data.kib=Записано: %.1f КиБ stats.write.total.data.mib=Записано: %.1f МиБ stats.write.total.data.gib=Записано: %.1f ГиБ diff --git a/main/ui/src/main/resources/i18n/strings_sk.properties b/main/ui/src/main/resources/i18n/strings_sk.properties index 710173c14..cbd5a22cc 100644 --- a/main/ui/src/main/resources/i18n/strings_sk.properties +++ b/main/ui/src/main/resources/i18n/strings_sk.properties @@ -93,7 +93,7 @@ forgetPassword.confirmBtn=Zabudnuté heslo # Unlock unlock.title=Odomknúť trezor unlock.passwordPrompt=Zadajte heslo pre "%s": -unlock.savePassword=Uložiť heslo +unlock.savePassword=Odomknúť.uložiťHeslo unlock.unlockBtn=Odomknúť ## Success unlock.success.message=Úspešne sa odomkol "%s"! Váš trezor je teraz prístupný. @@ -125,6 +125,8 @@ migration.success.unlockNow=Odomknúť teraz preferences.title=Predvoľby ## General preferences.general.theme.automatic=Automaticky +preferences.general.showMinimizeButton=Predvoľba.hlavná.ukážMinimalizujTlačítko +preferences.general.showTrayIcon=Predvoľba.hlavná.ukážIkonaSytémovejlišty preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome klúčenka preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE účet preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=maccOS reťazový prístup @@ -154,7 +156,7 @@ stats.read.accessCount=Spolu načítané: %d stats.write.throughput.idle=Zápis: nečinnosť stats.write.throughput.kibs=Zápis: %.2f KiB/s stats.write.throughput.mibs=Zápis: %.2f MiB/s -stats.write.total.data.none=Čítanie dát: - +stats.write.total.data.none=štatistika.zápis.celkové.dáta.nič stats.write.total.data.kib=Zapísaných dát: %.1f kiB stats.write.total.data.mib=Zapísaných dát: %.1f MiB stats.write.total.data.gib=Zapísaných dát: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_sv.properties b/main/ui/src/main/resources/i18n/strings_sv.properties index 98a487633..9677fa732 100644 --- a/main/ui/src/main/resources/i18n/strings_sv.properties +++ b/main/ui/src/main/resources/i18n/strings_sv.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Glöm lösenord # Unlock unlock.title=Lås upp valv unlock.passwordPrompt=Ange lösenord för "%s": -unlock.savePassword=Spara lösenord +unlock.savePassword=Kom ihåg lösenord unlock.unlockBtn=Lås upp ## Success unlock.success.message="%s" upplåst! Ditt valv är nu åtkomligt. @@ -109,7 +109,12 @@ unlock.error.invalidMountPoint.existing=Monteringspunkten "%s" finns redan eller # Lock ## Force +lock.forced.heading=Normal låsning misslyckades +lock.forced.message=Låsning av "%s" förhindras av pågående operationer eller öppna filer. Du kan tvinga låsning av detta valv, men det kan resultera i förlust av osparade data. +lock.forced.confirmBtn=Tvinga låsning ## Failure +lock.fail.heading=Låsning av valv misslyckades. +lock.fail.message=Valvet "%s" kunde inte låsas. Se till att osparat arbete sparas någon annanstans och viktiga läs- och skrivfunktioner är klara. För att stänga valvet, avsluta Cryptomator-processen. # Migration migration.title=Uppgradera valv @@ -144,6 +149,8 @@ preferences.general.theme.automatic=Automatiskt preferences.general.theme.light=Ljust preferences.general.theme.dark=Mörkt preferences.general.unlockThemes=Lås upp mörkt läge +preferences.general.showMinimizeButton=Visa minimera knappen +preferences.general.showTrayIcon=Visa tray-ikon (kräver omstart) preferences.general.startHidden=Dölj fönster när Cryptomator startar preferences.general.debugLogging=Aktivera loggning för felsökning preferences.general.debugDirectory=Visa loggfiler @@ -195,7 +202,7 @@ stats.read.accessCount=Totalt läst: %d stats.write.throughput.idle=Skriv: inaktiv stats.write.throughput.kibs=Skriv: %.2f kiB/s stats.write.throughput.mibs=Skriv: %.2f MiB/s -stats.write.total.data.none=Data läst: - +stats.write.total.data.none=Data skrivet: - stats.write.total.data.kib=Data skrivet: %.1f kiB stats.write.total.data.mib=Data skrivet: %.1f MiB stats.write.total.data.gib=Data skrivet: %.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_tr.properties b/main/ui/src/main/resources/i18n/strings_tr.properties index 3e06731af..c531555a4 100644 --- a/main/ui/src/main/resources/i18n/strings_tr.properties +++ b/main/ui/src/main/resources/i18n/strings_tr.properties @@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Şifreyi Unut # Unlock unlock.title=Kasa Kilidini Aç unlock.passwordPrompt="%s" için şifre girin: -unlock.savePassword=Şifreyi Kaydet +unlock.savePassword=Şifreyi Hatırla unlock.unlockBtn=Kilidi Aç ## Success unlock.success.message="%s" 'nin kilidi başarıyla açıldı! Kasanız şimdi erişilebilir durumda. @@ -202,7 +202,7 @@ stats.read.accessCount=Toplam okuma: %d stats.write.throughput.idle=Yazma: boşta stats.write.throughput.kibs=Yazma: %.2f kB/s stats.write.throughput.mibs=Yazma: %.2f MB/s -stats.write.total.data.none=Yazılan veri: - +stats.write.total.data.none=Yazılmış veri: - stats.write.total.data.kib=Yazılan veri: %.1f kB stats.write.total.data.mib=Yazılan veri: %.1f MB stats.write.total.data.gib=Yazılan veri: %.1f GB diff --git a/main/ui/src/main/resources/i18n/strings_zh.properties b/main/ui/src/main/resources/i18n/strings_zh.properties index 39815a92f..e8181d946 100644 --- a/main/ui/src/main/resources/i18n/strings_zh.properties +++ b/main/ui/src/main/resources/i18n/strings_zh.properties @@ -202,7 +202,7 @@ stats.read.accessCount=读取总数:%d stats.write.throughput.idle=写入:空闲 stats.write.throughput.kibs=写入:%.2f kiB/s stats.write.throughput.mibs=写入:%.2f MiB/s -stats.write.total.data.none=已读取数据:- +stats.write.total.data.none=已写入数据: - stats.write.total.data.kib=已写入数据:%.1f kiB stats.write.total.data.mib=已写入数据:%.1f MiB stats.write.total.data.gib=已写入数据:%.1f GiB diff --git a/main/ui/src/main/resources/i18n/strings_zh_TW.properties b/main/ui/src/main/resources/i18n/strings_zh_TW.properties index 57e5e212b..e484651bd 100644 --- a/main/ui/src/main/resources/i18n/strings_zh_TW.properties +++ b/main/ui/src/main/resources/i18n/strings_zh_TW.properties @@ -95,7 +95,6 @@ forgetPassword.confirmBtn=忘記密碼 # Unlock unlock.title=解鎖加密檔案庫 unlock.passwordPrompt=輸入 "%s" 的密碼: -unlock.savePassword=儲存密碼 unlock.unlockBtn=解鎖 ## Success unlock.success.message=成功解鎖 "%s"!您現在可以存取您的加密檔案庫。 @@ -202,7 +201,7 @@ stats.read.accessCount=總讀取:%d stats.write.throughput.idle=寫入:閒置 stats.write.throughput.kibs=寫入:%.2f kiB/s stats.write.throughput.mibs=寫入:%.2f MiB/s -stats.write.total.data.none=資料讀取:無 +stats.write.total.data.none=已寫入資料:- stats.write.total.data.kib=資料寫入:%.1f kiB stats.write.total.data.mib=資料寫入:%.1f MiB stats.write.total.data.gib=資料寫入:%.1f GiB diff --git a/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java b/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java index 6ca1fd891..3ea028bf2 100644 --- a/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java +++ b/main/ui/src/test/java/org/cryptomator/ui/recoverykey/RecoveryKeyFactoryTest.java @@ -48,18 +48,22 @@ class RecoveryKeyFactoryTest { @Test @DisplayName("validateRecoveryKey() with invalid checksum") public void testValidateValidateRecoveryKeyWithInvalidCrc() { - boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" // - + " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" // - + " depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong"); + boolean result = inTest.validateRecoveryKey(""" + pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \ + border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \ + investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong \ + """); Assertions.assertFalse(result); } @Test @DisplayName("validateRecoveryKey() with valid input") public void testValidateValidateRecoveryKeyWithValidKey() { - boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" // - + " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" // - + " depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad"); + boolean result = inTest.validateRecoveryKey(""" + pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \ + border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \ + investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad \ + """); Assertions.assertTrue(result); }