diff --git a/README.md b/README.md index 63c72c421..d5cf5ea8e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build](https://github.com/cryptomator/cryptomator/workflows/Build/badge.svg)](https://github.com/cryptomator/cryptomator/actions?query=workflow%3ABuild) [![Known Vulnerabilities](https://snyk.io/test/github/cryptomator/cryptomator/badge.svg?targetFile=main%2Fpom.xml)](https://snyk.io/test/github/cryptomator/cryptomator?targetFile=main%2Fpom.xml) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/2a0adf3cec6a4143b91035d3924178f1)](https://www.codacy.com/app/cryptomator/cryptomator?utm_source=github.com&utm_medium=referral&utm_content=cryptomator/cryptomator&utm_campaign=Badge_Grade) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2a0adf3cec6a4143b91035d3924178f1)](https://www.codacy.com/gh/cryptomator/cryptomator/dashboard) [![Twitter](https://img.shields.io/badge/twitter-@Cryptomator-blue.svg?style=flat)](http://twitter.com/Cryptomator) [![Crowdin](https://badges.crowdin.net/cryptomator/localized.svg)](https://translate.cryptomator.org/) [![Latest Release](https://img.shields.io/github/release/cryptomator/cryptomator.svg)](https://github.com/cryptomator/cryptomator/releases/latest) @@ -17,11 +17,26 @@ Cryptomator is provided free of charge as an open-source project despite the hig ### Gold Sponsors -[gee-whiz](https://www.gee-whiz.de/) + + + + + + + +
gee-whizProxy-Hub
### Silver Sponsors -[![TheBestVPN](https://cryptomator.org/img/sponsors/thebestvpn.png)](https://thebestvpn.com/) + + + + + + +
TheBestVPN
+ +- [Jameson Lopp](https://www.lopp.net/) --- diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/FuseVolume.java b/main/commons/src/main/java/org/cryptomator/common/vaults/FuseVolume.java index 5400f8ff2..9af77408c 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/FuseVolume.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/FuseVolume.java @@ -45,7 +45,9 @@ public class FuseVolume extends AbstractVolume { try { Mounter mounter = FuseMountFactory.getMounter(); EnvironmentVariables envVars = EnvironmentVariables.create() // - .withFlags(splitFlags(mountFlags)).withMountPoint(mountPoint) // + .withFlags(splitFlags(mountFlags)) // + .withMountPoint(mountPoint) // + .withFileNameTranscoder(mounter.defaultFileNameTranscoder()) // .build(); this.mount = mounter.mount(root, envVars); } catch (CommandFailedException | FuseNotSupportedException e) { diff --git a/main/pom.xml b/main/pom.xml index 3930a3931..ddd4262ec 100644 --- a/main/pom.xml +++ b/main/pom.xml @@ -30,14 +30,14 @@ 1.0.0-beta2 1.0.0-beta2 1.0.0-beta1 - 1.2.9 + 1.3.0 1.2.4 - 1.1.4 + 1.2.0 15 3.11 - 3.12.0 + 3.13.0 2.1.0 30.1-jre 2.32 @@ -218,12 +218,6 @@ test - - - com.fasterxml.jackson.core - jackson-databind - 2.10.5.1 - diff --git a/main/suppression.xml b/main/suppression.xml index 6fe12f417..43acf2e8d 100644 --- a/main/suppression.xml +++ b/main/suppression.xml @@ -1,11 +1,6 @@ - - - com.fasterxml.jackson.core:jackson-databind:2.10.5.1 - CVE-2020-25649 - ^org\.cryptomator:fuse-nio-adapter:.*$ diff --git a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java index 73c04fe5f..917e704fc 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java +++ b/main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java @@ -86,7 +86,7 @@ public class FxApplication extends Application { } private void hasVisibleStagesChanged(@SuppressWarnings("unused") ObservableValue observableValue, @SuppressWarnings("unused") boolean oldValue, boolean newValue) { - LOG.warn("has visible stages: {}", newValue); + LOG.debug("has visible stages: {}", newValue); if (newValue) { trayIntegration.ifPresent(TrayIntegrationProvider::restoredFromTray); } else { diff --git a/main/ui/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java b/main/ui/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java index 596e704e9..ef8621f3b 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerModule.java @@ -15,6 +15,7 @@ import javafx.beans.property.StringProperty; import javafx.concurrent.ScheduledService; import javafx.concurrent.Task; import javafx.util.Duration; +import java.io.UncheckedIOException; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; @@ -39,8 +40,13 @@ public abstract class UpdateCheckerModule { @Provides @FxApplicationScoped - static HttpClient provideHttpClient() { - return HttpClient.newHttpClient(); + static Optional provideHttpClient() { + try { + return Optional.of(HttpClient.newHttpClient()); + } catch (UncheckedIOException e) { + LOG.error("HttpClient for update check cannot be created.", e); + return Optional.empty(); + } } @Provides @@ -66,11 +72,20 @@ public abstract class UpdateCheckerModule { @Provides @FxApplicationScoped - static ScheduledService provideCheckForUpdatesService(ExecutorService executor, HttpClient httpClient, HttpRequest checkForUpdatesRequest, @Named("checkForUpdatesInterval") ObjectBinding period) { + static ScheduledService provideCheckForUpdatesService(ExecutorService executor, Optional httpClient, HttpRequest checkForUpdatesRequest, @Named("checkForUpdatesInterval") ObjectBinding period) { ScheduledService service = new ScheduledService<>() { @Override protected Task createTask() { - return new UpdateCheckerTask(httpClient, checkForUpdatesRequest); + if (httpClient.isPresent()) { + return new UpdateCheckerTask(httpClient.get(), checkForUpdatesRequest); + } else { + return new Task<>() { + @Override + protected String call() { + throw new NullPointerException("No HttpClient present."); + } + }; + } } }; service.setOnFailed(event -> LOG.error("Failed to execute update service", service.getException())); diff --git a/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java b/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java index b8d1f5372..0ab11d374 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java +++ b/main/ui/src/main/java/org/cryptomator/ui/launcher/AppLaunchEventHandler.java @@ -1,5 +1,6 @@ package org.cryptomator.ui.launcher; +import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.fxapp.FxApplication; import org.slf4j.Logger; @@ -55,7 +56,7 @@ class AppLaunchEventHandler { case REVEAL_APP -> fxApplicationStarter.get().thenAccept(FxApplication::showMainWindow); case OPEN_FILE -> fxApplicationStarter.get().thenRun(() -> { Platform.runLater(() -> { - event.getPathsToOpen().forEach(this::addVault); + event.getPathsToOpen().forEach(this::addOrRevealVault); }); }); default -> LOG.warn("Unsupported event type: {}", event.getType()); @@ -63,13 +64,18 @@ class AppLaunchEventHandler { } // TODO dedup MainWindowController... - private void addVault(Path potentialVaultPath) { + private void addOrRevealVault(Path potentialVaultPath) { assert Platform.isFxApplicationThread(); try { + final Vault v; if (potentialVaultPath.getFileName().toString().equals(MASTERKEY_FILENAME)) { - vaultListManager.add(potentialVaultPath.getParent()); + v = vaultListManager.add(potentialVaultPath.getParent()); } else { - vaultListManager.add(potentialVaultPath); + v = vaultListManager.add(potentialVaultPath); + } + + if (v.isUnlocked()) { + fxApplicationStarter.get().thenAccept(app -> app.getVaultService().reveal(v)); } LOG.debug("Added vault {}", potentialVaultPath); } catch (NoSuchFileException e) { diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java index f8316d289..fad1b3c85 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java @@ -86,6 +86,11 @@ abstract class MainWindowModule { @FxControllerKey(VaultListController.class) abstract FxController bindVaultListController(VaultListController controller); + @Binds + @IntoMap + @FxControllerKey(VaultListContextMenuController.class) + abstract FxController bindVaultListContextMenuController(VaultListContextMenuController controller); + @Binds @IntoMap @FxControllerKey(VaultDetailController.class) diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java new file mode 100644 index 000000000..b0866d80f --- /dev/null +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java @@ -0,0 +1,135 @@ +package org.cryptomator.ui.mainwindow; + +import com.tobiasdiez.easybind.EasyBind; +import com.tobiasdiez.easybind.optional.ObservableOptionalValue; +import com.tobiasdiez.easybind.optional.OptionalBinding; +import org.cryptomator.common.keychain.KeychainManager; +import org.cryptomator.common.vaults.Vault; +import org.cryptomator.common.vaults.VaultState; +import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.fxapp.FxApplication; +import org.cryptomator.ui.removevault.RemoveVaultComponent; +import org.cryptomator.ui.vaultoptions.SelectedVaultOptionsTab; +import org.cryptomator.ui.vaultoptions.VaultOptionsComponent; + +import javax.inject.Inject; +import javafx.beans.binding.Binding; +import javafx.beans.binding.Bindings; +import javafx.beans.property.ObjectProperty; +import javafx.fxml.FXML; +import javafx.stage.Stage; +import java.util.Arrays; +import java.util.EnumSet; +import java.util.Optional; + +import static org.cryptomator.common.vaults.VaultState.ERROR; +import static org.cryptomator.common.vaults.VaultState.LOCKED; +import static org.cryptomator.common.vaults.VaultState.MISSING; +import static org.cryptomator.common.vaults.VaultState.NEEDS_MIGRATION; +import static org.cryptomator.common.vaults.VaultState.UNLOCKED; + +@MainWindowScoped +public class VaultListContextMenuController implements FxController { + + private final ObservableOptionalValue selectedVault; + private final Stage mainWindow; + private final FxApplication application; + private final KeychainManager keychain; + private final RemoveVaultComponent.Builder removeVault; + private final VaultOptionsComponent.Builder vaultOptionsWindow; + private final OptionalBinding selectedVaultState; + private final Binding selectedVaultPassphraseStored; + private final Binding selectedVaultRemovable; + private final Binding selectedVaultUnlockable; + private final Binding selectedVaultLockable; + + @Inject + VaultListContextMenuController(ObjectProperty selectedVault, @MainWindow Stage mainWindow, FxApplication application, KeychainManager keychain, RemoveVaultComponent.Builder removeVault, VaultOptionsComponent.Builder vaultOptionsWindow) { + this.selectedVault = EasyBind.wrapNullable(selectedVault); + this.mainWindow = mainWindow; + this.application = application; + this.keychain = keychain; + this.removeVault = removeVault; + this.vaultOptionsWindow = vaultOptionsWindow; + + this.selectedVaultState = this.selectedVault.mapObservable(Vault::stateProperty); + this.selectedVaultPassphraseStored = this.selectedVault.map(this::isPasswordStored).orElse(false); + this.selectedVaultRemovable = selectedVaultState.map(EnumSet.of(LOCKED, MISSING, ERROR, NEEDS_MIGRATION)::contains).orElse(false); + this.selectedVaultUnlockable = selectedVaultState.map(LOCKED::equals).orElse(false); + this.selectedVaultLockable = selectedVaultState.map(UNLOCKED::equals).orElse(false); + + } + + private boolean isPasswordStored(Vault vault) { + return keychain.getPassphraseStoredProperty(vault.getId()).get(); + } + + @FXML + public void didClickRemoveVault() { + selectedVault.ifValuePresent(v -> { + removeVault.vault(v).build().showRemoveVault(); + }); + } + + @FXML + public void didClickShowVaultOptions() { + selectedVault.ifValuePresent(v -> { + vaultOptionsWindow.vault(v).build().showVaultOptionsWindow(SelectedVaultOptionsTab.ANY); + }); + } + + @FXML + public void didClickUnlockVault() { + selectedVault.ifValuePresent(v -> { + application.startUnlockWorkflow(v, Optional.of(mainWindow)); + }); + } + + @FXML + public void didClickLockVault() { + selectedVault.ifValuePresent(v -> { + application.startLockWorkflow(v, Optional.of(mainWindow)); + }); + } + + @FXML + public void didClickRevealVault() { + selectedVault.ifValuePresent(v -> { + application.getVaultService().reveal(v); + }); + } + + // Getter and Setter + + public Binding selectedVaultUnlockableProperty() { + return selectedVaultUnlockable; + } + + public boolean isSelectedVaultUnlockable() { + return selectedVaultUnlockable.getValue(); + } + + public Binding selectedVaultLockableProperty() { + return selectedVaultLockable; + } + + public boolean isSelectedVaultLockable() { + return selectedVaultLockable.getValue(); + } + + public Binding selectedVaultRemovableProperty() { + return selectedVaultRemovable; + } + + public boolean isSelectedVaultRemovable() { + return selectedVaultRemovable.getValue(); + } + + public Binding selectedVaultPassphraseStoredProperty() { + return selectedVaultPassphraseStored; + } + + public boolean isSelectedVaultPassphraseStored() { + return selectedVaultPassphraseStored.getValue(); + } +} diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index fc751d862..04ea9f152 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -4,9 +4,6 @@ import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; import org.cryptomator.ui.common.FxController; -import org.cryptomator.ui.removevault.RemoveVaultComponent; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.inject.Inject; import javafx.beans.binding.Bindings; @@ -17,30 +14,30 @@ import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.ListView; +import javafx.scene.input.ContextMenuEvent; +import javafx.scene.input.MouseEvent; @MainWindowScoped public class VaultListController implements FxController { - private static final Logger LOG = LoggerFactory.getLogger(VaultListController.class); private final ObservableList vaults; private final ObjectProperty selectedVault; private final VaultListCellFactory cellFactory; private final AddVaultWizardComponent.Builder addVaultWizard; - private final RemoveVaultComponent.Builder removeVault; - private final BooleanBinding noVaultSelected; private final BooleanBinding emptyVaultList; + public ListView vaultList; @Inject - VaultListController(ObservableList vaults, ObjectProperty selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVault) { + VaultListController(ObservableList vaults, ObjectProperty selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard) { this.vaults = vaults; this.selectedVault = selectedVault; this.cellFactory = cellFactory; this.addVaultWizard = addVaultWizard; - this.removeVault = removeVault; - this.noVaultSelected = selectedVault.isNull(); + this.emptyVaultList = Bindings.isEmpty(vaults); + selectedVault.addListener(this::selectedVaultDidChange); } @@ -56,6 +53,19 @@ public class VaultListController implements FxController { } } }); + vaultList.addEventFilter(MouseEvent.MOUSE_RELEASED, this::deselect); + vaultList.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, request -> { + if (selectedVault.get() == null) { + request.consume(); + } + }); + } + + private void deselect(MouseEvent released) { + if (released.getY() > (vaultList.getItems().size() * vaultList.fixedCellSizeProperty().get())) { + vaultList.getSelectionModel().clearSelection(); + released.consume(); + } } private void selectedVaultDidChange(@SuppressWarnings("unused") ObservableValue observableValue, @SuppressWarnings("unused") Vault oldValue, Vault newValue) { @@ -70,16 +80,6 @@ public class VaultListController implements FxController { addVaultWizard.build().showAddVaultWizard(); } - @FXML - public void didClickRemoveVault() { - Vault v = selectedVault.get(); - if (v != null) { - removeVault.vault(v).build().showRemoveVault(); - } else { - LOG.debug("Cannot remove a vault if none is selected."); - } - } - // Getter and Setter public BooleanBinding emptyVaultListProperty() { @@ -90,11 +90,4 @@ public class VaultListController implements FxController { return emptyVaultList.get(); } - public BooleanBinding noVaultSelectedProperty() { - return noVaultSelected; - } - - public boolean isNoVaultSelected() { - return noVaultSelected.get(); - } } diff --git a/main/ui/src/main/resources/fxml/vault_list.fxml b/main/ui/src/main/resources/fxml/vault_list.fxml index 942074639..f01aa710c 100644 --- a/main/ui/src/main/resources/fxml/vault_list.fxml +++ b/main/ui/src/main/resources/fxml/vault_list.fxml @@ -2,10 +2,8 @@ - - @@ -15,13 +13,9 @@ fx:controller="org.cryptomator.ui.mainwindow.VaultListController" minWidth="206"> - + - - - - - + diff --git a/main/ui/src/main/resources/fxml/vault_list_cell.fxml b/main/ui/src/main/resources/fxml/vault_list_cell.fxml index e86f084c1..ce8664639 100644 --- a/main/ui/src/main/resources/fxml/vault_list_cell.fxml +++ b/main/ui/src/main/resources/fxml/vault_list_cell.fxml @@ -13,6 +13,7 @@ prefWidth="200" spacing="12" alignment="CENTER_LEFT"> + diff --git a/main/ui/src/main/resources/fxml/vault_list_contextmenu.fxml b/main/ui/src/main/resources/fxml/vault_list_contextmenu.fxml new file mode 100644 index 000000000..bd8f19204 --- /dev/null +++ b/main/ui/src/main/resources/fxml/vault_list_contextmenu.fxml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/main/ui/src/main/resources/i18n/strings.properties b/main/ui/src/main/resources/i18n/strings.properties index b094095c8..c04c92359 100644 --- a/main/ui/src/main/resources/i18n/strings.properties +++ b/main/ui/src/main/resources/i18n/strings.properties @@ -101,9 +101,9 @@ unlock.unlockBtn=Unlock ## unlock.chooseMasterkey.filePickerTitle=Select Masterkey File ## Success -unlock.success.message=Unlocked "%s" successfully! Your vault is now accessible. +unlock.success.message=Unlocked "%s" successfully! Your vault is now accessible via its virtual drive. unlock.success.rememberChoice=Remember choice, don't show this again -unlock.success.revealBtn=Reveal Vault +unlock.success.revealBtn=Reveal Drive ## Failure unlock.error.heading=Unable to unlock vault ### Invalid Mount Point @@ -226,7 +226,12 @@ main.dropZone.dropVault=Add this vault main.dropZone.unknownDragboardContent=If you want to add a vault, drag it to this window ## Vault List main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault -main.vaultlist.contextMenu.remove=Remove Vault… +main.vaultlist.contextMenu.remove=Remove… +main.vaultlist.contextMenu.lock=Lock +main.vaultlist.contextMenu.unlock=Unlock… +main.vaultlist.contextMenu.unlockNow=Unlock Now +main.vaultlist.contextMenu.vaultoptions=Show Vault Options +main.vaultlist.contextMenu.reveal=Reveal Drive main.vaultlist.addVaultBtn=Add Vault ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_ar.properties b/main/ui/src/main/resources/i18n/strings_ar.properties index d14749c9e..e9292b402 100644 --- a/main/ui/src/main/resources/i18n/strings_ar.properties +++ b/main/ui/src/main/resources/i18n/strings_ar.properties @@ -97,9 +97,8 @@ unlock.title=افتح الحافظة unlock.passwordPrompt=‮أدخل كلمة السر لـ "‪%s‬": unlock.unlockBtn=افتح ## Success -unlock.success.message=تم فتح المخزن "%s" بنجاح! يمكنك الوصول إليه الآن. unlock.success.rememberChoice=تذكر اختياري ولا تظهر هذا مرة أخرى -unlock.success.revealBtn=افتح الحافظة +unlock.success.revealBtn=اظهار القرص ## Failure unlock.error.heading=غير قادر على فتح الخزنة ### Invalid Mount Point @@ -195,7 +194,10 @@ main.dropZone.dropVault=أضف هذا المخزن main.dropZone.unknownDragboardContent=إذا كنت ترغب في إضافة مخزن، قم بسحبه إلى هذه النافذة ## Vault List main.vaultlist.emptyList.onboardingInstruction=انقر هنا لإضافة خزنة -main.vaultlist.contextMenu.remove=حذف الخزنة… +main.vaultlist.contextMenu.lock=قفل +main.vaultlist.contextMenu.unlock=فتح… +main.vaultlist.contextMenu.unlockNow=افتح الان +main.vaultlist.contextMenu.reveal=اظهار القرص main.vaultlist.addVaultBtn=أضِف مخزنًا ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_bs.properties b/main/ui/src/main/resources/i18n/strings_bs.properties index 680c87890..a427b7f53 100644 --- a/main/ui/src/main/resources/i18n/strings_bs.properties +++ b/main/ui/src/main/resources/i18n/strings_bs.properties @@ -97,9 +97,8 @@ unlock.title=Otključaj sef unlock.passwordPrompt=Unesite lozinku za "%s": unlock.unlockBtn=Otključaj ## Success -unlock.success.message=Uspješno ste otključali "%s"! Vaš sef je sada dostupan. unlock.success.rememberChoice=Zapamtite izbor, ne pokazujte ovo ponovo -unlock.success.revealBtn=Otkrij sef +unlock.success.revealBtn=Otkrij pogon ## Failure unlock.error.heading=Sef nije moguće otključati ### Invalid Mount Point @@ -222,7 +221,10 @@ main.dropZone.dropVault=Dodajte ovaj sef main.dropZone.unknownDragboardContent=Ako želite dodati sef, povucite ga u ovaj prozor ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kliknite ovdje da dodate sef -main.vaultlist.contextMenu.remove=Ukloni Sef… +main.vaultlist.contextMenu.lock=Zaključaj +main.vaultlist.contextMenu.unlock=Otključaj… +main.vaultlist.contextMenu.unlockNow=Otključaj sada +main.vaultlist.contextMenu.reveal=Otkrij pogon main.vaultlist.addVaultBtn=Dodaj sef ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_ca.properties b/main/ui/src/main/resources/i18n/strings_ca.properties index ed20adecf..be814a57b 100644 --- a/main/ui/src/main/resources/i18n/strings_ca.properties +++ b/main/ui/src/main/resources/i18n/strings_ca.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=Introduïu la contrasenya de "%s": unlock.savePassword=Recorda la contrasenya unlock.unlockBtn=Desbloqueja ## Success -unlock.success.message="%s" s'ha desbloquejat correctament! Ja es pot accedir a la caixa forta. unlock.success.rememberChoice=Recorda l'elecció. No ho tornis a mostrar. -unlock.success.revealBtn=Mostra la caixa forta +unlock.success.revealBtn=Mostra la unitat ## Failure unlock.error.heading=No ha estat possible desblocar la caixa forta ### Invalid Mount Point @@ -223,7 +222,10 @@ main.dropZone.dropVault=Afegeix aquesta caixa forta main.dropZone.unknownDragboardContent=Si voleu afegir una caixa forta, arrossegueu-la a aquesta finestra ## Vault List main.vaultlist.emptyList.onboardingInstruction=Feu clic aquí per afegir una caixa forta -main.vaultlist.contextMenu.remove=Elimina la caixa forta… +main.vaultlist.contextMenu.lock=Bloqueja +main.vaultlist.contextMenu.unlock=Desbloca… +main.vaultlist.contextMenu.unlockNow=Desbloqueja ara +main.vaultlist.contextMenu.reveal=Mostra la unitat main.vaultlist.addVaultBtn=Afegir una caixa forta ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_cs.properties b/main/ui/src/main/resources/i18n/strings_cs.properties index ee4f9b92a..363ac857d 100644 --- a/main/ui/src/main/resources/i18n/strings_cs.properties +++ b/main/ui/src/main/resources/i18n/strings_cs.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=Zadejte heslo pro "%s": unlock.savePassword=Zapamatovat heslo unlock.unlockBtn=Odemknout ## Success -unlock.success.message=Trezor "%s" byl úspěšně odemčen a nyní je dostupný. unlock.success.rememberChoice=Pamatovat si volbu, nezobrazovat to znovu -unlock.success.revealBtn=Zobrazit trezor +unlock.success.revealBtn=Zobrazit jednotku ## Failure unlock.error.heading=Nelze odemknout trezor ### Invalid Mount Point @@ -109,6 +108,8 @@ unlock.error.invalidMountPoint.existing=Připojovací bod %s již existuje nebo # Lock ## Force +lock.forced.heading=Běžné uzamčení selhalo +lock.forced.confirmBtn=Přesto uzamknout ## Failure # Migration @@ -218,7 +219,11 @@ main.dropZone.dropVault=Přidat tento trezor main.dropZone.unknownDragboardContent=Pokud chcete přidat trezor, přetáhněte jej do tohoto okna ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikněte zde pro přidání nového trezoru -main.vaultlist.contextMenu.remove=Odstranit trezor… +main.vaultlist.contextMenu.remove=Odstranit… +main.vaultlist.contextMenu.lock=Zamknout +main.vaultlist.contextMenu.unlock=Odemknout… +main.vaultlist.contextMenu.unlockNow=Odemknout nyní +main.vaultlist.contextMenu.reveal=Zobrazit jednotku main.vaultlist.addVaultBtn=Přidat trezor ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_de.properties b/main/ui/src/main/resources/i18n/strings_de.properties index d5e541f6e..e500aab6c 100644 --- a/main/ui/src/main/resources/i18n/strings_de.properties +++ b/main/ui/src/main/resources/i18n/strings_de.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt=Gib das Passwort für „%s“ ein: unlock.savePassword=Passwort merken unlock.unlockBtn=Entsperren ## Success -unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst du auf deinen Tresor zugreifen. +unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst du über das virtuelle Laufwerk auf deinen Tresor zugreifen. unlock.success.rememberChoice=Auswahl speichern und nicht mehr anzeigen -unlock.success.revealBtn=Tresor anzeigen +unlock.success.revealBtn=Laufwerk anzeigen ## Failure unlock.error.heading=Tresor konnte nicht entsperrt werden ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Diesen Tresor hinzufügen main.dropZone.unknownDragboardContent=Wenn Sie einen Tresor hinzufügen möchten, ziehen Sie ihn in dieses Fenster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinzuzufügen -main.vaultlist.contextMenu.remove=Tresor entfernen… +main.vaultlist.contextMenu.remove=Entfernen … +main.vaultlist.contextMenu.lock=Sperren +main.vaultlist.contextMenu.unlock=Entsperren … +main.vaultlist.contextMenu.unlockNow=Jetzt entsperren +main.vaultlist.contextMenu.vaultoptions=Tresoroptionen anzeigen +main.vaultlist.contextMenu.reveal=Laufwerk anzeigen main.vaultlist.addVaultBtn=Tresor hinzufügen ## Vault Detail ### Welcome @@ -280,7 +285,7 @@ vaultOptions.mount.customMountFlags=Benutzerdefinierte Mount-Flags vaultOptions.mount.winDriveLetterOccupied=belegt vaultOptions.mount.mountPoint=Einhängepunkt vaultOptions.mount.mountPoint.auto=Automatisch einen passenden Ort auswählen -vaultOptions.mount.mountPoint.driveLetter=Zugewiesenen Laufwerksbuchstaben verwenden +vaultOptions.mount.mountPoint.driveLetter=Laufwerksbuchstaben zuweisen vaultOptions.mount.mountPoint.custom=Pfad selbst wählen vaultOptions.mount.mountPoint.directoryPickerButton=Durchsuchen … vaultOptions.mount.mountPoint.directoryPickerTitle=Wähle ein leeres Verzeichnis diff --git a/main/ui/src/main/resources/i18n/strings_el.properties b/main/ui/src/main/resources/i18n/strings_el.properties index 105219c26..de5d4b147 100644 --- a/main/ui/src/main/resources/i18n/strings_el.properties +++ b/main/ui/src/main/resources/i18n/strings_el.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=Εισάγετε τον κωδικό για "%s": unlock.savePassword=Απομνημόνευση κωδικού πρόσβασης unlock.unlockBtn=Ξεκλείδωμα ## Success -unlock.success.message="%s" ξεκλειδώθηκε επιτυχώς! Το vault σας είναι διαθέσιμο. unlock.success.rememberChoice=Απομνημόνευση επιλογής, μην ρωτήσεις ξανά -unlock.success.revealBtn=Αποκάλυψη Vault +unlock.success.revealBtn=Αποκάλυψη εικονικού δίσκου ## Failure unlock.error.heading=Αδυναμία ξεκλειδώματος vault ### Invalid Mount Point @@ -223,7 +222,10 @@ main.dropZone.dropVault=Προσθήκη vault main.dropZone.unknownDragboardContent=Αν θέλετε να προσθέσετε ένα vault, σύρετε το σε αυτό το παράθυρο ## Vault List main.vaultlist.emptyList.onboardingInstruction=Κάντε κλικ εδώ για να προσθέσετε ένα vault -main.vaultlist.contextMenu.remove=Διαγραφή Vault… +main.vaultlist.contextMenu.lock=Κλείδωμα +main.vaultlist.contextMenu.unlock=Ξεκλείδωμα… +main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα +main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου main.vaultlist.addVaultBtn=Προσθήκη Vault ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_es.properties b/main/ui/src/main/resources/i18n/strings_es.properties index bea555acd..de683e3a8 100644 --- a/main/ui/src/main/resources/i18n/strings_es.properties +++ b/main/ui/src/main/resources/i18n/strings_es.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt=Ingresar contraseña para "%s": unlock.savePassword=Recordar contraseña unlock.unlockBtn=Desbloquear ## Success -unlock.success.message=¡"%s" se desbloqueó con éxito! La bóveda ya es accesible. +unlock.success.message=¡Desbloqueo de "%s" exitoso! Su bóveda ahora es accesible a través de su unidad virtual. unlock.success.rememberChoice=Recordar opción y no mostrar de nuevo -unlock.success.revealBtn=Revelar bóveda +unlock.success.revealBtn=Revelar unidad ## Failure unlock.error.heading=No se puede desbloquear la bóveda ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Añadir esta bóveda main.dropZone.unknownDragboardContent=Si desea añadir una bóveda, arrástrela a esta ventana ## Vault List main.vaultlist.emptyList.onboardingInstruction=Hacer clic aquí para añadir una bóveda -main.vaultlist.contextMenu.remove=Eliminar bóveda… +main.vaultlist.contextMenu.remove=Eliminar… +main.vaultlist.contextMenu.lock=Bloquear +main.vaultlist.contextMenu.unlock=Desbloquear… +main.vaultlist.contextMenu.unlockNow=Desbloquear ahora +main.vaultlist.contextMenu.vaultoptions=Mostrar opciones de la bóveda +main.vaultlist.contextMenu.reveal=Revelar unidad main.vaultlist.addVaultBtn=Añadir bóveda ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_fr.properties b/main/ui/src/main/resources/i18n/strings_fr.properties index dbcc83a00..27c9951e2 100644 --- a/main/ui/src/main/resources/i18n/strings_fr.properties +++ b/main/ui/src/main/resources/i18n/strings_fr.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt=Entrez le mot de passe pour “%s” : unlock.savePassword=Mémoriser le mot de passe unlock.unlockBtn=Déverrouiller ## Success -unlock.success.message=“%s” déverrouillé ! Le contenu de votre coffre est maintenant accessible. +unlock.success.message=“%s” déverrouillé ! Le contenu de votre coffre est maintenant accessible par son lecteur virtuel. unlock.success.rememberChoice=Se souvenir de mon choix et ne plus me demander -unlock.success.revealBtn=Révéler le coffre +unlock.success.revealBtn=Révéler le lecteur ## Failure unlock.error.heading=Impossible de déverrouiller le coffre ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Ajouter ce coffre main.dropZone.unknownDragboardContent=Si vous voulez ajouter un coffre, faites-le glisser dans cette fenêtre ## Vault List main.vaultlist.emptyList.onboardingInstruction=Cliquez ici pour ajouter un coffre -main.vaultlist.contextMenu.remove=Supprimer le coffre… +main.vaultlist.contextMenu.remove=Retirer… +main.vaultlist.contextMenu.lock=Verrouiller +main.vaultlist.contextMenu.unlock=Déverrouiller… +main.vaultlist.contextMenu.unlockNow=Déverrouiller maintenant +main.vaultlist.contextMenu.vaultoptions=Afficher les options du coffre +main.vaultlist.contextMenu.reveal=Révéler le lecteur main.vaultlist.addVaultBtn=Ajouter un coffre ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_hi.properties b/main/ui/src/main/resources/i18n/strings_hi.properties index c2433517a..85d139a01 100644 --- a/main/ui/src/main/resources/i18n/strings_hi.properties +++ b/main/ui/src/main/resources/i18n/strings_hi.properties @@ -106,6 +106,7 @@ main.closeBtn.tooltip=बंद करें main.preferencesBtn.tooltip=प्राथमिकताएं ## Drag 'n' Drop ## Vault List +main.vaultlist.contextMenu.lock=लॉक करें main.vaultlist.addVaultBtn=वाउल्ट डालें ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_hu.properties b/main/ui/src/main/resources/i18n/strings_hu.properties index 4a6d80c2f..6d212b025 100644 --- a/main/ui/src/main/resources/i18n/strings_hu.properties +++ b/main/ui/src/main/resources/i18n/strings_hu.properties @@ -96,7 +96,6 @@ unlock.title=Széf feloldása unlock.passwordPrompt=Írja be a jelszavát a következő széfhez "%s": unlock.unlockBtn=Feloldás ## Success -unlock.success.message="%s" sikreresen feloldásra került! Mostmár hozzáférhet a széféhez. unlock.success.rememberChoice=Jegyezze meg a választást és ne mutassa többet unlock.success.revealBtn=Széf megjelenítése ## Failure @@ -207,7 +206,10 @@ main.dropZone.dropVault=Adja hozzá ezt a széfet main.dropZone.unknownDragboardContent=Ha egy széfet szeretne hozzáadni, akkor húzza át erre az ablakra. ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kattintson ide egy széf hozzáadásához -main.vaultlist.contextMenu.remove=Széf eltávolítása… +main.vaultlist.contextMenu.lock=Zárolás +main.vaultlist.contextMenu.unlock=Feloldás… +main.vaultlist.contextMenu.unlockNow=Azonnali feloldás +main.vaultlist.contextMenu.reveal=Széf megjelenítése main.vaultlist.addVaultBtn=Széf hozzáadása ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_id.properties b/main/ui/src/main/resources/i18n/strings_id.properties index 96ea796fb..20bc657d7 100644 --- a/main/ui/src/main/resources/i18n/strings_id.properties +++ b/main/ui/src/main/resources/i18n/strings_id.properties @@ -109,6 +109,7 @@ main.closeBtn.tooltip=Tutup main.preferencesBtn.tooltip=Preferensi ## Drag 'n' Drop ## Vault List +main.vaultlist.contextMenu.lock=Gembok main.vaultlist.addVaultBtn=Tambah Brankas ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_it.properties b/main/ui/src/main/resources/i18n/strings_it.properties index c11ba1bc3..3636aa968 100644 --- a/main/ui/src/main/resources/i18n/strings_it.properties +++ b/main/ui/src/main/resources/i18n/strings_it.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=Inserisci la password per "%s": unlock.savePassword=Ricorda la Password unlock.unlockBtn=Sblocca ## Success -unlock.success.message=Sbloccato "%s" con successo! La tua cassaforte è ora accessibile. unlock.success.rememberChoice=Ricorda la scelta, non mostrare ancora -unlock.success.revealBtn=Rivela Cassaforte +unlock.success.revealBtn=Visualizza disco ## Failure unlock.error.heading=Impossibile sbloccare la cassaforte ### Invalid Mount Point @@ -221,7 +220,10 @@ main.dropZone.dropVault=Aggiungi questa cassaforte main.dropZone.unknownDragboardContent=Se vuoi aggiungere una cassaforte, trascinala in questa finestra ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cassaforte -main.vaultlist.contextMenu.remove=Rimuovi Cassaforte… +main.vaultlist.contextMenu.lock=Blocca +main.vaultlist.contextMenu.unlock=Sblocca… +main.vaultlist.contextMenu.unlockNow=Sblocca adesso +main.vaultlist.contextMenu.reveal=Visualizza disco main.vaultlist.addVaultBtn=Aggiungi Cassaforte ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_ja.properties b/main/ui/src/main/resources/i18n/strings_ja.properties index 8f8b8a124..b08180424 100644 --- a/main/ui/src/main/resources/i18n/strings_ja.properties +++ b/main/ui/src/main/resources/i18n/strings_ja.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt="%s" のパスワードを入力してください: unlock.savePassword=パスワードを記憶させる unlock.unlockBtn=解錠 ## Success -unlock.success.message="%s" の解錠に成功しました! 金庫にアクセス可能です。 unlock.success.rememberChoice=選択を記憶させて、再度表示しない -unlock.success.revealBtn=金庫を表示 +unlock.success.revealBtn=ドライブを表示 ## Failure unlock.error.heading=金庫の解錠に失敗 ### Invalid Mount Point @@ -223,7 +222,10 @@ main.dropZone.dropVault=この金庫を追加 main.dropZone.unknownDragboardContent=このウィンドウにドラッグして、金庫を追加 ## Vault List main.vaultlist.emptyList.onboardingInstruction=ここをクリックして金庫を追加 -main.vaultlist.contextMenu.remove=金庫を削除... +main.vaultlist.contextMenu.lock=施錠 +main.vaultlist.contextMenu.unlock=解錠... +main.vaultlist.contextMenu.unlockNow=今すぐ解錠 +main.vaultlist.contextMenu.reveal=ドライブを表示 main.vaultlist.addVaultBtn=金庫を追加 ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_ko.properties b/main/ui/src/main/resources/i18n/strings_ko.properties index c5ca492f6..a78e23445 100644 --- a/main/ui/src/main/resources/i18n/strings_ko.properties +++ b/main/ui/src/main/resources/i18n/strings_ko.properties @@ -67,7 +67,7 @@ addvault.new.readme.storageLocation.10=만일 도움이 필요하신 경우, 다 addvault.new.readme.accessLocation.fileName=WELCOME.rtf addvault.new.readme.accessLocation.1=🔐️ 암호화 된 볼륨 🔐️ addvault.new.readme.accessLocation.2=이것은 당신의 Vault 접근 위치입니다. -addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것 처럼 보여질 뿐이며, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다. +addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것 처럼 보여지지만, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다. addvault.new.readme.accessLocation.4=이 파일은 지우셔도 무방합니다. ## Existing addvaultwizard.existing.instruction=기존 Vault 의 "masterkey.cryptomator" 파일을 선택하여 주십시요. @@ -98,9 +98,8 @@ unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요. unlock.savePassword=비밀번호 기억 unlock.unlockBtn=잠금해제 ## Success -unlock.success.message="%s"의 잠금해제가 성공적으로 수행되었습니다! 이제 이 Vault의 접근이 가능합니다. unlock.success.rememberChoice=선택 기억함, 다시 묻지 않음 -unlock.success.revealBtn=Vault 표시 +unlock.success.revealBtn=드라이브 표시 ## Failure unlock.error.heading=Vault 잠금을 해제 할 수 없습니다. ### Invalid Mount Point @@ -223,7 +222,10 @@ main.dropZone.dropVault=이 Vault를 추가 main.dropZone.unknownDragboardContent=Vault를 추가하려면, 이 창에 드래그 하십시요. ## Vault List main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이곳을 클릭합니다. -main.vaultlist.contextMenu.remove=Vault 제거... +main.vaultlist.contextMenu.lock=잠금 +main.vaultlist.contextMenu.unlock=잠금해제... +main.vaultlist.contextMenu.unlockNow=지금 잠금해제 +main.vaultlist.contextMenu.reveal=드라이브 표시 main.vaultlist.addVaultBtn=Vault 추가 ## Vault Detail ### Welcome @@ -294,7 +296,7 @@ vaultOptions.masterkey.recoverPasswordBtn=비밀번호 복구 # Recovery Key recoveryKey.title=복구 키 -recoveryKey.enterPassword.prompt="%s"의 복구 키를 표시하려면 비밀번호를 입력하여 주십시요. +recoveryKey.enterPassword.prompt="%s"의 복구 키를 표시하려면 비밀번호를 입력해 주세요. recoveryKey.display.message="%s" 데이터 접근을 복원하는데 사용 할 수 있는 복구 키 입니다: recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예시:\n • 비밀번호 관리자를 사용하여 저장\n • USB 플래시 드라이브에 저장\n • 종이에 출력 recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요: @@ -302,7 +304,7 @@ recoveryKey.recover.validKey=올바른 복구 키 입니다. recoveryKey.printout.heading=Cryptomator 복구 키\n"%s"\n # New Password -newPassword.promptText=새 비밀번호를 입력하십시요. +newPassword.promptText=새 비밀번호를 입력하세요 newPassword.reenterPassword=새 비밀번호를 확인하여 주십시요. newPassword.passwordsMatch=비밀번호가 일치합니다! newPassword.passwordsDoNotMatch=비밀번호가 일치하지 않습니다. diff --git a/main/ui/src/main/resources/i18n/strings_lv.properties b/main/ui/src/main/resources/i18n/strings_lv.properties index 938ac5833..2812515c2 100644 --- a/main/ui/src/main/resources/i18n/strings_lv.properties +++ b/main/ui/src/main/resources/i18n/strings_lv.properties @@ -95,8 +95,7 @@ unlock.title=Atslēgt glabātuvi unlock.passwordPrompt=Ievadiet "%s" paroli: unlock.unlockBtn=Atslēgt ## Success -unlock.success.message="%s" sekmīgi atslēgts! Jūsu glabātuve tagad ir pieejama. -unlock.success.revealBtn=Atklāt glabātuvi +unlock.success.revealBtn=Atklāt disku ## Failure ### Invalid Mount Point @@ -171,6 +170,9 @@ main.dropZone.dropVault=Pievienot šo glabātuvi main.dropZone.unknownDragboardContent=Ja jūs vēlaties pievienot glabātuvi, velciet to uz šo logu ## Vault List main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glabātuvi +main.vaultlist.contextMenu.lock=Aizslēgt +main.vaultlist.contextMenu.unlockNow=Atslēgt tagad +main.vaultlist.contextMenu.reveal=Atklāt disku main.vaultlist.addVaultBtn=Pievienot glabātuvi ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_nb.properties b/main/ui/src/main/resources/i18n/strings_nb.properties index 2bda8d0b3..444721b0b 100644 --- a/main/ui/src/main/resources/i18n/strings_nb.properties +++ b/main/ui/src/main/resources/i18n/strings_nb.properties @@ -95,11 +95,11 @@ forgetPassword.confirmBtn=Glem passord # Unlock unlock.title=Lås opp hvelvet unlock.passwordPrompt=Skriv inn passordet for "%s": +unlock.savePassword=Husk passord unlock.unlockBtn=Lås opp ## Success -unlock.success.message=Vellykket opplåsning av "%s"! Hvelvet ditt er nå tilgjengelig. unlock.success.rememberChoice=Husk valget - ikke vis dette igjen -unlock.success.revealBtn=Gjør hvelvet synlig +unlock.success.revealBtn=Gjør enheten synlig ## Failure unlock.error.heading=Klarer ikke å låse opp hvelvet ### Invalid Mount Point @@ -201,6 +201,7 @@ stats.read.accessCount=Lesninger totalt: %d stats.write.throughput.idle=Skrive: inaktiv stats.write.throughput.kibs=Skriver: %.2f kiB/s stats.write.throughput.mibs=Skriver: %.2f MiB/s +stats.write.total.data.none=Data skrevet: - stats.write.total.data.kib=Data skrevet: %.1f kiB stats.write.total.data.mib=Data skrevet: %.1f MiB stats.write.total.data.gib=Data skrevet: %.1f GiB @@ -221,7 +222,10 @@ main.dropZone.dropVault=Legg til dette hvelvet main.dropZone.unknownDragboardContent=Hvis du vil legge til et hvelv, kan du dra det til dette vinduet ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legge til et hvelv -main.vaultlist.contextMenu.remove=Fjern hvelvet… +main.vaultlist.contextMenu.lock=Lås +main.vaultlist.contextMenu.unlock=Lås opp… +main.vaultlist.contextMenu.unlockNow=Lås opp nå +main.vaultlist.contextMenu.reveal=Gjør enheten synlig main.vaultlist.addVaultBtn=Legg til hvelv ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_nl.properties b/main/ui/src/main/resources/i18n/strings_nl.properties index d824bfc7b..0d053ea2b 100644 --- a/main/ui/src/main/resources/i18n/strings_nl.properties +++ b/main/ui/src/main/resources/i18n/strings_nl.properties @@ -97,9 +97,8 @@ unlock.title=Kluis ontgrendelen unlock.passwordPrompt=Voer wachtwoord voor "%s" in: unlock.unlockBtn=Ontgrendel ## Success -unlock.success.message="%s" is met succes ontgrendeld! Uw kluis is nu toegankelijk. unlock.success.rememberChoice=Keuze onthouden en dit niet opnieuw tonen -unlock.success.revealBtn=Toon kluis +unlock.success.revealBtn=Toon Schijf ## Failure unlock.error.heading=Kan kluis niet ontgrendelen ### Invalid Mount Point @@ -221,7 +220,10 @@ main.dropZone.dropVault=Voeg deze kluis toe main.dropZone.unknownDragboardContent=Als u een kluis wilt toevoegen, sleep deze dan naar dit venster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klik hier om een kluis toe te voegen -main.vaultlist.contextMenu.remove=Verwijder Kluis… +main.vaultlist.contextMenu.lock=Vergrendel +main.vaultlist.contextMenu.unlock=Ontgrendelen… +main.vaultlist.contextMenu.unlockNow=Nu Ontgrendelen +main.vaultlist.contextMenu.reveal=Toon Schijf main.vaultlist.addVaultBtn=Kluis toevoegen ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_nn.properties b/main/ui/src/main/resources/i18n/strings_nn.properties index 7d291d646..d3aab4caa 100644 --- a/main/ui/src/main/resources/i18n/strings_nn.properties +++ b/main/ui/src/main/resources/i18n/strings_nn.properties @@ -96,9 +96,8 @@ unlock.title=Lås opp kvelven unlock.passwordPrompt=Skriv inn passordet for "%s": unlock.unlockBtn=Låse opp ## Success -unlock.success.message=Vellykka opplåsning av "%s"! Kvelven din er no tilgjengeleg. unlock.success.rememberChoice=Hugs valet - ikkje vis dette igjen -unlock.success.revealBtn=Gjer kvelven synleg +unlock.success.revealBtn=Gjer eininga synleg ## Failure ### Invalid Mount Point @@ -178,6 +177,10 @@ main.dropZone.dropVault=Legg til denne kvelven main.dropZone.unknownDragboardContent=Viss du vil legga til ein kvelv, kan du dra det til dette vindauget ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legga til ein kvelv +main.vaultlist.contextMenu.lock=Lås +main.vaultlist.contextMenu.unlock=Lås opp… +main.vaultlist.contextMenu.unlockNow=Lås opp no +main.vaultlist.contextMenu.reveal=Gjer eininga synleg main.vaultlist.addVaultBtn=Legg til kvelv ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_pa.properties b/main/ui/src/main/resources/i18n/strings_pa.properties index 33660d71e..c41562dd2 100644 --- a/main/ui/src/main/resources/i18n/strings_pa.properties +++ b/main/ui/src/main/resources/i18n/strings_pa.properties @@ -95,11 +95,11 @@ forgetPassword.confirmBtn=ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ # Unlock unlock.title=ਵਾਲਟ ਅਣ-ਲਾਕ ਕਰੋ unlock.passwordPrompt="%s" ਲਈ ਪਾਸਵਰਡ ਦਿਓ: +unlock.savePassword=ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ unlock.unlockBtn=ਅਣ-ਲਾਕ ਕਰੋ ## Success -unlock.success.message="%s" ਕਾਮਯਾਬੀ ਨਾਲ ਅਣ-ਲਾਕ ਕੀਤਾ! ਤੁਹਾਡਾ ਵਾਲਟ ਹੁਣ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। unlock.success.rememberChoice=ਚੋਣਾਂ ਯਾਦ ਰੱਖੋ, ਇਹ ਮੁੜ ਕੇ ਨਾ ਵੇਖਾਓ -unlock.success.revealBtn=ਵਾਲਟ ਦਿਖਾਓ +unlock.success.revealBtn=ਡਰਾਇਵ ਦਿਖਾਓ ## Failure unlock.error.heading=ਵਾਲਟ ਅਣ-ਲਾਕ ਕਰਨ ਲਈ ਅਸਮਰੱਥ ### Invalid Mount Point @@ -201,6 +201,7 @@ stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ stats.write.throughput.kibs=ਲਿਖੇ: %.2f kiB/s stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s +stats.write.total.data.none=ਲਿਖਿਆ ਡਾਟਾ: - stats.write.total.data.kib=ਡਾਟਾ ਲਿਖਿਆ: %.1f kiB stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB @@ -221,7 +222,10 @@ main.dropZone.dropVault=ਇਹ ਵਾਲਟ ਜੋੜੋ main.dropZone.unknownDragboardContent=ਜੇ ਤੁਸੀਂ ਵਾਲਟ ਜੋੜਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਇਸ ਨੂੰ ਬੰਦ ਵਿੰਡੋ ਉੱਤੇ ਖਿੱਚੋ ## Vault List main.vaultlist.emptyList.onboardingInstruction=ਵਾਲਟ ਜੋੜਨ ਲਈ ਇੱਥੇ ਕਲਿੱਕ ਕਰੋ -main.vaultlist.contextMenu.remove=…ਵਾਲਟ ਹਟਾਓ +main.vaultlist.contextMenu.lock=ਲਾਕ ਕਰੋ +main.vaultlist.contextMenu.unlock=ਅਣ-ਲਾਕ ਕਰੋ… +main.vaultlist.contextMenu.unlockNow=ਹੁਣੇ ਅਣ-ਲਾਕ ਕਰੋ +main.vaultlist.contextMenu.reveal=ਡਰਾਇਵ ਦਿਖਾਓ main.vaultlist.addVaultBtn=ਵਾਲਟ ਜੋੜੋ ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_pl.properties b/main/ui/src/main/resources/i18n/strings_pl.properties index f3c18adfe..5aedad03b 100644 --- a/main/ui/src/main/resources/i18n/strings_pl.properties +++ b/main/ui/src/main/resources/i18n/strings_pl.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt=Wprowadź hasło dla "%s": unlock.savePassword=Zapamiętaj hasło unlock.unlockBtn=Odblokuj ## Success -unlock.success.message="%s" został odblokowany! Twój sejf jest teraz dostępny. +unlock.success.message=Odblokowano "%s" pomyślnie! Twój sejf jest teraz dostępny za pomocą dysku wirtualnego. unlock.success.rememberChoice=Zapamiętaj wybór, nie pokazuj tego ponownie -unlock.success.revealBtn=Otwórz sejf +unlock.success.revealBtn=Ujawnij Dysk ## Failure unlock.error.heading=Nie można odblokować sejfu ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Dodaj ten sejf main.dropZone.unknownDragboardContent=Jeśli chcesz dodać sejf, przeciągnij go do tego okna ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kliknij tutaj, aby dodać sejf -main.vaultlist.contextMenu.remove=Usuń sejf… +main.vaultlist.contextMenu.remove=Usuń… +main.vaultlist.contextMenu.lock=Zablokuj +main.vaultlist.contextMenu.unlock=Odblokuj… +main.vaultlist.contextMenu.unlockNow=Odblokuj teraz +main.vaultlist.contextMenu.vaultoptions=Pokaż opcje sejfu +main.vaultlist.contextMenu.reveal=Otwórz lokalizację main.vaultlist.addVaultBtn=Dodaj sejf ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_pt.properties b/main/ui/src/main/resources/i18n/strings_pt.properties index 4f1ad61f4..977d610cb 100644 --- a/main/ui/src/main/resources/i18n/strings_pt.properties +++ b/main/ui/src/main/resources/i18n/strings_pt.properties @@ -88,9 +88,7 @@ unlock.title=Destrancar Cofre unlock.passwordPrompt=Insira a senha para "%s": unlock.unlockBtn=Destrancar ## Success -unlock.success.message=Desbloqueado "%s" com sucesso! O seu cofre está agora acessível. unlock.success.rememberChoice=Lembrar escolha, não mostrar isto novamente -unlock.success.revealBtn=Revelar Cofre ## Failure ### Invalid Mount Point @@ -140,6 +138,8 @@ main.minimizeBtn.tooltip=Minimizar main.preferencesBtn.tooltip=Preferências ## Drag 'n' Drop ## Vault List +main.vaultlist.contextMenu.lock=Trancar +main.vaultlist.contextMenu.unlockNow=Destrancar agora main.vaultlist.addVaultBtn=Adicionar Cofre ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_pt_BR.properties b/main/ui/src/main/resources/i18n/strings_pt_BR.properties index 6323b2cb6..8c6f034a9 100644 --- a/main/ui/src/main/resources/i18n/strings_pt_BR.properties +++ b/main/ui/src/main/resources/i18n/strings_pt_BR.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=Digite a senha para "%s": unlock.savePassword=Lembrar Senha unlock.unlockBtn=Desbloquear ## Success -unlock.success.message="%s" foi desbloqueado com sucesso! Seu cofre agora está acessível. unlock.success.rememberChoice=Lembrar opção escolhida, não mostrar isto novamente -unlock.success.revealBtn=Revelar Cofre +unlock.success.revealBtn=Revelar Volume ## Failure unlock.error.heading=Não foi possível desbloquear o cofre ### Invalid Mount Point @@ -202,6 +201,7 @@ stats.read.accessCount=Total de leituras: %d stats.write.throughput.idle=Escrita: ociosa stats.write.throughput.kibs=Escrita: %.2f kiB/s stats.write.throughput.mibs=Escrita: %.2f MiB/s +stats.write.total.data.none=Dados gravados: - stats.write.total.data.kib=Dados gravados: %.1f kiB stats.write.total.data.mib=Dados gravados: %.1f MiB stats.write.total.data.gib=Dados gravados: %.1f GiB @@ -222,7 +222,10 @@ main.dropZone.dropVault=Adicionar este cofre main.dropZone.unknownDragboardContent=Se você quer adicionar um cofre, arraste-o para esta janela ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clique aqui para adicionar um cofre -main.vaultlist.contextMenu.remove=Remover Cofre… +main.vaultlist.contextMenu.lock=Bloquear +main.vaultlist.contextMenu.unlock=Desbloquear… +main.vaultlist.contextMenu.unlockNow=Desbloquear Agora +main.vaultlist.contextMenu.reveal=Revelar Volume main.vaultlist.addVaultBtn=Adicionar Cofre ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_ru.properties b/main/ui/src/main/resources/i18n/strings_ru.properties index ba7b08e0d..7ccfc5930 100644 --- a/main/ui/src/main/resources/i18n/strings_ru.properties +++ b/main/ui/src/main/resources/i18n/strings_ru.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt=Введите пароль для "%s" unlock.savePassword=Запомнить пароль unlock.unlockBtn=Разблокировать ## Success -unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт. +unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт через его виртуальный диск. unlock.success.rememberChoice=Запомнить выбор и больше не спрашивать -unlock.success.revealBtn=Показать хранилище +unlock.success.revealBtn=Показать диск ## Failure unlock.error.heading=Не удалось разблокировать хранилище ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Добавить это хранилище main.dropZone.unknownDragboardContent=Если вы хотите добавить хранилище, перетащите его в это окно ## Vault List main.vaultlist.emptyList.onboardingInstruction=Нажмите здесь, чтобы добавить хранилище -main.vaultlist.contextMenu.remove=Удалить хранилище… +main.vaultlist.contextMenu.remove=Удалить… +main.vaultlist.contextMenu.lock=Заблокировать +main.vaultlist.contextMenu.unlock=Разблокировка… +main.vaultlist.contextMenu.unlockNow=Разблокировать +main.vaultlist.contextMenu.vaultoptions=Параметры хранилища +main.vaultlist.contextMenu.reveal=Показать диск main.vaultlist.addVaultBtn=Добавить хранилище ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_sk.properties b/main/ui/src/main/resources/i18n/strings_sk.properties index cbd5a22cc..a1378658d 100644 --- a/main/ui/src/main/resources/i18n/strings_sk.properties +++ b/main/ui/src/main/resources/i18n/strings_sk.properties @@ -96,8 +96,6 @@ unlock.passwordPrompt=Zadajte heslo pre "%s": unlock.savePassword=Odomknúť.uložiťHeslo unlock.unlockBtn=Odomknúť ## Success -unlock.success.message=Úspešne sa odomkol "%s"! Váš trezor je teraz prístupný. -unlock.success.revealBtn=Odhaliť trezor ## Failure unlock.error.heading=Nie je možné odomknúť účet ### Invalid Mount Point @@ -172,7 +170,9 @@ main.preferencesBtn.tooltip=Predvoľby main.debugModeEnabled.tooltip=Debagovací mód je aktivovaný ## Drag 'n' Drop ## Vault List -main.vaultlist.contextMenu.remove=Odstrániť peňaženku… +main.vaultlist.contextMenu.lock=Uzamknúť +main.vaultlist.contextMenu.unlock=Odomknúť… +main.vaultlist.contextMenu.unlockNow=Odomknúť teraz main.vaultlist.addVaultBtn=Pridať trezor ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_sr.properties b/main/ui/src/main/resources/i18n/strings_sr.properties new file mode 100644 index 000000000..9f2898f25 --- /dev/null +++ b/main/ui/src/main/resources/i18n/strings_sr.properties @@ -0,0 +1,75 @@ +# Locale Specific CSS files such as CJK, RTL,... + +# Generics +## Button +## Error + +# Defaults + +# Tray Menu + +# Add Vault Wizard +## Welcome +## New +### Name +### Location +### Password +### Information +## Existing +## Success + +# Remove Vault + +# Change Password + +# Forget Password + +# Unlock +## Success +## Failure +### Invalid Mount Point + +# Lock +## Force +## Failure + +# Migration +## Start +## Run +## Sucess +## Missing file system capabilities +## Impossible + +# Preferences +## General +## Volume +## Updates +## Donation Key +## About + +# Vault Statistics +## Read +## Write + +# Main Window +## Drag 'n' Drop +## Vault List +## Vault Detail +### Welcome +### Locked +### Unlocked +### Missing +### Needs Migration + +# Wrong File Alert + +# Vault Options +## General +## Mount +## Master Key + +# Recovery Key + +# New Password + +# Quit diff --git a/main/ui/src/main/resources/i18n/strings_sv.properties b/main/ui/src/main/resources/i18n/strings_sv.properties index 9677fa732..54b9dd28c 100644 --- a/main/ui/src/main/resources/i18n/strings_sv.properties +++ b/main/ui/src/main/resources/i18n/strings_sv.properties @@ -14,7 +14,7 @@ generic.button.next=Nästa generic.button.print=Skriv ut ## Error generic.error.title=Ett oväntat fel uppstod -generic.error.instruction=Det här borde inte ha hänt. Vänligen rapportera feltexten nedan och inkludera en beskrivning av vilka steg som ledde till detta fel. +generic.error.instruction=Detta borde inte hänt. Vänligen rapportera feltexten nedan och inkludera en beskrivning av vilka steg som ledde till detta fel. # Defaults defaults.vault.vaultName=Valv @@ -56,7 +56,7 @@ addvaultwizard.new.generateRecoveryKeyChoice.no=Nej tack. Här slarvas inga lös addvault.new.readme.storageLocation.fileName=VIKTIGT.rtf addvault.new.readme.storageLocation.1=⚠️ VALVFILER ⚠️ addvault.new.readme.storageLocation.2=Detta är ditt valvs lagringsplats. -addvault.new.readme.storageLocation.3=INTE +addvault.new.readme.storageLocation.3=DU SKA INTE addvault.new.readme.storageLocation.4=• ändra någon fil i denna katalog eller addvault.new.readme.storageLocation.5=• klistra in filer för kryptering i denna katalog. addvault.new.readme.storageLocation.6=Om du vill kryptera filer och se innehållet i valvet, gör följande: @@ -74,7 +74,7 @@ addvaultwizard.existing.instruction=Välj "masterkey.cryptomator" för ditt befi addvaultwizard.existing.chooseBtn=Välj… addvaultwizard.existing.filePickerTitle=Välj Masterkey-fil ## Success -addvaultwizard.success.nextStepsInstructions=Lade till valv "%s".\nDu behöver låsa upp detta valv för att komma åt eller lägga till innehåll. Du kan även låsa upp det vid ett senare tillfälle. +addvaultwizard.success.nextStepsInstructions=Lade till valv "%s".\nDu måste låsa upp detta valv för att komma åt eller lägga till innehåll. Du kan även låsa upp det vid ett senare tillfälle. addvaultwizard.success.unlockNow=Lås upp nu # Remove Vault @@ -98,9 +98,8 @@ unlock.passwordPrompt=Ange lösenord för "%s": unlock.savePassword=Kom ihåg lösenord unlock.unlockBtn=Lås upp ## Success -unlock.success.message="%s" upplåst! Ditt valv är nu åtkomligt. unlock.success.rememberChoice=Kom ihåg valet, visa inte detta igen -unlock.success.revealBtn=Visa valv +unlock.success.revealBtn=Visa enhet ## Failure unlock.error.heading=Kan inte låsa upp valvet ### Invalid Mount Point @@ -126,7 +125,7 @@ migration.run.enterPassword=Ange lösenordet för "%s" migration.run.startMigrationBtn=Migrera valv migration.run.progressHint=Detta kan ta lite tid… ## Sucess -migration.success.nextStepsInstructions="%s" migrerades fullständigt.\nDu kan nu låsa upp ditt valv. +migration.success.nextStepsInstructions="%s" migrerades korrekt.\nDu kan nu låsa upp ditt valv. migration.success.unlockNow=Lås upp nu ## Missing file system capabilities migration.error.missingFileSystemCapabilities.title=Filsystemet stöds ej @@ -137,7 +136,7 @@ migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Filsystemet til migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Filsystemet tillåter inte att skrivas till. ## Impossible migration.impossible.heading=Kan inte migrera valv -migration.impossible.reason=Valvet kan inte migreras automatiskt eftersom dess lagringsplats eller åtkomstpunkt inte är kompatibel. +migration.impossible.reason=Valvet kan inte migreras automatiskt eftersom dess lagringsplats eller åtkomstpunkt inte är kompatibelt. migration.impossible.moreInfo=Valvet kan fortfarande öppnas med en äldre version. För instruktioner om hur du manuellt migrerar ett valv, besök # Preferences @@ -149,8 +148,8 @@ preferences.general.theme.automatic=Automatiskt preferences.general.theme.light=Ljust preferences.general.theme.dark=Mörkt preferences.general.unlockThemes=Lås upp mörkt läge -preferences.general.showMinimizeButton=Visa minimera knappen -preferences.general.showTrayIcon=Visa tray-ikon (kräver omstart) +preferences.general.showMinimizeButton=Visa minimera-knappen +preferences.general.showTrayIcon=Visa ikon i aktivitetsfältet (kräver omstart) preferences.general.startHidden=Dölj fönster när Cryptomator startar preferences.general.debugLogging=Aktivera loggning för felsökning preferences.general.debugDirectory=Visa loggfiler @@ -171,7 +170,7 @@ preferences.volume.webdav.scheme=WebDAV Schema ## Updates preferences.updates=Uppdateringar preferences.updates.currentVersion=Nuvarande version: %s -preferences.updates.autoUpdateCheck=Kontrollera uppdateringar automatiskt +preferences.updates.autoUpdateCheck=Sök efter uppdateringar automatiskt preferences.updates.checkNowBtn=Kontrollera nu preferences.updates.updateAvailable=Uppdatering till version %s finns tillgänglig. ## Donation Key @@ -223,11 +222,14 @@ main.dropZone.dropVault=Lägg till detta valv main.dropZone.unknownDragboardContent=Om du vill lägga till ett valv, dra in det till detta fönster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klicka här för att lägga till valv -main.vaultlist.contextMenu.remove=Ta bort valv… +main.vaultlist.contextMenu.lock=Lås +main.vaultlist.contextMenu.unlock=Lås upp… +main.vaultlist.contextMenu.unlockNow=Lås upp nu +main.vaultlist.contextMenu.reveal=Visa enhet main.vaultlist.addVaultBtn=Lägg till valv ## Vault Detail ### Welcome -main.vaultDetail.welcomeOnboarding=Tack för att du väljer Cryptomator för att skydda dina filer. Om du behöver hjälp, kolla in våra kom-gång guider: +main.vaultDetail.welcomeOnboarding=Tack för att du väljer Cryptomator för att skydda dina filer. Om du behöver hjälp kan du kolla in våra guider: ### Locked main.vaultDetail.lockedStatus=LÅST main.vaultDetail.unlockBtn=Lås upp… @@ -246,7 +248,7 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Valv Statistik ### Missing -main.vaultDetail.missing.info=Cryptomator kunde inte hitta ett valv i denna sökväg. +main.vaultDetail.missing.info=Cryptomator kunde inte hitta någt valv i denna sökväg. main.vaultDetail.missing.recheck=Kontrollera igen main.vaultDetail.missing.remove=Ta bort från listan… main.vaultDetail.missing.changeLocation=Ändra valvets plats… diff --git a/main/ui/src/main/resources/i18n/strings_tr.properties b/main/ui/src/main/resources/i18n/strings_tr.properties index c531555a4..3b46959d9 100644 --- a/main/ui/src/main/resources/i18n/strings_tr.properties +++ b/main/ui/src/main/resources/i18n/strings_tr.properties @@ -98,9 +98,9 @@ unlock.passwordPrompt="%s" için şifre girin: unlock.savePassword=Şifreyi Hatırla unlock.unlockBtn=Kilidi Aç ## Success -unlock.success.message="%s" 'nin kilidi başarıyla açıldı! Kasanız şimdi erişilebilir durumda. +unlock.success.message="%s" 'nin kilidi başarıyla açıldı! Kasanız şimdi sanal sürücüsü ile erişilebilir durumda. unlock.success.rememberChoice=Seçimi hatırla, bunu bir daha gösterme -unlock.success.revealBtn=Kasayı Göster +unlock.success.revealBtn=Sürücüyü Göster ## Failure unlock.error.heading=Kasanın kilidi açılamıyor ### Invalid Mount Point @@ -223,7 +223,12 @@ main.dropZone.dropVault=Bu kasayı ekle main.dropZone.unknownDragboardContent=Bir kasa eklemek istiyorsanız, onu bu pencereye sürükleyin ## Vault List main.vaultlist.emptyList.onboardingInstruction=Kasa eklemek için buraya tıklayın -main.vaultlist.contextMenu.remove=Kasayı Sil… +main.vaultlist.contextMenu.remove=Kaldır… +main.vaultlist.contextMenu.lock=Kilitle +main.vaultlist.contextMenu.unlock=Kilit aç… +main.vaultlist.contextMenu.unlockNow=Kilidi Şimdi Aç +main.vaultlist.contextMenu.vaultoptions=Kasa Ayarları'nı Göster +main.vaultlist.contextMenu.reveal=Sürücüyü Göster main.vaultlist.addVaultBtn=Kasa Ekle ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_zh.properties b/main/ui/src/main/resources/i18n/strings_zh.properties index e8181d946..a6227e9f7 100644 --- a/main/ui/src/main/resources/i18n/strings_zh.properties +++ b/main/ui/src/main/resources/i18n/strings_zh.properties @@ -98,9 +98,8 @@ unlock.passwordPrompt=输入 "%s" 的密码 unlock.savePassword=记住密码 unlock.unlockBtn=解锁 ## Success -unlock.success.message=已成功解锁 "%s"! 您现在可以访问该保险库 unlock.success.rememberChoice=记住选项且不再显示 -unlock.success.revealBtn=显示保险库 +unlock.success.revealBtn=显示驱动器 ## Failure unlock.error.heading=无法解锁保险库 ### Invalid Mount Point @@ -223,7 +222,10 @@ main.dropZone.dropVault=添加此保险库 main.dropZone.unknownDragboardContent=如果您想要添加一个保险库,将其拖动到此窗口 ## Vault List main.vaultlist.emptyList.onboardingInstruction=点击此处添加一个保险库 -main.vaultlist.contextMenu.remove=删除保险库… +main.vaultlist.contextMenu.lock=锁定 +main.vaultlist.contextMenu.unlock=解锁… +main.vaultlist.contextMenu.unlockNow=立即解锁 +main.vaultlist.contextMenu.reveal=显示驱动器 main.vaultlist.addVaultBtn=添加保险库 ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/i18n/strings_zh_TW.properties b/main/ui/src/main/resources/i18n/strings_zh_TW.properties index e484651bd..c1afb3720 100644 --- a/main/ui/src/main/resources/i18n/strings_zh_TW.properties +++ b/main/ui/src/main/resources/i18n/strings_zh_TW.properties @@ -95,11 +95,12 @@ forgetPassword.confirmBtn=忘記密碼 # Unlock unlock.title=解鎖加密檔案庫 unlock.passwordPrompt=輸入 "%s" 的密碼: +unlock.savePassword=記住密碼 unlock.unlockBtn=解鎖 ## Success -unlock.success.message=成功解鎖 "%s"!您現在可以存取您的加密檔案庫。 +unlock.success.message=成功解鎖 "%s"!您現在可以存存取您的加密檔案庫。 unlock.success.rememberChoice=記得這個決定,不要再顯示 -unlock.success.revealBtn=顯示加密檔案庫 +unlock.success.revealBtn=顯示磁碟 ## Failure unlock.error.heading=無法解鎖加密檔案庫 ### Invalid Mount Point @@ -222,7 +223,12 @@ main.dropZone.dropVault=加入這個加密檔案庫 main.dropZone.unknownDragboardContent=如果您想加入一個加密檔案庫,請將他拖到這個視窗裡 ## Vault List main.vaultlist.emptyList.onboardingInstruction=點擊此處以加入加密檔案庫 -main.vaultlist.contextMenu.remove=移除加密檔案庫… +main.vaultlist.contextMenu.remove=移除… +main.vaultlist.contextMenu.lock=鎖定 +main.vaultlist.contextMenu.unlock=解鎖… +main.vaultlist.contextMenu.unlockNow=立即解鎖 +main.vaultlist.contextMenu.vaultoptions=顯示加密檔案庫選項 +main.vaultlist.contextMenu.reveal=顯示磁碟 main.vaultlist.addVaultBtn=新增加密檔案庫 ## Vault Detail ### Welcome diff --git a/main/ui/src/main/resources/license/THIRD-PARTY.txt b/main/ui/src/main/resources/license/THIRD-PARTY.txt index c40dfa1d7..7420b0768 100644 --- a/main/ui/src/main/resources/license/THIRD-PARTY.txt +++ b/main/ui/src/main/resources/license/THIRD-PARTY.txt @@ -11,7 +11,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. -Cryptomator uses 46 third-party dependencies under the following licenses: +Cryptomator uses 45 third-party dependencies under the following licenses: Apache License v2.0: - jffi (com.github.jnr:jffi:1.2.23 - http://github.com/jnr/jffi) - jnr-a64asm (com.github.jnr:jnr-a64asm:1.0.0 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-a64asm) @@ -30,39 +30,37 @@ Cryptomator uses 46 third-party dependencies under the following licenses: - Java Native Access (net.java.dev.jna:jna:5.7.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.7.0 - https://github.com/java-native-access/jna) - Apache Commons Lang (org.apache.commons:commons-lang3:3.11 - https://commons.apache.org/proper/commons-lang/) - - Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.13 - http://hc.apache.org/httpcomponents-core-ga) - - Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.21.3 - http://jackrabbit.apache.org/jackrabbit-webdav/) - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-http) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-io) - - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-security) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-server) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-servlet) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-util) - - Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-util-ajax) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-webapp) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-xml) + - Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.14 - http://hc.apache.org/httpcomponents-core-ga) + - Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.21.5 - http://jackrabbit.apache.org/jackrabbit-webdav/) + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.1 - https://eclipse.org/jetty/jetty-http) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.1 - https://eclipse.org/jetty/jetty-io) + - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.1 - https://eclipse.org/jetty/jetty-security) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.1 - https://eclipse.org/jetty/jetty-server) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.1 - https://eclipse.org/jetty/jetty-servlet) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.1 - https://eclipse.org/jetty/jetty-util) + - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:10.0.1 - https://eclipse.org/jetty/jetty-webapp) + - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:10.0.1 - https://eclipse.org/jetty/jetty-xml) BSD: - asm (org.ow2.asm:asm:7.1 - http://asm.ow2.org/) - asm-analysis (org.ow2.asm:asm-analysis:7.1 - http://asm.ow2.org/) - asm-commons (org.ow2.asm:asm-commons:7.1 - http://asm.ow2.org/) - asm-tree (org.ow2.asm:asm-tree:7.1 - http://asm.ow2.org/) - asm-util (org.ow2.asm:asm-util:7.1 - http://asm.ow2.org/) - Eclipse Public License - Version 1.0: - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-http) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-io) - - Jetty :: Security (org.eclipse.jetty:jetty-security:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-security) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-server) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-servlet) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-util) - - Jetty :: Utilities :: Ajax(JSON) (org.eclipse.jetty:jetty-util-ajax:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-util-ajax) - - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-webapp) - - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:9.4.36.v20210114 - https://eclipse.org/jetty/jetty-xml) + Eclipse Public License - Version 2.0: + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.1 - https://eclipse.org/jetty/jetty-http) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.1 - https://eclipse.org/jetty/jetty-io) + - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.1 - https://eclipse.org/jetty/jetty-security) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.1 - https://eclipse.org/jetty/jetty-server) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.1 - https://eclipse.org/jetty/jetty-servlet) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.1 - https://eclipse.org/jetty/jetty-util) + - Jetty :: Webapp Application Support (org.eclipse.jetty:jetty-webapp:10.0.1 - https://eclipse.org/jetty/jetty-webapp) + - Jetty :: XML utilities (org.eclipse.jetty:jetty-xml:10.0.1 - https://eclipse.org/jetty/jetty-xml) 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) GPLv2: - jnr-posix (com.github.jnr:jnr-posix:3.0.54 - http://nexus.sonatype.org/oss-repository-hosting.html/jnr-posix) GPLv2+CE: - - Java Servlet API (javax.servlet:javax.servlet-api:3.1.0 - http://servlet-spec.java.net) + - Java Servlet API (javax.servlet:javax.servlet-api:4.0.1 - https://javaee.github.io/servlet-spec/) - javafx-base (org.openjfx:javafx-base:15 - https://openjdk.java.net/projects/openjfx/javafx-base/) - javafx-controls (org.openjfx:javafx-controls:15 - https://openjdk.java.net/projects/openjfx/javafx-controls/) - javafx-fxml (org.openjfx:javafx-fxml:15 - https://openjdk.java.net/projects/openjfx/javafx-fxml/) @@ -72,7 +70,7 @@ Cryptomator uses 46 third-party dependencies under the following licenses: - Java Native Access (net.java.dev.jna:jna:5.7.0 - https://github.com/java-native-access/jna) - Java Native Access Platform (net.java.dev.jna:jna-platform:5.7.0 - https://github.com/java-native-access/jna) MIT License: - - java jwt (com.auth0:java-jwt:3.12.0 - https://github.com/auth0/java-jwt) + - java jwt (com.auth0:java-jwt:3.13.0 - 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.3.0 - https://github.com/nulab/zxcvbn4j)