mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-20 19:51:27 +00:00
Merge branch 'release/1.5.0-beta1'
This commit is contained in:
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
@@ -1,6 +1,6 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: [overheadhunter] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
github: [overheadhunter, tobihagemann] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
|
||||
30
.idea/compiler.xml
generated
30
.idea/compiler.xml
generated
@@ -7,26 +7,34 @@
|
||||
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<processorPath useClasspath="false">
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.22.1/dagger-compiler-2.22.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.22.1/dagger-2.22.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.25.2/dagger-compiler-2.25.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.25.2/dagger-2.25.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-producers/2.22.1/dagger-producers-2.22.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/25.0-jre/guava-25.0-jre.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.3/checker-compat-qual-2.5.3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.1.3/error_prone_annotations-2.1.3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-producers/2.25.2/dagger-producers-2.25.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/2.5.2/checker-qual-2.5.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.2.0/error_prone_annotations-2.2.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1.14/animal-sniffer-annotations-1.14.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.22.1/dagger-spi-2.22.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.3/checker-compat-qual-2.5.3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.25.2/dagger-spi-2.25.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.11.1/javapoet-1.11.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.3.50/kotlin-stdlib-1.3.50.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.3.50/kotlin-stdlib-common-1.3.50.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.jar" />
|
||||
</processorPath>
|
||||
<module name="keychain" />
|
||||
<module name="launcher" />
|
||||
<module name="commons" />
|
||||
<module name="keychain" />
|
||||
<module name="ui" />
|
||||
<module name="launcher" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
|
||||
21
.travis.yml
21
.travis.yml
@@ -1,4 +1,4 @@
|
||||
dist: xenial
|
||||
dist: bionic
|
||||
language: java
|
||||
sudo: false
|
||||
jdk:
|
||||
@@ -17,24 +17,25 @@ addons:
|
||||
- haveged
|
||||
install:
|
||||
- curl -o $HOME/.m2/settings.xml https://gist.githubusercontent.com/cryptobot/cf5fbd909c4782aaeeeb7c7f4a1a43da/raw/e60ee486e34ee0c79f89f947abe2c83b4290c6bb/settings.xml
|
||||
- mvn -fmain/pom.xml clean install -DskipTests org.codehaus.mojo:versions-maven-plugin:help dependency:go-offline -Pcoverage,release # "clean install" needed until we can exclude artifacts currently in the reactor, see https://maven.apache.org/plugins/maven-dependency-plugin/go-offline-mojo.html#excludeReactor and https://issues.apache.org/jira/browse/MDEP-568
|
||||
- mvn -fmain/pom.xml clean install -DskipTests -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN org.codehaus.mojo:versions-maven-plugin:help dependency:go-offline -Pcoverage,release # "clean install" needed until we can exclude artifacts currently in the reactor, see https://maven.apache.org/plugins/maven-dependency-plugin/go-offline-mojo.html#excludeReactor and https://issues.apache.org/jira/browse/MDEP-568
|
||||
before_script:
|
||||
- |
|
||||
if [[ -n "$TRAVIS_TAG" ]]; then
|
||||
mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=$TRAVIS_TAG
|
||||
else
|
||||
mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=SNAPSHOT-$(echo $TRAVIS_COMMIT | head -c7)
|
||||
fi
|
||||
script:
|
||||
- mvn --update-snapshots -fmain/pom.xml clean test verify -Pcoverage
|
||||
after_success:
|
||||
- curl -o ~/codacy-coverage-reporter.jar https://oss.sonatype.org/service/local/repositories/releases/content/com/codacy/codacy-coverage-reporter/4.0.2/codacy-coverage-reporter-4.0.2-assembly.jar
|
||||
- curl -o ~/codacy-coverage-reporter.jar https://oss.sonatype.org/service/local/repositories/releases/content/com/codacy/codacy-coverage-reporter/6.0.7/codacy-coverage-reporter-6.0.7-assembly.jar
|
||||
- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial
|
||||
- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/keychain/target/site/jacoco/jacoco.xml --partial
|
||||
- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial
|
||||
- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial
|
||||
- $JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final
|
||||
before_deploy:
|
||||
- |
|
||||
if [[ -n "$TRAVIS_TAG" ]]; then
|
||||
mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=$TRAVIS_TAG
|
||||
elif [[ $TRAVIS_BRANCH == "develop" ]] && [[ $TRAVIS_PULL_REQUEST == "false" ]]; then
|
||||
mvn -fmain/pom.xml org.codehaus.mojo:versions-maven-plugin:set -DnewVersion=SNAPSHOT-$(echo $TRAVIS_COMMIT | head -c7)
|
||||
fi
|
||||
- mvn -fmain/pom.xml clean package -Prelease -DskipTests
|
||||
- mvn -fmain/pom.xml package -Prelease -DskipTests
|
||||
- export TODAY=`date +'%Y-%m-%d'`; envsubst '$TRAVIS_TAG $TODAY' < .travis-deploy-release.tmpl.json > .travis-deploy-release.json
|
||||
deploy:
|
||||
- provider: bintray # SNAPSHOTS
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
</parent>
|
||||
<artifactId>buildkit</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
</parent>
|
||||
<artifactId>commons</artifactId>
|
||||
<name>Cryptomator Commons</name>
|
||||
|
||||
@@ -17,6 +17,7 @@ import javafx.beans.property.SimpleIntegerProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.geometry.NodeOrientation;
|
||||
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@@ -30,9 +31,10 @@ public class Settings {
|
||||
public static final int DEFAULT_PORT = 42427;
|
||||
public static final int DEFAULT_NUM_TRAY_NOTIFICATIONS = 3;
|
||||
public static final WebDavUrlScheme DEFAULT_GVFS_SCHEME = WebDavUrlScheme.DAV;
|
||||
public static final UiTheme DEFAULT_THEME = UiTheme.LIGHT;
|
||||
public static final boolean DEFAULT_DEBUG_MODE = false;
|
||||
public static final VolumeImpl DEFAULT_PREFERRED_VOLUME_IMPL = System.getProperty("os.name").toLowerCase().contains("windows") ? VolumeImpl.DOKANY : VolumeImpl.FUSE;
|
||||
public static final UiTheme DEFAULT_THEME = UiTheme.LIGHT;
|
||||
public static final NodeOrientation DEFAULT_USER_INTERFACE_ORIENTATION = NodeOrientation.LEFT_TO_RIGHT;
|
||||
|
||||
private final ObservableList<VaultSettings> directories = FXCollections.observableArrayList(VaultSettings::observables);
|
||||
private final BooleanProperty askedForUpdateCheck = new SimpleBooleanProperty(DEFAULT_ASKED_FOR_UPDATE_CHECK);
|
||||
@@ -44,6 +46,7 @@ public class Settings {
|
||||
private final BooleanProperty debugMode = new SimpleBooleanProperty(DEFAULT_DEBUG_MODE);
|
||||
private final ObjectProperty<VolumeImpl> preferredVolumeImpl = new SimpleObjectProperty<>(DEFAULT_PREFERRED_VOLUME_IMPL);
|
||||
private final ObjectProperty<UiTheme> theme = new SimpleObjectProperty<>(DEFAULT_THEME);
|
||||
private final ObjectProperty<NodeOrientation> userInterfaceOrientation = new SimpleObjectProperty<>(DEFAULT_USER_INTERFACE_ORIENTATION);
|
||||
|
||||
private Consumer<Settings> saveCmd;
|
||||
|
||||
@@ -61,6 +64,7 @@ public class Settings {
|
||||
debugMode.addListener(this::somethingChanged);
|
||||
preferredVolumeImpl.addListener(this::somethingChanged);
|
||||
theme.addListener(this::somethingChanged);
|
||||
userInterfaceOrientation.addListener(this::somethingChanged);
|
||||
}
|
||||
|
||||
void setSaveCmd(Consumer<Settings> saveCmd) {
|
||||
@@ -118,4 +122,8 @@ public class Settings {
|
||||
public ObjectProperty<UiTheme> theme() {
|
||||
return theme;
|
||||
}
|
||||
|
||||
public ObjectProperty<NodeOrientation> userInterfaceOrientation() {
|
||||
return userInterfaceOrientation;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.google.gson.TypeAdapter;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonToken;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import javafx.geometry.NodeOrientation;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -36,6 +37,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
out.name("debugMode").value(value.debugMode().get());
|
||||
out.name("preferredVolumeImpl").value(value.preferredVolumeImpl().get().name());
|
||||
out.name("theme").value(value.theme().get().name());
|
||||
out.name("uiOrientation").value(value.userInterfaceOrientation().get().name());
|
||||
out.endObject();
|
||||
}
|
||||
|
||||
@@ -85,6 +87,9 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
case "theme":
|
||||
settings.theme().set(parseUiTheme(in.nextString()));
|
||||
break;
|
||||
case "uiOrientation":
|
||||
settings.userInterfaceOrientation().set(parseUiOrientation(in.nextString()));
|
||||
break;
|
||||
default:
|
||||
LOG.warn("Unsupported vault setting found in JSON: " + name);
|
||||
in.skipValue();
|
||||
@@ -109,7 +114,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
try {
|
||||
return WebDavUrlScheme.valueOf(webDavUrlSchemeName.toUpperCase());
|
||||
} catch (IllegalArgumentException e) {
|
||||
LOG.warn("Invalid volume type {}. Defaulting to {}.", webDavUrlSchemeName, Settings.DEFAULT_GVFS_SCHEME);
|
||||
LOG.warn("Invalid WebDAV url scheme {}. Defaulting to {}.", webDavUrlSchemeName, Settings.DEFAULT_GVFS_SCHEME);
|
||||
return Settings.DEFAULT_GVFS_SCHEME;
|
||||
}
|
||||
}
|
||||
@@ -118,11 +123,20 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
try {
|
||||
return UiTheme.valueOf(uiThemeName.toUpperCase());
|
||||
} catch (IllegalArgumentException e) {
|
||||
LOG.warn("Invalid volume type {}. Defaulting to {}.", uiThemeName, Settings.DEFAULT_THEME);
|
||||
LOG.warn("Invalid ui theme {}. Defaulting to {}.", uiThemeName, Settings.DEFAULT_THEME);
|
||||
return Settings.DEFAULT_THEME;
|
||||
}
|
||||
}
|
||||
|
||||
private NodeOrientation parseUiOrientation(String uiOrientationName) {
|
||||
try {
|
||||
return NodeOrientation.valueOf(uiOrientationName.toUpperCase());
|
||||
} catch (IllegalArgumentException e) {
|
||||
LOG.warn("Invalid ui orientation {}. Defaulting to {}.", uiOrientationName, Settings.DEFAULT_USER_INTERFACE_ORIENTATION);
|
||||
return Settings.DEFAULT_USER_INTERFACE_ORIENTATION;
|
||||
}
|
||||
}
|
||||
|
||||
private List<VaultSettings> readVaultSettingsArray(JsonReader in) throws IOException {
|
||||
List<VaultSettings> result = new ArrayList<>();
|
||||
in.beginArray();
|
||||
|
||||
@@ -69,8 +69,9 @@ public class DokanyVolume implements Volume {
|
||||
} else {
|
||||
//auto assign drive letter
|
||||
if (!windowsDriveLetters.getAvailableDriveLetters().isEmpty()) {
|
||||
return windowsDriveLetters.getAvailableDriveLetters().iterator().next();
|
||||
return Path.of(windowsDriveLetters.getAvailableDriveLetters().iterator().next() + ":\\");
|
||||
} else {
|
||||
//TODO: Error Handling
|
||||
throw new VolumeException("No free drive letter available.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
*******************************************************************************/
|
||||
package org.cryptomator.common.vaults;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -14,7 +15,6 @@ import javax.inject.Singleton;
|
||||
import java.nio.file.FileSystems;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
import java.util.stream.StreamSupport;
|
||||
@@ -23,11 +23,11 @@ import java.util.stream.StreamSupport;
|
||||
public final class WindowsDriveLetters {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(WindowsDriveLetters.class);
|
||||
private static final Set<Path> D_TO_Z;
|
||||
private static final Set<String> A_TO_Z;
|
||||
|
||||
static {
|
||||
try (IntStream stream = IntStream.rangeClosed('D', 'Z')) {
|
||||
D_TO_Z = stream.mapToObj(i -> Path.of(((char) i)+":\\")).collect(Collectors.toSet());
|
||||
try (IntStream stream = IntStream.rangeClosed('A', 'Z')) {
|
||||
A_TO_Z = stream.mapToObj(i -> String.valueOf((char) i)).collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,20 +35,22 @@ public final class WindowsDriveLetters {
|
||||
public WindowsDriveLetters() {
|
||||
}
|
||||
|
||||
public Set<Path> getOccupiedDriveLetters() {
|
||||
public Set<String> getAllDriveLetters() {
|
||||
return A_TO_Z;
|
||||
}
|
||||
|
||||
public Set<String> getOccupiedDriveLetters() {
|
||||
if (!SystemUtils.IS_OS_WINDOWS) {
|
||||
LOG.warn("Attempted to get occupied drive letters on non-Windows machine.");
|
||||
return Set.of();
|
||||
} else {
|
||||
Iterable<Path> rootDirs = FileSystems.getDefault().getRootDirectories();
|
||||
return StreamSupport.stream(rootDirs.spliterator(), false).collect(Collectors.toSet());
|
||||
return StreamSupport.stream(rootDirs.spliterator(), false).map(p -> p.toString().substring(0,1)).collect(Collectors.toSet());
|
||||
}
|
||||
}
|
||||
|
||||
public Set<Path> getAvailableDriveLetters() {
|
||||
Set<Path> occupiedDriveLetters = getOccupiedDriveLetters();
|
||||
Predicate<Path> isOccupiedDriveLetter = occupiedDriveLetters::contains;
|
||||
return D_TO_Z.stream().filter(isOccupiedDriveLetter.negate()).collect(Collectors.toSet());
|
||||
public Set<String> getAvailableDriveLetters() {
|
||||
return Sets.difference(A_TO_Z, getOccupiedDriveLetters());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
</parent>
|
||||
<artifactId>keychain</artifactId>
|
||||
<name>System Keychain Access</name>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
</parent>
|
||||
<artifactId>launcher</artifactId>
|
||||
<name>Cryptomator Launcher</name>
|
||||
|
||||
38
main/pom.xml
38
main/pom.xml
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
<packaging>pom</packaging>
|
||||
<name>Cryptomator</name>
|
||||
|
||||
@@ -24,29 +24,28 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
|
||||
<!-- dependency versions -->
|
||||
<cryptomator.cryptofs.version>1.9.0-beta4</cryptomator.cryptofs.version>
|
||||
<cryptomator.cryptofs.version>1.9.0-rc2</cryptomator.cryptofs.version>
|
||||
<cryptomator.jni.version>2.2.1</cryptomator.jni.version>
|
||||
<cryptomator.fuse.version>1.2.0</cryptomator.fuse.version>
|
||||
<cryptomator.fuse.version>1.2.1</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>1.1.11</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>1.0.10</cryptomator.webdav.version>
|
||||
|
||||
<javafx.version>13</javafx.version>
|
||||
<javafx.version>13.0.1</javafx.version>
|
||||
|
||||
<commons-io.version>2.6</commons-io.version>
|
||||
<commons-lang3.version>3.8.1</commons-lang3.version>
|
||||
<commons-lang3.version>3.9</commons-lang3.version>
|
||||
|
||||
<easybind.version>1.0.3</easybind.version>
|
||||
|
||||
<guava.version>27.1-jre</guava.version>
|
||||
<dagger.version>2.22.1</dagger.version>
|
||||
<gson.version>2.8.5</gson.version>
|
||||
<guava.version>28.1-jre</guava.version>
|
||||
<dagger.version>2.25.2</dagger.version>
|
||||
<gson.version>2.8.6</gson.version>
|
||||
|
||||
<slf4j.version>1.7.26</slf4j.version>
|
||||
<slf4j.version>1.7.29</slf4j.version>
|
||||
<logback.version>1.2.3</logback.version>
|
||||
|
||||
<junit.jupiter.version>5.4.2</junit.jupiter.version>
|
||||
<mockito.version>2.27.0</mockito.version>
|
||||
<hamcrest.version>2.1</hamcrest.version>
|
||||
<junit.jupiter.version>5.5.2</junit.jupiter.version>
|
||||
<mockito.version>3.1.0</mockito.version>
|
||||
<hamcrest.version>2.2</hamcrest.version>
|
||||
</properties>
|
||||
|
||||
<repositories>
|
||||
@@ -152,11 +151,6 @@
|
||||
</dependency>
|
||||
|
||||
<!-- Apache Commons -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
@@ -267,7 +261,7 @@
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<version>3.1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy-libs</id>
|
||||
@@ -296,7 +290,7 @@
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.8.2</version>
|
||||
<version>0.8.5</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare-agent</id>
|
||||
@@ -323,7 +317,7 @@
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<version>3.8.1</version>
|
||||
<configuration>
|
||||
<release>11</release>
|
||||
<annotationProcessorPaths>
|
||||
@@ -338,7 +332,7 @@
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>2.22.1</version>
|
||||
<version>2.22.2</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<parent>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>main</artifactId>
|
||||
<version>1.5.0-alpha2</version>
|
||||
<version>1.5.0-beta1</version>
|
||||
</parent>
|
||||
<artifactId>ui</artifactId>
|
||||
<name>Cryptomator GUI</name>
|
||||
@@ -50,10 +50,6 @@
|
||||
</dependency>
|
||||
|
||||
<!-- Apache Commons -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
|
||||
@@ -8,6 +8,7 @@ import javafx.scene.input.KeyCombination;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.Window;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.ui.fxapp.FxApplicationScoped;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -19,16 +20,25 @@ public class DefaultSceneFactory implements Function<Parent, Scene> {
|
||||
protected static final KeyCodeCombination ALT_F4 = new KeyCodeCombination(KeyCode.F4, KeyCombination.ALT_DOWN);
|
||||
protected static final KeyCodeCombination SHORTCUT_W = new KeyCodeCombination(KeyCode.W, KeyCombination.SHORTCUT_DOWN);
|
||||
|
||||
protected final Settings settings;
|
||||
|
||||
@Inject
|
||||
public DefaultSceneFactory() {}
|
||||
public DefaultSceneFactory(Settings settings) {
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Scene apply(Parent root) {
|
||||
Scene scene = new Scene(root);
|
||||
configureRoot(root);
|
||||
configureScene(scene);
|
||||
return scene;
|
||||
}
|
||||
|
||||
protected void configureRoot(Parent root) {
|
||||
root.nodeOrientationProperty().bind(settings.userInterfaceOrientation());
|
||||
}
|
||||
|
||||
protected void configureScene(Scene scene) {
|
||||
scene.windowProperty().addListener(observable -> {
|
||||
Window window = scene.getWindow();
|
||||
|
||||
@@ -7,6 +7,7 @@ import javafx.scene.input.KeyCodeCombination;
|
||||
import javafx.scene.input.KeyCombination;
|
||||
import javafx.stage.Stage;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.ui.common.DefaultSceneFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -20,7 +21,8 @@ public class MainWindowSceneFactory extends DefaultSceneFactory {
|
||||
private final Lazy<VaultListController> vaultListController;
|
||||
|
||||
@Inject
|
||||
public MainWindowSceneFactory(Lazy<MainWindowController> mainWindowController, Lazy<VaultListController> vaultListController) {
|
||||
public MainWindowSceneFactory(Settings settings, Lazy<MainWindowController> mainWindowController, Lazy<VaultListController> vaultListController) {
|
||||
super(settings);
|
||||
this.mainWindowController = mainWindowController;
|
||||
this.vaultListController = vaultListController;
|
||||
}
|
||||
|
||||
@@ -1,21 +1,33 @@
|
||||
package org.cryptomator.ui.preferences;
|
||||
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.geometry.NodeOrientation;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.RadioButton;
|
||||
import javafx.scene.control.Toggle;
|
||||
import javafx.scene.control.ToggleGroup;
|
||||
import javafx.util.StringConverter;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.common.settings.UiTheme;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@PreferencesScoped
|
||||
public class GeneralPreferencesController implements FxController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(GeneralPreferencesController.class);
|
||||
|
||||
private final Settings settings;
|
||||
public ChoiceBox<UiTheme> themeChoiceBox;
|
||||
public CheckBox startHiddenCheckbox;
|
||||
public CheckBox debugModeCheckbox;
|
||||
public ToggleGroup nodeOrientation;
|
||||
public RadioButton nodeOrientationLtr;
|
||||
public RadioButton nodeOrientationRtl;
|
||||
|
||||
@Inject
|
||||
GeneralPreferencesController(Settings settings) {
|
||||
@@ -30,6 +42,20 @@ public class GeneralPreferencesController implements FxController {
|
||||
startHiddenCheckbox.selectedProperty().bindBidirectional(settings.startHidden());
|
||||
|
||||
debugModeCheckbox.selectedProperty().bindBidirectional(settings.debugMode());
|
||||
|
||||
nodeOrientation.selectedToggleProperty().addListener(this::toggleNodeOrientation);
|
||||
nodeOrientationLtr.setSelected(settings.userInterfaceOrientation().get() == NodeOrientation.LEFT_TO_RIGHT);
|
||||
nodeOrientationRtl.setSelected(settings.userInterfaceOrientation().get() == NodeOrientation.RIGHT_TO_LEFT);
|
||||
}
|
||||
|
||||
private void toggleNodeOrientation(@SuppressWarnings("unused") ObservableValue<? extends Toggle> observable, @SuppressWarnings("unused") Toggle oldValue, Toggle newValue) {
|
||||
if (nodeOrientationLtr.equals(newValue)) {
|
||||
settings.userInterfaceOrientation().set(NodeOrientation.LEFT_TO_RIGHT);
|
||||
} else if (nodeOrientationRtl.equals(newValue)) {
|
||||
settings.userInterfaceOrientation().set(NodeOrientation.RIGHT_TO_LEFT);
|
||||
} else {
|
||||
LOG.warn("Unexpected toggle option {}", newValue);
|
||||
}
|
||||
}
|
||||
|
||||
/* Helper classes */
|
||||
|
||||
@@ -16,6 +16,9 @@ import org.cryptomator.ui.common.FxController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* TODO: if WebDAV is selected under Windows, show warning that specific mount options (like selecting a directory as mount point) are _not_ supported
|
||||
*/
|
||||
@PreferencesScoped
|
||||
public class VolumePreferencesController implements FxController {
|
||||
|
||||
|
||||
@@ -1,34 +1,76 @@
|
||||
package org.cryptomator.ui.vaultoptions;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.binding.BooleanBinding;
|
||||
import javafx.beans.property.BooleanProperty;
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.CheckBox;
|
||||
import javafx.scene.control.ChoiceBox;
|
||||
import javafx.scene.control.RadioButton;
|
||||
import javafx.scene.control.TextField;
|
||||
import javafx.scene.control.Toggle;
|
||||
import javafx.scene.control.ToggleGroup;
|
||||
import javafx.stage.DirectoryChooser;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.util.StringConverter;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.common.settings.VolumeImpl;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.common.vaults.WindowsDriveLetters;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* TODO: if WebDav is selected on a windows system, custom mount directory is _not_ supported. This is currently not indicated/shown/etc in the ui
|
||||
*/
|
||||
@VaultOptionsScoped
|
||||
public class MountOptionsController implements FxController {
|
||||
|
||||
private final Stage window;
|
||||
private final Vault vault;
|
||||
private final BooleanProperty osIsWindows = new SimpleBooleanProperty(SystemUtils.IS_OS_WINDOWS);
|
||||
private final BooleanBinding webDavAndWindows;
|
||||
private final WindowsDriveLetters windowsDriveLetters;
|
||||
private final ResourceBundle resourceBundle;
|
||||
public TextField driveName;
|
||||
public CheckBox readOnlyCheckbox;
|
||||
public CheckBox customMountFlagsCheckbox;
|
||||
public TextField mountFlags;
|
||||
public ToggleGroup mountPoint;
|
||||
public RadioButton mountPointAuto;
|
||||
public RadioButton mountPointWinDriveLetter;
|
||||
public RadioButton mountPointCustomDir;
|
||||
public ChoiceBox<String> driveLetterSelection;
|
||||
|
||||
@Inject
|
||||
MountOptionsController(@VaultOptionsWindow Vault vault) {
|
||||
MountOptionsController(@VaultOptionsWindow Stage window, @VaultOptionsWindow Vault vault, Settings settings, WindowsDriveLetters windowsDriveLetters, ResourceBundle resourceBundle) {
|
||||
this.window = window;
|
||||
this.vault = vault;
|
||||
this.webDavAndWindows = settings.preferredVolumeImpl().isEqualTo(VolumeImpl.WEBDAV).and(osIsWindows);
|
||||
this.windowsDriveLetters = windowsDriveLetters;
|
||||
this.resourceBundle = resourceBundle;
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
driveName.textProperty().bindBidirectional(vault.getVaultSettings().mountName());
|
||||
|
||||
// readonly:
|
||||
readOnlyCheckbox.selectedProperty().bindBidirectional(vault.getVaultSettings().usesReadOnlyMode());
|
||||
mountFlags.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
|
||||
readOnlyCheckbox.disableProperty().bind(customMountFlagsCheckbox.selectedProperty());
|
||||
|
||||
// custom mount flags:
|
||||
mountFlags.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
|
||||
customMountFlagsCheckbox.setSelected(vault.isHavingCustomMountFlags());
|
||||
if (vault.isHavingCustomMountFlags()) {
|
||||
mountFlags.textProperty().bindBidirectional(vault.getVaultSettings().mountFlags());
|
||||
@@ -36,6 +78,25 @@ public class MountOptionsController implements FxController {
|
||||
} else {
|
||||
mountFlags.textProperty().bind(vault.defaultMountFlagsProperty());
|
||||
}
|
||||
|
||||
// mount point options:
|
||||
mountPoint.selectedToggleProperty().addListener(this::toggleMountPoint);
|
||||
driveLetterSelection.getItems().addAll(windowsDriveLetters.getAllDriveLetters());
|
||||
driveLetterSelection.setConverter(new WinDriveLetterLabelConverter(windowsDriveLetters));
|
||||
driveLetterSelection.setValue(vault.getVaultSettings().winDriveLetter().get());
|
||||
vault.getVaultSettings().usesIndividualMountPath().bind(mountPoint.selectedToggleProperty().isEqualTo(mountPointCustomDir));
|
||||
vault.getVaultSettings().winDriveLetter().bind( //
|
||||
Bindings.when(mountPoint.selectedToggleProperty().isEqualTo(mountPointWinDriveLetter)) //
|
||||
.then(driveLetterSelection.getSelectionModel().selectedItemProperty()) //
|
||||
.otherwise((String) null) //
|
||||
);
|
||||
if (vault.getVaultSettings().usesIndividualMountPath().get()) {
|
||||
mountPoint.selectToggle(mountPointCustomDir);
|
||||
} else if (!Strings.isNullOrEmpty(vault.getVaultSettings().winDriveLetter().get())) {
|
||||
mountPoint.selectToggle(mountPointWinDriveLetter);
|
||||
} else {
|
||||
mountPoint.selectToggle(mountPointAuto);
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
@@ -51,4 +112,81 @@ public class MountOptionsController implements FxController {
|
||||
mountFlags.textProperty().bind(vault.defaultMountFlagsProperty());
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void chooseCustomMountPoint() {
|
||||
DirectoryChooser directoryChooser = new DirectoryChooser();
|
||||
directoryChooser.setTitle(resourceBundle.getString("vaultOptions.mount.winDirChooser"));
|
||||
try {
|
||||
directoryChooser.setInitialDirectory(Path.of(System.getProperty("user.home")).toFile());
|
||||
} catch (Exception e) {
|
||||
//NO-OP
|
||||
}
|
||||
File file = directoryChooser.showDialog(window);
|
||||
if (file != null) {
|
||||
vault.getVaultSettings().individualMountPath().set(file.getAbsolutePath());
|
||||
} else {
|
||||
vault.getVaultSettings().individualMountPath().set(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void toggleMountPoint(@SuppressWarnings("unused") ObservableValue<? extends Toggle> observable, @SuppressWarnings("unused") Toggle oldValue, Toggle newValue) {
|
||||
if (mountPointCustomDir.equals(newValue) && Strings.isNullOrEmpty(vault.getVaultSettings().individualMountPath().get())) {
|
||||
chooseCustomMountPoint();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts 'C' to "C:" to translate between model and GUI.
|
||||
*/
|
||||
private static class WinDriveLetterLabelConverter extends StringConverter<String> {
|
||||
|
||||
private final Set<String> occupiedDriveLetters;
|
||||
|
||||
WinDriveLetterLabelConverter(WindowsDriveLetters windowsDriveLetters) {
|
||||
this.occupiedDriveLetters = windowsDriveLetters.getOccupiedDriveLetters();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(String driveLetter) {
|
||||
if (occupiedDriveLetters.contains(driveLetter)) {
|
||||
return driveLetter + ": (occupied)"; // TODO localize?
|
||||
} else {
|
||||
return driveLetter + ":";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String fromString(String string) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Getter & Setter
|
||||
|
||||
public BooleanProperty osIsWindowsProperty() {
|
||||
return osIsWindows;
|
||||
}
|
||||
|
||||
public boolean getOsIsWindows() {
|
||||
return osIsWindows.get();
|
||||
}
|
||||
|
||||
public BooleanBinding webDavAndWindowsProperty() {
|
||||
return webDavAndWindows;
|
||||
}
|
||||
|
||||
public boolean isWebDavAndWindows() {
|
||||
return webDavAndWindows.get();
|
||||
}
|
||||
|
||||
public StringProperty customMountPathProperty() {
|
||||
return vault.getVaultSettings().individualMountPath();
|
||||
}
|
||||
|
||||
public String getCustomMountPath() {
|
||||
return vault.getVaultSettings().individualMountPath().get();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,10 +6,15 @@
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.control.RadioButton?>
|
||||
<?import javafx.scene.control.ToggleGroup?>
|
||||
<VBox xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="org.cryptomator.ui.preferences.GeneralPreferencesController"
|
||||
spacing="6">
|
||||
<fx:define>
|
||||
<ToggleGroup fx:id="nodeOrientation"/>
|
||||
</fx:define>
|
||||
<padding>
|
||||
<Insets topRightBottomLeft="12"/>
|
||||
</padding>
|
||||
@@ -18,6 +23,12 @@
|
||||
<Label text="%preferences.general.theme"/>
|
||||
<ChoiceBox fx:id="themeChoiceBox"/>
|
||||
</HBox>
|
||||
|
||||
<HBox spacing="6" alignment="CENTER_LEFT">
|
||||
<Label text="Interface Orientation" HBox.hgrow="NEVER"/>
|
||||
<RadioButton fx:id="nodeOrientationLtr" text="Left to Right" alignment="CENTER_LEFT" toggleGroup="${nodeOrientation}"/>
|
||||
<RadioButton fx:id="nodeOrientationRtl" text="Right to Left" alignment="CENTER_RIGHT" toggleGroup="${nodeOrientation}"/>
|
||||
</HBox>
|
||||
|
||||
<CheckBox fx:id="startHiddenCheckbox" text="%preferences.general.startHidden"/>
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<VBox xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="org.cryptomator.ui.mainwindow.VaultDetailNeedsMigrationController"
|
||||
@@ -11,7 +12,8 @@
|
||||
<Insets topRightBottomLeft="24"/>
|
||||
</padding>
|
||||
<children>
|
||||
<Button styleClass="button-large" text="TODO Upgrade Vault" minWidth="120" onAction="#showVaultMigrator">
|
||||
<Label text="%main.vaultDetail.migratePrompt" wrapText="true"/>
|
||||
<Button styleClass="button-large" text="%main.vaultDetail.migrateButton" minWidth="120" onAction="#showVaultMigrator">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="FILE_IMPORT" glyphSize="15"/>
|
||||
</graphic>
|
||||
|
||||
@@ -1,16 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.CheckBox?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.RadioButton?>
|
||||
<?import javafx.scene.control.TextField?>
|
||||
<?import javafx.scene.control.ToggleGroup?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Text?>
|
||||
<?import org.cryptomator.ui.controls.AlphanumericTextField?>
|
||||
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
|
||||
<VBox xmlns="http://javafx.com/javafx"
|
||||
xmlns:fx="http://javafx.com/fxml"
|
||||
fx:controller="org.cryptomator.ui.vaultoptions.MountOptionsController"
|
||||
spacing="6">
|
||||
<fx:define>
|
||||
<ToggleGroup fx:id="mountPoint"/>
|
||||
</fx:define>
|
||||
<padding>
|
||||
<Insets topRightBottomLeft="12"/>
|
||||
</padding>
|
||||
@@ -32,6 +41,26 @@
|
||||
</children>
|
||||
</HBox>
|
||||
|
||||
<!-- TODO windows drive letter, see https://github.com/cryptomator/cryptomator/blob/1.4.16/main/ui/src/main/java/org/cryptomator/ui/model/Vault.java#L283-L298 -->
|
||||
<Text text="TODO Mount Point"/>
|
||||
<RadioButton toggleGroup="${mountPoint}" fx:id="mountPointAuto" text="TODO Automatically pick a suitable location"/>
|
||||
<HBox spacing="6" visible="${controller.osIsWindows}" managed="${controller.osIsWindows}">
|
||||
<RadioButton toggleGroup="${mountPoint}" fx:id="mountPointWinDriveLetter" text="TODO Choose specific drive letter"/>
|
||||
<ChoiceBox fx:id="driveLetterSelection" disable="${!mountPointWinDriveLetter.selected}"/>
|
||||
</HBox>
|
||||
<RadioButton toggleGroup="${mountPoint}" fx:id="mountPointCustomDir" text="TODO Choose empty directory"/>
|
||||
<HBox visible="${mountPointCustomDir.selected}">
|
||||
<padding>
|
||||
<Insets left="24"/>
|
||||
</padding>
|
||||
<children>
|
||||
<TextField text="${controller.customMountPath}" HBox.hgrow="ALWAYS" maxWidth="Infinity" disable="true"/>
|
||||
<Button text="TODO change" onAction="#chooseCustomMountPoint" contentDisplay="LEFT">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="FOLDER_OPEN" glyphSize="15"/>
|
||||
</graphic>
|
||||
</Button>
|
||||
</children>
|
||||
</HBox>
|
||||
</children>
|
||||
|
||||
</VBox>
|
||||
|
||||
@@ -37,12 +37,13 @@ addvaultwizard.new.directoryPickerTitle=Select Directory
|
||||
addvaultwizard.new.enterPassword=Enter a password for the vault
|
||||
addvaultwizard.new.fileAlreadyExists=Vault can not be created at this path because some object already exists.
|
||||
addvaultwizard.new.invalidName=Invalid vault name. Please consider a regular directory name.
|
||||
addvaultwizard.new.ioException=Selected directory failed a basic test. Make sure to have the appropiate access rights and nothing interferes with Cryptomator.
|
||||
addvaultwizard.new.ioException=Selected directory failed a basic test. Make sure to have the appropriate access rights and nothing interferes with Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Confirm the password
|
||||
addvaultwizard.new.passwordsMatch=Passwords match!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Passwords do not match
|
||||
addvaultwizard.new.createVaultBtn=Create Vault
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=This is your recovery key. Keep it safe, it is your only chance to recover your data if you lose your password.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Yes, I've made a secure backup of this recovery key
|
||||
### Information
|
||||
@@ -131,10 +132,12 @@ main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault
|
||||
main.vaultlist.contextMenu.remove=Remove Vault
|
||||
main.vaultlist.addVaultBtn=Add Vault
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=LOCKED
|
||||
main.vaultDetail.unlockedStatus=UNLOCKED
|
||||
main.vaultDetail.unlockBtn=Unlock
|
||||
main.vaultDetail.optionsBtn=Vault Options
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=UNLOCKED
|
||||
main.vaultDetail.accessLocation=Your vault's contents are accessible here:
|
||||
main.vaultDetail.revealBtn=Reveal Drive
|
||||
main.vaultDetail.lockBtn=Lock
|
||||
@@ -143,6 +146,9 @@ main.vaultDetail.bytesPerSecondWritten=written:
|
||||
main.vaultDetail.throughput.idle=idle
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Upgrade Vault
|
||||
main.vaultDetail.migratePrompt=Your vault needs to be upgraded to a new format, before you can access it
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Unknown File
|
||||
@@ -150,13 +156,17 @@ wrongFileAlert.btn=Okay
|
||||
wrongFileAlert.information=You have tried to add a file or folder that does not seem to be a Cryptomator vault. To encrypt your data, create and unlock a vault.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=General
|
||||
vaultOptions.general.changePasswordBtn=Change Password
|
||||
vaultOptions.general.showRecoveryKeyBtn=Display Recovery Key
|
||||
## Mount
|
||||
vaultOptions.mount=Mounting
|
||||
vaultOptions.mount.readonly=Read-Only
|
||||
vaultOptions.mount.driveName=Drive Name
|
||||
vaultOptions.mount.customMountFlags=Custom Mount Flags
|
||||
vaultOptions.mount.winDriveLetterOccupied=occupied
|
||||
vaultOptions.mount.winDirChooser=Pick an empty directory
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Recovery Key
|
||||
|
||||
116
main/ui/src/main/resources/i18n/strings_ar.properties
Normal file
116
main/ui/src/main/resources/i18n/strings_ar.properties
Normal file
@@ -0,0 +1,116 @@
|
||||
# Locale Specific CSS files such as CJK, RTL,...
|
||||
|
||||
# Generics
|
||||
## Button
|
||||
generic.button.apply=طبّق
|
||||
generic.button.back=الى الوراء
|
||||
generic.button.cancel=الغاء
|
||||
generic.button.change=تغيير
|
||||
generic.button.done=تم
|
||||
generic.button.next=التالي
|
||||
|
||||
# Tray Menu
|
||||
traymenu.showMainWindow=اظهار
|
||||
traymenu.showPreferencesWindow=تفضيلات
|
||||
traymenu.quitApplication=انهاء
|
||||
traymenu.vault.unlock=افتح
|
||||
traymenu.vault.lock=قفل
|
||||
traymenu.vault.reveal=إظهار
|
||||
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=أضِف مخزنًا
|
||||
## Welcome
|
||||
addvaultwizard.welcome.newButton=إنشاء مخزن جديد
|
||||
addvaultwizard.welcome.existingButton=افتح مخزن موجود
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=اختر اسم للمخزن
|
||||
addvaultwizard.new.namePrompt=اسم المخزن
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=أين يجب على Cryptomator تخزين الملفات المشفرة من قبو الخاص بك؟
|
||||
addvaultwizard.new.locationLabel=موقع التخزين
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=موقع مخصص
|
||||
addvaultwizard.new.directoryPickerButton=اختر…
|
||||
addvaultwizard.new.directoryPickerTitle=اختر القاموس
|
||||
addvaultwizard.new.enterPassword=أدخل كلمة المرور لهذا الحساب
|
||||
addvaultwizard.new.fileAlreadyExists=لا يمكن إنشاء مخزن على هذا المسار لأن بعض الملفات موجودة مسبقا.
|
||||
addvaultwizard.new.invalidName=اسم المخزن غير صالح. يرجى النظر في اسم الدليل المعتاد.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=تأكيد كلمة المرور
|
||||
addvaultwizard.new.passwordsMatch=كلمات المرور متطابقة!
|
||||
addvaultwizard.new.passwordsDoNotMatch=كلمات المرور غير متطابقة
|
||||
addvaultwizard.new.createVaultBtn=انشئ حافظة
|
||||
### Recovery Key
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.4=لو انك تحتاج مساعدة, جرب "%s".
|
||||
## Existing
|
||||
addvaultwizard.existing.chooseBtn=اختر…
|
||||
## Success
|
||||
|
||||
# Remove Vault
|
||||
removeVault.confirmBtn=احذف الحافظة
|
||||
|
||||
# Change Password
|
||||
changepassword.enterNewPassword=ادخل كلمة المرور الجديدة لحافظتك
|
||||
changepassword.reenterNewPassword=تأكيد كلمة المرور الجديدة
|
||||
changepassword.passwordsMatch=كلمات المرور متطابقة!
|
||||
changepassword.passwordsDoNotMatch=كلمات المرور غير متطابقة
|
||||
|
||||
# Forget Password
|
||||
forgetPassword.title=نسيت كلمة المرور
|
||||
forgetPassword.confirmBtn=نسيت كلمة المرور
|
||||
|
||||
# Unlock
|
||||
unlock.title=افتح الحافظة
|
||||
unlock.savePassword=احفظ كلمة المرور
|
||||
unlock.unlockBtn=افتح
|
||||
## Success
|
||||
unlock.success.revealBtn=افتح الحافظة
|
||||
|
||||
# Migration
|
||||
migration.title=ترقية الحافظة
|
||||
## Start
|
||||
migration.start.confirm=نعم, محفظتي متزامنة بالكامل
|
||||
## Run
|
||||
migration.run.startMigrationBtn=ترقية الحافظة
|
||||
## Sucess
|
||||
migration.success.unlockNow=افتح الان
|
||||
|
||||
# Preferences
|
||||
preferences.title=تفضيلات
|
||||
## General
|
||||
preferences.general=عام
|
||||
## Volume
|
||||
preferences.volume.webdav.port=منفذ WebDav
|
||||
## Updates
|
||||
preferences.updates=تحديثات
|
||||
preferences.updates.autoUpdateCheck=تحقق من التحديثات اوتوماتيكيا
|
||||
preferences.updates.checkNowBtn=تحقق الان
|
||||
|
||||
# Main Window
|
||||
main.preferencesBtn.tooltip=تفضيلات
|
||||
## Vault List
|
||||
main.vaultlist.addVaultBtn=أضِف مخزنًا
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=مغلق
|
||||
main.vaultDetail.unlockBtn=افتح
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=مفتوح
|
||||
main.vaultDetail.lockBtn=قفل
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=ترقية الحافظة
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=عام
|
||||
## Mount
|
||||
|
||||
# Recovery Key
|
||||
|
||||
# Misc
|
||||
|
||||
# Quit
|
||||
@@ -41,6 +41,8 @@ addvaultwizard.new.reenterPassword=Potvrďte heslo
|
||||
addvaultwizard.new.passwordsMatch=Hesla se shodují!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Hesla se neshodují
|
||||
addvaultwizard.new.createVaultBtn=Vytvořit trezor
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Toto je tvůj obnovovací klíč. Uchovej jej v bezpečí, je to jediná šance, jak obnovit data, pokud ztratíš heslo.
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.fileName=CO JE TOTO ZA ADRESÁŘ.rtf
|
||||
addvault.new.readme.storageLocation.1=\\fs40\\qc ⚠️ OBSAH TREZORU ⚠️
|
||||
@@ -126,10 +128,12 @@ main.vaultlist.emptyList.onboardingInstruction=Klikněte sem pro přidání nov
|
||||
main.vaultlist.contextMenu.remove=Odstranit trezor
|
||||
main.vaultlist.addVaultBtn=Přidat trezor
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=UZAMKNUTO
|
||||
main.vaultDetail.unlockedStatus=ODEMKNUTO
|
||||
main.vaultDetail.unlockBtn=Odemknout
|
||||
main.vaultDetail.optionsBtn=Možnosti trezoru
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=ODEMKNUTO
|
||||
main.vaultDetail.accessLocation=Obsah vašeho trezoru je dostupný:
|
||||
main.vaultDetail.revealBtn=Zobrazit jednotku
|
||||
main.vaultDetail.lockBtn=Zamknout
|
||||
@@ -138,6 +142,8 @@ main.vaultDetail.bytesPerSecondWritten=zapsáno:
|
||||
main.vaultDetail.throughput.idle=nečinný
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Upgrade trezoru
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=neznámý soubor
|
||||
@@ -145,14 +151,22 @@ wrongFileAlert.btn=OK
|
||||
wrongFileAlert.information=Zkoušíte přidat soubor či adresář, který zřejmě není trezorem Cryptomatoru. Pro zašifrování vašich dat vytvořte a odemkněte trezor.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Obecné
|
||||
vaultOptions.general.changePasswordBtn=Změnit heslo
|
||||
vaultOptions.general.showRecoveryKeyBtn=Zobrazit klíč k obnově
|
||||
## Mount
|
||||
vaultOptions.mount=Připojení
|
||||
vaultOptions.mount.readonly=Pouze pro čtení
|
||||
vaultOptions.mount.driveName=Jméno jednotky
|
||||
vaultOptions.mount.customMountFlags=Vlastní parametry
|
||||
vaultOptions.mount.winDriveLetterOccupied=obsazené
|
||||
vaultOptions.mount.winDirChooser=Vyberte prázdný adresář
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Klíč k obnově
|
||||
recoveryKey.enterPassword.prompt=Zadejte své heslo pro zobrazení obnovovacího klíče pro "%s":
|
||||
recoveryKey.display.message=Klíč k obnově "%s":
|
||||
|
||||
# Misc
|
||||
passwordStrength.messageLabel.0=velmi slabé
|
||||
|
||||
@@ -31,7 +31,7 @@ addvaultwizard.new.locationInstruction=Wo soll Cryptomator die verschlüsselten
|
||||
addvaultwizard.new.locationLabel=Speicherort
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Eigener Ort
|
||||
addvaultwizard.new.directoryPickerButton=Durchsuchen…
|
||||
addvaultwizard.new.directoryPickerButton=Durchsuchen …
|
||||
addvaultwizard.new.directoryPickerTitle=Wähle ein Verzeichnis
|
||||
addvaultwizard.new.enterPassword=Vergib ein Passwort für den Tresor
|
||||
addvaultwizard.new.fileAlreadyExists=Der Tresor konnte nicht erstellt werden, da der Speicherort bereits belegt ist.
|
||||
@@ -40,38 +40,39 @@ addvaultwizard.new.ioException=Auf das ausgewählte Verzeichnis kann nicht zugeg
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Bestätige das Passwort
|
||||
addvaultwizard.new.passwordsMatch=Passwörter stimmen überein!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Passwörter unterscheiden sich
|
||||
addvaultwizard.new.passwordsDoNotMatch=Passwörter stimmen nicht überein
|
||||
addvaultwizard.new.createVaultBtn=Tresor erstellen
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Dies ist dein Wiederherstellungsschlüssel. Bewahre ihn sicher auf. Ohne ihn gibt es keine Möglichkeit deine Daten wiederherzustellen, wenn du dein Kennwort verloren hast.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Ja, ich habe eine Datensicherung diese Wiederherstellungsschlüssels durchgeführt
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Ja, ich habe eine Datensicherung dieses Wiederherstellungsschlüssels durchgeführt
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.fileName=WAS BEDEUTET DIESER ORDNER.rtf
|
||||
addvault.new.readme.storageLocation.1=\\fs40\\qc ⚠️ TRESORDATEIEN ⚠️
|
||||
addvault.new.readme.storageLocation.2=Dies ist der Speicherort deines Tresor. Ändere {\\b KEINE} Dateien in diesem Verzeichnis.
|
||||
addvault.new.readme.storageLocation.2=Dies ist der Speicherort deines Tresors. Ändere {\\b KEINE} Dateien in diesem Verzeichnis.
|
||||
addvault.new.readme.storageLocation.3=Wenn du Dateien mit Cryptomator verschlüsseln möchtest, entsperre den Tresor und verwende das zur Verfügung gestellte Laufwerk.
|
||||
addvault.new.readme.storageLocation.4=Wenn du Hilfe brauchst, versuche %s.
|
||||
addvault.new.readme.storageLocation.4=Falls du Hilfe brauchst, versuche %s.
|
||||
addvault.new.readme.accessLocation.fileName=WILLKOMMEN ZUM TRESOR.rtf
|
||||
addvault.new.readme.accessLocation.1=\\fs40\\qc 🔐️ VERSCHLÜSSELTES LAUFWERK 🔐️
|
||||
addvault.new.readme.accessLocation.2=Dies ist dein Tresorlaufwerk. Alle Dateien, die zu diesem Laufwerk hinzugefügt werden, werden mit Cryptomator verschlüsselt. Um zu einem späteren Zeitpunkt auf dieses Laufwerk zuzugreifen, entsperre es einfach wieder aus der Cryptomator-Anwendung heraus.
|
||||
addvault.new.readme.accessLocation.2=Dies ist dein Tresorlaufwerk. Alle zu diesem Laufwerk hinzugefügten Dateien werden mit Cryptomator verschlüsselt. Um zu einem späteren Zeitpunkt auf dieses Laufwerk zuzugreifen, entsperre es einfach wieder aus der Cryptomator-Anwendung heraus.
|
||||
addvault.new.readme.accessLocation.3=Diese Datei kannst du löschen.
|
||||
## Existing
|
||||
addvaultwizard.existing.instruction=Bitte wähle die Datei "masterkey.cryptomator" des existierenden Tresors aus.
|
||||
addvaultwizard.existing.instruction=Wähle die Datei „masterkey.cryptomator“ deines vorhandenen Tresors aus.
|
||||
addvaultwizard.existing.chooseBtn=Durchsuchen…
|
||||
addvaultwizard.existing.filePickerTitle=Masterkey-Datei auswählen
|
||||
addvaultwizard.existing.error=Der Tresor „%s“ ist kein gültiger Tresor und kann nicht hinzugefügt werden. Weitere Informationen findest du im Log.
|
||||
addvaultwizard.existing.error=Der Tresor „%s“ ist kein gültiger Tresor und kann nicht hinzugefügt werden. Weitere Informationen findest du im Diagnoseprotokoll.
|
||||
## Success
|
||||
addvaultwizard.success.nextStepsInstructions=Tresor "%s" hinzugefügt.\nEntsperre diesen Tresor jetzt, um auf die Inhalte zugreifen oder welche hinzufügen zu können. Andernfalls entsperre diesen Tresor zu einem späteren Zeitpunkt.
|
||||
addvaultwizard.success.nextStepsInstructions=Tresor „%s“ hinzugefügt.\nUm auf Inhalte zuzugreifen oder welche hinzuzufügen, musst du den Tresor entsperren. Du kannst ihn aber auch zu jedem späteren Zeitpunkt entsperren.
|
||||
addvaultwizard.success.unlockNow=Jetzt entsperren
|
||||
|
||||
# Remove Vault
|
||||
removeVault.title=Tresor entfernen
|
||||
removeVault.information=Dein Tresor wird nicht gelöscht, er wird lediglich aus der Liste entfernt. Falls du dich später umentscheidest, kannst du ihn später einfach wieder hinzufügen.
|
||||
removeVault.information=Dein Tresor wird nicht gelöscht, sondern lediglich aus Cryptomators Tresorliste entfernt. Du kannst ihn daher später jederzeit wieder hinzufügen.
|
||||
removeVault.confirmBtn=Tresor entfernen
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Password ändern
|
||||
changepassword.enterOldPassword=Gib dein derzeitiges Passwort für "%s" ein
|
||||
changepassword.enterNewPassword=Vergib ein neues Passwort
|
||||
changepassword.enterNewPassword=Gib ein neues Tresorpasswort ein
|
||||
changepassword.reenterNewPassword=Bestätige das neue Passwort
|
||||
changepassword.passwordsMatch=Passwörter stimmen überein!
|
||||
changepassword.passwordsDoNotMatch=Passwörter stimmen nicht überein
|
||||
@@ -83,7 +84,7 @@ forgetPassword.information=Dies löscht das gespeicherte Passwort dieses Tresors
|
||||
forgetPassword.confirmBtn=Passwort vergessen
|
||||
|
||||
# Unlock
|
||||
unlock.title=Tresor öffnen
|
||||
unlock.title=Tresor entsperren
|
||||
unlock.passwordPrompt=Gib das Passwort für "%s" ein:
|
||||
unlock.savePassword=Passwort speichern
|
||||
unlock.unlockBtn=Entsperren
|
||||
@@ -94,13 +95,13 @@ unlock.success.revealBtn=Tresor anzeigen
|
||||
# Migration
|
||||
migration.title=Tresor aktualisieren
|
||||
## Start
|
||||
migration.start.prompt=Dein Tresor "%s" muss auf ein neueres Format aktualisiert werden. Stell bitte sicher, dass dieser Tresor vollständig synchronisiert ist.
|
||||
migration.start.prompt=Dein Tresor „%s“ muss auf ein neueres Format aktualisiert werden. Stell bitte zuvor sicher, dass dieser Tresor vollständig synchronisiert ist.
|
||||
migration.start.confirm=Ja, mein Tresor ist vollständig synchronisiert
|
||||
## Run
|
||||
migration.run.enterPassword=Gib das Passwort für "%s" ein
|
||||
migration.run.enterPassword=Gib das Passwort für „%s“ ein
|
||||
migration.run.startMigrationBtn=Tresor migrieren
|
||||
## Sucess
|
||||
migration.success.nextStepsInstructions="%s" erfolgreich migriert.\nDu kannst den Tresor jetzt entsperren.
|
||||
migration.success.nextStepsInstructions=„%s“ erfolgreich migriert.\nDu kannst deinen Tresor jetzt entsperren.
|
||||
migration.success.unlockNow=Jetzt entsperren
|
||||
|
||||
# Preferences
|
||||
@@ -109,7 +110,7 @@ preferences.title=Einstellungen
|
||||
preferences.general=Allgemein
|
||||
preferences.general.theme=Erscheinungsbild
|
||||
preferences.general.startHidden=Cryptomator im Hintergrund starten
|
||||
preferences.general.debugLogging=Debug-Protokollierung
|
||||
preferences.general.debugLogging=Diagnoseprotokoll aktivieren
|
||||
## Volume
|
||||
preferences.volume=Tresorlaufwerk
|
||||
preferences.volume.type=Laufwerkstyp
|
||||
@@ -119,7 +120,7 @@ preferences.volume.webdav.scheme=WebDAV-Schema
|
||||
preferences.updates=Updates
|
||||
preferences.updates.currentVersion=Aktuelle Version: %s
|
||||
preferences.updates.autoUpdateCheck=Automatisch nach Updates suchen
|
||||
preferences.updates.checkNowBtn=Jetzt prüfen
|
||||
preferences.updates.checkNowBtn=Jetzt suchen
|
||||
preferences.updates.updateAvailable=Update auf Version %s verfügbar.
|
||||
|
||||
# Main Window
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinz
|
||||
main.vaultlist.contextMenu.remove=Tresor entfernen
|
||||
main.vaultlist.addVaultBtn=Tresor hinzufügen
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=GESPERRT
|
||||
main.vaultDetail.unlockedStatus=ENTSPERRT
|
||||
main.vaultDetail.unlockBtn=Entsperren
|
||||
main.vaultDetail.optionsBtn=Tresoroptionen
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=ENTSPERRT
|
||||
main.vaultDetail.accessLocation=Dein Tresorinhalt ist hier erreichbar:
|
||||
main.vaultDetail.revealBtn=Laufwerk anzeigen
|
||||
main.vaultDetail.lockBtn=Sperren
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=geschrieben:
|
||||
main.vaultDetail.throughput.idle=Leerlauf
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Tresor aktualisieren
|
||||
main.vaultDetail.migratePrompt=Dein Tresor muss auf ein neues Format aktualisiert werden, bevor Du auf ihn zugreifen kannst
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Unbekannte Datei
|
||||
@@ -149,17 +155,21 @@ wrongFileAlert.btn=OK
|
||||
wrongFileAlert.information=Du hast versucht, eine Datei oder einen Ordner hinzuzufügen, der scheinbar kein Cryptomator-Tresor ist. Um Dateien zu verschlüsseln, erstelle und entsperre einen Tresor.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Allgemein
|
||||
vaultOptions.general.changePasswordBtn=Passwort ändern
|
||||
vaultOptions.general.showRecoveryKeyBtn=Wiederherstellungsschlüssel anzeigen
|
||||
## Mount
|
||||
vaultOptions.mount=Laufwerk
|
||||
vaultOptions.mount.readonly=Schreibgeschützt
|
||||
vaultOptions.mount.driveName=Laufwerksname
|
||||
vaultOptions.mount.customMountFlags=Benutzerdefinierte Mount-Flags
|
||||
vaultOptions.mount.winDriveLetterOccupied=belegt
|
||||
vaultOptions.mount.winDirChooser=Wähle ein leeres Verzeichnis
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Wiederherstellungsschlüssel
|
||||
recoveryKey.enterPassword.prompt=Gib Dein Kennwort ein um den Wiederherstellungsschlüssel für „%s“ anzuzeigen:
|
||||
recoveryKey.enterPassword.prompt=Gib dein Kennwort ein, um den Wiederherstellungsschlüssel für „%s“ anzuzeigen:
|
||||
recoveryKey.display.message=Wiederherstellungsschlüssel für „%s“:
|
||||
|
||||
# Misc
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
### Name
|
||||
### Location
|
||||
### Password
|
||||
### Recovery Key
|
||||
### Information
|
||||
## Existing
|
||||
## Success
|
||||
@@ -37,10 +38,15 @@
|
||||
# Main Window
|
||||
## Vault List
|
||||
## Vault Detail
|
||||
### Locked
|
||||
### Unlocked
|
||||
### Needs Migration
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
## Mount
|
||||
|
||||
# Recovery Key
|
||||
|
||||
|
||||
@@ -36,12 +36,13 @@ addvaultwizard.new.directoryPickerTitle=Seleccionar directorio
|
||||
addvaultwizard.new.enterPassword=Ingresar una contraseña para la bóveda
|
||||
addvaultwizard.new.fileAlreadyExists=La bóveda no puede crearse en esta ruta porque ya existe un objeto.
|
||||
addvaultwizard.new.invalidName=Nombre de bóveda inválido. Considere un nombre de directorio regular.
|
||||
addvaultwizard.new.ioException=El directorio seleccionado falló una prueba básica. Asegurarse de tener los derechos de acceso apropiados y que nada interfiere con Cryptomator.
|
||||
addvaultwizard.new.ioException=El directorio seleccionado falló una prueba básica. Asegúrese de tener los derechos de acceso apropiados y que nada interfiere con Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Confirmar la contraseña
|
||||
addvaultwizard.new.passwordsMatch=¡Las contraseñas coinciden!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Las contraseñas no coinciden
|
||||
addvaultwizard.new.createVaultBtn=Crear bóveda
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Esta es la clave de recuperación. Se debe mantener segura, es la única oportunidad de recuperar los datos si se pierde la contraseña.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Sí, he hecho una copia de seguridad de esta clave de recuperación
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Hacer clic aquí para añadir una
|
||||
main.vaultlist.contextMenu.remove=Eliminar bóveda
|
||||
main.vaultlist.addVaultBtn=Añadir bóveda
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=BLOQUEADO
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
||||
main.vaultDetail.unlockBtn=Desbloquear
|
||||
main.vaultDetail.optionsBtn=Opciones de la bóveda
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
||||
main.vaultDetail.accessLocation=El contenido de la bóveda es accesible aquí:
|
||||
main.vaultDetail.revealBtn=Revelar unidad
|
||||
main.vaultDetail.lockBtn=Bloquear
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=escrito:
|
||||
main.vaultDetail.throughput.idle=inactivo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Mejorar bóveda
|
||||
main.vaultDetail.migratePrompt=Su bóveda necesita ser actualizada a un formato nuevo antes de poder acceder a ella
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Archivo desconocido
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=Ok
|
||||
wrongFileAlert.information=Se ha intentado añadir un archivo o carpeta que no parece ser una bóveda de Cryptomator. Para cifrar los datos, crear y desbloquear una bóveda.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=General
|
||||
vaultOptions.general.changePasswordBtn=Cambiar contraseña
|
||||
vaultOptions.general.showRecoveryKeyBtn=Mostrar la clave de recuperación
|
||||
## Mount
|
||||
vaultOptions.mount=Montaje
|
||||
vaultOptions.mount.readonly=Sólo lectura
|
||||
vaultOptions.mount.driveName=Nombre de la unidad
|
||||
vaultOptions.mount.customMountFlags=Opciones de montaje personalizadas
|
||||
vaultOptions.mount.winDriveLetterOccupied=ocupado
|
||||
vaultOptions.mount.winDirChooser=Elija un directorio vacío
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Clave de recuperación
|
||||
|
||||
@@ -24,7 +24,7 @@ addvaultwizard.welcome.newButton=Créer un nouveau coffre
|
||||
addvaultwizard.welcome.existingButton=Ouvrir un coffre existant
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=Choisissez un nom pour le coffre
|
||||
addvaultwizard.new.nameInstruction=Choisir un nom pour le coffre
|
||||
addvaultwizard.new.namePrompt=Nom du coffre
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Où Cryptomator doit-il stocker les fichiers chiffrés de votre coffre ?
|
||||
@@ -36,12 +36,13 @@ addvaultwizard.new.directoryPickerTitle=Choisissez le répertoire
|
||||
addvaultwizard.new.enterPassword=Saisissez un mot de passe pour le coffre
|
||||
addvaultwizard.new.fileAlreadyExists=Le coffre ne peut pas être créé sur ce chemin car un objet existe déjà.
|
||||
addvaultwizard.new.invalidName=Nom de coffre invalide. Préférez un nom de répertoire habituel.
|
||||
addvaultwizard.new.ioException=Le répertoire sélectionné a échoué à un test basique. Assurez-vous d'avoir les droits d'accès appropriés et que rien n'interfère avec Cryptomator.
|
||||
addvaultwizard.new.ioException=Le répertoire sélectionné a échoué un test de base. Assurez-vous d'avoir les droits d'accès appropriés et que rien n'interfère avec Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Confirmez le mot de passe
|
||||
addvaultwizard.new.passwordsMatch=Mots de passe identiques !
|
||||
addvaultwizard.new.passwordsDoNotMatch=Les mots de passe ne correspondent pas
|
||||
addvaultwizard.new.createVaultBtn=Créer un coffre
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=C'est votre clé de récupération. Gardez-la en sécurité, c'est votre seule chance de récupérer vos données si vous perdez votre mot de passe.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Oui, j'ai fait une sauvegarde sécurisée de cette clé de récupération
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Cliquez ici pour ajouter un coffr
|
||||
main.vaultlist.contextMenu.remove=Supprimer le coffre
|
||||
main.vaultlist.addVaultBtn=Ajouter un coffre
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=VERROUILLÉ
|
||||
main.vaultDetail.unlockedStatus=DÉVERROUILLÉ
|
||||
main.vaultDetail.unlockBtn=Déverrouiller
|
||||
main.vaultDetail.optionsBtn=Option du coffre
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=DÉVERROUILLÉ
|
||||
main.vaultDetail.accessLocation=Le contenu de votre coffre est accessible ici :
|
||||
main.vaultDetail.revealBtn=Révéler le lecteur
|
||||
main.vaultDetail.lockBtn=Verrouiller
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=écriture :
|
||||
main.vaultDetail.throughput.idle=inactif
|
||||
main.vaultDetail.throughput.kbps=%.1fkB/s
|
||||
main.vaultDetail.throughput.mbps=%.1fMB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Mettre à jour le coffre
|
||||
main.vaultDetail.migratePrompt=Votre coffre doit être converti dans un nouveau format avant d'y accéder
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Fichier inconnu
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=Ok
|
||||
wrongFileAlert.information=Vous avez essayé d’ajouter un fichier ou un dossier qui ne semble pas être un coffre Cryptomator. Pour chiffrer vos données, créez un coffre et déverrouillez-le.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Général
|
||||
vaultOptions.general.changePasswordBtn=Modifier le mot de passe
|
||||
vaultOptions.general.showRecoveryKeyBtn=Afficher la clé de récupération
|
||||
## Mount
|
||||
vaultOptions.mount=Montage
|
||||
vaultOptions.mount.readonly=Lecture seule
|
||||
vaultOptions.mount.driveName=Nom du lecteur
|
||||
vaultOptions.mount.customMountFlags=Drapeau de montage personnalisé
|
||||
vaultOptions.mount.winDriveLetterOccupied=occupé
|
||||
vaultOptions.mount.winDirChooser=Choisir un répertoire vide
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Clé de récupération
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
### Name
|
||||
### Location
|
||||
### Password
|
||||
### Recovery Key
|
||||
### Information
|
||||
## Existing
|
||||
## Success
|
||||
@@ -37,10 +38,15 @@
|
||||
# Main Window
|
||||
## Vault List
|
||||
## Vault Detail
|
||||
### Locked
|
||||
### Unlocked
|
||||
### Needs Migration
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
## Mount
|
||||
|
||||
# Recovery Key
|
||||
|
||||
|
||||
@@ -36,12 +36,13 @@ addvaultwizard.new.directoryPickerTitle=Seleziona cartella
|
||||
addvaultwizard.new.enterPassword=Inserisci una password per la cassaforte
|
||||
addvaultwizard.new.fileAlreadyExists=La cassaforte non può essere creata in questo percorso perché un oggetto esiste già.
|
||||
addvaultwizard.new.invalidName=Nome della cassaforte non valido. Si prega di considerare un nome di directory regolare.
|
||||
addvaultwizard.new.ioException=La cartella selezionata non ha avuto successo per un test di base. Assicurati di avere i diritti di accesso adeguati e che nulla interferisca con Cryptomator.
|
||||
addvaultwizard.new.ioException=La cartella selezionata non ha superato un test di base. Assicurati di avere i diritti di accesso adeguati e che nulla interferisca con Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Conferma Password
|
||||
addvaultwizard.new.passwordsMatch=Le password corrispondono!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Le password non corrispondono
|
||||
addvaultwizard.new.createVaultBtn=Crea Cassaforte
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Questa è la tua chiave di recupero. Tienilo al sicuro, è la tua unica possibilità di recuperare i tuoi dati se perdi la password.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Sì, ho fatto un backup sicuro di questa chiave di recupero
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cas
|
||||
main.vaultlist.contextMenu.remove=Rimuovi Cassaforte
|
||||
main.vaultlist.addVaultBtn=Aggiungi Cassaforte
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=BLOCCATO
|
||||
main.vaultDetail.unlockedStatus=SBLOCCATO
|
||||
main.vaultDetail.unlockBtn=Sblocca
|
||||
main.vaultDetail.optionsBtn=Opzioni Cassaforte
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=SBLOCCATO
|
||||
main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui:
|
||||
main.vaultDetail.revealBtn=Visualizza disco
|
||||
main.vaultDetail.lockBtn=Blocca
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=scrittura:
|
||||
main.vaultDetail.throughput.idle=inattivo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Aggiorna la cassaforte
|
||||
main.vaultDetail.migratePrompt=Prima di potervi accedere la tua cassaforte deve essere aggiornata al nuovo formato
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=File sconosciuto
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=OK
|
||||
wrongFileAlert.information=Hai provato ad aggiungere un file o una cartella che non sembra essere una cassaforte di Cryptomator. Per crittografare i tuoi dati, creare e sbloccare una cassaforte.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Generali
|
||||
vaultOptions.general.changePasswordBtn=Modifica password
|
||||
vaultOptions.general.showRecoveryKeyBtn=Visualizza la chiave di recupero
|
||||
## Mount
|
||||
vaultOptions.mount=Montaggio
|
||||
vaultOptions.mount.readonly=Sola lettura
|
||||
vaultOptions.mount.driveName=Nome drive
|
||||
vaultOptions.mount.customMountFlags=Opzioni personalizzate
|
||||
vaultOptions.mount.winDriveLetterOccupied=occupato
|
||||
vaultOptions.mount.winDirChooser=Scegli una directory vuota
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Chiave di recupero
|
||||
|
||||
@@ -42,6 +42,7 @@ addvaultwizard.new.reenterPassword=パスワードの確認
|
||||
addvaultwizard.new.passwordsMatch=パスワードが一致しました!
|
||||
addvaultwizard.new.passwordsDoNotMatch=パスワードが一致しません
|
||||
addvaultwizard.new.createVaultBtn=金庫を作成
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=これは、あなたの回復キーです。大切に保管してください、パスワードを忘れてしまった場合でもデータを復元できる唯一の方法です。
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=はい、回復キーを大切に保管しました
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=ここをクリックして金庫
|
||||
main.vaultlist.contextMenu.remove=金庫を削除
|
||||
main.vaultlist.addVaultBtn=金庫を追加
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=施錠済み
|
||||
main.vaultDetail.unlockedStatus=解錠済み
|
||||
main.vaultDetail.unlockBtn=解錠
|
||||
main.vaultDetail.optionsBtn=金庫のオプション
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=解錠済み
|
||||
main.vaultDetail.accessLocation=アクセス可能な金庫のコンテンツ:
|
||||
main.vaultDetail.revealBtn=ドライブを表示
|
||||
main.vaultDetail.lockBtn=施錠
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=書き込み:
|
||||
main.vaultDetail.throughput.idle=アイドル
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=金庫をアップグレード
|
||||
main.vaultDetail.migratePrompt=金庫にアクセスする前に、 金庫を新しい形式にアップグレードする必要があります
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=不明なファイル
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=Ok
|
||||
wrongFileAlert.information=Cryptomator の金庫ではない、ファイルかフォルダーを追加しようとしました。データを暗号化するには、金庫を作成して施錠してください。
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=基本設定
|
||||
vaultOptions.general.changePasswordBtn=パスワードの変更
|
||||
vaultOptions.general.showRecoveryKeyBtn=回復キーを表示
|
||||
## Mount
|
||||
vaultOptions.mount=マウント
|
||||
vaultOptions.mount.readonly=読み取り専用
|
||||
vaultOptions.mount.driveName=ドライブ名
|
||||
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
||||
vaultOptions.mount.winDriveLetterOccupied=使用中
|
||||
vaultOptions.mount.winDirChooser=空のディレクトリを選択してください
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=回復キー
|
||||
|
||||
@@ -36,12 +36,13 @@ addvaultwizard.new.directoryPickerTitle=디렉터리 선택
|
||||
addvaultwizard.new.enterPassword=Vault의 비밀번호를 입력하십시요.
|
||||
addvaultwizard.new.fileAlreadyExists=이미 다른 객체가 존재하고 있어 해당 경로에 Vault를 생성할 수 없습니다.
|
||||
addvaultwizard.new.invalidName=유효하지 않은 Vault 이름입니다. 일반적인 디렉터리 이름으로 지정해주십시요.
|
||||
addvaultwizard.new.ioException=선택된 디렉터리가 기본테스트에 실패하였습니다. Cryptomator가 적절한 권한을 가지고 있는지, 간섭을 받는 것은 없는지 확인하여 주십시요.
|
||||
addvaultwizard.new.ioException=선택된 디렉터리가 기본테스트에 실패하였습니다. Cryptomator가 적절한 권한을 가지고 있고 간섭을 받는 것은 없는지 확인하여 주십시요.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=비밀번호 확인
|
||||
addvaultwizard.new.passwordsMatch=비밀번호 일치!
|
||||
addvaultwizard.new.passwordsDoNotMatch=비밀번호가 일치하지 않습니다.
|
||||
addvaultwizard.new.createVaultBtn=Vault 생성
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=이것은 복구키입니다. 만일 비밀번호를 분실하셨을 때,데이터를 복구 할 수 있는 유일한 방법이므로, 안전하게 보관하시기 바랍니다.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=예, 이 복구키를 안전하게 백업해두었습니다.
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이
|
||||
main.vaultlist.contextMenu.remove=Vault 제거
|
||||
main.vaultlist.addVaultBtn=Vault 추가
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=잠김
|
||||
main.vaultDetail.unlockedStatus=잠금해제됨
|
||||
main.vaultDetail.unlockBtn=잠금해제
|
||||
main.vaultDetail.optionsBtn=Vault 옵션
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=잠금해제됨
|
||||
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
||||
main.vaultDetail.revealBtn=드라이브 표시
|
||||
main.vaultDetail.lockBtn=잠금
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=쓰기:
|
||||
main.vaultDetail.throughput.idle=대기
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Vault 업그레이드
|
||||
main.vaultDetail.migratePrompt=Vault에 접근하기 전, 새로운 포멧으로 업그레이드가 필요합니다.
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=알 수 없는 파일
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=확인
|
||||
wrongFileAlert.information=Cryptomator vault에 없는 파일이나 폴더를 추가하려고 하신 것 같습니다. 데이터를 암호화하기 위해 Vault를 생성하시고 잠금해제하시기 바랍니다.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=일반
|
||||
vaultOptions.general.changePasswordBtn=비밀번호 변경
|
||||
vaultOptions.general.showRecoveryKeyBtn=복구 키 출력
|
||||
## Mount
|
||||
vaultOptions.mount=드라이브 구성
|
||||
vaultOptions.mount.readonly=읽기 전용
|
||||
vaultOptions.mount.driveName=드라이브 이름
|
||||
vaultOptions.mount.customMountFlags=사용자 정의 매개변수 사용
|
||||
vaultOptions.mount.winDriveLetterOccupied=사용됨
|
||||
vaultOptions.mount.winDirChooser=빈 디렉터리를 선택해 주십시요
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=복구 키
|
||||
|
||||
@@ -36,12 +36,13 @@ addvaultwizard.new.directoryPickerTitle=Selecteer map
|
||||
addvaultwizard.new.enterPassword=Voer een wachtwoord voor de kluis in
|
||||
addvaultwizard.new.fileAlreadyExists=Er kan op deze locatie geen kluis aangemaakt worden, omdat er een bepaald object bestaat.
|
||||
addvaultwizard.new.invalidName=Ongeldige kluisnaam. Overweeg een standaard mapnaam.
|
||||
addvaultwizard.new.ioException=De geselecteerde map heeft een basistest niet gehaald. Zorg dat de map de juiste rechten heeft, en dat er niets conflicteert met Cryptomator.
|
||||
addvaultwizard.new.ioException=De geselecteerde map heeft een basistest niet gehaald. Zorg dat de map de juiste rechten heeft, en dat er niet conflicteert met Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Bevestig het wachtwoord
|
||||
addvaultwizard.new.passwordsMatch=Wachtwoorden komen overeen!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Wachtwoorden komen niet overeen
|
||||
addvaultwizard.new.createVaultBtn=Kluis aanmaken
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Dit is uw herstelsleutel. Bewaar deze goed, het is de enige mogelijkheid om uw data te herstellen als u uw wachtwoord verliest.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Ja, ik heb een beveiligde back-up gemaakt van deze herstelsleutel
|
||||
### Information
|
||||
@@ -130,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Klik hier om een kluis toe te voe
|
||||
main.vaultlist.contextMenu.remove=Verwijder Kluis
|
||||
main.vaultlist.addVaultBtn=Kluis toevoegen
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=VERGRENDELD
|
||||
main.vaultDetail.unlockedStatus=ONTGRENDELD
|
||||
main.vaultDetail.unlockBtn=Ontgrendel
|
||||
main.vaultDetail.optionsBtn=Kluis-instellingen
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=ONTGRENDELD
|
||||
main.vaultDetail.accessLocation=De inhoud van uw kluis is hier toegankelijk:
|
||||
main.vaultDetail.revealBtn=Toon Schijf
|
||||
main.vaultDetail.lockBtn=Vergrendel
|
||||
@@ -142,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=schrijven:
|
||||
main.vaultDetail.throughput.idle=inactief
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Kluis upgraden
|
||||
main.vaultDetail.migratePrompt=Uw kluis moet worden bijgewerkt naar een nieuw formaat, voordat u deze kunt openen
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Onbekend bestand
|
||||
@@ -149,13 +155,17 @@ wrongFileAlert.btn=Oké
|
||||
wrongFileAlert.information=U hebt geprobeerd om een bestand of een map toe te voegen die geen Cryptomator kluis is. Maak en ontgrendel een kluis om uw gegevens te versleutelen.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Algemeen
|
||||
vaultOptions.general.changePasswordBtn=Wijzig wachtwoord
|
||||
vaultOptions.general.showRecoveryKeyBtn=Toon herstelsleutel
|
||||
## Mount
|
||||
vaultOptions.mount=Aankoppelen
|
||||
vaultOptions.mount.readonly=Alleen-Lezen
|
||||
vaultOptions.mount.driveName=Schijfnaam
|
||||
vaultOptions.mount.customMountFlags=Aangepaste Aankoppel Parameters
|
||||
vaultOptions.mount.winDriveLetterOccupied=in gebruik
|
||||
vaultOptions.mount.winDirChooser=Kies een lege map
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Herstelsleutel
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
### Name
|
||||
### Location
|
||||
### Password
|
||||
### Recovery Key
|
||||
### Information
|
||||
## Existing
|
||||
## Success
|
||||
@@ -37,10 +38,15 @@
|
||||
# Main Window
|
||||
## Vault List
|
||||
## Vault Detail
|
||||
### Locked
|
||||
### Unlocked
|
||||
### Needs Migration
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
## Mount
|
||||
|
||||
# Recovery Key
|
||||
|
||||
|
||||
@@ -36,12 +36,12 @@ addvaultwizard.new.directoryPickerTitle=Selecionar Diretório
|
||||
addvaultwizard.new.enterPassword=Digite uma senha para o cofre
|
||||
addvaultwizard.new.fileAlreadyExists=O cofre não pode ser criado neste local porque algum objeto já existe.
|
||||
addvaultwizard.new.invalidName=Nome de cofre inválido. Por favor considere usar um nome de diretório comum.
|
||||
addvaultwizard.new.ioException=O diretório selecionado falhou em um teste básico. Certifique-se de ter os direitos de acesso apropriados e que nada interfira com o Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Confirme a senha
|
||||
addvaultwizard.new.passwordsMatch=As senhas são idênticas!
|
||||
addvaultwizard.new.passwordsDoNotMatch=As senhas são diferentes
|
||||
addvaultwizard.new.createVaultBtn=Criar Cofre
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Esta é a sua chave de recuperação. Mantenha-a segura, é sua única chance de recuperar seus dados se você perder sua senha.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Sim, fiz um backup seguro desta chave de recuperação
|
||||
### Information
|
||||
@@ -130,10 +130,12 @@ main.vaultlist.emptyList.onboardingInstruction=Clique aqui para adicionar um cof
|
||||
main.vaultlist.contextMenu.remove=Remover Cofre
|
||||
main.vaultlist.addVaultBtn=Adicionar Cofre
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=BLOQUEADO
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
||||
main.vaultDetail.unlockBtn=Desbloquear
|
||||
main.vaultDetail.optionsBtn=Opções de Cofre
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
||||
main.vaultDetail.accessLocation=O conteúdo do seu cofre está disponível aqui:
|
||||
main.vaultDetail.revealBtn=Revelar Volume
|
||||
main.vaultDetail.lockBtn=Bloquear
|
||||
@@ -142,6 +144,8 @@ main.vaultDetail.bytesPerSecondWritten=gravação:
|
||||
main.vaultDetail.throughput.idle=ocioso
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Atualizar Cofre
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Arquivo Desconhecido
|
||||
@@ -149,9 +153,11 @@ wrongFileAlert.btn=Ok
|
||||
wrongFileAlert.information=Você tentou adicionar um arquivo ou diretório que não aparenta ser um cofre do Cryptomator. Para criptografar seus dados, crie e desbloqueie um cofre.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Geral
|
||||
vaultOptions.general.changePasswordBtn=Alterar Senha
|
||||
vaultOptions.general.showRecoveryKeyBtn=Exibir chave de recuperação
|
||||
## Mount
|
||||
vaultOptions.mount=Montagem
|
||||
vaultOptions.mount.readonly=Somente Leitura
|
||||
vaultOptions.mount.driveName=Nome do Volume
|
||||
@@ -171,4 +177,3 @@ passwordStrength.messageLabel.4=Muito forte
|
||||
|
||||
# Quit
|
||||
quit.prompt=Sair da aplicação? Existem cofres desbloqueados.
|
||||
quit.lockAndQuit=Bloquear e Sair
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
## Button
|
||||
generic.button.apply=Применить
|
||||
generic.button.back=Назад
|
||||
generic.button.cancel=Отменить
|
||||
generic.button.cancel=Отмена
|
||||
generic.button.change=Изменить
|
||||
generic.button.done=Готово
|
||||
generic.button.next=Вперед
|
||||
generic.button.next=Далее
|
||||
|
||||
# Tray Menu
|
||||
traymenu.showMainWindow=Показать
|
||||
@@ -21,7 +21,7 @@ traymenu.vault.reveal=Показать
|
||||
addvaultwizard.title=Добавить хранилище
|
||||
## Welcome
|
||||
addvaultwizard.welcome.newButton=Создать хранилище
|
||||
addvaultwizard.welcome.existingButton=Открыть существующее хранилище
|
||||
addvaultwizard.welcome.existingButton=Открыть имеющееся хранилище
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=Выберите имя для хранилища
|
||||
@@ -30,42 +30,43 @@ addvaultwizard.new.namePrompt=Имя хранилища
|
||||
addvaultwizard.new.locationInstruction=Где Cryptomator должен хранить зашифрованные файлы вашего хранилища?
|
||||
addvaultwizard.new.locationLabel=Место хранения
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Пользовательское расположение
|
||||
addvaultwizard.new.directoryPickerLabel=Своё место
|
||||
addvaultwizard.new.directoryPickerButton=Выбрать…
|
||||
addvaultwizard.new.directoryPickerTitle=Выберите каталог
|
||||
addvaultwizard.new.enterPassword=Введите пароль для хранилища
|
||||
addvaultwizard.new.fileAlreadyExists=Хранилище не может быть создано по этому пути, потому что некоторые объекты уже существуют.
|
||||
addvaultwizard.new.invalidName=Неверное имя хранилища. Пожалуйста, выберите стандартное название каталога.
|
||||
addvaultwizard.new.invalidName=Неверное имя хранилища. Укажите корректное имя каталога.
|
||||
addvaultwizard.new.ioException=Выбранный каталог не прошел начальную проверку. Убедитесь, что у вас есть права доступа и ничего не мешает Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Подтвердите пароль
|
||||
addvaultwizard.new.passwordsMatch=Пароли совпадают!
|
||||
addvaultwizard.new.passwordsMatch=Пароли совпадают
|
||||
addvaultwizard.new.passwordsDoNotMatch=Пароли не совпадают
|
||||
addvaultwizard.new.createVaultBtn=Создать хранилище
|
||||
addvaultwizard.new.recoveryKeyInstruction=Это ваш ключ восстановления. Держите его в безопасности, это единственный шанс восстановить ваши данные, если вы потеряете пароль.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Да, я сделал резервную копию этого ключа восстановления
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Это ключ восстановления. Держите его в надёжном месте - это единственный шанс восстановить данные, если вы потеряете пароль.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Да, у меня есть резервная копия этого ключа восстановления
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.fileName=ЧТО ЗА КАТАЛОГ.rtf
|
||||
addvault.new.readme.storageLocation.1=\\fs40\\qc ⚠️ ФАЙЛЫ ХРАНИЛИЩА ⚠️
|
||||
addvault.new.readme.storageLocation.2=Это место хранения вашего хранилища. {\\b НЕ} изменяйте никакие файлы в этом каталоге.
|
||||
addvault.new.readme.storageLocation.1=\\fs40\\qc ⚠️ ФАЙЛЫ ХРАНИЛИЩ ⚠️
|
||||
addvault.new.readme.storageLocation.2=Это место, где находится ваше хранилище. {\\b НЕ} изменяйте никакие файлы в этом каталоге.
|
||||
addvault.new.readme.storageLocation.3=Если вы хотите зашифровать файлы с помощью Cryptomator, разблокируйте хранилище и используйте предоставленный диск.
|
||||
addvault.new.readme.storageLocation.4=Если вам нужна помощь, попробуйте %s.
|
||||
addvault.new.readme.accessLocation.fileName=ДОБРО ПОЖАЛОВАТЬ В ВАШЕ ХРАНИЛИЩЕ.rtf
|
||||
addvault.new.readme.accessLocation.1=\\fs40\\qc 🔐️ ЗАШИФРОВАННОЕ ХРАНИЛИЩЕ 🔐️
|
||||
addvault.new.readme.storageLocation.4=Нужна помощь? Попробуйте %s.
|
||||
addvault.new.readme.accessLocation.fileName=ДОБРО ПОЖАЛОВАТЬ В ХРАНИЛИЩЕ.rtf
|
||||
addvault.new.readme.accessLocation.1=\\fs40\\qc 🔐️ ЗАШИФРОВАННЫЙ ТОМ 🔐️
|
||||
addvault.new.readme.accessLocation.2=Это место доступа в хранилище. Любые файлы, добавленные в этот том, будут зашифрованы Cryptomator. Чтобы получить доступ к этому тому позже, просто разблокируйте его из приложения Cryptomator.
|
||||
addvault.new.readme.accessLocation.3=Можете удалить этот файл.
|
||||
addvault.new.readme.accessLocation.3=Этот файл можно удалить.
|
||||
## Existing
|
||||
addvaultwizard.existing.instruction=Выберите файл "masterkey.cryptomator" от существующего хранилища.
|
||||
addvaultwizard.existing.instruction=Выберите файл "masterkey.cryptomator" из имеющегося хранилища.
|
||||
addvaultwizard.existing.chooseBtn=Выбрать…
|
||||
addvaultwizard.existing.filePickerTitle=Выберите файл MasterKey
|
||||
addvaultwizard.existing.error=Не удается добавить хранилище "%s": Недопустимое хранилище. Пожалуйста, просмотрите журнал событий для получения дополнительной информации.
|
||||
addvaultwizard.existing.filePickerTitle=Выберите файл мастер-ключа
|
||||
addvaultwizard.existing.error=Невозможно добавить хранилище "%s": оно некорректное. См. информацию в журнале событий.
|
||||
## Success
|
||||
addvaultwizard.success.nextStepsInstructions=Добавлено хранилище "%s".\nДля добавления или доступа к контенту вам необходимо разблокировать хранилище. Кроме того, вы можете разблокировать его в любое время позже.
|
||||
addvaultwizard.success.unlockNow=Разблокировать сейчас
|
||||
addvaultwizard.success.nextStepsInstructions=Добавлено хранилище "%s".\nДля добавления данных или доступа к содержимому нужно разблокировать хранилище. Его можно разблокировать и позже.
|
||||
addvaultwizard.success.unlockNow=Разблокировать
|
||||
|
||||
# Remove Vault
|
||||
removeVault.title=Удалить хранилище
|
||||
removeVault.information=Cryptomator просто забудет это хранилище. Вы можете добавить его снова позже. Зашифрованные файлы не будут удалены с жесткого диска.
|
||||
removeVault.information=Cryptomator просто забудет это хранилище. Позже вы можете добавить его снова. Зашифрованные файлы не будут удалены с жёсткого диска.
|
||||
removeVault.confirmBtn=Удалить хранилище
|
||||
|
||||
# Change Password
|
||||
@@ -73,43 +74,43 @@ changepassword.title=Изменить пароль
|
||||
changepassword.enterOldPassword=Введите текущий пароль для "%s"
|
||||
changepassword.enterNewPassword=Введите новый пароль для хранилища
|
||||
changepassword.reenterNewPassword=Подтвердите новый пароль
|
||||
changepassword.passwordsMatch=Пароли совпадают!
|
||||
changepassword.passwordsMatch=Пароли совпадают
|
||||
changepassword.passwordsDoNotMatch=Пароли не совпадают
|
||||
changepassword.finalConfirmation=Я понимаю, что не смогу восстановить свои данные, если забуду свой пароль
|
||||
changepassword.finalConfirmation=Я понимаю, что не смогу восстановить свои данные, если забуду пароль
|
||||
|
||||
# Forget Password
|
||||
forgetPassword.title=Забыл пароль
|
||||
forgetPassword.information=Это удалит сохраненный пароль от этого хранилища из вашего хранилища ключей.
|
||||
forgetPassword.confirmBtn=Забыл пароль
|
||||
forgetPassword.title=Не помню пароль
|
||||
forgetPassword.information=Сохранённый пароль от этого хранилища будет удалён из вашей связки ключей.
|
||||
forgetPassword.confirmBtn=Не помню пароль
|
||||
|
||||
# Unlock
|
||||
unlock.title=Разблокировать хранилище
|
||||
unlock.passwordPrompt=Введите пароль для %s
|
||||
unlock.passwordPrompt=Введите пароль для "%s"
|
||||
unlock.savePassword=Сохранить пароль
|
||||
unlock.unlockBtn=Разблокировать
|
||||
## Success
|
||||
unlock.success.message="%s" успешно разблокировано! Ваше хранилище теперь доступно.
|
||||
unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт.
|
||||
unlock.success.revealBtn=Показать хранилище
|
||||
|
||||
# Migration
|
||||
migration.title=Обновить хранилище
|
||||
## Start
|
||||
migration.start.prompt=Ваше хранилище "%s" должно быть обновлено до более нового формата. Перед тем, как продолжить, убедитесь в отсутствии отложенной синхронизации, которая может повлиять на хранилище.
|
||||
migration.start.confirm=Да, мое хранилище полностью синхронизировано
|
||||
migration.start.prompt=Хранилище "%s" нужно обновить до более нового формата. Прежде чем продолжить, убедитесь, что нет отложенной синхронизации, которая может повлиять на хранилище.
|
||||
migration.start.confirm=Да, моё хранилище полностью синхронизировано
|
||||
## Run
|
||||
migration.run.enterPassword=Введите пароль для %s
|
||||
migration.run.enterPassword=Введите пароль для "%s"
|
||||
migration.run.startMigrationBtn=Перенести хранилище
|
||||
## Sucess
|
||||
migration.success.nextStepsInstructions="%s" перенесено успешно.\nТеперь вы можете разблокировать хранилище.
|
||||
migration.success.unlockNow=Разблокировать сейчас
|
||||
migration.success.nextStepsInstructions=Перенос "%s" успешно выполнен.\nТеперь можно разблокировать хранилище.
|
||||
migration.success.unlockNow=Разблокировать
|
||||
|
||||
# Preferences
|
||||
preferences.title=Настройки
|
||||
## General
|
||||
preferences.general=Общее
|
||||
preferences.general.theme=Внешний вид
|
||||
preferences.general.startHidden=Скрыть окно при запуске Cryptomator
|
||||
preferences.general.debugLogging=Включить ведение журнала отладки
|
||||
preferences.general=Общие
|
||||
preferences.general.theme=Оформление
|
||||
preferences.general.startHidden=Скрывать окно при запуске Cryptomator
|
||||
preferences.general.debugLogging=Вести журнал отладки
|
||||
## Volume
|
||||
preferences.volume=Виртуальный диск
|
||||
preferences.volume.type=Тип тома
|
||||
@@ -119,47 +120,56 @@ preferences.volume.webdav.scheme=Схема WebDAV
|
||||
preferences.updates=Обновления
|
||||
preferences.updates.currentVersion=Текущая версия: %s
|
||||
preferences.updates.autoUpdateCheck=Автоматически проверять наличие обновлений
|
||||
preferences.updates.checkNowBtn=Проверить сейчас
|
||||
preferences.updates.checkNowBtn=Проверить
|
||||
preferences.updates.updateAvailable=Доступно обновление до версии %s.
|
||||
|
||||
# Main Window
|
||||
main.closeBtn.tooltip=Закрыть
|
||||
main.preferencesBtn.tooltip=Настройки
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=Нажмите здесь для добавления хранилища
|
||||
main.vaultlist.emptyList.onboardingInstruction=Нажмите здесь, чтобы добавить хранилище
|
||||
main.vaultlist.contextMenu.remove=Удалить хранилище
|
||||
main.vaultlist.addVaultBtn=Добавить хранилище
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=ЗАБЛОКИРОВАНО
|
||||
main.vaultDetail.unlockedStatus=РАЗБЛОКИРОВАНО
|
||||
main.vaultDetail.unlockBtn=Разблокировать
|
||||
main.vaultDetail.optionsBtn=Параметры хранилища
|
||||
main.vaultDetail.accessLocation=Содержимое вашего хранилища доступно здесь:
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=РАЗБЛОКИРОВАНО
|
||||
main.vaultDetail.accessLocation=Содержимое хранилища доступно здесь:
|
||||
main.vaultDetail.revealBtn=Показать диск
|
||||
main.vaultDetail.lockBtn=Заблокировать
|
||||
main.vaultDetail.bytesPerSecondRead=прочитано:
|
||||
main.vaultDetail.bytesPerSecondWritten=записано:
|
||||
main.vaultDetail.bytesPerSecondRead=чтение:
|
||||
main.vaultDetail.bytesPerSecondWritten=запись:
|
||||
main.vaultDetail.throughput.idle=бездействие
|
||||
main.vaultDetail.throughput.kbps=%.1f Кб/с
|
||||
main.vaultDetail.throughput.mbps=%.1f Мб/с
|
||||
main.vaultDetail.throughput.kbps=%.1f КиБ/с
|
||||
main.vaultDetail.throughput.mbps=%.1f МиБ/с
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Обновить хранилище
|
||||
main.vaultDetail.migratePrompt=Хранилище должно быть обновлено до нового формата, прежде чем вы сможете получить к нему доступ
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Неизвестный файл
|
||||
wrongFileAlert.btn=ОК
|
||||
wrongFileAlert.information=Вы пытались добавить файл или папку, которые, похоже, не являются хранилищем Cryptomator. Чтобы зашифровать ваши данные, создайте и разблокируйте хранилище.
|
||||
wrongFileAlert.btn=OK
|
||||
wrongFileAlert.information=Вы пытались добавить файл или папку, которые, похоже, не являются хранилищем Cryptomator. Чтобы зашифровать данные, создайте и разблокируйте хранилище.
|
||||
|
||||
# Vault Options
|
||||
vaultOptions.general=Общее
|
||||
## General
|
||||
vaultOptions.general=Общие
|
||||
vaultOptions.general.changePasswordBtn=Изменить пароль
|
||||
vaultOptions.general.showRecoveryKeyBtn=Отобразить ключ восстановления
|
||||
vaultOptions.general.showRecoveryKeyBtn=Показать ключ восстановления
|
||||
## Mount
|
||||
vaultOptions.mount=Монтирование
|
||||
vaultOptions.mount.readonly=Только чтение
|
||||
vaultOptions.mount.driveName=Имя диска
|
||||
vaultOptions.mount.customMountFlags=Пользовательские флаги монтирования
|
||||
vaultOptions.mount.customMountFlags=Свои флаги монтирования
|
||||
vaultOptions.mount.winDriveLetterOccupied=занято
|
||||
vaultOptions.mount.winDirChooser=Выберите пустой каталог
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Ключ восстановления
|
||||
recoveryKey.enterPassword.prompt=Введите пароль для отображения ключа восстановления для "%s":
|
||||
recoveryKey.enterPassword.prompt=Введите пароль, чтобы показать ключ для "%s":
|
||||
recoveryKey.display.message=Ключ восстановления для "%s":
|
||||
|
||||
# Misc
|
||||
|
||||
@@ -36,12 +36,12 @@ addvaultwizard.new.directoryPickerTitle=Välj katalog
|
||||
addvaultwizard.new.enterPassword=Ange ett lösenord för valvet
|
||||
addvaultwizard.new.fileAlreadyExists=Valvet kan inte skapas på denna plats då vissa filer redan finns.
|
||||
addvaultwizard.new.invalidName=Felaktigt namn på valvet. Vänligen ange ett vanligt katalognamn.
|
||||
addvaultwizard.new.ioException=En inledande kontroll av angiven katalog misslyckades. Kontrollera att du har tillräcklig åtkomst till den, och att inget stör Cryptomator.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Bekräfta lösenordet
|
||||
addvaultwizard.new.passwordsMatch=Lösenorden stämmer överens!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Lösenorden stämmer inte överens
|
||||
addvaultwizard.new.createVaultBtn=Skapa Valv
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=Detta är din återställningsnyckel. Förvara den väl, den är din enda chans att återställa din data om du tappar bort ditt lösenord.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Ja, jag har säkerhetskopierat återställningsnyckeln
|
||||
### Information
|
||||
@@ -58,6 +58,7 @@ addvault.new.readme.accessLocation.3=Du kan ta bort denna fil.
|
||||
addvaultwizard.existing.instruction=Välj "masterkey.cryptomator" för ditt befintliga valv.
|
||||
addvaultwizard.existing.chooseBtn=Välj…
|
||||
addvaultwizard.existing.filePickerTitle=Välj Masterkey-fil
|
||||
addvaultwizard.existing.error=Kunde inte lägga till valv "%s": Inget giltigt valv. Vänligen kolla i loggen för mer information.
|
||||
## 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.unlockNow=Lås upp nu
|
||||
@@ -129,10 +130,12 @@ main.vaultlist.emptyList.onboardingInstruction=Klicka här för att lägga till
|
||||
main.vaultlist.contextMenu.remove=Ta bort valv
|
||||
main.vaultlist.addVaultBtn=Lägg till valv
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=LÅST
|
||||
main.vaultDetail.unlockedStatus=UPPLÅST
|
||||
main.vaultDetail.unlockBtn=Lås upp
|
||||
main.vaultDetail.optionsBtn=Valv-inställningar
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=UPPLÅST
|
||||
main.vaultDetail.accessLocation=Ditt valv's innehåll kan nås härifrån:
|
||||
main.vaultDetail.revealBtn=Visa enhet
|
||||
main.vaultDetail.lockBtn=Lås
|
||||
@@ -141,6 +144,9 @@ main.vaultDetail.bytesPerSecondWritten=skrivet:
|
||||
main.vaultDetail.throughput.idle=inaktiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Uppgradera valv
|
||||
main.vaultDetail.migratePrompt=Ditt valv behöver uppgraderas till ett nytt format innan du kan använda det
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Okänd fil
|
||||
@@ -148,13 +154,17 @@ wrongFileAlert.btn=Ok
|
||||
wrongFileAlert.information=Du försöker lägga till en fil eller katalog som inte verkar vara ett Cryptomator-valv. För att kryptera din data, skapa och lås upp ett valv.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Allmänt
|
||||
vaultOptions.general.changePasswordBtn=Ändra lösenord
|
||||
vaultOptions.general.showRecoveryKeyBtn=Visa Återsällningsnyckel
|
||||
## Mount
|
||||
vaultOptions.mount=Montering
|
||||
vaultOptions.mount.readonly=Skrivskyddad
|
||||
vaultOptions.mount.driveName=Enhetsnamn
|
||||
vaultOptions.mount.customMountFlags=Egna monterings-flaggor
|
||||
vaultOptions.mount.winDriveLetterOccupied=upptagen
|
||||
vaultOptions.mount.winDirChooser=Välj en tom katalog
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Återställningsnyckel
|
||||
|
||||
@@ -36,11 +36,13 @@ addvaultwizard.new.directoryPickerTitle=Dizin Seç
|
||||
addvaultwizard.new.enterPassword=Kasa için bir şifre girin
|
||||
addvaultwizard.new.fileAlreadyExists=Bazı nesneler varolduğu için kasa bu yolda oluşturulamıyor.
|
||||
addvaultwizard.new.invalidName=Geçersiz kasa adı. Lütfen normal bir dizin adı kullanın.
|
||||
addvaultwizard.new.ioException=Seçilen dizin temel bir testte başarısız oldu. Uygun erişim haklarına sahip olduğunuzdan ve hiçbir şeyin Cryptomator'u engellemediğinden emin olun.
|
||||
### Password
|
||||
addvaultwizard.new.reenterPassword=Şifreyi onayla
|
||||
addvaultwizard.new.passwordsMatch=Şifreler eşleşti!
|
||||
addvaultwizard.new.passwordsDoNotMatch=Şifreler eşleşmiyor
|
||||
addvaultwizard.new.createVaultBtn=Kasa Oluştur
|
||||
### Recovery Key
|
||||
addvaultwizard.new.recoveryKeyInstruction=111/5000\nBu senin kurtarma anahtarın. Güvende tutun, şifrenizi kaybederseniz verilerinizi kurtarmak için tek şansınız bu.
|
||||
addvaultwizard.new.recoveryKeySavedCheckbox=Evet, bu kurtarma anahtarının güvenli bir şekilde yedeğini aldım
|
||||
### Information
|
||||
@@ -57,6 +59,7 @@ addvault.new.readme.accessLocation.3=Bu dosyayı silmeye çekinmeyin.
|
||||
addvaultwizard.existing.instruction=Varolan kasanızın "masterkey.cryptomator" dosyasını seçin.
|
||||
addvaultwizard.existing.chooseBtn=Seç…
|
||||
addvaultwizard.existing.filePickerTitle=Masterkey Dosyasını Seç
|
||||
addvaultwizard.existing.error="%s" kasası eklenemiyor: Geçerli bir kasa değil. Daha fazla bilgi için lütfen hata günlüğüne bakınız.
|
||||
## Success
|
||||
addvaultwizard.success.nextStepsInstructions="%s" kasası eklendi.\nİçeriğe erişmek veya içerik eklemek için bu kasanın kilidini açmanız gerekir. Alternatif olarak, daha sonra herhangi bir zamanda kilidini açabilirsiniz.
|
||||
addvaultwizard.success.unlockNow=Kilidi Şimdi Aç
|
||||
@@ -128,10 +131,12 @@ main.vaultlist.emptyList.onboardingInstruction=Kasa eklemek için buraya tıklay
|
||||
main.vaultlist.contextMenu.remove=Kasayı Sil
|
||||
main.vaultlist.addVaultBtn=Kasa Ekle
|
||||
## Vault Detail
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=KİLİTLİ
|
||||
main.vaultDetail.unlockedStatus=KİLİDİ AÇIK
|
||||
main.vaultDetail.unlockBtn=Kilidi Aç
|
||||
main.vaultDetail.optionsBtn=Kasa Ayarları
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=KİLİDİ AÇIK
|
||||
main.vaultDetail.accessLocation=Kasa içeriğinize buradan erişilebilir:
|
||||
main.vaultDetail.revealBtn=Sürücüyü Göster
|
||||
main.vaultDetail.lockBtn=Kilitle
|
||||
@@ -140,6 +145,9 @@ main.vaultDetail.bytesPerSecondWritten=yazma:
|
||||
main.vaultDetail.throughput.idle=boşta
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Kasayı Güncelle
|
||||
main.vaultDetail.migratePrompt=Kasaya erişmeden önce kasanızın yeni bir formata yükseltilmesi gerekiyor
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Bilinmeyen Dosya
|
||||
@@ -147,14 +155,22 @@ wrongFileAlert.btn=Tamam
|
||||
wrongFileAlert.information=Cryptomator kasası gibi görünmeyen bir dosya veya klasör eklemeye çalıştınız. Verilerinizi şifrelemek için bir kasa oluşturun ve kilidini açın.
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Genel
|
||||
vaultOptions.general.changePasswordBtn=Şifreyi Değiştir
|
||||
vaultOptions.general.showRecoveryKeyBtn=Kurtarma Anahtarını Göster
|
||||
## Mount
|
||||
vaultOptions.mount=Bağlantı
|
||||
vaultOptions.mount.readonly=Salt-Okunur
|
||||
vaultOptions.mount.driveName=Sürücü Adı
|
||||
vaultOptions.mount.customMountFlags=Özel Bağlantı Parametreleri
|
||||
vaultOptions.mount.winDriveLetterOccupied=meşgul
|
||||
vaultOptions.mount.winDirChooser=Boş bir dizin seçin
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Kurtarma Anahtarı
|
||||
recoveryKey.enterPassword.prompt="%s" için kurtarma anahtarını göstermek üzere şifrenizi girin:
|
||||
recoveryKey.display.message="%s" için Kurtarma Anahtarı:
|
||||
|
||||
# Misc
|
||||
passwordStrength.messageLabel.0=Çok zayıf
|
||||
|
||||
Reference in New Issue
Block a user