From 79c48778cec1e5625a888109c4e3bfef4ffbe461 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 24 Sep 2021 10:57:05 +0200 Subject: [PATCH 1/9] Be more lenient when handling open vault events either via drag and drop or registered file extensions --- src/main/java/org/cryptomator/common/Constants.java | 1 + .../org/cryptomator/ui/launcher/AppLaunchEventHandler.java | 5 ++--- .../org/cryptomator/ui/mainwindow/MainWindowController.java | 6 +++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/cryptomator/common/Constants.java b/src/main/java/org/cryptomator/common/Constants.java index 06dedfc2d..90bd3c8ec 100644 --- a/src/main/java/org/cryptomator/common/Constants.java +++ b/src/main/java/org/cryptomator/common/Constants.java @@ -5,6 +5,7 @@ public interface Constants { String MASTERKEY_FILENAME = "masterkey.cryptomator"; String MASTERKEY_BACKUP_SUFFIX = ".bkup"; String VAULTCONFIG_FILENAME = "vault.cryptomator"; + String CRYPTOMATOR_FILENAME_EXT = ".cryptomator"; byte[] PEPPER = new byte[0]; } diff --git a/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java b/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java index f4e5bb790..52ba838c0 100644 --- a/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java +++ b/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java @@ -11,12 +11,11 @@ import javax.inject.Named; import javax.inject.Singleton; import javafx.application.Platform; import java.io.IOException; -import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; -import static org.cryptomator.common.Constants.MASTERKEY_FILENAME; +import static org.cryptomator.common.Constants.CRYPTOMATOR_FILENAME_EXT; @Singleton class AppLaunchEventHandler { @@ -69,7 +68,7 @@ class AppLaunchEventHandler { assert Platform.isFxApplicationThread(); try { final Vault v; - if (potentialVaultPath.getFileName().toString().equals(MASTERKEY_FILENAME)) { + if (potentialVaultPath.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) { v = vaultListManager.add(potentialVaultPath.getParent()); } else { v = vaultListManager.add(potentialVaultPath); diff --git a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java index 5d1781e19..c81aff125 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowController.java @@ -27,6 +27,7 @@ import java.nio.file.Path; import java.util.Set; import java.util.stream.Collectors; +import static org.cryptomator.common.Constants.CRYPTOMATOR_FILENAME_EXT; import static org.cryptomator.common.Constants.MASTERKEY_FILENAME; import static org.cryptomator.common.Constants.VAULTCONFIG_FILENAME; @@ -94,6 +95,9 @@ public class MainWindowController implements FxController { private boolean containsVault(Path path) { try { + if (path.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) { + path = path.getParent(); + } return CryptoFileSystemProvider.checkDirStructureForVault(path, VAULTCONFIG_FILENAME, MASTERKEY_FILENAME) != DirStructure.UNRELATED; } catch (IOException e) { return false; @@ -102,7 +106,7 @@ public class MainWindowController implements FxController { private void addVault(Path pathToVault) { try { - if (pathToVault.getFileName().toString().equals(VAULTCONFIG_FILENAME)) { + if (pathToVault.getFileName().toString().endsWith(CRYPTOMATOR_FILENAME_EXT)) { vaultListManager.add(pathToVault.getParent()); } else { vaultListManager.add(pathToVault); From 5670e77908d1c7766d51b2248c5b9bf8a8b3ad16 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Fri, 24 Sep 2021 11:47:57 +0200 Subject: [PATCH 2/9] closes #1783 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aa5979ce8..a64c2b7e1 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ 1.0.0-beta2 1.0.0-beta1 1.3.2 - 1.3.2 + 1.3.3 1.2.6 From 6b0625609b6d36ca6bf93ba3be49d0bab9ff1059 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 24 Sep 2021 15:43:52 +0200 Subject: [PATCH 3/9] case insensitive semver validation --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0874739c..a3e9a2b59 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -97,7 +97,7 @@ jobs: echo "::set-output name=semVerNum::${SEM_VER_NUM}" echo "::set-output name=ppaVerStr::${SEM_VER_STR/-/\~}-${REVCOUNT}" echo "::set-output name=revNum::${REVCOUNT}" - - uses: rubenesp87/semver-validation-action@0.0.6 + - uses: skymatic/semver-validation-action@v1 with: version: ${{ steps.versions.outputs.semVerStr }} From 53afaf1b125dcfc53880bd8227c7eb0b7f1db0a0 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Fri, 24 Sep 2021 16:31:07 +0200 Subject: [PATCH 4/9] Replace Files.isWritable() by real write test --- .../CreateNewVaultLocationController.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java b/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java index 39e25d503..35f2be069 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java @@ -29,16 +29,20 @@ import javafx.scene.control.ToggleGroup; import javafx.stage.DirectoryChooser; import javafx.stage.Stage; import java.io.File; +import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; import java.util.ResourceBundle; +import java.util.UUID; @AddVaultWizardScoped public class CreateNewVaultLocationController implements FxController { private static final Logger LOG = LoggerFactory.getLogger(CreateNewVaultLocationController.class); private static final Path DEFAULT_CUSTOM_VAULT_PATH = Paths.get(System.getProperty("user.home")); + private static final String TEMP_FILE_FORMAT = "cryptomator-%s.tmp"; private final Stage window; private final Lazy chooseNameScene; @@ -92,7 +96,7 @@ public class CreateNewVaultLocationController implements FxController { statusText.set(resourceBundle.getString("addvaultwizard.new.locationDoesNotExist")); statusGraphic.set(badLocation); return false; - } else if (!Files.isWritable(p.getParent())) { + } else if (!isActuallyWritable(p.getParent())) { statusText.set(resourceBundle.getString("addvaultwizard.new.locationIsNotWritable")); statusGraphic.set(badLocation); return false; @@ -107,6 +111,21 @@ public class CreateNewVaultLocationController implements FxController { } } + private boolean isActuallyWritable(Path p) { + Path tmpFile = p.resolve(String.format(TEMP_FILE_FORMAT, UUID.randomUUID())); + try (var chan = Files.newByteChannel(tmpFile, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE, StandardOpenOption.DELETE_ON_CLOSE)) { + return true; + } catch (IOException e) { + return false; + } finally { + try { + Files.deleteIfExists(tmpFile); + } catch (IOException e) { + LOG.warn("Unable to delete temporary file {}. Needs to be deleted manually.", tmpFile); + } + } + } + @FXML public void initialize() { predefinedLocationToggler.selectedToggleProperty().addListener(this::togglePredefinedLocation); From 90bceb0f6843dde07bb2225098793589eeef1116 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 24 Sep 2021 21:01:19 +0200 Subject: [PATCH 5/9] Update to OpenJFX 17 (#1809) * update to openjfx 17.0.0.1 * use new javafx API instead of AWT --- pom.xml | 2 +- .../org/cryptomator/ui/controls/SecurePasswordField.java | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index a64c2b7e1..f8fec0fe6 100644 --- a/pom.xml +++ b/pom.xml @@ -37,7 +37,7 @@ 1.2.6 - 16 + 17.0.0.1 3.12.0 3.18.1 2.2 diff --git a/src/main/java/org/cryptomator/ui/controls/SecurePasswordField.java b/src/main/java/org/cryptomator/ui/controls/SecurePasswordField.java index 3689b7e6e..0290f512d 100644 --- a/src/main/java/org/cryptomator/ui/controls/SecurePasswordField.java +++ b/src/main/java/org/cryptomator/ui/controls/SecurePasswordField.java @@ -10,6 +10,7 @@ package org.cryptomator.ui.controls; import com.google.common.base.Strings; +import javafx.application.Platform; import javafx.beans.NamedArg; import javafx.beans.Observable; import javafx.beans.property.BooleanProperty; @@ -27,7 +28,6 @@ import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; import javafx.scene.input.TransferMode; -import java.awt.Toolkit; import java.nio.CharBuffer; import java.text.Normalizer; import java.text.Normalizer.Form; @@ -123,8 +123,7 @@ public class SecurePasswordField extends TextField { } private void updateCapsLocked() { - //TODO: fixed in JavaFX 17. AWT code needed until update (see https://bugs.openjdk.java.net/browse/JDK-8259680) - capsLocked.set(isFocused() && Toolkit.getDefaultToolkit().getLockingKeyState(java.awt.event.KeyEvent.VK_CAPS_LOCK)); + capsLocked.set(Platform.isKeyLocked(KeyCode.CAPS).orElse(false)); } private void updateContainingNonPrintableChars() { From 18be4ba257e7d02d8d370d1ae11c18a4b3b6bdc2 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 27 Sep 2021 13:03:55 +0200 Subject: [PATCH 6/9] update integrations-api --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f8fec0fe6..d95653b80 100644 --- a/pom.xml +++ b/pom.xml @@ -28,10 +28,10 @@ 2.1.0-beta13 - 1.0.0-rc1 - 1.0.0-beta2 - 1.0.0-beta2 - 1.0.0-beta1 + 1.0.0 + 1.0.0-rc1 + 1.0.0-rc1 + 1.0.0-rc1 1.3.2 1.3.3 1.2.6 From 10155426294b7463e372602b63e1b11a9b4a6a4d Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 27 Sep 2021 13:31:05 +0200 Subject: [PATCH 7/9] adjust to latest API --- .../org/cryptomator/common/keychain/KeychainManager.java | 5 +++++ .../org/cryptomator/common/keychain/MapKeychainAccess.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java index 57af6c685..c97d0e9c9 100644 --- a/src/main/java/org/cryptomator/common/keychain/KeychainManager.java +++ b/src/main/java/org/cryptomator/common/keychain/KeychainManager.java @@ -38,6 +38,11 @@ public class KeychainManager implements KeychainAccessProvider { return result; } + @Override + public String displayName() { + return getClass().getName(); + } + @Override public void storePassphrase(String key, CharSequence passphrase) throws KeychainAccessException { getKeychainOrFail().storePassphrase(key, passphrase); diff --git a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java index 1b2bedfce..dbffae92e 100644 --- a/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java +++ b/src/test/java/org/cryptomator/common/keychain/MapKeychainAccess.java @@ -14,6 +14,11 @@ class MapKeychainAccess implements KeychainAccessProvider { private final Map map = new HashMap<>(); + @Override + public String displayName() { + return getClass().getName(); + } + @Override public void storePassphrase(String key, CharSequence passphrase) { char[] pw = new char[passphrase.length()]; From cda7cc8ef92021385e9cc62ee66bd2eb12cd16b3 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 27 Sep 2021 13:41:02 +0200 Subject: [PATCH 8/9] dependency bump --- pom.xml | 26 ++++++++++++++-------- src/main/resources/license/THIRD-PARTY.txt | 26 +++++++++++----------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/pom.xml b/pom.xml index d95653b80..4b6ad5119 100644 --- a/pom.xml +++ b/pom.xml @@ -39,21 +39,29 @@ 17.0.0.1 3.12.0 - 3.18.1 + 3.18.2 2.2 - 30.1.1-jre - 2.37 - 2.8.7 + 31.0-jre + 2.38.1 + 2.8.8 1.5.2 - 1.7.31 - 1.2.3 + 1.7.32 + 1.2.6 - 5.7.2 - 3.11.2 + 5.8.1 + 3.12.4 2.2 + + + google-maven + Google Maven Repo + https://maven.google.com + + + @@ -263,7 +271,7 @@ org.owasp dependency-check-maven - 6.2.2 + 6.3.1 diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index b9477e670..e7bfdba81 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -17,10 +17,10 @@ Cryptomator uses 40 third-party dependencies under the following licenses: - jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) - jnr-constants (com.github.jnr:jnr-constants:0.9.15 - http://github.com/jnr/jnr-constants) - jnr-ffi (com.github.jnr:jnr-ffi:2.1.12 - http://github.com/jnr/jnr-ffi) - - Gson (com.google.code.gson:gson:2.8.7 - https://github.com/google/gson/gson) - - Dagger (com.google.dagger:dagger:2.37 - https://github.com/google/dagger) + - Gson (com.google.code.gson:gson:2.8.8 - https://github.com/google/gson/gson) + - Dagger (com.google.dagger:dagger:2.38.1 - https://github.com/google/dagger) - Guava InternalFutureFailureAccess and InternalFutures (com.google.guava:failureaccess:1.0.1 - https://github.com/google/guava/failureaccess) - - Guava: Google Core Libraries for Java (com.google.guava:guava:30.1.1-jre - https://github.com/google/guava/guava) + - Guava: Google Core Libraries for Java (com.google.guava:guava:31.0-jre - https://github.com/google/guava) - Apache Commons CLI (commons-cli:commons-cli:1.4 - http://commons.apache.org/proper/commons-cli/) - javax.inject (javax.inject:javax.inject:1 - http://code.google.com/p/atinject/) - Apache Commons Lang (org.apache.commons:commons-lang3:3.12.0 - https://commons.apache.org/proper/commons-lang/) @@ -52,31 +52,31 @@ Cryptomator uses 40 third-party dependencies under the following licenses: - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.6 - https://eclipse.org/jetty/jetty-servlet) - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.6 - https://eclipse.org/jetty/jetty-util) Eclipse Public License - v 1.0: - - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) + - Logback Classic Module (ch.qos.logback:logback-classic:1.2.6 - http://logback.qos.ch/logback-classic) + - Logback Core Module (ch.qos.logback:logback-core:1.2.6 - http://logback.qos.ch/logback-core) Eclipse Public License - v 2.0: - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GNU Lesser General Public License: - - Logback Classic Module (ch.qos.logback:logback-classic:1.2.3 - http://logback.qos.ch/logback-classic) - - Logback Core Module (ch.qos.logback:logback-core:1.2.3 - http://logback.qos.ch/logback-core) + - Logback Classic Module (ch.qos.logback:logback-classic:1.2.6 - http://logback.qos.ch/logback-classic) + - Logback Core Module (ch.qos.logback:logback-core:1.2.6 - http://logback.qos.ch/logback-core) GPLv2: - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GPLv2+CE: - - javafx-base (org.openjfx:javafx-base:16 - https://openjdk.java.net/projects/openjfx/javafx-base/) - - javafx-controls (org.openjfx:javafx-controls:16 - https://openjdk.java.net/projects/openjfx/javafx-controls/) - - javafx-fxml (org.openjfx:javafx-fxml:16 - https://openjdk.java.net/projects/openjfx/javafx-fxml/) - - javafx-graphics (org.openjfx:javafx-graphics:16 - https://openjdk.java.net/projects/openjfx/javafx-graphics/) + - javafx-base (org.openjfx:javafx-base:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-base/) + - javafx-controls (org.openjfx:javafx-controls:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-controls/) + - javafx-fxml (org.openjfx:javafx-fxml:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-fxml/) + - javafx-graphics (org.openjfx:javafx-graphics:17.0.0.1 - https://openjdk.java.net/projects/openjfx/javafx-graphics/) LGPL 2.1: - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) LGPL-2.1-or-later: - Java Native Access (net.java.dev.jna:jna:5.9.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.9.0 - https://github.com/java-native-access/jna) MIT License: - - java jwt (com.auth0:java-jwt:3.18.1 - https://github.com/auth0/java-jwt) + - java jwt (com.auth0:java-jwt:3.18.2 - https://github.com/auth0/java-jwt) - jnr-x86asm (com.github.jnr:jnr-x86asm:1.0.2 - http://github.com/jnr/jnr-x86asm) - jnr-fuse (com.github.serceman:jnr-fuse:0.5.5 - https://github.com/SerCeMan/jnr-fuse) - zxcvbn4j (com.nulab-inc:zxcvbn:1.5.2 - https://github.com/nulab/zxcvbn4j) - - SLF4J API Module (org.slf4j:slf4j-api:1.7.31 - http://www.slf4j.org) + - SLF4J API Module (org.slf4j:slf4j-api:1.7.32 - http://www.slf4j.org) The BSD 2-Clause License: - EasyBind (com.tobiasdiez:easybind:2.2 - https://github.com/tobiasdiez/EasyBind) From 069c07cbf144dcf74d1db579d1ffdb1eed9bbb06 Mon Sep 17 00:00:00 2001 From: Cryptobot Date: Mon, 27 Sep 2021 13:49:32 +0200 Subject: [PATCH 9/9] New Crowdin updates (#1807) * New translations strings.properties [ci skip] --- src/main/resources/i18n/strings_de.properties | 8 +- src/main/resources/i18n/strings_it.properties | 248 +++++++++--------- src/main/resources/i18n/strings_ja.properties | 9 +- .../resources/i18n/strings_pt_BR.properties | 5 + src/main/resources/i18n/strings_sv.properties | 5 + src/main/resources/i18n/strings_tr.properties | 5 + 6 files changed, 150 insertions(+), 130 deletions(-) diff --git a/src/main/resources/i18n/strings_de.properties b/src/main/resources/i18n/strings_de.properties index aaa7e10bd..b2c543dcf 100644 --- a/src/main/resources/i18n/strings_de.properties +++ b/src/main/resources/i18n/strings_de.properties @@ -76,7 +76,7 @@ addvault.new.readme.accessLocation.3=Alle zu diesem Laufwerk hinzugefügten Date addvault.new.readme.accessLocation.4=Diese Datei kannst du löschen. ## Existing addvaultwizard.existing.instruction=Wähle die Datei „masterkey.cryptomator“ deines vorhandenen Tresors aus. -addvaultwizard.existing.chooseBtn=Durchsuchen … +addvaultwizard.existing.chooseBtn=Durchsuchen… addvaultwizard.existing.filePickerTitle=Masterkey-Datei auswählen ## Success addvaultwizard.success.nextStepsInstructions=Tresor „%s“ hinzugefügt.\nUm auf Inhalte zuzugreifen oder welche hinzuzufügen, musst du den Tresor entsperren. Du kannst ihn aber auch zu jedem späteren Zeitpunkt entsperren. @@ -98,7 +98,7 @@ forgetPassword.information=Dies löscht das gespeicherte Passwort dieses Tresors forgetPassword.confirmBtn=Passwort vergessen # Unlock -unlock.title=Entsperre "%s" +unlock.title="%s" entsperren unlock.passwordPrompt=Gib das Passwort für „%s“ ein: unlock.savePassword=Passwort merken unlock.unlockBtn=Entsperren @@ -294,8 +294,8 @@ main.vaultDetail.stats=Tresorstatistik ### Missing main.vaultDetail.missing.info=Cryptomator konnte keinen Tresor mit diesem Pfad finden. main.vaultDetail.missing.recheck=Erneut prüfen -main.vaultDetail.missing.remove=Aus Tresorliste entfernen… -main.vaultDetail.missing.changeLocation=Speicherort des Tresors ändern… +main.vaultDetail.missing.remove=Aus Tresorliste entfernen … +main.vaultDetail.missing.changeLocation=Speicherort des Tresors ändern … ### Needs Migration main.vaultDetail.migrateButton=Tresor aktualisieren main.vaultDetail.migratePrompt=Dein Tresor muss auf ein neues Format aktualisiert werden, bevor du auf ihn zugreifen kannst diff --git a/src/main/resources/i18n/strings_it.properties b/src/main/resources/i18n/strings_it.properties index 2414aa23a..1f0071b77 100644 --- a/src/main/resources/i18n/strings_it.properties +++ b/src/main/resources/i18n/strings_it.properties @@ -59,43 +59,43 @@ addvaultwizard.new.generateRecoveryKeyChoice.yes=Si, per favore, è meglio esser addvaultwizard.new.generateRecoveryKeyChoice.no=No grazie, non perderò la mia password ### Information addvault.new.readme.storageLocation.fileName=IMPORTANTE.rtf -addvault.new.readme.storageLocation.1=⚠ FILE CASSAFORTE ⚠ -addvault.new.readme.storageLocation.2=Questa è la posizione di archiviazione della tua cassaforte. +addvault.new.readme.storageLocation.1=⚠️ FILE DELLA CASSAFORTE ⚠️ +addvault.new.readme.storageLocation.2=Questa è la posizione d'archiviazione della tua cassaforte. addvault.new.readme.storageLocation.3=NON -addvault.new.readme.storageLocation.4=• modificare qualsiasi file in questa cartella o -addvault.new.readme.storageLocation.5=• Incolla tutti i file da criptare in questa directory. -addvault.new.readme.storageLocation.6=Se si desidera crittografare i file e visualizzare il contenuto della cassaforte, effettuare le seguenti operazioni: +addvault.new.readme.storageLocation.4=• alterare alcun file in questa cartella o +addvault.new.readme.storageLocation.5=• incollare alcun file per la crittografia in questa cartella. +addvault.new.readme.storageLocation.6=Se vuoi crittografare i file e visualizzare il contenuto della cassaforte, fa quanto segue: addvault.new.readme.storageLocation.7=1. Aggiungi questa cassaforte a Cryptomator. -addvault.new.readme.storageLocation.8=2. Sblocca la cassaforte in Criptomator. -addvault.new.readme.storageLocation.9=3. Apri la posizione di accesso cliccando sul pulsante "Rivela". -addvault.new.readme.storageLocation.10=Se hai bisogno di aiuto, leggi la documentazione: %s +addvault.new.readme.storageLocation.8=2. Sblocca la cassaforte su Cryptomator. +addvault.new.readme.storageLocation.9=3. Apri la posizione d'accesso cliccando sul pulsante "Rivela". +addvault.new.readme.storageLocation.10=Se ti serve aiuto, visita la documentazione: %s addvault.new.readme.accessLocation.fileName=BENVENUTO.rtf -addvault.new.readme.accessLocation.1=🔐 VOLUME CRIPTATO 🔐 -addvault.new.readme.accessLocation.2=Questa è la posizione di accesso della tua cassaforte. -addvault.new.readme.accessLocation.3=Tutti i file aggiunti a questo volume verranno crittografati da Cryptomator. Puoi lavorare su di esso come su qualsiasi altra unità/cartella. Questa è solo una vista decriptata del suo contenuto, i file rimangono continuamente criptati sul disco rigido. -addvault.new.readme.accessLocation.4=Sei libero di rimuovere questo file. +addvault.new.readme.accessLocation.1=🔐 VOLUME CRITTOGRAFATO 🔐 +addvault.new.readme.accessLocation.2=Questa è la posizione d'accesso della tua cassaforte. +addvault.new.readme.accessLocation.3=Ogni file aggiunto a questo volume sarà crittografato da Cryptomator. Puoi lavorarci come su ogni altra unità/cartella. Questa è solo una vista decrittografata del suo contenuto, i tuoi file restano sempre crittografati sul tuo disco rigido. +addvault.new.readme.accessLocation.4=Sentiti libero di rimuovere questo file. ## Existing -addvaultwizard.existing.instruction=Scegliere il file "masterkey.cryptomator" del deposito esistente. +addvaultwizard.existing.instruction=Scegli il file "masterkey.cryptomator" della tua cassaforte esistente. addvaultwizard.existing.chooseBtn=Scegli… -addvaultwizard.existing.filePickerTitle=Seleziona file Masterkey +addvaultwizard.existing.filePickerTitle=Seleziona il File Masterkey ## Success -addvaultwizard.success.nextStepsInstructions=Aggiunta cassaforte"%s".\nÈ necessario sbloccare questa cassaforte per accedere o aggiungere contenuti. In alternativa puoi sbloccarla in qualsiasi momento successivo. -addvaultwizard.success.unlockNow=Sblocca adesso +addvaultwizard.success.nextStepsInstructions=Cassaforte "%s" aggiunta.\nDevi sbloccare questa cassaforte per accedere o aggiungere contenuti. Altrimenti, puoi sbloccarla in qualsiasi momento successivo. +addvaultwizard.success.unlockNow=Sblocca Ora # Remove Vault removeVault.title=Rimuovi Cassaforte -removeVault.information=Questo farà dimenticare Cryptomator a questo vault. Puoi aggiungerlo di nuovo in seguito. Nessun file crittografato verrà eliminato dal tuo disco rigido. +removeVault.information=Questo farà solo dimenticare questa cassaforte a Cryptomator. Puoi aggiungerla nuovamente in seguito. Nessun file crittografato sarà eliminato dal tuo disco rigido. removeVault.confirmBtn=Rimuovi Cassaforte # Change Password -changepassword.title=Modifica password -changepassword.enterOldPassword=Inserisci la password attuale per "%s" -changepassword.finalConfirmation=Ho capito che non sarò in grado di accedere ai miei dati se dimentico la mia password +changepassword.title=Modifica la Password +changepassword.enterOldPassword=Inserisci la password corrente per "%s" +changepassword.finalConfirmation=Capisco che non potrò accedere ai miei dati se dimentico la mia password # Forget Password -forgetPassword.title=Password dimenticata -forgetPassword.information=Questo cancellerà la password salvata di questa cassaforte dal tuo portachiavi di sistema. -forgetPassword.confirmBtn=Password dimenticata +forgetPassword.title=Dimentica la Password +forgetPassword.information=Questo eliminerà la password salvata di questa cassaforte dal portachiavi del tuo sistema. +forgetPassword.confirmBtn=Dimentica Password # Unlock unlock.title=Sblocca "%s" @@ -103,129 +103,129 @@ unlock.passwordPrompt=Inserisci la password per "%s": unlock.savePassword=Ricorda la Password unlock.unlockBtn=Sblocca ## -unlock.chooseMasterkey.prompt=Impossibile trovare il file masterkey per questa cassaforte nella posizione prevista. Scegliere manualmente il file chiave. -unlock.chooseMasterkey.filePickerTitle=Seleziona file Masterkey +unlock.chooseMasterkey.prompt=Impossibile trovare il file Masterkey per questa cassaforte alla sua posizione prevista. Sei pregato di sceglierlo manualmente. +unlock.chooseMasterkey.filePickerTitle=Seleziona il File Masterkey ## Success -unlock.success.message="%s" sbloccato con successo! La tua cassaforte è ora accessibile tramite il suo drive virtuale. -unlock.success.rememberChoice=Ricorda la scelta, non mostrare ancora -unlock.success.revealBtn=Rivela Drive +unlock.success.message="%s" sbloccato correttamente! La tua cassaforte è ora accessibile tramite la sua unità virtuale. +unlock.success.rememberChoice=Ricorda la scelta, non mostrarmelo più +unlock.success.revealBtn=Rivela l'Unità ## Failure unlock.error.heading=Impossibile sbloccare la cassaforte ### Invalid Mount Point -unlock.error.invalidMountPoint.notExisting=Il punto di montaggio non è una directory vuota o non esiste: %s -unlock.error.invalidMountPoint.existing=Il punto di Mount/cartella esiste già o la cartella superiore è mancante: %s +unlock.error.invalidMountPoint.notExisting=Il punto di montaggio "%s" non è una cartella, non è vuoto o non esiste. +unlock.error.invalidMountPoint.existing=Il punto di montaggio "%s" esiste già o la cartella madre è mancante. # Lock ## Force lock.forced.heading=Blocco normale fallito -lock.forced.message=Il bloccaggio di "%s" è stato impedito da operazioni in sospeso o da file aperti. È possibile forzare il blocco di questa cassaforte, tuttavia interrompere I/O potrebbe causare la perdita di dati non salvati. +lock.forced.message=Il bloccaggio di "%s" è stato impedito dalle operazioni in sospeso o dai file aperti. Puoi forzare il blocco di questa cassaforte, tuttavia, interrompere I/O potrebbe risultare nella perdita dei dati non salvati. lock.forced.confirmBtn=Forza Blocco ## Failure -lock.fail.heading=Blocco cassaforte fallito. -lock.fail.message=Impossibile bloccare la cassaforte "%s". Assicurati che il lavoro non salvato sia salvato ovunque e che le operazioni di Lettura/Scrittura importanti siano concluse. Per chiudere la cassaforte, termina il processo di Cryptomator. +lock.fail.heading=Blocco della cassaforte fallito. +lock.fail.message=Impossibile bloccare la cassaforte "%s". Assicurati che il lavoro non salvato sia salvato altrove e che le importanti operazioni di Lettura/Scrittura siano terminate. Per chiudere la cassaforte, termina il processo di Cryptomator. # Migration -migration.title=Aggiorna Cassaforte +migration.title=Aggiorna la Cassaforte ## Start -migration.start.prompt=La tua cassaforte "%s" deve essere aggiornata a un formato più recente. Prima di procedere, assicurati che non ci sia nessuna sincronizzazione in sospeso che influisca su questa cassaforte. +migration.start.prompt=La tua cassaforte "%s" dev'esser aggiornata a un formato più recente. Prima di procedere, assicurati che non ci sia alcuna sincronizzazione in sospeso relativa a questa cassaforte. migration.start.confirm=Sì, la mia cassaforte è completamente sincronizzata ## Run -migration.run.enterPassword=Immettere la password per "%s" -migration.run.startMigrationBtn=Migra Cassaforte -migration.run.progressHint=Potrebbe richiedere un po' di tempo… +migration.run.enterPassword=Inserisci la password per "%s" +migration.run.startMigrationBtn=Migra la Cassaforte +migration.run.progressHint=Questo potrebbe richiedere un po' di tempo… ## Success -migration.success.nextStepsInstructions=Migrato "%s" con successo.\nOra puoi sbloccare la tua cassaforte. -migration.success.unlockNow=Sblocca adesso +migration.success.nextStepsInstructions="%s" migrata con successo.\nPuoi ora sbloccare la tua cassaforte. +migration.success.unlockNow=Sblocca Ora ## Missing file system capabilities -migration.error.missingFileSystemCapabilities.title=File System non supportato -migration.error.missingFileSystemCapabilities.description=La migrazione non è stata avviata perché la cassaforte è situata su un file system inadeguato. -migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Il file system non supporta nomi di file lunghi. -migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Il file system non supporta percorsi lunghi. -migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Il file system non consente di essere letto. -migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Il file system non consente di essere scritto. +migration.error.missingFileSystemCapabilities.title=File di Sistema Non Supportato +migration.error.missingFileSystemCapabilities.description=Migrazione non avviata perché la tua cassaforte si trova su un file di sistema inadeguato. +migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Il file di sistema non supporta i nomi dei file lunghi. +migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Il file di sistema non supporta i percorsi lunghi. +migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Il file di sistema non consente di esser letto. +migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Il file di sistema non consente di esser scritto. ## Impossible migration.impossible.heading=Impossibile migrare la cassaforte -migration.impossible.reason=La cassaforte non può essere migrata automaticamente perché la sua posizione di archiviazione di accesso non è compatibile. -migration.impossible.moreInfo=La cassaforte può ancora essere aperta con una versione precedente. Per istruzioni su come migrare manualmente una cassaforte, visita +migration.impossible.reason=Impossibile migrare automaticamente la cassaforte perché la sua posizione d'archiviazione o punto d'accesso non sono compatibili. +migration.impossible.moreInfo=La cassaforte è ancora apribile con una versione precedente. Per le istruzioni su come migrare manualmente una cassaforte, visita # Health Check ## Start health.title=Controllo Salute di "%s" health.intro.header=Controllo Salute health.intro.text=Il Controllo della Salute è una raccolta di controlli per rilevare e possibilmente risolvere i problemi nella struttura interna alla tua cassaforte. Sei pregato di tenere a mente: -health.intro.remarkSync=Assicurati che tutti i dispositivi siano completamente sincronizzati, questo risolve la maggior parte dei problemi. -health.intro.remarkFix=Non tutti i problemi possono essere corretti. -health.intro.remarkBackup=Se i dati sono danneggiati, solo un backup può aiutare. -health.intro.affirmation=Ho letto e capito le informazioni sopra +health.intro.remarkSync=Assicurati che tutti i dispositivi siano completamente sincronizzati, questo risolve gran parte dei problemi. +health.intro.remarkFix=Non tutti i problemi sono risolvibili. +health.intro.remarkBackup=Se i dati sono corrotti, solo un backup può aiutare. +health.intro.affirmation=Ho letto e compreso le informazioni suddette ## Start Failure -health.fail.header=Errore nel caricare la configurazione della cassaforte -health.fail.ioError=Si è verificato un errore durante l'accesso e la lettura del file di configurazione. -health.fail.parseError=Si è verificato un errore durante l'analisi della configurazione della cassaforte. -health.fail.moreInfo=Ulteriori Informazioni +health.fail.header=Errore caricando la Configurazione della Cassaforte +health.fail.ioError=Si è verificato un errore accedendo e leggendo il file di configurazione. +health.fail.parseError=Si è verificato un errore analizzando la configurazione della cassaforte. +health.fail.moreInfo=Altre Info ## Check Selection -health.checkList.description=Seleziona i controlli nell'elenco a sinistra o utilizza i pulsanti in basso. -health.checkList.selectAllButton=Seleziona Tutti I Controlli -health.checkList.deselectAllButton=Deseleziona Tutti I Controlli -health.check.runBatchBtn=Esegui i Controlli selezionati +health.checkList.description=Seleziona i controlli nell'elenco a sinistra o usa i seguenti pulsanti. +health.checkList.selectAllButton=Seleziona Tutti i Controlli +health.checkList.deselectAllButton=Deseleziona Tutti i Controlli +health.check.runBatchBtn=Esegui i Controlli Selezionati ## Detail view -health.check.detail.noSelectedCheck=Per i risultati seleziona un controllo di salute concluso nell'elenco a sinistra. +health.check.detail.noSelectedCheck=Per i risultati seleziona un controllo di salute terminato nell'elenco a sinistra. health.check.detail.checkScheduled=Il controllo è pianificato. -health.check.detail.checkRunning=Il controllo è attualmente in esecuzione… +health.check.detail.checkRunning=Il controllo è correntemente in esecuzione… health.check.detail.checkSkipped=Il controllo non è stato selezionato per l'esecuzione. -health.check.detail.checkFinished=Il controllo è terminato con successo. -health.check.detail.checkFinishedAndFound=Il controllo ha terminato l'esecuzione. Si prega di rivedere i risultati. +health.check.detail.checkFinished=Il controllo è terminato correttamente. +health.check.detail.checkFinishedAndFound=Il controllo è terminato. Sei pregato di revisionare i risultati. health.check.detail.checkFailed=Il controllo è terminato a causa di un errore. health.check.detail.checkCancelled=Il controllo è stato annullato. -health.check.exportBtn=Esporta Rapporto +health.check.exportBtn=Esporta il Rapporto ## Fix Application health.fix.fixBtn=Correggi health.fix.successTip=Correzione riuscita -health.fix.failTip=Correzione fallita, vedi log per i dettagli +health.fix.failTip=Correzione fallita, vedi i registri per i dettagli # Preferences -preferences.title=Impostazioni +preferences.title=Preferenze ## General -preferences.general=Generali +preferences.general=Generale preferences.general.theme=Aspetto preferences.general.theme.automatic=Automatico preferences.general.theme.light=Chiaro preferences.general.theme.dark=Scuro -preferences.general.unlockThemes=Sblocca modalità scura -preferences.general.showMinimizeButton=Mostra pulsante riduci a icona -preferences.general.showTrayIcon=Mostra icona nel tray (richiede riavvio) -preferences.general.startHidden=Nascondi la finestra all'avvio di Cryptomator -preferences.general.debugLogging=Abilita i registri di debug -preferences.general.debugDirectory=Mostra file log +preferences.general.unlockThemes=Sblocca la modalità scura +preferences.general.showMinimizeButton=Mostra il pulsante minimizza +preferences.general.showTrayIcon=Mostra l'icona della barra d'applicazioni (richiede il riavvio) +preferences.general.startHidden=Nascondi la finestra avviando Cryptomator +preferences.general.debugLogging=Abilita la registrazione di debug +preferences.general.debugDirectory=Rivela i file di registro preferences.general.autoStart=Avvia Cryptomator all'avvio del sistema -preferences.general.keychainBackend=Memorizza password con -preferences.general.interfaceOrientation=Orientamento Interfaccia +preferences.general.keychainBackend=Memorizza le password con +preferences.general.interfaceOrientation=Orientamento dell'Interfaccia preferences.general.interfaceOrientation.ltr=Da Sinistra a Destra preferences.general.interfaceOrientation.rtl=Da Destra a Sinistra ## Volume -preferences.volume=Drive virtuale -preferences.volume.type=Tipo volume +preferences.volume=Unità Virtuale +preferences.volume.type=Tipo di Volume preferences.volume.webdav.port=Porta WebDAV preferences.volume.webdav.scheme=Schema WebDAV ## Updates preferences.updates=Aggiornamenti -preferences.updates.currentVersion=Versione attuale %s -preferences.updates.autoUpdateCheck=Controlla automaticamente la presenza di aggiornamenti -preferences.updates.checkNowBtn=Controlla adesso -preferences.updates.updateAvailable=Disponibile aggiornamento alla versione %s. +preferences.updates.currentVersion=Versione Corrente: %s +preferences.updates.autoUpdateCheck=Cerca automaticamente gli aggiornamenti +preferences.updates.checkNowBtn=Controlla Ora +preferences.updates.updateAvailable=Aggiornamento alla versione %s disponibile. ## Contribution preferences.contribute=Supportaci -preferences.contribute.registeredFor=Certificato del supporto registrato per %s -preferences.contribute.noCertificate=Supporta Cryptomator e ricevi un certificato di supporter. È come una chiave di licenza, ma per persone fantastiche che utilizzano software libero. ;-) -preferences.contribute.getCertificate=Non ne hai già uno? Impara come puoi ottenerlo. -preferences.contribute.promptText=Incolla qui il codice del certificato di supporter +preferences.contribute.registeredFor=Certificato del sostenitore registrato per %s +preferences.contribute.noCertificate=Supporta Cryptomator e ricevi il certificato da sostenitore. È come una chiave di licenza me per persone fantastiche che usano un software gratuito. ;-) +preferences.contribute.getCertificate=Non ne hai ancora uno? Scopri come puoi ottenerlo. +preferences.contribute.promptText=Incolla qui il codice del certificato da sostenitore #<-- Add entries for donations and code/translation/documentation contribution --> ## About -preferences.about=Informazioni +preferences.about=Info # Vault Statistics stats.title=Statistiche per %s -stats.cacheHitRate=Tasso di Colpo della Cache +stats.cacheHitRate=Frequenza di Raggiungimento della Cache ## Read stats.read.throughput.idle=Lettura: inattivo stats.read.throughput.kibs=Lettura: %.2f kiB/s @@ -234,13 +234,13 @@ stats.read.total.data.none=Dati letti: - stats.read.total.data.kib=Dati letti: %.1f kiB stats.read.total.data.mib=Dati letti: %.1f MiB stats.read.total.data.gib=Dati letti: %.1f GiB -stats.decr.total.data.none=Dati decriptati: - +stats.decr.total.data.none=Dati decrittografati: - stats.decr.total.data.kib=Dati decrittografati: %.1f kiB -stats.decr.total.data.mib=Dati decriptati: %.1f MiB +stats.decr.total.data.mib=Dati decrittografati: %.1f MiB stats.decr.total.data.gib=Dati decrittografati: %.1f GiB -stats.read.accessCount=Totale lettura: %d +stats.read.accessCount=Letture totali: %d ## Write -stats.write.throughput.idle=Scrivi: inattivo +stats.write.throughput.idle=Scrittura: inattivo stats.write.throughput.kibs=Scrittura: %.2f kiB/s stats.write.throughput.mibs=Scrittura: %.2f MiB/s stats.write.total.data.none=Dati scritti: - @@ -251,85 +251,85 @@ stats.encr.total.data.none=Dati crittografati: - stats.encr.total.data.kib=Dati crittografati: %.1f kiB stats.encr.total.data.mib=Dati crittografati: %.1f MiB stats.encr.total.data.gib=Dati crittografati: %.1f GiB -stats.write.accessCount=Totale scritture: %d +stats.write.accessCount=Scritture totali: %d # Main Window main.closeBtn.tooltip=Chiudi main.minimizeBtn.tooltip=Minimizza -main.preferencesBtn.tooltip=Impostazioni +main.preferencesBtn.tooltip=Preferenze main.debugModeEnabled.tooltip=La modalità di debug è abilitata -main.donationKeyMissing.tooltip=Per favore considera una donazione +main.donationKeyMissing.tooltip=Sei pregato di considerare di donare ## Drag 'n' Drop main.dropZone.dropVault=Aggiungi questa cassaforte -main.dropZone.unknownDragboardContent=Se vuoi aggiungere una cassaforte, trascinala in questa finestra +main.dropZone.unknownDragboardContent=Se desideri aggiungere una cassaforte, trascinala a questa finestra ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cassaforte main.vaultlist.contextMenu.remove=Rimuovi… main.vaultlist.contextMenu.lock=Blocca main.vaultlist.contextMenu.unlock=Sblocca… main.vaultlist.contextMenu.unlockNow=Sblocca Ora -main.vaultlist.contextMenu.vaultoptions=Mostra Opzioni Cassaforte -main.vaultlist.contextMenu.reveal=Rivela Drive +main.vaultlist.contextMenu.vaultoptions=Mostra le Opzioni della Cassaforte +main.vaultlist.contextMenu.reveal=Rivela Unità main.vaultlist.addVaultBtn=Aggiungi Cassaforte ## Vault Detail ### Welcome -main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se hai bisogno di assistenza, dai un'occhiata alle guide per iniziare: +main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se necessiti d'assistenza, dai un'occhiata alle nostre guide per iniziare: ### Locked main.vaultDetail.lockedStatus=BLOCCATO main.vaultDetail.unlockBtn=Sblocca… -main.vaultDetail.unlockNowBtn=Sblocca adesso -main.vaultDetail.optionsBtn=Opzioni Cassaforte +main.vaultDetail.unlockNowBtn=Sblocca Ora +main.vaultDetail.optionsBtn=Opzioni della Cassaforte main.vaultDetail.passwordSavedInKeychain=Password salvata ### Unlocked -main.vaultDetail.unlockedStatus=SBLOCCATO +main.vaultDetail.unlockedStatus=SBLOCCATA main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui: -main.vaultDetail.revealBtn=Visualizza disco +main.vaultDetail.revealBtn=Rivela Unità main.vaultDetail.lockBtn=Blocca main.vaultDetail.bytesPerSecondRead=Lettura: main.vaultDetail.bytesPerSecondWritten=Scrittura: main.vaultDetail.throughput.idle=inattivo main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s -main.vaultDetail.stats=Statistiche Cassaforte +main.vaultDetail.stats=Statistiche della Cassaforte ### Missing -main.vaultDetail.missing.info=Cryptomator non ha potuto trovare una cassaforte in questo percorso. -main.vaultDetail.missing.recheck=Ricontrollare -main.vaultDetail.missing.remove=Rimuovi dalla Lista Cassaforte… -main.vaultDetail.missing.changeLocation=Cambia posizione della Cassaforte… +main.vaultDetail.missing.info=Cryptomator non è riuscito a trovare una cassaforte in questo percorso. +main.vaultDetail.missing.recheck=Ricontrolla +main.vaultDetail.missing.remove=Rimuovi dall'Elenco di Cassaforti… +main.vaultDetail.missing.changeLocation=Cambia la Posizione della Cassaforte… ### Needs Migration -main.vaultDetail.migrateButton=Aggiorna la cassaforte -main.vaultDetail.migratePrompt=Prima di potervi accedere la tua cassaforte deve essere aggiornata al nuovo formato +main.vaultDetail.migrateButton=Aggiorna la Cassaforte +main.vaultDetail.migratePrompt=La tua cassaforte dev'esser aggiornata a un nuovo formato, prima di potervi accedere # Wrong File Alert -wrongFileAlert.title=Come Criptare i File -wrongFileAlert.header.title=Hai provato a cifrare questi file? -wrongFileAlert.header.lead=A questo scopo, Cryptomator fornisce un volume nel file manager di sistema. -wrongFileAlert.instruction.0=Per cifrare file, segui questi passi: +wrongFileAlert.title=Come Crittografare i File +wrongFileAlert.header.title=Hai tentato di crittografare questi file? +wrongFileAlert.header.lead=Per questo scopo, Cryptomator fornisce un volume nel gestore dei tuoi file di sistema. +wrongFileAlert.instruction.0=Per crittografare i file, segui questi passi: wrongFileAlert.instruction.1=1. Sblocca la tua cassaforte. -wrongFileAlert.instruction.2=2. Clicca su "Rivela" per aprire il volume nel tuo file manager. +wrongFileAlert.instruction.2=2. Clicca su "Rivela" per aprire il volume nel gestore dei tuoi file. wrongFileAlert.instruction.3=3. Aggiungi i tuoi file a questo volume. wrongFileAlert.link=Per ulteriore assistenza, visita # Vault Options ## General -vaultOptions.general=Generali -vaultOptions.general.vaultName=Nome Cassaforte +vaultOptions.general=Generale +vaultOptions.general.vaultName=Nome della Cassaforte vaultOptions.general.autoLock.lockAfterTimePart1=Blocca quando inattivo per vaultOptions.general.autoLock.lockAfterTimePart2=minuti -vaultOptions.general.unlockAfterStartup=Sblocca vault all'avvio di Cryptomator -vaultOptions.general.actionAfterUnlock=Dopo aver sbloccato con successo +vaultOptions.general.unlockAfterStartup=Sblocca la cassaforte all'avvio di Cryptomator +vaultOptions.general.actionAfterUnlock=Dopo uno sblocco riuscito vaultOptions.general.actionAfterUnlock.ignore=Non fare nulla -vaultOptions.general.actionAfterUnlock.reveal=Visualizza disco +vaultOptions.general.actionAfterUnlock.reveal=Rivela Unità vaultOptions.general.actionAfterUnlock.ask=Chiedi vaultOptions.general.startHealthCheckBtn=Avvia il Controllo della Salute ## Mount vaultOptions.mount=Montaggio -vaultOptions.mount.readonly=Sola lettura -vaultOptions.mount.customMountFlags=Opzioni personalizzate +vaultOptions.mount.readonly=Sola Lettura +vaultOptions.mount.customMountFlags=Flag di Montaggio Personalizzati vaultOptions.mount.winDriveLetterOccupied=occupato -vaultOptions.mount.mountPoint=Punto di mount -vaultOptions.mount.mountPoint.auto=Scegli automaticamente una posizione adatta +vaultOptions.mount.mountPoint=Punto di Montaggio +vaultOptions.mount.mountPoint.auto=Scegli automaticamente una posizione idonea vaultOptions.mount.mountPoint.driveLetter=Usa la lettera del drive assegnata vaultOptions.mount.mountPoint.custom=Percorso personalizzato vaultOptions.mount.mountPoint.directoryPickerButton=Scegli… diff --git a/src/main/resources/i18n/strings_ja.properties b/src/main/resources/i18n/strings_ja.properties index 8bfaf1492..c3a605371 100644 --- a/src/main/resources/i18n/strings_ja.properties +++ b/src/main/resources/i18n/strings_ja.properties @@ -13,6 +13,11 @@ generic.button.done=完了 generic.button.next=次へ generic.button.print=印刷 ## Error +generic.error.title=エラー %s +generic.error.instruction=Cryptomator で予期できない問題が発生しました! 。このエラーの解決方法を検索することができ、まだ報告されていない場合は、報告を行うことができます。 +generic.error.hyperlink.lookup=このエラーを検索する +generic.error.hyperlink.report=このエラーを報告する +generic.error.technicalDetails=詳細: # Defaults defaults.vault.vaultName=金庫 @@ -30,7 +35,7 @@ traymenu.vault.reveal=表示 addvaultwizard.title=金庫を追加 ## Welcome addvaultwizard.welcome.newButton=新しい金庫を作成 -addvaultwizard.welcome.existingButton=既存の金庫を開く +addvaultwizard.welcome.existingButton=すでにある金庫を開く ## New ### Name addvaultwizard.new.nameInstruction=金庫の名前を入力してください @@ -277,7 +282,7 @@ main.vaultDetail.optionsBtn=金庫のオプション main.vaultDetail.passwordSavedInKeychain=パスワードを保存しました ### Unlocked main.vaultDetail.unlockedStatus=解錠済み -main.vaultDetail.accessLocation=アクセス可能な金庫のコンテンツ: +main.vaultDetail.accessLocation=金庫の内容はこちらからアクセスできます: main.vaultDetail.revealBtn=ドライブを表示 main.vaultDetail.lockBtn=施錠 main.vaultDetail.bytesPerSecondRead=読み取り: diff --git a/src/main/resources/i18n/strings_pt_BR.properties b/src/main/resources/i18n/strings_pt_BR.properties index c81c79b2c..5384205e5 100644 --- a/src/main/resources/i18n/strings_pt_BR.properties +++ b/src/main/resources/i18n/strings_pt_BR.properties @@ -13,6 +13,11 @@ generic.button.done=Concluído generic.button.next=Próximo generic.button.print=Imprimir ## Error +generic.error.title=Erro %s +generic.error.instruction=Oops! Cryptomator não esperava que isso acontecesse. Você pode procurar soluções existentes para este erro. Ou se isso ainda não foi reportado, fique à vontade para fazê-lo. +generic.error.hyperlink.lookup=Procure este erro +generic.error.hyperlink.report=Reportar este erro +generic.error.technicalDetails=Detalhes: # Defaults defaults.vault.vaultName=Cofre diff --git a/src/main/resources/i18n/strings_sv.properties b/src/main/resources/i18n/strings_sv.properties index 9a379996b..106a8ccd5 100644 --- a/src/main/resources/i18n/strings_sv.properties +++ b/src/main/resources/i18n/strings_sv.properties @@ -13,6 +13,11 @@ generic.button.done=Klar generic.button.next=Nästa generic.button.print=Skriv ut ## Error +generic.error.title=Fel: %s +generic.error.instruction=Hoppsan! Cryptomator stötte på något oväntat. Du kan leta upp befintliga lösningar för detta fel. Om det inte har rapporterats ännu får du gärna rapportera in felet. +generic.error.hyperlink.lookup=Slå upp detta fel +generic.error.hyperlink.report=Rapportera fel +generic.error.technicalDetails=Detaljer: # Defaults defaults.vault.vaultName=Valv diff --git a/src/main/resources/i18n/strings_tr.properties b/src/main/resources/i18n/strings_tr.properties index 3ef0a97d1..f431f58b0 100644 --- a/src/main/resources/i18n/strings_tr.properties +++ b/src/main/resources/i18n/strings_tr.properties @@ -13,6 +13,11 @@ generic.button.done=Tamam generic.button.next=Sonraki generic.button.print=Yazdır ## Error +generic.error.title=Hata: %s +generic.error.instruction=Uups! Cryptomator bunun olmasını beklemiyordu. Bu hata için mevcut çözümlere bakabilirsiniz. Ya da henüz bildirilmediyse, bunu raporlamaktan çekinmeyin. +generic.error.hyperlink.lookup=Bu hatayı ara +generic.error.hyperlink.report=Bu hatayı bildir +generic.error.technicalDetails=Detaylar: # Defaults defaults.vault.vaultName=Kasa