mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-04-20 09:36:55 -04:00
Merge branch 'release/1.4.1'
This commit is contained in:
18
.gitignore
vendored
18
.gitignore
vendored
@@ -9,15 +9,13 @@
|
||||
.settings
|
||||
.project
|
||||
.classpath
|
||||
|
||||
# Maven #
|
||||
target/
|
||||
test-output/
|
||||
|
||||
# IntelliJ Settings Files #
|
||||
.idea/
|
||||
out/
|
||||
.idea_modules/
|
||||
*.iws
|
||||
*.iml
|
||||
|
||||
# Temporary file created by test launcher
|
||||
main/launcher/.ipcPort.tmp
|
||||
# IntelliJ Settings Files (https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems) #
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/dictionaries
|
||||
.idea/**/libraries/
|
||||
*.iml
|
||||
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
||||
Cryptomator
|
||||
51
.idea/codeStyles/Project.xml
generated
Normal file
51
.idea/codeStyles/Project.xml
generated
Normal file
@@ -0,0 +1,51 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<code_scheme name="Project" version="173">
|
||||
<option name="OTHER_INDENT_OPTIONS">
|
||||
<value>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="LINE_SEPARATOR" value=" " />
|
||||
<option name="RIGHT_MARGIN" value="220" />
|
||||
<option name="FORMATTER_TAGS_ENABLED" value="true" />
|
||||
<JavaCodeStyleSettings>
|
||||
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="30" />
|
||||
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="10" />
|
||||
<option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
|
||||
<value />
|
||||
</option>
|
||||
<option name="JD_ALIGN_PARAM_COMMENTS" value="false" />
|
||||
<option name="JD_ALIGN_EXCEPTION_COMMENTS" value="false" />
|
||||
</JavaCodeStyleSettings>
|
||||
<codeStyleSettings language="Groovy">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="HTML">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JAVA">
|
||||
<option name="KEEP_LINE_BREAKS" value="false" />
|
||||
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
|
||||
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
|
||||
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
|
||||
<option name="KEEP_SIMPLE_LAMBDAS_IN_ONE_LINE" value="true" />
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JSON">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</code_scheme>
|
||||
</component>
|
||||
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
5
.idea/codeStyles/codeStyleConfig.xml
generated
Normal file
@@ -0,0 +1,5 @@
|
||||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</state>
|
||||
</component>
|
||||
16
.idea/compiler.xml
generated
Normal file
16
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile name="Maven default annotation processors profile" enabled="true">
|
||||
<sourceOutputDir name="target/generated-sources/annotations" />
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<module name="commons" />
|
||||
<module name="keychain" />
|
||||
<module name="launcher" />
|
||||
<module name="ui" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
</project>
|
||||
10
.idea/encodings.xml
generated
Normal file
10
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding">
|
||||
<file url="file://$PROJECT_DIR$/main" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/main/commons" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/main/keychain" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/main/launcher" charset="UTF-8" />
|
||||
<file url="file://$PROJECT_DIR$/main/ui" charset="UTF-8" />
|
||||
</component>
|
||||
</project>
|
||||
14
.idea/misc.xml
generated
Normal file
14
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="MavenProjectsManager">
|
||||
<option name="originalFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/main/pom.xml" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_10" project-jdk-name="10" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -7,7 +7,7 @@ cache:
|
||||
- $HOME/.m2
|
||||
env:
|
||||
global:
|
||||
- secure: "lV9OwUbHMrMpLUH1CY+Z4puLDdFXytudyPlG1eGRsesdpuG6KM3uQVz6uAtf6lrU8DRbMM/T7ML+PmvQ4UoPPYLdLxESLLBat2qUPOIVBOhTSlCc7I0DmGy04CSvkeMy8dPaQC0ukgNiR7zwoNzfcpGRN/U9S8tziDruuHoZSrg=" # BINTRAY_API_KEY
|
||||
- secure: "HftEaabMmWn5GwKFKksUkOcelc3Mn7xazwAEy+4d4gL1+F8VhID/6DCK7nas+afUymWnxTano8Rv4Ci5MWryNkNkTH+FUPWmF3xWezc3hajSyS7RB92IZ8VPetl4Fo8UI1WwM5apDEaugalPxkIf8a7N+lpG5X/Gpumwzo3Be3w=" # BINTRAY_API_KEY
|
||||
- secure: "oWFgRTVP6lyTa7qVxlvkpm20MtVc3BtmsNXQJS6bfg2A0o/iCQMNx7OD59BaafCLGRKvCcJVESiC8FlSylVMS7CDSyYu0gg70NUiIuHp4NBM5inFWYCy/PdQsCTzr5uvNG+rMFQpMFRaCV0FrfM3tLondcVkhsHL68l93Xoexx4=" # CODACY_PROJECT_TOKEN
|
||||
- secure: "zJxgytA2Ks5Xzv+7kUaUq+EBFNQw9Qec63lcMJVuXVWczjL16nKW1EzzV515ag+OWL46z3lEPForDhufw0VtFnNmaX68jkO0mp01eLrHApc1llN2Y/U8GBXfNNazN4+Kom4H+z/AO+wJr8EsKMMUczCdQ3APgd9uVI0hzXw/Z3M=" # GITHUB_API_KEY
|
||||
addons:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>ant-kit</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>commons</artifactId>
|
||||
<name>Cryptomator Commons</name>
|
||||
|
||||
@@ -5,16 +5,6 @@
|
||||
*******************************************************************************/
|
||||
package org.cryptomator.common.settings;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Base64;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.fxmisc.easybind.EasyBind;
|
||||
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.property.BooleanProperty;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
@@ -22,7 +12,20 @@ import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.fxmisc.easybind.EasyBind;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Base64;
|
||||
import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* The settings specific to a single vault.
|
||||
* TODO: Change the name of individualMountPath and its derivatives to customMountPath
|
||||
*/
|
||||
public class VaultSettings {
|
||||
|
||||
public static final boolean DEFAULT_UNLOCK_AFTER_STARTUP = false;
|
||||
|
||||
@@ -5,14 +5,13 @@
|
||||
*******************************************************************************/
|
||||
package org.cryptomator.common.settings;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
class VaultSettingsJsonAdapter {
|
||||
|
||||
@@ -27,8 +26,7 @@ class VaultSettingsJsonAdapter {
|
||||
out.name("unlockAfterStartup").value(value.unlockAfterStartup().get());
|
||||
out.name("revealAfterMount").value(value.revealAfterMount().get());
|
||||
out.name("usesIndividualMountPath").value(value.usesIndividualMountPath().get());
|
||||
//TODO: should this always be written? ( because it could contain metadata, which the user does not want to save!)
|
||||
out.name("individualMountPath").value(value.individualMountPath().get());
|
||||
out.name("individualMountPath").value(value.individualMountPath().get()); //TODO: should this always be written? ( because it could contain metadata, which the user may not want to save!)
|
||||
out.endObject();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>keychain</artifactId>
|
||||
<name>System Keychain Access</name>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>launcher</artifactId>
|
||||
<name>Cryptomator Launcher</name>
|
||||
|
||||
16
main/pom.xml
16
main/pom.xml
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Cryptomator</name>
|
||||
|
||||
@@ -25,19 +25,19 @@
|
||||
|
||||
<!-- dependency versions -->
|
||||
<cryptomator.cryptolib.version>1.2.1</cryptomator.cryptolib.version>
|
||||
<cryptomator.cryptofs.version>1.6.1</cryptomator.cryptofs.version>
|
||||
<cryptomator.cryptofs.version>1.6.2</cryptomator.cryptofs.version>
|
||||
<cryptomator.jni.version>2.0.0</cryptomator.jni.version>
|
||||
<cryptomator.fuse.version>1.0.1</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>1.0.0</cryptomator.dokany.version>
|
||||
<cryptomator.fuse.version>1.0.3</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>1.1.1</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>1.0.5</cryptomator.webdav.version>
|
||||
|
||||
<commons-io.version>2.5</commons-io.version>
|
||||
<commons-lang3.version>3.6</commons-lang3.version>
|
||||
<commons-io.version>2.6</commons-io.version>
|
||||
<commons-lang3.version>3.8.1</commons-lang3.version>
|
||||
|
||||
<easybind.version>1.0.3</easybind.version>
|
||||
|
||||
<guava.version>27.0-jre</guava.version>
|
||||
<dagger.version>2.19</dagger.version>
|
||||
<dagger.version>2.20</dagger.version>
|
||||
<gson.version>2.8.5</gson.version>
|
||||
|
||||
<slf4j.version>1.7.25</slf4j.version>
|
||||
@@ -317,8 +317,6 @@
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<source>9</source>
|
||||
<target>9</target>
|
||||
<release>9</release>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>uber-jar</artifactId>
|
||||
<name>Single über jar with all dependencies</name>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.4.0-rc1</version>
|
||||
<version>1.4.1</version>
|
||||
</parent>
|
||||
<artifactId>ui</artifactId>
|
||||
<name>Cryptomator GUI</name>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2014, 2017 Sebastian Stenzel
|
||||
* All rights reserved.
|
||||
* This program and the accompanying materials are made available under the terms of the accompanying LICENSE file.
|
||||
*
|
||||
*
|
||||
* Contributors:
|
||||
* Sebastian Stenzel - initial API and implementation
|
||||
* Jean-Noël Charon - confirmation dialog on vault removal
|
||||
@@ -110,7 +110,7 @@ public class MainController implements ViewController {
|
||||
|
||||
@Inject
|
||||
public MainController(@Named("mainWindow") Stage mainWindow, ExecutorService executorService, @Named("fileOpenRequests") BlockingQueue<Path> fileOpenRequests, ExitUtil exitUtil, Localization localization,
|
||||
VaultFactory vaultFactoy, ViewControllerLoader viewControllerLoader, UpgradeStrategies upgradeStrategies, VaultList vaults, AutoUnlocker autoUnlocker) {
|
||||
VaultFactory vaultFactoy, ViewControllerLoader viewControllerLoader, UpgradeStrategies upgradeStrategies, VaultList vaults, AutoUnlocker autoUnlocker) {
|
||||
this.mainWindow = mainWindow;
|
||||
this.executorService = executorService;
|
||||
this.fileOpenRequests = fileOpenRequests;
|
||||
@@ -222,7 +222,7 @@ public class MainController implements ViewController {
|
||||
ButtonType forceShutdownButtonType = new ButtonType(localization.getString("main.gracefulShutdown.button.forceShutdown"));
|
||||
Alert gracefulShutdownDialog = DialogBuilderUtil.buildGracefulShutdownDialog(
|
||||
localization.getString("main.gracefulShutdown.dialog.title"), localization.getString("main.gracefulShutdown.dialog.header"), localization.getString("main.gracefulShutdown.dialog.content"),
|
||||
forceShutdownButtonType, forceShutdownButtonType, tryAgainButtonType);
|
||||
forceShutdownButtonType, ButtonType.CANCEL, forceShutdownButtonType, tryAgainButtonType);
|
||||
|
||||
Optional<ButtonType> choice = gracefulShutdownDialog.showAndWait();
|
||||
choice.ifPresent(btnType -> {
|
||||
@@ -230,6 +230,8 @@ public class MainController implements ViewController {
|
||||
gracefulShutdown();
|
||||
} else if (forceShutdownButtonType.equals(btnType)) {
|
||||
Platform.runLater(Platform::exit);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@@ -331,7 +333,7 @@ public class MainController implements ViewController {
|
||||
|
||||
/**
|
||||
* adds the given directory or selects it if it is already in the list of directories.
|
||||
*
|
||||
*
|
||||
* @param path to a vault directory or masterkey file
|
||||
*/
|
||||
public void addVault(final Path path, boolean select) {
|
||||
@@ -432,7 +434,13 @@ public class MainController implements ViewController {
|
||||
}
|
||||
|
||||
private void didPressKeyOnRoot(KeyEvent event) {
|
||||
if ((event.isMetaDown() || event.isControlDown()) && event.getCode().isDigitKey()) {
|
||||
boolean triggered;
|
||||
if (SystemUtils.IS_OS_MAC) {
|
||||
triggered = event.isMetaDown();
|
||||
} else {
|
||||
triggered = event.isControlDown() && !event.isAltDown();
|
||||
}
|
||||
if (triggered && event.getCode().isDigitKey()) {
|
||||
int digit = Integer.valueOf(event.getText());
|
||||
switch (digit) {
|
||||
case 0: {
|
||||
|
||||
@@ -8,13 +8,6 @@
|
||||
******************************************************************************/
|
||||
package org.cryptomator.ui.controllers;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.google.common.base.CharMatcher;
|
||||
import com.google.common.base.Strings;
|
||||
import javafx.application.Application;
|
||||
@@ -45,9 +38,9 @@ import org.cryptomator.cryptolib.api.InvalidPassphraseException;
|
||||
import org.cryptomator.cryptolib.api.UnsupportedVaultFormatException;
|
||||
import org.cryptomator.frontend.webdav.ServerLifecycleException;
|
||||
import org.cryptomator.keychain.KeychainAccess;
|
||||
import org.cryptomator.ui.model.InvalidSettingsException;
|
||||
import org.cryptomator.ui.controls.SecPasswordField;
|
||||
import org.cryptomator.ui.l10n.Localization;
|
||||
import org.cryptomator.ui.model.InvalidSettingsException;
|
||||
import org.cryptomator.ui.model.Vault;
|
||||
import org.cryptomator.ui.model.WindowsDriveLetters;
|
||||
import org.cryptomator.ui.util.DialogBuilderUtil;
|
||||
@@ -57,6 +50,13 @@ import org.fxmisc.easybind.Subscription;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
public class UnlockController implements ViewController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(UnlockController.class);
|
||||
@@ -115,13 +115,13 @@ public class UnlockController implements ViewController {
|
||||
private ChoiceBox<Character> winDriveLetter;
|
||||
|
||||
@FXML
|
||||
private CheckBox useOwnMountPath;
|
||||
private CheckBox useCustomMountPath;
|
||||
|
||||
@FXML
|
||||
private Label mountPathLabel;
|
||||
private Label customMountPathLabel;
|
||||
|
||||
@FXML
|
||||
private TextField mountPath;
|
||||
private TextField customMountPathField;
|
||||
|
||||
@FXML
|
||||
private ProgressIndicator progressIndicator;
|
||||
@@ -150,27 +150,31 @@ public class UnlockController implements ViewController {
|
||||
savePassword.setDisable(!keychainAccess.isPresent());
|
||||
unlockAfterStartup.disableProperty().bind(savePassword.disabledProperty().or(savePassword.selectedProperty().not()));
|
||||
|
||||
mountPathLabel.visibleProperty().bind(useOwnMountPath.selectedProperty());
|
||||
mountPath.visibleProperty().bind(useOwnMountPath.selectedProperty());
|
||||
mountPath.managedProperty().bind(useOwnMountPath.selectedProperty());
|
||||
mountPath.textProperty().addListener(this::mountPathDidChange);
|
||||
customMountPathLabel.visibleProperty().bind(useCustomMountPath.selectedProperty());
|
||||
customMountPathLabel.managedProperty().bind(useCustomMountPath.selectedProperty());
|
||||
customMountPathField.visibleProperty().bind(useCustomMountPath.selectedProperty());
|
||||
customMountPathField.managedProperty().bind(useCustomMountPath.selectedProperty());
|
||||
customMountPathField.textProperty().addListener(this::mountPathDidChange);
|
||||
winDriveLetter.setConverter(new WinDriveLetterLabelConverter());
|
||||
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
winDriveLetter.setConverter(new WinDriveLetterLabelConverter());
|
||||
useOwnMountPath.setVisible(false);
|
||||
useOwnMountPath.setManaged(false);
|
||||
mountPathLabel.setManaged(false);
|
||||
//dirty cheat
|
||||
mountPath.setMouseTransparent(true);
|
||||
} else {
|
||||
if (!SystemUtils.IS_OS_WINDOWS) {
|
||||
winDriveLetterLabel.setVisible(false);
|
||||
winDriveLetterLabel.setManaged(false);
|
||||
winDriveLetter.setVisible(false);
|
||||
winDriveLetter.setManaged(false);
|
||||
if (VolumeImpl.WEBDAV.equals(settings.preferredVolumeImpl().get())) {
|
||||
useOwnMountPath.setVisible(false);
|
||||
useOwnMountPath.setManaged(false);
|
||||
mountPathLabel.setManaged(false);
|
||||
}
|
||||
|
||||
if (VolumeImpl.WEBDAV.equals(settings.preferredVolumeImpl().get())) {
|
||||
useCustomMountPath.setVisible(false);
|
||||
useCustomMountPath.setManaged(false);
|
||||
customMountPathField.setMouseTransparent(true);
|
||||
} else {
|
||||
useCustomMountPath.setVisible(true);
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
winDriveLetter.visibleProperty().bind(useCustomMountPath.selectedProperty().not());
|
||||
winDriveLetter.managedProperty().bind(useCustomMountPath.selectedProperty().not());
|
||||
winDriveLetterLabel.visibleProperty().bind(useCustomMountPath.selectedProperty().not());
|
||||
winDriveLetterLabel.managedProperty().bind(useCustomMountPath.selectedProperty().not());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,13 +214,11 @@ public class UnlockController implements ViewController {
|
||||
winDriveLetter.getItems().addAll(driveLetters.getAvailableDriveLetters());
|
||||
winDriveLetter.getItems().sort(new WinDriveLetterComparator());
|
||||
winDriveLetter.valueProperty().addListener(driveLetterChangeListener);
|
||||
chooseSelectedDriveLetter();
|
||||
}
|
||||
downloadsPageLink.setVisible(false);
|
||||
messageText.setText(null);
|
||||
mountName.setText(vault.getMountName());
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
chooseSelectedDriveLetter();
|
||||
}
|
||||
savePassword.setSelected(false);
|
||||
// auto-fill pw from keychain:
|
||||
if (keychainAccess.isPresent()) {
|
||||
@@ -231,14 +233,15 @@ public class UnlockController implements ViewController {
|
||||
VaultSettings vaultSettings = vault.getVaultSettings();
|
||||
unlockAfterStartup.setSelected(savePassword.isSelected() && vaultSettings.unlockAfterStartup().get());
|
||||
revealAfterMount.setSelected(vaultSettings.revealAfterMount().get());
|
||||
useOwnMountPath.setSelected(vaultSettings.usesIndividualMountPath().get());
|
||||
|
||||
if (!settings.preferredVolumeImpl().get().equals(VolumeImpl.WEBDAV)) {
|
||||
useCustomMountPath.setSelected(vaultSettings.usesIndividualMountPath().get());
|
||||
customMountPathField.textProperty().setValue(vaultSettings.individualMountPath().getValueSafe());
|
||||
}
|
||||
|
||||
vaultSubs = vaultSubs.and(EasyBind.subscribe(unlockAfterStartup.selectedProperty(), vaultSettings.unlockAfterStartup()::set));
|
||||
vaultSubs = vaultSubs.and(EasyBind.subscribe(revealAfterMount.selectedProperty(), vaultSettings.revealAfterMount()::set));
|
||||
vaultSubs = vaultSubs.and(EasyBind.subscribe(useOwnMountPath.selectedProperty(), vaultSettings.usesIndividualMountPath()::set));
|
||||
|
||||
|
||||
mountPath.textProperty().setValue(vaultSettings.individualMountPath().getValueSafe());
|
||||
vaultSubs = vaultSubs.and(EasyBind.subscribe(useCustomMountPath.selectedProperty(), vaultSettings.usesIndividualMountPath()::set));
|
||||
|
||||
}
|
||||
|
||||
@@ -282,7 +285,7 @@ public class UnlockController implements ViewController {
|
||||
}
|
||||
|
||||
private void mountPathDidChange(ObservableValue<? extends String> property, String oldValue, String newValue) {
|
||||
vault.setIndividualMountPath(newValue);
|
||||
vault.setCustomMountPath(newValue);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -389,6 +392,7 @@ public class UnlockController implements ViewController {
|
||||
|
||||
CharSequence password = passwordField.getCharacters();
|
||||
Tasks.create(() -> {
|
||||
messageText.setText(localization.getString("unlock.pendingMessage.unlocking"));
|
||||
vault.unlock(password);
|
||||
if (keychainAccess.isPresent() && savePassword.isSelected()) {
|
||||
keychainAccess.get().storePassphrase(vault.getId(), password);
|
||||
@@ -400,7 +404,7 @@ public class UnlockController implements ViewController {
|
||||
}).onError(InvalidSettingsException.class, e -> {
|
||||
messageText.setText(localization.getString("unlock.errorMessage.invalidMountPath"));
|
||||
advancedOptions.setVisible(true);
|
||||
mountPath.setStyle("-fx-border-color: red;");
|
||||
customMountPathField.setStyle("-fx-border-color: red;");
|
||||
}).onError(InvalidPassphraseException.class, e -> {
|
||||
messageText.setText(localization.getString("unlock.errorMessage.wrongPassword"));
|
||||
passwordField.selectAll();
|
||||
@@ -429,7 +433,7 @@ public class UnlockController implements ViewController {
|
||||
advancedOptions.setDisable(false);
|
||||
progressIndicator.setVisible(false);
|
||||
if (advancedOptions.isVisible()) { //dirty programming, but otherwise the focus is wrong
|
||||
mountPath.requestFocus();
|
||||
customMountPathField.requestFocus();
|
||||
}
|
||||
}).runOnce(executor);
|
||||
}
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package org.cryptomator.ui.model;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import com.google.common.base.Strings;
|
||||
import org.cryptomator.common.settings.VaultSettings;
|
||||
import org.cryptomator.cryptofs.CryptoFileSystem;
|
||||
import org.cryptomator.frontend.dokany.Mount;
|
||||
import org.cryptomator.frontend.dokany.MountFactory;
|
||||
import org.cryptomator.frontend.dokany.MountFailedException;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
public class DokanyVolume implements Volume {
|
||||
|
||||
private static final String FS_TYPE_NAME = "Cryptomator File System";
|
||||
@@ -34,29 +34,31 @@ public class DokanyVolume implements Volume {
|
||||
return DokanyVolume.isSupportedStatic();
|
||||
}
|
||||
|
||||
//TODO: Drive letter 'A' as mount point is invalid in dokany. maybe we should do already here something against it
|
||||
@Override
|
||||
public void mount(CryptoFileSystem fs) throws VolumeException {
|
||||
char driveLetter;
|
||||
if (!vaultSettings.winDriveLetter().getValueSafe().equals("")) {
|
||||
driveLetter = vaultSettings.winDriveLetter().get().charAt(0);
|
||||
Path mountPath = Paths.get(getMountPathString());
|
||||
String mountName = vaultSettings.mountName().get();
|
||||
try {
|
||||
this.mount = mountFactory.mount(fs.getPath("/"), mountPath, mountName, FS_TYPE_NAME);
|
||||
} catch (MountFailedException e) {
|
||||
throw new VolumeException("Unable to mount Filesystem", e);
|
||||
}
|
||||
}
|
||||
|
||||
private String getMountPathString() throws VolumeException {
|
||||
if (vaultSettings.usesIndividualMountPath().get()) {
|
||||
return vaultSettings.individualMountPath().get();
|
||||
} else if (!Strings.isNullOrEmpty(vaultSettings.winDriveLetter().get())) {
|
||||
return vaultSettings.winDriveLetter().get().charAt(0) + ":\\";
|
||||
} else {
|
||||
//auto assign drive letter
|
||||
if (!windowsDriveLetters.getAvailableDriveLetters().isEmpty()) {
|
||||
//this is a temporary fix for 'A' being an invalid drive letter
|
||||
Set<Character> availableLettersWithoutA = Sets.difference(windowsDriveLetters.getAvailableDriveLetters(), Set.of('A'));
|
||||
driveLetter = availableLettersWithoutA.iterator().next();
|
||||
// driveLetter = windowsDriveLetters.getAvailableDriveLetters().iterator().next();
|
||||
return windowsDriveLetters.getAvailableDriveLetters().iterator().next() + ":\\";
|
||||
} else {
|
||||
throw new VolumeException("No free drive letter available.");
|
||||
}
|
||||
}
|
||||
String mountName = vaultSettings.mountName().get();
|
||||
try {
|
||||
this.mount = mountFactory.mount(fs.getPath("/"), Paths.get(driveLetter + ":\\") , mountName, FS_TYPE_NAME);
|
||||
} catch (MountFailedException e) {
|
||||
throw new VolumeException("Unable to mount Filesystem", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -8,19 +8,6 @@
|
||||
*******************************************************************************/
|
||||
package org.cryptomator.ui.model;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileAlreadyExistsException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.NoSuchFileException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.binding.Binding;
|
||||
@@ -42,6 +29,18 @@ import org.fxmisc.easybind.EasyBind;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileAlreadyExistsException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.NoSuchFileException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@PerVault
|
||||
public class Vault {
|
||||
|
||||
@@ -241,11 +240,11 @@ public class Vault {
|
||||
return vaultSettings.mountName().get();
|
||||
}
|
||||
|
||||
public String getIndividualMountPath() {
|
||||
public String getCustomMountPath() {
|
||||
return vaultSettings.individualMountPath().getValueSafe();
|
||||
}
|
||||
|
||||
public void setIndividualMountPath(String mountPath) {
|
||||
public void setCustomMountPath(String mountPath) {
|
||||
vaultSettings.individualMountPath().set(mountPath);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
Contributors:
|
||||
Sebastian Stenzel - initial API and implementation
|
||||
-->
|
||||
<?import java.net.URL?>
|
||||
<?import java.lang.String?>
|
||||
<?import org.cryptomator.ui.controls.SecPasswordField?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.ProgressIndicator?>
|
||||
@@ -24,12 +22,13 @@
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.control.Separator?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
|
||||
<GridPane fx:controller="org.cryptomator.ui.controllers.UnlockController" fx:id="root" vgap="12.0" hgap="12.0" prefWidth="400.0" xmlns:fx="http://javafx.com/fxml" cacheShape="true" cache="true">
|
||||
<padding>
|
||||
<Insets top="24.0" right="12.0" bottom="24.0" left="12.0" />
|
||||
</padding>
|
||||
|
||||
|
||||
<columnConstraints>
|
||||
<ColumnConstraints percentWidth="38.2"/>
|
||||
<ColumnConstraints percentWidth="61.8"/>
|
||||
@@ -45,7 +44,7 @@
|
||||
<Button fx:id="advancedOptionsButton" text="%unlock.button.advancedOptions.show" prefWidth="150.0" onAction="#didClickAdvancedOptionsButton" cacheShape="true" cache="true" />
|
||||
<Button fx:id="unlockButton" text="%unlock.button.unlock" defaultButton="true" prefWidth="150.0" onAction="#didClickUnlockButton" disable="true" cacheShape="true" cache="true" />
|
||||
</HBox>
|
||||
|
||||
|
||||
<!-- Row 3 -->
|
||||
<Label fx:id="successMessage" cacheShape="true" cache="true" visible="true" GridPane.rowIndex="3" GridPane.columnIndex="0" GridPane.columnSpan="2"/>
|
||||
|
||||
@@ -54,12 +53,12 @@
|
||||
<padding>
|
||||
<Insets top="24.0" />
|
||||
</padding>
|
||||
|
||||
|
||||
<columnConstraints>
|
||||
<ColumnConstraints percentWidth="38.2"/>
|
||||
<ColumnConstraints percentWidth="61.8"/>
|
||||
</columnConstraints>
|
||||
|
||||
|
||||
<!-- Row 3.0 -->
|
||||
<Separator GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true"/>
|
||||
<HBox alignment="CENTER" prefWidth="400.0" GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true">
|
||||
@@ -69,46 +68,47 @@
|
||||
</padding>
|
||||
</Label>
|
||||
</HBox>
|
||||
|
||||
|
||||
<!-- Row 3.1 -->
|
||||
<CheckBox GridPane.rowIndex="1" GridPane.columnIndex="0" GridPane.columnSpan="2" fx:id="savePassword" text="%unlock.label.savePassword" onAction="#didClickSavePasswordCheckbox" cacheShape="true" cache="true" />
|
||||
|
||||
|
||||
<!-- Row 3.2 -->
|
||||
<CheckBox GridPane.rowIndex="2" GridPane.columnIndex="0" GridPane.columnSpan="2" fx:id="unlockAfterStartup" text="%unlock.label.unlockAfterStartup" cacheShape="true" cache="true" />
|
||||
|
||||
<!-- Row 3.3 -->
|
||||
<Label GridPane.rowIndex="3" GridPane.columnIndex="0" text="%unlock.label.mountName" cacheShape="true" cache="true" />
|
||||
<TextField GridPane.rowIndex="3" GridPane.columnIndex="1" fx:id="mountName" GridPane.hgrow="ALWAYS" maxWidth="Infinity" cacheShape="true" cache="true" />
|
||||
|
||||
|
||||
<!-- Row 3.4 -->
|
||||
<CheckBox GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" fx:id="revealAfterMount" text="%unlock.label.revealAfterMount" cacheShape="true" cache="true" />
|
||||
|
||||
<!-- Row 3.5 Alt1 -->
|
||||
<Label GridPane.rowIndex="5" GridPane.columnIndex="0" fx:id="winDriveLetterLabel" text="%unlock.label.winDriveLetter" cacheShape="true" cache="true" />
|
||||
<ChoiceBox GridPane.rowIndex="5" GridPane.columnIndex="1" fx:id="winDriveLetter" GridPane.hgrow="ALWAYS" maxWidth="Infinity" cacheShape="true" cache="true" />
|
||||
|
||||
<!-- Row 3.5 Alt2 -->
|
||||
<CheckBox GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" fx:id="useOwnMountPath" text="%unlock.label.useOwnMountPath" cacheShape="true" cache="true" />
|
||||
<!-- Row 3.5 -->
|
||||
<CheckBox GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" fx:id="useCustomMountPath" text="%unlock.label.useOwnMountPath" cacheShape="true" cache="true" />
|
||||
|
||||
<Label GridPane.rowIndex="6" GridPane.columnIndex="0" fx:id="mountPathLabel" text="%unlock.label.mountPath" cacheShape="true" cache="true" />
|
||||
<TextField GridPane.rowIndex="6" GridPane.columnIndex="1" fx:id="mountPath" GridPane.hgrow="ALWAYS" maxWidth="Infinity" cacheShape="true" cache="true" />
|
||||
<!-- Row 3.6 Alt1 -->
|
||||
<Label GridPane.rowIndex="6" GridPane.columnIndex="0" fx:id="winDriveLetterLabel" text="%unlock.label.winDriveLetter" cacheShape="true" cache="true" />
|
||||
<ChoiceBox GridPane.rowIndex="6" GridPane.columnIndex="1" fx:id="winDriveLetter" GridPane.hgrow="ALWAYS" maxWidth="Infinity" cacheShape="true" cache="true" />
|
||||
|
||||
<!-- Row 3.6 Alt2 -->
|
||||
<Label GridPane.rowIndex="6" GridPane.columnIndex="0" fx:id="customMountPathLabel" text="%unlock.label.mountPath" cacheShape="true" cache="true" />
|
||||
<TextField GridPane.rowIndex="6" GridPane.columnIndex="1" fx:id="customMountPathField" GridPane.hgrow="ALWAYS" maxWidth="Infinity" cacheShape="true" cache="true" />
|
||||
|
||||
</GridPane>
|
||||
|
||||
|
||||
<!-- Row 4 -->
|
||||
<TextFlow GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true">
|
||||
<GridPane.margin>
|
||||
<Insets top="24.0"/>
|
||||
</GridPane.margin>
|
||||
<children>
|
||||
<Text fx:id="messageText" cache="true" />
|
||||
<Hyperlink fx:id="downloadsPageLink" text="%unlock.label.downloadsPageLink" visible="false" onAction="#didClickDownloadsLink" cacheShape="true" cache="true" />
|
||||
</children>
|
||||
</TextFlow>
|
||||
|
||||
<!-- Row 5-->
|
||||
<ProgressIndicator progress="-1" fx:id="progressIndicator" GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.halignment="CENTER" cacheShape="true" cache="true" cacheHint="SPEED" />
|
||||
|
||||
<!-- Row 5 -->
|
||||
<VBox GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" spacing="12.0" alignment="CENTER" cacheShape="true" cache="true">
|
||||
<ProgressIndicator progress="-1" fx:id="progressIndicator" cacheShape="true" cache="true" cacheHint="SPEED" />
|
||||
<Text fx:id="messageText" cache="true" />
|
||||
</VBox>
|
||||
</children>
|
||||
</GridPane>
|
||||
|
||||
|
||||
|
||||
@@ -7,31 +7,28 @@
|
||||
Contributors:
|
||||
Sebastian Stenzel - initial API and implementation
|
||||
-->
|
||||
<?import java.net.URL?>
|
||||
<?import javafx.scene.image.ImageView?>
|
||||
<?import javafx.scene.image.Image?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Hyperlink?>
|
||||
<?import javafx.scene.control.CheckBox?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.control.ProgressIndicator?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
|
||||
<VBox fx:controller="org.cryptomator.ui.controllers.WelcomeController" fx:id="root" prefWidth="400.0" prefHeight="400.0" spacing="24.0" alignment="CENTER" xmlns:fx="http://javafx.com/fxml" cacheShape="true" cache="true">
|
||||
|
||||
|
||||
<VBox fx:id="checkForUpdatesContainer" spacing="6.0" alignment="CENTER" cacheShape="true" cache="true" prefHeight="64.0">
|
||||
<HBox alignment="CENTER" spacing="5.0" cacheShape="true" cache="true">
|
||||
<Label fx:id="checkForUpdatesStatus" cacheShape="true" cache="true" />
|
||||
<ProgressIndicator fx:id="checkForUpdatesIndicator" progress="-1" prefWidth="15.0" prefHeight="15.0" cacheShape="true" cache="true" cacheHint="SPEED" />
|
||||
<ProgressIndicator fx:id="checkForUpdatesIndicator" progress="-1" prefWidth="15.0" prefHeight="15.0" visible="false" cacheShape="true" cache="true" cacheHint="SPEED" />
|
||||
</HBox>
|
||||
<Hyperlink wrapText="true" textAlignment="CENTER" fx:id="updateLink" onAction="#didClickUpdateLink" cacheShape="true" cache="true" disable="true" />
|
||||
</VBox>
|
||||
|
||||
|
||||
<ImageView fitHeight="200.0" preserveRatio="true" smooth="true" cache="true" style="-fx-background-color: green;">
|
||||
<Image url="/bot_welcome.png"/>
|
||||
</ImageView>
|
||||
|
||||
|
||||
<VBox prefHeight="64.0"/>
|
||||
|
||||
</VBox>
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Криптоматор беше обновен
|
||||
unlock.label.useOwnMountPath = Използвайте собствена точка за монтиране
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -120,4 +120,5 @@ main.gracefulShutdown.dialog.title = Zamčení trezorů se nezdařilo
|
||||
main.gracefulShutdown.dialog.header = Trezory v používání
|
||||
main.gracefulShutdown.dialog.content = Jeden nebo více trezorů je stále v používání ostatními programy. Ukončete je aby se Cryptomator mohl správně vypnout a zkuste to znovu.\n\nPokud to nezabere, Cryptomator je možné vypnout vynuceně, ale to může vést ke ztrátě dat a není proto doporučeno.
|
||||
main.gracefulShutdown.button.tryAgain = Zkusit znovu
|
||||
main.gracefulShutdown.button.forceShutdown = Vynutit vypnutí
|
||||
main.gracefulShutdown.button.forceShutdown = Vynutit vypnutí
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Das Cryptomator Upgrade wurde erfolgreich abgesch
|
||||
unlock.label.useOwnMountPath = Eigenes Laufwerksverzeichnis nutzen
|
||||
welcome.askForUpdateCheck.dialog.title = Auf Updates prüfen
|
||||
welcome.askForUpdateCheck.dialog.header = Eingebaute Update-Prüfung aktivieren?
|
||||
welcome.askForUpdateCheck.dialog.content = Zur Überprüfung, ob Updates verfügbar sind, lädt Cryptomator die aktuelle Versionsnummer von den Cryptomator-Servern und zeigt Ihnen einen Hinweis an, wenn eine aktuellere Version verfügbar ist.\n\nWir empfehlen, die Update-Prüfung zu aktivieren, damit Sie sicher sein können, dass Sie stets die neueste Cryptomator-Version mit allen Sicherheits-Patches verwenden. Wenn Sie die Update-Prüfung nicht aktivieren können Sie stattdessen auf https\://cryptomator.org/downloads/ selbst die aktuelle Version ermitteln und herunterladen.\n\nDiese Einstellung können Sie jederzeit im Einstellungs-Menü ändern.
|
||||
welcome.askForUpdateCheck.dialog.content = Empfehlung\: Aktivieren Sie die Update-Prüfung, um sicherzustellen, dass Sie stets die neueste Cryptomator-Version mit allen Sicherheits-Patches verwenden.\n\nDiese Einstellung können Sie jederzeit im Einstellungs-Menü ändern.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individueller Mount-Punkt ist nicht gesetzt.
|
||||
main.gracefulShutdown.dialog.title = Sperren des Tresors gescheitert
|
||||
main.gracefulShutdown.dialog.header = Tresor in Gebrauch
|
||||
main.gracefulShutdown.dialog.content = Ein oder mehrere Tresore werden noch von anderen Programmen genutzt. Bitte schliessen Sie die Programme um es Cryptomator zu ermöglichen richtig herunter zu fahren. Versuchen Sie es danach erneut.\n\nFalls dies nicht klappt, kann Cryptomator das Beenden erzwingen. Dies kann zu einem Datenverlust führen und ist nicht empfohlen.
|
||||
main.gracefulShutdown.button.tryAgain = Versuchen Sie es erneut
|
||||
main.gracefulShutdown.button.forceShutdown = Herunterfahren erzwingen
|
||||
main.gracefulShutdown.button.forceShutdown = Herunterfahren erzwingen
|
||||
unlock.pendingMessage.unlocking = Entsperre Tresor...
|
||||
@@ -30,7 +30,7 @@ welcome.checkForUpdates.label.currentlyChecking=Checking for Updates...
|
||||
welcome.newVersionMessage=Version %1$s can be downloaded.\nThis is %2$s.
|
||||
welcome.askForUpdateCheck.dialog.title=Update check
|
||||
welcome.askForUpdateCheck.dialog.header=Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content=To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content=Recommended: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
|
||||
# initialize.fxml
|
||||
initialize.label.password=Password
|
||||
@@ -86,9 +86,10 @@ unlock.savePassword.delete.confirmation.title=Delete Saved Password
|
||||
unlock.savePassword.delete.confirmation.header=Do you really want to delete the saved password of this vault?
|
||||
unlock.savePassword.delete.confirmation.content=The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save Password" option enabled.
|
||||
unlock.choicebox.winDriveLetter.auto=Assign automatically
|
||||
unlock.pendingMessage.unlocking=Unlocking vault...
|
||||
unlock.errorMessage.wrongPassword=Wrong password
|
||||
unlock.errorMessage.wrongPassword=Wrong Password
|
||||
unlock.errorMessage.invalidMountPath=Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath=Use of custom mount path selected, but no path given.
|
||||
unlock.errorMessage.unlockFailed=Unlock failed. See log file for details.
|
||||
unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware=Unsupported vault. This vault has been created with an older version of Cryptomator.
|
||||
unlock.errorMessage.unsupportedVersion.softwareOlderThanVault=Unsupported vault. This vault has been created with a newer version of Cryptomator.
|
||||
|
||||
@@ -120,4 +120,5 @@ main.gracefulShutdown.dialog.title = No fue posible cerrar la(s) caja(s) fuerte(
|
||||
main.gracefulShutdown.dialog.header = Caja(s) Fuertes(s) en uso
|
||||
main.gracefulShutdown.dialog.content = Una o más cajas fuertes están siendo utilizadas por otros programas. Por favor ciérrelos para permitir a Cryptomator cerrarse adecuadamente, e intente de nuevo.\n\nSi esto no funciona, Cryptomator puede cerrarse forzosamente, pero esta vía puede provocar pérdida de información y no es recomendada.
|
||||
main.gracefulShutdown.button.tryAgain = Intente de nuevo
|
||||
main.gracefulShutdown.button.forceShutdown = Forzar apagado
|
||||
main.gracefulShutdown.button.forceShutdown = Forzar apagado
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -121,4 +121,5 @@ main.gracefulShutdown.dialog.title = Échec en fermant le coffre-fort.
|
||||
main.gracefulShutdown.dialog.header = Coffre-fort est en cours d'utilisation.
|
||||
main.gracefulShutdown.dialog.content = Un ou plusieurs coffre-forts sont en cours d'utilisation par d'autres logiciels. S'il vous plait, fermer-les pour permettre à Cryptomator de finir proprement.\n\nSi ça ne marche pas, Cryptomator peut fermer par force, mais cela peut résulter d'une perte de vos fichiers (non recommandé).
|
||||
main.gracefulShutdown.button.tryAgain = Réessayez
|
||||
main.gracefulShutdown.button.forceShutdown = Arrêt forcé
|
||||
main.gracefulShutdown.button.forceShutdown = Arrêt forcé
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = A Cryptomator sikeresen frissítésre került.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.tryAgain = Próbáld újra
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator aggiornato con successo.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator が正常にアップグレードさ
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -112,11 +112,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -120,4 +120,5 @@ main.gracefulShutdown.dialog.title = Vergrendelen kluis/kluizen mislukt
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Probeer opnieuw
|
||||
main.gracefulShutdown.button.forceShutdown = Geforceerd afsluiten
|
||||
main.gracefulShutdown.button.forceShutdown = Geforceerd afsluiten
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -118,4 +118,5 @@ main.gracefulShutdown.dialog.title = Nie udało się zablokować porfela(i)
|
||||
main.gracefulShutdown.dialog.header = Portfel(e) w użyciu
|
||||
main.gracefulShutdown.dialog.content = Jedna lub więcej porfelii jest nadal używana przez inne programy. Zamknij je, aby umożliwić prawidłowe zamknięcie Cryptomator, a następnie spróbuj ponownie.\n\nJeśli to nie zadziała, Cryptomator może zamknąć na siłę, ale może to spowodować utratę danych i nie jest zalecane.
|
||||
main.gracefulShutdown.button.tryAgain = Spróbuj ponownie
|
||||
main.gracefulShutdown.button.forceShutdown = Wymuś zamknięcie
|
||||
main.gracefulShutdown.button.forceShutdown = Wymuś zamknięcie
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -73,7 +73,7 @@ upgrade.version3to4.msg = Esse cofre tem que ser migrado a um novo formato. Os n
|
||||
upgrade.version3to4.err.io = Falha na migração devido a um erro de E/S. Veja o arquivo de log para mais detalhes.
|
||||
# upgrade.fxml
|
||||
upgrade.confirmation.label = Sim, tenho certeza de que a sincronização foi concluída
|
||||
unlock.label.savePassword = Armazenar senha
|
||||
unlock.label.savePassword = Salvar senha
|
||||
unlock.errorMessage.unauthenticVersionMac = Não foi possível autenticar a versão do MAC.
|
||||
unlocked.label.mountFailed = Falha ao conectar o drive
|
||||
unlock.savePassword.delete.confirmation.title = Apagar a senha armazenada
|
||||
@@ -105,17 +105,18 @@ settings.webdav.prefGvfsScheme.label = WebDAV schema
|
||||
settings.volume.label = Método de Montagem
|
||||
settings.volume.webdav = WebDAV
|
||||
settings.volume.fuse = FUSE
|
||||
unlock.successLabel.vaultCreated = Vault was successfully created.
|
||||
unlock.successLabel.passwordChanged = Password was successfully changed.
|
||||
unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
unlock.successLabel.vaultCreated = Cofre criado com sucesso
|
||||
unlock.successLabel.passwordChanged = Senha modificada com sucesso
|
||||
unlock.successLabel.upgraded = Crytomator atualizado com sucesso
|
||||
unlock.label.useOwnMountPath = Usar Ponto de Montagem Personalizado
|
||||
welcome.askForUpdateCheck.dialog.title = Verificação de atualização
|
||||
welcome.askForUpdateCheck.dialog.header = Habilitar a verificação de atualização integrada?
|
||||
welcome.askForUpdateCheck.dialog.content = Para verificar atualizações, Cryptomator vai buscar a versão atual dos servidores e exibirá uma dica para você se uma nova versão estiver disponível.\n\nNós recomendamos que habilite a verificação de atualização para que sempre tenha certeza de que está usando a última versão do Crytomator, com todos os pacotes de segurança instalados. Se você não habilitar a verificação de atualização, você pode verificar e baixar a versão atual em https\://cryptomator.org/downloads/.\n\nVocê pode mudar isso a qualquer momento através das configurações.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.errorMessage.invalidMountPath = Caminho individual de montagem não está definido.
|
||||
main.gracefulShutdown.dialog.title = Falha no bloqueio do(s) cofre(s)
|
||||
main.gracefulShutdown.dialog.header = Cofre(s) em uso
|
||||
main.gracefulShutdown.dialog.content = Um ou mais cofres ainda estão em uso por outros programas. Por favor, feche-os para permitir que Cryptomator encerre corretamente, em seguida, tente novamente.\n\nSe isso não funcionar, Cryptomator pode forçar o desligamento, mas isso pode causar perda de dados e não é recomendado.
|
||||
main.gracefulShutdown.button.tryAgain = Tente novamente
|
||||
main.gracefulShutdown.button.forceShutdown = Forçar desligamento
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -43,7 +43,7 @@ changePassword.button.change = Alterar senha
|
||||
changePassword.errorMessage.wrongPassword = Senha errada
|
||||
changePassword.errorMessage.decryptionFailed = Descriptografia falhou
|
||||
# unlocked.fxml
|
||||
unlocked.button.lock = Travar Cofre
|
||||
unlocked.button.lock = Trancar Cofre
|
||||
unlocked.moreOptions.reveal = Mostrar volume
|
||||
unlocked.label.revealFailed = Falha no comando
|
||||
unlocked.label.unmountFailed = A ejeção do volume falhou
|
||||
@@ -114,8 +114,9 @@ welcome.askForUpdateCheck.dialog.header = Ativar a checagem por atualizações?
|
||||
welcome.askForUpdateCheck.dialog.content = Para checar as atualizações, Cryptomator irá verificar a versão mais recente em nossos servidores e avisará se existe uma versão disponível.\n\nRecomendamos ativar a checagem por novas atualizações para ter certeza que se tenha a versão mais recente do Cryptomator, com todas as correções de segurança. Se não ativar as atualizações é possivel checar e baixa-las a versão mais recente em https\://cryptomator.org/downloads/.\n\nVocê pode alterar as configurações a qualquer hora.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Caminho para montagem individual não configurado.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.dialog.title = Falha ao trancar o cofre
|
||||
main.gracefulShutdown.dialog.header = Cofre(s) em uso
|
||||
main.gracefulShutdown.dialog.content = Um ou mais cofres ainda estão em uso por outros programas. Por favor feche-os para permitir ao Cryptomator encerrar apropriadamente, então tente novamente.
|
||||
main.gracefulShutdown.button.tryAgain = Tente novamente
|
||||
main.gracefulShutdown.button.forceShutdown = Forçar término da execução
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -123,6 +123,7 @@ settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Не установлен индивидуальный путь монтирования.
|
||||
main.gracefulShutdown.dialog.title = Ошибка блокировки хранилища
|
||||
main.gracefulShutdown.dialog.header = Используемые хранилища
|
||||
main.gracefulShutdown.dialog.content = Одно или несколько хранилищ всё ещё используются другими программами. Закройте их, чтобы Cryptomator мог корректно завершить работу, и повторите попытку.\n\nЕсли это не поможет, Cryptomator может завершить работу принудительно, но с риском потери данных, и потому не рекомендуется.
|
||||
main.gracefulShutdown.dialog.content = Одно или несколько хранилищ всё ещё используются другими программами. Закройте их, чтобы Cryptomator мог корректно завершить работу, и повторите попытку.\n\nЕсли это не поможет, Cryptomator может завершить работу принудительно, но с риском потери данных, и потому это не рекомендуется.
|
||||
main.gracefulShutdown.button.tryAgain = Попробовать снова
|
||||
main.gracefulShutdown.button.forceShutdown = Принудительно завершить работу
|
||||
main.gracefulShutdown.button.forceShutdown = Принудительно завершить работу
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -114,11 +114,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -118,4 +118,5 @@ main.gracefulShutdown.dialog.title = Блокування сховищ(а) не
|
||||
main.gracefulShutdown.dialog.header = Сховища(е) використовуються
|
||||
main.gracefulShutdown.dialog.content = Один або декілька сховищ все ще використовуються іншими програмами. Закрийте їх, щоб дозволити Cryptomator безпечно завершити роботу, а потім повторіть спробу.\nЯкщо це не спрацьовує, Cryptomator може примусово завершити роботу, але це може призвести до втрати даних, це нелогічно та не рекомендується.
|
||||
main.gracefulShutdown.button.tryAgain = Спробуйте ще раз
|
||||
main.gracefulShutdown.button.forceShutdown = Примусово завершити роботу
|
||||
main.gracefulShutdown.button.forceShutdown = Примусово завершити роботу
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -119,4 +119,5 @@ main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator was successfully upgraded.
|
||||
unlock.label.useOwnMountPath = Use Custom Mount Point
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
@@ -111,11 +111,12 @@ unlock.successLabel.upgraded = Cryptomator成功的更新了
|
||||
unlock.label.useOwnMountPath = 自訂掛載點
|
||||
welcome.askForUpdateCheck.dialog.title = Update check
|
||||
welcome.askForUpdateCheck.dialog.header = Enable the integrated update check?
|
||||
welcome.askForUpdateCheck.dialog.content = To check for updates, Cryptomator will fetch the current version from the Cryptomator servers and display a hint to you if a newer version is available.\n\nWe recommend to enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed. If you do not enable the update check you may check and download the current version from https\://cryptomator.org/downloads/.\n\nYou can change this at any time from within the settings.
|
||||
welcome.askForUpdateCheck.dialog.content = Recommended\: Enable the update check to always be sure you have the newest version of Cryptomator, with all security patches, installed.\n\nYou can change this from within the settings at any time.
|
||||
settings.volume.dokany = Dokany
|
||||
unlock.errorMessage.invalidMountPath = Individual mount path is not set.
|
||||
unlock.errorMessage.invalidMountPath = Use of custom mount path selected, but no path given.
|
||||
main.gracefulShutdown.dialog.title = Locking vault(s) failed
|
||||
main.gracefulShutdown.dialog.header = Vault(s) in use
|
||||
main.gracefulShutdown.dialog.content = One or more vaults are still in use by other programs. Please close them to allow Cryptomator to shut down properly, then try again.\n\nIf this doesn't work, Cryptomator can shut down forcefully, but this can incur data loss and is not recommended.
|
||||
main.gracefulShutdown.button.tryAgain = Try again
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
main.gracefulShutdown.button.forceShutdown = Force shutdown
|
||||
unlock.pendingMessage.unlocking = Unlocking vault...
|
||||
Reference in New Issue
Block a user