Browse Source

Merge branch 'release/1.15.1'

Armin Schrenk 1 month ago
parent
commit
1abfcd495f

+ 34 - 8
.idea/compiler.xml

@@ -14,17 +14,16 @@
         <option name="dagger.fastInit" value="enabled" />
         <option name="dagger.formatGeneratedSource" value="enabled" />
         <processorPath useClasspath="false">
-          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.52/dagger-compiler-2.52.jar" />
-          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.52/dagger-2.52.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.55/dagger-compiler-2.55.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.55/dagger-2.55.jar" />
           <entry name="$MAVEN_REPOSITORY$/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar" />
           <entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
-          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.52/dagger-spi-2.52.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.55/dagger-spi-2.55.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
-          <entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/1.9.24-1.0.20/symbol-processing-api-1.9.24-1.0.20.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.0/kotlin-stdlib-jdk8-1.9.0.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.9.24/kotlin-stdlib-1.9.24.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.jar" />
           <entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
-          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0/kotlin-stdlib-jdk7-1.9.0.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
@@ -35,6 +34,33 @@
           <entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
           <entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.10/kotlin-stdlib-jdk8-1.6.10.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.10/kotlin-stdlib-jdk7-1.6.10.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
+          <entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.55/dagger-compiler-2.55.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.55/dagger-2.55.jar" />
+          <entry name="$MAVEN_REPOSITORY$/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar" />
+          <entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.55/dagger-spi-2.55.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/3.41.0/checker-qual-3.41.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.23.0/error_prone_annotations-2.23.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
+          <entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.10/kotlin-stdlib-jdk8-1.6.10.jar" />
+          <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.10/kotlin-stdlib-jdk7-1.6.10.jar" />
           <entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
           <entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
           <entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
@@ -45,7 +71,7 @@
   </component>
   <component name="JavacSettings">
     <option name="ADDITIONAL_OPTIONS_OVERRIDE">
-      <module name="cryptomator" options="-Adagger.fastInit=enabled -Adagger.formatGeneratedSource=enabled --enable-preview" />
+      <module name="cryptomator" options="-Adagger.fastInit=enabled -Adagger.formatGeneratedSource=enabled" />
     </option>
   </component>
 </project>

+ 1 - 1
README.md

@@ -72,7 +72,7 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator
 
 ### Security Architecture
 
