Compare commits

..

7 Commits
1.2.3 ... 1.2.4

Author SHA1 Message Date
Tobias Hagemann
0c0fb1c4c5 Merge branch 'release/1.2.4' 2017-01-27 11:22:14 +01:00
Tobias Hagemann
ab39bd1667 updated to version 1.2.4 2017-01-27 11:12:45 +01:00
Tobias Hagemann
b41636a208 added japanese localization, updated other localizations 2017-01-26 16:01:49 +01:00
Tobias Hagemann
0902de821a fixed unit test 2017-01-25 17:32:50 +01:00
Tobias Hagemann
8a6265658e fixed range requests 2017-01-25 15:48:21 +01:00
Sebastian Stenzel
28fedafb59 added linux-launcher-* to RPM [ci skip] 2016-12-12 11:39:23 +01:00
Tobias Hagemann
d9bff68555 updated localization stuff
- added title text to upgrade strategy
- added texts for upgrade 4 to 5
- changed most texts to title style capitalization
2016-11-30 17:22:29 +01:00
50 changed files with 412 additions and 244 deletions

View File

@@ -8,7 +8,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>ant-kit</artifactId> <artifactId>ant-kit</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>

View File

@@ -60,6 +60,7 @@
<fx:resources> <fx:resources>
<fx:fileset dir="antbuild" type="jar" includes="Cryptomator-${project.version}.jar" /> <fx:fileset dir="antbuild" type="jar" includes="Cryptomator-${project.version}.jar" />
<fx:fileset dir="libs" type="jar" includes="*.jar" excludes="ui-${project.version}.jar"/> <fx:fileset dir="libs" type="jar" includes="*.jar" excludes="ui-${project.version}.jar"/>
<fx:fileset dir="fixed-binaries" type="data" includes="linux-launcher-*" arch=""/>
</fx:resources> </fx:resources>
<fx:permissions elevated="false" /> <fx:permissions elevated="false" />
<fx:preferences install="true" /> <fx:preferences install="true" />

View File

@@ -10,7 +10,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>commons-test</artifactId> <artifactId>commons-test</artifactId>
<name>Cryptomator common test dependencies</name> <name>Cryptomator common test dependencies</name>

View File

@@ -10,7 +10,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>commons</artifactId> <artifactId>commons</artifactId>
<name>Cryptomator common</name> <name>Cryptomator common</name>

View File

@@ -9,7 +9,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-api</artifactId> <artifactId>filesystem-api</artifactId>
<name>Cryptomator filesystem: API</name> <name>Cryptomator filesystem: API</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-charsets</artifactId> <artifactId>filesystem-charsets</artifactId>
<name>Cryptomator filesystem: Charset compatibility layer</name> <name>Cryptomator filesystem: Charset compatibility layer</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-crypto-integration-tests</artifactId> <artifactId>filesystem-crypto-integration-tests</artifactId>
<name>Cryptomator filesystem: Encryption layer tests</name> <name>Cryptomator filesystem: Encryption layer tests</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-crypto</artifactId> <artifactId>filesystem-crypto</artifactId>
<name>Cryptomator filesystem: Encryption layer</name> <name>Cryptomator filesystem: Encryption layer</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-inmemory</artifactId> <artifactId>filesystem-inmemory</artifactId>
<name>Cryptomator filesystem: In-memory mock</name> <name>Cryptomator filesystem: In-memory mock</name>

View File

@@ -9,7 +9,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-invariants-tests</artifactId> <artifactId>filesystem-invariants-tests</artifactId>
<name>Cryptomator filesystem: Invariants tests</name> <name>Cryptomator filesystem: Invariants tests</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-nameshortening</artifactId> <artifactId>filesystem-nameshortening</artifactId>
<name>Cryptomator filesystem: Name shortening layer</name> <name>Cryptomator filesystem: Name shortening layer</name>

View File

@@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-nio</artifactId> <artifactId>filesystem-nio</artifactId>
<name>Cryptomator filesystem: NIO-based physical layer</name> <name>Cryptomator filesystem: NIO-based physical layer</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>filesystem-stats</artifactId> <artifactId>filesystem-stats</artifactId>
<name>Cryptomator filesystem: Throughput statistics</name> <name>Cryptomator filesystem: Throughput statistics</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>frontend-api</artifactId> <artifactId>frontend-api</artifactId>
<name>Cryptomator frontend: API</name> <name>Cryptomator frontend: API</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>frontend-webdav</artifactId> <artifactId>frontend-webdav</artifactId>
<name>Cryptomator frontend: WebDAV frontend</name> <name>Cryptomator frontend: WebDAV frontend</name>

View File

