From a15acd64c868028322b42e294d12323c65be8f6c Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 13:33:37 +0200 Subject: [PATCH 1/7] set version to 1.2.0 --- main/ant-kit/pom.xml | 2 +- main/commons-test/pom.xml | 2 +- main/commons/pom.xml | 2 +- main/filesystem-api/pom.xml | 2 +- main/filesystem-charsets/pom.xml | 2 +- main/filesystem-crypto-integration-tests/pom.xml | 2 +- main/filesystem-crypto/pom.xml | 2 +- main/filesystem-inmemory/pom.xml | 2 +- main/filesystem-invariants-tests/pom.xml | 2 +- main/filesystem-nameshortening/pom.xml | 2 +- main/filesystem-nio/pom.xml | 2 +- main/filesystem-stats/pom.xml | 2 +- main/frontend-api/pom.xml | 2 +- main/frontend-webdav/pom.xml | 2 +- main/jacoco-report/pom.xml | 2 +- main/keychain/pom.xml | 2 +- main/pom.xml | 2 +- main/uber-jar/pom.xml | 2 +- main/ui/pom.xml | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) diff --git a/main/ant-kit/pom.xml b/main/ant-kit/pom.xml index 9d43788c7..601346301 100644 --- a/main/ant-kit/pom.xml +++ b/main/ant-kit/pom.xml @@ -8,7 +8,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 ant-kit pom diff --git a/main/commons-test/pom.xml b/main/commons-test/pom.xml index 53f68521f..21158bbaa 100644 --- a/main/commons-test/pom.xml +++ b/main/commons-test/pom.xml @@ -10,7 +10,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 commons-test Cryptomator common test dependencies diff --git a/main/commons/pom.xml b/main/commons/pom.xml index afeb35fa1..152fa7313 100644 --- a/main/commons/pom.xml +++ b/main/commons/pom.xml @@ -10,7 +10,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 commons Cryptomator common diff --git a/main/filesystem-api/pom.xml b/main/filesystem-api/pom.xml index b4b4cfc4d..3f7342a3b 100644 --- a/main/filesystem-api/pom.xml +++ b/main/filesystem-api/pom.xml @@ -9,7 +9,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-api Cryptomator filesystem: API diff --git a/main/filesystem-charsets/pom.xml b/main/filesystem-charsets/pom.xml index e156412e5..e8aa48799 100644 --- a/main/filesystem-charsets/pom.xml +++ b/main/filesystem-charsets/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-charsets Cryptomator filesystem: Charset compatibility layer diff --git a/main/filesystem-crypto-integration-tests/pom.xml b/main/filesystem-crypto-integration-tests/pom.xml index 48b51a55b..af67a1480 100644 --- a/main/filesystem-crypto-integration-tests/pom.xml +++ b/main/filesystem-crypto-integration-tests/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-crypto-integration-tests Cryptomator filesystem: Encryption layer tests diff --git a/main/filesystem-crypto/pom.xml b/main/filesystem-crypto/pom.xml index bbc582be6..517566bbe 100644 --- a/main/filesystem-crypto/pom.xml +++ b/main/filesystem-crypto/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-crypto Cryptomator filesystem: Encryption layer diff --git a/main/filesystem-inmemory/pom.xml b/main/filesystem-inmemory/pom.xml index d1db21e24..d40ac9f35 100644 --- a/main/filesystem-inmemory/pom.xml +++ b/main/filesystem-inmemory/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-inmemory Cryptomator filesystem: In-memory mock diff --git a/main/filesystem-invariants-tests/pom.xml b/main/filesystem-invariants-tests/pom.xml index 83ec41625..9ba7f6433 100644 --- a/main/filesystem-invariants-tests/pom.xml +++ b/main/filesystem-invariants-tests/pom.xml @@ -9,7 +9,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-invariants-tests Cryptomator filesystem: Invariants tests diff --git a/main/filesystem-nameshortening/pom.xml b/main/filesystem-nameshortening/pom.xml index f325b84c3..362163018 100644 --- a/main/filesystem-nameshortening/pom.xml +++ b/main/filesystem-nameshortening/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-nameshortening Cryptomator filesystem: Name shortening layer diff --git a/main/filesystem-nio/pom.xml b/main/filesystem-nio/pom.xml index 4f535b1b0..7df577334 100644 --- a/main/filesystem-nio/pom.xml +++ b/main/filesystem-nio/pom.xml @@ -7,7 +7,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-nio Cryptomator filesystem: NIO-based physical layer diff --git a/main/filesystem-stats/pom.xml b/main/filesystem-stats/pom.xml index 4912e2a72..3a7937188 100644 --- a/main/filesystem-stats/pom.xml +++ b/main/filesystem-stats/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 filesystem-stats Cryptomator filesystem: Throughput statistics diff --git a/main/frontend-api/pom.xml b/main/frontend-api/pom.xml index 7952ce438..f06a270db 100644 --- a/main/frontend-api/pom.xml +++ b/main/frontend-api/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 frontend-api Cryptomator frontend: API diff --git a/main/frontend-webdav/pom.xml b/main/frontend-webdav/pom.xml index 1e6421508..083961c2a 100644 --- a/main/frontend-webdav/pom.xml +++ b/main/frontend-webdav/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 frontend-webdav Cryptomator frontend: WebDAV frontend diff --git a/main/jacoco-report/pom.xml b/main/jacoco-report/pom.xml index b57576813..3131db4ea 100644 --- a/main/jacoco-report/pom.xml +++ b/main/jacoco-report/pom.xml @@ -5,7 +5,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 jacoco-report Cryptomator Code Coverage Report diff --git a/main/keychain/pom.xml b/main/keychain/pom.xml index 5c96a8aad..2d497f4d7 100644 --- a/main/keychain/pom.xml +++ b/main/keychain/pom.xml @@ -3,7 +3,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 keychain System Keychain Access diff --git a/main/pom.xml b/main/pom.xml index c63c2c449..313f85004 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -6,7 +6,7 @@ 4.0.0 org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 pom Cryptomator diff --git a/main/uber-jar/pom.xml b/main/uber-jar/pom.xml index dc7a961fd..dadceab2a 100644 --- a/main/uber-jar/pom.xml +++ b/main/uber-jar/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 uber-jar pom diff --git a/main/ui/pom.xml b/main/ui/pom.xml index a0e7a0749..82b2df321 100644 --- a/main/ui/pom.xml +++ b/main/ui/pom.xml @@ -12,7 +12,7 @@ org.cryptomator main - 1.2.0-SNAPSHOT + 1.2.0 ui Cryptomator GUI From df1fd6d0b30282b64fe8f0ae65f42b536541749e Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 14:07:08 +0200 Subject: [PATCH 2/7] fixed coverity issue 72979 --- .../java/org/cryptomator/crypto/engine/impl/CryptorImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/CryptorImpl.java b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/CryptorImpl.java index 166a34b12..ef88c4a8d 100644 --- a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/CryptorImpl.java +++ b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/CryptorImpl.java @@ -109,7 +109,7 @@ class CryptorImpl implements Cryptor { assert keyFile != null; // check version - if (CURRENT_VAULT_VERSION != keyFile.getVersion()) { + if (!CURRENT_VAULT_VERSION.equals(keyFile.getVersion())) { throw new UnsupportedVaultFormatException(keyFile.getVersion(), CURRENT_VAULT_VERSION); } From ef0425e2b18fda8c44a73187946e251d6bbea45c Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 14:14:50 +0200 Subject: [PATCH 3/7] fixes coverity issue 147409 --- main/ui/src/main/java/org/cryptomator/ui/model/Vault.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java b/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java index 8c0c00fc3..086fffa90 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java @@ -168,7 +168,7 @@ public class Vault implements CryptoFileSystemDelegate { ); } - public void reveal() throws CommandFailedException { + public synchronized void reveal() throws CommandFailedException { Optionals.ifPresent(filesystemFrontend.get(), Frontend::reveal); } @@ -190,7 +190,7 @@ public class Vault implements CryptoFileSystemDelegate { // Getter/Setter // *******************************************************************************/ - public String getWebDavUrl() { + public synchronized String getWebDavUrl() { return filesystemFrontend.get().map(Frontend::getWebDavUrl).orElseThrow(IllegalStateException::new); } From d7d8d21ba496ba31f82732896f61a4faab91a227 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 22:15:21 +0200 Subject: [PATCH 4/7] Show warning when trying to migrate a masterkey with invalid version mac --- .../ui/controllers/ChangePasswordController.java | 3 ++- .../cryptomator/ui/controllers/UnlockController.java | 8 ++++++-- .../java/org/cryptomator/ui/model/UpgradeStrategy.java | 10 +++++++++- main/ui/src/main/resources/localization/en.txt | 2 +- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/controllers/ChangePasswordController.java b/main/ui/src/main/java/org/cryptomator/ui/controllers/ChangePasswordController.java index c78ac51f0..b254931fb 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controllers/ChangePasswordController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controllers/ChangePasswordController.java @@ -124,6 +124,7 @@ public class ChangePasswordController extends LocalizedFXMLViewController { // trigger "default" change to refresh key bindings: changePasswordButton.setDefaultButton(false); changePasswordButton.setDefaultButton(true); + messageText.setText(null); } // **************************************** @@ -144,7 +145,7 @@ public class ChangePasswordController extends LocalizedFXMLViewController { downloadsPageLink.setVisible(false); try { vault.changePassphrase(oldPasswordField.getCharacters(), newPasswordField.getCharacters()); - messageText.setText(localization.getString("changePassword.infoMessage.success")); + messageText.setText(null); listener.ifPresent(this::invokeListenerLater); } catch (InvalidPassphraseException e) { messageText.setText(localization.getString("changePassword.errorMessage.wrongPassword")); diff --git a/main/ui/src/main/java/org/cryptomator/ui/controllers/UnlockController.java b/main/ui/src/main/java/org/cryptomator/ui/controllers/UnlockController.java index e5fe09fe4..f6b19cb8a 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/controllers/UnlockController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/controllers/UnlockController.java @@ -178,7 +178,7 @@ public class UnlockController extends LocalizedFXMLViewController { @FXML public void didClickDownloadsLink(ActionEvent event) { - app.getHostServices().showDocument("https://cryptomator.org/downloads/"); + app.getHostServices().showDocument("https://cryptomator.org/downloads/#allVersions"); } // **************************************** @@ -311,11 +311,15 @@ public class UnlockController extends LocalizedFXMLViewController { }); } catch (UnsupportedVaultFormatException e) { Platform.runLater(() -> { - downloadsPageLink.setVisible(true); if (e.isVaultOlderThanSoftware()) { + // whitespace after localized text used as separator between text and hyperlink messageText.setText(localization.getString("unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware") + " "); + downloadsPageLink.setVisible(true); } else if (e.isSoftwareOlderThanVault()) { messageText.setText(localization.getString("unlock.errorMessage.unsupportedVersion.softwareOlderThanVault") + " "); + downloadsPageLink.setVisible(true); + } else if (e.getDetectedVersion() == Integer.MAX_VALUE) { + messageText.setText(localization.getString("unlock.errorMessage.unauthenticVersionMac")); } }); } catch (FrontendCreationFailedException | CommandFailedException e) { diff --git a/main/ui/src/main/java/org/cryptomator/ui/model/UpgradeStrategy.java b/main/ui/src/main/java/org/cryptomator/ui/model/UpgradeStrategy.java index 9d77b93d4..b235a794e 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/model/UpgradeStrategy.java +++ b/main/ui/src/main/java/org/cryptomator/ui/model/UpgradeStrategy.java @@ -57,7 +57,15 @@ public abstract class UpgradeStrategy { Files.write(masterkeyFileAfterUpgrade, upgradedMasterkeyFileContents, StandardOpenOption.TRUNCATE_EXISTING); } catch (InvalidPassphraseException e) { throw new UpgradeFailedException(localization.getString("unlock.errorMessage.wrongPassword")); - } catch (IOException | UnsupportedVaultFormatException e) { + } catch (UnsupportedVaultFormatException e) { + if (e.getDetectedVersion() == Integer.MAX_VALUE) { + LOG.warn("Version MAC authentication error in vault {}", vault.path().get()); + throw new UpgradeFailedException(localization.getString("unlock.errorMessage.unauthenticVersionMac")); + } else { + LOG.warn("Upgrade failed.", e); + throw new UpgradeFailedException("Upgrade failed. Details in log message."); + } + } catch (IOException e) { LOG.warn("Upgrade failed.", e); throw new UpgradeFailedException("Upgrade failed. Details in log message."); } finally { diff --git a/main/ui/src/main/resources/localization/en.txt b/main/ui/src/main/resources/localization/en.txt index 984884574..92cd4815a 100644 --- a/main/ui/src/main/resources/localization/en.txt +++ b/main/ui/src/main/resources/localization/en.txt @@ -63,6 +63,7 @@ unlock.errorMessage.wrongPassword=Wrong password unlock.errorMessage.mountingFailed=Mounting failed. See log file for details. unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware=Unsupported vault. This vault has been created with an older version of Cryptomator. unlock.errorMessage.unsupportedVersion.softwareOlderThanVault=Unsupported vault. This vault has been created with a newer version of Cryptomator. +unlock.errorMessage.unauthenticVersionMac=Could not authenticate version MAC. unlock.messageLabel.startServerFailed=Starting WebDAV server failed. # change_password.fxml @@ -73,7 +74,6 @@ changePassword.label.downloadsPageLink=All Cryptomator versions changePassword.button.change=Change password changePassword.errorMessage.wrongPassword=Wrong password changePassword.errorMessage.decryptionFailed=Decryption failed -changePassword.infoMessage.success=Password changed # unlocked.fxml unlocked.button.lock=Lock vault From a3cfcb11316ff28278fbe9382a156132b7b8b1fa Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 23:26:13 +0200 Subject: [PATCH 5/7] Reject opening files when former filesize header is != -1 --- .../engine/impl/FileContentDecryptorImpl.java | 5 +++++ .../engine/impl/FileContentDecryptorImplTest.java | 10 +++++----- .../crypto/engine/impl/FileHeaderTest.java | 15 ++++++++++++++- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImpl.java b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImpl.java index 0088f6a51..fdc12bb2a 100644 --- a/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImpl.java +++ b/main/filesystem-crypto/src/main/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImpl.java @@ -54,6 +54,11 @@ class FileContentDecryptorImpl implements FileContentDecryptor { this.header = FileHeader.decrypt(headerKey, hmacSha256, header); this.authenticate = authenticate; this.chunkNumber = firstCiphertextByte / CHUNK_SIZE; // floor() by int-truncation + + // vault version 5 and onwards should have filesize: -1 + if (this.header.getPayload().getFilesize() != -1l) { + throw new UncheckedIOException(new IOException("Attempted to decrypt file with invalid header (probably from previous vault version)")); + } } @Override diff --git a/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImplTest.java b/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImplTest.java index 173d13348..631811da7 100644 --- a/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImplTest.java +++ b/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileContentDecryptorImplTest.java @@ -45,7 +45,7 @@ public class FileContentDecryptorImplTest { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); - final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJA=="); + final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJg=="); final byte[] content = Base64.decode("AAAAAAAAAAAAAAAAAAAAALTwrBTNYP7m3yTGKlhka9WPvX1Lpn5EYfVxlyX1ISgRXtdRnivM7r6F3Og="); try (FileContentDecryptor decryptor = new FileContentDecryptorImpl(headerKey, macKey, ByteBuffer.wrap(header), 0, true)) { @@ -68,7 +68,7 @@ public class FileContentDecryptorImplTest { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); - final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJa=="); + final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJG=="); try (FileContentDecryptor decryptor = new FileContentDecryptorImpl(headerKey, macKey, ByteBuffer.wrap(header), 0, true)) { @@ -80,7 +80,7 @@ public class FileContentDecryptorImplTest { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); - final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJA=="); + final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJg=="); final byte[] content = Base64.decode("aAAAAAAAAAAAAAAAAAAAALTwrBTNYP7m3yTGKlhka9WPvX1Lpn5EYfVxlyX1ISgRXtdRnivM7r6F3Og="); try (FileContentDecryptor decryptor = new FileContentDecryptorImpl(headerKey, macKey, ByteBuffer.wrap(header), 0, true)) { @@ -101,7 +101,7 @@ public class FileContentDecryptorImplTest { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); - final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJA=="); + final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJg=="); final byte[] content = Base64.decode("AAAAAAAAAAAAAAAAAAAAALTwrBTNYP7m3yTGKlhka9WPvX1Lpn5EYfVxlyX1ISgRXtdRnivM7r6F3OG="); try (FileContentDecryptor decryptor = new FileContentDecryptorImpl(headerKey, macKey, ByteBuffer.wrap(header), 0, false)) { @@ -124,7 +124,7 @@ public class FileContentDecryptorImplTest { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "AES"); - final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJA=="); + final byte[] header = Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJg=="); try (FileContentDecryptor decryptor = new FileContentDecryptorImpl(headerKey, macKey, ByteBuffer.wrap(header), 0, true)) { decryptor.cancelWithException(new IOException("can not do")); diff --git a/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileHeaderTest.java b/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileHeaderTest.java index 391fa88b4..bbe61a522 100644 --- a/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileHeaderTest.java +++ b/main/filesystem-crypto/src/test/java/org/cryptomator/crypto/engine/impl/FileHeaderTest.java @@ -53,13 +53,26 @@ public class FileHeaderTest { @Test public void testDecryption() { + final byte[] keyBytes = new byte[32]; + final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); + final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); + final ByteBuffer headerBuf = ByteBuffer.wrap(Base64.decode("AAAAAAAAAAAAAAAAAAAAACNqP4ddv3Z2rUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga24VjC86+zlHN49BfMdzvHF3f9EE0LSnRLSsu6ps3IRcJg==")); + final FileHeader header = FileHeader.decrypt(headerKey, new ThreadLocalMac(macKey, "HmacSHA256"), headerBuf); + + Assert.assertEquals(-1l, header.getPayload().getFilesize()); + Assert.assertArrayEquals(new byte[16], header.getIv()); + Assert.assertArrayEquals(new byte[32], header.getPayload().getContentKey().getEncoded()); + } + + @Test + public void testDecryptionOfOldHeader() { final byte[] keyBytes = new byte[32]; final SecretKey headerKey = new SecretKeySpec(keyBytes, "AES"); final SecretKey macKey = new SecretKeySpec(keyBytes, "HmacSHA256"); final ByteBuffer headerBuf = ByteBuffer.wrap(Base64.decode("AAAAAAAAAAAAAAAAAAAAANyVwHiiQImjrUiiFJKEIIdTD4r7x0U2ualjtPHEy3OLzqdAPU1ga26lJzstK9RUv1hj5zDC4wC9FgMfoVE1mD0HnuENuYXkJA==")); final FileHeader header = FileHeader.decrypt(headerKey, new ThreadLocalMac(macKey, "HmacSHA256"), headerBuf); - Assert.assertEquals(42, header.getPayload().getFilesize()); + Assert.assertEquals(42l, header.getPayload().getFilesize()); Assert.assertArrayEquals(new byte[16], header.getIv()); Assert.assertArrayEquals(new byte[32], header.getPayload().getContentKey().getEncoded()); } From 72f6ee647730c54576aea3648a0e9099976a4ccd Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 23:52:23 +0200 Subject: [PATCH 6/7] updated localizations --- .../ui/src/main/resources/localization/de.txt | 8 +- .../ui/src/main/resources/localization/es.txt | 10 +- .../ui/src/main/resources/localization/fr.txt | 10 +- .../ui/src/main/resources/localization/hu.txt | 10 +- .../ui/src/main/resources/localization/it.txt | 20 ++-- .../ui/src/main/resources/localization/kr.txt | 8 +- .../ui/src/main/resources/localization/lv.txt | 91 +++++++++++++++++++ .../ui/src/main/resources/localization/nl.txt | 8 +- .../ui/src/main/resources/localization/pl.txt | 90 ++++++++++++++++++ .../ui/src/main/resources/localization/pt.txt | 90 ++++++++++++++---- .../ui/src/main/resources/localization/ru.txt | 8 +- .../ui/src/main/resources/localization/sk.txt | 21 ++++- .../ui/src/main/resources/localization/tr.txt | 8 +- .../ui/src/main/resources/localization/uk.txt | 90 ++++++++++++++++++ 14 files changed, 437 insertions(+), 35 deletions(-) create mode 100644 main/ui/src/main/resources/localization/lv.txt create mode 100644 main/ui/src/main/resources/localization/pl.txt create mode 100644 main/ui/src/main/resources/localization/uk.txt diff --git a/main/ui/src/main/resources/localization/de.txt b/main/ui/src/main/resources/localization/de.txt index aab0f325b..7761861c9 100644 --- a/main/ui/src/main/resources/localization/de.txt +++ b/main/ui/src/main/resources/localization/de.txt @@ -82,4 +82,10 @@ main.directoryList.remove.confirmation.title = Tresor entfernen main.directoryList.remove.confirmation.header = Möchten Sie diesen Tresor wirklich entfernen? main.directoryList.remove.confirmation.content = Dieser Tresor wird nur aus der Liste entfernt. Um den Tresor unwiderruflich zu löschen, entfernen Sie bitte die Dateien aus Ihrem Dateisystem. upgrade.version3to4.msg = Dieser Tresor muss auf ein neueres Format aktualisiert werden.\nVerschlüsselte Ordnernamen werden dabei aktualisiert.\nStellen Sie bitte sicher, dass derzeit keine Synchronisation stattfindet. -upgrade.version3to4.err.io = Migration aufgrund eines I/O-Fehlers fehlgeschlagen.\nWeitere Informationen in der Log-Datei. \ No newline at end of file +upgrade.version3to4.err.io = Migration aufgrund eines I/O-Fehlers fehlgeschlagen.\nWeitere Informationen in der Log-Datei. +settings.prefGvfsScheme.label = WebDAV Schema +# upgrade.fxml +upgrade.confirmation.label = Ja, die Synchronisation ist abgeschlossen +initialize.messageLabel.notEmpty = Tresor ist nicht leer +unlock.label.savePassword = Passwort speichern +unlock.errorMessage.unauthenticVersionMac = Versions-MAC konnte nicht authentifiziert werden. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/es.txt b/main/ui/src/main/resources/localization/es.txt index 8a7efa64b..13d356589 100644 --- a/main/ui/src/main/resources/localization/es.txt +++ b/main/ui/src/main/resources/localization/es.txt @@ -14,7 +14,7 @@ initialize.label.password = Contraseña initialize.label.retypePassword = Reintroduzca contraseña initialize.button.ok = Crear caja fuerte initialize.messageLabel.alreadyInitialized = Caja fuerte ya está inicializado -initialize.messageLabel.initializationFailed = No se pudo inicializar la caja fuerte. Ver archivo de registro para detalles. +initialize.messageLabel.initializationFailed = No se pudo inicializar la caja fuerte. Ver archivo de registro para detalles. # notfound.fxml notfound.label = No se pudo encontrar la caja fuerte. Se movió a otro lugar? # upgrade.fxml @@ -83,4 +83,10 @@ main.directoryList.remove.confirmation.title = Borrar caja fuerte main.directoryList.remove.confirmation.header = ¿Quieres de verdad borrar este caja fuerte? main.directoryList.remove.confirmation.content = La caja fuerte solo se borra de la lista. Para eliminarla permanente por favor elimina los datos de tú sistema de archivos. upgrade.version3to4.msg = Este caja fuerte se debe migrar a un formato más reciente.\nLos nombres de las carpetas cifradas se actualizan.\nPor favor asegurarse de que la sincronización ha terminado antes de seguir. -upgrade.version3to4.err.io = Migración ha fallado por causa de una excepción I/O. Para detalles revisa el archivo de registro. \ No newline at end of file +upgrade.version3to4.err.io = Migración ha fallado por causa de una excepción I/O. Para detalles revisa el archivo de registro. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/fr.txt b/main/ui/src/main/resources/localization/fr.txt index 36ac3046a..605b00092 100644 --- a/main/ui/src/main/resources/localization/fr.txt +++ b/main/ui/src/main/resources/localization/fr.txt @@ -78,10 +78,16 @@ initialize.messageLabel.passwordStrength.0 = Très faible initialize.messageLabel.passwordStrength.1 = Faible initialize.messageLabel.passwordStrength.2 = Raisonnable initialize.messageLabel.passwordStrength.3 = Fort -initialize.messageLabel.passwordStrength.4 = Très fort\n +initialize.messageLabel.passwordStrength.4 = Très fort initialize.label.doNotForget = ATTENTION \: Si vous oubliez votre mot de passe, il n'y aura aucun moyen de récupérer vos données. main.directoryList.remove.confirmation.title = Retirer un coffre main.directoryList.remove.confirmation.header = Voulez-vous vraiment retirer ce coffre ? main.directoryList.remove.confirmation.content = Le coffre sera simplement retiré de la liste. Pour le supprimer complètement, supprimez les fichiers depuis votre système de fichiers. upgrade.version3to4.msg = Ce coffre doit être converti dans un nouveau format. Les noms de dossiers chiffrés seront mis à jour.\nMerci de vous assurer que la procédure de synchronisation est terminée avant de continuer. -upgrade.version3to4.err.io = La migration a échoué à cause d'une erreur d'entrée/sortie. Référez-vous au fichier log pour plus de détails. \ No newline at end of file +upgrade.version3to4.err.io = La migration a échoué à cause d'une erreur d'entrée/sortie. Référez-vous au fichier log pour plus de détails. +settings.prefGvfsScheme.label = Schéma d'URI WebDAV +# upgrade.fxml +upgrade.confirmation.label = Oui, je suis certain que la synchronisation est finie +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/hu.txt b/main/ui/src/main/resources/localization/hu.txt index f332a172f..772dcb44e 100644 --- a/main/ui/src/main/resources/localization/hu.txt +++ b/main/ui/src/main/resources/localization/hu.txt @@ -79,4 +79,12 @@ initialize.messageLabel.passwordStrength.4 = Nagyon erős initialize.label.doNotForget = FONTOS\: Ha elfelejted a jelszavadat, akkor nincs lehetőség az adataid visszaállítására. main.directoryList.remove.confirmation.title = Széf eltávolítása main.directoryList.remove.confirmation.header = Tényleg törölni akarod ezt a széfet? -main.directoryList.remove.confirmation.content = A széf csak a listából lesz eltávolítva. Végleges törléshez kérlek töröld a merevlemezen tárolt fájlokat. \ No newline at end of file +main.directoryList.remove.confirmation.content = A széf csak a listából lesz eltávolítva. Végleges törléshez kérlek töröld a merevlemezen tárolt fájlokat. +upgrade.version3to4.msg = Ennek a széfnek egy újabb formátumra való migrációja szükséges. A titkosított könyvtárnevek frissítve lesznek. Kérlek, győződj meg a szinkronizáció befejeztéről mielőtt továbblépnél. +upgrade.version3to4.err.io = Migráció meghíusúlt egy I/O kivétel miatt. Kérlek nézd meg a naplófájlt a további részletekért. +settings.prefGvfsScheme.label = WebDAV séma +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/it.txt b/main/ui/src/main/resources/localization/it.txt index 12ddb3da6..dabf824aa 100644 --- a/main/ui/src/main/resources/localization/it.txt +++ b/main/ui/src/main/resources/localization/it.txt @@ -18,7 +18,7 @@ initialize.messageLabel.initializationFailed = Non è possibile inizializzare il notfound.label = Il vault non può essere trovato. E' stato rimosso? # upgrade.fxml upgrade.button = Aggiorna vault -upgrade.version3dropBundleExtension.msg = Questo vault deve essere migrato ad un nuovo formato.\n"%1$s" verrà rinominato in "%2$s".\nPer favore verifica che la sincronizzazione sia finita prima di procedere\n +upgrade.version3dropBundleExtension.msg = Questo vault deve essere migrato ad un nuovo formato.\n"%1$s" verrà rinominato in "%2$s".\nPer favore verifica che la sincronizzazione sia finita prima di procedere upgrade.version3dropBundleExtension.err.alreadyExists = Migrazione automatica fallita.\n"%s" esiste già. # unlock.fxml unlock.label.password = Password @@ -45,14 +45,14 @@ changePassword.errorMessage.wrongPassword = Password errata changePassword.errorMessage.decryptionFailed = Decriptaggio fallito changePassword.infoMessage.success = Password cambiata # unlocked.fxml -unlocked.button.lock = Blocca vault +unlocked.button.lock = Blocca vault unlocked.moreOptions.reveal = Apri il disco unlocked.moreOptions.copyUrl = Copia url WebDAV unlocked.label.revealFailed = Comando fallito unlocked.label.unmountFailed = Espulsione disco fallita unlocked.label.statsEncrypted = criptato unlocked.label.statsDecrypted = decriptato -unlocked.ioGraph.yAxis.label = Volume dati (MiB/s) +unlocked.ioGraph.yAxis.label = Volume dati (MiB/s) # mac_warnings.fxml macWarnings.windowTitle = Pericolo - File corroto in %s macWarnings.message = Cryptomator ha individuato potenziali pericolose corruzioni nei seguenti file\: @@ -69,8 +69,8 @@ settings.requiresRestartLabel = * Cryptomator deve essere riavviato tray.menu.open = Apri tray.menu.quit = Chiudi tray.infoMsg.title = Ancora in esecuzione -tray.infoMsg.msg = Cryptomator è ancora in esecuzione. Chiudilo utilizzando l'icona nel menù di stato. -tray.infoMsg.msg.osx = Cryptomator è ancora in esecuzione. Chiudilo utilizzando l'icona nella barra del menù. +tray.infoMsg.msg = Cryptomator è ancora in esecuzione. Chiudilo utilizzando l'icona nel menù di stato. +tray.infoMsg.msg.osx = Cryptomator è ancora in esecuzione. Chiudilo utilizzando l'icona nella barra del menù. initialize.messageLabel.passwordStrength.0 = Molto debole initialize.messageLabel.passwordStrength.1 = Debole initialize.messageLabel.passwordStrength.2 = Buona @@ -79,4 +79,12 @@ initialize.messageLabel.passwordStrength.4 = Molto sicura initialize.label.doNotForget = IMPORTANTE\: Se dimentichi la password, non c'è modo di recuperare i tuoi dati. main.directoryList.remove.confirmation.title = Rimuovi vault main.directoryList.remove.confirmation.header = Vuoi davvero rimuovere questo vault? -main.directoryList.remove.confirmation.content = Il vault sarà rimosso solo dalla lista. Per eliminarlo definitivamente, elimina per favore i file dal tuo hard disk. \ No newline at end of file +main.directoryList.remove.confirmation.content = Il vault sarà rimosso solo dalla lista. Per eliminarlo definitivamente, elimina per favore i file dal tuo hard disk. +upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding. +upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/kr.txt b/main/ui/src/main/resources/localization/kr.txt index 5ae12cfc0..28de51ae3 100644 --- a/main/ui/src/main/resources/localization/kr.txt +++ b/main/ui/src/main/resources/localization/kr.txt @@ -81,4 +81,10 @@ main.directoryList.remove.confirmation.title = 보관함 삭제 main.directoryList.remove.confirmation.header = 정말 이 보관함을 삭제하시겠습니까? main.directoryList.remove.confirmation.content = 보관함이 목록에서만 제거되었습니다. 데이터를 완전히 제거하시려면, 여러분의 파일시스템이서 제거해 주시기 바랍니다. upgrade.version3to4.msg = 이 보관함은 새로운 형식으로 바뀔 필요가 있습니다. 암호화된 폴더 이름이 업데이트 될 것입니다. 진행하기 전에 동기화가 완료되었는지 확인하기 바랍니다. -upgrade.version3to4.err.io = 입출력 예외 문제로 마이그레이션이 실패하였습니다. 자세한 사항은 로그 파일을 확인하세요. \ No newline at end of file +upgrade.version3to4.err.io = 입출력 예외 문제로 마이그레이션이 실패하였습니다. 자세한 사항은 로그 파일을 확인하세요. +settings.prefGvfsScheme.label = WebDAV sceme +# upgrade.fxml +upgrade.confirmation.label = 네. 동기화가 완료되었음을 확인하였습니다. +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/lv.txt b/main/ui/src/main/resources/localization/lv.txt new file mode 100644 index 000000000..bb6d91f2a --- /dev/null +++ b/main/ui/src/main/resources/localization/lv.txt @@ -0,0 +1,91 @@ +app.name = Cryptomator +# main.fxml +main.emptyListInstructions = Noklikšķiniet šeit, lai pievienotu glabātuvi +main.directoryList.contextMenu.remove = Noņemt no saraksta +main.directoryList.contextMenu.changePassword = Mainīt paroli +main.addDirectory.contextMenu.new = Izveidot jaunu glabātuvi +main.addDirectory.contextMenu.open = Atvērt esošu glabātuvi +# welcome.fxml +welcome.checkForUpdates.label.currentlyChecking = Pārbauda atjauninājumus... +welcome.newVersionMessage = Lejupielādei pieejama versija %1$s.\nŠī ir %2$s. +# initialize.fxml +initialize.label.password = Parole +initialize.label.retypePassword = Atkārto paroli +initialize.button.ok = Izveidot glabātuvi +initialize.messageLabel.alreadyInitialized = Glabātuve jau ir inicializēta +initialize.messageLabel.initializationFailed = Nevarēja inicializēt glabātuvi. Sīkākai informācijai skati žurnālu. +# notfound.fxml +notfound.label = Nevar atrast glabātuvi. Vai tā ir pārvietota? +# upgrade.fxml +upgrade.button = Atjaunināt glabātuvi +upgrade.version3dropBundleExtension.msg = Šī glabātuve ir jāmigrē uz jaunākas versijas formātu.\n"%1$s" tiks pārsaukta par "%2$s".\nPirms palaišanas pārliecinies, ka ir beigusies sinhronizācija. +upgrade.version3dropBundleExtension.err.alreadyExists = Automātiskā migrācija neizdevās.\n"%s" jau eksistē. +# unlock.fxml +unlock.label.password = Parole +unlock.label.mountName = Diska nosaukums +unlock.label.winDriveLetter = Diska burts +unlock.label.downloadsPageLink = Visas Cryptomator versijas +unlock.label.advancedHeading = Papildus opcijas +unlock.button.unlock = Atslēgt glabātuvi +unlock.button.advancedOptions.show = Vairāk opcijas +unlock.button.advancedOptions.hide = Mazāk opcijas +unlock.choicebox.winDriveLetter.auto = Piešķirt automātiski +unlock.errorMessage.wrongPassword = Nepareiza parole +unlock.errorMessage.mountingFailed = Montēšana neizdevās. Sīkākai informācijai skati žurnālu. +unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Neatbastīta glabātuve. Šī glabātuve ir veidota ar vecāku Cryptomator versiju. +unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Neatbastīta glabātuve. Šī glabātuve ir veidota ar jaunāku Cryptomator versiju. +unlock.messageLabel.startServerFailed = WebDAV servera palaišana neizdevās. +# change_password.fxml +changePassword.label.oldPassword = Vecā parole +changePassword.label.newPassword = Jaunā parole +changePassword.label.retypePassword = Atkārto paroli +changePassword.label.downloadsPageLink = Visas Cryptomator versijas +changePassword.button.change = Mainīt paroli +changePassword.errorMessage.wrongPassword = Nepareiza parole +changePassword.errorMessage.decryptionFailed = Atšifrēšana neizdevās +changePassword.infoMessage.success = Parole nomainīta +# unlocked.fxml +unlocked.button.lock = Aizslēgt glabātuvi +unlocked.moreOptions.reveal = Atklāt disku +unlocked.moreOptions.copyUrl = Kopēt WebDAV saiti +unlocked.label.revealFailed = Komunikācija neizdevās +unlocked.label.unmountFailed = Diska izgrūšana neizdevās +unlocked.label.statsEncrypted = šifrēts +unlocked.label.statsDecrypted = atšifrēts +unlocked.ioGraph.yAxis.label = Caurlaidība (MiB/s) +# mac_warnings.fxml +macWarnings.windowTitle = Bīstami - %s satur bojātu datni +macWarnings.message = Cryptomator konstatēja potenciāli ļaunprātīgu bojājumu sekojošām datnēm\: +macWarnings.moreInformationButton = Skatīt vairāk +macWarnings.whitelistButton = Atšifrēt iezīmēto tāpat +# settings.fxml +settings.version.label = Versija %s +settings.checkForUpdates.label = Meklēt atjauninājumus +settings.port.label = WebDAV Ports * +settings.port.prompt = 0 \= automātiski +settings.useipv6.label = Izmantot IPv6 +settings.requiresRestartLabel = * Cryptomator nepieciešams restarts +# tray icon +tray.menu.open = Atvērt +tray.menu.quit = Iziet +tray.infoMsg.title = Joprojām darbojās +# Fuzzy +tray.infoMsg.msg = Cryptomator joprojām darbojās. Iziet var no ikonas. +tray.infoMsg.msg.osx = Cryptomator is still alive. joprojām darbojās. Iziet var no izvēlnes ikonas. +initialize.messageLabel.passwordStrength.0 = Ļoti vāja +initialize.messageLabel.passwordStrength.1 = Vāja +initialize.messageLabel.passwordStrength.2 = Vidēja +initialize.messageLabel.passwordStrength.3 = Stipra +initialize.messageLabel.passwordStrength.4 = Ļoti stipra +initialize.label.doNotForget = SVARĪGI\: Ja tu aizmirsti paroli, nav ceļa datu atjaunošanai +main.directoryList.remove.confirmation.title = Noņemt glabātuvi +main.directoryList.remove.confirmation.header = Vai tiešām vēlie noņemt šo glabātuvi? +main.directoryList.remove.confirmation.content = Glabātuve tiks noņemta tikai no saraksta. Lai to dzēstu pilnībā, lūdzu nodzēs to no datņu sistēmas. +upgrade.version3to4.msg = Šī glabātuve ir jāmigrē uz jaunāku formāta versiju. Sifrētie mapju nosaukumi tiks atjaunināti. Pirms palaišanas lūdzu pārliecinies, ka ir pabeigusies sinhronizācija. +upgrade.version3to4.err.io = Migrācija neizdevās dēļ I/O izņēmuma. Sīkākai informācijai skati žurnālu. +settings.prefGvfsScheme.label = WebDAV shēma +# upgrade.fxml +upgrade.confirmation.label = Jā, esmu pārliecinājies, ka sinhronizācija ir pabeigta. +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/nl.txt b/main/ui/src/main/resources/localization/nl.txt index 473534744..f037ef101 100644 --- a/main/ui/src/main/resources/localization/nl.txt +++ b/main/ui/src/main/resources/localization/nl.txt @@ -81,4 +81,10 @@ main.directoryList.remove.confirmation.title = Verwijder Kluis main.directoryList.remove.confirmation.header = Weet je zeker dat je deze kluis wilt verwijderen? main.directoryList.remove.confirmation.content = De kluis zal alleen van de lijst worden verwijdert. Verwijder de bestanden van het bestandssysteem voor permanente verwijdering. upgrade.version3to4.msg = Deze kluis dient gemigreerd te worden naar een nieuwer type. \nVersleutelde mapnamen zullen worden geüpdatet. \nZorg ervoor dat de synchronisatie voltooid is alvorens door te gaan. -upgrade.version3to4.err.io = Migratie mislukt door een I/O Exception. Zie logbestand voor details. \ No newline at end of file +upgrade.version3to4.err.io = Migratie mislukt door een I/O Exception. Zie logbestand voor details. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/pl.txt b/main/ui/src/main/resources/localization/pl.txt new file mode 100644 index 000000000..0ba42552b --- /dev/null +++ b/main/ui/src/main/resources/localization/pl.txt @@ -0,0 +1,90 @@ +app.name = Cryptomator +# main.fxml +main.emptyListInstructions = Kliknij tutaj aby dodać kryptę +main.directoryList.contextMenu.remove = Usuń z listy +main.directoryList.contextMenu.changePassword = Zmień hasło +main.addDirectory.contextMenu.new = Stwórz nową kryptę +main.addDirectory.contextMenu.open = Otwórz istniejącą kryptę +# welcome.fxml +welcome.checkForUpdates.label.currentlyChecking = Sprawdź aktualizację +welcome.newVersionMessage = Wersja %1$s może być pobrana.\nObecna %2$s. +# initialize.fxml +initialize.label.password = Hasło +initialize.label.retypePassword = Ponów hasło +initialize.button.ok = Stwórz kryptę +initialize.messageLabel.alreadyInitialized = Krypta aktualnie załadowana +initialize.messageLabel.initializationFailed = Nie można załadować krypty. Sprawdź logi +# notfound.fxml +notfound.label = Krypta nie znaleziona. Przeniesiona? +# upgrade.fxml +upgrade.button = Aktualizuj kryptę +upgrade.version3dropBundleExtension.msg = Ta krypta musi zostać przeniesiona do nowego formatu\n"%1$s" zamienione na "%2$s".\nProszę synchronizować przed skończeniem procesu +upgrade.version3dropBundleExtension.err.alreadyExists = Błąd automatycznej migracji.\n"%s" już istnieje +# unlock.fxml +unlock.label.password = Hasło +unlock.label.mountName = Nazwa dysku +unlock.label.winDriveLetter = Litera dysku +unlock.label.downloadsPageLink = Wszystkie wersje Cryptomatora +unlock.label.advancedHeading = Zaawansowane opcje +unlock.button.unlock = Odblokuj kryptę +unlock.button.advancedOptions.show = Więcej opcji +unlock.button.advancedOptions.hide = Mniej opcji +unlock.choicebox.winDriveLetter.auto = Przydzielone automatycznie +unlock.errorMessage.wrongPassword = Złe hasło +unlock.errorMessage.mountingFailed = Błąd zamontowania. Sprawdź logi +unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Niewspierana krypta, utworzona przez starszą wersje Cryptomatora +unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Niewspierana krypta, utworzona przez nowszą wersje Cryptomatora +unlock.messageLabel.startServerFailed = Błąd startu serwera WebDAV +# change_password.fxml +changePassword.label.oldPassword = Stare hasło +changePassword.label.newPassword = Nowe hasło +changePassword.label.retypePassword = Powtórz hasło +changePassword.label.downloadsPageLink = Wszystkie wersje Cryptomatora +changePassword.button.change = Zmień hasło +changePassword.errorMessage.wrongPassword = Złe hasło +changePassword.errorMessage.decryptionFailed = Błąd deszyfracji +changePassword.infoMessage.success = Hasło zmienione +# unlocked.fxml +unlocked.button.lock = Zablokuj kryptę +unlocked.moreOptions.reveal = Zwolnij napęd +unlocked.moreOptions.copyUrl = Skopiuj url WebDAV +unlocked.label.revealFailed = Zła komenda +unlocked.label.unmountFailed = Błąd wysuwania napędu +unlocked.label.statsEncrypted = Zaszyfrowany +unlocked.label.statsDecrypted = Odszyfrowany +unlocked.ioGraph.yAxis.label = Wydajność (MiB/s) +# mac_warnings.fxml +macWarnings.windowTitle = Uwaga - Plik uszkodzony %s +macWarnings.message = Wykryto zagrożenie w plikach +macWarnings.moreInformationButton = Czytaj więcej +macWarnings.whitelistButton = Odszyfruj wszystko +# settings.fxml +settings.version.label = Wersja %s +settings.checkForUpdates.label = Sprawdź aktualizacje +settings.port.label = WebDAV port * +settings.port.prompt = 0 \= Automatycznie +settings.useipv6.label = Użyj IPv6 +settings.requiresRestartLabel = * Cryptomator wymaga restartu +# tray icon +tray.menu.open = Otwórz +tray.menu.quit = Wyjdź +tray.infoMsg.title = Nadal działa +tray.infoMsg.msg = Cryptomator działa nadal. Wyjdź z ikony tray +tray.infoMsg.msg.osx = Cryptomator działa nadal. Wyjdź z menu programu +initialize.messageLabel.passwordStrength.0 = Bardzo słabe +initialize.messageLabel.passwordStrength.1 = Słabe +initialize.messageLabel.passwordStrength.2 = W porządku +initialize.messageLabel.passwordStrength.3 = Mocne +initialize.messageLabel.passwordStrength.4 = Bardzo mocne +initialize.label.doNotForget = Ważne\! Jeśli zapomnisz hasło stracisz dostęp do danych +main.directoryList.remove.confirmation.title = Usuń kryptę +main.directoryList.remove.confirmation.header = Czy na pewno chcesz osunąć kryptę? +main.directoryList.remove.confirmation.content = Ta krypta zostanie usunięta z listy. Ostatecznie usuń dane z dysku. +upgrade.version3to4.msg = Krypta wymaga migracji do nowszej wersji. Nazwa folderu zaszyfrowanego zostanie zaktualizowana. Synchronizuj dane przed procesem. +upgrade.version3to4.err.io = Błąd migracji I/O Exception. Sprawdź logi +settings.prefGvfsScheme.label = Schemat WebDAV +# upgrade.fxml +upgrade.confirmation.label = Tak, jestem pewien, że zakończyłem synchronizacje +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/pt.txt b/main/ui/src/main/resources/localization/pt.txt index ef8cdfbe3..0cb657db4 100644 --- a/main/ui/src/main/resources/localization/pt.txt +++ b/main/ui/src/main/resources/localization/pt.txt @@ -1,34 +1,90 @@ -# Copyright (c) 2016 The Cryptomator Contributors -# This file is licensed under the terms of the MIT license. -# See the LICENSE.txt file for more info. -# -# Contributors: -# Will -# André Di Biasi - app.name = Cryptomator +# main.fxml +main.emptyListInstructions = Clique aqui para adicionar uma caixa-forte main.directoryList.contextMenu.remove = Remover da lista main.directoryList.contextMenu.changePassword = Alterar senha +main.addDirectory.contextMenu.new = Criar nova caixa-forte +main.addDirectory.contextMenu.open = Abrir caixa-forte existente # welcome.fxml -welcome.checkForUpdates.label.currentlyChecking = Procurando atualizações... +welcome.checkForUpdates.label.currentlyChecking = Buscando por atualizações... +welcome.newVersionMessage = Versão %1$s pode ser abaixada. Esta é a versão %2$s. # initialize.fxml initialize.label.password = Senha -initialize.label.retypePassword = Digite a senha novamente +initialize.label.retypePassword = Redigitar senha +initialize.button.ok = Criar caixa-forte +initialize.messageLabel.alreadyInitialized = Caixa-forte já inicializada +initialize.messageLabel.initializationFailed = Não pôde inicializar a caixa-forte. Ver arquivo de log para mais detalhes. +# notfound.fxml +notfound.label = A caixa-forte não pode ser encontrada. Ela foi movida? +# upgrade.fxml +upgrade.button = Atualizar caixa-forte +upgrade.version3dropBundleExtension.msg = Esta caixa-forte tem que ser a migrada a um novo formato. "%1$s" será renomeada para "%2$s". Por favor assegure-se de que a sincronização foi finalizada antes de proceder com a migração. +upgrade.version3dropBundleExtension.err.alreadyExists = A migração automática falhou. "%s" já existe. # unlock.fxml unlock.label.password = Senha +unlock.label.mountName = Nome do drive +unlock.label.winDriveLetter = Letra do drive +unlock.label.downloadsPageLink = Todas as versões do Cryptomator unlock.label.advancedHeading = Opções avançadas +unlock.button.unlock = Abrir caixa-forte +unlock.button.advancedOptions.show = Mais opções unlock.button.advancedOptions.hide = Menos opções unlock.choicebox.winDriveLetter.auto = Atribuir automaticamente -unlock.errorMessage.wrongPassword = Senha incorreta -unlock.errorMessage.mountingFailed = Montagem falhou. Veja o arquivo de log para detalhes -unlock.messageLabel.startServerFailed = Inicialização do servidor WEBDAV falhou +unlock.errorMessage.wrongPassword = Senha errada +unlock.errorMessage.mountingFailed = Falha ao montar. Ver arquivo de log para mais detalhes. +unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Caixa-forte não suportada. Esta caixa-forte foi criada por uma versão antiga do Cryptomator. +unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Caixa-forte não suportada. Esta caixa-forte foi criada por uma versão mais nova do Cryptomator. +unlock.messageLabel.startServerFailed = Falha ao iniciar servidor WebDAV. # change_password.fxml -changePassword.label.oldPassword = Senha antiga +changePassword.label.oldPassword = Senha anterior changePassword.label.newPassword = Nova senha -changePassword.label.retypePassword = Digite a senha novamente +changePassword.label.retypePassword = Re-digitar senha +changePassword.label.downloadsPageLink = Todas as versões do Cryptomator changePassword.button.change = Alterar senha +changePassword.errorMessage.wrongPassword = Senha incorreta +changePassword.errorMessage.decryptionFailed = Falha ao desencriptar changePassword.infoMessage.success = Senha alterada -unlocked.label.revealFailed = Falha no comando -unlocked.label.unmountFailed = Falha ao ejetar o drive +# unlocked.fxml +unlocked.button.lock = Fechar caixa-forte +unlocked.moreOptions.reveal = Mostrar drive +unlocked.moreOptions.copyUrl = Copiar URL WebDAV +unlocked.label.revealFailed = Falha ao mostrar drive +unlocked.label.unmountFailed = Falha ao ejetar drive unlocked.label.statsEncrypted = encriptado +unlocked.label.statsDecrypted = desencriptado +unlocked.ioGraph.yAxis.label = Taxa de transferência (MiB/s) +# mac_warnings.fxml +macWarnings.windowTitle = Perigo - Arquivo corrompido na %s +macWarnings.message = Cryptomator detectou potenciais corrupções maliciosas nos seguintes arquivos\: macWarnings.moreInformationButton = Saiba mais +macWarnings.whitelistButton = Desencriptar selecionado de qualquer modo +# settings.fxml +settings.version.label = Versão %s +settings.checkForUpdates.label = Verificar por atualizações +settings.port.label = Port WebDAV * +settings.port.prompt = 0 \= Escolher automaticamente +settings.useipv6.label = Usar IPv6 literal +settings.requiresRestartLabel = * Cryptomator necessita ser reiniciado +# tray icon +tray.menu.open = Abrir +tray.menu.quit = Sair +tray.infoMsg.title = Ainda em execução +tray.infoMsg.msg = Cryptomator ainda está ativo. Finalize-o a partir do ícone da bandeja. +tray.infoMsg.msg.osx = Cryptomator ainda está ativo. Finalize-o a partir do ícone da barra de menu. +initialize.messageLabel.passwordStrength.0 = Muito fraca +initialize.messageLabel.passwordStrength.1 = Fraca +initialize.messageLabel.passwordStrength.2 = Razoável +initialize.messageLabel.passwordStrength.3 = Forte +initialize.messageLabel.passwordStrength.4 = Muito forte +initialize.label.doNotForget = IMPORTANTE\: se você esquecer a sua senha, não haverá como recuperar os seus dados. +main.directoryList.remove.confirmation.title = Remover caixa-forte +main.directoryList.remove.confirmation.header = Você realmente quer remover esta caixa-forte? +main.directoryList.remove.confirmation.content = A caixa-forte somente será removida da lista. Para apagá-la permanentemente, por favor apagar os arquivos do seu sistema de arquivos. +upgrade.version3to4.msg = Esta caixa-forte tem que ser migrada a um novo formato. Os nomes das pastas encriptadas serão atualizados. Por favor assegure-se de que a sincronização foi finalizada antes de proceder com a migração. +upgrade.version3to4.err.io = Falha na migração devido a um erro de E/S. Ver arquivo de log para mais detalhes. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/ru.txt b/main/ui/src/main/resources/localization/ru.txt index 64754cb8d..f3dec6089 100644 --- a/main/ui/src/main/resources/localization/ru.txt +++ b/main/ui/src/main/resources/localization/ru.txt @@ -83,4 +83,10 @@ main.directoryList.remove.confirmation.title = Удаление хранилищ main.directoryList.remove.confirmation.header = Вы действительно хотите удалить это хранилище? main.directoryList.remove.confirmation.content = Хранилище будет удалено только из списка. Чтобы стереть его окончательно, удалите файлы из файловой системы. upgrade.version3to4.msg = Это хранилище требуется преобразовать в новый формат. Зашифрованные имена папок будут обновлены. Прежде чем продолжить, выполните синхронизацию. -upgrade.version3to4.err.io = Преобразование не выполнено из-за ошибки ввода-вывода. См. подробности в файле-отчёте. \ No newline at end of file +upgrade.version3to4.err.io = Преобразование не выполнено из-за ошибки ввода-вывода. См. подробности в файле-отчёте. +settings.prefGvfsScheme.label = Схема WebDAV +# upgrade.fxml +upgrade.confirmation.label = Да, синхронизация точно завершена +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/sk.txt b/main/ui/src/main/resources/localization/sk.txt index 9c05a37d7..f3924bb68 100644 --- a/main/ui/src/main/resources/localization/sk.txt +++ b/main/ui/src/main/resources/localization/sk.txt @@ -22,7 +22,7 @@ notfound.label = Trezor nemohol byť nenájdený. Bol presunutý? # upgrade.fxml upgrade.button = Upgradnúť trezor upgrade.version3dropBundleExtension.msg = Tento trezor musí byť premigrovaný na nový formát. "%1$s" bude premenovaný na "%2$s". Prosím, uistite sa že je dokončená synchronizácia skôr než budete pokračovať. -upgrade.version3dropBundleExtension.err.alreadyExists = Automatická migrácia zlyhala. "%s" už existuje. +upgrade.version3dropBundleExtension.err.alreadyExists = Automatická migrácia zlyhala. "%s" už existuje. # unlock.fxml unlock.label.password = Heslo unlock.label.mountName = Názov jednotky @@ -73,4 +73,21 @@ tray.menu.open = Otvoriť tray.menu.quit = Vypnúť tray.infoMsg.title = Stále beží tray.infoMsg.msg = Cryptomator je stále spustený. Vypnite ho pomocou ikony v systémovej lište. -tray.infoMsg.msg.osx = Cryptomator je stále sputený. Ukončite ho pomocou ikony v menu. \ No newline at end of file +tray.infoMsg.msg.osx = Cryptomator je stále sputený. Ukončite ho pomocou ikony v menu. +initialize.messageLabel.passwordStrength.0 = Very weak +initialize.messageLabel.passwordStrength.1 = Weak +initialize.messageLabel.passwordStrength.2 = Fair +initialize.messageLabel.passwordStrength.3 = Strong +initialize.messageLabel.passwordStrength.4 = Very strong +initialize.label.doNotForget = IMPORTANT\: If you forget your password, there is no way to recover your data. +main.directoryList.remove.confirmation.title = Remove Vault +main.directoryList.remove.confirmation.header = Do you really want to remove this vault? +main.directoryList.remove.confirmation.content = The vault will only be removed from the list. To permanently delete it, please delete the files from your filesystem. +upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding. +upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/tr.txt b/main/ui/src/main/resources/localization/tr.txt index 44fcda4ff..acd84ccb0 100644 --- a/main/ui/src/main/resources/localization/tr.txt +++ b/main/ui/src/main/resources/localization/tr.txt @@ -81,4 +81,10 @@ main.directoryList.remove.confirmation.title = Kasayı Sil main.directoryList.remove.confirmation.header = Kasayı silmek istediğinize emin misiniz ? main.directoryList.remove.confirmation.content = Kasa yalnızca listeden silinecek. Tamamen silmek için dosya sisteminizden dosyaları elle siliniz. upgrade.version3to4.msg = Bu kasanın yeni formata geçirilmesi gerekmekte. Şifreli klasör isimleri güncellenecek. Devam etmeden önce senkronizasyonun bittiğine emin olun. -upgrade.version3to4.err.io = Format değiştirme işlemi I/O Hatası dolayısı ile başarısız oldu. Detaylar için log dosyasına bakın \ No newline at end of file +upgrade.version3to4.err.io = Format değiştirme işlemi I/O Hatası dolayısı ile başarısız oldu. Detaylar için log dosyasına bakın +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file diff --git a/main/ui/src/main/resources/localization/uk.txt b/main/ui/src/main/resources/localization/uk.txt new file mode 100644 index 000000000..babb3f8ce --- /dev/null +++ b/main/ui/src/main/resources/localization/uk.txt @@ -0,0 +1,90 @@ +app.name = Cryptomator +# main.fxml +main.emptyListInstructions = Натисніть тут, щоб додати сховище +main.directoryList.contextMenu.remove = Видалити зі списку +main.directoryList.contextMenu.changePassword = Змінити пароль +main.addDirectory.contextMenu.new = Створити нове сховище +main.addDirectory.contextMenu.open = Відкрити існуюче сховище +# welcome.fxml +welcome.checkForUpdates.label.currentlyChecking = Перевірка оновлень... +welcome.newVersionMessage = Доступна версія %1$s.\nВаша версія %2$s. +# initialize.fxml +initialize.label.password = Пароль +initialize.label.retypePassword = Повторіть пароль +initialize.button.ok = Створити сховище +initialize.messageLabel.alreadyInitialized = Сховище вже ініціалізовано +initialize.messageLabel.initializationFailed = Неможливо ініціалізувати сховище. Дивіться деталі в файлі-звіті. +# notfound.fxml +notfound.label = Сховище не знайдене. Воно було переміщене? +# upgrade.fxml +upgrade.button = Оновити сховище +upgrade.version3dropBundleExtension.msg = Це сховище необхідно перетворити в новіший формат.\n"%1$s" буде перейменовано в "%2$s".\nПереконайтеся, що синхронізація завершена, перш ніж продовжити. +upgrade.version3dropBundleExtension.err.alreadyExists = Автоматичне перетворення не виконане.\n"%s" вже існує. +# unlock.fxml +unlock.label.password = Пароль +unlock.label.mountName = Ім'я диска +unlock.label.winDriveLetter = Літера диска +unlock.label.downloadsPageLink = Всі версії Cryptomator +unlock.label.advancedHeading = Додаткові налаштування +unlock.button.unlock = Розблокувати сховище +unlock.button.advancedOptions.show = Більше налаштувань +unlock.button.advancedOptions.hide = Менше налаштувань +unlock.choicebox.winDriveLetter.auto = Призначити автоматично +unlock.errorMessage.wrongPassword = Пароль невірний +unlock.errorMessage.mountingFailed = Монтування невдале. Дивіться деталі в файлі-звіті. +unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Сховище не підтримується. Воно було створене в старішій версії Cryptomator. +unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Сховище не підтримується. Воно було створене в новішій версії Cryptomator. +unlock.messageLabel.startServerFailed = Помилка запуску сервера WebDAV. +# change_password.fxml +changePassword.label.oldPassword = Старий пароль +changePassword.label.newPassword = Новий пароль +changePassword.label.retypePassword = Повторіть пароль +changePassword.label.downloadsPageLink = Всі версії Cryptomator +changePassword.button.change = Змінити пароль +changePassword.errorMessage.wrongPassword = Пароль невірний +changePassword.errorMessage.decryptionFailed = Розшифрування невдале +changePassword.infoMessage.success = Пароль змінений +# unlocked.fxml +unlocked.button.lock = Заблокувати сховище +unlocked.moreOptions.reveal = Відкрити накопичувач +unlocked.moreOptions.copyUrl = Копіювати URL-адресу WebDAV +unlocked.label.revealFailed = Команда невдала +unlocked.label.unmountFailed = Вилучення диска невдале +unlocked.label.statsEncrypted = зашифровано +unlocked.label.statsDecrypted = розшифровано +unlocked.ioGraph.yAxis.label = Пропускна спроможність (МіБ/с) +# mac_warnings.fxml +macWarnings.windowTitle = Небезпека - Пошкоджений файл в %s +macWarnings.message = Cryptomator виявив потенційно небезпечні пошкодження в наступних файлах\: +macWarnings.moreInformationButton = Докладніше +macWarnings.whitelistButton = Розшифрувати обрані все одно +# settings.fxml +settings.version.label = Версія %s +settings.checkForUpdates.label = Перевірити оновлення +settings.port.label = Порт WebDAV * +settings.port.prompt = 0 \= Обрати автоматично +settings.useipv6.label = Використовувати IPv6 +settings.requiresRestartLabel = * Необхідне перезавантаження Cryptomator +# tray icon +tray.menu.open = Відкрити +tray.menu.quit = Вихід +tray.infoMsg.title = Ще працює +tray.infoMsg.msg = Cryptomator все ще працює. Вийдіть за допомогою значка в області сповіщень. +tray.infoMsg.msg.osx = Cryptomator все ще працює. Вийдіть за допомогою значка в рядку меню. +initialize.messageLabel.passwordStrength.0 = Дуже слабкий +initialize.messageLabel.passwordStrength.1 = Слабкий +initialize.messageLabel.passwordStrength.2 = Прийнятний +initialize.messageLabel.passwordStrength.3 = Сильний +initialize.messageLabel.passwordStrength.4 = Дуже сильний +initialize.label.doNotForget = ВАЖЛИВО\: Якщо ви забудете свій пароль, відновити дані буде неможливо. +main.directoryList.remove.confirmation.title = Видалити сховище +main.directoryList.remove.confirmation.header = Ви дійсно хочете видалити це сховище? +main.directoryList.remove.confirmation.content = Сховище буде видалене тільки зі списку. Щоб стерти його остаточно, видаліть файли із файлової системи. +upgrade.version3to4.msg = Це сховище необхідно перетворити в новий формат. Зашифровані імена папок будуть оновлені. Перш ніж продовжити, виконайте синхронізацію. +upgrade.version3to4.err.io = Перетворення невдале через помилку введення-виведення. Дивіться деталі в файлі-звіті. +settings.prefGvfsScheme.label = WebDAV scheme +# upgrade.fxml +upgrade.confirmation.label = Yes, I've made sure that synchronization has finished +initialize.messageLabel.notEmpty = Vault not empty +unlock.label.savePassword = Save password +unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. \ No newline at end of file From 84ac6d88f573ba08b0bb96372e9aeb15b9c11b7e Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Thu, 15 Sep 2016 23:55:37 +0200 Subject: [PATCH 7/7] added new localization files to unit test [ci skip] --- main/ui/src/test/java/org/cryptomator/ui/LocalizationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/ui/src/test/java/org/cryptomator/ui/LocalizationTest.java b/main/ui/src/test/java/org/cryptomator/ui/LocalizationTest.java index 2b67a282e..6f086064c 100644 --- a/main/ui/src/test/java/org/cryptomator/ui/LocalizationTest.java +++ b/main/ui/src/test/java/org/cryptomator/ui/LocalizationTest.java @@ -31,7 +31,7 @@ public class LocalizationTest { private static final Logger LOG = LoggerFactory.getLogger(LocalizationTest.class); private static final String RESOURCE_FOLDER_PATH = "/localization/"; private static final String REF_FILE_NAME = "en.txt"; - private static final String[] LANG_FILE_NAMES = {"de.txt", "es.txt", "fr.txt", "hu.txt", "it.txt", "kr.txt", "nl.txt", "pt.txt", "ru.txt", "sk.txt", "tr.txt"}; + private static final String[] LANG_FILE_NAMES = {"de.txt", "es.txt", "fr.txt", "hu.txt", "it.txt", "kr.txt", "lv.txt", "nl.txt", "pl.txt", "pt.txt", "ru.txt", "sk.txt", "tr.txt", "uk.txt"}; /* * @see Formatter