mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-04-22 18:46:53 -04:00
Merge remote-tracking branch 'upstream/develop' into feature/autoLock
This commit is contained in:
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 14
|
||||
java-version: 16
|
||||
- uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/.m2/repository
|
||||
@@ -25,12 +25,13 @@ jobs:
|
||||
- name: Build and Test
|
||||
run: mvn -B install --file main/pom.xml -Pcoverage
|
||||
- name: Run Codacy Coverage Reporter
|
||||
if: github.repository == 'cryptomator/cryptomator'
|
||||
run: |
|
||||
curl -o ~/codacy-coverage-reporter.jar https://repo.maven.apache.org/maven2/com/codacy/codacy-coverage-reporter/7.1.0/codacy-coverage-reporter-7.1.0-assembly.jar
|
||||
$JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java -jar ~/codacy-coverage-reporter.jar final
|
||||
$JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/commons/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/ui/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar report -l Java -r main/launcher/target/site/jacoco/jacoco.xml --partial
|
||||
$JAVA_HOME/bin/java --illegal-access=permit -jar ~/codacy-coverage-reporter.jar final
|
||||
env:
|
||||
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
||||
- name: Assemble buildkit-linux.zip
|
||||
@@ -59,7 +60,7 @@ jobs:
|
||||
name: Draft a Release on GitHub Releases
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
if: startsWith(github.ref, 'refs/tags/') && github.repository == 'cryptomator/cryptomator'
|
||||
steps:
|
||||
- name: Download buildkit-linux.zip
|
||||
uses: actions/download-artifact@v1
|
||||
|
||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -8,7 +8,7 @@
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_14" default="false" project-jdk-name="14" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" project-jdk-name="16" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
23
README.md
23
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://github.com/cryptomator/cryptomator/actions?query=workflow%3ABuild)
|
||||
[](https://snyk.io/test/github/cryptomator/cryptomator?targetFile=main%2Fpom.xml)
|
||||
[](https://www.codacy.com/app/cryptomator/cryptomator?utm_source=github.com&utm_medium=referral&utm_content=cryptomator/cryptomator&utm_campaign=Badge_Grade)
|
||||
[](https://www.codacy.com/gh/cryptomator/cryptomator/dashboard)
|
||||
[](http://twitter.com/Cryptomator)
|
||||
[](https://translate.cryptomator.org/)
|
||||
[](https://github.com/cryptomator/cryptomator/releases/latest)
|
||||
@@ -17,11 +17,26 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
||||
|
||||
### Gold Sponsors
|
||||
|
||||
[<img src="https://cryptomator.org/img/sponsors/geewhiz.svg" alt="gee-whiz" height="96">](https://www.gee-whiz.de/)
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://www.gee-whiz.de/"><img src="https://cryptomator.org/img/sponsors/geewhiz.svg" alt="gee-whiz" height="80"></a></td>
|
||||
<td><a href="https://proxy-hub.com/"><img src="https://cryptomator.org/img/sponsors/proxyhub.svg" alt="Proxy-Hub" height="80"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### Silver Sponsors
|
||||
|
||||
[](https://thebestvpn.com/)
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://thebestvpn.com/"><img src="https://cryptomator.org/img/sponsors/thebestvpn@2x.png" alt="TheBestVPN" height="64"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
- [Jameson Lopp](https://www.lopp.net/)
|
||||
|
||||
---
|
||||
|
||||
@@ -65,7 +80,7 @@ For more information on the security details visit [cryptomator.org](https://doc
|
||||
|
||||
### Dependencies
|
||||
|
||||
* JDK 14 (e.g. adoptopenjdk)
|
||||
* JDK 16 (e.g. adoptopenjdk)
|
||||
* Maven 3
|
||||
* Optional: OS-dependent build tools for native packaging (see [Windows](https://github.com/cryptomator/cryptomator-win), [OS X](https://github.com/cryptomator/cryptomator-osx), [Linux](https://github.com/cryptomator/builder-containers))
|
||||
|
||||
|
||||
@@ -47,10 +47,12 @@ public abstract class CommonsModule {
|
||||
@Named("licensePublicKey")
|
||||
static String provideLicensePublicKey() {
|
||||
// in PEM format without the dash-escaped begin/end lines
|
||||
return "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW" //
|
||||
+ "fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV" //
|
||||
+ "gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE" //
|
||||
+ "r0DzRyj4ixPIt38CQB8=";
|
||||
return """
|
||||
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQB7NfnqiZbg2KTmoflmZ71PbXru7oW\
|
||||
fmnV2yv3eDjlDfGruBrqz9TtXBZV/eYWt31xu1osIqaT12lKBvZ511aaAkIBeOEV\
|
||||
gwcBIlJr6kUw7NKzeJt7r2rrsOyQoOG2nWc/Of/NBqA3mIZRHk5Aq1YupFdD26QE\
|
||||
r0DzRyj4ixPIt38CQB8=\
|
||||
""";
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
||||
@@ -33,8 +33,8 @@ class LicenseChecker {
|
||||
try {
|
||||
byte[] keyBytes = BaseEncoding.base64().decode(pemEncodedPublicKey);
|
||||
PublicKey key = KeyFactory.getInstance("EC").generatePublic(new X509EncodedKeySpec(keyBytes));
|
||||
if (key instanceof ECPublicKey) {
|
||||
return (ECPublicKey) key;
|
||||
if (key instanceof ECPublicKey k) {
|
||||
return k;
|
||||
} else {
|
||||
throw new IllegalStateException("Key not an EC public key.");
|
||||
}
|
||||
|
||||
@@ -200,8 +200,7 @@ public class VaultSettings {
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof VaultSettings && obj.getClass().equals(this.getClass())) {
|
||||
VaultSettings other = (VaultSettings) obj;
|
||||
if (obj instanceof VaultSettings other && obj.getClass().equals(this.getClass())) {
|
||||
return Objects.equals(this.id, other.id);
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -355,8 +355,7 @@ public class Vault {
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj instanceof Vault && obj.getClass().equals(this.getClass())) {
|
||||
final Vault other = (Vault) obj;
|
||||
if (obj instanceof Vault other && obj.getClass().equals(this.getClass())) {
|
||||
return Objects.equals(this.vaultSettings, other.vaultSettings);
|
||||
} else {
|
||||
return false;
|
||||
|
||||
@@ -22,10 +22,10 @@ class VaultListChangeListener implements ListChangeListener<Vault> {
|
||||
public void onChanged(Change<? extends Vault> c) {
|
||||
while (c.next()) {
|
||||
if (c.wasAdded()) {
|
||||
List<VaultSettings> addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).collect(Collectors.toList());
|
||||
List<VaultSettings> addedSettings = c.getAddedSubList().stream().map(Vault::getVaultSettings).toList();
|
||||
vaultSettingsList.addAll(c.getFrom(), addedSettings);
|
||||
} else if (c.wasRemoved()) {
|
||||
List<VaultSettings> removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).collect(Collectors.toList());
|
||||
List<VaultSettings> removedSettings = c.getRemoved().stream().map(Vault::getVaultSettings).toList();
|
||||
vaultSettingsList.removeAll(removedSettings);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class VaultListManager {
|
||||
}
|
||||
|
||||
private void addAll(Collection<VaultSettings> vaultSettings) {
|
||||
Collection<Vault> vaults = vaultSettings.stream().map(this::create).collect(Collectors.toList());
|
||||
Collection<Vault> vaults = vaultSettings.stream().map(this::create).toList();
|
||||
vaultList.addAll(vaults);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class EnvironmentTest {
|
||||
public void testSettingsPath() {
|
||||
System.setProperty("cryptomator.settingsPath", "~/.config/Cryptomator/settings.json:~/.Cryptomator/settings.json");
|
||||
|
||||
List<Path> result = env.getSettingsPath().collect(Collectors.toList());
|
||||
List<Path> result = env.getSettingsPath().toList();
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(2));
|
||||
MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/settings.json"), //
|
||||
Paths.get("/home/testuser/.Cryptomator/settings.json")));
|
||||
@@ -43,7 +43,7 @@ class EnvironmentTest {
|
||||
public void testIpcPortPath() {
|
||||
System.setProperty("cryptomator.ipcPortPath", "~/.config/Cryptomator/ipcPort.bin:~/.Cryptomator/ipcPort.bin");
|
||||
|
||||
List<Path> result = env.getIpcPortPath().collect(Collectors.toList());
|
||||
List<Path> result = env.getIpcPortPath().toList();
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(2));
|
||||
MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/.config/Cryptomator/ipcPort.bin"), //
|
||||
Paths.get("/home/testuser/.Cryptomator/ipcPort.bin")));
|
||||
@@ -54,7 +54,7 @@ class EnvironmentTest {
|
||||
public void testKeychainPath() {
|
||||
System.setProperty("cryptomator.keychainPath", "~/AppData/Roaming/Cryptomator/keychain.json");
|
||||
|
||||
List<Path> result = env.getKeychainPath().collect(Collectors.toList());
|
||||
List<Path> result = env.getKeychainPath().toList();
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(1));
|
||||
MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/AppData/Roaming/Cryptomator/keychain.json")));
|
||||
}
|
||||
@@ -88,7 +88,7 @@ class EnvironmentTest {
|
||||
@DisplayName("test.path.property=")
|
||||
public void testEmptyList() {
|
||||
System.setProperty("test.path.property", "");
|
||||
List<Path> result = env.getPaths("test.path.property").collect(Collectors.toList());
|
||||
List<Path> result = env.getPaths("test.path.property").toList();
|
||||
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(0));
|
||||
}
|
||||
@@ -97,7 +97,7 @@ class EnvironmentTest {
|
||||
@DisplayName("test.path.property=/foo/bar/test")
|
||||
public void testSingleAbsolutePath() {
|
||||
System.setProperty("test.path.property", "/foo/bar/test");
|
||||
List<Path> result = env.getPaths("test.path.property").collect(Collectors.toList());
|
||||
List<Path> result = env.getPaths("test.path.property").toList();
|
||||
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(1));
|
||||
MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/foo/bar/test")));
|
||||
@@ -107,7 +107,7 @@ class EnvironmentTest {
|
||||
@DisplayName("test.path.property=~/test")
|
||||
public void testSingleHomeRelativePath() {
|
||||
System.setProperty("test.path.property", "~/test");
|
||||
List<Path> result = env.getPaths("test.path.property").collect(Collectors.toList());
|
||||
List<Path> result = env.getPaths("test.path.property").toList();
|
||||
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(1));
|
||||
MatcherAssert.assertThat(result, Matchers.hasItem(Paths.get("/home/testuser/test")));
|
||||
@@ -117,7 +117,7 @@ class EnvironmentTest {
|
||||
@DisplayName("test.path.property=~/test:~/test2:/foo/bar/test")
|
||||
public void testMultiplePaths() {
|
||||
System.setProperty("test.path.property", "~/test:~/test2:/foo/bar/test");
|
||||
List<Path> result = env.getPaths("test.path.property").collect(Collectors.toList());
|
||||
List<Path> result = env.getPaths("test.path.property").toList();
|
||||
|
||||
MatcherAssert.assertThat(result, Matchers.hasSize(3));
|
||||
MatcherAssert.assertThat(result, Matchers.contains(Paths.get("/home/testuser/test"), //
|
||||
|
||||
@@ -9,10 +9,12 @@ import java.util.Optional;
|
||||
|
||||
class LicenseCheckerTest {
|
||||
|
||||
private static final String PUBLIC_KEY = "MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ" //
|
||||
+ "PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47" //
|
||||
+ "6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM" //
|
||||
+ "Al8G7CqwoJOsW7Kddns=";
|
||||
private static final String PUBLIC_KEY = """
|
||||
MIGbMBAGByqGSM49AgEGBSuBBAAjA4GGAAQBgc4HZz+/fBbC7lmEww0AO3NK9wVZ\
|
||||
PDZ0VEnsaUFLEYpTzb90nITtJUcPUbvOsdZIZ1Q8fnbquAYgxXL5UgHMoywAib47\
|
||||
6MkyyYgPk0BXZq3mq4zImTRNuaU9slj9TVJ3ScT3L1bXwVuPJDzpr5GOFpaj+WwM\
|
||||
Al8G7CqwoJOsW7Kddns=\
|
||||
""";
|
||||
|
||||
private LicenseChecker licenseChecker;
|
||||
|
||||
|
||||
@@ -21,13 +21,18 @@ public class SettingsJsonAdapterTest {
|
||||
|
||||
@Test
|
||||
public void testDeserialize() throws IOException {
|
||||
String vault1Json = "{\"id\": \"1\", \"path\": \"/vault1\", \"mountName\": \"vault1\", \"winDriveLetter\": \"X\"}";
|
||||
String vault2Json = "{\"id\": \"2\", \"path\": \"/vault2\", \"mountName\": \"vault2\", \"winDriveLetter\": \"Y\"}";
|
||||
String json = "{\"directories\": [" + vault1Json + "," + vault2Json + "]," //
|
||||
+ "\"checkForUpdatesEnabled\": true,"//
|
||||
+ "\"port\": 8080,"//
|
||||
+ "\"numTrayNotifications\": 42,"//
|
||||
+ "\"preferredVolumeImpl\": \"FUSE\"}";
|
||||
String json = """
|
||||
{
|
||||
"directories": [
|
||||
{"id": "1", "path": "/vault1", "mountName": "vault1", "winDriveLetter": "X"},
|
||||
{"id": "2", "path": "/vault2", "mountName": "vault2", "winDriveLetter": "Y"}
|
||||
],
|
||||
"checkForUpdatesEnabled": true,
|
||||
"port": 8080,
|
||||
"numTrayNotifications": 42,
|
||||
"preferredVolumeImpl": "FUSE"
|
||||
}
|
||||
""";
|
||||
|
||||
Settings settings = adapter.fromJson(json);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ class FileOpenRequestHandler {
|
||||
}
|
||||
|
||||
private void openFiles(OpenFilesEvent evt) {
|
||||
Collection<Path> pathsToOpen = evt.getFiles().stream().map(File::toPath).collect(Collectors.toList());
|
||||
Collection<Path> pathsToOpen = evt.getFiles().stream().map(File::toPath).toList();
|
||||
AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen);
|
||||
tryToEnqueueFileOpenRequest(launchEvent);
|
||||
}
|
||||
@@ -59,7 +59,7 @@ class FileOpenRequestHandler {
|
||||
LOG.trace("Argument not a valid path: {}", str);
|
||||
return null;
|
||||
}
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
}).filter(Objects::nonNull).toList();
|
||||
if (!pathsToOpen.isEmpty()) {
|
||||
AppLaunchEvent launchEvent = new AppLaunchEvent(AppLaunchEvent.EventType.OPEN_FILE, pathsToOpen);
|
||||
tryToEnqueueFileOpenRequest(launchEvent);
|
||||
|
||||
@@ -47,8 +47,8 @@ public class LoggerModule {
|
||||
@Singleton
|
||||
static LoggerContext provideLoggerContext() {
|
||||
ILoggerFactory loggerFactory = LoggerFactory.getILoggerFactory();
|
||||
if (loggerFactory instanceof LoggerContext) {
|
||||
return (LoggerContext) loggerFactory;
|
||||
if (loggerFactory instanceof LoggerContext context) {
|
||||
return context;
|
||||
} else {
|
||||
throw new IllegalStateException("SLF4J not bound to Logback.");
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.jdk.version>14</project.jdk.version>
|
||||
<project.jdk.version>16</project.jdk.version>
|
||||
|
||||
<!-- cryptomator dependencies -->
|
||||
<cryptomator.cryptofs.version>1.9.14</cryptomator.cryptofs.version>
|
||||
@@ -32,7 +32,7 @@
|
||||
<cryptomator.integrations.linux.version>1.0.0-beta1</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>1.2.9</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>1.2.4</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>1.1.3</cryptomator.webdav.version>
|
||||
<cryptomator.webdav.version>1.1.4</cryptomator.webdav.version>
|
||||
|
||||
<!-- 3rd party dependencies -->
|
||||
<javafx.version>15</javafx.version>
|
||||
|
||||
@@ -42,8 +42,8 @@ public class DefaultSceneFactory implements Function<Parent, Scene> {
|
||||
protected void configureScene(Scene scene) {
|
||||
scene.windowProperty().addListener(observable -> {
|
||||
Window window = scene.getWindow();
|
||||
if (window instanceof Stage) {
|
||||
setupDefaultAccelerators(scene, (Stage) window);
|
||||
if (window instanceof Stage s) {
|
||||
setupDefaultAccelerators(scene, s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.cryptomator.ui.launcher;
|
||||
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.common.vaults.VaultListManager;
|
||||
import org.cryptomator.ui.fxapp.FxApplication;
|
||||
import org.slf4j.Logger;
|
||||
@@ -55,7 +56,7 @@ class AppLaunchEventHandler {
|
||||
case REVEAL_APP -> fxApplicationStarter.get().thenAccept(FxApplication::showMainWindow);
|
||||
case OPEN_FILE -> fxApplicationStarter.get().thenRun(() -> {
|
||||
Platform.runLater(() -> {
|
||||
event.getPathsToOpen().forEach(this::addVault);
|
||||
event.getPathsToOpen().forEach(this::addOrRevealVault);
|
||||
});
|
||||
});
|
||||
default -> LOG.warn("Unsupported event type: {}", event.getType());
|
||||
@@ -63,13 +64,18 @@ class AppLaunchEventHandler {
|
||||
}
|
||||
|
||||
// TODO dedup MainWindowController...
|
||||
private void addVault(Path potentialVaultPath) {
|
||||
private void addOrRevealVault(Path potentialVaultPath) {
|
||||
assert Platform.isFxApplicationThread();
|
||||
try {
|
||||
final Vault v;
|
||||
if (potentialVaultPath.getFileName().toString().equals(MASTERKEY_FILENAME)) {
|
||||
vaultListManager.add(potentialVaultPath.getParent());
|
||||
v = vaultListManager.add(potentialVaultPath.getParent());
|
||||
} else {
|
||||
vaultListManager.add(potentialVaultPath);
|
||||
v = vaultListManager.add(potentialVaultPath);
|
||||
}
|
||||
|
||||
if (v.isUnlocked()) {
|
||||
fxApplicationStarter.get().thenAccept(app -> app.getVaultService().reveal(v));
|
||||
}
|
||||
LOG.debug("Added vault {}", potentialVaultPath);
|
||||
} catch (NoSuchFileException e) {
|
||||
|
||||
@@ -76,8 +76,8 @@ public class UnlockWorkflow extends Task<Boolean> {
|
||||
|
||||
setOnFailed(event -> {
|
||||
Throwable throwable = event.getSource().getException();
|
||||
if (throwable instanceof InvalidMountPointException) {
|
||||
handleInvalidMountPoint((InvalidMountPointException) throwable);
|
||||
if (throwable instanceof InvalidMountPointException e) {
|
||||
handleInvalidMountPoint(e);
|
||||
} else {
|
||||
handleGenericError(throwable);
|
||||
}
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=نسيت كلمة المرور
|
||||
# Unlock
|
||||
unlock.title=افتح الحافظة
|
||||
unlock.passwordPrompt=أدخل كلمة السر لـ "%s":
|
||||
unlock.savePassword=احفظ كلمة المرور
|
||||
unlock.unlockBtn=افتح
|
||||
## Success
|
||||
unlock.success.message=تم فتح المخزن "%s" بنجاح! يمكنك الوصول إليه الآن.
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Zaboravili ste šifru
|
||||
# Unlock
|
||||
unlock.title=Otključaj sef
|
||||
unlock.passwordPrompt=Unesite lozinku za "%s":
|
||||
unlock.savePassword=Snimi lozinku
|
||||
unlock.unlockBtn=Otključaj
|
||||
## Success
|
||||
unlock.success.message=Uspješno ste otključali "%s"! Vaš sef je sada dostupan.
|
||||
@@ -105,61 +104,214 @@ unlock.success.revealBtn=Otkrij sef
|
||||
unlock.error.heading=Sef nije moguće otključati
|
||||
### Invalid Mount Point
|
||||
unlock.error.invalidMountPoint.notExisting=Tačka postavljanja "%s" nije direktorij, nije prazna ili ne postoji.
|
||||
unlock.error.invalidMountPoint.existing=Tačka povezivanja "%s" već postoji ili nadređeni folder nedostaje.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.heading=Zaključavanje nije uspjelo
|
||||
lock.forced.message=Zaključavanje "%s" blokirano je operacijama na čekanju ili otvorenim datotekama. Možete prisilno zaključati ovaj sef, međutim prekid U / I-a može rezultirati gubitkom nespremljenih podataka.
|
||||
lock.forced.confirmBtn=Prisilno zaključaj
|
||||
## Failure
|
||||
lock.fail.heading=Zaključavanje sefa nije uspjelo.
|
||||
lock.fail.message=Sef "%s" nije moguće zaključati. Osigurajte da je nespremljeni rad sačuvan negdje drugdje i da su važne operacije čitanja / pisanja završene. Da biste zatvorili sef, zaustavite Cryptomator proces.
|
||||
|
||||
# Migration
|
||||
migration.title=Nadogradi sef
|
||||
## Start
|
||||
migration.start.prompt=Sef "%s" treba ažurirati na noviji format. Prije nastavka, provjerite da nije na čekanju sinkronizacija koja utječe na ovaj sef.
|
||||
migration.start.confirm=Da, moj sef je u potpunosti sinhroniziran
|
||||
## Run
|
||||
migration.run.enterPassword=Unesite lozinku za "%s"
|
||||
migration.run.startMigrationBtn=Nadogradi sef
|
||||
migration.run.progressHint=Ovo bi moglo potrajati…
|
||||
## Sucess
|
||||
migration.success.nextStepsInstructions="%s" je uspješno nadograđen.\nSada možete otključati svoj sef.
|
||||
migration.success.unlockNow=Otključaj sada
|
||||
## Missing file system capabilities
|
||||
migration.error.missingFileSystemCapabilities.title=Nepodržan tip datoteke
|
||||
migration.error.missingFileSystemCapabilities.description=Migracija nije započeta, jer se vaš sef nalazi u neadekvatnom sistemu datoteka.
|
||||
migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Sistem datoteka ne podržava duga imena datoteka.
|
||||
migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Sistem datoteka ne podržava duga imena datoteka.
|
||||
migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Sistem datoteka ne dozvoljava čitanje.
|
||||
migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Sistem datoteka ne dozvoljava pisanje.
|
||||
## Impossible
|
||||
migration.impossible.heading=Sef se ne može nadograditi
|
||||
migration.impossible.reason=Sef se ne može automatski migrirati jer njegovo mjesto za pohranu ili pristupna točka nisu kompatibilni.
|
||||
migration.impossible.moreInfo=Sef se i dalje može otvoriti sa starijom verzijom. Za upute o ručnom migriranju sefa posjetite
|
||||
|
||||
# Preferences
|
||||
preferences.title=Postavke
|
||||
## General
|
||||
preferences.general=Generalno
|
||||
preferences.general.theme=Izgled
|
||||
preferences.general.theme.automatic=Automatski
|
||||
preferences.general.theme.light=Svijetlo
|
||||
preferences.general.theme.dark=Tamno
|
||||
preferences.general.unlockThemes=Otključaj tamni mod
|
||||
preferences.general.showMinimizeButton=Pokaži dugme za minimiziranje
|
||||
preferences.general.showTrayIcon=Prikaži tray ikonu (potrebnan restart)
|
||||
preferences.general.startHidden=Sakrij prozor prilikom pokretanja Cryptomatora
|
||||
preferences.general.debugLogging=Omogući evidenciju otklanjanja pogrešaka
|
||||
preferences.general.debugDirectory=Pokaži dnevnik podataka
|
||||
preferences.general.autoStart=Pokreni Cryptomator pri pokretanju sistema
|
||||
preferences.general.keychainBackend=Pohrani lozinku sa
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome Keyring
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE Wallet
|
||||
preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=macOS Keychain Access
|
||||
preferences.general.keychainBackend.org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess=Windows Data Protection
|
||||
preferences.general.interfaceOrientation=Orijentacija Interfejsa
|
||||
preferences.general.interfaceOrientation.ltr=S lijeva ka desno
|
||||
preferences.general.interfaceOrientation.rtl=Sa desna ka lijevo
|
||||
## Volume
|
||||
preferences.volume=Virtuelni pogon
|
||||
preferences.volume.type=Tip volumena
|
||||
preferences.volume.webdav.port=WebDAV Port
|
||||
preferences.volume.webdav.scheme=WebDAV Scheme
|
||||
## Updates
|
||||
preferences.updates=Ažuriranja
|
||||
preferences.updates.currentVersion=Trenutna verzija: %s
|
||||
preferences.updates.autoUpdateCheck=Automatski provjeri ima li ažuriranja
|
||||
preferences.updates.checkNowBtn=Provjeri sada
|
||||
preferences.updates.updateAvailable=Dostupno ažuriranje na verziju %s.
|
||||
## Donation Key
|
||||
preferences.donationKey=Donacija
|
||||
preferences.donationKey.registeredFor=Registrovan za %s
|
||||
preferences.donationKey.noDonationKey=Nije pronađen važeći ključ za donaciju. To je poput licence, ali za sjajne ljude koji koriste besplatni softver. ;-)
|
||||
preferences.donationKey.getDonationKey=Nabavite ključ za donaciju
|
||||
## About
|
||||
preferences.about=O programu
|
||||
|
||||
# Vault Statistics
|
||||
stats.title=Statistika za %s
|
||||
stats.cacheHitRate=Brzina učitavanja u predmemoriju
|
||||
## Read
|
||||
stats.read.throughput.idle=Čitaj: U pripravnosti
|
||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||
stats.read.total.data.none=Pročitano podataka: -
|
||||
stats.read.total.data.kib=Pročitano podataka: %.1f kiB
|
||||
stats.read.total.data.mib=Pročitano podataka: %.1f MiB
|
||||
stats.read.total.data.gib=Pročitano podataka: %.1f GiB
|
||||
stats.decr.total.data.none=Otključani podaci: -
|
||||
stats.decr.total.data.kib=Otključano podataka: %.1f kiB
|
||||
stats.decr.total.data.mib=Otključano podataka: %.1f MiB
|
||||
stats.decr.total.data.gib=Otključano podataka: %.1f GiB
|
||||
stats.read.accessCount=Ukupno pročitano: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Pisanje: U pripravnosti
|
||||
stats.write.throughput.kibs=Upisano: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Upisano: %.2f MiB/s
|
||||
stats.write.total.data.none=Podaci su upisani:-
|
||||
stats.write.total.data.kib=Upisano podataka: %.1f kiB
|
||||
stats.write.total.data.mib=Upisano podataka: %.1f MiB
|
||||
stats.write.total.data.gib=Upisano podataka: %.1f GiB
|
||||
stats.encr.total.data.none=Otključano podataka: -
|
||||
stats.encr.total.data.kib=Otključano podataka: %.1f kiB
|
||||
stats.encr.total.data.mib=Otključano podataka: %.1f MiB
|
||||
stats.encr.total.data.gib=Otključano podataka: %.1f GiB
|
||||
stats.write.accessCount=Ukupno upisano: %d
|
||||
|
||||
# Main Window
|
||||
main.closeBtn.tooltip=Zatvori
|
||||
main.minimizeBtn.tooltip=Minimiziraj
|
||||
main.preferencesBtn.tooltip=Postavke
|
||||
main.debugModeEnabled.tooltip=Omogućen je mod otklanjanja pogrešaka
|
||||
main.donationKeyMissing.tooltip=Molimo razmislite o doniranju
|
||||
## Drag 'n' Drop
|
||||
main.dropZone.dropVault=Dodajte ovaj sef
|
||||
main.dropZone.unknownDragboardContent=Ako želite dodati sef, povucite ga u ovaj prozor
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=Kliknite ovdje da dodate sef
|
||||
main.vaultlist.contextMenu.remove=Ukloni Sef…
|
||||
main.vaultlist.addVaultBtn=Dodaj sef
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=Hvala što ste izabrali Cryptomator za zaštitu podataka. Ako vam je potrebna pomoć, pogledajte naše vodiče za početak:
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=ZAKLJUČANO
|
||||
main.vaultDetail.unlockBtn=Otključaj…
|
||||
main.vaultDetail.unlockNowBtn=Otključaj sada
|
||||
main.vaultDetail.optionsBtn=Opcije sefa
|
||||
main.vaultDetail.passwordSavedInKeychain=Šifra sačuvana
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=OTKLJUČANO
|
||||
main.vaultDetail.accessLocation=Sadržaj Vašeg sefa je dostupan ovdje:
|
||||
main.vaultDetail.revealBtn=Otkrij pogon
|
||||
main.vaultDetail.lockBtn=Zaključaj
|
||||
main.vaultDetail.bytesPerSecondRead=Čitaj:
|
||||
main.vaultDetail.bytesPerSecondWritten=Piši:
|
||||
main.vaultDetail.throughput.idle=u stanju mirovanja
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistika sefa
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator nije mogao pronaći disk na ovoj lokaciji.
|
||||
main.vaultDetail.missing.recheck=Provjeri ponovo
|
||||
main.vaultDetail.missing.remove=Ukloni sa liste sefova…
|
||||
main.vaultDetail.missing.changeLocation=Promijeni lokaciju sefa…
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Nadogradi sef
|
||||
main.vaultDetail.migratePrompt=Da biste mogli pristupiti svom sefu, morate ga nadograditi na novi format
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Kako enkriptovati podatke
|
||||
wrongFileAlert.header.title=Da li ste pokušali enkriptovati ove datoteke?
|
||||
wrongFileAlert.header.lead=U tu svrhu Cryptomator kreira volumen u vašem upravljačkom sistemu.
|
||||
wrongFileAlert.instruction.0=Da biste enkriptovali datoteke, slijedite ove korake:
|
||||
wrongFileAlert.instruction.1=1. Otključajte sef.
|
||||
wrongFileAlert.instruction.2=2. Kliknite "Otkrivanje" da biste otvorili volumen u vašem upravitelju datotekama.
|
||||
wrongFileAlert.instruction.3=3. Dodajte datoteke u ovaj disk.
|
||||
wrongFileAlert.link=Za dalju podršku, posjetite
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Generalno
|
||||
vaultOptions.general.vaultName=Ime sefa
|
||||
vaultOptions.general.unlockAfterStartup=Otključaj sef pri pokretanju Cryptomatora
|
||||
vaultOptions.general.actionAfterUnlock=Nakon uspješnog otključavanja
|
||||
vaultOptions.general.actionAfterUnlock.ignore=Ne radi ništa
|
||||
vaultOptions.general.actionAfterUnlock.reveal=Otkrij pogon
|
||||
vaultOptions.general.actionAfterUnlock.ask=Pitaj
|
||||
## Mount
|
||||
vaultOptions.mount=Povezivanje
|
||||
vaultOptions.mount.readonly=Samo čitanje
|
||||
vaultOptions.mount.customMountFlags=Prilagođena obilježja povezivanja
|
||||
vaultOptions.mount.winDriveLetterOccupied=zauzeto
|
||||
vaultOptions.mount.mountPoint=Tačka povezivanja
|
||||
vaultOptions.mount.mountPoint.auto=Automatski odaberi pogodnu lokaciju
|
||||
vaultOptions.mount.mountPoint.driveLetter=Koristi dodjeljeno slovo (oznaku) diska
|
||||
vaultOptions.mount.mountPoint.custom=Prilagođena adresa
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Odaberi…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Izaberi praznu mapu
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Šifra
|
||||
vaultOptions.masterkey.changePasswordBtn=Promjeni lozinku
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Zaborav spremljenu šifru
|
||||
vaultOptions.masterkey.recoveryKeyExpanation=Ključ za oporavak je vaše jedino sredstvo za vraćanje pristupa sefu ako izgubite lozinku.
|
||||
vaultOptions.masterkey.showRecoveryKeyBtn=Pokaži ključ za oporavak
|
||||
vaultOptions.masterkey.recoverPasswordBtn=Povrati šifru
|
||||
|
||||
# Recovery Key
|
||||
recoveryKey.title=Ključ za oporavak
|
||||
recoveryKey.enterPassword.prompt=Unesite šifru da biste prikazali ključ za oporavak za "%s":
|
||||
recoveryKey.display.message=Sljedeći ključ za oporavak može se koristiti za vraćanje pristupa "%s":
|
||||
recoveryKey.display.StorageHints=Pohranite ga negdje vrlo sigurno, npr.:\n • Spremite ga pomoću menadžera lozinki\n • Spremite ga na USB disk\n • Odštampajte ga na papiru
|
||||
recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s":
|
||||
recoveryKey.recover.validKey=Ključ za oporavak je ispravan
|
||||
recoveryKey.printout.heading=Cryptomator Ključ za oporavak za \n"%s"\n
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=Unesi novu šifru
|
||||
newPassword.reenterPassword=Potvrdi novu šifru
|
||||
newPassword.passwordsMatch=Šifra odgovara!
|
||||
newPassword.passwordsDoNotMatch=Šifre se ne poklapaju
|
||||
passwordStrength.messageLabel.tooShort=Upotrijebite najmanje %d znakova
|
||||
passwordStrength.messageLabel.0=Veoma slabo
|
||||
passwordStrength.messageLabel.1=Slabo
|
||||
passwordStrength.messageLabel.2=Dovoljno
|
||||
passwordStrength.messageLabel.3=Sigurno
|
||||
passwordStrength.messageLabel.4=Veoma sigurno
|
||||
|
||||
# Quit
|
||||
quit.prompt=Zatvoriti prijavu? Postoje otključani sefovi.
|
||||
quit.lockAndQuit=Zaključaj i zatvori
|
||||
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Lectures en total: %d
|
||||
stats.write.throughput.idle=Escriu: inactiu
|
||||
stats.write.throughput.kibs=Escriu: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Escriu: %.2f MiB/s
|
||||
stats.write.total.data.none=Dades llegides: -
|
||||
stats.write.total.data.none=Dades escrites
|
||||
stats.write.total.data.kib=Dades escrites: %.1f kiB
|
||||
stats.write.total.data.mib=Dades escrites: %.1f MiB
|
||||
stats.write.total.data.gib=Dades escrites: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Zapomenout heslo
|
||||
# Unlock
|
||||
unlock.title=Odemknout trezor
|
||||
unlock.passwordPrompt=Zadejte heslo pro "%s":
|
||||
unlock.savePassword=Uložit heslo
|
||||
unlock.savePassword=Zapamatovat heslo
|
||||
unlock.unlockBtn=Odemknout
|
||||
## Success
|
||||
unlock.success.message=Trezor "%s" byl úspěšně odemčen a nyní je dostupný.
|
||||
@@ -197,7 +197,7 @@ stats.read.accessCount=Celkem přečteno: %d
|
||||
stats.write.throughput.idle=Zápis: nečinný
|
||||
stats.write.throughput.kibs=Zápis: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Zápis: %.2f MiB/s
|
||||
stats.write.total.data.none=Přečteno: -
|
||||
stats.write.total.data.none=Zapsaná data: -
|
||||
stats.write.total.data.kib=Zapsáno: %.1f kiB
|
||||
stats.write.total.data.mib=Zapsáno: %.1f MiB
|
||||
stats.write.total.data.gib=Zapsáno: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Passwort vergessen
|
||||
# Unlock
|
||||
unlock.title=Tresor entsperren
|
||||
unlock.passwordPrompt=Gib das Passwort für „%s“ ein:
|
||||
unlock.savePassword=Passwort speichern
|
||||
unlock.savePassword=Passwort merken
|
||||
unlock.unlockBtn=Entsperren
|
||||
## Success
|
||||
unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst du auf deinen Tresor zugreifen.
|
||||
@@ -189,28 +189,28 @@ stats.cacheHitRate=Cache-Trefferrate
|
||||
stats.read.throughput.idle=Lesen: Leerlauf
|
||||
stats.read.throughput.kibs=Lesen: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Lesen: %.2f MiB/s
|
||||
stats.read.total.data.none=Daten gelesen: -
|
||||
stats.read.total.data.kib=Daten gelesen: %.1f kiB
|
||||
stats.read.total.data.mib=Daten gelesen: %.1f MiB
|
||||
stats.read.total.data.gib=Daten gelesen: %.1f GiB
|
||||
stats.decr.total.data.none=Daten entschlüsselt: -
|
||||
stats.decr.total.data.kib=Daten entschlüsselt: %.1f kiB
|
||||
stats.decr.total.data.mib=Daten entschlüsselt: %.1f MiB
|
||||
stats.decr.total.data.gib=Daten entschlüsselt: %.1f GiB
|
||||
stats.read.accessCount=Gesamt gelesen: %d
|
||||
stats.read.total.data.none=Gelesen: -
|
||||
stats.read.total.data.kib=Gelesen: %.1f kiB
|
||||
stats.read.total.data.mib=Gelesen: %.1f MiB
|
||||
stats.read.total.data.gib=Gelesen: %.1f GiB
|
||||
stats.decr.total.data.none=Entschlüsselt: -
|
||||
stats.decr.total.data.kib=Entschlüsselt: %.1f kiB
|
||||
stats.decr.total.data.mib=Entschlüsselt: %.1f MiB
|
||||
stats.decr.total.data.gib=Entschlüsselt: %.1f GiB
|
||||
stats.read.accessCount=Lesezugriffe: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Schreiben: Leerlauf
|
||||
stats.write.throughput.kibs=Schreiben: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Schreiben: %.2f MiB/s
|
||||
stats.write.total.data.none=Daten gelesen: -
|
||||
stats.write.total.data.kib=Daten geschrieben: %.1f kiB
|
||||
stats.write.total.data.mib=Daten geschrieben: %.1f MiB
|
||||
stats.write.total.data.gib=Daten geschrieben: %.1f GiB
|
||||
stats.encr.total.data.none=Daten verschlüsselt: -
|
||||
stats.encr.total.data.kib=Daten verschlüsselt: %.1f kiB
|
||||
stats.encr.total.data.mib=Datenverschlüsselt: %.1f MiB
|
||||
stats.encr.total.data.gib=Daten verschlüsselt: %.1f GiB
|
||||
stats.write.accessCount=Gesamt geschrieben: %d
|
||||
stats.write.total.data.none=Geschrieben: -
|
||||
stats.write.total.data.kib=Geschrieben: %.1f kiB
|
||||
stats.write.total.data.mib=Geschrieben: %.1f MiB
|
||||
stats.write.total.data.gib=Geschrieben: %.1f GiB
|
||||
stats.encr.total.data.none=Verschlüsselt: -
|
||||
stats.encr.total.data.kib=Verschlüsselt: %.1f kiB
|
||||
stats.encr.total.data.mib=Verschlüsselt: %.1f MiB
|
||||
stats.encr.total.data.gib=Verschlüsselt: %.1f GiB
|
||||
stats.write.accessCount=Schreibzugriffe: %d
|
||||
|
||||
# Main Window
|
||||
main.closeBtn.tooltip=Schließen
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Ξέχασα τον κωδικό πρόσβασης
|
||||
# Unlock
|
||||
unlock.title=Ξεκλείδωμα Vault
|
||||
unlock.passwordPrompt=Εισάγετε τον κωδικό για "%s":
|
||||
unlock.savePassword=Αποθήκευση κωδικού
|
||||
unlock.savePassword=Απομνημόνευση κωδικού πρόσβασης
|
||||
unlock.unlockBtn=Ξεκλείδωμα
|
||||
## Success
|
||||
unlock.success.message="%s" ξεκλειδώθηκε επιτυχώς! Το vault σας είναι διαθέσιμο.
|
||||
@@ -149,6 +149,8 @@ preferences.general.theme.automatic=Αυτόματα
|
||||
preferences.general.theme.light=Ανοιχτό
|
||||
preferences.general.theme.dark=Σκούρο
|
||||
preferences.general.unlockThemes=Ξεκλείδωσε το σκούρο θέμα
|
||||
preferences.general.showMinimizeButton=Εμφάνιση κουμπιού ελαχιστοποίησης
|
||||
preferences.general.showTrayIcon=Εμφάνιση εικονιδίου κοντά στο ρολόι (απαιτεί επανεκκίνηση)
|
||||
preferences.general.startHidden=Απόκρυψη παραθύρου όταν ξεκινά το Cryptomator
|
||||
preferences.general.debugLogging=Ενεργοποίηση καταγραφής σφαλμάτων
|
||||
preferences.general.debugDirectory=Αποκάλυψη αρχείων καταγραφής
|
||||
@@ -200,7 +202,7 @@ stats.read.accessCount=Συνολικές αναγνώσεις: %d
|
||||
stats.write.throughput.idle=Εγγραφή: ηρεμία
|
||||
stats.write.throughput.kibs=Εγγραφή: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Εγγραφή: %.2f MiB/s
|
||||
stats.write.total.data.none=Ανάγνωση δεδομένων: -
|
||||
stats.write.total.data.none=Δεδομένα που γράφηκαν: -
|
||||
stats.write.total.data.kib=Δεδομένα που γράφτηκαν: %.1f kiB
|
||||
stats.write.total.data.mib=Δεδομένα που γράφτηκαν: %.1f MiB
|
||||
stats.write.total.data.gib=Δεδομένα που γράφτηκαν: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Olvidar contraseña
|
||||
# Unlock
|
||||
unlock.title=Desbloquear bóveda
|
||||
unlock.passwordPrompt=Ingresar contraseña para "%s":
|
||||
unlock.savePassword=Guardar contraseña
|
||||
unlock.savePassword=Recordar contraseña
|
||||
unlock.unlockBtn=Desbloquear
|
||||
## Success
|
||||
unlock.success.message=¡"%s" se desbloqueó con éxito! La bóveda ya es accesible.
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Total leídos: %d
|
||||
stats.write.throughput.idle=Escritura: inactivo
|
||||
stats.write.throughput.kibs=Escritura: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Escritura: %.2f MiB/s
|
||||
stats.write.total.data.none=Datos leídos: -
|
||||
stats.write.total.data.none=Datos escritos:-
|
||||
stats.write.total.data.kib=Datos escritos: %.1f kiB
|
||||
stats.write.total.data.mib=Datos escritos: %.1f MiB
|
||||
stats.write.total.data.gib=Datos escritos: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Oublier le mot de passe
|
||||
# Unlock
|
||||
unlock.title=Déverrouiller le coffre
|
||||
unlock.passwordPrompt=Entrez le mot de passe pour “%s” :
|
||||
unlock.savePassword=Enregistrer le mot de passe
|
||||
unlock.savePassword=Mémoriser le mot de passe
|
||||
unlock.unlockBtn=Déverrouiller
|
||||
## Success
|
||||
unlock.success.message=“%s” déverrouillé ! Le contenu de votre coffre est maintenant accessible.
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Total des lectures: %d
|
||||
stats.write.throughput.idle=Écriture : inactif
|
||||
stats.write.throughput.kibs=Écriture : %.2f kiO/s
|
||||
stats.write.throughput.mibs=Écriture : %.2f Mo/s
|
||||
stats.write.total.data.none=Lecture des données : -
|
||||
stats.write.total.data.none=Données écrites : -
|
||||
stats.write.total.data.kib=Données écrites : %.1f kiO
|
||||
stats.write.total.data.mib=Données écrites : %.1f MiO
|
||||
stats.write.total.data.gib=Données écrites : %.1f GiO
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
# Locale Specific CSS files such as CJK, RTL,...
|
||||
additionalStyleSheets=
|
||||
|
||||
# Generics
|
||||
## Button
|
||||
@@ -41,7 +40,6 @@ addvaultwizard.new.namePrompt=A széf neve
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Hova mentse a Cryptomator a széf titkosított fájljait?
|
||||
addvaultwizard.new.locationLabel=Tárolási hely
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Egyedi hely
|
||||
addvaultwizard.new.directoryPickerButton=Választás…
|
||||
addvaultwizard.new.directoryPickerTitle=Könyvtár kiválasztása
|
||||
@@ -49,7 +47,7 @@ addvaultwizard.new.fileAlreadyExists=Nem lehet a széfet létrehozni ezen a hely
|
||||
addvaultwizard.new.locationDoesNotExist=Nem lehet a széfet létrehozni ezen a helyen, mert az útvonal legalább egy darabja nem létezik.
|
||||
addvaultwizard.new.invalidName=Érvénytelen széf elnevezés. Kérjük vegye figyelembe a szabályos könyvtárelnevezésre vonatkozó szabályokat.
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=Széf létrehozása
|
||||
addvaultwizard.new.createVaultBtn=Új széf létrehozása
|
||||
addvaultwizard.new.generateRecoveryKeyChoice=Nem fog tudni hozzáférni az adataihoz a jelszó nélkül. Akar egy visszaállítási kulcsot arra az esetre, ha elveszíti a jelszavát?
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=Igen kérem, jobb félni, mint megijedni.
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.no=Nem köszönöm, nem fogom elveszíteni a jelszavam.
|
||||
@@ -96,7 +94,6 @@ forgetPassword.confirmBtn=Jelszó elfelejtése
|
||||
# Unlock
|
||||
unlock.title=Széf feloldása
|
||||
unlock.passwordPrompt=Írja be a jelszavát a következő széfhez "%s":
|
||||
unlock.savePassword=Jelszó mentése
|
||||
unlock.unlockBtn=Feloldás
|
||||
## Success
|
||||
unlock.success.message="%s" sikreresen feloldásra került! Mostmár hozzáférhet a széféhez.
|
||||
@@ -108,6 +105,10 @@ unlock.error.heading=Nem lehet feloldani a széfet
|
||||
unlock.error.invalidMountPoint.notExisting=A csatolási pont "%s" nem egy könyvtár, nem üres vagy nem létezik.
|
||||
unlock.error.invalidMountPoint.existing=A csatolási pont "%s" már létezik vagy a already exists or szülőmappa hiányzik.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
|
||||
# Migration
|
||||
migration.title=Széf frissítése
|
||||
## Start
|
||||
@@ -115,7 +116,7 @@ migration.start.prompt=A "%s" széf formátuma frissítésre szorul. A folytatá
|
||||
migration.start.confirm=Igen, a széfem teljes mértékben szinkronizálva van
|
||||
## Run
|
||||
migration.run.enterPassword=Írja be a jelszót a következőhöz Enter the password for "%s"
|
||||
migration.run.startMigrationBtn=Széf migrációja
|
||||
migration.run.startMigrationBtn=Széf frissítése
|
||||
migration.run.progressHint=Ez eltarthat egy darabig…
|
||||
## Sucess
|
||||
migration.success.nextStepsInstructions=A "%s" sikeresen migrálva. \nMost már feloldhatja a széfet.
|
||||
@@ -146,18 +147,12 @@ preferences.general.debugLogging=Hibakeresési naplózás engedélyezése
|
||||
preferences.general.debugDirectory=Naplófájlok megjelenítése
|
||||
preferences.general.autoStart=Cryptomator indítása a rendszerrel együtt
|
||||
preferences.general.keychainBackend=Itt tárolja a jelszavakat
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome Keyring
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE Wallet
|
||||
preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=macOS Keychain Access
|
||||
preferences.general.keychainBackend.org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess=Windows Data Protection
|
||||
preferences.general.interfaceOrientation=Felhasználói felület orientációja
|
||||
preferences.general.interfaceOrientation.ltr=Balról jobbra
|
||||
preferences.general.interfaceOrientation.rtl=Jobbról balra
|
||||
## Volume
|
||||
preferences.volume=Virtuális meghajtó
|
||||
preferences.volume.type=Kötet tipusa
|
||||
preferences.volume.webdav.port=WebDAV Port
|
||||
preferences.volume.webdav.scheme=WebDAV Scheme
|
||||
## Updates
|
||||
preferences.updates=Frissítések
|
||||
preferences.updates.currentVersion=Jelenlegi verzió: %s
|
||||
@@ -192,7 +187,6 @@ stats.read.accessCount=Összes olvasás: %d
|
||||
stats.write.throughput.idle=Írás: tétlen
|
||||
stats.write.throughput.kibs=Írás: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Írás: %.2f MiB/s
|
||||
stats.write.total.data.none=Írott adat: -
|
||||
stats.write.total.data.kib=Írott adat: %.1f kiB
|
||||
stats.write.total.data.mib=Írott adat: %.1f MiB
|
||||
stats.write.total.data.gib=Írott adat: %.1f GiB
|
||||
@@ -232,8 +226,6 @@ main.vaultDetail.lockBtn=Zárolás
|
||||
main.vaultDetail.bytesPerSecondRead=Olvasás:
|
||||
main.vaultDetail.bytesPerSecondWritten=Írás:
|
||||
main.vaultDetail.throughput.idle=tétlen
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Széf statisztika
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=A Cryptomator nem talált széfet ezen az útvonalon.
|
||||
@@ -262,22 +254,22 @@ vaultOptions.general.unlockAfterStartup=A széf feloldása a Cryptomator indít
|
||||
vaultOptions.general.actionAfterUnlock=Sikeres feloldás után
|
||||
vaultOptions.general.actionAfterUnlock.ignore=Ne tegyen semmit
|
||||
vaultOptions.general.actionAfterUnlock.reveal=Jelenítse meg a kötetet
|
||||
vaultOptions.general.actionAfterUnlock.ask=Kérdezzen
|
||||
vaultOptions.general.actionAfterUnlock.ask=Kérdez
|
||||
## Mount
|
||||
vaultOptions.mount=Csatolás
|
||||
vaultOptions.mount.readonly=Csak olvasható
|
||||
vaultOptions.mount=Felcsatolás
|
||||
vaultOptions.mount.readonly=Csak-olvasható
|
||||
vaultOptions.mount.customMountFlags=Egyedi csatolási paraméterek
|
||||
vaultOptions.mount.winDriveLetterOccupied=foglalt
|
||||
vaultOptions.mount.mountPoint=Csatolási pont
|
||||
vaultOptions.mount.mountPoint.auto=Válasszon egy megfelelő helyet autómatikusan
|
||||
vaultOptions.mount.mountPoint.auto=Válasszon egy megfelelő helyet automatikusan
|
||||
vaultOptions.mount.mountPoint.driveLetter=Használja a kiválasztott meghajtó betűjelét
|
||||
vaultOptions.mount.mountPoint.custom=Egyedi útvonal
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Kiválasztás…
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Kiválaszt…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Válasszon egy üres könyvtárat
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Jelszó
|
||||
vaultOptions.masterkey.changePasswordBtn=Jelszó megváltoztatása
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Elmentett jelszó elfelejtése
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Mentett jelszó törlése
|
||||
vaultOptions.masterkey.recoveryKeyExpanation=A helyreállítási kulcs az egyetlen módja annak, hogy visszaállítsa a széfhez való hozzáférést, ha elveíti a jelszavát.
|
||||
vaultOptions.masterkey.showRecoveryKeyBtn=Visszaállítási kulcs megjelenítése
|
||||
vaultOptions.masterkey.recoverPasswordBtn=Jelszó visszaállítása
|
||||
@@ -292,8 +284,8 @@ recoveryKey.recover.validKey=Ez egy érvényes visszaállítási kulcs
|
||||
recoveryKey.printout.heading=Cryptomator visszaállítási kulcs\n"%s"\n
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=Írja be az új jelszavát
|
||||
newPassword.reenterPassword=Erősítse meg az új jelszavát
|
||||
newPassword.promptText=Adjon meg egy új jelszót
|
||||
newPassword.reenterPassword=Az új jelszó megerősítése
|
||||
newPassword.passwordsMatch=A jelszavak megegyeznek!
|
||||
newPassword.passwordsDoNotMatch=A jelszavak nem egyeznek meg
|
||||
passwordStrength.messageLabel.tooShort=Használjon legalább %d karaktert
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Password dimenticata
|
||||
# Unlock
|
||||
unlock.title=Sblocca Cassaforte
|
||||
unlock.passwordPrompt=Inserisci la password per "%s":
|
||||
unlock.savePassword=Salva password
|
||||
unlock.savePassword=Ricorda la Password
|
||||
unlock.unlockBtn=Sblocca
|
||||
## Success
|
||||
unlock.success.message=Sbloccato "%s" con successo! La tua cassaforte è ora accessibile.
|
||||
@@ -200,7 +200,7 @@ stats.read.accessCount=Totale lettura: %d
|
||||
stats.write.throughput.idle=Scrivi: inattivo
|
||||
stats.write.throughput.kibs=Scrittura: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Scrittura: %.2f MiB/s
|
||||
stats.write.total.data.none=Dati letti: -
|
||||
stats.write.total.data.none=Dati scritti: -
|
||||
stats.write.total.data.kib=Dati scritti: %.1f kiB
|
||||
stats.write.total.data.mib=Dati scritti: %.1f MiB
|
||||
stats.write.total.data.gib=Dati scritti: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=パスワードを削除
|
||||
# Unlock
|
||||
unlock.title=金庫を解錠
|
||||
unlock.passwordPrompt="%s" のパスワードを入力してください:
|
||||
unlock.savePassword=パスワードを保存
|
||||
unlock.savePassword=パスワードを記憶させる
|
||||
unlock.unlockBtn=解錠
|
||||
## Success
|
||||
unlock.success.message="%s" の解錠に成功しました! 金庫にアクセス可能です。
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=合計読み取り: %d
|
||||
stats.write.throughput.idle=書き込み: アイドル状態
|
||||
stats.write.throughput.kibs=書き込み: %.2f kiB/s
|
||||
stats.write.throughput.mibs=書き込み: %.2f MiB/s
|
||||
stats.write.total.data.none=データ読み込み: -
|
||||
stats.write.total.data.none=書き込み済みデータ: -
|
||||
stats.write.total.data.kib=書き込み済みデータ: %.1f kiB
|
||||
stats.write.total.data.mib=書き込み済みデータ: %.1f MiB
|
||||
stats.write.total.data.gib=書き込み済みデータ: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=비밀번호 분실
|
||||
# Unlock
|
||||
unlock.title=Vault 잠금해제
|
||||
unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요.
|
||||
unlock.savePassword=비밀번호 저장
|
||||
unlock.savePassword=비밀번호 기억
|
||||
unlock.unlockBtn=잠금해제
|
||||
## Success
|
||||
unlock.success.message="%s"의 잠금해제가 성공적으로 수행되었습니다! 이제 이 Vault의 접근이 가능합니다.
|
||||
@@ -149,6 +149,8 @@ preferences.general.theme.automatic=자동
|
||||
preferences.general.theme.light=밝게
|
||||
preferences.general.theme.dark=어둡게
|
||||
preferences.general.unlockThemes=다크모드 해제
|
||||
preferences.general.showMinimizeButton=최소화 버튼 표시
|
||||
preferences.general.showTrayIcon=트레이 아이콘 보기 (재시작 필요)
|
||||
preferences.general.startHidden=Cryptomator를 시작할 때 창 숨김
|
||||
preferences.general.debugLogging=디버그 로그기록을 사용하도록 설정
|
||||
preferences.general.debugDirectory=Log 파일 표시
|
||||
@@ -200,7 +202,7 @@ stats.read.accessCount=총 읽기 횟수: %d
|
||||
stats.write.throughput.idle=쓰기: 대기중
|
||||
stats.write.throughput.kibs=쓰기: %.2f kiB/s
|
||||
stats.write.throughput.mibs=쓰기: %.2f MiB/s
|
||||
stats.write.total.data.none=데이터 읽기: -
|
||||
stats.write.total.data.none=데이터 기록됨: -
|
||||
stats.write.total.data.kib=데이터 쓰기: %.1f kiB
|
||||
stats.write.total.data.mib=데이터 쓰기: %.1f MiB
|
||||
stats.write.total.data.gib=데이터 쓰기: %.1f GiB
|
||||
|
||||
@@ -93,7 +93,6 @@ forgetPassword.confirmBtn=Aizmirst paroli
|
||||
# Unlock
|
||||
unlock.title=Atslēgt glabātuvi
|
||||
unlock.passwordPrompt=Ievadiet "%s" paroli:
|
||||
unlock.savePassword=Saglabāt paroli
|
||||
unlock.unlockBtn=Atslēgt
|
||||
## Success
|
||||
unlock.success.message="%s" sekmīgi atslēgts! Jūsu glabātuve tagad ir pieejama.
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Glem passord
|
||||
# Unlock
|
||||
unlock.title=Lås opp hvelvet
|
||||
unlock.passwordPrompt=Skriv inn passordet for "%s":
|
||||
unlock.savePassword=Lagre passord
|
||||
unlock.unlockBtn=Lås opp
|
||||
## Success
|
||||
unlock.success.message=Vellykket opplåsning av "%s"! Hvelvet ditt er nå tilgjengelig.
|
||||
@@ -202,7 +201,6 @@ stats.read.accessCount=Lesninger totalt: %d
|
||||
stats.write.throughput.idle=Skrive: inaktiv
|
||||
stats.write.throughput.kibs=Skriver: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Skriver: %.2f MiB/s
|
||||
stats.write.total.data.none=Data lest: -
|
||||
stats.write.total.data.kib=Data skrevet: %.1f kiB
|
||||
stats.write.total.data.mib=Data skrevet: %.1f MiB
|
||||
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=Wachtwoord vergeten
|
||||
# Unlock
|
||||
unlock.title=Kluis ontgrendelen
|
||||
unlock.passwordPrompt=Voer wachtwoord voor "%s" in:
|
||||
unlock.savePassword=Wachtwoord Opslaan
|
||||
unlock.unlockBtn=Ontgrendel
|
||||
## Success
|
||||
unlock.success.message="%s" is met succes ontgrendeld! Uw kluis is nu toegankelijk.
|
||||
@@ -202,7 +201,6 @@ stats.read.accessCount=Totaal gelezen: %d
|
||||
stats.write.throughput.idle=Schrijven: inactief
|
||||
stats.write.throughput.kibs=Schrijven: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Schrijven: %.2f MiB/s
|
||||
stats.write.total.data.none=Gegevens gelezen: -
|
||||
stats.write.total.data.kib=Gegevens geschreven: %.1f kiB
|
||||
stats.write.total.data.mib=Gegevens geschreven: %.1f MiB
|
||||
stats.write.total.data.gib=Gegevens geschreven: %.1f GiB
|
||||
|
||||
@@ -94,7 +94,6 @@ forgetPassword.confirmBtn=Gløym passord
|
||||
# Unlock
|
||||
unlock.title=Lås opp kvelven
|
||||
unlock.passwordPrompt=Skriv inn passordet for "%s":
|
||||
unlock.savePassword=Lagre passordet
|
||||
unlock.unlockBtn=Låse opp
|
||||
## Success
|
||||
unlock.success.message=Vellykka opplåsning av "%s"! Kvelven din er no tilgjengeleg.
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ
|
||||
# Unlock
|
||||
unlock.title=ਵਾਲਟ ਅਣ-ਲਾਕ ਕਰੋ
|
||||
unlock.passwordPrompt="%s" ਲਈ ਪਾਸਵਰਡ ਦਿਓ:
|
||||
unlock.savePassword=ਪਾਸਵਰਡ ਸੰਭਾਲੋ
|
||||
unlock.unlockBtn=ਅਣ-ਲਾਕ ਕਰੋ
|
||||
## Success
|
||||
unlock.success.message="%s" ਕਾਮਯਾਬੀ ਨਾਲ ਅਣ-ਲਾਕ ਕੀਤਾ! ਤੁਹਾਡਾ ਵਾਲਟ ਹੁਣ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ।
|
||||
@@ -149,6 +148,8 @@ preferences.general.theme.automatic=ਆਟੋਮੈਟਿਕ
|
||||
preferences.general.theme.light=ਹਲਕਾ
|
||||
preferences.general.theme.dark=ਗੂੜ੍ਹਾ
|
||||
preferences.general.unlockThemes=ਗੂੜ੍ਹਾ ਢੰਗ ਅਣ-ਲਾਕ ਕਰੋ
|
||||
preferences.general.showMinimizeButton=ਘੱਟੋ-ਘੱਟ ਬਟਨ ਦਿਖਾਓ
|
||||
preferences.general.showTrayIcon=ਟਰੇ ਆਈਕਾਨ ਵੇਖਾਓ (ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਹੈ)
|
||||
preferences.general.startHidden=ਜਦੋਂ Cryptomator ਸ਼ੁਰੂ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋ ਲੁਕਾਓ
|
||||
preferences.general.debugLogging=ਡੀਬੱਗ ਲਾਗ ਸਮਰੱਥ ਕਰੋ
|
||||
preferences.general.debugDirectory=ਲਾਗ ਫਾਇਲਾਂ ਦਿਖਾਓ
|
||||
@@ -200,7 +201,6 @@ stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d
|
||||
stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ
|
||||
stats.write.throughput.kibs=ਲਿਖੇ: %.2f kiB/s
|
||||
stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s
|
||||
stats.write.total.data.none=ਡਾਟਾ ਪੜ੍ਹਿਆ: -
|
||||
stats.write.total.data.kib=ਡਾਟਾ ਲਿਖਿਆ: %.1f kiB
|
||||
stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB
|
||||
stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB
|
||||
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Całkowite odczyty: %d
|
||||
stats.write.throughput.idle=Zapis: bezczynny
|
||||
stats.write.throughput.kibs=Zapis: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Zapis: %.2f kiB/s
|
||||
stats.write.total.data.none=Dane odczytywane: -
|
||||
stats.write.total.data.none=Zapisane dane: -
|
||||
stats.write.total.data.kib=Zapisane dane: %.1f kiB
|
||||
stats.write.total.data.mib=Zapisane dane: %.1f MiB
|
||||
stats.write.total.data.gib=Zapisane dane: %.1f kiB
|
||||
|
||||
@@ -86,7 +86,6 @@ forgetPassword.confirmBtn=Esqueci a Senha
|
||||
# Unlock
|
||||
unlock.title=Destrancar Cofre
|
||||
unlock.passwordPrompt=Insira a senha para "%s":
|
||||
unlock.savePassword=Lembrar Senha
|
||||
unlock.unlockBtn=Destrancar
|
||||
## Success
|
||||
unlock.success.message=Desbloqueado "%s" com sucesso! O seu cofre está agora acessível.
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Esquecer Senha
|
||||
# Unlock
|
||||
unlock.title=Desbloquear Cofre
|
||||
unlock.passwordPrompt=Digite a senha para "%s":
|
||||
unlock.savePassword=Salvar Senha
|
||||
unlock.savePassword=Lembrar Senha
|
||||
unlock.unlockBtn=Desbloquear
|
||||
## Success
|
||||
unlock.success.message="%s" foi desbloqueado com sucesso! Seu cofre agora está acessível.
|
||||
@@ -202,7 +202,6 @@ stats.read.accessCount=Total de leituras: %d
|
||||
stats.write.throughput.idle=Escrita: ociosa
|
||||
stats.write.throughput.kibs=Escrita: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Escrita: %.2f MiB/s
|
||||
stats.write.total.data.none=Dados lidos: -
|
||||
stats.write.total.data.kib=Dados gravados: %.1f kiB
|
||||
stats.write.total.data.mib=Dados gravados: %.1f MiB
|
||||
stats.write.total.data.gib=Dados gravados: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Не помню пароль
|
||||
# Unlock
|
||||
unlock.title=Разблокировать хранилище
|
||||
unlock.passwordPrompt=Введите пароль для "%s"
|
||||
unlock.savePassword=Сохранить пароль
|
||||
unlock.savePassword=Запомнить пароль
|
||||
unlock.unlockBtn=Разблокировать
|
||||
## Success
|
||||
unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт.
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Всего операций чтения: %d
|
||||
stats.write.throughput.idle=Запись: бездействие
|
||||
stats.write.throughput.kibs=Запись: %.2f КиБ/с
|
||||
stats.write.throughput.mibs=Запись: %.2f МиБ/с
|
||||
stats.write.total.data.none=Прочитано: -
|
||||
stats.write.total.data.none=Записано данных: -
|
||||
stats.write.total.data.kib=Записано: %.1f КиБ
|
||||
stats.write.total.data.mib=Записано: %.1f МиБ
|
||||
stats.write.total.data.gib=Записано: %.1f ГиБ
|
||||
|
||||
@@ -93,7 +93,7 @@ forgetPassword.confirmBtn=Zabudnuté heslo
|
||||
# Unlock
|
||||
unlock.title=Odomknúť trezor
|
||||
unlock.passwordPrompt=Zadajte heslo pre "%s":
|
||||
unlock.savePassword=Uložiť heslo
|
||||
unlock.savePassword=Odomknúť.uložiťHeslo
|
||||
unlock.unlockBtn=Odomknúť
|
||||
## Success
|
||||
unlock.success.message=Úspešne sa odomkol "%s"! Váš trezor je teraz prístupný.
|
||||
@@ -125,6 +125,8 @@ migration.success.unlockNow=Odomknúť teraz
|
||||
preferences.title=Predvoľby
|
||||
## General
|
||||
preferences.general.theme.automatic=Automaticky
|
||||
preferences.general.showMinimizeButton=Predvoľba.hlavná.ukážMinimalizujTlačítko
|
||||
preferences.general.showTrayIcon=Predvoľba.hlavná.ukážIkonaSytémovejlišty
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.SecretServiceKeychainAccess=Gnome klúčenka
|
||||
preferences.general.keychainBackend.org.cryptomator.linux.keychain.KDEWalletKeychainAccess=KDE účet
|
||||
preferences.general.keychainBackend.org.cryptomator.macos.keychain.MacSystemKeychainAccess=maccOS reťazový prístup
|
||||
@@ -154,7 +156,7 @@ stats.read.accessCount=Spolu načítané: %d
|
||||
stats.write.throughput.idle=Zápis: nečinnosť
|
||||
stats.write.throughput.kibs=Zápis: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Zápis: %.2f MiB/s
|
||||
stats.write.total.data.none=Čítanie dát: -
|
||||
stats.write.total.data.none=štatistika.zápis.celkové.dáta.nič
|
||||
stats.write.total.data.kib=Zapísaných dát: %.1f kiB
|
||||
stats.write.total.data.mib=Zapísaných dát: %.1f MiB
|
||||
stats.write.total.data.gib=Zapísaných dát: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Glöm lösenord
|
||||
# Unlock
|
||||
unlock.title=Lås upp valv
|
||||
unlock.passwordPrompt=Ange lösenord för "%s":
|
||||
unlock.savePassword=Spara lösenord
|
||||
unlock.savePassword=Kom ihåg lösenord
|
||||
unlock.unlockBtn=Lås upp
|
||||
## Success
|
||||
unlock.success.message="%s" upplåst! Ditt valv är nu åtkomligt.
|
||||
@@ -109,7 +109,12 @@ unlock.error.invalidMountPoint.existing=Monteringspunkten "%s" finns redan eller
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.heading=Normal låsning misslyckades
|
||||
lock.forced.message=Låsning av "%s" förhindras av pågående operationer eller öppna filer. Du kan tvinga låsning av detta valv, men det kan resultera i förlust av osparade data.
|
||||
lock.forced.confirmBtn=Tvinga låsning
|
||||
## Failure
|
||||
lock.fail.heading=Låsning av valv misslyckades.
|
||||
lock.fail.message=Valvet "%s" kunde inte låsas. Se till att osparat arbete sparas någon annanstans och viktiga läs- och skrivfunktioner är klara. För att stänga valvet, avsluta Cryptomator-processen.
|
||||
|
||||
# Migration
|
||||
migration.title=Uppgradera valv
|
||||
@@ -144,6 +149,8 @@ preferences.general.theme.automatic=Automatiskt
|
||||
preferences.general.theme.light=Ljust
|
||||
preferences.general.theme.dark=Mörkt
|
||||
preferences.general.unlockThemes=Lås upp mörkt läge
|
||||
preferences.general.showMinimizeButton=Visa minimera knappen
|
||||
preferences.general.showTrayIcon=Visa tray-ikon (kräver omstart)
|
||||
preferences.general.startHidden=Dölj fönster när Cryptomator startar
|
||||
preferences.general.debugLogging=Aktivera loggning för felsökning
|
||||
preferences.general.debugDirectory=Visa loggfiler
|
||||
@@ -195,7 +202,7 @@ stats.read.accessCount=Totalt läst: %d
|
||||
stats.write.throughput.idle=Skriv: inaktiv
|
||||
stats.write.throughput.kibs=Skriv: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Skriv: %.2f MiB/s
|
||||
stats.write.total.data.none=Data läst: -
|
||||
stats.write.total.data.none=Data skrivet: -
|
||||
stats.write.total.data.kib=Data skrivet: %.1f kiB
|
||||
stats.write.total.data.mib=Data skrivet: %.1f MiB
|
||||
stats.write.total.data.gib=Data skrivet: %.1f GiB
|
||||
|
||||
@@ -95,7 +95,7 @@ forgetPassword.confirmBtn=Şifreyi Unut
|
||||
# Unlock
|
||||
unlock.title=Kasa Kilidini Aç
|
||||
unlock.passwordPrompt="%s" için şifre girin:
|
||||
unlock.savePassword=Şifreyi Kaydet
|
||||
unlock.savePassword=Şifreyi Hatırla
|
||||
unlock.unlockBtn=Kilidi Aç
|
||||
## Success
|
||||
unlock.success.message="%s" 'nin kilidi başarıyla açıldı! Kasanız şimdi erişilebilir durumda.
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=Toplam okuma: %d
|
||||
stats.write.throughput.idle=Yazma: boşta
|
||||
stats.write.throughput.kibs=Yazma: %.2f kB/s
|
||||
stats.write.throughput.mibs=Yazma: %.2f MB/s
|
||||
stats.write.total.data.none=Yazılan veri: -
|
||||
stats.write.total.data.none=Yazılmış veri: -
|
||||
stats.write.total.data.kib=Yazılan veri: %.1f kB
|
||||
stats.write.total.data.mib=Yazılan veri: %.1f MB
|
||||
stats.write.total.data.gib=Yazılan veri: %.1f GB
|
||||
|
||||
@@ -202,7 +202,7 @@ stats.read.accessCount=读取总数:%d
|
||||
stats.write.throughput.idle=写入:空闲
|
||||
stats.write.throughput.kibs=写入:%.2f kiB/s
|
||||
stats.write.throughput.mibs=写入:%.2f MiB/s
|
||||
stats.write.total.data.none=已读取数据:-
|
||||
stats.write.total.data.none=已写入数据: -
|
||||
stats.write.total.data.kib=已写入数据:%.1f kiB
|
||||
stats.write.total.data.mib=已写入数据:%.1f MiB
|
||||
stats.write.total.data.gib=已写入数据:%.1f GiB
|
||||
|
||||
@@ -95,7 +95,6 @@ forgetPassword.confirmBtn=忘記密碼
|
||||
# Unlock
|
||||
unlock.title=解鎖加密檔案庫
|
||||
unlock.passwordPrompt=輸入 "%s" 的密碼:
|
||||
unlock.savePassword=儲存密碼
|
||||
unlock.unlockBtn=解鎖
|
||||
## Success
|
||||
unlock.success.message=成功解鎖 "%s"!您現在可以存取您的加密檔案庫。
|
||||
@@ -202,7 +201,7 @@ stats.read.accessCount=總讀取:%d
|
||||
stats.write.throughput.idle=寫入:閒置
|
||||
stats.write.throughput.kibs=寫入:%.2f kiB/s
|
||||
stats.write.throughput.mibs=寫入:%.2f MiB/s
|
||||
stats.write.total.data.none=資料讀取:無
|
||||
stats.write.total.data.none=已寫入資料:-
|
||||
stats.write.total.data.kib=資料寫入:%.1f kiB
|
||||
stats.write.total.data.mib=資料寫入:%.1f MiB
|
||||
stats.write.total.data.gib=資料寫入:%.1f GiB
|
||||
|
||||
@@ -48,18 +48,22 @@ class RecoveryKeyFactoryTest {
|
||||
@Test
|
||||
@DisplayName("validateRecoveryKey() with invalid checksum")
|
||||
public void testValidateValidateRecoveryKeyWithInvalidCrc() {
|
||||
boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" //
|
||||
+ " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" //
|
||||
+ " depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong");
|
||||
boolean result = inTest.validateRecoveryKey("""
|
||||
pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \
|
||||
border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \
|
||||
investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup wrong \
|
||||
""");
|
||||
Assertions.assertFalse(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("validateRecoveryKey() with valid input")
|
||||
public void testValidateValidateRecoveryKeyWithValidKey() {
|
||||
boolean result = inTest.validateRecoveryKey("pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe" //
|
||||
+ " charity border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed investor boot" //
|
||||
+ " depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad");
|
||||
boolean result = inTest.validateRecoveryKey("""
|
||||
pathway lift abuse plenty export texture gentleman landscape beyond ceiling around leaf cafe charity \
|
||||
border breakdown victory surely computer cat linger restrict infer crowd live computer true written amazed \
|
||||
investor boot depth left theory snow whereby terminal weekly reject happiness circuit partial cup ad \
|
||||
""");
|
||||
Assertions.assertTrue(result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user