@@ -16,7 +16,6 @@ import java.util.Objects;
import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.DavServletResponse; import org.apache.jackrabbit.webdav.DavServletResponse;
import org.apache.jackrabbit.webdav.DavSession; import org.apache.jackrabbit.webdav.DavSession;
import org.apache.jackrabbit.webdav.io.OutputContext; import org.apache.jackrabbit.webdav.io.OutputContext;
@@ -36,7 +35,7 @@ class DavFileWithRange extends DavFile {
private final Pair<String, String> requestRange; private final Pair<String, String> requestRange;
public DavFileWithRange(FilesystemResourceFactory factory, LockManager lockManager, DavSession session, FileLocator node, Pair<String, String> requestRange) throws DavException { public DavFileWithRange(FilesystemResourceFactory factory, LockManager lockManager, DavSession session, FileLocator node, Pair<String, String> requestRange) {
super(factory, lockManager, session, node); super(factory, lockManager, session, node);
this.requestRange = Objects.requireNonNull(requestRange); this.requestRange = Objects.requireNonNull(requestRange);
} }
@@ -48,18 +47,18 @@ class DavFileWithRange extends DavFile {
return; return;
} }
final long contentLength = node.size(); final long contentLength = node.size();
final Pair<Long, Long> range = getEffectiveRange(contentLength);
if (range.getLeft() < 0 || range.getLeft() > range.getRight() || range.getRight() > contentLength) {
outputContext.setProperty(HttpHeader.CONTENT_RANGE.asString(), "bytes */" + contentLength);
throw new UncheckedDavException(DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE, "Valid Range would be in [0, " + contentLength + "]");
}
final Long rangeLength = range.getRight() - range.getLeft() + 1;
outputContext.setContentLength(rangeLength);
outputContext.setProperty(HttpHeader.CONTENT_RANGE.asString(), contentRangeResponseHeader(range.getLeft(), range.getRight(), contentLength));
outputContext.setContentType(CONTENT_TYPE_VALUE);
outputContext.setProperty(CONTENT_DISPOSITION_HEADER, CONTENT_DISPOSITION_VALUE);
outputContext.setProperty(X_CONTENT_TYPE_OPTIONS_HEADER, X_CONTENT_TYPE_OPTIONS_VALUE);
try (ReadableFile src = node.openReadable(); OutputStream out = outputContext.getOutputStream()) { try (ReadableFile src = node.openReadable(); OutputStream out = outputContext.getOutputStream()) {
final Pair<Long, Long> range = getEffectiveRange(contentLength);
if (range.getLeft() < 0 || range.getLeft() > range.getRight() || range.getRight() > contentLength) {
outputContext.setProperty(HttpHeader.CONTENT_RANGE.asString(), "bytes */" + contentLength);
throw new UncheckedDavException(DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE, "Valid Range would be in [0, " + contentLength + "]");
}
final Long rangeLength = range.getRight() - range.getLeft() + 1;
outputContext.setContentLength(rangeLength);
outputContext.setProperty(HttpHeader.CONTENT_RANGE.asString(), contentRangeResponseHeader(range.getLeft(), range.getRight(), contentLength));
outputContext.setContentType(CONTENT_TYPE_VALUE);
outputContext.setProperty(CONTENT_DISPOSITION_HEADER, CONTENT_DISPOSITION_VALUE);
outputContext.setProperty(X_CONTENT_TYPE_OPTIONS_HEADER, X_CONTENT_TYPE_OPTIONS_VALUE);
src.position(range.getLeft()); src.position(range.getLeft());
InputStream limitedIn = ByteStreams.limit(Channels.newInputStream(src), rangeLength); InputStream limitedIn = ByteStreams.limit(Channels.newInputStream(src), rangeLength);
ByteStreams.copy(limitedIn, out); ByteStreams.copy(limitedIn, out);

View File

@@ -1,50 +0,0 @@
/*******************************************************************************
* Copyright (c) 2016 Sebastian Stenzel and others.
* This file is licensed under the terms of the MIT license.
* See the LICENSE.txt file for more info.
*
* Contributors:
* Sebastian Stenzel - initial API and implementation
*******************************************************************************/
package org.cryptomator.frontend.webdav.jackrabbitservlet;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.channels.Channels;
import org.apache.jackrabbit.webdav.DavException;
import org.apache.jackrabbit.webdav.DavSession;
import org.apache.jackrabbit.webdav.io.OutputContext;
import org.apache.jackrabbit.webdav.lock.LockManager;
import org.cryptomator.filesystem.ReadableFile;
import org.cryptomator.filesystem.jackrabbit.FileLocator;
import org.eclipse.jetty.http.HttpHeader;
import com.google.common.io.ByteStreams;
/**
* Sends the full file in reaction to an unsatisfiable range.
*
* @see {@link https://tools.ietf.org/html/rfc7233#section-4.2}
*/
class DavFileWithUnsatisfiableRange extends DavFile {
public DavFileWithUnsatisfiableRange(FilesystemResourceFactory factory, LockManager lockManager, DavSession session, FileLocator node) throws DavException {
super(factory, lockManager, session, node);
}
@Override
public void spool(OutputContext outputContext) throws IOException {
outputContext.setModificationTime(node.lastModified().toEpochMilli());
if (!outputContext.hasStream()) {
return;
}
final long contentLength = node.size();
outputContext.setContentLength(contentLength);
outputContext.setProperty(HttpHeader.CONTENT_RANGE.asString(), "bytes */" + contentLength);
try (ReadableFile src = node.openReadable(); OutputStream out = outputContext.getOutputStream()) {
ByteStreams.copy(src, Channels.newChannel(out));
}
}
}

View File

@@ -85,17 +85,11 @@ class FilesystemResourceFactory implements DavResourceFactory {
final String rangeHeader = request.getHeader(HttpHeader.RANGE.asString()); final String rangeHeader = request.getHeader(HttpHeader.RANGE.asString());
try { try {
// 206 for ranged resources: // 206 for ranged resources:
final Pair<String, String> parsedRange = parseRangeRequestHeader(rangeHeader); final Pair<String, String> parsedRange = parseSingleByteRange(rangeHeader);
response.setStatus(DavServletResponse.SC_PARTIAL_CONTENT); response.setStatus(DavServletResponse.SC_PARTIAL_CONTENT);
return new DavFileWithRange(this, lockManager, session, file, parsedRange); return new DavFileWithRange(this, lockManager, session, file, parsedRange);
} catch (DavException ex) { } catch (NotASingleByteRangeException ex) {
if (ex.getErrorCode() == DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE) { return createFile(file, session);
// 416 for unsatisfiable ranges:
response.setStatus(DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE);
return new DavFileWithUnsatisfiableRange(this, lockManager, session, file);
} else {
throw new DavException(ex.getErrorCode(), ex);
}
} }
} }
@@ -108,17 +102,18 @@ class FilesystemResourceFactory implements DavResourceFactory {
* </code> * </code>
* *
* @return Tuple of lower and upper range. * @return Tuple of lower and upper range.
* @throws DavException HTTP statuscode 400 for malformed requests. 416 if requested range is not supported. * @throws DavException HTTP statuscode 400 for malformed requests.
* @throws NotASingleByteRangeException Indicating a range that is not supported by this server, i.e. range header should be ignored.
*/ */
private Pair<String, String> parseRangeRequestHeader(String rangeHeader) throws DavException { private Pair<String, String> parseSingleByteRange(String rangeHeader) throws DavException, NotASingleByteRangeException {
assert rangeHeader != null; assert rangeHeader != null;
if (!rangeHeader.startsWith(RANGE_BYTE_PREFIX)) { if (!rangeHeader.startsWith(RANGE_BYTE_PREFIX)) {
throw new DavException(DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); throw new NotASingleByteRangeException();
} }
final String byteRangeSet = StringUtils.removeStartIgnoreCase(rangeHeader, RANGE_BYTE_PREFIX); final String byteRangeSet = StringUtils.removeStartIgnoreCase(rangeHeader, RANGE_BYTE_PREFIX);
final String[] byteRanges = StringUtils.split(byteRangeSet, RANGE_SET_SEP); final String[] byteRanges = StringUtils.split(byteRangeSet, RANGE_SET_SEP);
if (byteRanges.length != 1) { if (byteRanges.length != 1) {
throw new DavException(DavServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); throw new NotASingleByteRangeException();
} }
final String byteRange = byteRanges[0]; final String byteRange = byteRanges[0];
final String[] bytePos = StringUtils.splitPreserveAllTokens(byteRange, RANGE_SEP); final String[] bytePos = StringUtils.splitPreserveAllTokens(byteRange, RANGE_SEP);
@@ -146,4 +141,7 @@ class FilesystemResourceFactory implements DavResourceFactory {
} }
} }
private static class NotASingleByteRangeException extends Exception {
}
} }

View File

@@ -376,7 +376,7 @@ public class WebDavServerTest {
final HttpMethod getMethod = new GetMethod(servletRoot + "/foo.txt"); final HttpMethod getMethod = new GetMethod(servletRoot + "/foo.txt");
getMethod.addRequestHeader("Range", "chunks=1-2"); getMethod.addRequestHeader("Range", "chunks=1-2");
final int statusCode = client.executeMethod(getMethod); final int statusCode = client.executeMethod(getMethod);
Assert.assertEquals(416, statusCode); Assert.assertEquals(200, statusCode);
Assert.assertArrayEquals(testContent, getMethod.getResponseBody()); Assert.assertArrayEquals(testContent, getMethod.getResponseBody());
getMethod.releaseConnection(); getMethod.releaseConnection();
} }

View File

@@ -5,7 +5,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>jacoco-report</artifactId> <artifactId>jacoco-report</artifactId>
<name>Cryptomator Code Coverage Report</name> <name>Cryptomator Code Coverage Report</name>

View File

@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>keychain</artifactId> <artifactId>keychain</artifactId>
<name>System Keychain Access</name> <name>System Keychain Access</name>

View File

@@ -6,7 +6,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<name>Cryptomator</name> <name>Cryptomator</name>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>uber-jar</artifactId> <artifactId>uber-jar</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>

View File

@@ -12,7 +12,7 @@
<parent> <parent>
<groupId>org.cryptomator</groupId> <groupId>org.cryptomator</groupId>
<artifactId>main</artifactId> <artifactId>main</artifactId>
<version>1.2.3</version> <version>1.2.4</version>
</parent> </parent>
<artifactId>ui</artifactId> <artifactId>ui</artifactId>
<name>Cryptomator GUI</name> <name>Cryptomator GUI</name>

View File

