mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-18 02:31:27 +00:00
Compare commits
2 Commits
1.15.2
...
feature/hy
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d521c3f78 | ||
|
|
737d7e6317 |
5
.github/workflows/release-check.yml
vendored
5
.github/workflows/release-check.yml
vendored
@@ -57,6 +57,11 @@ jobs:
|
|||||||
dependency-check
|
dependency-check
|
||||||
env:
|
env:
|
||||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||||
|
- name: Validate urls used in app
|
||||||
|
uses: urlstechie/urlchecker-action@0.0.34
|
||||||
|
with:
|
||||||
|
file_types: .md,.json
|
||||||
|
include_files: README.md,src/main/resources/hyperlinks.json
|
||||||
- name: Run org.owasp:dependency-check plugin
|
- name: Run org.owasp:dependency-check plugin
|
||||||
id: dependency-check
|
id: dependency-check
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Copyright 2018 Armin Schrenk <armin.schrenk@zoho.eu> -->
|
||||||
<component type="desktop-application">
|
<component type="desktop-application">
|
||||||
<id>org.cryptomator.Cryptomator</id>
|
<id>org.cryptomator.Cryptomator</id>
|
||||||
<metadata_license>FSFAP</metadata_license>
|
<metadata_license>FSFAP</metadata_license>
|
||||||
<project_license>GPL-3.0-or-later</project_license>
|
<project_license>GPL-3.0-or-later</project_license>
|
||||||
<name>Cryptomator</name>
|
<name>Cryptomator</name>
|
||||||
<summary>Encryption for your cloud made easy</summary>
|
<summary>Encryption made easy and optimized for the cloud</summary>
|
||||||
|
|
||||||
<description>
|
<description>
|
||||||
<p>
|
<p>
|
||||||
@@ -43,16 +44,12 @@
|
|||||||
|
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
<caption>Encrypt your data, protect your privacy</caption>
|
<caption>Light theme</caption>
|
||||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlocked_light.png</image>
|
<image>https://user-images.githubusercontent.com/11858409/156986109-6e58f59c-8b8c-4501-b33b-bb1e33007cea.png</image>
|
||||||
</screenshot>
|
</screenshot>
|
||||||
<screenshot>
|
<screenshot>
|
||||||
<caption>Dark theme available</caption>
|
<caption>Dark theme</caption>
|
||||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlock_dark.png</image>
|
<image>https://user-images.githubusercontent.com/11858409/156986113-6c5d7801-86e0-4643-bc2f-aff9d95d3ce0.png</image>
|
||||||
</screenshot>
|
|
||||||
<screenshot>
|
|
||||||
<caption>Uses AES-GCM 256 - an industry standardized, quantum resistant encryption</caption>
|
|
||||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlockDialog_light.png</image>
|
|
||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
|
|
||||||
@@ -77,12 +74,6 @@
|
|||||||
</content_rating>
|
</content_rating>
|
||||||
|
|
||||||
<releases>
|
<releases>
|
||||||
<release date="2025-04-04" version="1.15.2">
|
|
||||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.2</url>
|
|
||||||
</release>
|
|
||||||
<release date="2025-02-05" version="1.15.1">
|
|
||||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.1</url>
|
|
||||||
</release>
|
|
||||||
<release date="2025-02-03" version="1.15.0">
|
<release date="2025-02-03" version="1.15.0">
|
||||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.0</url>
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.0</url>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
15
pom.xml
15
pom.xml
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptomator</artifactId>
|
<artifactId>cryptomator</artifactId>
|
||||||
<version>1.15.2</version>
|
<version>1.16.0-SNAPSHOT</version>
|
||||||
<name>Cryptomator Desktop App</name>
|
<name>Cryptomator Desktop App</name>
|
||||||
|
|
||||||
<organization>
|
<organization>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
||||||
<cryptomator.integrations.linux.version>1.5.2</cryptomator.integrations.linux.version>
|
<cryptomator.integrations.linux.version>1.5.2</cryptomator.integrations.linux.version>
|
||||||
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
||||||
<cryptomator.webdav.version>2.0.10</cryptomator.webdav.version>
|
<cryptomator.webdav.version>2.0.7</cryptomator.webdav.version>
|
||||||
|
|
||||||
<!-- 3rd party dependencies -->
|
<!-- 3rd party dependencies -->
|
||||||
<commons-lang3.version>3.17.0</commons-lang3.version>
|
<commons-lang3.version>3.17.0</commons-lang3.version>
|
||||||
@@ -75,17 +75,6 @@
|
|||||||
<surefire.jacoco.args></surefire.jacoco.args>
|
<surefire.jacoco.args></surefire.jacoco.args>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencyManagement>
|
|
||||||
<dependencies>
|
|
||||||
<!-- TODO: remove once fuse-nio-adapter is updated -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.cryptomator</groupId>
|
|
||||||
<artifactId>jfuse</artifactId>
|
|
||||||
<version>0.7.2</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</dependencyManagement>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Cryptomator Libs -->
|
<!-- Cryptomator Libs -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|||||||
31
src/main/java/org/cryptomator/common/Hyperlinks.java
Normal file
31
src/main/java/org/cryptomator/common/Hyperlinks.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package org.cryptomator.common;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public record Hyperlinks(String docsVolumeType, String docsGettingStarted, String homepageHub) {
|
||||||
|
|
||||||
|
private static final ObjectMapper JSON_DESERIALIZER = new ObjectMapper();
|
||||||
|
/*
|
||||||
|
String docsAccessingVaults;
|
||||||
|
String docsExpertSettings;
|
||||||
|
String docsManualMigration;
|
||||||
|
String homepageDownload;
|
||||||
|
String homepageHub;
|
||||||
|
String homepageDonate;
|
||||||
|
String homepageSponsors;
|
||||||
|
String storeDesktop;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
public static Hyperlinks load() {
|
||||||
|
try {
|
||||||
|
return JSON_DESERIALIZER.readValue(Hyperlinks.class.getResource("/hyperlinks.json"), Hyperlinks.class);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ package org.cryptomator.launcher;
|
|||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import org.cryptomator.common.Hyperlinks;
|
||||||
import org.cryptomator.integrations.autostart.AutoStartProvider;
|
import org.cryptomator.integrations.autostart.AutoStartProvider;
|
||||||
import org.cryptomator.integrations.tray.TrayIntegrationProvider;
|
import org.cryptomator.integrations.tray.TrayIntegrationProvider;
|
||||||
import org.cryptomator.integrations.uiappearance.UiAppearanceProvider;
|
import org.cryptomator.integrations.uiappearance.UiAppearanceProvider;
|
||||||
@@ -23,6 +24,12 @@ class CryptomatorModule {
|
|||||||
return ResourceBundle.getBundle("i18n.strings");
|
return ResourceBundle.getBundle("i18n.strings");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
static Hyperlinks provideHyperlinks() {
|
||||||
|
return Hyperlinks.load();
|
||||||
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
@Named("launchEventQueue")
|
@Named("launchEventQueue")
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ public class CreateNewVaultExpertSettingsController implements FxController {
|
|||||||
|
|
||||||
public static final int MAX_SHORTENING_THRESHOLD = 220;
|
public static final int MAX_SHORTENING_THRESHOLD = 220;
|
||||||
public static final int MIN_SHORTENING_THRESHOLD = 36;
|
public static final int MIN_SHORTENING_THRESHOLD = 36;
|
||||||
private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/security/architecture/#name-shortening";
|
private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/en/1.7/security/architecture/#name-shortening";
|
||||||
|
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
private final Lazy<Application> application;
|
private final Lazy<Application> application;
|
||||||
|
|||||||
@@ -36,7 +36,6 @@ import javafx.stage.Stage;
|
|||||||
import javafx.stage.WindowEvent;
|
import javafx.stage.WindowEvent;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
|
|
||||||
@PassphraseEntryScoped
|
@PassphraseEntryScoped
|
||||||
public class PassphraseEntryController implements FxController {
|
public class PassphraseEntryController implements FxController {
|
||||||
@@ -50,7 +49,6 @@ public class PassphraseEntryController implements FxController {
|
|||||||
private final ForgetPasswordComponent.Builder forgetPassword;
|
private final ForgetPasswordComponent.Builder forgetPassword;
|
||||||
private final KeychainManager keychain;
|
private final KeychainManager keychain;
|
||||||
private final StringBinding vaultName;
|
private final StringBinding vaultName;
|
||||||
private final ExecutorService backgroundExecutorService;
|
|
||||||
private final BooleanProperty unlockInProgress = new SimpleBooleanProperty();
|
private final BooleanProperty unlockInProgress = new SimpleBooleanProperty();
|
||||||
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay = Bindings.when(unlockInProgress).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay = Bindings.when(unlockInProgress).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
||||||
private final BooleanProperty unlockButtonDisabled = new SimpleBooleanProperty();
|
private final BooleanProperty unlockButtonDisabled = new SimpleBooleanProperty();
|
||||||
@@ -66,7 +64,7 @@ public class PassphraseEntryController implements FxController {
|
|||||||
public Animation unlockAnimation;
|
public Animation unlockAnimation;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain, ExecutorService backgroundExecutorService) {
|
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
this.vault = vault;
|
this.vault = vault;
|
||||||
this.result = result;
|
this.result = result;
|
||||||
@@ -74,8 +72,8 @@ public class PassphraseEntryController implements FxController {
|
|||||||
this.forgetPassword = forgetPassword;
|
this.forgetPassword = forgetPassword;
|
||||||
this.keychain = keychain;
|
this.keychain = keychain;
|
||||||
this.vaultName = WeakBindings.bindString(vault.displayNameProperty());
|
this.vaultName = WeakBindings.bindString(vault.displayNameProperty());
|
||||||
this.backgroundExecutorService = backgroundExecutorService;
|
|
||||||
window.setOnHiding(this::windowClosed);
|
window.setOnHiding(this::windowClosed);
|
||||||
|
result.whenCompleteAsync((r, t) -> unlockInProgress.set(false), Platform::runLater);
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -121,6 +119,8 @@ public class PassphraseEntryController implements FxController {
|
|||||||
new KeyFrame(Duration.millis(800), legsExtendedY, legsExtendedX, faceHidden), //
|
new KeyFrame(Duration.millis(800), legsExtendedY, legsExtendedX, faceHidden), //
|
||||||
new KeyFrame(Duration.millis(1000), faceVisible) //
|
new KeyFrame(Duration.millis(1000), faceVisible) //
|
||||||
);
|
);
|
||||||
|
|
||||||
|
result.whenCompleteAsync((r, t) -> stopUnlockAnimation());
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -133,9 +133,6 @@ public class PassphraseEntryController implements FxController {
|
|||||||
result.cancel(true);
|
result.cancel(true);
|
||||||
LOG.debug("Unlock canceled by user.");
|
LOG.debug("Unlock canceled by user.");
|
||||||
}
|
}
|
||||||
if( passwordField != null) {
|
|
||||||
passwordField.getCharacters().destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,7 +142,7 @@ public class PassphraseEntryController implements FxController {
|
|||||||
unlockInProgress.set(true);
|
unlockInProgress.set(true);
|
||||||
CharSequence pwFieldContents = passwordField.getCharacters();
|
CharSequence pwFieldContents = passwordField.getCharacters();
|
||||||
Passphrase pw = Passphrase.copyOf(pwFieldContents);
|
Passphrase pw = Passphrase.copyOf(pwFieldContents);
|
||||||
result.completeAsync(() -> new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()), backgroundExecutorService);
|
result.complete(new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()));
|
||||||
startUnlockAnimation();
|
startUnlockAnimation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import javafx.fxml.FXML;
|
|||||||
public class WelcomeController implements FxController {
|
public class WelcomeController implements FxController {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
|
private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
|
||||||
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/desktop/getting-started/";
|
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/en/1.7/desktop/getting-started/";
|
||||||
|
|
||||||
private final Application application;
|
private final Application application;
|
||||||
private final BooleanBinding noVaultPresent;
|
private final BooleanBinding noVaultPresent;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import javafx.stage.Stage;
|
|||||||
|
|
||||||
public class MigrationImpossibleController implements FxController {
|
public class MigrationImpossibleController implements FxController {
|
||||||
|
|
||||||
private static final String HELP_URI = "https://docs.cryptomator.org/help/manual-migration/";
|
private static final String HELP_URI = "https://docs.cryptomator.org/en/1.7/help/manual-migration/";
|
||||||
|
|
||||||
private final Application application;
|
private final Application application;
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import java.util.ResourceBundle;
|
|||||||
@PreferencesScoped
|
@PreferencesScoped
|
||||||
public class VolumePreferencesController implements FxController {
|
public class VolumePreferencesController implements FxController {
|
||||||
|
|
||||||
public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/desktop/volume-type/";
|
public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/en/1.7/desktop/volume-type/";
|
||||||
public static final int MIN_PORT = 1024;
|
public static final int MIN_PORT = 1024;
|
||||||
public static final int MAX_PORT = 65535;
|
public static final int MAX_PORT = 65535;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.cryptomator.ui.sharevault;
|
package org.cryptomator.ui.sharevault;
|
||||||
|
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
|
import org.cryptomator.common.Hyperlinks;
|
||||||
import org.cryptomator.common.vaults.Vault;
|
import org.cryptomator.common.vaults.Vault;
|
||||||
import org.cryptomator.ui.common.FxController;
|
import org.cryptomator.ui.common.FxController;
|
||||||
import org.cryptomator.ui.keyloading.hub.HubKeyLoadingStrategy;
|
import org.cryptomator.ui.keyloading.hub.HubKeyLoadingStrategy;
|
||||||
@@ -18,9 +19,9 @@ import java.net.URISyntaxException;
|
|||||||
public class ShareVaultController implements FxController {
|
public class ShareVaultController implements FxController {
|
||||||
|
|
||||||
private static final String SCHEME_PREFIX = "hub+";
|
private static final String SCHEME_PREFIX = "hub+";
|
||||||
private static final String VISIT_HUB_URL = "https://cryptomator.org/hub/";
|
|
||||||
private static final String BEST_PRACTICES_URL = "https://docs.cryptomator.org/en/latest/security/best-practices/#sharing-of-vaults";
|
private static final String BEST_PRACTICES_URL = "https://docs.cryptomator.org/en/latest/security/best-practices/#sharing-of-vaults";
|
||||||
|
|
||||||
|
private final String VISIT_HUB_URL;
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
private final Lazy<Application> application;
|
private final Lazy<Application> application;
|
||||||
private final Vault vault;
|
private final Vault vault;
|
||||||
@@ -29,10 +30,12 @@ public class ShareVaultController implements FxController {
|
|||||||
@Inject
|
@Inject
|
||||||
ShareVaultController(@ShareVaultWindow Stage window, //
|
ShareVaultController(@ShareVaultWindow Stage window, //
|
||||||
Lazy<Application> application, //
|
Lazy<Application> application, //
|
||||||
|
Hyperlinks links, //
|
||||||
@ShareVaultWindow Vault vault) {
|
@ShareVaultWindow Vault vault) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
this.application = application;
|
this.application = application;
|
||||||
this.vault = vault;
|
this.vault = vault;
|
||||||
|
this.VISIT_HUB_URL =links.homepageHub();
|
||||||
var vaultScheme = vault.getVaultConfigCache().getUnchecked().getKeyId().getScheme();
|
var vaultScheme = vault.getVaultConfigCache().getUnchecked().getKeyId().getScheme();
|
||||||
this.hubVault = (vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTP) || vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTPS));
|
this.hubVault = (vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTP) || vaultScheme.equals(HubKeyLoadingStrategy.SCHEME_HUB_HTTPS));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import java.io.UncheckedIOException;
|
|||||||
@WrongFileAlertScoped
|
@WrongFileAlertScoped
|
||||||
public class WrongFileAlertController implements FxController {
|
public class WrongFileAlertController implements FxController {
|
||||||
|
|
||||||
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/desktop/accessing-vaults/";
|
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/en/1.7/desktop/accessing-vaults/";
|
||||||
|
|
||||||
private final Application app;
|
private final Application app;
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
|
|||||||
4
src/main/resources/hyperlinks.json
Normal file
4
src/main/resources/hyperlinks.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"docsGettingStarted": "https://docs.cryptomator.org/desktop/getting-started/",
|
||||||
|
"homepageHub": "https://cryptomator.org/hub"
|
||||||
|
}
|
||||||
@@ -107,7 +107,6 @@ addvaultwizard.success.unlockNow=Unlock Now
|
|||||||
removeVault.title=Remove "%s"
|
removeVault.title=Remove "%s"
|
||||||
removeVault.message=Remove vault?
|
removeVault.message=Remove vault?
|
||||||
removeVault.description=This will only make Cryptomator forget about this vault. You can add it again. No encrypted files will be deleted from your hard drive.
|
removeVault.description=This will only make Cryptomator forget about this vault. You can add it again. No encrypted files will be deleted from your hard drive.
|
||||||
removeVault.confirmBtn=Remove Vault
|
|
||||||
|
|
||||||
# Change Password
|
# Change Password
|
||||||
changepassword.title=Change Password
|
changepassword.title=Change Password
|
||||||
|
|||||||
198
src/main/resources/i18n/strings_en.properties
Normal file
198
src/main/resources/i18n/strings_en.properties
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
# Locale Specific CSS files such as CJK, RTL,...
|
||||||
|
|
||||||
|
# Generics
|
||||||
|
## Button
|
||||||
|
generic.button.apply=Apply
|
||||||
|
generic.button.back=Back
|
||||||
|
generic.button.cancel=Cancel
|
||||||
|
generic.button.change=Change
|
||||||
|
generic.button.choose=Choose…
|
||||||
|
generic.button.close=Close
|
||||||
|
generic.button.done=Done
|
||||||
|
generic.button.next=Next
|
||||||
|
|
||||||
|
# Error
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
|
||||||
|
# Tray Menu
|
||||||
|
traymenu.showMainWindow=Show
|
||||||
|
traymenu.showPreferencesWindow=Preferences
|
||||||
|
traymenu.quitApplication=Quit
|
||||||
|
traymenu.vault.unlock=Unlock
|
||||||
|
traymenu.vault.lock=Lock
|
||||||
|
traymenu.vault.reveal=Reveal
|
||||||
|
|
||||||
|
# Add Vault Wizard
|
||||||
|
addvaultwizard.title=Add Vault
|
||||||
|
## New
|
||||||
|
### Name
|
||||||
|
addvaultwizard.new.nameInstruction=Choose a name for the vault
|
||||||
|
addvaultwizard.new.namePrompt=Vault Name
|
||||||
|
### Location
|
||||||
|
addvaultwizard.new.locationInstruction=Where should Cryptomator store the encrypted files of your vault?
|
||||||
|
addvaultwizard.new.locationLabel=Storage location
|
||||||
|
addvaultwizard.new.locationPrompt=…
|
||||||
|
addvaultwizard.new.directoryPickerButton=Choose…
|
||||||
|
addvaultwizard.new.directoryPickerTitle=Select Directory
|
||||||
|
### Expert Settings
|
||||||
|
### Password
|
||||||
|
addvaultwizard.new.createVaultBtn=Create Vault
|
||||||
|
### Information
|
||||||
|
## Existing
|
||||||
|
addvaultwizard.existing.chooseBtn=Choose…
|
||||||
|
## Success
|
||||||
|
addvaultwizard.success.nextStepsInstructions=Added vault "%s".\nYou need to unlock this vault to access or add contents. Alternatively you can unlock it at any later point in time.
|
||||||
|
addvaultwizard.success.unlockNow=Unlock Now
|
||||||
|
|
||||||
|
# Remove Vault
|
||||||
|
removeVault.confirmBtn=Remove Vault
|
||||||
|
|
||||||
|
# Change Password
|
||||||
|
changepassword.title=Change Password
|
||||||
|
changepassword.enterOldPassword=Enter the current password for "%s"
|
||||||
|
|
||||||
|
# Forget Password
|
||||||
|
forgetPassword.title=Forget Password
|
||||||
|
forgetPassword.confirmBtn=Forget Password
|
||||||
|
|
||||||
|
# Unlock
|
||||||
|
unlock.passwordPrompt=Enter password for "%s":
|
||||||
|
unlock.unlockBtn=Unlock
|
||||||
|
## Select
|
||||||
|
unlock.chooseMasterkey.filePickerTitle=Select Masterkey File
|
||||||
|
## Success
|
||||||
|
unlock.success.revealBtn=Reveal Drive
|
||||||
|
## Failure
|
||||||
|
## Hub
|
||||||
|
### Waiting
|
||||||
|
### Receive Key
|
||||||
|
### Register Device
|
||||||
|
### Register Device Legacy
|
||||||
|
### Registration Success
|
||||||
|
hub.registerSuccess.unlockBtn=Unlock
|
||||||
|
### Registration Failed
|
||||||
|
### Unauthorized
|
||||||
|
### Requires Account Initialization
|
||||||
|
### License Exceeded
|
||||||
|
|
||||||
|
# Lock
|
||||||
|
## Force
|
||||||
|
## Failure
|
||||||
|
|
||||||
|
# Migration
|
||||||
|
migration.title=Upgrade Vault
|
||||||
|
## Start
|
||||||
|
migration.start.header=Upgrade Vault
|
||||||
|
## Run
|
||||||
|
migration.run.enterPassword=Enter the password for "%s"
|
||||||
|
migration.run.startMigrationBtn=Migrate Vault
|
||||||
|
## Success
|
||||||
|
migration.success.nextStepsInstructions=Migrated "%s" successfully.\nYou can now unlock your vault.
|
||||||
|
migration.success.unlockNow=Unlock Now
|
||||||
|
## Missing file system capabilities
|
||||||
|
## Impossible
|
||||||
|
|
||||||
|
# Health Check
|
||||||
|
## Start
|
||||||
|
## Start Failure
|
||||||
|
## Check Selection
|
||||||
|
## Detail view
|
||||||
|
## Result view
|
||||||
|
## Fix Application
|
||||||
|
|
||||||
|
# Preferences
|
||||||
|
preferences.title=Preferences
|
||||||
|
## General
|
||||||
|
preferences.general=General
|
||||||
|
preferences.general.startHidden=Hide window when starting Cryptomator
|
||||||
|
preferences.general.debugLogging=Enable debug logging
|
||||||
|
## Interface
|
||||||
|
## Volume
|
||||||
|
preferences.volume=Virtual Drive
|
||||||
|
## Updates
|
||||||
|
preferences.updates=Updates
|
||||||
|
preferences.updates.currentVersion=Current Version: %s
|
||||||
|
preferences.updates.autoUpdateCheck=Check for updates automatically
|
||||||
|
preferences.updates.checkNowBtn=Check Now
|
||||||
|
preferences.updates.updateAvailable=Update to version %s available.
|
||||||
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
# Vault Statistics
|
||||||
|
## Read
|
||||||
|
## Write
|
||||||
|
|
||||||
|
## Accesses
|
||||||
|
|
||||||
|
|
||||||
|
# Main Window
|
||||||
|
## Vault List
|
||||||
|
main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault
|
||||||
|
main.vaultlist.contextMenu.lock=Lock
|
||||||
|
main.vaultlist.contextMenu.unlockNow=Unlock Now
|
||||||
|
main.vaultlist.contextMenu.reveal=Reveal Drive
|
||||||
|
##Notificaition
|
||||||
|
## Vault Detail
|
||||||
|
### Welcome
|
||||||
|
### Locked
|
||||||
|
main.vaultDetail.lockedStatus=LOCKED
|
||||||
|
main.vaultDetail.unlockNowBtn=Unlock Now
|
||||||
|
main.vaultDetail.optionsBtn=Vault Options
|
||||||
|
### Unlocked
|
||||||
|
main.vaultDetail.unlockedStatus=UNLOCKED
|
||||||
|
main.vaultDetail.accessLocation=Your vault's contents are accessible here:
|
||||||
|
main.vaultDetail.revealBtn=Reveal Drive
|
||||||
|
main.vaultDetail.lockBtn=Lock
|
||||||
|
main.vaultDetail.throughput.idle=idle
|
||||||
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
|
### Missing
|
||||||
|
### Needs Migration
|
||||||
|
main.vaultDetail.migrateButton=Upgrade Vault
|
||||||
|
### Error
|
||||||
|
|
||||||
|
# Wrong File Alert
|
||||||
|
|
||||||
|
# Vault Options
|
||||||
|
## General
|
||||||
|
vaultOptions.general=General
|
||||||
|
vaultOptions.general.vaultName=Vault Name
|
||||||
|
vaultOptions.general.actionAfterUnlock.reveal=Reveal Drive
|
||||||
|
|
||||||
|
## Mount
|
||||||
|
vaultOptions.mount=Mounting
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerButton=Choose…
|
||||||
|
## Master Key
|
||||||
|
vaultOptions.masterkey.changePasswordBtn=Change Password
|
||||||
|
## Hub
|
||||||
|
|
||||||
|
# Recovery Key
|
||||||
|
## Display Recovery Key
|
||||||
|
## Reset Password
|
||||||
|
### Enter Recovery Key
|
||||||
|
### Reset Password
|
||||||
|
### Recovery Key Password Reset Success
|
||||||
|
|
||||||
|
# Convert Vault
|
||||||
|
|
||||||
|
# New Password
|
||||||
|
passwordStrength.messageLabel.0=Very weak
|
||||||
|
passwordStrength.messageLabel.1=Weak
|
||||||
|
passwordStrength.messageLabel.2=Fair
|
||||||
|
passwordStrength.messageLabel.3=Strong
|
||||||
|
passwordStrength.messageLabel.4=Very strong
|
||||||
|
|
||||||
|
# Quit
|
||||||
|
|
||||||
|
# Forced Quit
|
||||||
|
|
||||||
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
|
# Share Vault
|
||||||
@@ -6,7 +6,7 @@ generic.button.apply=적용
|
|||||||
generic.button.back=이전
|
generic.button.back=이전
|
||||||
generic.button.cancel=취소
|
generic.button.cancel=취소
|
||||||
generic.button.change=변경
|
generic.button.change=변경
|
||||||
generic.button.choose=선택…
|
generic.button.choose=선택
|
||||||
generic.button.close=닫기
|
generic.button.close=닫기
|
||||||
generic.button.copy=복사
|
generic.button.copy=복사
|
||||||
generic.button.copied=복사됨!
|
generic.button.copied=복사됨!
|
||||||
@@ -16,16 +16,16 @@ generic.button.print=인쇄
|
|||||||
generic.button.remove=제거
|
generic.button.remove=제거
|
||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=오류 발생
|
error.message=오류가 발생했습니다
|
||||||
error.description=예상치 못한 에러가 발생했습니다. 해결법을 검색하십시오. 만약 보고된 적이 없는 에러일 경우, 새로 신고해도 좋습니다.
|
error.description=예상치 못한 에러가 발생했습니다. 온라인에 에러를 검색해서 해결하십시오. 만약 신고된 적이 없는 에러일 경우, 새로 신고해도 좋습니다.
|
||||||
error.hyperlink.lookup=에러 검색하기
|
error.hyperlink.lookup=에러 검색하기
|
||||||
error.hyperlink.report=에러 보고하기
|
error.hyperlink.report=에러 보고하기
|
||||||
error.technicalDetails=상세 정보:
|
error.technicalDetails=상세 정보:
|
||||||
error.existingSolutionDescription=Cryptomator에 알 수 없는 문제가 발생했습니다. 하지만 이 오류에 대한 기존 해결법이 있습니다. 다음 링크를 살펴보십시오.
|
error.existingSolutionDescription=Cryptomator에 알수 없는 문제가 발생했습니다. 하지만 이 오류에 대한 기존 해결책이 있습니다. 다음 링크를 살펴보시기 바랍니다.
|
||||||
error.hyperlink.solution=해결법 찾기
|
error.hyperlink.solution=솔루션 찾기
|
||||||
error.lookupPermissionMessage=Cryptomator는 온라인에서 이 문제에 대한 해결책을 찾아볼 수 있습니다. 그러면 귀하의 IP 주소가 문제 데이터베이스로 전송됩니다.
|
error.lookupPermissionMessage=Cryptomator는 온라인에서 이 문제에 대한 해결책을 찾아볼 수 있습니다. 그러면 귀하의 IP 주소가 문제 데이터베이스로 전송됩니다.
|
||||||
error.dismiss=무시
|
error.dismiss=무시
|
||||||
error.lookUpSolution=해결법 찾기
|
error.lookUpSolution=솔루션 찾기
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=Vault
|
defaults.vault.vaultName=Vault
|
||||||
@@ -42,7 +42,7 @@ traymenu.vault.reveal=표시
|
|||||||
# Add Vault Wizard
|
# Add Vault Wizard
|
||||||
addvaultwizard.title=Vault 추가
|
addvaultwizard.title=Vault 추가
|
||||||
## New
|
## New
|
||||||
addvaultwizard.new.title=새로운 Vault 추가
|
addvaultwizard.new.title=새로운 금고 추가
|
||||||
### Name
|
### Name
|
||||||
addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시오
|
addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시오
|
||||||
addvaultwizard.new.namePrompt=Vault 이름
|
addvaultwizard.new.namePrompt=Vault 이름
|
||||||
@@ -52,7 +52,7 @@ addvaultwizard.new.locationLoading=기본 클라우드 저장소 디렉터리에
|
|||||||
addvaultwizard.new.locationLabel=저장 위치
|
addvaultwizard.new.locationLabel=저장 위치
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=사용자 지정 위치
|
addvaultwizard.new.directoryPickerLabel=사용자 지정 위치
|
||||||
addvaultwizard.new.directoryPickerButton=선택…
|
addvaultwizard.new.directoryPickerButton=선택
|
||||||
addvaultwizard.new.directoryPickerTitle=디렉터리 선택
|
addvaultwizard.new.directoryPickerTitle=디렉터리 선택
|
||||||
addvaultwizard.new.fileAlreadyExists=Vault 내에 이미 존재하는 파일 또는 디렉터리 이름입니다.
|
addvaultwizard.new.fileAlreadyExists=Vault 내에 이미 존재하는 파일 또는 디렉터리 이름입니다.
|
||||||
addvaultwizard.new.locationDoesNotExist=지정된 디렉터리가 존재하지 않거나 접근 할 수 없습니다.
|
addvaultwizard.new.locationDoesNotExist=지정된 디렉터리가 존재하지 않거나 접근 할 수 없습니다.
|
||||||
@@ -65,7 +65,7 @@ addvaultwizard.new.validCharacters.chars=문자 (예시: a, ж or 수)
|
|||||||
addvaultwizard.new.validCharacters.numbers=숫자
|
addvaultwizard.new.validCharacters.numbers=숫자
|
||||||
addvaultwizard.new.validCharacters.dashes=대시 (%s) 또는 언더바 (%s)
|
addvaultwizard.new.validCharacters.dashes=대시 (%s) 또는 언더바 (%s)
|
||||||
### Expert Settings
|
### Expert Settings
|
||||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가 설정 활성화
|
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가용 설정 활성화
|
||||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=36과 220 사이 숫자를 입력해주세요 (기본값: 220)
|
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=36과 220 사이 숫자를 입력해주세요 (기본값: 220)
|
||||||
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=더 자세한 정보는 관련 문서에서 볼 수 있습니다.
|
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=더 자세한 정보는 관련 문서에서 볼 수 있습니다.
|
||||||
addvaultwizard.new.expertSettings.shorteningThreshold.title=암호화된 파일명의 최대 길이
|
addvaultwizard.new.expertSettings.shorteningThreshold.title=암호화된 파일명의 최대 길이
|
||||||
@@ -73,29 +73,29 @@ addvaultwizard.new.expertSettings.shorteningThreshold.valid=유효
|
|||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=Vault 생성
|
addvaultwizard.new.createVaultBtn=Vault 생성
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice=비밀번호가 없으면 데이터에 접근할 수 없습니다. 비밀번호를 잊었을 때를 대비한 복구 키를 원하십니까?
|
addvaultwizard.new.generateRecoveryKeyChoice=비밀번호가 없으면 데이터에 접근할 수 없습니다. 비밀번호를 잊었을 때를 대비한 복구 키를 원하십니까?
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=네, 보안보다 비밀번호를 잊어버리는 것이 더 걱정됩니다.
|
addvaultwizard.new.generateRecoveryKeyChoice.yes=네, 보안보다 비밀번호를 잊어버리는 것이 더 걱정됩니다
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.no=아니요, 나는 비밀번호를 잊지 않을겁니다.
|
addvaultwizard.new.generateRecoveryKeyChoice.no=아니요, 나는 비밀번호를 잊지 않을겁니다.
|
||||||
### Information
|
### Information
|
||||||
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
||||||
addvault.new.readme.storageLocation.1=⚠️ VAULT 파일 ⚠️
|
addvault.new.readme.storageLocation.1=⚠️ VAULT 파일 ⚠️
|
||||||
addvault.new.readme.storageLocation.2=해당 디렉토리는 당신의 Vault 저장 위치입니다.
|
addvault.new.readme.storageLocation.2=해당 디렉토리는 당신의 Vault 저장 위치 입니다.
|
||||||
addvault.new.readme.storageLocation.3=금지 사항
|
addvault.new.readme.storageLocation.3=금지사항
|
||||||
addvault.new.readme.storageLocation.4=• 이 디렉터리를 포함한 어떤 파일도 다른 파일로 교체하거나
|
addvault.new.readme.storageLocation.4=• 이 디렉터리를 포함한 어떤 파일도 다른 파일로 교체하거나
|
||||||
addvault.new.readme.storageLocation.5=• 암호화하고자 하는 파일을 이 디렉터리에 붙여넣지 마십시오.
|
addvault.new.readme.storageLocation.5=• 암호화를 위한 파일을 이 디렉터리에 붙여넣지 마십시요.
|
||||||
addvault.new.readme.storageLocation.6=파일을 암호화하고 Vault 의 내용을 보려면 다음을 수행하십시오.
|
addvault.new.readme.storageLocation.6=파일을 암호화하고 Vault 의 내용을 보려면 다음을 수행하십시오.
|
||||||
addvault.new.readme.storageLocation.7=1. 이 Vault를 Cryptomator에 추가하십시오.
|
addvault.new.readme.storageLocation.7=1. 이 Vault를 Cryptomator에 추가하십시요.
|
||||||
addvault.new.readme.storageLocation.8=2. Cryptomator에서 Vault 잠금을 해제하십시오.
|
addvault.new.readme.storageLocation.8=2. Cryptomator에서 Vault 잠금을 해제하십시요.
|
||||||
addvault.new.readme.storageLocation.9=3. "표시" 버튼을 클릭하여 Vault에 접근하십시오.
|
addvault.new.readme.storageLocation.9=3. "표시" 버튼을 클릭하여 Vault에 접근하십시요.
|
||||||
addvault.new.readme.storageLocation.10=만일 도움이 필요하신 경우, 다음의 문서를 참조하십시오: %s
|
addvault.new.readme.storageLocation.10=만일 도움이 필요하신 경우, 다음의 문서를 참조하십시요: %s
|
||||||
addvault.new.readme.accessLocation.fileName=WELCOME.rtf
|
addvault.new.readme.accessLocation.fileName=WELCOME.rtf
|
||||||
addvault.new.readme.accessLocation.1=🔐️ 암호화 된 볼륨 🔐️
|
addvault.new.readme.accessLocation.1=🔐️ 암호화 된 볼륨 🔐️
|
||||||
addvault.new.readme.accessLocation.2=이것은 당신의 Vault 접근 위치입니다.
|
addvault.new.readme.accessLocation.2=이것은 당신의 Vault 접근 위치입니다.
|
||||||
addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것처럼 보이지만, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다.
|
addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것 처럼 보여지지만, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다.
|
||||||
addvault.new.readme.accessLocation.4=이 파일은 지우셔도 무방합니다.
|
addvault.new.readme.accessLocation.4=이 파일은 지우셔도 무방합니다.
|
||||||
## Existing
|
## Existing
|
||||||
addvaultwizard.existing.title=기존 금고 추가
|
addvaultwizard.existing.title=기존 금고 추가
|
||||||
addvaultwizard.existing.instruction=이미 존재하는 vault 폴더 내에서 "vault.cryptomator" 파일을 선택하세요. 만약 "masterkey.cryptomator"만 있다면 그걸 대신 선택하세요.
|
addvaultwizard.existing.instruction=이미 존재하는 vault 폴더 내에서 "vault.cryptomator" 파일을 선택하세요. 만약 "masterkey.cryptomator"만 있다면 그걸 대신 선택하세요.
|
||||||
addvaultwizard.existing.chooseBtn=선택…
|
addvaultwizard.existing.chooseBtn=선택
|
||||||
addvaultwizard.existing.filePickerTitle=Vault 파일 선택
|
addvaultwizard.existing.filePickerTitle=Vault 파일 선택
|
||||||
addvaultwizard.existing.filePickerMimeDesc=Cryptomator Vault
|
addvaultwizard.existing.filePickerMimeDesc=Cryptomator Vault
|
||||||
## Success
|
## Success
|
||||||
@@ -105,37 +105,37 @@ addvaultwizard.success.unlockNow=지금 잠금해제
|
|||||||
# Remove Vault
|
# Remove Vault
|
||||||
removeVault.title=Vault 제거
|
removeVault.title=Vault 제거
|
||||||
removeVault.message=Vault를 삭제하시겠습니까?
|
removeVault.message=Vault를 삭제하시겠습니까?
|
||||||
removeVault.description=이 행위는 Cryptomator에서만 이 Vault를 지웁니다. 나중에 다시 추가할 수 있습니다. 암호화된 파일은 하드디스크에서 삭제되지 않습니다.
|
removeVault.description=이 행위는 단지 Cryptomator에서 이 Vault를 잊게합니다. 나중에 다시 추가 할 수 있습니다. 암호화된 파일은 하드디스크에서 삭제되지 않을 것입니다.
|
||||||
|
|
||||||
# Change Password
|
# Change Password
|
||||||
changepassword.title=비밀번호 변경
|
changepassword.title=비밀번호 변경
|
||||||
changepassword.enterOldPassword="%s"의 비밀번호를 입력하여 주십시요.
|
changepassword.enterOldPassword="%s"의 비밀번호를 입력하여 주십시요.
|
||||||
changepassword.finalConfirmation=비밀번호를 잊어버리면, 데이터에 접근할 수 없다는 것을 이해했습니다.
|
changepassword.finalConfirmation=비밀번호를 잊어버리면, 데이터에 접근할 수 없음을 이해했습니다.
|
||||||
|
|
||||||
# Forget Password
|
# Forget Password
|
||||||
forgetPassword.title=비밀번호 삭제
|
forgetPassword.title=비밀번호 분실
|
||||||
forgetPassword.message=저장된 비밀번호를 삭제할까요?
|
forgetPassword.message=저장된 비밀번호를 삭제할까요?
|
||||||
forgetPassword.description=시스템 키체인에서 이 Vault의 저장된 비밀번호가 삭제될 것입니다.
|
forgetPassword.description=시스템 키체인에서 이 Vault의 저장된 비밀번호가 삭제될 것입니다.
|
||||||
forgetPassword.confirmBtn=비밀번호 삭제
|
forgetPassword.confirmBtn=비밀번호 분실
|
||||||
|
|
||||||
# Unlock
|
# Unlock
|
||||||
unlock.title="%s" 잠금 해제
|
unlock.title="%s" 잠금 해제
|
||||||
unlock.passwordPrompt="%s"의 비밀번호를 입력하십시오.
|
unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요.
|
||||||
unlock.savePassword=비밀번호 기억
|
unlock.savePassword=비밀번호 기억
|
||||||
unlock.unlockBtn=잠금해제
|
unlock.unlockBtn=잠금해제
|
||||||
## Select
|
## Select
|
||||||
unlock.chooseMasterkey.message=마스터키 파일을 찾을 수 없습니다
|
unlock.chooseMasterkey.message=마스터키 파일을 찾을 수 없습니다
|
||||||
unlock.chooseMasterkey.description=이 Vault의 Masterkey를 찾지 못했습니다. 마스터 키 위치를 수동으로 선택하여 주십시오.
|
unlock.chooseMasterkey.description=추정되는 위치에서 이 Vault의 마스터 키를 찾지 못했습니다. 마스터 키 위치를 수동으로 선택하여 주십시요.
|
||||||
unlock.chooseMasterkey.filePickerTitle=Masterkey 파일 선택
|
unlock.chooseMasterkey.filePickerTitle=마스터키 파일 선택
|
||||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator Masterkey
|
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 마스터키
|
||||||
## Success
|
## Success
|
||||||
unlock.success.message=잠금 해제 성공
|
unlock.success.message=잠금 해제 성공
|
||||||
unlock.success.description="%s"이(가) 성공적으로 잠금 해제되었습니다. 이제 이 Vault를 마운트 지점으로 접근할 수 있습니다.
|
unlock.success.description="%s"이(가) 성공적으로 잠금 해제되었습니다. 이제 이 Vault를 마운트 지점으로 접근할 수 있습니다.
|
||||||
unlock.success.rememberChoice=선택 기억하기, 다시 묻지 않음
|
unlock.success.rememberChoice=선택 기억함, 다시 묻지 않음
|
||||||
unlock.success.revealBtn=드라이브 표시
|
unlock.success.revealBtn=드라이브 표시
|
||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Vault를 사용자 정의 경로에 마운트할 수 없습니다.
|
unlock.error.customPath.message=Vault을 사용자 정의 경로에 마운트할 수 없습니다.
|
||||||
unlock.error.customPath.description.notSupported=사용자 지정 경로를 계속 사용하려면 설정으로 이동하여 이를 지원하는 볼륨 유형을 선택하십시오. 그렇지 않으면 볼트 옵션으로 이동하여 지원되는 마운트 지점을 선택하십시오.
|
unlock.error.customPath.description.notSupported=사용자 지정 경로를 계속 사용하려면 기본 설정으로 이동하여 이를 지원하는 볼륨 유형을 선택하세요. 그렇지 않으면 볼트 옵션으로 이동하여 지원되는 마운트 지점을 선택하십시오.
|
||||||
unlock.error.customPath.description.notExists=사용자 정의 마운트 경로가 존재하지 않습니다. 로컬 파일 시스템에서 생성하거나 볼트 옵션에서 변경하세요.
|
unlock.error.customPath.description.notExists=사용자 정의 마운트 경로가 존재하지 않습니다. 로컬 파일 시스템에서 생성하거나 볼트 옵션에서 변경하세요.
|
||||||
unlock.error.customPath.description.inUse=드라이브 문자 또는 사용자 정의 마운트 경로 "%s"가 이미 사용 중입니다.
|
unlock.error.customPath.description.inUse=드라이브 문자 또는 사용자 정의 마운트 경로 "%s"가 이미 사용 중입니다.
|
||||||
unlock.error.customPath.description.hideawayNotDir=잠금 해제에 사용된 임시 숨김 파일 "%3$s"을 제거할 수 없습니다. 파일을 확인한 후 수동으로 삭제해 주세요.
|
unlock.error.customPath.description.hideawayNotDir=잠금 해제에 사용된 임시 숨김 파일 "%3$s"을 제거할 수 없습니다. 파일을 확인한 후 수동으로 삭제해 주세요.
|
||||||
@@ -143,11 +143,11 @@ unlock.error.customPath.description.couldNotBeCleaned=Vault를 "%s" 경로에
|
|||||||
unlock.error.customPath.description.notEmptyDir=사용자 정의 마운트 경로 "%s"은 빈 폴더가 아닙니다. 빈 폴더를 선택하고 다시 시도하세요.
|
unlock.error.customPath.description.notEmptyDir=사용자 정의 마운트 경로 "%s"은 빈 폴더가 아닙니다. 빈 폴더를 선택하고 다시 시도하세요.
|
||||||
unlock.error.customPath.description.generic=이 볼트에 대한 사용자 정의 마운트 경로를 선택했지만 다음 메시지와 함께 해당 경로를 사용하지 못했습니다: %2$s
|
unlock.error.customPath.description.generic=이 볼트에 대한 사용자 정의 마운트 경로를 선택했지만 다음 메시지와 함께 해당 경로를 사용하지 못했습니다: %2$s
|
||||||
unlock.error.restartRequired.message=Vault을 잠금 해제할 수 없습니다.
|
unlock.error.restartRequired.message=Vault을 잠금 해제할 수 없습니다.
|
||||||
unlock.error.restartRequired.description=볼트 옵션에서 볼륨 유형을 변경하거나 Cryptomator를 다시 시작하십시오.
|
unlock.error.restartRequired.description=볼트 옵션에서 볼륨 유형을 변경하거나 Cryptomator를 다시 시작하세요.
|
||||||
unlock.error.title="%s" 잠금 해제 실패
|
unlock.error.title="%s" 잠금 해제 실패
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=장치 키에 액세스할 수 없습니다
|
hub.noKeychain.message=장치 키에 액세스할 수 없습니다
|
||||||
hub.noKeychain.description=허브 저장소를 잠금 해제하려면 키체인을 사용하여 보호되는 장치 키가 필요합니다. 계속하려면 "%s"을 활성화하고 기본 설정에서 키체인을 선택하십시오.
|
hub.noKeychain.description=허브 저장소를 잠금 해제하려면 키체인을 사용하여 보호되는 장치 키가 필요합니다. 계속하려면 "%s"을 활성화하고 기본 설정에서 키체인을 선택하세요.
|
||||||
hub.noKeychain.openBtn=설정 열기
|
hub.noKeychain.openBtn=설정 열기
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=인증 대기중…
|
hub.auth.message=인증 대기중…
|
||||||
@@ -273,7 +273,7 @@ health.result.fixStateFilter.fixing=문제 해결중…
|
|||||||
health.result.fixStateFilter.fixed=문제 해결됨
|
health.result.fixStateFilter.fixed=문제 해결됨
|
||||||
health.result.fixStateFilter.fixFailed=문제 해결 실패
|
health.result.fixStateFilter.fixFailed=문제 해결 실패
|
||||||
## Fix Application
|
## Fix Application
|
||||||
health.fix.fixBtn=문제 해결
|
health.fix.fixBtn=문제해결
|
||||||
health.fix.successTip=문제 해결이 성공적으로 완료되었습니다
|
health.fix.successTip=문제 해결이 성공적으로 완료되었습니다
|
||||||
health.fix.failTip=문제 해결 실패, 상세 정보는 로그를 참조하십시요.
|
health.fix.failTip=문제 해결 실패, 상세 정보는 로그를 참조하십시요.
|
||||||
|
|
||||||
@@ -290,7 +290,7 @@ preferences.general.keychainBackend=다음 경로에 비밀번호 저장
|
|||||||
preferences.general.quickAccessService=열린 Vault를 빠른 접근 위치에 추가하기
|
preferences.general.quickAccessService=열린 Vault를 빠른 접근 위치에 추가하기
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=인터페이스
|
preferences.interface=인터페이스
|
||||||
preferences.interface.theme=테마
|
preferences.interface.theme=테마설정
|
||||||
preferences.interface.theme.automatic=자동
|
preferences.interface.theme.automatic=자동
|
||||||
preferences.interface.theme.dark=어둡게
|
preferences.interface.theme.dark=어둡게
|
||||||
preferences.interface.theme.light=밝게
|
preferences.interface.theme.light=밝게
|
||||||
@@ -331,7 +331,7 @@ preferences.updates.upToDate=현재 최신 버전의 Cryptomator를 사용하고
|
|||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=후원하기
|
preferences.contribute=후원하기
|
||||||
preferences.contribute.registeredFor=%s(으)로 후원자 인증 등록됨
|
preferences.contribute.registeredFor=%s (으)로 후원자 인증 등록됨
|
||||||
preferences.contribute.noCertificate=Cryptomator를 후원하시고 후원자 인증을 받으십시요. 라이선스 키와 비슷하지만 무료 소프트웨어를 사용하는 멋진 사람들을 위한 것입니다. ;-)
|
preferences.contribute.noCertificate=Cryptomator를 후원하시고 후원자 인증을 받으십시요. 라이선스 키와 비슷하지만 무료 소프트웨어를 사용하는 멋진 사람들을 위한 것입니다. ;-)
|
||||||
preferences.contribute.getCertificate=아직 후원자 인증이 없으신가요? 어떻게 얻는지 배울 수 있습니다.
|
preferences.contribute.getCertificate=아직 후원자 인증이 없으신가요? 어떻게 얻는지 배울 수 있습니다.
|
||||||
preferences.contribute.promptText=후원자 인증코드를 여기에 붙여넣기
|
preferences.contribute.promptText=후원자 인증코드를 여기에 붙여넣기
|
||||||
@@ -406,7 +406,7 @@ main.vaultDetail.unlockBtn=잠금 해제...
|
|||||||
main.vaultDetail.unlockNowBtn=지금 잠금 해제
|
main.vaultDetail.unlockNowBtn=지금 잠금 해제
|
||||||
main.vaultDetail.optionsBtn=Vault 옵션
|
main.vaultDetail.optionsBtn=Vault 옵션
|
||||||
main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
|
main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
|
||||||
main.vaultDetail.share=공유하기…
|
main.vaultDetail.share=공유하기
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=잠금 해제됨
|
main.vaultDetail.unlockedStatus=잠금 해제됨
|
||||||
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
||||||
@@ -450,7 +450,7 @@ wrongFileAlert.link=더 많은 지원을 위해, 다음을 방문하십시오
|
|||||||
## General
|
## General
|
||||||
vaultOptions.general=일반
|
vaultOptions.general=일반
|
||||||
vaultOptions.general.vaultName=Vault 이름
|
vaultOptions.general.vaultName=Vault 이름
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart1=다음 시간 동안 유휴상태 시 잠그기
|
vaultOptions.general.autoLock.lockAfterTimePart1=다음 시간동안 유휴상태 시 잠금 :
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart2=분
|
vaultOptions.general.autoLock.lockAfterTimePart2=분
|
||||||
vaultOptions.general.unlockAfterStartup=Cryptomator를 시작할 때 Vault 잠금 해제
|
vaultOptions.general.unlockAfterStartup=Cryptomator를 시작할 때 Vault 잠금 해제
|
||||||
vaultOptions.general.actionAfterUnlock=성공적으로 잠금해제 후
|
vaultOptions.general.actionAfterUnlock=성공적으로 잠금해제 후
|
||||||
@@ -553,15 +553,11 @@ dokanySupportEnd.description=Cryptomator에서 Dokany 볼륨 형식은 더이상
|
|||||||
dokanySupportEnd.preferencesBtn=설정 열기
|
dokanySupportEnd.preferencesBtn=설정 열기
|
||||||
|
|
||||||
#Retry If Readonly
|
#Retry If Readonly
|
||||||
retryIfReadonly.title=Vault 접근 제한됨
|
|
||||||
retryIfReadonly.message=Vault 디렉터리에 쓰기 권한 없음
|
|
||||||
retryIfReadonly.description=Cryptomator가 Vault 디렉터리에 쓸 수 없습니다. Vault를 읽기 전용으로 설정하고 다시 시도할 수 있습니다. 이 옵션은 Vault 옵션에서 바꿀 수 있습니다.
|
|
||||||
retryIfReadonly.retry=바꾸고 다시 시도하기
|
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Vault 공유
|
shareVault.title=Vault 공유
|
||||||
shareVault.message=Vault를 다른 사람과 공유하려 하십니까?
|
shareVault.message=Vault를 다른 사람과 공유하려 하십니까?
|
||||||
shareVault.description=Vault를 타인과 공유할 때에는 항상 주의하십시오. 간단히 이 단계들을 따르십시오.
|
shareVault.description=Vault를 타인과 공유할 때에는 항상 주의하십시오. 간단히 이 단계들을 따르세요.
|
||||||
shareVault.instruction.1=1. 암호화된 Vault 폴더를 클라우드 스토리지를 통해 공유하십시오.
|
shareVault.instruction.1=1. 암호화된 Vault 폴더를 클라우드 스토리지를 통해 공유하십시오.
|
||||||
shareVault.instruction.2=2. Vault의 비밀번호를 안전한 방식으로 전달하십시오.
|
shareVault.instruction.2=2. Vault의 비밀번호를 안전한 방식으로 전달하십시오.
|
||||||
shareVault.remarkBestPractices=문서에 있는 권장사항을 통해 더 많은 정보를 확인하십시오.
|
shareVault.remarkBestPractices=문서에 있는 권장사항을 통해 더 많은 정보를 확인하십시오.
|
||||||
|
|||||||
Reference in New Issue
Block a user