-For more information on the security details visit [cryptomator.org](https://docs.cryptomator.org/en/latest/security/architecture/).
+For more information on the security details visit [cryptomator.org](https://docs.cryptomator.org/security/architecture/).
 
 ## Building
 

+ 12 - 6
dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml

@@ -1,11 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright 2018 Armin Schrenk <armin.schrenk@zoho.eu> -->
 <component type="desktop-application">
 	<id>org.cryptomator.Cryptomator</id>
 	<metadata_license>FSFAP</metadata_license>
 	<project_license>GPL-3.0-or-later</project_license>
 	<name>Cryptomator</name>
-	<summary>Encryption made easy and optimized for the cloud</summary>
+	<summary>Encryption for your cloud made easy</summary>
 
 	<description>
 		<p>
@@ -44,12 +43,16 @@
 
 	<screenshots>
 		<screenshot type="default">
-			<caption>Light theme</caption>
-			<image>https://user-images.githubusercontent.com/11858409/156986109-6e58f59c-8b8c-4501-b33b-bb1e33007cea.png</image>
+			<caption>Encrypt your data, protect your privacy</caption>
+			<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlocked_light.png</image>
 		</screenshot>
 		<screenshot>
-			<caption>Dark theme</caption>
-			<image>https://user-images.githubusercontent.com/11858409/156986113-6c5d7801-86e0-4643-bc2f-aff9d95d3ce0.png</image>
+			<caption>Dark theme available</caption>
+			<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlock_dark.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>
 	</screenshots>
 
@@ -74,6 +77,9 @@
 	</content_rating>
 
 	<releases>
+		<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">
 			<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.0</url>
 		</release>

+ 1 - 1
pom.xml

@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.cryptomator</groupId>
 	<artifactId>cryptomator</artifactId>
-	<version>1.15.0</version>
+	<version>1.15.1</version>
 	<name>Cryptomator Desktop App</name>
 
 	<organization>

+ 1 - 1
src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultExpertSettingsController.java

@@ -26,7 +26,7 @@ public class CreateNewVaultExpertSettingsController implements FxController {
 
 	public static final int MAX_SHORTENING_THRESHOLD = 220;
 	public static final int MIN_SHORTENING_THRESHOLD = 36;
-	private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/en/1.7/security/architecture/#name-shortening";
+	private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/security/architecture/#name-shortening";
 
 	private final Stage window;
 	private final Lazy<Application> application;

+ 1 - 1
src/main/java/org/cryptomator/ui/mainwindow/WelcomeController.java

@@ -16,7 +16,7 @@ import javafx.fxml.FXML;
 public class WelcomeController implements FxController {
 
 	private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
-	private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/en/1.7/desktop/getting-started/";
+	private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/desktop/getting-started/";
 
 	private final Application application;
 	private final BooleanBinding noVaultPresent;

+ 1 - 1
src/main/java/org/cryptomator/ui/migration/MigrationImpossibleController.java

@@ -10,7 +10,7 @@ import javafx.stage.Stage;
 
 public class MigrationImpossibleController implements FxController {
 
-	private static final String HELP_URI = "https://docs.cryptomator.org/en/1.7/help/manual-migration/";
+	private static final String HELP_URI = "https://docs.cryptomator.org/help/manual-migration/";
 
 	private final Application application;
 	private final Stage window;

+ 1 - 1
src/main/java/org/cryptomator/ui/preferences/VolumePreferencesController.java

@@ -22,7 +22,7 @@ import java.util.ResourceBundle;
 @PreferencesScoped
 public class VolumePreferencesController implements FxController {
 
-	public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/en/1.7/desktop/volume-type/";
+	public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/desktop/volume-type/";
 	public static final int MIN_PORT = 1024;
 	public static final int MAX_PORT = 65535;
 

+ 1 - 1
src/main/java/org/cryptomator/ui/wrongfilealert/WrongFileAlertController.java

@@ -15,7 +15,7 @@ import java.io.UncheckedIOException;
 @WrongFileAlertScoped
 public class WrongFileAlertController implements FxController {
 
-	private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/en/1.7/desktop/accessing-vaults/";
+	private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/desktop/accessing-vaults/";
 
 	private final Application app;
 	private final Stage window;

+ 1 - 0
src/main/resources/i18n/strings.properties

@@ -107,6 +107,7 @@ addvaultwizard.success.unlockNow=Unlock Now
 removeVault.title=Remove "%s"
 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.confirmBtn=Remove Vault
 
 # Change Password
 changepassword.title=Change Password

+ 0 - 198
src/main/resources/i18n/strings_en.properties

@@ -1,198 +0,0 @@
-# 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

+ 42 - 38
src/main/resources/i18n/strings_ko.properties

@@ -6,7 +6,7 @@ generic.button.apply=์ ์šฉ
 generic.button.back=์ด์ „
 generic.button.cancel=์ทจ์†Œ
 generic.button.change=๋ณ€๊ฒฝ
-generic.button.choose=์„ ํƒ
+generic.button.choose=์„ ํƒโ€ฆ
 generic.button.close=๋‹ซ๊ธฐ
 generic.button.copy=๋ณต์‚ฌ
 generic.button.copied=๋ณต์‚ฌ๋จ!
@@ -16,16 +16,16 @@ generic.button.print=์ธ์‡„
 generic.button.remove=์ œ๊ฑฐ
 
 # Error
-error.message=์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค
-error.description=์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ์— ์—๋Ÿฌ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค. ๋งŒ์•ฝ ์‹ ๊ณ ๋œ ์ ์ด ์—†๋Š” ์—๋Ÿฌ์ผ ๊ฒฝ์šฐ, ์ƒˆ๋กœ ์‹ ๊ณ ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
+error.message=์˜ค๋ฅ˜ ๋ฐœ์ƒ
+error.description=์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐ๋ฒ•์„ ๊ฒ€์ƒ‰ํ•˜์‹ญ์‹œ์˜ค. ๋งŒ์•ฝ ๋ณด๊ณ ๋œ ์ ์ด ์—†๋Š” ์—๋Ÿฌ์ผ ๊ฒฝ์šฐ, ์ƒˆ๋กœ ์‹ ๊ณ ํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค.
 error.hyperlink.lookup=์—๋Ÿฌ ๊ฒ€์ƒ‰ํ•˜๊ธฐ
 error.hyperlink.report=์—๋Ÿฌ ๋ณด๊ณ ํ•˜๊ธฐ
 error.technicalDetails=์ƒ์„ธ ์ •๋ณด:
-error.existingSolutionDescription=Cryptomator์— ์•Œ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๊ธฐ์กด ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋งํฌ๋ฅผ ์‚ดํŽด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
-error.hyperlink.solution=์†”๋ฃจ์…˜ ์ฐพ๊ธฐ
+error.existingSolutionDescription=Cryptomator์— ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๊ธฐ์กด ํ•ด๊ฒฐ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋งํฌ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.
+error.hyperlink.solution=ํ•ด๊ฒฐ๋ฒ• ์ฐพ๊ธฐ
 error.lookupPermissionMessage=Cryptomator๋Š” ์˜จ๋ผ์ธ์—์„œ ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ท€ํ•˜์˜ IP ์ฃผ์†Œ๊ฐ€ ๋ฌธ์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.
 error.dismiss=๋ฌด์‹œ
-error.lookUpSolution=์†”๋ฃจ์…˜ ์ฐพ๊ธฐ
+error.lookUpSolution=ํ•ด๊ฒฐ๋ฒ• ์ฐพ๊ธฐ
 
 # Defaults
 defaults.vault.vaultName=Vault
@@ -42,7 +42,7 @@ traymenu.vault.reveal=ํ‘œ์‹œ
 # Add Vault Wizard
 addvaultwizard.title=Vault ์ถ”๊ฐ€
 ## New
-addvaultwizard.new.title=์ƒˆ๋กœ์šด ๊ธˆ๊ณ  ์ถ”๊ฐ€
+addvaultwizard.new.title=์ƒˆ๋กœ์šด Vault ์ถ”๊ฐ€
 ### Name
 addvaultwizard.new.nameInstruction=์ƒˆ Vault์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค
 addvaultwizard.new.namePrompt=Vault ์ด๋ฆ„
@@ -52,7 +52,7 @@ addvaultwizard.new.locationLoading=๊ธฐ๋ณธ ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ ๋””๋ ‰ํ„ฐ๋ฆฌ์—
 addvaultwizard.new.locationLabel=์ €์žฅ ์œ„์น˜
 addvaultwizard.new.locationPrompt=โ€ฆ
 addvaultwizard.new.directoryPickerLabel=์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜
-addvaultwizard.new.directoryPickerButton=์„ ํƒ
+addvaultwizard.new.directoryPickerButton=์„ ํƒโ€ฆ
 addvaultwizard.new.directoryPickerTitle=๋””๋ ‰ํ„ฐ๋ฆฌ ์„ ํƒ
 addvaultwizard.new.fileAlreadyExists=Vault ๋‚ด์— ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
 addvaultwizard.new.locationDoesNotExist=์ง€์ •๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
@@ -65,7 +65,7 @@ addvaultwizard.new.validCharacters.chars=๋ฌธ์ž (์˜ˆ์‹œ: a, ะถ or ์ˆ˜)
 addvaultwizard.new.validCharacters.numbers=์ˆซ์ž
 addvaultwizard.new.validCharacters.dashes=๋Œ€์‹œ (%s) ๋˜๋Š” ์–ธ๋”๋ฐ” (%s)
 ### Expert Settings
-addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=์ „๋ฌธ๊ฐ€์šฉ ์„ค์ • ํ™œ์„ฑํ™”
+addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=์ „๋ฌธ๊ฐ€ ์„ค์ • ํ™œ์„ฑํ™”
 addvaultwizard.new.expertSettings.shorteningThreshold.invalid=36๊ณผ 220 ์‚ฌ์ด ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” (๊ธฐ๋ณธ๊ฐ’: 220)
 addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=๋” ์ž์„ธํ•œ ์ •๋ณด๋Š” ๊ด€๋ จ ๋ฌธ์„œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 addvaultwizard.new.expertSettings.shorteningThreshold.title=์•”ํ˜ธํ™”๋œ ํŒŒ์ผ๋ช…์˜ ์ตœ๋Œ€ ๊ธธ์ด
@@ -73,29 +73,29 @@ addvaultwizard.new.expertSettings.shorteningThreshold.valid=์œ ํšจ
 ### Password
 addvaultwizard.new.createVaultBtn=Vault ์ƒ์„ฑ
 addvaultwizard.new.generateRecoveryKeyChoice=๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์—ˆ์„ ๋•Œ๋ฅผ ๋Œ€๋น„ํ•œ ๋ณต๊ตฌ ํ‚ค๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?
-addvaultwizard.new.generateRecoveryKeyChoice.yes=๋„ค, ๋ณด์•ˆ๋ณด๋‹ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ๋” ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค
+addvaultwizard.new.generateRecoveryKeyChoice.yes=๋„ค, ๋ณด์•ˆ๋ณด๋‹ค ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด ๋” ๊ฑฑ์ •๋ฉ๋‹ˆ๋‹ค.
 addvaultwizard.new.generateRecoveryKeyChoice.no=์•„๋‹ˆ์š”, ๋‚˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์ง€ ์•Š์„๊ฒ๋‹ˆ๋‹ค.
 ### Information
 addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
 addvault.new.readme.storageLocation.1=โš ๏ธ  VAULT ํŒŒ์ผ โš ๏ธ
-addvault.new.readme.storageLocation.2=ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹น์‹ ์˜ Vault ์ €์žฅ ์œ„์น˜ ์ž…๋‹ˆ๋‹ค.
-addvault.new.readme.storageLocation.3=๊ธˆ์ง€์‚ฌํ•ญ
+addvault.new.readme.storageLocation.2=ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹น์‹ ์˜ Vault ์ €์žฅ ์œ„์น˜์ž…๋‹ˆ๋‹ค.
+addvault.new.readme.storageLocation.3=๊ธˆ์ง€ ์‚ฌํ•ญ
 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.7=1. ์ด Vault๋ฅผ Cryptomator์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์š”.
-addvault.new.readme.storageLocation.8=2. Cryptomator์—์„œ Vault ์ž ๊ธˆ์„ ํ•ด์ œํ•˜์‹ญ์‹œ์š”.
-addvault.new.readme.storageLocation.9=3. "ํ‘œ์‹œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Vault์— ์ ‘๊ทผํ•˜์‹ญ์‹œ์š”.
-addvault.new.readme.storageLocation.10=๋งŒ์ผ ๋„์›€์ด ํ•„์š”ํ•˜์‹  ๊ฒฝ์šฐ, ๋‹ค์Œ์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์š”: %s
+addvault.new.readme.storageLocation.7=1. ์ด Vault๋ฅผ Cryptomator์— ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
+addvault.new.readme.storageLocation.8=2. Cryptomator์—์„œ Vault ์ž ๊ธˆ์„ ํ•ด์ œํ•˜์‹ญ์‹œ์˜ค.
+addvault.new.readme.storageLocation.9=3. "ํ‘œ์‹œ" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ Vault์— ์ ‘๊ทผํ•˜์‹ญ์‹œ์˜ค.
+addvault.new.readme.storageLocation.10=๋งŒ์ผ ๋„์›€์ด ํ•„์š”ํ•˜์‹  ๊ฒฝ์šฐ, ๋‹ค์Œ์˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค: %s
 addvault.new.readme.accessLocation.fileName=WELCOME.rtf
 addvault.new.readme.accessLocation.1=๐Ÿ”๏ธ  ์•”ํ˜ธํ™” ๋œ ๋ณผ๋ฅจ  ๐Ÿ”๏ธ
 addvault.new.readme.accessLocation.2=์ด๊ฒƒ์€ ๋‹น์‹ ์˜ Vault ์ ‘๊ทผ ์œ„์น˜์ž…๋‹ˆ๋‹ค.
-addvault.new.readme.accessLocation.3=์ด ๋ณผ๋ฅจ์— ์ถ”๊ฐ€๋œ ๋ชจ๋“  ํŒŒ์ผ์€ Cryptomator๋กœ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ธŒ/ํด๋”์ฒ˜๋Ÿผ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์˜ ๋‚ด์šฉ์€ ๋ณตํ˜ธํ™” ๋œ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ณด์—ฌ์ง€์ง€๋งŒ, ๋ชจ๋“  ํŒŒ์ผ์€ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋˜์–ด ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
+addvault.new.readme.accessLocation.3=์ด ๋ณผ๋ฅจ์— ์ถ”๊ฐ€๋œ ๋ชจ๋“  ํŒŒ์ผ์€ Cryptomator๋กœ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ธŒ/ํด๋”์ฒ˜๋Ÿผ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์˜ ๋‚ด์šฉ์€ ๋ณตํ˜ธํ™” ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ๋ชจ๋“  ํŒŒ์ผ์€ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋˜์–ด ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
 addvault.new.readme.accessLocation.4=์ด ํŒŒ์ผ์€ ์ง€์šฐ์…”๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค.
 ## Existing
 addvaultwizard.existing.title=๊ธฐ์กด ๊ธˆ๊ณ  ์ถ”๊ฐ€
 addvaultwizard.existing.instruction=์ด๋ฏธ ์กด์žฌํ•˜๋Š” vault ํด๋” ๋‚ด์—์„œ "vault.cryptomator" ํŒŒ์ผ์„ ์„ ํƒํ•˜์„ธ์š”. ๋งŒ์•ฝ "masterkey.cryptomator"๋งŒ ์žˆ๋‹ค๋ฉด ๊ทธ๊ฑธ ๋Œ€์‹  ์„ ํƒํ•˜์„ธ์š”.
-addvaultwizard.existing.chooseBtn=์„ ํƒ
+addvaultwizard.existing.chooseBtn=์„ ํƒโ€ฆ
 addvaultwizard.existing.filePickerTitle=Vault ํŒŒ์ผ ์„ ํƒ
 addvaultwizard.existing.filePickerMimeDesc=Cryptomator Vault
 ## Success
@@ -105,37 +105,37 @@ addvaultwizard.success.unlockNow=์ง€๊ธˆ ์ž ๊ธˆํ•ด์ œ
 # Remove Vault
 removeVault.title=Vault ์ œ๊ฑฐ
 removeVault.message=Vault๋ฅผ ์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?
-removeVault.description=์ด ํ–‰์œ„๋Š” ๋‹จ์ง€ Cryptomator์—์„œ ์ด Vault๋ฅผ ์žŠ๊ฒŒํ•ฉ๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์€ ํ•˜๋“œ๋””์Šคํฌ์—์„œ ์‚ญ์ œ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
+removeVault.description=์ด ํ–‰์œ„๋Š” Cryptomator์—์„œ๋งŒ ์ด Vault๋ฅผ ์ง€์›๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”๋œ ํŒŒ์ผ์€ ํ•˜๋“œ๋””์Šคํฌ์—์„œ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
 
 # Change Password
 changepassword.title=๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
 changepassword.enterOldPassword="%s"์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์š”.
-changepassword.finalConfirmation=๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด, ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.
+changepassword.finalConfirmation=๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žŠ์–ด๋ฒ„๋ฆฌ๋ฉด, ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.
 
 # Forget Password
-forgetPassword.title=๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถ„์‹ค
+forgetPassword.title=๋น„๋ฐ€๋ฒˆํ˜ธ ์‚ญ์ œ
 forgetPassword.message=์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ญ์ œํ• ๊นŒ์š”?
 forgetPassword.description=์‹œ์Šคํ…œ ํ‚ค์ฒด์ธ์—์„œ ์ด Vault์˜ ์ €์žฅ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์‚ญ์ œ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
-forgetPassword.confirmBtn=๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถ„์‹ค
+forgetPassword.confirmBtn=๋น„๋ฐ€๋ฒˆํ˜ธ ์‚ญ์ œ
 
 # Unlock
 unlock.title="%s" ์ž ๊ธˆ ํ•ด์ œ
-unlock.passwordPrompt="%s"์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹ญ์‹œ์š”.
+unlock.passwordPrompt="%s"์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์‹ญ์‹œ์˜ค.
 unlock.savePassword=๋น„๋ฐ€๋ฒˆํ˜ธ ๊ธฐ์–ต
 unlock.unlockBtn=์ž ๊ธˆํ•ด์ œ
 ## Select
 unlock.chooseMasterkey.message=๋งˆ์Šคํ„ฐํ‚ค ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
-unlock.chooseMasterkey.description=์ถ”์ •๋˜๋Š” ์œ„์น˜์—์„œ ์ด Vault์˜ ๋งˆ์Šคํ„ฐ ํ‚ค๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค ์œ„์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์š”.
-unlock.chooseMasterkey.filePickerTitle=๋งˆ์Šคํ„ฐํ‚ค ํŒŒ์ผ ์„ ํƒ
-unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator ๋งˆ์Šคํ„ฐํ‚ค
+unlock.chooseMasterkey.description=์ด Vault์˜ Masterkey๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ ํ‚ค ์œ„์น˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ ํƒํ•˜์—ฌ ์ฃผ์‹ญ์‹œ์˜ค.
+unlock.chooseMasterkey.filePickerTitle=Masterkey ํŒŒ์ผ ์„ ํƒ
+unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator Masterkey
 ## Success
 unlock.success.message=์ž ๊ธˆ ํ•ด์ œ ์„ฑ๊ณต
 unlock.success.description="%s"์ด(๊ฐ€) ์„ฑ๊ณต์ ์œผ๋กœ ์ž ๊ธˆ ํ•ด์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด Vault๋ฅผ ๋งˆ์šดํŠธ ์ง€์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
-unlock.success.rememberChoice=์„ ํƒ ๊ธฐ์–ตํ•จ, ๋‹ค์‹œ ๋ฌป์ง€ ์•Š์Œ
+unlock.success.rememberChoice=์„ ํƒ ๊ธฐ์–ตํ•˜๊ธฐ, ๋‹ค์‹œ ๋ฌป์ง€ ์•Š์Œ
 unlock.success.revealBtn=๋“œ๋ผ์ด๋ธŒ ํ‘œ์‹œ
 ## Failure
-unlock.error.customPath.message=Vault์„ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
-unlock.error.customPath.description.notSupported=์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฝ๋กœ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ณผ๋ฅจ ์œ ํ˜•์„ ์„ ํƒํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ณผํŠธ ์˜ต์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ง€์›๋˜๋Š” ๋งˆ์šดํŠธ ์ง€์ ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
+unlock.error.customPath.message=Vault๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ ๊ฒฝ๋กœ์— ๋งˆ์šดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
+unlock.error.customPath.description.notSupported=์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฝ๋กœ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ณผ๋ฅจ ์œ ํ˜•์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ณผํŠธ ์˜ต์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ง€์›๋˜๋Š” ๋งˆ์šดํŠธ ์ง€์ ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
 unlock.error.customPath.description.notExists=์‚ฌ์šฉ์ž ์ •์˜ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณผํŠธ ์˜ต์…˜์—์„œ ๋ณ€๊ฒฝํ•˜์„ธ์š”.
 unlock.error.customPath.description.inUse=๋“œ๋ผ์ด๋ธŒ ๋ฌธ์ž ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ "%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.generic=์ด ๋ณผํŠธ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ–ˆ์ง€๋งŒ ๋‹ค์Œ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค: %2$s
 unlock.error.restartRequired.message=Vault์„ ์ž ๊ธˆ ํ•ด์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
-unlock.error.restartRequired.description=๋ณผํŠธ ์˜ต์…˜์—์„œ ๋ณผ๋ฅจ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ Cryptomator๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์„ธ์š”.
+unlock.error.restartRequired.description=๋ณผํŠธ ์˜ต์…˜์—์„œ ๋ณผ๋ฅจ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ Cryptomator๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์‹ญ์‹œ์˜ค.
 unlock.error.title="%s" ์ž ๊ธˆ ํ•ด์ œ ์‹คํŒจ
 ## Hub
 hub.noKeychain.message=์žฅ์น˜ ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
-hub.noKeychain.description=ํ—ˆ๋ธŒ ์ €์žฅ์†Œ๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜๋ ค๋ฉด ํ‚ค์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณดํ˜ธ๋˜๋Š” ์žฅ์น˜ ํ‚ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜๋ ค๋ฉด "%s"์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ธฐ๋ณธ ์„ค์ •์—์„œ ํ‚ค์ฒด์ธ์„ ์„ ํƒํ•˜์„ธ์š”.
+hub.noKeychain.description=ํ—ˆ๋ธŒ ์ €์žฅ์†Œ๋ฅผ ์ž ๊ธˆ ํ•ด์ œํ•˜๋ ค๋ฉด ํ‚ค์ฒด์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณดํ˜ธ๋˜๋Š” ์žฅ์น˜ ํ‚ค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜๋ ค๋ฉด "%s"์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ธฐ๋ณธ ์„ค์ •์—์„œ ํ‚ค์ฒด์ธ์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
 hub.noKeychain.openBtn=์„ค์ • ์—ด๊ธฐ
 ### Waiting
 hub.auth.message=์ธ์ฆ ๋Œ€๊ธฐ์ค‘โ€ฆ
@@ -273,7 +273,7 @@ health.result.fixStateFilter.fixing=๋ฌธ์ œ ํ•ด๊ฒฐ์ค‘โ€ฆ
 health.result.fixStateFilter.fixed=๋ฌธ์ œ ํ•ด๊ฒฐ๋จ
 health.result.fixStateFilter.fixFailed=๋ฌธ์ œ ํ•ด๊ฒฐ ์‹คํŒจ
 ## Fix Application
-health.fix.fixBtn=๋ฌธ์ œํ•ด๊ฒฐ
+health.fix.fixBtn=๋ฌธ์ œ ํ•ด๊ฒฐ
 health.fix.successTip=๋ฌธ์ œ ํ•ด๊ฒฐ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
 health.fix.failTip=๋ฌธ์ œ ํ•ด๊ฒฐ ์‹คํŒจ, ์ƒ์„ธ ์ •๋ณด๋Š” ๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์š”.
 
@@ -290,7 +290,7 @@ preferences.general.keychainBackend=๋‹ค์Œ ๊ฒฝ๋กœ์— ๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ
 preferences.general.quickAccessService=์—ด๋ฆฐ Vault๋ฅผ ๋น ๋ฅธ ์ ‘๊ทผ ์œ„์น˜์— ์ถ”๊ฐ€ํ•˜๊ธฐ
 ## Interface
 preferences.interface=์ธํ„ฐํŽ˜์ด์Šค
-preferences.interface.theme=ํ…Œ๋งˆ์„ค์ •
+preferences.interface.theme=ํ…Œ๋งˆ
 preferences.interface.theme.automatic=์ž๋™
 preferences.interface.theme.dark=์–ด๋‘ก๊ฒŒ
 preferences.interface.theme.light=๋ฐ๊ฒŒ
@@ -331,7 +331,7 @@ preferences.updates.upToDate=ํ˜„์žฌ ์ตœ์‹  ๋ฒ„์ „์˜ Cryptomator๋ฅผ ์‚ฌ์šฉํ•˜๊ณ 
 
 ## Contribution
 preferences.contribute=ํ›„์›ํ•˜๊ธฐ
-preferences.contribute.registeredFor=%s (์œผ)๋กœ ํ›„์›์ž ์ธ์ฆ ๋“ฑ๋ก๋จ
+preferences.contribute.registeredFor=%s(์œผ)๋กœ ํ›„์›์ž ์ธ์ฆ ๋“ฑ๋ก๋จ
 preferences.contribute.noCertificate=Cryptomator๋ฅผ ํ›„์›ํ•˜์‹œ๊ณ  ํ›„์›์ž ์ธ์ฆ์„ ๋ฐ›์œผ์‹ญ์‹œ์š”. ๋ผ์ด์„ ์Šค ํ‚ค์™€ ๋น„์Šทํ•˜์ง€๋งŒ ๋ฌด๋ฃŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ‹์ง„ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ;-)
 preferences.contribute.getCertificate=์•„์ง ํ›„์›์ž ์ธ์ฆ์ด ์—†์œผ์‹ ๊ฐ€์š”? ์–ด๋–ป๊ฒŒ ์–ป๋Š”์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 preferences.contribute.promptText=ํ›„์›์ž ์ธ์ฆ์ฝ”๋“œ๋ฅผ ์—ฌ๊ธฐ์— ๋ถ™์—ฌ๋„ฃ๊ธฐ
@@ -406,7 +406,7 @@ main.vaultDetail.unlockBtn=์ž ๊ธˆ ํ•ด์ œ...
 main.vaultDetail.unlockNowBtn=์ง€๊ธˆ ์ž ๊ธˆ ํ•ด์ œ
 main.vaultDetail.optionsBtn=Vault ์˜ต์…˜
 main.vaultDetail.passwordSavedInKeychain=๋น„๋ฐ€๋ฒˆํ˜ธ ์ €์žฅ๋จ
-main.vaultDetail.share=๊ณต์œ ํ•˜๊ธฐ
+main.vaultDetail.share=๊ณต์œ ํ•˜๊ธฐโ€ฆ
 ### Unlocked
 main.vaultDetail.unlockedStatus=์ž ๊ธˆ ํ•ด์ œ๋จ
 main.vaultDetail.accessLocation=์ด Vault์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ์˜ ๊ฒฝ๋กœ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
@@ -450,7 +450,7 @@ wrongFileAlert.link=๋” ๋งŽ์€ ์ง€์›์„ ์œ„ํ•ด, ๋‹ค์Œ์„ ๋ฐฉ๋ฌธํ•˜์‹ญ์‹œ์˜ค
 ## General
 vaultOptions.general=์ผ๋ฐ˜
 vaultOptions.general.vaultName=Vault ์ด๋ฆ„
-vaultOptions.general.autoLock.lockAfterTimePart1=๋‹ค์Œ ์‹œ๊ฐ„๋™์•ˆ ์œ ํœด์ƒํƒœ ์‹œ ์ž ๊ธˆ :
+vaultOptions.general.autoLock.lockAfterTimePart1=๋‹ค์Œ ์‹œ๊ฐ„ ๋™์•ˆ ์œ ํœด์ƒํƒœ ์‹œ ์ž ๊ทธ๊ธฐ
 vaultOptions.general.autoLock.lockAfterTimePart2=๋ถ„
 vaultOptions.general.unlockAfterStartup=Cryptomator๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ Vault ์ž ๊ธˆ ํ•ด์ œ
 vaultOptions.general.actionAfterUnlock=์„ฑ๊ณต์ ์œผ๋กœ ์ž ๊ธˆํ•ด์ œ ํ›„
@@ -553,11 +553,15 @@ dokanySupportEnd.description=Cryptomator์—์„œ Dokany ๋ณผ๋ฅจ ํ˜•์‹์€ ๋”์ด์ƒ
 dokanySupportEnd.preferencesBtn=์„ค์ • ์—ด๊ธฐ
 
 #Retry If Readonly
+retryIfReadonly.title=Vault ์ ‘๊ทผ ์ œํ•œ๋จ
+retryIfReadonly.message=Vault ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์“ฐ๊ธฐ ๊ถŒํ•œ ์—†์Œ
+retryIfReadonly.description=Cryptomator๊ฐ€ Vault ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Vault๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ Vault ์˜ต์…˜์—์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
+retryIfReadonly.retry=๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ธฐ
 
 # Share Vault
 shareVault.title=Vault ๊ณต์œ 
 shareVault.message=Vault๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ๊ณต์œ ํ•˜๋ ค ํ•˜์‹ญ๋‹ˆ๊นŒ?
-shareVault.description=Vault๋ฅผ ํƒ€์ธ๊ณผ ๊ณต์œ ํ•  ๋•Œ์—๋Š” ํ•ญ์ƒ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ„๋‹จํžˆ ์ด ๋‹จ๊ณ„๋“ค์„ ๋”ฐ๋ฅด์„ธ์š”.
+shareVault.description=Vault๋ฅผ ํƒ€์ธ๊ณผ ๊ณต์œ ํ•  ๋•Œ์—๋Š” ํ•ญ์ƒ ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ„๋‹จํžˆ ์ด ๋‹จ๊ณ„๋“ค์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
 shareVault.instruction.1=1. ์•”ํ˜ธํ™”๋œ Vault ํด๋”๋ฅผ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ†ตํ•ด ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค.
 shareVault.instruction.2=2. Vault์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ „๋‹ฌํ•˜์‹ญ์‹œ์˜ค.
 shareVault.remarkBestPractices=๋ฌธ์„œ์— ์žˆ๋Š” ๊ถŒ์žฅ์‚ฌํ•ญ์„ ํ†ตํ•ด ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.