@@ -41,7 +41,10 @@ public class UpgradeController extends LocalizedFXMLViewController {
} }
@FXML @FXML
private Label upgradeLabel; private Label upgradeTitleLabel;
@FXML
private Label upgradeMsgLabel;
@FXML @FXML
private SecPasswordField passwordField; private SecPasswordField passwordField;
@@ -60,8 +63,11 @@ public class UpgradeController extends LocalizedFXMLViewController {
@Override @Override
protected void initialize() { protected void initialize() {
upgradeLabel.textProperty().bind(EasyBind.monadic(strategy).map(instruction -> { upgradeTitleLabel.textProperty().bind(EasyBind.monadic(strategy).map(instruction -> {
return instruction.map(this::upgradeNotification).orElse(""); return instruction.map(this::upgradeTitle).orElse("");
}).orElse(""));
upgradeMsgLabel.textProperty().bind(EasyBind.monadic(strategy).map(instruction -> {
return instruction.map(this::upgradeMessage).orElse("");
}).orElse("")); }).orElse(""));
BooleanExpression passwordProvided = passwordField.textProperty().isNotEmpty().and(passwordField.disabledProperty().not()); BooleanExpression passwordProvided = passwordField.textProperty().isNotEmpty().and(passwordField.disabledProperty().not());
@@ -87,8 +93,12 @@ public class UpgradeController extends LocalizedFXMLViewController {
// Upgrade label // Upgrade label
// **************************************** // ****************************************
private String upgradeNotification(UpgradeStrategy instruction) { private String upgradeTitle(UpgradeStrategy instruction) {
return instruction.getNotification(vault); return instruction.getTitle(vault);
}
private String upgradeMessage(UpgradeStrategy instruction) {
return instruction.getMessage(vault);
} }
// **************************************** // ****************************************

View File

@@ -33,9 +33,14 @@ public abstract class UpgradeStrategy {
} }
/** /**
* @return Localized string to display to the user when an upgrade is needed. * @return Localized title string to display to the user when an upgrade is needed.
*/ */
public abstract String getNotification(Vault vault); public abstract String getTitle(Vault vault);
/**
* @return Localized message string to display to the user when an upgrade is needed.
*/
public abstract String getMessage(Vault vault);
/** /**
* Upgrades a vault. Might take a moment, should be run in a background thread. * Upgrades a vault. Might take a moment, should be run in a background thread.

View File

@@ -32,7 +32,12 @@ class UpgradeVersion3DropBundleExtension extends UpgradeStrategy {
} }
@Override @Override
public String getNotification(Vault vault) { public String getTitle(Vault vault) {
return localization.getString("upgrade.version3dropBundleExtension.title");
}
@Override
public String getMessage(Vault vault) {
String fmt = localization.getString("upgrade.version3dropBundleExtension.msg"); String fmt = localization.getString("upgrade.version3dropBundleExtension.msg");
Path path = vault.path().getValue(); Path path = vault.path().getValue();
String oldVaultName = path.getFileName().toString(); String oldVaultName = path.getFileName().toString();

View File

@@ -50,7 +50,12 @@ class UpgradeVersion3to4 extends UpgradeStrategy {
} }
@Override @Override
public String getNotification(Vault vault) { public String getTitle(Vault vault) {
return localization.getString("upgrade.version3to4.title");
}
@Override
public String getMessage(Vault vault) {
return localization.getString("upgrade.version3to4.msg"); return localization.getString("upgrade.version3to4.msg");
} }

View File

@@ -40,8 +40,13 @@ class UpgradeVersion4to5 extends UpgradeStrategy {
} }
@Override @Override
public String getNotification(Vault vault) { public String getTitle(Vault vault) {
return localization.getString("upgrade.version3to4.msg"); return localization.getString("upgrade.version4to5.title");
}
@Override
public String getMessage(Vault vault) {
return localization.getString("upgrade.version4to5.msg");
} }
@Override @Override
@@ -66,7 +71,7 @@ class UpgradeVersion4to5 extends UpgradeStrategy {
}); });
} catch (IOException e) { } catch (IOException e) {
LOG.error("Migration failed.", e); LOG.error("Migration failed.", e);
throw new UpgradeFailedException(localization.getString("upgrade.version3to4.err.io")); throw new UpgradeFailedException(localization.getString("upgrade.version4to5.err.io"));
} }
LOG.info("Migration finished."); LOG.info("Migration finished.");
} }

View File

@@ -31,22 +31,24 @@
</columnConstraints> </columnConstraints>
<children> <children>
<Label fx:id="upgradeLabel" wrapText="true" GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" /> <Label fx:id="upgradeTitleLabel" wrapText="true" GridPane.rowIndex="0" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" />
<Label fx:id="upgradeMsgLabel" wrapText="true" GridPane.rowIndex="1" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" />
<Pane prefHeight="12.0" GridPane.rowIndex="1" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true"> <Pane prefHeight="12.0" GridPane.rowIndex="2" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true">
</Pane> </Pane>
<Label text="%unlock.label.password" GridPane.rowIndex="2" GridPane.columnIndex="0" cacheShape="true" cache="true" /> <Label text="%unlock.label.password" GridPane.rowIndex="3" GridPane.columnIndex="0" cacheShape="true" cache="true" />
<SecPasswordField fx:id="passwordField" GridPane.rowIndex="2" GridPane.columnIndex="1" cacheShape="true" cache="true" /> <SecPasswordField fx:id="passwordField" GridPane.rowIndex="3" GridPane.columnIndex="1" cacheShape="true" cache="true" />
<CheckBox fx:id="confirmationCheckbox" text="%upgrade.confirmation.label" wrapText="true" GridPane.rowIndex="3" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" /> <CheckBox fx:id="confirmationCheckbox" text="%upgrade.confirmation.label" wrapText="true" GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" />
<HBox alignment="CENTER_RIGHT" GridPane.hgrow="ALWAYS" GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true"> <HBox alignment="CENTER_RIGHT" GridPane.hgrow="ALWAYS" GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true">
<Button fx:id="upgradeButton" text="%upgrade.button" prefWidth="150.0" onAction="#didClickUpgradeButton" cacheShape="true" cache="true" /> <Button fx:id="upgradeButton" text="%upgrade.button" prefWidth="150.0" onAction="#didClickUpgradeButton" cacheShape="true" cache="true" />
</HBox> </HBox>
<ProgressIndicator progress="-1" fx:id="progressIndicator" visible="false" GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" cacheHint="SPEED" /> <ProgressIndicator progress="-1" fx:id="progressIndicator" visible="false" GridPane.rowIndex="6" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" cacheHint="SPEED" />
<Label fx:id="errorLabel" wrapText="true" GridPane.rowIndex="6" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" /> <Label fx:id="errorLabel" wrapText="true" GridPane.rowIndex="7" GridPane.columnIndex="0" GridPane.columnSpan="2" cacheShape="true" cache="true" />
</children> </children>
</GridPane> </GridPane>

View File

@@ -92,4 +92,9 @@ unlocked.label.mountFailed = Verbinden des Laufwerks fehlgeschlagen
unlock.savePassword.delete.confirmation.title = Gespeichertes Passwort löschen unlock.savePassword.delete.confirmation.title = Gespeichertes Passwort löschen
unlock.savePassword.delete.confirmation.header = Möchten Sie das gespeicherte Passwort von diesem Tresor wirklich löschen? unlock.savePassword.delete.confirmation.header = Möchten Sie das gespeicherte Passwort von diesem Tresor wirklich löschen?
unlock.savePassword.delete.confirmation.content = Das gespeicherte Passwort von diesem Tresor wird sofort aus Ihrem System-Schlüsselbund gelöscht. Falls Sie das Passwort erneut speichern möchten, müssen Sie den Tresor entsperren und dabei die "Passwort speichern"-Option aktiviert haben. unlock.savePassword.delete.confirmation.content = Das gespeicherte Passwort von diesem Tresor wird sofort aus Ihrem System-Schlüsselbund gelöscht. Falls Sie das Passwort erneut speichern möchten, müssen Sie den Tresor entsperren und dabei die "Passwort speichern"-Option aktiviert haben.
settings.debugMode.label = Debug-Modus * settings.debugMode.label = Debug-Modus *
upgrade.version3dropBundleExtension.title = Upgrade Tresor-Version 3 (Entfall der Bundle-Extension)
upgrade.version3to4.title = Upgrade Tresor-Version 3 zu 4
upgrade.version4to5.title = Upgrade Tresor-Version 4 zu 5
upgrade.version4to5.msg = Dieser Tresor muss auf ein neueres Format aktualisiert werden.\nVerschlüsselte Dateien werden dabei aktualisiert.\nStellen Sie bitte sicher, dass derzeit keine Synchronisation stattfindet.\n\nHinweis\: Beim Upgrade wird das Änderungsdatum aller Dateien auf das aktuelle Datum geändert.
upgrade.version4to5.err.io = Migration aufgrund eines I/O-Fehlers fehlgeschlagen.\nWeitere Informationen in der Log-Datei.

View File

@@ -9,10 +9,10 @@ app.name=Cryptomator
# main.fxml # main.fxml
main.emptyListInstructions=Click here to add a vault main.emptyListInstructions=Click here to add a vault
main.directoryList.contextMenu.remove=Remove from list main.directoryList.contextMenu.remove=Remove from List
main.directoryList.contextMenu.changePassword=Change password main.directoryList.contextMenu.changePassword=Change Password
main.addDirectory.contextMenu.new=Create new vault main.addDirectory.contextMenu.new=Create New Vault
main.addDirectory.contextMenu.open=Open existing vault main.addDirectory.contextMenu.open=Open Existing Vault
main.directoryList.remove.confirmation.title=Remove Vault main.directoryList.remove.confirmation.title=Remove Vault
main.directoryList.remove.confirmation.header=Do you really want to remove this vault? main.directoryList.remove.confirmation.header=Do you really want to remove this vault?
main.directoryList.remove.confirmation.content=The vault will only be removed from the list. To permanently delete it, please delete the files from your filesystem. main.directoryList.remove.confirmation.content=The vault will only be removed from the list. To permanently delete it, please delete the files from your filesystem.
@@ -23,8 +23,8 @@ welcome.newVersionMessage=Version %1$s can be downloaded.\nThis is %2$s.
# initialize.fxml # initialize.fxml
initialize.label.password=Password initialize.label.password=Password
initialize.label.retypePassword=Retype password initialize.label.retypePassword=Retype Password
initialize.button.ok=Create vault initialize.button.ok=Create Vault
initialize.messageLabel.alreadyInitialized=Vault already initialized initialize.messageLabel.alreadyInitialized=Vault already initialized
initialize.messageLabel.notEmpty=Vault not empty initialize.messageLabel.notEmpty=Vault not empty
initialize.messageLabel.initializationFailed=Could not initialize vault. See log file for details. initialize.messageLabel.initializationFailed=Could not initialize vault. See log file for details.
@@ -40,24 +40,30 @@ notfound.label=Vault couldn't be found. Has it been moved?
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label=Yes, I've made sure that synchronization has finished upgrade.confirmation.label=Yes, I've made sure that synchronization has finished
upgrade.button=Upgrade vault upgrade.button=Upgrade Vault
upgrade.version3dropBundleExtension.title=Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3dropBundleExtension.msg=This vault needs to be migrated to a newer format.\n"%1$s" will be renamed to "%2$s".\nPlease make sure synchronization has finished before proceeding. upgrade.version3dropBundleExtension.msg=This vault needs to be migrated to a newer format.\n"%1$s" will be renamed to "%2$s".\nPlease make sure synchronization has finished before proceeding.
upgrade.version3dropBundleExtension.err.alreadyExists=Automatic migration failed.\n"%s" already exists. upgrade.version3dropBundleExtension.err.alreadyExists=Automatic migration failed.\n"%s" already exists.
upgrade.version3to4.title=Vault Version 3 to 4 Upgrade
upgrade.version3to4.msg=This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding. upgrade.version3to4.msg=This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding.
upgrade.version3to4.err.io=Migration failed due to an I/O Exception. See log file for details. upgrade.version3to4.err.io=Migration failed due to an I/O Exception. See log file for details.
upgrade.version4to5.title=Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg=This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io=Migration failed due to an I/O Exception. See log file for details.
# unlock.fxml # unlock.fxml
unlock.label.password=Password unlock.label.password=Password
unlock.label.savePassword=Save password unlock.label.savePassword=Save Password
unlock.label.mountName=Drive name unlock.label.mountName=Drive Name
unlock.label.winDriveLetter=Drive letter unlock.label.winDriveLetter=Drive Letter
unlock.label.downloadsPageLink=All Cryptomator versions unlock.label.downloadsPageLink=All Cryptomator versions
unlock.label.advancedHeading=Advanced options unlock.label.advancedHeading=Advanced Options
unlock.button.unlock=Unlock vault unlock.button.unlock=Unlock Vault
unlock.button.advancedOptions.show=More options unlock.button.advancedOptions.show=More Options
unlock.button.advancedOptions.hide=Less options unlock.button.advancedOptions.hide=Less Options
unlock.savePassword.delete.confirmation.title=Delete Saved Password unlock.savePassword.delete.confirmation.title=Delete Saved Password
unlock.savePassword.delete.confirmation.header=Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header=Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content=The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content=The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
@@ -70,17 +76,17 @@ unlock.errorMessage.unauthenticVersionMac=Could not authenticate version MAC.
unlock.messageLabel.startServerFailed=Starting WebDAV server failed. unlock.messageLabel.startServerFailed=Starting WebDAV server failed.
# change_password.fxml # change_password.fxml
changePassword.label.oldPassword=Old password changePassword.label.oldPassword=Old Password
changePassword.label.newPassword=New password changePassword.label.newPassword=New Nassword
changePassword.label.retypePassword=Retype password changePassword.label.retypePassword=Retype Password
changePassword.label.downloadsPageLink=All Cryptomator versions changePassword.label.downloadsPageLink=All Cryptomator versions
changePassword.button.change=Change password changePassword.button.change=Change Password
changePassword.errorMessage.wrongPassword=Wrong password changePassword.errorMessage.wrongPassword=Wrong password
changePassword.errorMessage.decryptionFailed=Decryption failed changePassword.errorMessage.decryptionFailed=Decryption failed
# unlocked.fxml # unlocked.fxml
unlocked.button.lock=Lock vault unlocked.button.lock=Lock Vault
unlocked.moreOptions.reveal=Reveal drive unlocked.moreOptions.reveal=Reveal Drive
unlocked.moreOptions.copyUrl=Copy WebDAV URL unlocked.moreOptions.copyUrl=Copy WebDAV URL
unlocked.label.mountFailed=Connecting drive failed unlocked.label.mountFailed=Connecting drive failed
unlocked.label.revealFailed=Command failed unlocked.label.revealFailed=Command failed
@@ -92,22 +98,22 @@ unlocked.ioGraph.yAxis.label=Throughput (MiB/s)
# mac_warnings.fxml # mac_warnings.fxml
macWarnings.windowTitle=Danger - Corrupted file in %s macWarnings.windowTitle=Danger - Corrupted file in %s
macWarnings.message=Cryptomator detected potentially malicious corruptions in the following files: macWarnings.message=Cryptomator detected potentially malicious corruptions in the following files:
macWarnings.moreInformationButton=Learn more macWarnings.moreInformationButton=Learn More
macWarnings.whitelistButton=Decrypt selected anyway macWarnings.whitelistButton=Decrypt Selected Anyway
# settings.fxml # settings.fxml
settings.version.label=Version %s settings.version.label=Version %s
settings.checkForUpdates.label=Check for updates settings.checkForUpdates.label=Check for Updates
settings.port.label=WebDAV Port * settings.port.label=WebDAV Port *
settings.port.prompt=0 = Choose automatically settings.port.prompt=0 = Choose automatically
settings.useipv6.label=Use IPv6 literal settings.useipv6.label=Use IPv6 Literal
settings.prefGvfsScheme.label=WebDAV scheme settings.prefGvfsScheme.label=WebDAV Scheme
settings.debugMode.label=Debug mode * settings.debugMode.label=Debug Mode *
settings.requiresRestartLabel=* Cryptomator needs to restart settings.requiresRestartLabel=* Cryptomator needs to restart
# tray icon # tray icon
tray.menu.open=Open tray.menu.open=Open
tray.menu.quit=Quit tray.menu.quit=Quit
tray.infoMsg.title=Still running tray.infoMsg.title=Still Running
tray.infoMsg.msg=Cryptomator is still alive. Quit it from the tray icon. tray.infoMsg.msg=Cryptomator is still alive. Quit it from the tray icon.
tray.infoMsg.msg.osx=Cryptomator is still alive. Quit it from the menu bar icon. tray.infoMsg.msg.osx=Cryptomator is still alive. Quit it from the menu bar icon.

View File

@@ -94,4 +94,9 @@ unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -91,7 +91,12 @@ initialize.messageLabel.notEmpty = Le coffre n'est pas vide
unlock.label.savePassword = Se souvenir du mot de passe unlock.label.savePassword = Se souvenir du mot de passe
unlock.errorMessage.unauthenticVersionMac = Impossible d'authentifier la version MAC unlock.errorMessage.unauthenticVersionMac = Impossible d'authentifier la version MAC
unlocked.label.mountFailed = Echec de connexion au lecteur unlocked.label.mountFailed = Echec de connexion au lecteur
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = supprimer le mot de passe sauvegardé
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = voulez vous vraiment supprimer le mot de pase sauvegardé de ce compte ?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = Le mot de passe de ce coffre sera supprimé immédiatement du trousseau.Si vous voulez le sauvegarder à nouveau, vous devrez cocher la case "retenir le mot de passe" lors du déverrouillage du coffre.
settings.debugMode.label = Debug mode * settings.debugMode.label = mode debuggage*
upgrade.version3dropBundleExtension.title = mise à jour vers la version 3 du coffre (extension "drop bundle")
upgrade.version3to4.title = metre à jour le coffre de la version 3 à la version 4
upgrade.version4to5.title = metre à jour le coffre de la version 4 à la version 5
upgrade.version4to5.msg = ce coffre doit être mis à jour vers un format plus récent.\nles fichiés chiffrés seront mis à jour.\nVeuillez vérifier que la synchronisation est terminée avant de commencer.\n\nNote \: la date de modification des fichiers sera mise à jour avec la date courante.
upgrade.version4to5.err.io = Migration échouée due à une erreur de lecture. Lisez les logs pour plus de détails.

View File

@@ -83,12 +83,17 @@ upgrade.version3to4.msg = Ennek a széfnek egy újabb formátumra való migráci
upgrade.version3to4.err.io = Migráció meghíusúlt egy I/O kivétel miatt. Kérlek nézd meg a naplófájlt a további részletekért. upgrade.version3to4.err.io = Migráció meghíusúlt egy I/O kivétel miatt. Kérlek nézd meg a naplófájlt a további részletekért.
settings.prefGvfsScheme.label = WebDAV séma settings.prefGvfsScheme.label = WebDAV séma
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished upgrade.confirmation.label = Igen, meggyőződtem a szinkronizáció befejeztéről
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = A széf nem üres
unlock.label.savePassword = Save password unlock.label.savePassword = Jelszó mentése
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Meghajtó csatlakoztatása sikertelen
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Mentett jelszó törlése
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Biztosan el akarod távolítani a széfhez tartozó mentett jelszót?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = A széf mentett jelszava rögtön törlése kerül. Ha újra el szeretnéd menteni a jelszavad, a széfet a "Jelszó mentése" opció engedélyezése mellett kell feloldani.
settings.debugMode.label = Debug mode * settings.debugMode.label = Hibakeresési mód *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Széf verziófrissítése 3-ról 4-re
upgrade.version4to5.title = Széf verziófrissítése 4-ről 5-re
upgrade.version4to5.msg = Ennek a széfnek egy újabb formátumra való migrációja szükséges. A titkosított könyvtárnevek frissítve lesznek. Kérlek, győződj meg a szinkronizáció befejeztéről mielőtt továbblépnél.\n\nMegjegyzés\: A összes fájl módosításának dátuma az aktuális időre fog módosulni
upgrade.version4to5.err.io = Migráció meghíusúlt egy I/O kivétel miatt. Kérlek nézd meg a naplófájlt a további részletekért.

View File

@@ -81,14 +81,19 @@ main.directoryList.remove.confirmation.header = Vuoi davvero rimuovere questo va
main.directoryList.remove.confirmation.content = Il vault sarà rimosso solo dalla lista. Per eliminarlo definitivamente, elimina per favore i file dal tuo hard disk. main.directoryList.remove.confirmation.content = Il vault sarà rimosso solo dalla lista. Per eliminarlo definitivamente, elimina per favore i file dal tuo hard disk.
upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding. upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding.
upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details. upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details.
settings.prefGvfsScheme.label = WebDAV scheme settings.prefGvfsScheme.label = WebDAV Scheme
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished upgrade.confirmation.label = Yes, I've made sure that synchronization has finished
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = Vault not empty
unlock.label.savePassword = Save password unlock.label.savePassword = Save Password
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -0,0 +1,99 @@
app.name = Cryptomator
# main.fxml
main.emptyListInstructions = ここをクリックして金庫を追加する
main.directoryList.contextMenu.remove = リストから削除する
main.directoryList.contextMenu.changePassword = パスワード変更
main.addDirectory.contextMenu.new = 新しい金庫を作成する
main.addDirectory.contextMenu.open = 既存の金庫を開く
# welcome.fxml
welcome.checkForUpdates.label.currentlyChecking = アップデートを確認中...
welcome.newVersionMessage = バージョン%1$sがダウンロードできます。\n現在のバージョンは%2$sです。
# initialize.fxml
initialize.label.password = パスワード
initialize.label.retypePassword = パスワード再入力
initialize.button.ok = 金庫を作成
initialize.messageLabel.alreadyInitialized = 金庫がすでに初期化されています。
initialize.messageLabel.initializationFailed = 金庫の初期化ができませんでした。詳細はログファイルをご覧ください。
# notfound.fxml
notfound.label = 金庫が見つかりませんでした。動かされたのですか?
# upgrade.fxml
upgrade.button = 金庫をアップグレードする
upgrade.version3dropBundleExtension.msg = この金庫を新しい形式に移行する必要があります。\n"%1$s"は"%2$s"に変更されます。\n続行する前に同期が完了していることをご確認ください。
upgrade.version3dropBundleExtension.err.alreadyExists = 自動移行が失敗しました。\n"%s"はすでに存在します。
# unlock.fxml
unlock.label.password = パスワード
unlock.label.mountName = ドライブ名
unlock.label.winDriveLetter = ドライブ文字
unlock.label.downloadsPageLink = 全てのCryptomatorバージョン
unlock.label.advancedHeading = 詳細オプション
unlock.button.unlock = 金庫を解除する
unlock.button.advancedOptions.show = その他のオプション
unlock.button.advancedOptions.hide = 基本オプション
unlock.choicebox.winDriveLetter.auto = 自動に割り当てる
unlock.errorMessage.wrongPassword = 間違ったパスワード
unlock.errorMessage.mountingFailed = 取り付けに失敗しました。詳細はログファイルをご覧ください。
unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = サポートされていない金庫です。この金庫は古いバージョンのCryptomatorから作成されました。
unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = サポートされていない金庫です。この金庫は新しいバージョンのCryptomatorから作成されました。
unlock.messageLabel.startServerFailed = WebDAVサーバーの起動失敗
# change_password.fxml
changePassword.label.oldPassword = 古いパスワード
changePassword.label.newPassword = 新しいパスワード
changePassword.label.retypePassword = 二回目のパスワード(確認用)
changePassword.label.downloadsPageLink = 全てのCryptomatorのバージョン
changePassword.button.change = パスワードの変更
changePassword.errorMessage.wrongPassword = 違うパスワード
changePassword.errorMessage.decryptionFailed = 解読不可
# unlocked.fxml
unlocked.button.lock = 金庫の施錠
unlocked.moreOptions.reveal = 金庫ドライブの表示
unlocked.moreOptions.copyUrl = WebDAVのURLのコピー
unlocked.label.revealFailed = 入力エラー
unlocked.label.unmountFailed = 外部出力の排出エラー
unlocked.label.statsEncrypted = 暗号化
unlocked.label.statsDecrypted = 解読
unlocked.ioGraph.yAxis.label = 情報処理量
# mac_warnings.fxml
macWarnings.windowTitle = 危険-有害でフォルダの%s
macWarnings.message = Cryptomatorは、以下のファイルで潜在的に悪意のある改悪されたものを見つけました
macWarnings.moreInformationButton = より習得する
macWarnings.whitelistButton = フォルダを選択、解読してください
# settings.fxml
settings.version.label = バージョンの%s
settings.checkForUpdates.label = 最新版のチェック
settings.port.label = WebDAVの移動
settings.port.prompt = 0自動的に選択します
settings.useipv6.label = IPv6をそのまま使用してください
settings.requiresRestartLabel = Cryptomatorの再起動が必要です
# tray icon
tray.menu.open = 開く
tray.menu.quit = 閉じる
tray.infoMsg.title = バックグラウンドで稼働中
tray.infoMsg.msg = Cryptomatorはまだ稼働しています。終了はトレイアイコンからしてください。
tray.infoMsg.msg.osx = Cryptomatorはまだ稼働しています。終了はメヌーバーアイコンからしてください。
initialize.messageLabel.passwordStrength.0 = 非常に弱い
initialize.messageLabel.passwordStrength.1 = 弱い
initialize.messageLabel.passwordStrength.2 = 普通
initialize.messageLabel.passwordStrength.3 = 強い
initialize.messageLabel.passwordStrength.4 = 非常に強い
initialize.label.doNotForget = 重要:パスワードを忘れましたら、あなたのデータは復旧できません。
main.directoryList.remove.confirmation.title = 金庫の削除
main.directoryList.remove.confirmation.header = 本当にこの金庫を取り除きたいですか?
main.directoryList.remove.confirmation.content = 金庫はリストのみで削除されます。永久に削除するなら、ファイルシステムからファイルを削除してください。
upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding.
upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details.
settings.prefGvfsScheme.label = WebDAV Scheme
# upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished
initialize.messageLabel.notEmpty = Vault not empty
unlock.label.savePassword = Save Password
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -15,7 +15,7 @@ initialize.button.ok = 보관함 만들기
initialize.messageLabel.alreadyInitialized = 이미 보관함이 초기화되었습니다. initialize.messageLabel.alreadyInitialized = 이미 보관함이 초기화되었습니다.
initialize.messageLabel.initializationFailed = 보관함을 초기화할 수 없습니다. 자세한 사항은 로그 파일을 참조하세요. initialize.messageLabel.initializationFailed = 보관함을 초기화할 수 없습니다. 자세한 사항은 로그 파일을 참조하세요.
# notfound.fxml # notfound.fxml
notfound.label = 보관함을 찾을 수 없습니다. 옮겨진 것은 아닌가요? notfound.label = 보관함을 찾을 수 없습니다. 옮겨졌는지 확인해 주세요.
# upgrade.fxml # upgrade.fxml
upgrade.button = 보관함 업그레이드 upgrade.button = 보관함 업그레이드
upgrade.version3dropBundleExtension.msg = 이 보관함은 새로운 형식으로 다시 바뀔 필요가 있습니다. "%1$s"의 이름은 "%2$s"로 바뀔 것입니다. 진행하기 전에 동기화가 완료되었는지 다시 한 번 확인해주시기 바랍니다. upgrade.version3dropBundleExtension.msg = 이 보관함은 새로운 형식으로 다시 바뀔 필요가 있습니다. "%1$s"의 이름은 "%2$s"로 바뀔 것입니다. 진행하기 전에 동기화가 완료되었는지 다시 한 번 확인해주시기 바랍니다.
@@ -86,9 +86,14 @@ settings.prefGvfsScheme.label = WebDAV sceme
upgrade.confirmation.label = 네. 동기화가 완료되었음을 확인하였습니다. upgrade.confirmation.label = 네. 동기화가 완료되었음을 확인하였습니다.
initialize.messageLabel.notEmpty = 보관함이 비어있지 않음 initialize.messageLabel.notEmpty = 보관함이 비어있지 않음
unlock.label.savePassword = 비밀번호 저장 unlock.label.savePassword = 비밀번호 저장
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = 인증할 수 없는 버전의 맥입니다
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = 드라이브 연결 실패
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = 저장된 비밀번호 삭제
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = 정말로 이 보관함의 저장된 비밀번호를 지우시겠습니까?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = 이 보관함의 저장된 비밀번호는 당신의 시스템 키체인에서 즉시 삭제될 것입니다. 다시 비밀번호를 저장하고 싶으시다면, 보관함을 열 때 "비밀번호 저장" 옵션을 활성화해야 합니다
settings.debugMode.label = Debug mode * settings.debugMode.label = 디버그 모드
upgrade.version3dropBundleExtension.title = 버전 3 보관함 업그레이드 (Drop Bundle Extension)
upgrade.version3to4.title = 보관함 버전 3에서 4로 업그레이드
upgrade.version4to5.title = 보관함 버전 4에서 5로 업그레이드
upgrade.version4to5.msg = 이 보관함은 새로운 포맷으로 이전되어야 합니다.\n암호화된 파일들은 업데이트 될 것입니다.\n진행하기 전에 동기화가 완료되었는지 확인해주세요.\n\n참고\: 모든 파일의 수정 날짜는 과정 진행 중에 현재 날짜/시간으로 바뀔 것입니다.
upgrade.version4to5.err.io = I/O 예외에 의해 마이그레이션 실패. 자세한 사항은 로그 파일을 참조하세요.

View File

@@ -86,10 +86,15 @@ settings.prefGvfsScheme.label = WebDAV shēma
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Jā, esmu pārliecinājies, ka sinhronizācija ir pabeigta. upgrade.confirmation.label = Jā, esmu pārliecinājies, ka sinhronizācija ir pabeigta.
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = Vault not empty
unlock.label.savePassword = Save password unlock.label.savePassword = Save Password
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -2,22 +2,24 @@ app.name = Cryptomator
# main.fxml # main.fxml
main.emptyListInstructions = Klik hier om een kluis toe te voegen main.emptyListInstructions = Klik hier om een kluis toe te voegen
main.directoryList.contextMenu.remove = Verwijder van lijst main.directoryList.contextMenu.remove = Verwijder van lijst
main.directoryList.contextMenu.changePassword = Verander wachtwoord # The current Dutch translation of this string (and other, similar contexts) is not in accordance with Windows convention, which is to translate options like this with infinitivies and not imperatives, so "Wachtwoord wijzigen," not "Wijzig wachtwoord." MacOS uses imperatives in Dutch, not Windows.
main.addDirectory.contextMenu.new = Creëer nieuwe kluis main.directoryList.contextMenu.changePassword = Verander Wachtwoord
main.addDirectory.contextMenu.open = Open bestaande kluis main.addDirectory.contextMenu.new = Maak Nieuwe Kluis
main.addDirectory.contextMenu.open = Open Bestaande Kluis
# welcome.fxml # welcome.fxml
welcome.checkForUpdates.label.currentlyChecking = Controleren op updates... welcome.checkForUpdates.label.currentlyChecking = Controleren op updates...
welcome.newVersionMessage = Versie %1$s kan worden gedownload.\nDit is %2$s. welcome.newVersionMessage = Versie %1$s kan worden gedownload.\nDit is %2$s.
# initialize.fxml # initialize.fxml
initialize.label.password = Wachtwoord initialize.label.password = Wachtwoord
initialize.label.retypePassword = Voer wachtwoord opnieuw in initialize.label.retypePassword = Voer wachtwoord opnieuw in
# This is not in accordance with Dutch conventions. Not only does it use an imperative, but 'create' is generally translated as 'maken' or 'aanmaken', not 'creëren'. So "Kluis maken."
initialize.button.ok = Creëer kluis initialize.button.ok = Creëer kluis
initialize.messageLabel.alreadyInitialized = Kluis reeds geïnitialiseerd initialize.messageLabel.alreadyInitialized = Kluis reeds geïnitialiseerd
initialize.messageLabel.initializationFailed = Kon kluis niet initialiseren. Zie logbestand voor details. initialize.messageLabel.initializationFailed = Kon kluis niet initialiseren. Zie logbestand voor details.
# notfound.fxml # notfound.fxml
notfound.label = Kluis kon niet gevonden worden. Is de kluis wellicht verplaatst? notfound.label = Kluis kon niet gevonden worden. Is hij verplaatst?
# upgrade.fxml # upgrade.fxml
upgrade.button = Upgrade kluis upgrade.button = Upgrade Kluis
upgrade.version3dropBundleExtension.msg = Deze kluis dient te worden gemigreerd naar een nieuwer type.\n"%1$s" zal worden hernoemd naar "%2$s".\nZorg ervoor dat de synchronisatie voltooid is alvorens door te gaan. upgrade.version3dropBundleExtension.msg = Deze kluis dient te worden gemigreerd naar een nieuwer type.\n"%1$s" zal worden hernoemd naar "%2$s".\nZorg ervoor dat de synchronisatie voltooid is alvorens door te gaan.
upgrade.version3dropBundleExtension.err.alreadyExists = Automatische migratie mislukt.\n"%s" bestaat al. upgrade.version3dropBundleExtension.err.alreadyExists = Automatische migratie mislukt.\n"%s" bestaat al.
# unlock.fxml # unlock.fxml
@@ -25,22 +27,22 @@ unlock.label.password = Wachtwoord
unlock.label.mountName = Schijfnaam unlock.label.mountName = Schijfnaam
unlock.label.winDriveLetter = Schijfletter unlock.label.winDriveLetter = Schijfletter
unlock.label.downloadsPageLink = Alle Cryptomator versies unlock.label.downloadsPageLink = Alle Cryptomator versies
unlock.label.advancedHeading = Geavanceerde opties unlock.label.advancedHeading = Geavanceerde Opties
unlock.button.unlock = Ontgrendel kluis unlock.button.unlock = Ontgrendel Kluis
unlock.button.advancedOptions.show = Meer opties unlock.button.advancedOptions.show = Meer Opties
unlock.button.advancedOptions.hide = Minder opties unlock.button.advancedOptions.hide = Minder Opties
unlock.choicebox.winDriveLetter.auto = Automatisch toekennen unlock.choicebox.winDriveLetter.auto = Automatisch toekennen
unlock.errorMessage.wrongPassword = Verkeerd wachtwoord unlock.errorMessage.wrongPassword = Verkeerd wachtwoord
unlock.errorMessage.mountingFailed = Mounten mislukt. Zie logbestand voor details. unlock.errorMessage.mountingFailed = Mounten mislukt. Zie logbestand voor details.
unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Kluis ontoegankelijk. Deze kluis is gecreëerd met een oudere versie van Cryptomator. unlock.errorMessage.unsupportedVersion.vaultOlderThanSoftware = Niet ondersteunde kluis. Deze kluis is gemaakt met een nieuwere versie van Cryptomator.
unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Kluis ontoegankelijk. Deze kluis is gecreëerd met een nieuwere versie van Cryptomator. unlock.errorMessage.unsupportedVersion.softwareOlderThanVault = Niet ondersteunde kluis. Deze kluis is gemaakt met een nieuwere versie van Cryptomator.
unlock.messageLabel.startServerFailed = WebDAV server starten mislukt. unlock.messageLabel.startServerFailed = WebDAV server starten mislukt.
# change_password.fxml # change_password.fxml
changePassword.label.oldPassword = Huidig wachtwoord changePassword.label.oldPassword = Huidig Wachtwoord
changePassword.label.newPassword = Nieuw wachtwoord changePassword.label.newPassword = Nieuw Wachtwoord
changePassword.label.retypePassword = Herhaal wachtwoord changePassword.label.retypePassword = Herhaal Wachtwoord
changePassword.label.downloadsPageLink = Alle Cryptomator versies changePassword.label.downloadsPageLink = Alle Cryptomator versies
changePassword.button.change = Verander wachtwoord changePassword.button.change = Verander Wachtwoord
changePassword.errorMessage.wrongPassword = Alle Cryptomator versies changePassword.errorMessage.wrongPassword = Alle Cryptomator versies
changePassword.errorMessage.decryptionFailed = Decoderen mislukt changePassword.errorMessage.decryptionFailed = Decoderen mislukt
# unlocked.fxml # unlocked.fxml
@@ -56,7 +58,7 @@ unlocked.ioGraph.yAxis.label = Doorvoer (MiB/s)
macWarnings.windowTitle = Pas op - Corrupt bestand in %s macWarnings.windowTitle = Pas op - Corrupt bestand in %s
macWarnings.message = Cryptomator heeft mogelijk kwaadwillende corrupte items aangetroffen in de volgende bestanden\: macWarnings.message = Cryptomator heeft mogelijk kwaadwillende corrupte items aangetroffen in de volgende bestanden\:
macWarnings.moreInformationButton = Leer meer macWarnings.moreInformationButton = Leer meer
macWarnings.whitelistButton = Desondanks selectie decoderen macWarnings.whitelistButton = Geselecteerde toch Decoderen
# settings.fxml # settings.fxml
settings.version.label = Versie %s settings.version.label = Versie %s
settings.checkForUpdates.label = Controleer op updates settings.checkForUpdates.label = Controleer op updates
@@ -67,9 +69,9 @@ settings.requiresRestartLabel = * Cryptomator dient te worden herstart
# tray icon # tray icon
tray.menu.open = Open tray.menu.open = Open
tray.menu.quit = Afsluiten tray.menu.quit = Afsluiten
tray.infoMsg.title = Nog steeds actief tray.infoMsg.title = Nog Steeds Actief
tray.infoMsg.msg = Cryptomator is nog steeds actief. Sluit het af via het icon in het systeemvak. tray.infoMsg.msg = Cryptomator is nog steeds actief. Sluit af via het icoon in het systeemvak.
tray.infoMsg.msg.osx = Cryptomator is nog steeds actief. Sluit het af via het icon op de menubalk. tray.infoMsg.msg.osx = Cryptomator is nog steeds actief. Sluit af via het icoon op de menubalk.
initialize.messageLabel.passwordStrength.0 = Zeer zwak initialize.messageLabel.passwordStrength.0 = Zeer zwak
initialize.messageLabel.passwordStrength.1 = Zwak initialize.messageLabel.passwordStrength.1 = Zwak
initialize.messageLabel.passwordStrength.2 = Redelijk initialize.messageLabel.passwordStrength.2 = Redelijk
@@ -85,10 +87,15 @@ settings.prefGvfsScheme.label = WebDAV schema
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Ja, ik heb geverifieerd dat de synchronisatie voltooid is upgrade.confirmation.label = Ja, ik heb geverifieerd dat de synchronisatie voltooid is
initialize.messageLabel.notEmpty = Kluis niet leeg initialize.messageLabel.notEmpty = Kluis niet leeg
unlock.label.savePassword = Wachtwoord bewaren unlock.label.savePassword = Wachtwoord Opslaan
unlock.errorMessage.unauthenticVersionMac = MAC authenticatie mislukt unlock.errorMessage.unauthenticVersionMac = MAC authenticatie mislukt
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Verbinden van schijf mislukt
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Verwijder Opgeslagen Wachtwoord
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Ben je zeker dat je het opgeslagen wachtwoord van deze kluis wilt verwijderen?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = Het opgeslagen wachtwoord van deze kluis zal onmiddellijk verwijderd worden van je systeem sleutelhanger. Als je opnieuw je wachtwoord wilt opslaan, zal je je kluis moeten ontgrendelen met de optie "Sla wachtwoord op" aan.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Kluis Versie 3 Upgrade (Drop Bundel Extensie)
upgrade.version3to4.title = Kluis Versie 3 naar 4 Upgrade
upgrade.version4to5.title = Kluis Versie 4 naar 5 Upgrade
upgrade.version4to5.msg = Deze kluis moet gemigreerd worden naar een nieuw formaat.\nVersleutelde bestanden zullen bijgewerkt worden.\nZorg ervoor dat synchronisatie voltooid is alvorens verder te gaan.\n\nLet op\: Tijdens dit proces zal de wijzigingsdatum van alle bestanden gewijzigd worden naar de huidige datum/tijd.
upgrade.version4to5.err.io = Migratie mislukt door een I/O Exception. Bekijk log file voor details.

View File

@@ -91,4 +91,9 @@ unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -62,10 +62,8 @@ macWarnings.whitelistButton = Desencriptar selecionado de qualquer modo
# settings.fxml # settings.fxml
settings.version.label = Versão %s settings.version.label = Versão %s
settings.checkForUpdates.label = Verificar por atualizações settings.checkForUpdates.label = Verificar por atualizações
# Fuzzy
settings.port.label = Porta WebDAV * settings.port.label = Porta WebDAV *
settings.port.prompt = 0 \= Escolher automaticamente settings.port.prompt = 0 \= Escolher automaticamente
# Fuzzy
settings.useipv6.label = Usar IPv6 literal settings.useipv6.label = Usar IPv6 literal
settings.requiresRestartLabel = * Cryptomator precisa ser reiniciado settings.requiresRestartLabel = * Cryptomator precisa ser reiniciado
# tray icon # tray icon
@@ -83,18 +81,21 @@ initialize.label.doNotForget = IMPORTANTE\: se você esquecer a sua senha, não
main.directoryList.remove.confirmation.title = Remover cofre main.directoryList.remove.confirmation.title = Remover cofre
main.directoryList.remove.confirmation.header = Você realmente quer remover esse cofre? main.directoryList.remove.confirmation.header = Você realmente quer remover esse cofre?
main.directoryList.remove.confirmation.content = O cofre somente será removido da lista. Para apagá-lo permanentemente, por favor apagar os arquivos do seu sistema de arquivos. main.directoryList.remove.confirmation.content = O cofre somente será removido da lista. Para apagá-lo permanentemente, por favor apagar os arquivos do seu sistema de arquivos.
upgrade.version3to4.msg = Esse cofre tem que ser migrado a um novo formato. Os nomes das pastas encriptadas serão atualizados. Por favor assegure-se de que a sincronização foi finalizada antes de proceder com a migração. upgrade.version3to4.msg = Esse cofre tem que ser migrado a um novo formato. Os nomes das pastas encriptadas serão atualizados. Por favor, assegure-se de que a sincronização do cofre foi finalizada antes de proceder com a sua migração.
upgrade.version3to4.err.io = Falha na migração devido a um erro de E/S. Veja o arquivo de log para mais detalhes. upgrade.version3to4.err.io = Falha na migração devido a um erro de E/S. Veja o arquivo de log para mais detalhes.
# Fuzzy
settings.prefGvfsScheme.label = Esquema WebDAV settings.prefGvfsScheme.label = Esquema WebDAV
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Sim, tenho certeza de que a sincronização foi concluída upgrade.confirmation.label = Sim, tenho certeza de que a sincronização foi concluída
initialize.messageLabel.notEmpty = Cofre não vazio initialize.messageLabel.notEmpty = Cofre não vazio
unlock.label.savePassword = Salvar senha unlock.label.savePassword = Armazenar senha
# Fuzzy unlock.errorMessage.unauthenticVersionMac = Não foi possível autenticar a versão do MAC.
unlock.errorMessage.unauthenticVersionMac = Não foi possível autenticar a versão MAC unlocked.label.mountFailed = Falha ao conectar o drive
unlocked.label.mountFailed = Connecting drive failed unlock.savePassword.delete.confirmation.title = Apagar a senha armazenada
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.header = Você realmente quer apagar a senha armazenada deste cofre?
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.content = A senha deste cofre que se encontra armazenada será imediatamente apagada do gestor de senhas do seu sistema. Se você quiser armazenar a sua senha novamente, você terá que abrir o seu cofre com a opção "Armazenar Senha" habilitada.
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. settings.debugMode.label = Modo de Debug *
settings.debugMode.label = Debug mode * upgrade.version3dropBundleExtension.title = Atualização para a versão 3 do cofre (Drop Bundle Extension)
upgrade.version3to4.title = Atualização do cofre da versão 3 para 4
upgrade.version4to5.title = Atualização do cofre da versão 4 para 5
upgrade.version4to5.msg = Este cofre precisa ser migrado a um novo formato.\nOs arquivos encriptados serão atualizados.\nPor favor, assegure-se de que a sincronização do cofre foi finalizada antes de proceder com a sua migração.\n\nNota\: A data de modificação de todos os arquivos do cofre será alterada durante o processo para a data e hora corrente.
upgrade.version4to5.err.io = A migração falhou devido a uma exceção de I/O. Ver arquivo de log para mais detalhes.

View File

@@ -89,8 +89,13 @@ upgrade.confirmation.label = Да, синхронизация точно зав
initialize.messageLabel.notEmpty = Хранилище не пусто initialize.messageLabel.notEmpty = Хранилище не пусто
unlock.label.savePassword = Сохранить пароль unlock.label.savePassword = Сохранить пароль
unlock.errorMessage.unauthenticVersionMac = Не удалось идентифицировать версию MAC. unlock.errorMessage.unauthenticVersionMac = Не удалось идентифицировать версию MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Ошибка подключения к диску
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Удалить сохранённый пароль
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Вы действительно хотите удалить сохранённый пароль для этого хранилища?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = Сохранённый пароль от этого хранилища будет немедленно удалён из системной связки ключей. Если вы снова захотите сохранить пароль, вам придётся разблокировать хранилище с включённой опцией "Сохранить пароль".
settings.debugMode.label = Debug mode * settings.debugMode.label = Режим отладки *
upgrade.version3dropBundleExtension.title = Обновление хранилища версии 3 (Drop Bundle Extension)
upgrade.version3to4.title = Обновление хранилища с версии 3 на 4
upgrade.version4to5.title = Обновление хранилища с версии 4 на 5
upgrade.version4to5.msg = Это хранилище нужно преобразовать в более новый формат.\nЗашифрованные файлы будут обновлены.\nПрежде чем продолжить, убедитесь, что завершена синхронизация.\n\nПримечание\: даты изменения всех файлов будут изменены на текущие дату и время на момент обработки.
upgrade.version4to5.err.io = Преобразование не выполнено из-за исключения ввода-вывода. См. подробности в отчёте.

View File

@@ -73,25 +73,30 @@ tray.menu.quit = Vypnúť
tray.infoMsg.title = Stále beží tray.infoMsg.title = Stále beží
tray.infoMsg.msg = Cryptomator je stále spustený. Vypnite ho pomocou ikony v systémovej lište. tray.infoMsg.msg = Cryptomator je stále spustený. Vypnite ho pomocou ikony v systémovej lište.
tray.infoMsg.msg.osx = Cryptomator je stále sputený. Ukončite ho pomocou ikony v menu. tray.infoMsg.msg.osx = Cryptomator je stále sputený. Ukončite ho pomocou ikony v menu.
initialize.messageLabel.passwordStrength.0 = Very weak initialize.messageLabel.passwordStrength.0 = Veľmi slabé
initialize.messageLabel.passwordStrength.1 = Weak initialize.messageLabel.passwordStrength.1 = Slabé
initialize.messageLabel.passwordStrength.2 = Fair initialize.messageLabel.passwordStrength.2 = Dobré
initialize.messageLabel.passwordStrength.3 = Strong initialize.messageLabel.passwordStrength.3 = Silné
initialize.messageLabel.passwordStrength.4 = Very strong initialize.messageLabel.passwordStrength.4 = Veľmi silné
initialize.label.doNotForget = IMPORTANT\: If you forget your password, there is no way to recover your data. initialize.label.doNotForget = DÔLEŽITÉ\: Ak zabudnete heslo, nie je možné získať späť vaše dáta.
main.directoryList.remove.confirmation.title = Remove Vault main.directoryList.remove.confirmation.title = Odstrániť trezor
main.directoryList.remove.confirmation.header = Do you really want to remove this vault? main.directoryList.remove.confirmation.header = Skutočne chcete odstrániť tento trezor?
main.directoryList.remove.confirmation.content = The vault will only be removed from the list. To permanently delete it, please delete the files from your filesystem. main.directoryList.remove.confirmation.content = Trezor bude odstránení zo zoznamu. Pre úplné zmazanie vymažte súbor s trezorom.
upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding. upgrade.version3to4.msg = This vault needs to be migrated to a newer format.\nEncrypted folder names will be updated.\nPlease make sure synchronization has finished before proceeding.
upgrade.version3to4.err.io = Migration failed due to an I/O Exception. See log file for details. upgrade.version3to4.err.io = Migrácia zlyhala kvôli I/O Exception. Skontrolujte log pre viac detailov
settings.prefGvfsScheme.label = WebDAV scheme settings.prefGvfsScheme.label = WebDAV Schéma
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished upgrade.confirmation.label = Áno, som si istý že synchronizácia je hotová
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = Trezor nie je prázdny
unlock.label.savePassword = Save password unlock.label.savePassword = Uložiť heslo
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Zmazať uložené heslo
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Naozaj chcete zmazať uložené heslo pre tento trezor?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -81,14 +81,19 @@ main.directoryList.remove.confirmation.header = Kasayı silmek istediğinize emi
main.directoryList.remove.confirmation.content = Kasa yalnızca listeden silinecek. Tamamen silmek için dosya sisteminizden dosyaları elle siliniz. main.directoryList.remove.confirmation.content = Kasa yalnızca listeden silinecek. Tamamen silmek için dosya sisteminizden dosyaları elle siliniz.
upgrade.version3to4.msg = Bu kasanın yeni formata geçirilmesi gerekmekte. Şifreli klasör isimleri güncellenecek. Devam etmeden önce senkronizasyonun bittiğine emin olun. upgrade.version3to4.msg = Bu kasanın yeni formata geçirilmesi gerekmekte. Şifreli klasör isimleri güncellenecek. Devam etmeden önce senkronizasyonun bittiğine emin olun.
upgrade.version3to4.err.io = Format değiştirme işlemi I/O Hatası dolayısı ile başarısız oldu. Detaylar için log dosyasına bakın upgrade.version3to4.err.io = Format değiştirme işlemi I/O Hatası dolayısı ile başarısız oldu. Detaylar için log dosyasına bakın
settings.prefGvfsScheme.label = WebDAV scheme settings.prefGvfsScheme.label = WebDAV Scheme
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished upgrade.confirmation.label = Yes, I've made sure that synchronization has finished
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = Vault not empty
unlock.label.savePassword = Save password unlock.label.savePassword = Save Password
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -81,14 +81,19 @@ main.directoryList.remove.confirmation.header = Ви дійсно хочете
main.directoryList.remove.confirmation.content = Сховище буде видалене тільки зі списку. Щоб стерти його остаточно, видаліть файли із файлової системи. main.directoryList.remove.confirmation.content = Сховище буде видалене тільки зі списку. Щоб стерти його остаточно, видаліть файли із файлової системи.
upgrade.version3to4.msg = Це сховище необхідно перетворити в новий формат. Зашифровані імена папок будуть оновлені. Перш ніж продовжити, виконайте синхронізацію. upgrade.version3to4.msg = Це сховище необхідно перетворити в новий формат. Зашифровані імена папок будуть оновлені. Перш ніж продовжити, виконайте синхронізацію.
upgrade.version3to4.err.io = Перетворення невдале через помилку введення-виведення. Дивіться деталі в файлі-звіті. upgrade.version3to4.err.io = Перетворення невдале через помилку введення-виведення. Дивіться деталі в файлі-звіті.
settings.prefGvfsScheme.label = WebDAV scheme settings.prefGvfsScheme.label = WebDAV Scheme
# upgrade.fxml # upgrade.fxml
upgrade.confirmation.label = Yes, I've made sure that synchronization has finished upgrade.confirmation.label = Yes, I've made sure that synchronization has finished
initialize.messageLabel.notEmpty = Vault not empty initialize.messageLabel.notEmpty = Vault not empty
unlock.label.savePassword = Save password unlock.label.savePassword = Save Password
unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC. unlock.errorMessage.unauthenticVersionMac = Could not authenticate version MAC.
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -89,8 +89,13 @@ initialize.messageLabel.notEmpty = 保险柜非空
unlock.label.savePassword = 保存密码 unlock.label.savePassword = 保存密码
# This Mac means Mac(Apple) or Mac address? # This Mac means Mac(Apple) or Mac address?
unlock.errorMessage.unauthenticVersionMac = 无法验证消息验证代码的版本。 unlock.errorMessage.unauthenticVersionMac = 无法验证消息验证代码的版本。
unlocked.label.mountFailed = Connecting drive failed unlocked.label.mountFailed = 连接设备失败
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = 删除已保存的密码
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = 您真的要删除此密码库已保存的密码吗?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = 此密码库保存的密码将立即从系统钥匙串中删除。如果您想再次保存密码,则必须通过启用“保存密码”选项启用您的密码库。
settings.debugMode.label = Debug mode * settings.debugMode.label = 调试模式 *
upgrade.version3dropBundleExtension.title = 升级Vault版本3Drop Bundle Extension
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -91,4 +91,9 @@ unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -91,4 +91,9 @@ unlocked.label.mountFailed = Connecting drive failed
unlock.savePassword.delete.confirmation.title = Delete Saved Password unlock.savePassword.delete.confirmation.title = Delete Saved Password
unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault? unlock.savePassword.delete.confirmation.header = Do you really want to delete the saved password of this vault?
unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled. unlock.savePassword.delete.confirmation.content = The saved password of this vault will be immediately deleted from your system keychain. If you'd like to save your password again, you'd have to unlock your vault with the "Save password" option enabled.
settings.debugMode.label = Debug mode * settings.debugMode.label = Debug Mode *
upgrade.version3dropBundleExtension.title = Vault Version 3 Upgrade (Drop Bundle Extension)
upgrade.version3to4.title = Vault Version 3 to 4 Upgrade
upgrade.version4to5.title = Vault Version 4 to 5 Upgrade
upgrade.version4to5.msg = This vault needs to be migrated to a newer format.\nEncrypted files will be updated.\nPlease make sure synchronization has finished before proceeding.\n\nNote\: Modification date of all files will be changed to the current date/time in the process.
upgrade.version4to5.err.io = Migration failed due to an I/O Exception. See log file for details.

View File

@@ -31,8 +31,8 @@ public class LocalizationTest {
private static final Logger LOG = LoggerFactory.getLogger(LocalizationTest.class); private static final Logger LOG = LoggerFactory.getLogger(LocalizationTest.class);
private static final String RESOURCE_FOLDER_PATH = "/localization/"; private static final String RESOURCE_FOLDER_PATH = "/localization/";
private static final String REF_FILE_NAME = "en.txt"; private static final String REF_FILE_NAME = "en.txt";
private static final String[] LANG_FILE_NAMES = {"de.txt", "es.txt", "fr.txt", "hu.txt", "it.txt", "kr.txt", "lv.txt", "nl.txt", "pl.txt", "pt.txt", "ru.txt", "sk.txt", "tr.txt", "uk.txt", "zh_HK.txt", "zh_TW.txt", private static final String[] LANG_FILE_NAMES = {"de.txt", "es.txt", "fr.txt", "hu.txt", "it.txt", "ja.txt", "kr.txt", "lv.txt", "nl.txt", "pl.txt", "pt.txt", "ru.txt", "sk.txt", "tr.txt", "uk.txt", "zh_HK.txt",
"zh.txt"}; "zh_TW.txt", "zh.txt"};
/* /*
* @see Formatter * @see Formatter