Merge branch 'release/1.2.0' into develop

# Conflicts:
#	main/ant-kit/pom.xml
#	main/commons-test/pom.xml
#	main/commons/pom.xml
#	main/filesystem-api/pom.xml
#	main/filesystem-charsets/pom.xml
#	main/filesystem-crypto-integration-tests/pom.xml
#	main/filesystem-crypto/pom.xml
#	main/filesystem-inmemory/pom.xml
#	main/filesystem-invariants-tests/pom.xml
#	main/filesystem-nameshortening/pom.xml
#	main/filesystem-nio/pom.xml
#	main/filesystem-stats/pom.xml
#	main/frontend-api/pom.xml
#	main/frontend-webdav/pom.xml
#	main/jacoco-report/pom.xml
#	main/keychain/pom.xml
#	main/pom.xml
#	main/uber-jar/pom.xml
#	main/ui/pom.xml
This commit is contained in:
Sebastian Stenzel
2016-09-19 15:12:24 +02:00
24 changed files with 483 additions and 50 deletions

View File

@@ -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);
}

View File

@@ -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

View File

@@ -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"));

View File

@@ -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());
}

View File

@@ -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"));

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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);
}

View File

@@ -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.
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.

View File

@@ -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

View File

@@ -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.
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.

View File

@@ -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.
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.

View File

@@ -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.
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.

View File

@@ -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.
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.

View File

@@ -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 = 입출력 예외 문제로 마이그레이션이 실패하였습니다. 자세한 사항은 로그 파일을 확인하세요.
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.

View File

@@ -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.

View File

@@ -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.
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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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 = Преобразование не выполнено из-за ошибки ввода-вывода. См. подробности в файле-отчёте.
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.

View File

@@ -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.
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.

View File

@@ -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
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.

View File

@@ -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.

View File

@@ -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