diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 357b2e3e4..e15900880 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,7 +8,7 @@ updates: time: "06:00" timezone: "UTC" groups: - all: # one PR for all dependencies + maven-dependencies: patterns: - "*" @@ -17,7 +17,7 @@ updates: schedule: interval: "monthly" groups: - all: # one PR for all actions + github-actions: patterns: - "*" labels: diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage-amd64.yml similarity index 85% rename from .github/workflows/appimage.yml rename to .github/workflows/appimage-amd64.yml index 280ddb2c2..dbc180473 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage-amd64.yml @@ -10,7 +10,10 @@ on: required: false env: + JAVA_DIST: 'temurin' JAVA_VERSION: 20 + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: 'f522ac2ae4bdd61f0219b7b8d2058ff72a22f36a44378453bcfdcd82f8f5e08c' jobs: get-version: @@ -27,19 +30,31 @@ jobs: - name: Setup Java uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} - java-package: 'jdk+fx' + check-latest: true cache: 'maven' - - name: Ensure major jfx version in pom equals in jdk - shell: pwsh + + - name: Download OpenJFX jmods + id: download-jmods run: | - $jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\." - $jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\." - if ($jfxPomVersion[0] -ne $jfxJdkVersion[0]) { - Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) " + curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-jmods.zip + echo "${{ env.OPENJFX_JMODS_AMD64_HASH }} openjfx-jmods.zip" | shasum -a256 --check + mkdir -p openjfx-jmods + unzip -j openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods + - name: Ensure major jfx version in pom and in jmods is the same + run: | + JMOD_VERSION_AMD64=$(jmod describe openjfx-jmods/javafx.base.jmod | head -1) + JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64#*@} + JMOD_VERSION_AMD64=${JMOD_VERSION_AMD64%%.*} + POM_JFX_VERSION=$(mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) + POM_JFX_VERSION=${POM_JFX_VERSION#*@} + POM_JFX_VERSION=${POM_JFX_VERSION%%.*} + + if [ $POM_JFX_VERSION -ne $JMOD_VERSION_AMD64 ]; then + >&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != amd64 jmod version (${JMOD_VERSION_AMD64})" exit 1 - } + fi - name: Set version run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }} - name: Run maven @@ -53,7 +68,7 @@ jobs: ${JAVA_HOME}/bin/jlink --verbose --output runtime - --module-path "${JAVA_HOME}/jmods" + --module-path "${JAVA_HOME}/jmods:openjfx-jmods" --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net --strip-native-commands --no-header-files diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f58cafe15..13acee970 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,7 @@ on: types: [labeled] env: + JAVA_DIST: 'temurin' JAVA_VERSION: 20 defaults: @@ -20,7 +21,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - name: Cache SonarCloud packages diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index adec8b2c5..14cdca80a 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -16,9 +16,12 @@ on: type: boolean env: + JAVA_DIST: 'temurin' JAVA_VERSION: 20 - OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_linux-x64_bin-jmods.zip' - OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_linux-aarch64_bin-jmods.zip' + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: 'f522ac2ae4bdd61f0219b7b8d2058ff72a22f36a44378453bcfdcd82f8f5e08c' + OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-aarch64_bin-jmods.zip' + OPENJFX_JMODS_AARCH64_HASH: 'c0d80ebbe0aab404ef9ad8b46c05bf533a1e40b39b2720eebd9238d81f6326ca' jobs: build: @@ -43,8 +46,9 @@ jobs: - name: Setup Java uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} + check-latest: true cache: 'maven' - name: Run maven run: mvn -B clean package -Pdependency-check,linux -DskipTests @@ -52,9 +56,11 @@ jobs: id: download-jmods run: | curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-amd64.zip + echo "${{ env.OPENJFX_JMODS_AMD64_HASH }} openjfx-amd64.zip" | shasum -a256 --check mkdir -p jmods/amd64 unzip -j openjfx-amd64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/amd64 curl -L ${{ env.OPENJFX_JMODS_AARCH64 }} -o openjfx-aarch64.zip + echo "${{ env.OPENJFX_JMODS_AARCH64_HASH }} openjfx-aarch64.zip" | shasum -a256 --check mkdir -p jmods/aarch64 unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64 - name: Ensure major jfx version in pom and in jmods is the same diff --git a/.github/workflows/get-version.yml b/.github/workflows/get-version.yml index d8684dc20..44f5ccd85 100644 --- a/.github/workflows/get-version.yml +++ b/.github/workflows/get-version.yml @@ -22,9 +22,8 @@ on: value: ${{ jobs.determine-version.outputs.type }} env: - JAVA_VERSION: 20 JAVA_DIST: 'temurin' - JAVA_CACHE: 'maven' + JAVA_VERSION: 20 jobs: determine-version: @@ -44,7 +43,7 @@ jobs: with: distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} - cache: ${{ env.JAVA_CACHE }} + cache: 'maven' - id: versions name: Get version information run: | diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 764af2d9a..fe10ce531 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -15,7 +15,12 @@ on: type: boolean env: + JAVA_DIST: 'temurin' JAVA_VERSION: 20 + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: '55b8ff7453d59c89ae129f6c9c5ad7b09a5d359568811b376ac1766c14d6a17c' + OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-aarch64_bin-jmods.zip' + OPENJFX_JMODS_AARCH64_HASH: 'c60f5f19aa847e0e620e0b011e5de68f2c6755641c2141cec27a0b89f612beaf' jobs: get-version: @@ -36,24 +41,24 @@ jobs: output-suffix: x64 xcode-path: '/Applications/Xcode_13.2.1.app' fuse-lib: macFUSE - openjfx-url: https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_osx-x64_bin-jmods.zip - openjfx-sha: 4fcd4bc3cd0edeb899108109e42a0c5a2d87d14a195d11199060862eb6d887b5 + openjfx-url: ${{ env.OPENJFX_JMODS_AMD64 }} + openjfx-sha: ${{ env.OPENJFX_JMODS_AMD64_HASH }} - os: [self-hosted, macOS, ARM64] architecture: aarch64 output-suffix: arm64 xcode-path: '/Applications/Xcode_13.2.1.app' fuse-lib: FUSE-T - openjfx-url: https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_osx-aarch64_bin-jmods.zip - openjfx-sha: e7e99e6dc3d091e7e1c6940d8e1acc282f22b82b234a20ae7cbec4b93a6acabe + openjfx-url: ${{ env.OPENJFX_JMODS_AARCH64 }} + openjfx-sha: ${{ env.OPENJFX_JMODS_AARCH64_HASH }} steps: - uses: actions/checkout@v3 - name: Setup Java uses: actions/setup-java@v3 with: - distribution: 'temurin' + distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} - java-package: 'jdk' architecture: ${{ matrix.architecture }} + check-latest: true cache: 'maven' - name: Download OpenJFX jmods id: download-jmods diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 73a21edde..14146d0cb 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -4,6 +4,7 @@ on: pull_request: env: + JAVA_DIST: 'temurin' JAVA_VERSION: 20 defaults: @@ -19,7 +20,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - name: Build and Test diff --git a/.github/workflows/release-check.yml b/.github/workflows/release-check.yml index d5a17d121..ec532081b 100644 --- a/.github/workflows/release-check.yml +++ b/.github/workflows/release-check.yml @@ -6,9 +6,6 @@ on: - 'release/**' - 'hotfix/**' -env: - JAVA_VERSION: 20 - defaults: run: shell: bash diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index b4646a4e5..066b7d49e 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -10,15 +10,14 @@ on: required: false isDebug: description: 'Build debug version with console output' - type: boolean + type: boolean env: - JAVA_VERSION: 20 JAVA_DIST: 'temurin' - JAVA_CACHE: 'maven' - JFX_JMODS_URL: 'https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_windows-x64_bin-jmods.zip' - JFX_JMODS_HASH: 'D00767334C43B8832B5CF10267D34CA8F563D187C4655B73EB6020DD79C054B5' + JAVA_VERSION: 20 + OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_windows-x64_bin-jmods.zip' + OPENJFX_JMODS_AMD64_HASH: '18625bbc13c57dbf802486564247a8d8cab72ec558c240a401bf6440384ebd77' defaults: run: @@ -44,14 +43,14 @@ jobs: with: distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} - java-package: 'jdk' - cache: ${{ env.JAVA_CACHE }} + check-latest: true + cache: 'maven' - name: Download and extract JavaFX jmods from Gluon #In the last step we move all jmods files a dir level up because jmods are placed inside a directory in the zip run: | - curl --output jfxjmods.zip -L "${{ env.JFX_JMODS_URL }}" - if(!(Get-FileHash -Path jfxjmods.zip -Algorithm SHA256).Hash.equals("${{ env.JFX_JMODS_HASH }}")) { - throw "Wrong checksum of JMOD archive downloaded from ${{ env.JFX_JMODS_URL }}."; + curl --output jfxjmods.zip -L "${{ env.OPENJFX_JMODS_AMD64 }}" + if(!(Get-FileHash -Path jfxjmods.zip -Algorithm SHA256).Hash.ToLower().equals("${{ env.OPENJFX_JMODS_AMD64_HASH }}")) { + throw "Wrong checksum of JMOD archive downloaded from ${{ env.OPENJFX_JMODS_AMD64 }}."; } Expand-Archive -Path jfxjmods.zip -DestinationPath jfxjmods Get-ChildItem -Path jfxjmods -Recurse -Filter "*.jmod" | ForEach-Object { Move-Item -Path $_ -Destination $_.Directory.Parent} @@ -247,7 +246,8 @@ jobs: with: distribution: ${{ env.JAVA_DIST }} java-version: ${{ env.JAVA_VERSION }} - cache: ${{ env.JAVA_CACHE }} + check-latest: true + cache: 'maven' - name: Generate license for exe run: > mvn -B license:add-third-party diff --git a/dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml b/dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml index 0ca6499ad..f1deff111 100644 --- a/dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml +++ b/dist/linux/common/org.cryptomator.Cryptomator.metainfo.xml @@ -66,6 +66,7 @@ + diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh index 1fad663e1..6d586f02c 100755 --- a/dist/mac/dmg/build.sh +++ b/dist/mac/dmg/build.sh @@ -35,7 +35,7 @@ if [ "$(machine)" = "arm64e" ]; then else ARCH="x64" fi -OPENJFX_JMODS="https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_linux-${ARCH}_bin-jmods.zip" +OPENJFX_JMODS="https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-${ARCH}_bin-jmods.zip" # check preconditions if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi diff --git a/dist/mac/resources/Cryptomator.icns b/dist/mac/resources/Cryptomator.icns index 25da5b5be..79f5fdb39 100644 Binary files a/dist/mac/resources/Cryptomator.icns and b/dist/mac/resources/Cryptomator.icns differ diff --git a/dist/win/build.ps1 b/dist/win/build.ps1 index 48eeac2a6..d695e7302 100644 --- a/dist/win/build.ps1 +++ b/dist/win/build.ps1 @@ -51,10 +51,11 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) { } ## download jfx jmods -$jfxJmodsChecksum = 'd00767334c43b8832b5cf10267d34ca8f563d187c4655b73eb6020dd79c054b5' +$jmodsVersion='20.0.2' +$jmodsUrl = "https://download2.gluonhq.com/openjfx/${jmodsVersion}/openjfx-${jmodsVersion}_windows-x64_bin-jmods.zip" +$jfxJmodsChecksum = '18625bbc13c57dbf802486564247a8d8cab72ec558c240a401bf6440384ebd77' $jfxJmodsZip = '.\resources\jfxJmods.zip' if( !(Test-Path -Path $jfxJmodsZip) ) { - $jmodsUrl = "https://download2.gluonhq.com/openjfx/20.0.1/openjfx-20.0.1_windows-x64_bin-jmods.zip" Write-Output "Downloading ${jmodsUrl}..." Invoke-WebRequest $jmodsUrl -OutFile $jfxJmodsZip # redirects are followed by default } @@ -65,12 +66,13 @@ if( $jmodsChecksumActual -ne $jfxJmodsChecksum ) { exit 1; } Expand-Archive -Force -Path $jfxJmodsZip -DestinationPath ".\resources\" +Move-Item -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop & "$Env:JAVA_HOME\bin\jlink" ` --verbose ` --output runtime ` - --module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods-20.0.1" ` + --module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods" ` --add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr,javafx.base,javafx.graphics,javafx.controls,javafx.fxml ` --strip-native-commands ` --no-header-files ` diff --git a/dist/win/contrib/patchWebDAV.bat b/dist/win/contrib/patchWebDAV.bat index cc9f667dd..735cfb823 100644 --- a/dist/win/contrib/patchWebDAV.bat +++ b/dist/win/contrib/patchWebDAV.bat @@ -3,5 +3,5 @@ ::REPLACE ME cd %~dp0 -powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command .\patchWebDAV.ps1^ +powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command .\patchWebDAV.ps1^ -LoopbackAlias %LOOPBACK_ALIAS% \ No newline at end of file diff --git a/dist/win/contrib/version170-migrate-settings.bat b/dist/win/contrib/version170-migrate-settings.bat index 345b01ad9..d94e062a1 100644 --- a/dist/win/contrib/version170-migrate-settings.bat +++ b/dist/win/contrib/version170-migrate-settings.bat @@ -2,4 +2,4 @@ :: see comments in file ./version170-migrate-settings.ps1 cd %~dp0 -powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command .\version170-migrate-settings.ps1 \ No newline at end of file +powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command .\version170-migrate-settings.ps1 diff --git a/pom.xml b/pom.xml index 871611ea0..07deef6c0 100644 --- a/pom.xml +++ b/pom.xml @@ -33,38 +33,45 @@ org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents - 2.6.6 + 2.6.7 1.3.0 1.2.2 - 1.2.0 + 1.2.1 1.3.0-beta6 3.0.0 2.0.0 2.0.3 - 3.12.0 - 2.45 + 3.13.0 + 2.48 2.2 - 32.0.1-jre + 32.1.2-jre 2.15.2 - 20.0.1 + 20.0.2 4.4.0 9.31 - 1.4.7 - 2.0.7 - 0.5.1 - 1.7.0 + 1.4.11 + 2.0.9 + 0.6.0 + 1.8.2 - 5.9.3 - 5.3.1 + 5.10.0 + 5.5.0 2.2 - 23.0.0 - 8.1.2 - 0.8.9 + 24.0.1 + 8.4.0 + 0.8.10 + 2.2.0 + 1.2.1 + 3.11.0 + 3.3.1 + 3.6.0 + 3.1.2 + 3.3.0 @@ -240,7 +247,7 @@ com.google.jimfs jimfs - 1.2 + 1.3.0 test @@ -258,32 +265,32 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.1 + ${mvn-compiler.version} org.apache.maven.plugins maven-resources-plugin - 3.3.0 + ${mvn-resources.version} org.apache.maven.plugins maven-dependency-plugin - 3.3.0 + ${mvn-dependency.version} org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M7 + ${mvn-surefire.version} org.codehaus.mojo license-maven-plugin - 2.0.0 + ${license-generator.version} org.apache.maven.plugins maven-jar-plugin - 3.3.0 + ${mvn-jar.version} org.jacoco @@ -332,8 +339,22 @@ org.apache.maven.plugins maven-surefire-plugin + + + me.fabriciorby + maven-surefire-junit5-tree-reporter + ${junit-tree-reporter.version} + + --enable-preview + plain + + true + + + diff --git a/src/main/java/org/cryptomator/common/settings/Settings.java b/src/main/java/org/cryptomator/common/settings/Settings.java index fd9f01904..4e0e0df97 100644 --- a/src/main/java/org/cryptomator/common/settings/Settings.java +++ b/src/main/java/org/cryptomator/common/settings/Settings.java @@ -65,7 +65,6 @@ public class Settings { public final IntegerProperty windowYPosition; public final IntegerProperty windowWidth; public final IntegerProperty windowHeight; - public final StringProperty displayConfiguration; public final StringProperty language; public final StringProperty mountService; public final StringProperty lastUpdateCheck; @@ -103,7 +102,6 @@ public class Settings { this.windowYPosition = new SimpleIntegerProperty(this, "windowYPosition", json.windowYPosition); this.windowWidth = new SimpleIntegerProperty(this, "windowWidth", json.windowWidth); this.windowHeight = new SimpleIntegerProperty(this, "windowHeight", json.windowHeight); - this.displayConfiguration = new SimpleStringProperty(this, "displayConfiguration", json.displayConfiguration); this.language = new SimpleStringProperty(this, "language", json.language); this.mountService = new SimpleStringProperty(this, "mountService", json.mountService); this.lastUpdateCheck = new SimpleStringProperty(this, "lastUpdateCheck", json.lastUpdateCheck); @@ -131,7 +129,6 @@ public class Settings { windowYPosition.addListener(this::somethingChanged); windowWidth.addListener(this::somethingChanged); windowHeight.addListener(this::somethingChanged); - displayConfiguration.addListener(this::somethingChanged); language.addListener(this::somethingChanged); mountService.addListener(this::somethingChanged); lastUpdateCheck.addListener(this::somethingChanged); @@ -186,7 +183,6 @@ public class Settings { json.windowYPosition = windowYPosition.get(); json.windowWidth = windowWidth.get(); json.windowHeight = windowHeight.get(); - json.displayConfiguration = displayConfiguration.get(); json.language = language.get(); json.mountService = mountService.get(); json.lastUpdateCheck = lastUpdateCheck.get(); diff --git a/src/main/java/org/cryptomator/common/settings/SettingsJson.java b/src/main/java/org/cryptomator/common/settings/SettingsJson.java index 977e1d3cd..2c7c963da 100644 --- a/src/main/java/org/cryptomator/common/settings/SettingsJson.java +++ b/src/main/java/org/cryptomator/common/settings/SettingsJson.java @@ -31,9 +31,6 @@ class SettingsJson { @JsonProperty("theme") UiTheme theme = Settings.DEFAULT_THEME; - @JsonProperty("displayConfiguration") - String displayConfiguration; - @JsonProperty("keychainProvider") String keychainProvider = Settings.DEFAULT_KEYCHAIN_PROVIDER; diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java index 4a9dba7ad..62321277c 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java @@ -45,9 +45,8 @@ public abstract class AddVaultModule { @Provides @AddVaultWizardWindow @AddVaultWizardScoped - static Stage provideStage(StageFactory factory, @PrimaryStage Stage primaryStage, ResourceBundle resourceBundle) { + static Stage provideStage(StageFactory factory, @PrimaryStage Stage primaryStage) { Stage stage = factory.create(); - stage.setTitle(resourceBundle.getString("addvaultwizard.title")); stage.setResizable(false); stage.initModality(Modality.WINDOW_MODAL); stage.initOwner(primaryStage); @@ -90,13 +89,6 @@ public abstract class AddVaultModule { // ------------------ - @Provides - @FxmlScene(FxmlFile.ADDVAULT_WELCOME) - @AddVaultWizardScoped - static Scene provideWelcomeScene(@AddVaultWizardWindow FxmlLoaderFactory fxmlLoaders) { - return fxmlLoaders.createScene(FxmlFile.ADDVAULT_WELCOME); - } - @Provides @FxmlScene(FxmlFile.ADDVAULT_EXISTING) @AddVaultWizardScoped @@ -148,11 +140,6 @@ public abstract class AddVaultModule { // ------------------ - @Binds - @IntoMap - @FxControllerKey(AddVaultWelcomeController.class) - abstract FxController bindWelcomeController(AddVaultWelcomeController controller); - @Binds @IntoMap @FxControllerKey(ChooseExistingVaultController.class) diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWelcomeController.java b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWelcomeController.java deleted file mode 100644 index 3c13aeb75..000000000 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWelcomeController.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.cryptomator.ui.addvaultwizard; - -import dagger.Lazy; -import org.cryptomator.ui.common.FxController; -import org.cryptomator.ui.common.FxmlFile; -import org.cryptomator.ui.common.FxmlScene; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.inject.Inject; -import javafx.scene.Scene; -import javafx.stage.Stage; - -@AddVaultWizardScoped -public class AddVaultWelcomeController implements FxController { - - private static final Logger LOG = LoggerFactory.getLogger(AddVaultWelcomeController.class); - private final Stage window; - private final Lazy chooseExistingVaultScene; - private final Lazy createNewVaultScene; - - @Inject - AddVaultWelcomeController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_EXISTING) Lazy chooseExistingVaultScene, @FxmlScene(FxmlFile.ADDVAULT_NEW_NAME) Lazy createNewVaultScene) { - this.window = window; - this.chooseExistingVaultScene = chooseExistingVaultScene; - this.createNewVaultScene = createNewVaultScene; - } - - public void createNewVault() { - LOG.debug("AddVaultWelcomeController.createNewVault()"); - window.setScene(createNewVaultScene.get()); - } - - public void chooseExistingVault() { - LOG.debug("AddVaultWelcomeController.chooseExistingVault()"); - window.setScene(chooseExistingVaultScene.get()); - } -} diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java index 1253d8347..c67f999e8 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java @@ -12,6 +12,7 @@ import org.cryptomator.ui.common.FxmlScene; import javafx.scene.Scene; import javafx.stage.Stage; +import java.util.ResourceBundle; @AddVaultWizardScoped @Subcomponent(modules = {AddVaultModule.class}) @@ -20,12 +21,23 @@ public interface AddVaultWizardComponent { @AddVaultWizardWindow Stage window(); - @FxmlScene(FxmlFile.ADDVAULT_WELCOME) - Lazy scene(); + @FxmlScene(FxmlFile.ADDVAULT_NEW_NAME) + Lazy sceneNew(); + @FxmlScene(FxmlFile.ADDVAULT_EXISTING) + Lazy sceneExisting(); - default void showAddVaultWizard() { + default void showAddNewVaultWizard(ResourceBundle resourceBundle) { Stage stage = window(); - stage.setScene(scene().get()); + stage.setScene(sceneNew().get()); + stage.setTitle(resourceBundle.getString("addvaultwizard.new.title")); + stage.sizeToScene(); + stage.show(); + } + + default void showAddExistingVaultWizard(ResourceBundle resourceBundle) { + Stage stage = window(); + stage.setScene(sceneExisting().get()); + stage.setTitle(resourceBundle.getString("addvaultwizard.existing.title")); stage.sizeToScene(); stage.show(); } diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java b/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java index fe4ac3bd1..be9ea15c7 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java @@ -35,7 +35,6 @@ public class ChooseExistingVaultController implements FxController { private static final Logger LOG = LoggerFactory.getLogger(ChooseExistingVaultController.class); private final Stage window; - private final Lazy welcomeScene; private final Lazy successScene; private final FxApplicationWindows appWindows; private final ObjectProperty vaultPath; @@ -45,9 +44,15 @@ public class ChooseExistingVaultController implements FxController { private final ObservableValue screenshot; @Inject - ChooseExistingVaultController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_WELCOME) Lazy welcomeScene, @FxmlScene(FxmlFile.ADDVAULT_SUCCESS) Lazy successScene, FxApplicationWindows appWindows, ObjectProperty vaultPath, @AddVaultWizardWindow ObjectProperty vault, VaultListManager vaultListManager, ResourceBundle resourceBundle, FxApplicationStyle applicationStyle) { + ChooseExistingVaultController(@AddVaultWizardWindow Stage window, // + @FxmlScene(FxmlFile.ADDVAULT_SUCCESS) Lazy successScene, // + FxApplicationWindows appWindows, // + ObjectProperty vaultPath, // + @AddVaultWizardWindow ObjectProperty vault, // + VaultListManager vaultListManager, // + ResourceBundle resourceBundle, // + FxApplicationStyle applicationStyle) { this.window = window; - this.welcomeScene = welcomeScene; this.successScene = successScene; this.appWindows = appWindows; this.vaultPath = vaultPath; @@ -70,11 +75,6 @@ public class ChooseExistingVaultController implements FxController { return new Image((Objects.requireNonNull(getClass().getResource(imageResourcePath)).toString())); } - @FXML - public void back() { - window.setScene(welcomeScene.get()); - } - @FXML public void chooseFileAndNext() { FileChooser fileChooser = new FileChooser(); diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultNameController.java b/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultNameController.java index 2ca73e172..a80baef50 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultNameController.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultNameController.java @@ -17,7 +17,6 @@ import javafx.scene.Scene; import javafx.scene.control.TextField; import javafx.stage.Stage; import java.nio.file.Path; -import java.util.ResourceBundle; import java.util.regex.Pattern; @AddVaultWizardScoped @@ -27,16 +26,17 @@ public class CreateNewVaultNameController implements FxController { public TextField textField; private final Stage window; - private final Lazy welcomeScene; private final Lazy chooseLocationScene; private final ObjectProperty vaultPath; private final StringProperty vaultName; private final BooleanBinding validVaultName; @Inject - CreateNewVaultNameController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_WELCOME) Lazy welcomeScene, @FxmlScene(FxmlFile.ADDVAULT_NEW_LOCATION) Lazy chooseLocationScene, ObjectProperty vaultPath, @Named("vaultName") StringProperty vaultName, ResourceBundle resourceBundle) { + CreateNewVaultNameController(@AddVaultWizardWindow Stage window, // + @FxmlScene(FxmlFile.ADDVAULT_NEW_LOCATION) Lazy chooseLocationScene, // + ObjectProperty vaultPath, // + @Named("vaultName") StringProperty vaultName) { this.window = window; - this.welcomeScene = welcomeScene; this.chooseLocationScene = chooseLocationScene; this.vaultPath = vaultPath; this.vaultName = vaultName; @@ -58,11 +58,6 @@ public class CreateNewVaultNameController implements FxController { } } - @FXML - public void back() { - window.setScene(welcomeScene.get()); - } - @FXML public void next() { window.setScene(chooseLocationScene.get()); diff --git a/src/main/java/org/cryptomator/ui/common/FxmlFile.java b/src/main/java/org/cryptomator/ui/common/FxmlFile.java index aba687354..144b8bbb6 100644 --- a/src/main/java/org/cryptomator/ui/common/FxmlFile.java +++ b/src/main/java/org/cryptomator/ui/common/FxmlFile.java @@ -8,7 +8,6 @@ public enum FxmlFile { ADDVAULT_NEW_PASSWORD("/fxml/addvault_new_password.fxml"), // ADDVAULT_NEW_RECOVERYKEY("/fxml/addvault_new_recoverykey.fxml"), // ADDVAULT_SUCCESS("/fxml/addvault_success.fxml"), // - ADDVAULT_WELCOME("/fxml/addvault_welcome.fxml"), // CHANGEPASSWORD("/fxml/changepassword.fxml"), // CONVERTVAULT_HUBTOPASSWORD_START("/fxml/convertvault_hubtopassword_start.fxml"), // CONVERTVAULT_HUBTOPASSWORD_CONVERT("/fxml/convertvault_hubtopassword_convert.fxml"), // diff --git a/src/main/java/org/cryptomator/ui/error/ErrorController.java b/src/main/java/org/cryptomator/ui/error/ErrorController.java index b25de6d84..3feb3ff44 100644 --- a/src/main/java/org/cryptomator/ui/error/ErrorController.java +++ b/src/main/java/org/cryptomator/ui/error/ErrorController.java @@ -47,14 +47,15 @@ public class ErrorController implements FxController { private static final String REPORT_URL_FORMAT = "https://github.com/cryptomator/cryptomator/discussions/new?category=Errors&title=Error+%s&body=%s"; private static final String SEARCH_ERRORCODE_DELIM = " OR "; private static final String REPORT_BODY_TEMPLATE = """ + OS: %s / %s App: %s / %s - - - - + Description: + + + Details: """; diff --git a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowComponent.java b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowComponent.java index 07710e688..40885b387 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowComponent.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowComponent.java @@ -26,6 +26,7 @@ public interface MainWindowComponent { default Stage showMainWindow() { Stage stage = window(); stage.setScene(scene().get()); + stage.setIconified(false); stage.show(); stage.toFront(); stage.requestFocus(); diff --git a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowSceneFactory.java b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowSceneFactory.java index f93f4109d..d78192186 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowSceneFactory.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowSceneFactory.java @@ -16,6 +16,7 @@ import javafx.stage.Stage; public class MainWindowSceneFactory extends DefaultSceneFactory { protected static final KeyCodeCombination SHORTCUT_N = new KeyCodeCombination(KeyCode.N, KeyCombination.SHORTCUT_DOWN); + protected static final KeyCodeCombination SHORTCUT_O = new KeyCodeCombination(KeyCode.O, KeyCombination.SHORTCUT_DOWN); private final Lazy mainWindowTitleController; private final Lazy vaultListController; @@ -34,6 +35,7 @@ public class MainWindowSceneFactory extends DefaultSceneFactory { } else { scene.getAccelerators().put(SHORTCUT_W, mainWindowTitleController.get()::close); } - scene.getAccelerators().put(SHORTCUT_N, vaultListController.get()::didClickAddVault); + scene.getAccelerators().put(SHORTCUT_N, vaultListController.get()::didClickAddNewVault); + scene.getAccelerators().put(SHORTCUT_O, vaultListController.get()::didClickAddExistingVault); } } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java b/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java index 1b3f1b69f..b136fa55c 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/ResizeController.java @@ -6,7 +6,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; -import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.collections.ObservableList; import javafx.fxml.FXML; @@ -15,6 +14,7 @@ import javafx.scene.input.MouseEvent; import javafx.scene.layout.Region; import javafx.stage.Screen; import javafx.stage.Stage; +import javafx.stage.WindowEvent; @MainWindow public class ResizeController implements FxController { @@ -53,48 +53,70 @@ public class ResizeController implements FxController { public void initialize() { LOG.trace("init ResizeController"); - if (neverTouched()) { - settings.displayConfiguration.set(getMonitorSizes()); - return; - } else { - if (didDisplayConfigurationChange()) { - //If the position is illegal, then the window appears on the main screen in the middle of the window. - Rectangle2D primaryScreenBounds = Screen.getPrimary().getBounds(); - window.setX((primaryScreenBounds.getWidth() - window.getMinWidth()) / 2); - window.setY((primaryScreenBounds.getHeight() - window.getMinHeight()) / 2); - window.setWidth(window.getMinWidth()); - window.setHeight(window.getMinHeight()); - } else { - window.setHeight(settings.windowHeight.get() > window.getMinHeight() ? settings.windowHeight.get() : window.getMinHeight()); - window.setWidth(settings.windowWidth.get() > window.getMinWidth() ? settings.windowWidth.get() : window.getMinWidth()); - window.setX(settings.windowXPosition.get()); - window.setY(settings.windowYPosition.get()); - } + if (!neverTouched()) { + window.setHeight(settings.windowHeight.get() > window.getMinHeight() ? settings.windowHeight.get() : window.getMinHeight()); + window.setWidth(settings.windowWidth.get() > window.getMinWidth() ? settings.windowWidth.get() : window.getMinWidth()); + window.setX(settings.windowXPosition.get()); + window.setY(settings.windowYPosition.get()); } - savePositionalSettings(); + + window.setOnShowing(this::checkDisplayBounds); } private boolean neverTouched() { return (settings.windowHeight.get() == 0) && (settings.windowWidth.get() == 0) && (settings.windowXPosition.get() == 0) && (settings.windowYPosition.get() == 0); } - private boolean didDisplayConfigurationChange() { - String currentDisplayConfiguration = getMonitorSizes(); - String settingsDisplayConfiguration = settings.displayConfiguration.get(); - boolean configurationHasChanged = !settingsDisplayConfiguration.equals(currentDisplayConfiguration); - if (configurationHasChanged) settings.displayConfiguration.set(currentDisplayConfiguration); - return configurationHasChanged; + private boolean isWithinDisplayBounds() { + // (x1, y1) is the top left corner of the window, (x2, y2) is the bottom right corner + final double slack = 10; + final double width = window.getWidth() - 2 * slack; + final double height = window.getHeight() - 2 * slack; + final double x1 = window.getX() + slack; + final double y1 = window.getY() + slack; + final double x2 = x1 + width; + final double y2 = y1 + height; + + final ObservableList screens = Screen.getScreensForRectangle(x1, y1, width, height); + + // Find the total visible area of the window + double visibleArea = 0; + for (Screen screen : screens) { + Rectangle2D bounds = screen.getVisualBounds(); + + double xOverlap = Math.min(x2, bounds.getMaxX()) - Math.max(x1, bounds.getMinX()); + double yOverlap = Math.min(y2, bounds.getMaxY()) - Math.max(y1, bounds.getMinY()); + + visibleArea += xOverlap * yOverlap; + } + + final double windowArea = width * height; + + // Within bounds if the visible area matches the window area + return visibleArea == windowArea; } - private String getMonitorSizes() { - ObservableList screens = Screen.getScreens(); - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < screens.size(); i++) { - Rectangle2D screenBounds = screens.get(i).getBounds(); - if (!sb.isEmpty()) sb.append(" "); - sb.append("displayId: " + i + ", " + screenBounds.getWidth() + "x" + screenBounds.getHeight() + ";"); + private void checkDisplayBounds(WindowEvent evt) { + + // Minimizing a window in Windows and closing it could result in an out of bounds position at (x, y) = (-32000, -32000) + // See https://devblogs.microsoft.com/oldnewthing/20041028-00/?p=37453 + // If the position is (-32000, -32000), restore to the last saved position + if (window.getX() == -32000 && window.getY() == -32000) { + window.setX(settings.windowXPosition.get()); + window.setY(settings.windowYPosition.get()); + window.setWidth(settings.windowWidth.get()); + window.setHeight(settings.windowHeight.get()); + } + + if (!isWithinDisplayBounds()) { + // If the position is illegal, then the window appears on the main screen in the middle of the window. + Rectangle2D primaryScreenBounds = Screen.getPrimary().getBounds(); + window.setX((primaryScreenBounds.getWidth() - window.getMinWidth()) / 2); + window.setY((primaryScreenBounds.getHeight() - window.getMinHeight()) / 2); + window.setWidth(window.getMinWidth()); + window.setHeight(window.getMinHeight()); + savePositionalSettings(); } - return sb.toString(); } private void startResize(MouseEvent evt) { @@ -183,5 +205,4 @@ public class ResizeController implements FxController { public boolean isShowResizingArrows() { return showResizingArrows.get(); } - } \ No newline at end of file diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index f0aadfdfc..357222b33 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -20,7 +20,9 @@ import javafx.beans.property.SimpleBooleanProperty; import javafx.beans.value.ObservableValue; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; +import javafx.event.Event; import javafx.fxml.FXML; +import javafx.scene.control.Button; import javafx.scene.control.ListView; import javafx.scene.input.ContextMenuEvent; import javafx.scene.input.DragEvent; @@ -34,6 +36,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Path; import java.util.EnumSet; +import java.util.ResourceBundle; import java.util.Set; import java.util.stream.Collectors; @@ -59,12 +62,21 @@ public class VaultListController implements FxController { private final RemoveVaultComponent.Builder removeVaultDialogue; private final VaultListManager vaultListManager; private final BooleanProperty draggingVaultOver = new SimpleBooleanProperty(); + private final ResourceBundle resourceBundle; public ListView vaultList; public StackPane root; + public Button addVaultBtn; @Inject - VaultListController(@MainWindow Stage mainWindow, ObservableList vaults, ObjectProperty selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVaultDialogue, VaultListManager vaultListManager) { + VaultListController(@MainWindow Stage mainWindow, // + ObservableList vaults, // + ObjectProperty selectedVault, // + VaultListCellFactory cellFactory, // + AddVaultWizardComponent.Builder addVaultWizard, // + RemoveVaultComponent.Builder removeVaultDialogue, // + VaultListManager vaultListManager, // + ResourceBundle resourceBundle) { this.mainWindow = mainWindow; this.vaults = vaults; this.selectedVault = selectedVault; @@ -72,6 +84,7 @@ public class VaultListController implements FxController { this.addVaultWizard = addVaultWizard; this.removeVaultDialogue = removeVaultDialogue; this.vaultListManager = vaultListManager; + this.resourceBundle = resourceBundle; this.emptyVaultList = Bindings.isEmpty(vaults); @@ -127,6 +140,15 @@ public class VaultListController implements FxController { root.setOnDragOver(this::handleDragEvent); root.setOnDragDropped(this::handleDragEvent); root.setOnDragExited(this::handleDragEvent); + + addVaultBtn.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, Event::consume); + } + + @FXML + private void showMenu() { + double screenX = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMinX(); + double screenY = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMaxY(); + addVaultBtn.getContextMenu().show(addVaultBtn, screenX, screenY); } private void deselect(MouseEvent released) { @@ -144,8 +166,13 @@ public class VaultListController implements FxController { } @FXML - public void didClickAddVault() { - addVaultWizard.build().showAddVaultWizard(); + public void didClickAddNewVault() { + addVaultWizard.build().showAddNewVaultWizard(resourceBundle); + } + + @FXML + public void didClickAddExistingVault() { + addVaultWizard.build().showAddExistingVaultWizard(resourceBundle); } private void pressedShortcutToRemoveVault() { diff --git a/src/main/resources/css/dark_theme.css b/src/main/resources/css/dark_theme.css index 45cadba93..beb50f6bc 100644 --- a/src/main/resources/css/dark_theme.css +++ b/src/main/resources/css/dark_theme.css @@ -795,6 +795,16 @@ -fx-scale-shape: false; } +/******************************************************************************* + * * + * Add Vault - MenuItem * + * * + ******************************************************************************/ + +.add-vault-menu-item { + -fx-padding: 4px 8px; +} + /******************************************************************************* * * * ProgressBar * diff --git a/src/main/resources/css/light_theme.css b/src/main/resources/css/light_theme.css index c3c0faaa9..a494269b7 100644 --- a/src/main/resources/css/light_theme.css +++ b/src/main/resources/css/light_theme.css @@ -794,6 +794,16 @@ -fx-scale-shape: false; } +/******************************************************************************* + * * + * Add Vault - MenuItem * + * * + ******************************************************************************/ + +.add-vault-menu-item { + -fx-padding: 4px 8px; +} + /******************************************************************************* * * * ProgressBar * diff --git a/src/main/resources/fxml/addvault_existing.fxml b/src/main/resources/fxml/addvault_existing.fxml index c46ad6355..200eae4f9 100644 --- a/src/main/resources/fxml/addvault_existing.fxml +++ b/src/main/resources/fxml/addvault_existing.fxml @@ -24,9 +24,8 @@ - + - - - - - - - diff --git a/src/main/resources/fxml/vault_list.fxml b/src/main/resources/fxml/vault_list.fxml index 80f29f2f7..146fa877c 100644 --- a/src/main/resources/fxml/vault_list.fxml +++ b/src/main/resources/fxml/vault_list.fxml @@ -8,6 +8,8 @@ + + - diff --git a/src/main/resources/i18n/strings.properties b/src/main/resources/i18n/strings.properties index 30cd16e73..aee61fe19 100644 --- a/src/main/resources/i18n/strings.properties +++ b/src/main/resources/i18n/strings.properties @@ -41,10 +41,8 @@ traymenu.vault.reveal=Reveal # Add Vault Wizard addvaultwizard.title=Add Vault -## Welcome -addvaultwizard.welcome.newButton=Create New Vault -addvaultwizard.welcome.existingButton=Open Existing Vault ## New +addvaultwizard.new.title=Add New Vault ### Name addvaultwizard.new.nameInstruction=Choose a name for the vault addvaultwizard.new.namePrompt=Vault Name @@ -94,6 +92,7 @@ addvault.new.readme.accessLocation.2=This is your vault's access location. addvault.new.readme.accessLocation.3=Any files added to this volume will be encrypted by Cryptomator. You can work on it like on any other drive/folder. This is only a decrypted view of its content, your files stay encrypted on your hard drive all the time. addvault.new.readme.accessLocation.4=Feel free to remove this file. ## Existing +addvaultwizard.existing.title=Add Existing Vault addvaultwizard.existing.instruction=Choose the "vault.cryptomator" file of your existing vault. If only a file named "masterkey.cryptomator" exists, select that instead. addvaultwizard.existing.chooseBtn=Choose… addvaultwizard.existing.filePickerTitle=Select Vault File @@ -139,7 +138,7 @@ unlock.error.customPath.message=Unable to mount vault to custom path unlock.error.customPath.description.notSupported=If you wish to keep using the custom path, please go to the preferences and select a volume type that supports it. Otherwise, go to the vault options and choose a supported mount point. unlock.error.customPath.description.notExists=The custom mount path does not exist. Either create it in your local filesystem or change it in the vault options. unlock.error.customPath.description.inUse=The drive letter or custom mount path "%s" is already in use. -unlock.error.customPath.description.hideawayNotDir=The temporary, hidden file "%3$s" used for unlock could not be removed. Please check the file and then delete it manually. +unlock.error.customPath.description.hideawayNotDir=The temporary, hidden file "%3$s" used for unlocking could not be removed. Please check the file and then delete it manually. unlock.error.customPath.description.couldNotBeCleaned=Your vault could not be mounted to the path "%s". Please try again or choose a different path. unlock.error.customPath.description.notEmptyDir=The custom mount path "%s" is not an empty folder. Please choose an empty folder and try again. unlock.error.customPath.description.generic=You have selected a custom mount path for this vault, but using it failed with the message: %2$s @@ -369,7 +368,9 @@ main.vaultlist.contextMenu.unlock=Unlock… main.vaultlist.contextMenu.unlockNow=Unlock Now main.vaultlist.contextMenu.vaultoptions=Show Vault Options main.vaultlist.contextMenu.reveal=Reveal Drive -main.vaultlist.addVaultBtn=Add Vault +main.vaultlist.addVaultBtn=Add +main.vaultlist.addVaultBtn.menuItemNew=New Vault... +main.vaultlist.addVaultBtn.menuItemExisting=Existing Vault... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Thanks for choosing Cryptomator to protect your files. If you need any assistance, check out our getting started guides: diff --git a/src/main/resources/i18n/strings_ar.properties b/src/main/resources/i18n/strings_ar.properties index 4adda44b3..e8531fe20 100644 --- a/src/main/resources/i18n/strings_ar.properties +++ b/src/main/resources/i18n/strings_ar.properties @@ -22,7 +22,9 @@ error.hyperlink.report=أبلغ عن هذا الخطأ error.technicalDetails=التفاصيل: error.existingSolutionDescription=لم يتوقع "كريبتوماتور" حدوث ذلك. لكننا وجدنا حلا لهذا الخطأ. يرجى إلقاء نظرة على الرابط التالي. error.hyperlink.solution=ابحث عن الحل - +error.lookupPermissionMessage=يمكن لـ Cryptomator البحث عن حل لهذه المشكلة على الإنترنت. هذا سيرسل طلب إلى قاعدة بيانات مشكلتنا من عنوان IP الخاص بك. +error.dismiss=تجاهل +error.lookUpSolution=البحث عن حل # Defaults defaults.vault.vaultName=الخزينة @@ -38,9 +40,6 @@ traymenu.vault.reveal=إظهار # Add Vault Wizard addvaultwizard.title=أضِف مخزنًا -## Welcome -addvaultwizard.welcome.newButton=إنشاء مخزن جديد -addvaultwizard.welcome.existingButton=افتح مخزن موجود ## New ### Name addvaultwizard.new.nameInstruction=اختر اسم للمخزن @@ -63,6 +62,11 @@ addvaultwizard.new.validCharacters.chars=أحرف الكلمات (أمثلة: a, addvaultwizard.new.validCharacters.numbers=الأعداد addvaultwizard.new.validCharacters.dashes=الشرطة (%s) أو الشرطة السفلية (%s) ### Expert Settings +addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=تمكين إعدادات الخبراء +addvaultwizard.new.expertSettings.shorteningThreshold.invalid=أدخل قيمة بين 36 و 220 (الافتراضي 220) +addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=افتح وثائق الدعم لمعرفة المزيد. +addvaultwizard.new.expertSettings.shorteningThreshold.title=الحد الأقصى لطول أسماء الملفات المشفرة +addvaultwizard.new.expertSettings.shorteningThreshold.valid=صالح ### Password addvaultwizard.new.createVaultBtn=إنشاء المخزن addvaultwizard.new.generateRecoveryKeyChoice=لن تتمكن من الوصول إلى بياناتك بدون كلمة المرور الخاصة بك. هل تريد مفتاح استرداد في حالة فقدان كلمة المرور الخاصة بك؟ @@ -107,6 +111,7 @@ changepassword.finalConfirmation=أتفهم أنني لن أتمكن من الو # Forget Password forgetPassword.title=نسيت كلمة المرور +forgetPassword.message=نسيت كلمة المرور؟ forgetPassword.description=سيؤدي هذا إلى حذف كلمة المرور المحفوظة لهذا المخزن من سلسلة مفاتيح النظام الخاص بك. forgetPassword.confirmBtn=نسيت كلمة المرور @@ -126,26 +131,42 @@ unlock.success.description=تم فتح "%s" بنجاح! يمكنك الآن ال unlock.success.rememberChoice=تذكر اختياري ولا تظهر هذا مرة أخرى unlock.success.revealBtn=اظهار القرص ## Failure -unlock.error.customPath.description.inUse=حرف القرص "%s" قيد الاستخدام. -unlock.error.customPath.description.generic=لقد اخترت مسار تثبيت مخصص لهذه الخزينة، ولكن استخدامه فشل مع الرسالة: %s +unlock.error.customPath.message=غير قادر على تركيب المخزن إلى المسار المخصص +unlock.error.customPath.description.notSupported=إذا كنت ترغب في الاستمرار في استخدام المسار المخصص، يرجى الذَّهاب إلى التفضيلات وتحديد نوع واسطة التخزين الذي يدعمها. خلاف ذلك، انتقل إلى خيارات المخزن واختر نقطة تركيب مدعومة. +unlock.error.customPath.description.notExists=مسار التركيب المخصص غير موجود. قم بإنشائه في نظام الملفات المحلي الخاص بك أو اختر غيره في خيارات الخزانة. +unlock.error.customPath.description.inUse=حرف القرص أو مسار التركيب المخصص "%s" قيد الاستخدام بالفعل. +unlock.error.customPath.description.couldNotBeCleaned=لا يمكن تركيب خزانتك على المسار "%s". الرجاء المحاولة مرة أخرى أو اختيار مسار مختلف. +unlock.error.customPath.description.notEmptyDir=مسار التركيب المخصص "%s" ليس مجلد فارغ. الرجاء اختيار مجلد فارغ وحاول مرة أخرى. +unlock.error.customPath.description.generic=لقد اخترت مسار تركيب مخصص لهذه الخزانة، ولكن استخدامه فشل مع الرسالة: %2$s ## Hub hub.noKeychain.message=غير قادر على الوصول إلى مفتاح الجهاز +hub.noKeychain.description=من أجل فتح مركز مخازن، مطلوب مفتاح جهاز، يتم تأمينه باستخدام سلسلة مفاتيح. للمضي قدما، قم بتمكين "%s" واختر سلسلة مفاتيح في التفضيلات. hub.noKeychain.openBtn=فتح التفضيلات ### Waiting hub.auth.message=جاري الانتظار للمصادقة… +hub.auth.description=يجب أن يتم إعادة توجيهك تلقائياً إلى صفحة تسجيل الدخول. +hub.auth.loginLink=لم يتم إعادة توجيهك؟ انقر هنا لفتحه. ### Receive Key +hub.receive.message=معالجة الاستجابة… +hub.receive.description=Cryptomator يتلقى ويعالج الاستجابة من المركز. الرجاء الانتظار. ### Register Device hub.register.message=اسم الجهاز متطلب +hub.register.description=يبدو أن هذا هو أول وصول للمركز من هذا الجهاز. من أجل تحديده للحصول على إذن الوصول، تحتاج إلى تسمية هذا الجهاز. hub.register.nameLabel=اسم الجهاز hub.register.occupiedMsg=الاسم مستخدم مسبقاً hub.register.registerBtn=تأكيد ### Registration Success +hub.registerSuccess.message=تم تسمية الجهاز hub.registerSuccess.description=للدخول إلى الخزينة، يحتاج جهازك إلى إذن من مالك الخزينة. ### Registration Failed hub.registerFailed.message=أخفق في تسمية الجهاز +hub.registerFailed.description=خطأ في عملية التسمية. لمزيد من التفاصيل، انظر إلى سجل التطبيق. ### Unauthorized hub.unauthorized.message=تم رفض الوصول +hub.unauthorized.description=لم يتم بعد منح الإذن لجهازك بالوصول إلى هذا المخزن. اطلب من مالك المخزن أن يأذن بذلك. ### License Exceeded +hub.invalidLicense.message=ترخيص المركز غير صالح +hub.invalidLicense.description=نموذج المركز Cryptomator الخاص بك لديه ترخيص غير صالح. الرجاء إبلاغ مسؤول مركز لترقية أو تجديد الترخيص. # Lock ## Force @@ -188,21 +209,50 @@ migration.impossible.moreInfo=لا يزال ممكناً فتح المخزن ب # Health Check ## Start +health.title=فحص الصحة لـ "%s" +health.intro.header=فحص الصحة +health.intro.text=فحص الصحة هو مجموعة من الفحوص للكشف عن المشاكل وربما إصلاحها في الهيكل الداخلي للمخزن الخاص بك. يرجى مراعاة ما يلي: +health.intro.remarkSync=تحقق من مزامنة جميع الأجهزة، وهذا يحل معظم المشاكل. health.intro.remarkFix=لا يمكن حل جميع المشاكل. +health.intro.remarkBackup=إذا كانت البيانات تالفة، نسخة احتياطية يمكن فقط أن تساعد. health.intro.affirmation=لقد قرأت وفهمت المعلومات الواردة أعلاه ## Start Failure +health.fail.header=خطأ في تحميل إعدادات المخزن +health.fail.ioError=حدث خطأ أثناء الوصول إلى ملف التهيئة وقراءته. +health.fail.parseError=حدث خطأ أثناء تحليل إعدادات المخزن. health.fail.moreInfo=المزيد من المعلومات ## Check Selection +health.checkList.description=حدد عمليات التحقق في القائمة اليسرى أو استخدم الأزرار أدناه. health.checkList.selectAllButton=اختر جميع الفحوص health.checkList.deselectAllButton=إلغاء اختيار جميع الفحوص +health.check.runBatchBtn=تشغيل الفحوص المحددة ## Detail view +health.check.detail.noSelectedCheck=للحصول على النتائج اختر فحص صحة مكتمل من القائمة اليسرى. +health.check.detail.checkScheduled=تم تحديد ميعاد للفحص. +health.check.detail.checkRunning=جاري الفحص… +health.check.detail.checkSkipped=لم يتم تحديد الفحص للتشغيل. +health.check.detail.checkFinished=تم انتهاء الفحص بنجاح. +health.check.detail.checkFinishedAndFound=تم انتهاء الفحص. فضلا راجع النتائج. +health.check.detail.checkFailed=الفحص توقف بسبب خطأ. +health.check.detail.checkCancelled=تم إلغاء الفحص. +health.check.detail.listFilters.label=التصفية health.check.detail.fixAllSpecificBtn=إصلاح كل الأنواع +health.check.exportBtn=تصدير التقرير ## Result view +health.result.severityFilter.all=الخطورة - الكل health.result.severityFilter.good=جيد health.result.severityFilter.info=معلومات health.result.severityFilter.warn=تحذير health.result.severityFilter.crit=حرج +health.result.severityTip.good=الخطورة: جيد\nبنية المخزن عادية. +health.result.fixStateFilter.notFixable=غير قابل للإصلاح +health.result.fixStateFilter.fixing=يتم الإصلاح… +health.result.fixStateFilter.fixed=تم الإصلاح +health.result.fixStateFilter.fixFailed=فشل الإصلاح ## Fix Application +health.fix.fixBtn=إصلاح +health.fix.successTip=تم الإصلاح بنجاح +health.fix.failTip=فشل الإصلاح، راجع السجل للحصول على التفاصيل # Preferences preferences.title=تفضيلات @@ -263,7 +313,7 @@ main.vaultlist.contextMenu.unlock=فتح… main.vaultlist.contextMenu.unlockNow=افتح الان main.vaultlist.contextMenu.vaultoptions=إظهار خيارات المخزن main.vaultlist.contextMenu.reveal=اظهار القرص -main.vaultlist.addVaultBtn=أضِف مخزنًا +main.vaultlist.addVaultBtn=إضافة ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=شكرا لاختيار Cryptomator لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام: diff --git a/src/main/resources/i18n/strings_be.properties b/src/main/resources/i18n/strings_be.properties index 8afe39596..ae6c1f201 100644 --- a/src/main/resources/i18n/strings_be.properties +++ b/src/main/resources/i18n/strings_be.properties @@ -23,7 +23,6 @@ error.technicalDetails=Падрабязнасці: error.existingSolutionDescription=Cryptomator не чакаў такога, але мы знайшлі, як можна выправіць гэтую хібу. Калі ласка, скарыстайся спасылкаю. error.hyperlink.solution=Паглядзець на рашэнне - # Defaults defaults.vault.vaultName=Скарбніца @@ -38,9 +37,6 @@ traymenu.vault.reveal=Паказаць # Add Vault Wizard addvaultwizard.title=Дадаць скарбніцу -## Welcome -addvaultwizard.welcome.newButton=Стварыць новую скарбніцу -addvaultwizard.welcome.existingButton=Адчыніць існуючую скарбніцу ## New ### Name addvaultwizard.new.nameInstruction=Абраць назву для скарбніцы @@ -130,8 +126,6 @@ unlock.success.revealBtn=Паказаць дыск unlock.error.customPath.message=Не магчыма змантажаваць скарбніцу да карыстальніцкай сцежкі unlock.error.customPath.description.notSupported=Калі ты надалей жадаеш карыстацца адмысловаю сцежкаю, калі ласка, пайдзі ў налады ды абары там тып тому, які падтрымлівае яе. У іншым выпадку пайдзі ў опцыі скарбніцы ды абяры там пункт мантажавання, які падтрымліваецца. unlock.error.customPath.description.notExists=Адмысловая сцежка мантажавання не існуе. Ствары яе ў сваёй файлавай сістэме, альбо змяні яе ў опцыях скарбніцы. -unlock.error.customPath.description.inUse=Дыскавая літара "%s" ужо выкарыстоўваецца. -unlock.error.customPath.description.generic=Ты абраў адмысловую сцежку мантажавання для гэтай скарбніцы, але скарыстацца ёю не ўдалося. Вось паведамленне пра памылку: %s ## Hub hub.noKeychain.message=Няма доступу да ключа прылады hub.noKeychain.description=Каб разамкнуць скарбніцы Hub, патрэбны ключ прылады, які захаваны ў звязку ключоў. Каб працягнуць, уключы "%s" ды абяры звязак ключоў у наладах. @@ -356,7 +350,7 @@ main.vaultlist.contextMenu.unlock=Адамкнуць… main.vaultlist.contextMenu.unlockNow=Разамкнуць зараз main.vaultlist.contextMenu.vaultoptions=Паказаць параметры скарбніцы main.vaultlist.contextMenu.reveal=Паказаць дыск -main.vaultlist.addVaultBtn=Дадаць скарбніцу +main.vaultlist.addVaultBtn=Дадаць ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Дзякуй, што ты абраў Cryptomator для абароны тваіх файлаў. Калі табе патрэбна дапамога, калі ласка, паглядзі нашы інструкцыі: diff --git a/src/main/resources/i18n/strings_bg.properties b/src/main/resources/i18n/strings_bg.properties index 3254fdbcc..ace7569d6 100644 --- a/src/main/resources/i18n/strings_bg.properties +++ b/src/main/resources/i18n/strings_bg.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Търсене на грешката error.hyperlink.report=Докладване на грешката error.technicalDetails=Подробности: - # Defaults defaults.vault.vaultName=Хранилище @@ -36,9 +35,6 @@ traymenu.vault.reveal=Разкриване # Add Vault Wizard addvaultwizard.title=Добавяне на хранилище -## Welcome -addvaultwizard.welcome.newButton=Ново хранилище -addvaultwizard.welcome.existingButton=Отваряне на хранилище ## New ### Name addvaultwizard.new.nameInstruction=Изберете име на хранилището @@ -126,8 +122,6 @@ unlock.success.revealBtn=Разкриване на диска unlock.error.customPath.message=Хранилището не може да бъде монтирано в потребителския път unlock.error.customPath.description.notSupported=Ако искате да продължите да използвате потребитрлския път, отидете в настройките и изберете вид на дял, който поддържа потребителски пътища. В противен случай отидете в настройките на хранилището и изберете поддържана точка за монтиране. unlock.error.customPath.description.notExists=Потребителският път на монтиране не съществува. Създайте го в местната файлова система или го променете в настройките на хранилището. -unlock.error.customPath.description.inUse=Има друго устройство с буква „%s“. -unlock.error.customPath.description.generic=Избрали сте потребителски път за монтиране на това хранилище, но при използването на този път възникна следната грешка: %s ## Hub hub.noKeychain.message=Няма достъп до ключа на устройството hub.noKeychain.description=За да отключите хранилищата в Hub е необходим ключ за устройството, който се защитава с помощта на ключодържател. За да продължите, разрешете „%s“ и изберете ключодържателя в настройките. @@ -219,7 +213,6 @@ main.vaultlist.contextMenu.unlock=Отключване… main.vaultlist.contextMenu.unlockNow=Отключване сега main.vaultlist.contextMenu.vaultoptions=Настройки на хранилището main.vaultlist.contextMenu.reveal=Разкриване на диска -main.vaultlist.addVaultBtn=Добавяне на хранилище ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_bn.properties b/src/main/resources/i18n/strings_bn.properties index 51e703cbf..85b748f87 100644 --- a/src/main/resources/i18n/strings_bn.properties +++ b/src/main/resources/i18n/strings_bn.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=ত্রুটিটি খুঁজে দেখুন error.hyperlink.report=ত্রুটিটি রিপোর্ট করুন error.technicalDetails=বিস্তারিত: - # Defaults defaults.vault.vaultName=ভোল্ট @@ -34,9 +33,6 @@ traymenu.vault.lock=লক করুন # Add Vault Wizard addvaultwizard.title=ভোল্ট যুক্ত করুন -## Welcome -addvaultwizard.welcome.newButton=নতুন ভোল্ট তৈরি করুন -addvaultwizard.welcome.existingButton=বিদ্যমান কোনো ভোল্ট খুলুন ## New ### Name addvaultwizard.new.nameInstruction=ভোল্ট এর একটি নাম দেন @@ -140,7 +136,6 @@ lock.forced.retryBtn=পুনরায় চেষ্টা করুন main.closeBtn.tooltip=বন্ধ করুন ## Vault List main.vaultlist.contextMenu.lock=লক করুন -main.vaultlist.addVaultBtn=ভোল্ট যুক্ত করুন ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_bs.properties b/src/main/resources/i18n/strings_bs.properties index 7b612946f..f884e5a50 100644 --- a/src/main/resources/i18n/strings_bs.properties +++ b/src/main/resources/i18n/strings_bs.properties @@ -17,7 +17,6 @@ generic.button.print=Ispis # Error error.message=Došlo je do greške - # Defaults defaults.vault.vaultName=Sef @@ -32,9 +31,6 @@ traymenu.vault.reveal=Otkrij # Add Vault Wizard addvaultwizard.title=Dodaj sef -## Welcome -addvaultwizard.welcome.newButton=Kreiraj novi sef -addvaultwizard.welcome.existingButton=Otvori postojeći sef ## New ### Name addvaultwizard.new.nameInstruction=Izaberi naziv za sef @@ -220,7 +216,6 @@ main.vaultlist.contextMenu.unlock=Otključaj… main.vaultlist.contextMenu.unlockNow=Otključaj sada main.vaultlist.contextMenu.vaultoptions=Pokaži opcije sefa main.vaultlist.contextMenu.reveal=Otkrij pogon -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: diff --git a/src/main/resources/i18n/strings_ca.properties b/src/main/resources/i18n/strings_ca.properties index 06f5f8b05..c5829afae 100644 --- a/src/main/resources/i18n/strings_ca.properties +++ b/src/main/resources/i18n/strings_ca.properties @@ -23,7 +23,6 @@ error.technicalDetails=Detalls: error.existingSolutionDescription=Cryptomator no esperava que això ocorreguera. Però hem trobat una solució per a aquest error. Per favor, done una ullada al següent enllaç. error.hyperlink.solution=Buscar la solució - # Defaults defaults.vault.vaultName=Caixa forta @@ -38,9 +37,6 @@ traymenu.vault.reveal=Mostra # Add Vault Wizard addvaultwizard.title=Afegir una caixa forta -## Welcome -addvaultwizard.welcome.newButton=Crea una caixa forta nova -addvaultwizard.welcome.existingButton=Obri una caixa forta existent ## New ### Name addvaultwizard.new.nameInstruction=Introduiu el nom de la caixa forta @@ -130,7 +126,6 @@ unlock.success.revealBtn=Mostra la unitat unlock.error.customPath.message=No es pot muntar la caixa forta en la ruta personalitzada unlock.error.customPath.description.notSupported=Si vol continuar fent servir una ruta personalitzada, vagi si us plau a Preferències i seleccioni un tipus de volum que la suporti. Altrament, vagi a les opcions de la caixa forta i escolli un punt de muntatge suportat. unlock.error.customPath.description.notExists=La ruta de muntatge personalitzada no existeix. Creï-la o canviï-la en les opcions de la caixa forta. -unlock.error.customPath.description.generic=Ha seleccionat una ruta personalitzada on muntar la caixa forta, però ha fallat amb aquest missatge: %s ## Hub hub.noKeychain.message=No es pot accedir a la clau del dispositiu hub.noKeychain.description=Per poder desblocar caixes fortes del Hub es requereix la clau d'un dispositiu, que s'emmagatzema de forma segura en un clauer. Per continuar, habiliti "%s" i seleccioni un clauer en les Preferències. @@ -353,7 +348,7 @@ main.vaultlist.contextMenu.unlock=Desbloca… main.vaultlist.contextMenu.unlockNow=Desbloqueja ara main.vaultlist.contextMenu.vaultoptions=Opcions de la caixa forta main.vaultlist.contextMenu.reveal=Mostra la unitat -main.vaultlist.addVaultBtn=Afegir una caixa forta +main.vaultlist.addVaultBtn=Afegir ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Gràcies per escollir Cryptomator per protegir els vostres fitxers. Si vos cal ajuda, llegiu les nostres guies per donar els Primers passos: diff --git a/src/main/resources/i18n/strings_cs.properties b/src/main/resources/i18n/strings_cs.properties index 007cb6bb9..acd8e4473 100644 --- a/src/main/resources/i18n/strings_cs.properties +++ b/src/main/resources/i18n/strings_cs.properties @@ -22,7 +22,7 @@ error.hyperlink.report=Nahlásit tuto chybu error.technicalDetails=Podrobnosti: error.existingSolutionDescription=Cryptomator neočekával, že se tak stane. Našli jsme však existující řešení pro tuto chybu. Podívejte se prosím na následující odkaz. error.hyperlink.solution=Podívejte se na řešení - +error.lookupPermissionMessage=Cryptomator může najít řešení tohoto problému online. To odešle žádost do naší databáze problémů z vaší IP adresy. # Defaults defaults.vault.vaultName=Trezor @@ -38,9 +38,6 @@ traymenu.vault.reveal=Zobrazit # Add Vault Wizard addvaultwizard.title=Přidat trezor -## Welcome -addvaultwizard.welcome.newButton=Vytvořit nový trezor -addvaultwizard.welcome.existingButton=Otevřít existující trezor ## New ### Name addvaultwizard.new.nameInstruction=Zvolte jméno trezoru @@ -135,8 +132,6 @@ unlock.success.revealBtn=Zobrazit jednotku unlock.error.customPath.message=Nelze připojit trezor k vlastní cestě unlock.error.customPath.description.notSupported=Pokud chcete pokračovat v používání vlastní cesty, přejděte do nastavení a vyberte typ hlasitosti, který ji podporuje. V opačném případě přejděte do možností trezoru a vyberte podporovaný přípojný bod. unlock.error.customPath.description.notExists=Cesta k připojení neexistuje. Buď ji vytvořte ve vašem lokálním souborovém systému, nebo ji změňte v možnostech trezoru. -unlock.error.customPath.description.inUse=Písmeno „%s“ už je používáno pro jiný disk. -unlock.error.customPath.description.generic=Pro tento trezor jste vybrali vlastní cestu, ale použití selhalo se zprávou: %s ## Hub hub.noKeychain.message=Nelze získat přístup ke klíči zařízení hub.noKeychain.openBtn=Otevřít předvolby @@ -275,6 +270,8 @@ preferences.interface.showTrayIcon=Zobrazit ikonu v liště (vyžaduje restart) preferences.volume=Virtuální jednotky preferences.volume.type.automatic=Automatické preferences.volume.tcp.port=TCP port +preferences.volume.feature.mountFlags=Vlastní možnosti připojení disku +preferences.volume.feature.readOnly=Připojení disku pouze pro čtení ## Updates preferences.updates=Aktualizace preferences.updates.currentVersion=Aktuální verze: %s @@ -297,21 +294,27 @@ stats.title=Statistika pro %s stats.cacheHitRate=Rychlost dosažené mezipaměti ## Read stats.read.throughput.idle=Čtení: nečinné +stats.read.throughput.kibs=Rychlost čtení: %.2f KiB/s stats.read.throughput.mibs=Čtení: %.2f MiB/s stats.read.total.data.none=Přečteno: - +stats.read.total.data.kib=Přečtená data: %.1f KiB stats.read.total.data.mib=Přečteno: %.1f MiB stats.read.total.data.gib=Přečteno: %.1f GiB stats.decr.total.data.none=Dešifrováno: - +stats.decr.total.data.kib=Dešifrovaná data: %.1f KiB stats.decr.total.data.mib=Dešifrováno: %.1f MiB stats.decr.total.data.gib=Dešifrováno: %.1f GiB stats.read.accessCount=Celkem přečteno: %d ## Write stats.write.throughput.idle=Zápis: nečinný +stats.write.throughput.kibs=Rychlost zápisu: %.2f KiB/s stats.write.throughput.mibs=Zápis: %.2f MiB/s stats.write.total.data.none=Zapsaná data: - +stats.write.total.data.kib=Zapsaná data: %.1f KiB stats.write.total.data.mib=Zapsáno: %.1f MiB stats.write.total.data.gib=Zapsáno: %.1f GiB stats.encr.total.data.none=Zašifrováno: - +stats.encr.total.data.kib=Zašifrovaná data: %.1f KiB stats.encr.total.data.mib=Zašifrováno: %.1f MiB stats.encr.total.data.gib=Zašifrováno: %.1f GiB stats.write.accessCount=Celkem zapsáno: %d @@ -335,7 +338,7 @@ main.vaultlist.contextMenu.unlock=Odemknout… main.vaultlist.contextMenu.unlockNow=Odemknout nyní main.vaultlist.contextMenu.vaultoptions=Zobrazit možnosti trezoru main.vaultlist.contextMenu.reveal=Zobrazit jednotku -main.vaultlist.addVaultBtn=Přidat trezor +main.vaultlist.addVaultBtn=Přidat ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Děkujeme, že jste si vybrali Cryptomator pro ochranu vašich souborů. Pokud potřebujete pomoc, podívejte se na naše návody: @@ -358,6 +361,7 @@ main.vaultDetail.throughput.kbps=%.1f KiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Statistiky trezoru main.vaultDetail.locateEncryptedFileBtn=Najít šifrovaný soubor +main.vaultDetail.encryptedPathsCopied=Cesta souboru byla zkopírována do schránky! ### Missing main.vaultDetail.missing.info=Cryptomator nemohl najít trezor na této cestě. main.vaultDetail.missing.recheck=Znovu zkontrolovat @@ -431,6 +435,7 @@ recoveryKey.printout.heading=Obnovovací klíč Cryptomator\n"%s"\n ### Reset Password recoveryKey.recover.resetBtn=Resetovat ### Recovery Key Password Reset Success +recoveryKey.recover.resetSuccess.message=Resetování hesla bylo úspěšné # Convert Vault diff --git a/src/main/resources/i18n/strings_da.properties b/src/main/resources/i18n/strings_da.properties index cb7c1b6d0..6b4d0df7a 100644 --- a/src/main/resources/i18n/strings_da.properties +++ b/src/main/resources/i18n/strings_da.properties @@ -23,7 +23,6 @@ error.technicalDetails=Detaljer: error.existingSolutionDescription=Cryptomator forventede ikke, at dette ville ske. Men vi har fundet en eksisterende løsning på denne fejl. Tag et kig på følgende link. error.hyperlink.solution=Tjek løsningen - # Defaults defaults.vault.vaultName=Boks @@ -38,9 +37,6 @@ traymenu.vault.reveal=Vis # Add Vault Wizard addvaultwizard.title=Tilføj boks -## Welcome -addvaultwizard.welcome.newButton=Opret ny boks -addvaultwizard.welcome.existingButton=Open eksisterende boks ## New ### Name addvaultwizard.new.nameInstruction=Vælg et navn til boksen @@ -135,8 +131,6 @@ unlock.success.revealBtn=Vis drev unlock.error.customPath.message=Kan ikke montere boks til brugerdefineret sti unlock.error.customPath.description.notSupported=Hvis du ønsker at fortsætte med at bruge den brugerdefinerede sti, skal du gå til præferencer og vælge en type drev der understøtter det. Hvis ikke, skal du gå til boksens indstillinger og vælge et understøttet monteringspunkt. unlock.error.customPath.description.notExists=Den brugerdefinerede monteringssti eksisterer ikke. Opret den enten i dit lokale filsystem eller skift monteringssti i boksens indstillinger. -unlock.error.customPath.description.inUse=Drevbogstavet "%s" er allerede i brug. -unlock.error.customPath.description.generic=Du har valgt en brugerdefineret monteringssti til denne boks, men det mislykkedes med beskeden: %s ## Hub hub.noKeychain.message=Kan ikke tilgå enhedsnøgle hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne. @@ -361,7 +355,7 @@ main.vaultlist.contextMenu.unlock=Lås op… main.vaultlist.contextMenu.unlockNow=Lås op nu main.vaultlist.contextMenu.vaultoptions=Vis boksindstillinger main.vaultlist.contextMenu.reveal=Vis drev -main.vaultlist.addVaultBtn=Tilføj boks +main.vaultlist.addVaultBtn=Tilføj ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Tak fordi du valgte Cryptomator til at beskytte dine filer. Hvis du har brug for hjælp, så tjek vores guider for at komme i gang: diff --git a/src/main/resources/i18n/strings_de.properties b/src/main/resources/i18n/strings_de.properties index ca279e8e1..2568b791c 100644 --- a/src/main/resources/i18n/strings_de.properties +++ b/src/main/resources/i18n/strings_de.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Diesen Fehler melden error.technicalDetails=Details: error.existingSolutionDescription=Cryptomator hat dies nicht erwartet, wir haben jedoch eine funktionierende Lösung für diesen Fehler gefunden. Bitte wirf einen Blick auf den folgenden Link. error.hyperlink.solution=Lösung nachsehen - +error.lookupPermissionMessage=Cryptomator kann online nach einer Lösung für dieses Problem suchen. Hierbei wird eine Anfrage an unsere Problemdatenbank gesendet. Bitte beachte, dass dabei auch deine IP-Adresse übermittelt wird. +error.dismiss=Verwerfen +error.lookUpSolution=Lösung suchen # Defaults defaults.vault.vaultName=Tresor @@ -38,10 +40,8 @@ traymenu.vault.reveal=Anzeigen # Add Vault Wizard addvaultwizard.title=Tresor hinzufügen -## Welcome -addvaultwizard.welcome.newButton=Neuen Tresor erstellen -addvaultwizard.welcome.existingButton=Bestehenden Tresor öffnen ## New +addvaultwizard.new.title=Neuen Tresor hinzufügen ### Name addvaultwizard.new.nameInstruction=Wähle einen Namen für den Tresor addvaultwizard.new.namePrompt=Tresorname @@ -63,10 +63,10 @@ addvaultwizard.new.validCharacters.chars=Wortzeichen (z. B. a, ж oder 수) addvaultwizard.new.validCharacters.numbers=Zahlen addvaultwizard.new.validCharacters.dashes=Bindestrich (%s) oder Unterstrich (%s) ### Expert Settings -addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Experten-Einstellungen anzeigen -addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Gebe einen Wert zwischen 36 und 220 (Standard 220) ein +addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Experteneinstellungen aktivieren +addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Gib einen Wert zwischen 36 und 220 ein (Standardwert: 220) addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Öffne die Dokumentation, um mehr zu erfahren. -addvaultwizard.new.expertSettings.shorteningThreshold.title=Maximale Länge der verschlüsselten Dateinamen +addvaultwizard.new.expertSettings.shorteningThreshold.title=Maximale Länge verschlüsselter Dateinamen addvaultwizard.new.expertSettings.shorteningThreshold.valid=Gültig ### Password addvaultwizard.new.createVaultBtn=Tresor erstellen @@ -87,10 +87,11 @@ addvault.new.readme.storageLocation.9=3. Öffne den Zugangsort durch Klicken au addvault.new.readme.storageLocation.10=Falls du Hilfe brauchst, lies die Dokumentation: %s addvault.new.readme.accessLocation.fileName=WILLKOMMEN.rtf addvault.new.readme.accessLocation.1=🔐️ VERSCHLÜSSELTES LAUFWERK 🔐️ -addvault.new.readme.accessLocation.2=Dies ist der Zugriffsort auf deinen Tresor. +addvault.new.readme.accessLocation.2=Dies ist der Zugangsort deines Tresors. addvault.new.readme.accessLocation.3=Alle zu diesem Laufwerk hinzugefügten Dateien werden von Cryptomator verschlüsselt. Du kannst mit diesem arbeiten wie mit jedem anderen Laufwerk bzw. Ordner. Dies ist lediglich eine unverschlüsselte Ansicht des Laufwerkinhalts; auf deiner Festplatte bleiben deine Dateien weiterhin verschlüsselt. addvault.new.readme.accessLocation.4=Du kannst diese Datei löschen. ## Existing +addvaultwizard.existing.title=Bestehenden Tresor hinzufügen addvaultwizard.existing.instruction=Wähle die Datei „vault.cryptomator“ deines bestehenden Tresors aus. Falls nur eine Datei mit der Bezeichnung „masterkey.cryptomator“ vorhanden ist, nutze stattdessen diese. addvaultwizard.existing.chooseBtn=Durchsuchen … addvaultwizard.existing.filePickerTitle=Tresordatei auswählen @@ -132,11 +133,14 @@ unlock.success.description=Der Inhalt des Tresors „%s“ ist nun über dessen unlock.success.rememberChoice=Auswahl merken und nicht mehr fragen unlock.success.revealBtn=Laufwerk anzeigen ## Failure -unlock.error.customPath.message=Tresor kann nicht an benutzerdefinierten Pfad eingehängt werden +unlock.error.customPath.message=Tresor kann nicht in benutzerdefinierten Pfad eingehängt werden unlock.error.customPath.description.notSupported=Wenn du weiterhin den benutzerdefinierten Pfad verwenden möchtest, öffne die allgemeinen Einstellungen und wähle einen unterstützten Laufwerkstyp. Andernfalls gehe zu den Tresor-Optionen und wähle einen unterstützten Einhängepunkt. unlock.error.customPath.description.notExists=Der benutzerdefinierte Einhängepunkt existiert nicht. Erstelle ihn in deinem lokalen Dateisystem oder ändere ihn in den Tresor-Optionen. -unlock.error.customPath.description.inUse=Laufwerksbuchstabe „%s“ wird bereits verwendet. -unlock.error.customPath.description.generic=Du hast für diesen Tresor einen benutzerdefinierten Einhängepunkt ausgewählt, aber dessen Verwendung ist fehlgeschlagen mit der Meldung: %s +unlock.error.customPath.description.inUse=Der Laufwerksbuchstabe oder benutzerdefinierte Einhängepunkt „%s“ wird bereits verwendet. +unlock.error.customPath.description.hideawayNotDir=Die temporäre, versteckte Datei „%3$s“, die für das Entsperren verwendet wurde, konnte nicht entfernt werden. Bitte überprüfe die Datei und lösche sie manuell. +unlock.error.customPath.description.couldNotBeCleaned=Dein Tresor konnte nicht in den Pfad „%s“ eingehängt werden. Bitte versuche es erneut oder wähle einen anderen Pfad aus. +unlock.error.customPath.description.notEmptyDir=Der benutzerdefinierte Einhängepunkt "%s" ist kein leerer Ordner. Bitte wähle einen leeren Ordner und versuche es erneut. +unlock.error.customPath.description.generic=Du hast für diesen Tresor einen benutzerdefinierten Einhängepunkt ausgewählt, aber dessen Verwendung ist mit folgender Meldung fehlgeschlagen: %2$s ## Hub hub.noKeychain.message=Zugriff auf Geräteschlüssel nicht möglich hub.noKeychain.description=Zum Entsperren von Hub-Tresoren wird ein Geräteschlüssel benötigt, der in einem Schlüsselbund gesichert ist. Um fortzufahren, aktiviere „%s“ und wähle in den Einstellungen einen Schlüsselbund. @@ -182,7 +186,7 @@ migration.title=Tresor upgraden ## Start migration.start.header=Tresor upgraden migration.start.text=Um deinen Tresor "%s" in dieser neuen Version von Cryptomator zu öffnen, muss der Tresor auf ein neueres Format aktualisiert werden. Bevor du dies tust, solltest du Folgendes wissen: -migration.start.remarkUndone=Diese Aktualisierung kann nicht rückgängig gemacht werden. +migration.start.remarkUndone=Dieses Upgrade kann nicht rückgängig gemacht werden. migration.start.remarkVersions=Ältere Versionen von Cryptomator können den aktualisierten Tresor nicht öffnen. migration.start.remarkCanRun=Du musst sicherstellen, dass jedes Gerät, von dem aus du auf den Tresor zugreifst, diese Version von Cryptomator ausführen kann. migration.start.remarkSynced=Du musst sicherstellen, dass dein Tresor auf diesem Gerät und auf deinen anderen Geräten vollständig synchronisiert ist, bevor du ihn aktualisierst. @@ -290,9 +294,9 @@ preferences.volume.docsTooltip=Öffne die Dokumentation, um mehr über die versc preferences.volume.fuseRestartRequired=Um die Änderungen anzuwenden, muss Cryptomator neu gestartet werden. preferences.volume.tcp.port=TCP-Port preferences.volume.supportedFeatures=Der gewählte Laufwerkstyp unterstützt folgende Funktionen: -preferences.volume.feature.mountAuto=Automatische Einhängepunkt Auswahl +preferences.volume.feature.mountAuto=Automatische Auswahl des Einhängepunkts preferences.volume.feature.mountToDir=Benutzerdefiniertes Verzeichnis als Einhängepunkt -preferences.volume.feature.mountToDriveLetter=Laufwerkbuchstaben als Einhängepunkt +preferences.volume.feature.mountToDriveLetter=Laufwerksbuchstabe als Einhängepunkt preferences.volume.feature.mountFlags=Benutzerdefinierte Einhänge-Optionen preferences.volume.feature.readOnly=Schreibgeschütztes Einhängen ## Updates @@ -344,7 +348,7 @@ stats.write.accessCount=Schreibzugriffe: %d ## Accesses stats.access.current=Zugriffe: %d -stats.access.total=Gesamte Zugriffe: %d +stats.access.total=Gesamtzugriffe: %d # Main Window @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Entsperren … main.vaultlist.contextMenu.unlockNow=Jetzt entsperren main.vaultlist.contextMenu.vaultoptions=Tresoroptionen anzeigen main.vaultlist.contextMenu.reveal=Laufwerk anzeigen -main.vaultlist.addVaultBtn=Tresor hinzufügen +main.vaultlist.addVaultBtn=Hinzufügen +main.vaultlist.addVaultBtn.menuItemNew=Neuer Tresor... +main.vaultlist.addVaultBtn.menuItemExisting=Bestehender Tresor... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Danke, dass du zum Schutz deiner Dateien Cryptomator gewählt hast. Falls du Hilfe brauchst, schau dir unsere Anleitungen an: @@ -500,9 +506,9 @@ quit.forced.description=Das Sperren von Tresoren wurde durch ausstehende Operati quit.forced.forceAndQuitBtn=Erzwingen und beenden # Update Reminder -updateReminder.title=Aktualisierung überprüfen +updateReminder.title=Update-Überprüfung updateReminder.message=Nach Updates suchen? -updateReminder.description=Bleibe auf dem Laufenden was neue Features, Bug fixes und Sicherheitsverbesserungen angeht. Wir empfehlen automatisch nach Updates suchen zu lassen. +updateReminder.description=Bleib auf dem Laufenden mit neuen Funktionen, Fehlerbehebungen und Sicherheitsverbesserungen. Wir empfehlen, automatisch nach Updates zu suchen. updateReminder.notNow=Nicht jetzt updateReminder.yesOnce=Ja, einmalig updateReminder.yesAutomatically=Ja, automatisch \ No newline at end of file diff --git a/src/main/resources/i18n/strings_el.properties b/src/main/resources/i18n/strings_el.properties index cdb28263f..6745894c2 100644 --- a/src/main/resources/i18n/strings_el.properties +++ b/src/main/resources/i18n/strings_el.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Αναφέρετε αυτό το σφάλμα error.technicalDetails=Λεπτομέρειες: error.existingSolutionDescription=Το Cryptomator δεν περίμενε ότι θα συμβεί αυτό. Αλλά βρήκαμε μια υπάρχουσα λύση για αυτό το σφάλμα. Ρίξτε μια ματιά στον παρακάτω σύνδεσμο. error.hyperlink.solution=Αναζήτηση της λύσης - +error.lookupPermissionMessage=Το Cryptomator μπορεί να αναζητήσει μια λύση για αυτό το πρόβλημα στο διαδίκτυο. Αυτό θα στείλει ένα αίτημα στη βάση δεδομένων προβλημάτων μας από τη διεύθυνση IP σας. +error.dismiss=Παράβλεψη +error.lookUpSolution=Αναζήτηση λύσης # Defaults defaults.vault.vaultName=Κρύπτη @@ -38,10 +40,8 @@ traymenu.vault.reveal=Αποκάλυψη # Add Vault Wizard addvaultwizard.title=Προσθήκη Κρύπτης -## Welcome -addvaultwizard.welcome.newButton=Δημιουργία Νέας Κρύπτης -addvaultwizard.welcome.existingButton=Άνοιγμα Υπάρχοντος Κρύπτης ## New +addvaultwizard.new.title=Προσθήκη Νέας Κρύπτης ### Name addvaultwizard.new.nameInstruction=Διαλέξτε ένα όνομα για την κρύπτη addvaultwizard.new.namePrompt=Όνομα Κρύπτης @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Αυτή είναι η τοποθεσία addvault.new.readme.accessLocation.3=Κάθε αρχείο που θα προστεθεί σε αυτό τον τόμο θα κωδικοποιηθεί από το Cryptomator. Μπορείτε να το επεξεργαστείτε όπως θα κάνατε σε κάθε δίσκο/φάκελο. Αυτή είναι μόνο για αποκρυπτογραφημένη μορφή των περιεχομένων του, τα αρχεία σας μένουν κωδικοποιημένα στον σκληρό σας δίσκο συνέχεια. addvault.new.readme.accessLocation.4=Μπορείτε ελεύθερα να αφαιρέσετε το αρχείο. ## Existing +addvaultwizard.existing.title=Προσθήκη Υπάρχοντος Κρύπτης addvaultwizard.existing.instruction=Επιλέξτε το αρχείο "vault.cryptomator" της υπάρχοντος κρύπτης. Αν υπάρχει μόνο ένα αρχείο με όνομα "masterkey.cryptomator", επιλέξτε αυτό. addvaultwizard.existing.chooseBtn=Επιλογή… addvaultwizard.existing.filePickerTitle=Επιλέξτε Αρχείο Κρύπτης @@ -135,8 +136,11 @@ unlock.success.revealBtn=Αποκάλυψη εικονικού δίσκου unlock.error.customPath.message=Αδυναμία προσάρτησης της κρύπτης στην προσαρμοσμένη διαδρομή unlock.error.customPath.description.notSupported=Εάν θέλετε να συνεχίσετε να χρησιμοποιείτε την προσαρμοσμένη διαδρομή, μεταβείτε στις προτιμήσεις και επιλέξτε έναν τύπο τόμου που την υποστηρίζει. Διαφορετικά, μεταβείτε στις επιλογές της κρύπτης και επιλέξτε ένα υποστηριζόμενο σημείο προσάρτησης. unlock.error.customPath.description.notExists=Η προσαρμοσμένη διαδρομή προσάρτησης δεν υπάρχει. Είτε δημιουργήστε την στο τοπικό σύστημα αρχείων σας είτε αλλάξτε την στις επιλογές κρύπτης. -unlock.error.customPath.description.inUse=Το γράμμα μονάδας δίσκου "%s" χρησιμοποιείται ήδη. -unlock.error.customPath.description.generic=Έχετε επιλέξει μια προσαρμοσμένη διαδρομή προσάρτησης για αυτή την κρύπτη, αλλά η χρήση της απέτυχε με το μήνυμα: %s +unlock.error.customPath.description.inUse=Το γράμμα μονάδας δίσκου ή προσαρμοσμένη διαδρομή προσάρτησης "%s" είναι ήδη σε χρήση. +unlock.error.customPath.description.hideawayNotDir=Το προσωρινό, κρυφό αρχείο "%3$s" που χρησιμοποιείται για το ξεκλείδωμα δεν μπορεί να αφαιρεθεί. Παρακαλούμε ελέγξτε το αρχείο και στη συνέχεια διαγράψτε το χειροκίνητα. +unlock.error.customPath.description.couldNotBeCleaned=Η κρύπτη σας δεν μπορεί να τοποθετηθεί στη διαδρομή "%s". Παρακαλώ δοκιμάστε ξανά ή επιλέξτε διαφορετική διαδρομή. +unlock.error.customPath.description.notEmptyDir=Η προσαρμοσμένη διαδρομή προσάρτησης "%s" δεν είναι ένας άδειος φάκελος. Παρακαλώ επιλέξτε έναν άδειο φάκελο και προσπαθήστε ξανά. +unlock.error.customPath.description.generic=Έχετε επιλέξει μια προσαρμοσμένη διαδρομή προσάρτησης για αυτή την κρύπτη, αλλά η χρήση της απέτυχε με το μήνυμα: %2$s ## Hub hub.noKeychain.message=Δεν είναι δυνατή η πρόσβαση στο κλειδί της συσκευής hub.noKeychain.description=Για να ξεκλειδώσετε τις κρύπτες Hub, απαιτείται ένα κλειδί συσκευής, το οποίο ασφαλίζεται με χρήση μπρελόκ. Για να συνεχίσετε, ενεργοποιήστε το "%s" και επιλέξτε ένα keychain στις προτιμήσεις. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Ξεκλείδωμα… main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα main.vaultlist.contextMenu.vaultoptions=Εμφάνιση επιλογών Vault main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου -main.vaultlist.addVaultBtn=Προσθήκη Κρύπτης +main.vaultlist.addVaultBtn=Προσθήκη +main.vaultlist.addVaultBtn.menuItemNew=Νέα Κρύπτη... +main.vaultlist.addVaultBtn.menuItemExisting=Υπάρχουσα Κρύπτη... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους: diff --git a/src/main/resources/i18n/strings_es.properties b/src/main/resources/i18n/strings_es.properties index bcb230209..8b3070c25 100644 --- a/src/main/resources/i18n/strings_es.properties +++ b/src/main/resources/i18n/strings_es.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Notificar este error error.technicalDetails=Detalles: error.existingSolutionDescription=Cryptomator no esperaba que esto ocurriera, pero hemos encontrado una solución existente para este error. Eche un vistazo al siguiente enlace. error.hyperlink.solution=Buscar la solución - +error.lookupPermissionMessage=Cryptomator puede buscar una solución en línea para este problema. Esto enviará una solicitud a nuestra base de datos de problemas desde su dirección IP. +error.dismiss=Descartar +error.lookUpSolution=Buscar solución # Defaults defaults.vault.vaultName=Bóveda @@ -38,9 +40,6 @@ traymenu.vault.reveal=Revelar # Add Vault Wizard addvaultwizard.title=Añadir bóveda -## Welcome -addvaultwizard.welcome.newButton=Crear bóveda nueva -addvaultwizard.welcome.existingButton=Abrir bóveda existente ## New ### Name addvaultwizard.new.nameInstruction=Elegir un nombre para la bóveda @@ -63,6 +62,11 @@ addvaultwizard.new.validCharacters.chars=Caracteres de la palabra (por ejemplo, addvaultwizard.new.validCharacters.numbers=Números addvaultwizard.new.validCharacters.dashes=Guion (%s) o subrayado (%s) ### Expert Settings +addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Habilitar ajustes expertos +addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Ingrese un valor entre 36 y 220 (por defecto 220) +addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Abra la documentación para obtener más información. +addvaultwizard.new.expertSettings.shorteningThreshold.title=Longitud máxima de los nombres de archivo cifrados +addvaultwizard.new.expertSettings.shorteningThreshold.valid=Válido ### Password addvaultwizard.new.createVaultBtn=Crear bóveda addvaultwizard.new.generateRecoveryKeyChoice=No podrá acceder a sus datos sin su contraseña. ¿Desea una clave de recuperación en caso de que pierda su contraseña? @@ -130,8 +134,11 @@ unlock.success.revealBtn=Revelar unidad unlock.error.customPath.message=No se puede montar la bóveda en la ruta personalizada unlock.error.customPath.description.notSupported=Si desea seguir usando la ruta personalizada, vaya a las preferencias y seleccione un tipo de volumen que lo admita. De lo contrario, vaya a las opciones de la bóveda y elija un punto de montaje compatible. unlock.error.customPath.description.notExists=La ruta de montaje personalizada no existe. Créela en su sistema de archivos local o cámbiela en las opciones de la bóveda. -unlock.error.customPath.description.inUse=La letra de la unidad "%s" ya está en uso. -unlock.error.customPath.description.generic=Seleccionó una ruta de montaje personalizada para esta bóveda, pero falló al usarla con el mensaje: %s +unlock.error.customPath.description.inUse=La letra de unidad o ruta de montaje personalizada "%s" ya está en uso. +unlock.error.customPath.description.hideawayNotDir=El archivo oculto temporal "%3$s" usado para el desbloqueo no pudo ser eliminado. Compruebe el archivo y elimínelo manualmente. +unlock.error.customPath.description.couldNotBeCleaned=Su bóveda no se pudo montar en la ruta "%s". Intente de nuevo o elija una ruta diferente. +unlock.error.customPath.description.notEmptyDir=La ruta de montaje personalizada "%s" no es una carpeta vacía. Elija una carpeta vacía y vuelva a intentarlo. +unlock.error.customPath.description.generic=Seleccionó una ruta de montaje personalizada para esta bóveda, pero falló al usarla con el mensaje: %2$s ## Hub hub.noKeychain.message=No se puede acceder a la clave del dispositivo hub.noKeychain.description=Para desbloquear las bóvedas de Hub, se requiere una clave de dispositivo que se asegura con un llavero. Para continuar, habilite "%s" y seleccione un llavero en las preferencias. @@ -356,7 +363,7 @@ main.vaultlist.contextMenu.unlock=Desbloquear… main.vaultlist.contextMenu.unlockNow=Desbloquear ahora main.vaultlist.contextMenu.vaultoptions=Mostrar opciones de la bóveda main.vaultlist.contextMenu.reveal=Revelar unidad -main.vaultlist.addVaultBtn=Añadir bóveda +main.vaultlist.addVaultBtn=Añadir ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger sus archivos. En caso de necesitar ayuda, revise nuestras guías: @@ -494,4 +501,10 @@ quit.forced.message=Algunas bóvedas no pudieron ser bloqueadas quit.forced.description=El bloqueo de las bóvedas fue impedido por operaciones pendientes o archivos abiertos. Puede forzar a bloquear las bóvedas restantes, sin embargo, la interrupción de E/S puede resultar en la pérdida de datos sin guardar. quit.forced.forceAndQuitBtn=Forzar y salir -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Comprobación de actualización +updateReminder.message=¿Buscar actualizaciones? +updateReminder.description=Manténgase actualizado con funciones nuevas, correcciones de errores y mejoras de seguridad. Recomendamos comprobar actualizaciones automáticamente. +updateReminder.notNow=Ahora no +updateReminder.yesOnce=Sí, una vez +updateReminder.yesAutomatically=Sí, automáticamente \ No newline at end of file diff --git a/src/main/resources/i18n/strings_fa.properties b/src/main/resources/i18n/strings_fa.properties index c4043253b..c4ad622a0 100644 --- a/src/main/resources/i18n/strings_fa.properties +++ b/src/main/resources/i18n/strings_fa.properties @@ -18,7 +18,6 @@ generic.button.print=چاپ error.message=خطایی رخ داده است error.technicalDetails=جزئیات: - # Defaults defaults.vault.vaultName=گاوصندوق @@ -31,9 +30,6 @@ traymenu.vault.reveal=ظاهر # Add Vault Wizard addvaultwizard.title=اضافه کردن گاوصندوق -## Welcome -addvaultwizard.welcome.newButton=ساخت گاوصندوق جدید -addvaultwizard.welcome.existingButton=باز کردن گاوصندوق موجود ## New ### Name addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید @@ -113,7 +109,6 @@ main.closeBtn.tooltip=ببند main.supporterCertificateMissing.tooltip=لطفا کمک مالی در نظر بگیرند ## Vault List main.vaultlist.contextMenu.lock=قفل -main.vaultlist.addVaultBtn=اضافه کردن گاوصندوق ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_fi.properties b/src/main/resources/i18n/strings_fi.properties index 2026259f3..3270ecfc8 100644 --- a/src/main/resources/i18n/strings_fi.properties +++ b/src/main/resources/i18n/strings_fi.properties @@ -23,7 +23,6 @@ error.technicalDetails=Tiedot: error.existingSolutionDescription=Cryptomator ei odottanut tämän tapahtuvan. Mutta löysimme olemassa olevan ratkaisun tähän virheeseen. Ole hyvä ja katso seuraavaa linkkiä. error.hyperlink.solution=Etsi ratkaisu - # Defaults defaults.vault.vaultName=Vault @@ -38,9 +37,6 @@ traymenu.vault.reveal=Paljasta # Add Vault Wizard addvaultwizard.title=Lisää Vault -## Welcome -addvaultwizard.welcome.newButton=Luo Uusi Vault -addvaultwizard.welcome.existingButton=Avaa Olemassaoleva Vault ## New ### Name addvaultwizard.new.nameInstruction=Anna uusi nimi Vaultille @@ -130,8 +126,6 @@ unlock.success.revealBtn=Paljasta Asema unlock.error.customPath.message=Holvia ei pystytty yhdistämään valittuun polkuun unlock.error.customPath.description.notSupported=Mikäli haluat jatkaa mukautetun polun käyttöä, ole hyvä ja mene Asetuksiin ja valitse volyymityyppi mikä tukee sitä. Muussa tapauksessa avaa holvin asetukset ja valitse tuettu mukautettu polku. unlock.error.customPath.description.notExists=Valitsemaasi mukautettua polkua ei ole olemassa. Voit joko luoda uuden polun tai muuttaa polkua holvisi asetuksissa. -unlock.error.customPath.description.inUse=Asemakirjain "%s" on jo käytössä. -unlock.error.customPath.description.generic=Olet valinnut mukautetun polun holvillesi, mutta sen kanssa ilmeni ongelma: %s ## Hub hub.noKeychain.message=Laitteen avainta ei löytynyt hub.noKeychain.description=Hub-holvien purkamiseksi tarvitaan laiteavain joka on suojattu avainrenkaalla. Jatkaaksesi, kytke “%s” päälle ja valitse avainrengas asetuksista. @@ -236,7 +230,6 @@ main.preferencesBtn.tooltip=Asetukset main.vaultlist.contextMenu.lock=Lukitse main.vaultlist.contextMenu.unlockNow=Avaa Nyt main.vaultlist.contextMenu.reveal=Paljasta Asema -main.vaultlist.addVaultBtn=Lisää Vault ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_fil.properties b/src/main/resources/i18n/strings_fil.properties index 0daa73eab..1a4dd5202 100644 --- a/src/main/resources/i18n/strings_fil.properties +++ b/src/main/resources/i18n/strings_fil.properties @@ -20,7 +20,7 @@ error.description=Oops! Hindi inaasahan ng Cryptomator na ito'y mangyari. Maaari error.hyperlink.lookup=Hanapin ang solusyon error.hyperlink.report=I-report ang problema error.technicalDetails=Mga detalye: - +error.lookUpSolution=Itignan ang solusyon # Defaults defaults.vault.vaultName=Vault @@ -36,9 +36,6 @@ traymenu.vault.reveal=Ipakita # Add Vault Wizard addvaultwizard.title=Magdagdag ng Vault -## Welcome -addvaultwizard.welcome.newButton=Gumawa ng Bagong Vault -addvaultwizard.welcome.existingButton=Magbukas ng Umiiral na Vault ## New ### Name addvaultwizard.new.nameInstruction=Pangalanan ang vault @@ -139,7 +136,6 @@ main.closeBtn.tooltip=Isara main.preferencesBtn.tooltip=Mga Kagustuhan ## Vault List main.vaultlist.contextMenu.lock=I-lock -main.vaultlist.addVaultBtn=Magdagdag ng Vault ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_fr.properties b/src/main/resources/i18n/strings_fr.properties index 58964e537..88be64099 100644 --- a/src/main/resources/i18n/strings_fr.properties +++ b/src/main/resources/i18n/strings_fr.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Signaler cette erreur error.technicalDetails=Détails : error.existingSolutionDescription=Cryptomator ne s'attendait pas à ce que cela se produise. Mais nous avons trouvé une solution existante pour cette erreur. Veuillez consulter le lien suivant. error.hyperlink.solution=Rechercher la solution - +error.lookupPermissionMessage=Cryptomator peut trouver une solution à ce problème en ligne. Cela enverra une requête à notre base de données de problèmes à partir de votre adresse IP. +error.dismiss=Ignorer +error.lookUpSolution=Rechercher la solution # Defaults defaults.vault.vaultName=Coffre @@ -38,10 +40,8 @@ traymenu.vault.reveal=Révéler # Add Vault Wizard addvaultwizard.title=Ajouter un coffre -## Welcome -addvaultwizard.welcome.newButton=Créer un nouveau coffre -addvaultwizard.welcome.existingButton=Ouvrir un coffre existant ## New +addvaultwizard.new.title=Ajouter un nouveau coffre ### Name addvaultwizard.new.nameInstruction=Choisir un nom pour le coffre addvaultwizard.new.namePrompt=Nom du coffre @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Ceci est le chemin d'accès de votre coffre addvault.new.readme.accessLocation.3=Tous les fichiers ajoutés à ce volume seront chiffrés par Cryptomator. Vous pouvez l'utiliser comme n'importe quel lecteur/répertoire. Ceci est seulement une vue déchiffrée de son contenu, vos fichiers restent chiffrés dans votre disque dur en permanence. addvault.new.readme.accessLocation.4=Vous pouvez supprimer ce fichier. ## Existing +addvaultwizard.existing.title=Ajouter un coffre existant addvaultwizard.existing.instruction=Choisissez le fichier « vault.cryptomator » de votre volume existant. Si seul le fichier « masterkey.cryptomator » est présent, sélectionnez celui-là. addvaultwizard.existing.chooseBtn=Choisir... addvaultwizard.existing.filePickerTitle=Sélectionnez le fichier correspondant au volume chiffré @@ -135,8 +136,11 @@ unlock.success.revealBtn=Révéler le lecteur unlock.error.customPath.message=Impossible de monter le coffre vers le chemin personnalisé unlock.error.customPath.description.notSupported=Si vous souhaitez continuer à utiliser le chemin personnalisé, veuillez aller dans les préférences et sélectionner un type de volume qui le prend en charge. Sinon, allez dans les options du coffre et choisissez un point de montage pris en charge. unlock.error.customPath.description.notExists=Le chemin de montage personnalisé n'existe pas. Créez-le dans votre système de fichiers local ou modifiez-le dans les options du coffre. -unlock.error.customPath.description.inUse=La lettre de lecteur "%s" est déjà utilisée. -unlock.error.customPath.description.generic=Vous avez sélectionné un chemin de montage personnalisé pour ce coffre, mais son utilisation a échoué avec le message : %s +unlock.error.customPath.description.inUse=La lettre de lecteur ou le point de montage personnalisé «%s» est déjà utilisé. +unlock.error.customPath.description.hideawayNotDir=Le fichier temporaire et caché «%3$s» utilisé pour déverrouiller n'a pas pu être supprimé. Veuillez vérifier le fichier puis le supprimer manuellement. +unlock.error.customPath.description.couldNotBeCleaned=Votre coffre n'a pas pu être monté au point "%s". Veuillez réessayer ou choisissez un autre point. +unlock.error.customPath.description.notEmptyDir=Le chemin de montage personnalisé "%s" n'est pas un dossier vide. Veuillez choisir un dossier vide et réessayez. +unlock.error.customPath.description.generic=Vous avez sélectionné un point de montage personnalisé pour ce coffre, mais son utilisation a échoué avec le message : %2$s ## Hub hub.noKeychain.message=Impossible d'accéder à la clé du périphérique hub.noKeychain.description=Le déverrouillage des coffres Hub nécessite une clé de périphérique sécurisée à l'aide d'un trousseau. Pour continuer, activez « %s » et sélectionnez un trousseau dans les préférences. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Déverrouiller… main.vaultlist.contextMenu.unlockNow=Déverrouiller maintenant main.vaultlist.contextMenu.vaultoptions=Afficher les options du volume chiffré main.vaultlist.contextMenu.reveal=Afficher le lecteur -main.vaultlist.addVaultBtn=Ajouter un volume chiffré +main.vaultlist.addVaultBtn=Ajouter +main.vaultlist.addVaultBtn.menuItemNew=Nouveau coffre... +main.vaultlist.addVaultBtn.menuItemExisting=Coffre existant... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Merci d'avoir choisi Cryptomator pour protéger vos fichiers. Si vous avez besoin d'aide, consultez nos guides de démarrage : diff --git a/src/main/resources/i18n/strings_gl.properties b/src/main/resources/i18n/strings_gl.properties index 0e2dd8fc3..315bc6f25 100644 --- a/src/main/resources/i18n/strings_gl.properties +++ b/src/main/resources/i18n/strings_gl.properties @@ -17,13 +17,11 @@ generic.button.print=Imprimir # Error error.message=Produciuse un erro - # Defaults # Tray Menu # Add Vault Wizard -## Welcome ## New ### Name ### Location diff --git a/src/main/resources/i18n/strings_he.properties b/src/main/resources/i18n/strings_he.properties index 91984dbe1..4d9b7c076 100644 --- a/src/main/resources/i18n/strings_he.properties +++ b/src/main/resources/i18n/strings_he.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=חיפוש שגיאה error.hyperlink.report=דיווח על שגיאה error.technicalDetails=פרטים: - # Defaults defaults.vault.vaultName=כספת @@ -36,9 +35,6 @@ traymenu.vault.reveal=חשוף # Add Vault Wizard addvaultwizard.title=הוספת כספת -## Welcome -addvaultwizard.welcome.newButton=צור כספת חדשה -addvaultwizard.welcome.existingButton=פתיחת כספת קיימת ## New ### Name addvaultwizard.new.nameInstruction=בחירת שם עבור הכספת @@ -128,7 +124,7 @@ unlock.success.revealBtn=חשוף את הכונן unlock.error.customPath.message=כשלון בקישור הכספת לנתיב הידני שהוגדר unlock.error.customPath.description.notSupported=אם ברצונך להשתמש בנתיב ידני, אנא גש להעדפות ובחר סוג volume שתומך בכך. אחרת, לך לאפשרויות הכספת ובחר אפשרות יעד קישור נתמך. unlock.error.customPath.description.notExists=יעד הקישור הידני לא קיים. או שתיצור אותו במערכת הקבצים המקומית או שנה אותו באפשרויות הכספת. -unlock.error.customPath.description.generic=אתה בחרת באפשרות יעד קישור ידני לכספת זו, אבל השימוש בו נכשל עם ההודעה: %s +unlock.error.customPath.description.hideawayNotDir=הקובץ הזמני, הנסתר %3$s עבור פתיחה לא ניתן להסרה. יש לבדוק את הקובץ ולמחוק אותו ידנית. ## Hub hub.noKeychain.message=לא ניתן לגשת למפתח המכשיר hub.noKeychain.description=כדאי לשחרר כספות האב נדרש מפתח מכשיר שיאובטח בצרור מפתחות. כדאי להמשיך, אפשר ״%s״ ובחר את צרור המפתחות בהעדפות. @@ -353,7 +349,7 @@ main.vaultlist.contextMenu.unlock=שחרר נעילה… main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת main.vaultlist.contextMenu.reveal=חשוף את הכונן -main.vaultlist.addVaultBtn=יצירת כספת +main.vaultlist.addVaultBtn=הוספה ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו: diff --git a/src/main/resources/i18n/strings_hi.properties b/src/main/resources/i18n/strings_hi.properties index 755b75fbe..4aafeb341 100644 --- a/src/main/resources/i18n/strings_hi.properties +++ b/src/main/resources/i18n/strings_hi.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=इस त्रुटि को ढूंढिए error.hyperlink.report=त्रुटि रिपोर्ट करें error.technicalDetails=अधिक जानकारी: - # Defaults defaults.vault.vaultName=वॉल्ट @@ -36,9 +35,6 @@ traymenu.vault.reveal=प्रत्यक्ष करें # Add Vault Wizard addvaultwizard.title=वाउल्ट डालें -## Welcome -addvaultwizard.welcome.newButton=नया वाउल्ट बनाएं -addvaultwizard.welcome.existingButton=मौजूदा वाउल्ट खोलें ## New ### Name addvaultwizard.new.nameInstruction=वाउल्ट के लिए नाम चुनें @@ -213,7 +209,6 @@ main.vaultlist.contextMenu.unlock=अनलॉक करें... main.vaultlist.contextMenu.unlockNow=अब अनलॉक करें main.vaultlist.contextMenu.vaultoptions=वॉल्ट के विकल्प दिखाए main.vaultlist.contextMenu.reveal=फोल्डर खोलें -main.vaultlist.addVaultBtn=वाउल्ट डालें ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Cryptomator को अपनी फाइल्स सिराक्षित रखने को चुनने के लिए धन्यवाद। अगर आपको सहायता चाइये, तो हमारी गेटिंग स्टार्टेड गाइगाइड्स देखिये: diff --git a/src/main/resources/i18n/strings_hr.properties b/src/main/resources/i18n/strings_hr.properties index 31a00a38b..f317da9e0 100644 --- a/src/main/resources/i18n/strings_hr.properties +++ b/src/main/resources/i18n/strings_hr.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Pogledaj ovu grešku error.hyperlink.report=Prijavi ovu grešku error.technicalDetails=Detalji: - # Defaults defaults.vault.vaultName=Trezor @@ -36,9 +35,6 @@ traymenu.vault.reveal=Otkrij # Add Vault Wizard addvaultwizard.title=Dodaj trezor -## Welcome -addvaultwizard.welcome.newButton=Izradi novi trezor -addvaultwizard.welcome.existingButton=Otvori postojeći trezor ## New ### Name addvaultwizard.new.nameInstruction=Odaberi ime za trezor @@ -278,7 +274,7 @@ main.vaultlist.contextMenu.unlock=Otključaj… main.vaultlist.contextMenu.unlockNow=Otključaj sada main.vaultlist.contextMenu.vaultoptions=Prikaži opcije trezora main.vaultlist.contextMenu.reveal=Otkrij pogon -main.vaultlist.addVaultBtn=Dodaj trezor +main.vaultlist.addVaultBtn=Dodaj ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Hvala što ste odabrali Cryptomator za zaštitu Vaših datoteka. Ukoliko trebate pomoć, provjerite naše vodiče za početak rada: diff --git a/src/main/resources/i18n/strings_hu.properties b/src/main/resources/i18n/strings_hu.properties index 4208556fe..aea19a502 100644 --- a/src/main/resources/i18n/strings_hu.properties +++ b/src/main/resources/i18n/strings_hu.properties @@ -23,7 +23,6 @@ error.technicalDetails=Részletek: error.existingSolutionDescription=A Cryptomator nem számított arra, hogy ez megtörténjen. Viszont már találtunk egy létező megoldást erre a problémára. Kérem, látogassa meg az alábbi linket. error.hyperlink.solution=Megoldás megnézése - # Defaults defaults.vault.vaultName=Széf @@ -38,9 +37,6 @@ traymenu.vault.reveal=Megmutatás # Add Vault Wizard addvaultwizard.title=Széf hozzáadása -## Welcome -addvaultwizard.welcome.newButton=Új széf létrehozása -addvaultwizard.welcome.existingButton=Meglévő széf megnyitása ## New ### Name addvaultwizard.new.nameInstruction=Válasszon egy nevet az új széf számára @@ -63,6 +59,11 @@ addvaultwizard.new.validCharacters.chars=Szókarakterek (pl. a, ж vagy 수) addvaultwizard.new.validCharacters.numbers=Számok addvaultwizard.new.validCharacters.dashes=Kötőjel (%s) vagy alulvonás (%s) ### Expert Settings +addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Haladó beállítások engedélyezése +addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Írjon be egy értéket 36 és 220 között (alapértelmezett: 220) +addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=További információkért olvassa el a dokumentációt. +addvaultwizard.new.expertSettings.shorteningThreshold.title=A kódolt fájlnevek maximális hosszúsága +addvaultwizard.new.expertSettings.shorteningThreshold.valid=Érvényes ### Password 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? @@ -130,8 +131,10 @@ unlock.success.revealBtn=Széf megjelenítése unlock.error.customPath.message=Nem lehet csatolni a széfet az egyéni útvonalhoz unlock.error.customPath.description.notSupported=Ha szeretné továbbra is az egyéni útvonalat használni, kérem, menjen a beállításokba és válasszon egy kötet típust, amely támogatja azt. Máskülönben, menjen a széf opciókhoz és válasszon egy támogatott csatoláspontot. unlock.error.customPath.description.notExists=Az egyéni csatolás útvonal nem létezik. Hozza létre a helyi fájlrendszerében vagy változtassa meg a széf opciókban. -unlock.error.customPath.description.inUse=A "%s" meghajtó betűjel már használat alatt van. -unlock.error.customPath.description.generic=Egyéni csatolási útvonalat választott ehhez a széfhez, de használatakor ez a hibaüzenet érkezett: %s +unlock.error.customPath.description.inUse=A meghajtó betűjele vagy a csatolási útvonal: "%s" már foglalt. +unlock.error.customPath.description.couldNotBeCleaned=A széfet nem lehetett a "%s" elérési útvonalra csatlakoztatni. Kérjük, próbálja meg újra, vagy válasszon másik elérési útvonalat. +unlock.error.customPath.description.notEmptyDir=A megadott "%s" elérési útvonal nem egy üres mappa. Kérjük, válasszon egy üres mappát, és próbálja meg újra. +unlock.error.customPath.description.generic=Egyéni csatolási útvonalat választott ehhez a széfhez, de használatakor ez a hibaüzenet érkezett: %2$s ## Hub hub.noKeychain.message=Nem lehet az eszközkulcshoz hozzáférni hub.noKeychain.description=Hogy feloldja a Hub széfeket, egy eszközkulcs szükséges, mely egy kulcslánccal van biztosítva. A folytatáshoz engedélyezze a következőt: “%s” és válasszon egy kulcsláncot a beállításokban. @@ -356,7 +359,7 @@ main.vaultlist.contextMenu.unlock=Feloldás… main.vaultlist.contextMenu.unlockNow=Azonnali feloldás main.vaultlist.contextMenu.vaultoptions=Széf beállítások main.vaultlist.contextMenu.reveal=Széf megjelenítése -main.vaultlist.addVaultBtn=Széf hozzáadása +main.vaultlist.addVaultBtn=Hozzáadás ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Köszönjük, hogy a Cryptomator programot választotta a fájlai védelmére. Ha segítségre van szüksége, akkor olvassa el a kezdő útmutatónk lépéseit: @@ -494,4 +497,10 @@ quit.forced.message=Egyes széfeket nem lehetett lezárni quit.forced.description=A széfek zárolását függőbben lévő műveletek vagy megnyitott fájlok blokkolták. Kényszerítheti a maradék széfek zárolását, de az I/O megszakítása nem mentett adatok elvesztéséhez vezethet. quit.forced.forceAndQuitBtn=Kényszerítés és Kilépés -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Frissítések keresése +updateReminder.message=Frissítések ellenőrzése? +updateReminder.description=Maradjon naprakész az új funkciókkal, hibajavításokkal és biztonsági fejlesztésekkel. Javasoljuk, hogy automatikusan ellenőrizze a frissítéseket. +updateReminder.notNow=Most nem +updateReminder.yesOnce=Igen, egyszer +updateReminder.yesAutomatically=Igen, automatikusan \ No newline at end of file diff --git a/src/main/resources/i18n/strings_id.properties b/src/main/resources/i18n/strings_id.properties index 0d04de2b9..67569a23d 100644 --- a/src/main/resources/i18n/strings_id.properties +++ b/src/main/resources/i18n/strings_id.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Cari error berikut error.hyperlink.report=Laporkan error berikut error.technicalDetails=Rincian: - # Defaults defaults.vault.vaultName=Vault @@ -36,9 +35,6 @@ traymenu.vault.reveal=Perlihatkan # Add Vault Wizard addvaultwizard.title=Tambah Vault -## Welcome -addvaultwizard.welcome.newButton=Buat Vault Baru -addvaultwizard.welcome.existingButton=Buka Vault yang Tersedia ## New ### Name addvaultwizard.new.nameInstruction=Beri nama untuk vault berikut @@ -278,7 +274,6 @@ main.vaultlist.contextMenu.unlock=Buka Kunci… main.vaultlist.contextMenu.unlockNow=Buka Kunci Sekarang main.vaultlist.contextMenu.vaultoptions=Tampilkan Opsi Vault main.vaultlist.contextMenu.reveal=Buka Drive -main.vaultlist.addVaultBtn=Tambah Vault ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami: diff --git a/src/main/resources/i18n/strings_it.properties b/src/main/resources/i18n/strings_it.properties index c2e054a26..dcbb5e69f 100644 --- a/src/main/resources/i18n/strings_it.properties +++ b/src/main/resources/i18n/strings_it.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Segnala questo errore error.technicalDetails=Dettagli: error.existingSolutionDescription=Cryptomator non si aspettava che questo problema accadesse. Ma abbiamo trovato una soluzione a questo errore. Dai un'occhiata al seguente link. error.hyperlink.solution=Cerca la soluzione - +error.lookupPermissionMessage=Cryptomator può cercare una soluzione a questo problema online. Invierà una richiesta al nostro database dei problemi, dal tuo indirizzo IP. +error.dismiss=Ignora +error.lookUpSolution=Cerca la Soluzione # Defaults defaults.vault.vaultName=Cassaforte @@ -38,10 +40,8 @@ traymenu.vault.reveal=Mostra # Add Vault Wizard addvaultwizard.title=Aggiungi Cassaforte -## Welcome -addvaultwizard.welcome.newButton=Crea Nuova Cassaforte -addvaultwizard.welcome.existingButton=Apri Cassaforte Esistente ## New +addvaultwizard.new.title=Aggiungi una Nuova Cassaforte ### Name addvaultwizard.new.nameInstruction=Scegli un nome per la cassaforte addvaultwizard.new.namePrompt=Nome della Cassaforte @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Questa è la posizione d'accesso della tua addvault.new.readme.accessLocation.3=Ogni file aggiunto a questo volume sarà crittografato da Cryptomator. Puoi lavorarci come su ogni altra unità/cartella. Questa è solo una vista decrittografata del suo contenuto, i tuoi file restano sempre crittografati sul tuo disco rigido. addvault.new.readme.accessLocation.4=Sentiti libero di rimuovere questo file. ## Existing +addvaultwizard.existing.title=Aggiungi una Cassaforte Esistente addvaultwizard.existing.instruction=Scegliere il file "vault.cryptomator" della tua cassaforte. Se esiste solo un file chiamato "masterkey.cryptomator", allora scegli quello. addvaultwizard.existing.chooseBtn=Scegli… addvaultwizard.existing.filePickerTitle=Seleziona file cassaforte @@ -135,8 +136,11 @@ unlock.success.revealBtn=Rivela l'Unità unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso personalizzato unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato. unlock.error.customPath.description.notExists=Il percorso di mount personalizzato non esiste. Crealo nel tuo file system locale o cambialo nelle opzioni della cassaforte. -unlock.error.customPath.description.inUse=La lettera di unità "%s" è già in uso. -unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo è fallito col messaggio: %s +unlock.error.customPath.description.inUse=La lettera di unità o il percorso di montaggio selezionato "%s" è già in uso. +unlock.error.customPath.description.hideawayNotDir=Impossibile rimuovere il file temporaneo nascosto "%3$s" utilizzato per lo sblocco. Controllare il file e quindi eliminarlo manualmente. +unlock.error.customPath.description.couldNotBeCleaned=La tua cassaforte non può essere montata sul percorso "%s". Riprova o scegli un percorso diverso. +unlock.error.customPath.description.notEmptyDir=Il percorso di montaggio selezionato "%s" non è una cartella vuota. Scegli una cartella vuota e riprova. +unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo non è riuscito con il messaggio: %2$s ## Hub hub.noKeychain.message=Impossibile accedere alla chiave del dispositivo hub.noKeychain.description=Per sbloccare le casseforti Hub, è necessaria una chiave del dispositivo, che è protetta tramite un portachiavi. Per procedere, abilita "%s" e seleziona un portachiavi nelle preferenze. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Sblocca… main.vaultlist.contextMenu.unlockNow=Sblocca Ora main.vaultlist.contextMenu.vaultoptions=Mostra le Opzioni della Cassaforte main.vaultlist.contextMenu.reveal=Rivela Unità -main.vaultlist.addVaultBtn=Aggiungi Cassaforte +main.vaultlist.addVaultBtn=Aggiungi +main.vaultlist.addVaultBtn.menuItemNew=Nuova Cassaforte... +main.vaultlist.addVaultBtn.menuItemExisting=Cassaforte esistente... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se necessiti d'assistenza, dai un'occhiata alle nostre guide per iniziare: diff --git a/src/main/resources/i18n/strings_ja.properties b/src/main/resources/i18n/strings_ja.properties index f47ac6e77..fa3d7d3e4 100644 --- a/src/main/resources/i18n/strings_ja.properties +++ b/src/main/resources/i18n/strings_ja.properties @@ -22,7 +22,9 @@ error.hyperlink.report=このエラーを報告する error.technicalDetails=詳細: error.existingSolutionDescription=Cryptomator が予期しない状況が発生しましたが、解決策が見つかりました。以下のリンクを参照してください。 error.hyperlink.solution=解決策を調べる - +error.lookupPermissionMessage=Cryptomatorはこの問題の解決策をオンラインで調べることができます。その際、あなたのIPアドレスから私たちの解決策データベースに問い合わせます。 +error.dismiss=閉じる +error.lookUpSolution=解決策を調べる # Defaults defaults.vault.vaultName=金庫 @@ -38,9 +40,6 @@ traymenu.vault.reveal=表示 # Add Vault Wizard addvaultwizard.title=金庫を追加 -## Welcome -addvaultwizard.welcome.newButton=新しい金庫を作成 -addvaultwizard.welcome.existingButton=すでにある金庫を開く ## New ### Name addvaultwizard.new.nameInstruction=金庫の名前を入力してください @@ -135,8 +134,11 @@ unlock.success.revealBtn=ドライブを表示 unlock.error.customPath.message=カスタム パスに金庫をマウントできません unlock.error.customPath.description.notSupported=カスタム パスを使い続けたい場合、環境設定に移動してサポートしているボリューム タイプを選択してください。もしくは、金庫のオプションに移動してサポートされるマウント ポイントを選択してください。 unlock.error.customPath.description.notExists=カスタム マウント パスが存在していません。ローカル ファイルシステムで作成するか、金庫のオプションで変更してください。 -unlock.error.customPath.description.inUse=ドライブレター「%s」は既に使用されています。 -unlock.error.customPath.description.generic=この金庫のカスタム マウント パスを選択しましたが、次のメッセージで失敗しました: %s +unlock.error.customPath.description.inUse=ドライブ名またはカスタムマウントパス「%s」は既に使用されています。 +unlock.error.customPath.description.hideawayNotDir=ロック解除に使用される一時的な隠しファイル "%3$s" を削除できませんでした。ファイルを確認し、手動で削除してください。 +unlock.error.customPath.description.couldNotBeCleaned=金庫を "%s" にマウントすることができませんでした。もう一度試すか、別のパスを選択してください。 +unlock.error.customPath.description.notEmptyDir=カスタムマウントパス「%s」は空のフォルダではありません。空のフォルダを選択して再度お試し下さい。 +unlock.error.customPath.description.generic=この金庫に対してカスタムマウントパスを選択しましたが、以下のメッセージとともに失敗しました:%2$s ## Hub hub.noKeychain.message=デバイス キーにアクセスできません hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。 @@ -361,7 +363,7 @@ main.vaultlist.contextMenu.unlock=解錠... main.vaultlist.contextMenu.unlockNow=今すぐ解錠 main.vaultlist.contextMenu.vaultoptions=金庫のオプションを表示 main.vaultlist.contextMenu.reveal=ドライブを表示 -main.vaultlist.addVaultBtn=金庫を追加 +main.vaultlist.addVaultBtn=追加 ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=ファイルを保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください: diff --git a/src/main/resources/i18n/strings_ko.properties b/src/main/resources/i18n/strings_ko.properties index eab8ee2fc..ccf375690 100644 --- a/src/main/resources/i18n/strings_ko.properties +++ b/src/main/resources/i18n/strings_ko.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=에러 검색하기 error.hyperlink.report=에러 보고하기 error.technicalDetails=상세 정보: - # Defaults defaults.vault.vaultName=Vault @@ -36,9 +35,6 @@ traymenu.vault.reveal=표시 # Add Vault Wizard addvaultwizard.title=Vault 추가 -## Welcome -addvaultwizard.welcome.newButton=새 Vault 생성 -addvaultwizard.welcome.existingButton=기존 Vault 열기 ## New ### Name addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시요 @@ -135,10 +131,15 @@ hub.register.registerBtn=확인 ### Registration Success ### Registration Failed ### Unauthorized +hub.unauthorized.message=액세스 거부 +hub.unauthorized.description=귀하의 기기는 아직 이 저장소에 액세스할 수 있는 권한이 없습니다. Vault 소유자에게 승인을 요청하세요. ### License Exceeded +hub.invalidLicense.message=Hub 라이선스가 잘못되었습니다. +hub.invalidLicense.description=Cryptomator Hub 인스턴스에 잘못된 라이선스가 있습니다. 라이센스를 업그레이드하거나 갱신하려면 허브 관리자에게 알리십시오. # Lock ## Force +lock.forced.message=잠금 실패 lock.forced.description=대기 중인 작동이나 파일이 열려있어 "%s"를 잠그는데 실패하였습니다. 이 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다. lock.forced.retryBtn=재시도 lock.forced.forceBtn=강제 잠금 @@ -179,6 +180,7 @@ migration.impossible.moreInfo=Vault를 이전 버전으로 계속 열수 있습 health.title="%s"의 상태 검사 health.intro.header=상태 검사 health.intro.text=상태 검사는 Vault의 내부 구조의 문제점을 점검하고 해결할 수 있는 기능입니다. 다음 사항을 유의하시기 바랍니다: +health.intro.remarkFix=모든 문제를 해결할 수 있는 것은 아닙니다. health.intro.remarkBackup=데이터가 손상된 경우 백업만이 유일한 해결책입니다. health.intro.affirmation=나는 위 정보를 읽고 정말 이해했습니다. ## Start Failure @@ -187,6 +189,7 @@ health.fail.ioError=설정 파일에 접근하는 중 에러가 발생했습니 health.fail.parseError=Vault 설정을 파싱하는 중 에러가 발생했습니다. health.fail.moreInfo=더 많은 정보 ## Check Selection +health.checkList.description=검사할 항목을 왼쪽 목록에서 선택하거나 아래 버튼을 사용하세요. health.checkList.selectAllButton=모든 항목 선택 health.checkList.deselectAllButton=모든 항목 선택 해제 health.check.runBatchBtn=선택된 검사항목 실행 @@ -196,6 +199,8 @@ health.check.detail.checkScheduled=검사가 예약되었습니다. health.check.detail.checkRunning=검사가 현재 실행중입니다... health.check.detail.checkSkipped=선택된 검사항목이 없습니다. health.check.detail.checkFinished=검사가 성공적으로 완료되었습니다. +health.check.detail.checkFinishedAndFound=검사가 완료되었습니다. 검사 결과를 확인해주세요. +health.check.detail.checkCancelled=검사가 취소되었습니다 health.check.detail.listFilters.label=필터 health.check.exportBtn=보고서 내보내기 ## Result view @@ -229,9 +234,12 @@ preferences.interface.showMinimizeButton=최소화 버튼 표시 preferences.interface.showTrayIcon=트레이 아이콘 보기 (재시작 필요) ## Volume preferences.volume=가상 드라이브 +preferences.volume.type=볼륨 유형 preferences.volume.type.automatic=자동 preferences.volume.tcp.port=TCP 포트 preferences.volume.supportedFeatures=현재 선택한 볼륨 타입은 다음과 같은 기능들을 지원합니다: +preferences.volume.feature.mountFlags=사용자 정의 마운트 설정 +preferences.volume.feature.readOnly=읽기 전용 마운트 ## Updates preferences.updates=업데이트 preferences.updates.currentVersion=현재 버전: %s @@ -266,9 +274,11 @@ stats.read.accessCount=총 읽기 횟수: %d stats.write.throughput.idle=쓰기: 대기중 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 stats.encr.total.data.none=데이터 암호화: - +stats.encr.total.data.kib=데이터 암호화: %.1f KiB stats.encr.total.data.mib=데이터 암호화: %.1f MiB stats.encr.total.data.gib=데이터 암호화: %.1f GiB stats.write.accessCount=총 쓰기 횟수: %d @@ -290,7 +300,7 @@ main.vaultlist.contextMenu.unlock=잠금해제... main.vaultlist.contextMenu.unlockNow=지금 잠금해제 main.vaultlist.contextMenu.vaultoptions=Vault 옵션 보기 main.vaultlist.contextMenu.reveal=드라이브 표시 -main.vaultlist.addVaultBtn=Vault 추가 +main.vaultlist.addVaultBtn=추가 ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작안내서를 참조하시기 바랍니다. @@ -304,10 +314,12 @@ main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨 main.vaultDetail.unlockedStatus=잠금해제됨 main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다: main.vaultDetail.revealBtn=드라이브 표시 +main.vaultDetail.copyUri=URI 복사 main.vaultDetail.lockBtn=잠금 main.vaultDetail.bytesPerSecondRead=읽기: main.vaultDetail.bytesPerSecondWritten=쓰기: main.vaultDetail.throughput.idle=대기 +main.vaultDetail.throughput.kbps=%.1f KiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Vault 통계 ### Missing @@ -364,6 +376,7 @@ vaultOptions.masterkey.recoveryKeyExplanation=복구 키는 비밀번호를 잊 vaultOptions.masterkey.showRecoveryKeyBtn=복구 키 표시 vaultOptions.masterkey.recoverPasswordBtn=비밀번호 재설정 ## Hub +vaultOptions.hub=복구 # Recovery Key ## Display Recovery Key @@ -375,6 +388,7 @@ recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예 ## Reset Password ### Enter Recovery Key recoveryKey.recover.title=비밀번호 바꾸기 +recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요: recoveryKey.recover.correctKey=올바른 복구 키 입니다 recoveryKey.recover.wrongKey=이 복구 키는 다른 vault의 키입니다 recoveryKey.recover.invalidKey=해당 복구 키는 유효하지 않습니다 @@ -405,5 +419,6 @@ quit.message=잠금 해제된 vault들이 존재합니다 quit.lockAndQuitBtn=Vault 잠금 후 종료하기 # Forced Quit +quit.forced.forceAndQuitBtn=Vault 강제 잠금 후 종료하기 # Update Reminder \ No newline at end of file diff --git a/src/main/resources/i18n/strings_lv.properties b/src/main/resources/i18n/strings_lv.properties index 20f63ac52..aa6a8b26b 100644 --- a/src/main/resources/i18n/strings_lv.properties +++ b/src/main/resources/i18n/strings_lv.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Meklējiet šo kļūdu error.hyperlink.report=Ziņojiet par šo kļūdu error.technicalDetails=Detaļas: - # Defaults defaults.vault.vaultName=Glabātava @@ -36,9 +35,6 @@ traymenu.vault.reveal=Atklāt # Add Vault Wizard addvaultwizard.title=Pievienot glabātuvi -## Welcome -addvaultwizard.welcome.newButton=Izveidot jaunu glabātuvi -addvaultwizard.welcome.existingButton=Atvērt esošu glabātuvi ## New ### Name addvaultwizard.new.nameInstruction=Izvēlies glabātuves nosaukumu @@ -191,7 +187,6 @@ main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glab main.vaultlist.contextMenu.lock=Aizslēgt main.vaultlist.contextMenu.unlockNow=Atslēgt tagad main.vaultlist.contextMenu.reveal=Atklāt disku -main.vaultlist.addVaultBtn=Pievienot glabātuvi ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Paldies, ka izvēlējāties Cryptomator lai aizsargātu jūsu datus. Ja jums nepieciešama palīdzība, iepazīstieties ar mūsu darba sākšanas ceļvežiem: diff --git a/src/main/resources/i18n/strings_mk.properties b/src/main/resources/i18n/strings_mk.properties index 0a0978982..55252aba3 100644 --- a/src/main/resources/i18n/strings_mk.properties +++ b/src/main/resources/i18n/strings_mk.properties @@ -2,23 +2,60 @@ # Generics ## Button +generic.button.apply=Примени +generic.button.back=Назад +generic.button.cancel=Откажи +generic.button.change=Промени +generic.button.choose=Избор… +generic.button.close=Затвори +generic.button.copy=Копирај +generic.button.copied=Копирано! +generic.button.done=Прифати +generic.button.next=Продолжи +generic.button.print=Печати # Error - +error.message=Грешка +error.description=Не очекуваше да се случи ова. Можете да пронајдете постоечки решенија за оваа грешка. Или, ако не е пријавена сè уште, слободно направете тоа. +error.hyperlink.lookup=Пребарај за оваа грешка +error.hyperlink.report=Пријави ја оваа грешка +error.technicalDetails=Детали: +error.existingSolutionDescription=Не очекуваше да се случи ова. Но најдовме постоечко решение за оваа грешка. Ве молиме погледнете го следниот линк. +error.hyperlink.solution=Пребарај решение # Defaults +defaults.vault.vaultName=Сеф # Tray Menu +traymenu.showMainWindow=Покажи +traymenu.showPreferencesWindow=Поставки +traymenu.lockAllVaults=Заклучи сè +traymenu.quitApplication=Излез +traymenu.vault.unlock=Отклучи +traymenu.vault.lock=Заклучи +traymenu.vault.reveal=Откриј # Add Vault Wizard -## Welcome +addvaultwizard.title=Додај сеф ## New ### Name +addvaultwizard.new.nameInstruction=Одберете име за сефот +addvaultwizard.new.namePrompt=Име на сеф ### Location +addvaultwizard.new.locationInstruction=Каде би сакале Cryptomator да ги зачува шифрираните фајлови на Вашиот сеф? +addvaultwizard.new.locationLabel=Локација за складирање +addvaultwizard.new.locationPrompt=… +addvaultwizard.new.directoryPickerLabel=Прилагодена локација +addvaultwizard.new.directoryPickerButton=Избор… +addvaultwizard.new.directoryPickerTitle=Избери папка +addvaultwizard.new.fileAlreadyExists=Датотека или папка со истото име на сефот веќе постои +addvaultwizard.new.locationDoesNotExist=Папка на наведената локација не постои или е непристапна +addvaultwizard.new.locationIsNotWritable=Нема пристап за запишување на наведената локација ### Expert Settings ### Password ### Information ## Existing +addvaultwizard.existing.chooseBtn=Избор… ## Success # Remove Vault @@ -28,6 +65,7 @@ # Forget Password # Unlock +unlock.unlockBtn=Отклучи ## Select ## Success ## Failure @@ -61,6 +99,7 @@ hub.register.registerBtn=Потврди ## Fix Application # Preferences +preferences.title=Поставки ## General ## Interface ## Volume @@ -78,11 +117,15 @@ hub.register.registerBtn=Потврди # Main Window +main.closeBtn.tooltip=Затвори +main.preferencesBtn.tooltip=Поставки ## Vault List +main.vaultlist.contextMenu.lock=Заклучи ## Vault Detail ### Welcome ### Locked ### Unlocked +main.vaultDetail.lockBtn=Заклучи ### Missing ### Needs Migration ### Error @@ -91,8 +134,10 @@ hub.register.registerBtn=Потврди # Vault Options ## General +vaultOptions.general.vaultName=Име на сеф ## Mount +vaultOptions.mount.mountPoint.directoryPickerButton=Избор… ## Master Key ## Hub diff --git a/src/main/resources/i18n/strings_nb.properties b/src/main/resources/i18n/strings_nb.properties index ecb906436..080df2a13 100644 --- a/src/main/resources/i18n/strings_nb.properties +++ b/src/main/resources/i18n/strings_nb.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Rapporter denne feilen error.technicalDetails=Detaljer: error.existingSolutionDescription=Cryptomator forventet ikke at dette skulle skje. Men vi fant en eksisterende løsning for denne feilen. Ta en titt ved å følge lenken. error.hyperlink.solution=Slå opp løsningen - +error.lookupPermissionMessage=Cryptomator kan finne en løsning for problemet på nettet. Dette vil sende en forespørsel til problemdatabasen vår fra IP-adressen din. +error.dismiss=Avvis +error.lookUpSolution=Finn løsning # Defaults defaults.vault.vaultName=Hvelv @@ -38,9 +40,6 @@ traymenu.vault.reveal=Gjør synlig # Add Vault Wizard addvaultwizard.title=Legg til hvelv -## Welcome -addvaultwizard.welcome.newButton=Opprett et nytt hvelv -addvaultwizard.welcome.existingButton=Åpne et eksisterende hvelv ## New ### Name addvaultwizard.new.nameInstruction=Navngi hvelvet @@ -63,6 +62,11 @@ addvaultwizard.new.validCharacters.chars=Ordtegn (eks. a, ж or 수) addvaultwizard.new.validCharacters.numbers=Tall addvaultwizard.new.validCharacters.dashes=Bindestrek (%s) eller understrek (%s) ### Expert Settings +addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Aktiver ekspertinnstillinger +addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Angi en verdi mellom 36 og 220 (standard 220) +addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Åpne dokumentasjonen for å lære mer. +addvaultwizard.new.expertSettings.shorteningThreshold.title=Maksimal lengde på krypterte filnavn +addvaultwizard.new.expertSettings.shorteningThreshold.valid=Gyldig ### Password addvaultwizard.new.createVaultBtn=Opprett hvelv addvaultwizard.new.generateRecoveryKeyChoice=Du vil ikke kunne få tilgang til dataene dine uten passordet. Vil du ha en gjenopprettingsnøkkel i tilefelle du mister passordet ditt? @@ -130,8 +134,11 @@ unlock.success.revealBtn=Vis enheten unlock.error.customPath.message=Kan ikke montere hvelvet til egendefinert sti unlock.error.customPath.description.notSupported=Hvis du vil fortsette å bruke den egendefinerte stien, gå til innstillingene og velg en enhetstype som støtter den. Gå ellers til hvelvalternativene og velg et støttet monteringspunkt. unlock.error.customPath.description.notExists=Egendefinert monteringssti eksisterer ikke. Enten opprett den i ditt lokale filsystem eller endre den i hvelvvalgene. -unlock.error.customPath.description.inUse=Drevbokstaven "%s" er allerede i bruk. -unlock.error.customPath.description.generic=Du har valgt en egendefinert monterings sti for dette hvelvet, men ved bruk av den mislyktes med meldingen: %s +unlock.error.customPath.description.inUse=Stasjonsbokstaven eller egendefinert monteringsbane%s" er allerede i bruk. +unlock.error.customPath.description.hideawayNotDir=Den midlertidige, skjulte filen "%3$ssom brukes til å låse opp kunne ikke fjernes. Kontroller filen og slett den manuelt. +unlock.error.customPath.description.couldNotBeCleaned=Hvelvet ditt kan ikke monteres i banen "%s". Prøv igjen eller velg en annen sti. +unlock.error.customPath.description.notEmptyDir=Tilpasset monterings sti "%s" er ikke en tom mappe. Velg en tom mappe og prøv igjen. +unlock.error.customPath.description.generic=Du har valgt en egendefinert monterings sti for dette hvelvet, men bruk av den mislyktes med meldingen: %2$s ## Hub hub.noKeychain.message=Får ikke tilgang til enhetsnøkkel hub.noKeychain.description=For å låse opp Hub-hvelv er det nødvendig med en enhetsnøkkel som er sikret med en nøkkelring. For å fortsette, aktiver "%s" og velg en nøkkelring i innstillingene. @@ -356,7 +363,7 @@ main.vaultlist.contextMenu.unlock=Lås opp… main.vaultlist.contextMenu.unlockNow=Lås opp nå main.vaultlist.contextMenu.vaultoptions=Alternativer for hvelvet main.vaultlist.contextMenu.reveal=Vis enheten -main.vaultlist.addVaultBtn=Legg til hvelv +main.vaultlist.addVaultBtn=Legg til ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Takk for at du valgte Cryptomator for å beskytte filene dine. Hvis du trenger hjelp, sjekk ut våre guider for å komme i gang: @@ -440,6 +447,7 @@ vaultOptions.masterkey.showRecoveryKeyBtn=Vis gjenopprettingsnøkkelen vaultOptions.masterkey.recoverPasswordBtn=Nullstill passord ## Hub vaultOptions.hub=Gjenoppretting +vaultOptions.hub.convertInfo=Du kan bruke gjenopprettingsnøkkelen for å konvertere dette Hub-hvelvet til et passordbasert hvelv i en nødsituasjon. vaultOptions.hub.convertBtn=Konverter til passordbasert hvelv # Recovery Key @@ -468,6 +476,7 @@ convertVault.title=Konverter hvelvet convertVault.convert.convertBtn.before=Konverter convertVault.convert.convertBtn.processing=Konverterer… convertVault.success.message=Konverteringen var vellykket +convertVault.hubToPassword.success.description=Du kan nå låse opp hvelvet med det valgte passordet uten å ha behov for Hub-tilgang. # New Password newPassword.promptText=Skriv inn et nytt passord @@ -492,4 +501,10 @@ quit.forced.message=Noen hvelv kunne ikke låses quit.forced.description=Låsing av hvelvene ble blokkert av ventende operasjoner eller åpne filer. Du kan tvinge låsing av gjenværende hvelv, men forstyrring av I/O kan resultere i tap av ulagret data. quit.forced.forceAndQuitBtn=Tvinge og avslutte -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Oppdateringssjekk +updateReminder.message=Se etter oppdateringer? +updateReminder.description=Hold deg oppdatert med nye funksjoner, feilrettinger og sikkerhetsforbedringer. Vi anbefaler å se etter oppdateringer automatisk. +updateReminder.notNow=Ikke nå +updateReminder.yesOnce=Ja, en gang +updateReminder.yesAutomatically=Ja, automatisk \ No newline at end of file diff --git a/src/main/resources/i18n/strings_nl.properties b/src/main/resources/i18n/strings_nl.properties index 546e79ac5..02d858db5 100644 --- a/src/main/resources/i18n/strings_nl.properties +++ b/src/main/resources/i18n/strings_nl.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Deze fout melden error.technicalDetails=Details: error.existingSolutionDescription=Cryptomator had niet verwacht dat dit zou gebeuren. Maar we hebben een bestaande oplossing voor deze fout gevonden. Neem een kijkje op de volgende link. error.hyperlink.solution=Zoek de oplossing op - +error.lookupPermissionMessage=Cryptomator kan online een oplossing voor dit probleem zoeken. Dit zal een aanvraag naar onze probleemdatabase verzenden vanaf uw IP-adres. +error.dismiss=Afwijzen +error.lookUpSolution=Oplossing opzoeken # Defaults defaults.vault.vaultName=Kluis @@ -38,10 +40,8 @@ traymenu.vault.reveal=Toon # Add Vault Wizard addvaultwizard.title=Kluis toevoegen -## Welcome -addvaultwizard.welcome.newButton=Nieuwe Kluis Aanmaken -addvaultwizard.welcome.existingButton=Open Bestaande Kluis ## New +addvaultwizard.new.title=Nieuwe kluis toevoegen ### Name addvaultwizard.new.nameInstruction=Kies een naam voor de kluis addvaultwizard.new.namePrompt=Kluisnaam @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Dit is de opslaglocatie van uw kluis. addvault.new.readme.accessLocation.3=Alle bestanden die aan dit volume worden toegevoegd zullen worden versleuteld door Cryptomator. U kunt deze bestanden gebruiken zoals in elke andere map/schijf. Dit is alleen een ontsleutelde weergave van de inhoud, uw bestanden blijven ten alle tijden versleuteld op uw harde schijf. addvault.new.readme.accessLocation.4=Voel je vrij om dit bestand te verwijderen. ## Existing +addvaultwizard.existing.title=Bestaande kluis toevoegen addvaultwizard.existing.instruction=Kies het "vault.cryptomator"-bestand van uw bestaande kluis. Indien er enkel een bestand genaamd "masterkey.cryptomator" anwezig is, kies deze dan in de plaats. addvaultwizard.existing.chooseBtn=Kies… addvaultwizard.existing.filePickerTitle=Kies kluisbestand @@ -135,8 +136,11 @@ unlock.success.revealBtn=Toon Schijf unlock.error.customPath.message=Kan kluis niet aan aangepast pad koppelen unlock.error.customPath.description.notSupported=Als je het aangepaste pad wilt blijven gebruiken, ga dan naar de voorkeuren en selecteer een volume type dat het ondersteunt. Anders ga je naar de kluis opties en kies je een steunpunt voor het koppelplaten. unlock.error.customPath.description.notExists=Het aangepaste koppelpad bestaat niet. Maak het aan in uw lokale bestandssysteem of verander het in de kluis opties. -unlock.error.customPath.description.inUse=Schijfletter "%s" is al in gebruik. -unlock.error.customPath.description.generic=Je hebt een aangepast koppel pad geselecteerd voor deze kluis, maar het gebruik ervan is mislukt met het bericht: %s +unlock.error.customPath.description.inUse=De schijfletter of aangepaste pad "%s" is al in gebruik. +unlock.error.customPath.description.hideawayNotDir=Het tijdelijk verborgen bestand "%3$s" gebruikt voor de ontgrendeling kon niet worden verwijderd. Controleer het bestand en verwijder het handmatig. +unlock.error.customPath.description.couldNotBeCleaned=Uw kluis kon niet worden gekoppeld aan het pad "%s". Probeer het opnieuw of kies een ander pad. +unlock.error.customPath.description.notEmptyDir=Het aangepaste pad "%s" is geen lege map. Kies een lege map en probeer het opnieuw. +unlock.error.customPath.description.generic=Je hebt een aangepast koppelpad voor deze kluis geselecteerd, maar gebruik ervan is mislukt met het bericht: %2$s ## Hub hub.noKeychain.message=Geen toegang tot de apparaatsleutel hub.noKeychain.description=Om Hub kluizen te ontgrendelen is een apparaatsleutel vereist, die met een sleutelhanger wordt beveiligd. Om verder te gaan, schakel "%s" in en selecteer een sleutelhanger in de voorkeursinstellingen. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Ontgrendelen… main.vaultlist.contextMenu.unlockNow=Nu Ontgrendelen main.vaultlist.contextMenu.vaultoptions=Laat kluisinstellingen zien main.vaultlist.contextMenu.reveal=Toon Schijf -main.vaultlist.addVaultBtn=Kluis toevoegen +main.vaultlist.addVaultBtn=Toevoegen +main.vaultlist.addVaultBtn.menuItemNew=Nieuwe kluis... +main.vaultlist.addVaultBtn.menuItemExisting=Bestaande kluis... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Bedankt dat u Cryptomator heeft gekozen om uw bestanden te beschermen. Voor assistentie verwijzen we u naar de starthandleidingen: @@ -503,6 +509,6 @@ quit.forced.forceAndQuitBtn=Forceren en afsluiten updateReminder.title=Zoek naar updates updateReminder.message=Controleren op updates? updateReminder.description=Blijf op de hoogte met nieuwe functies, bugfixes en beveiligingsverbeteringen. We raden aan om automatisch te controleren op updates. -updateReminder.notNow=Niet Nu +updateReminder.notNow=Niet nu updateReminder.yesOnce=Ja, Eenmaal -updateReminder.yesAutomatically=Ja, Automatisch \ No newline at end of file +updateReminder.yesAutomatically=Ja, automatisch \ No newline at end of file diff --git a/src/main/resources/i18n/strings_nn.properties b/src/main/resources/i18n/strings_nn.properties index 093a4977f..7d7539d70 100644 --- a/src/main/resources/i18n/strings_nn.properties +++ b/src/main/resources/i18n/strings_nn.properties @@ -16,7 +16,6 @@ generic.button.print=Skriv ut # Error - # Defaults # Tray Menu @@ -30,9 +29,6 @@ traymenu.vault.reveal=Gjer synleg # Add Vault Wizard addvaultwizard.title=Legg til kvelv -## Welcome -addvaultwizard.welcome.newButton=Opprett ein ny kvelv -addvaultwizard.welcome.existingButton=Opn ein eksisterande kvelv ## New ### Name addvaultwizard.new.nameInstruction=Vel eit namn på kvelven @@ -184,7 +180,6 @@ main.vaultlist.contextMenu.lock=Lås main.vaultlist.contextMenu.unlock=Lås opp… main.vaultlist.contextMenu.unlockNow=Lås opp no main.vaultlist.contextMenu.reveal=Gjer eininga synleg -main.vaultlist.addVaultBtn=Legg til kvelv ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Takk for at du valde Cryptomator for å verna filene dine. Viss du treng hjelp, sjekk ut guidane våre for å komma i gang: diff --git a/src/main/resources/i18n/strings_pa.properties b/src/main/resources/i18n/strings_pa.properties index 79554952a..c27cd4729 100644 --- a/src/main/resources/i18n/strings_pa.properties +++ b/src/main/resources/i18n/strings_pa.properties @@ -16,7 +16,6 @@ generic.button.print=ਪਰਿੰਟ ਕਰੋ # Error - # Defaults defaults.vault.vaultName=ਵਾਲਟ @@ -31,9 +30,6 @@ traymenu.vault.reveal=ਦਿਖਾਓ # Add Vault Wizard addvaultwizard.title=ਵਾਲਟ ਜੋੜੋ -## Welcome -addvaultwizard.welcome.newButton=ਨਵਾਂ ਵਾਲਟ ਬਣਾਓ -addvaultwizard.welcome.existingButton=ਮੌਜੂਦਾ ਵਾਲਟ ਖੋਲ੍ਹੋ ## New ### Name addvaultwizard.new.nameInstruction=ਵਾਲਟ ਲਈ ਨਾਂ ਚੁਣੋ @@ -211,7 +207,6 @@ main.vaultlist.contextMenu.lock=ਲਾਕ ਕਰੋ main.vaultlist.contextMenu.unlock=ਅਣ-ਲਾਕ ਕਰੋ… main.vaultlist.contextMenu.unlockNow=ਹੁਣੇ ਅਣ-ਲਾਕ ਕਰੋ main.vaultlist.contextMenu.reveal=ਡਰਾਇਵ ਦਿਖਾਓ -main.vaultlist.addVaultBtn=ਵਾਲਟ ਜੋੜੋ ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=ਆਪਣੀਆਂ ਫਾਇਲਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ Cryptomator ਚੁਣਨ ਵਾਸਤੇ ਧੰਨਵਾਦ ਹੈ। ਜੇ ਤੁਹਾਨੂੰ ਮਦਦ ਚਾਹੀਦੀ ਹੋਵੇ ਤਾਂ ਸਾਡੀਆਂ ਸ਼ੁਰੂਆਤੀ ਗਾਈਡਾਂ ਵੇਖੋ: diff --git a/src/main/resources/i18n/strings_pl.properties b/src/main/resources/i18n/strings_pl.properties index b434aca01..c5f519308 100644 --- a/src/main/resources/i18n/strings_pl.properties +++ b/src/main/resources/i18n/strings_pl.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Zgłoś ten błąd error.technicalDetails=Szczegóły: error.existingSolutionDescription=Cryptomator nie spodziewał się, że tak się stanie. Znaleźliśmy jednak istniejące rozwiązanie dla tego błędu. Proszę spojrzeć na poniższy link. error.hyperlink.solution=Wyszukaj rozwiązanie - +error.lookupPermissionMessage=Cryptomator może wyszukać rozwiązanie tego problemu online. To wyśle żądanie do naszej bazy danych problemów z Twojego adresu IP. +error.dismiss=Odrzuć +error.lookUpSolution=Szukaj rozwiązania # Defaults defaults.vault.vaultName=Sejf @@ -38,10 +40,8 @@ traymenu.vault.reveal=Odkryj # Add Vault Wizard addvaultwizard.title=Dodaj sejf -## Welcome -addvaultwizard.welcome.newButton=Utwórz nowy sejf -addvaultwizard.welcome.existingButton=Otwórz istniejący sejf ## New +addvaultwizard.new.title=Dodaj nowy sejf ### Name addvaultwizard.new.nameInstruction=Wybierz nazwę sejfu addvaultwizard.new.namePrompt=Nazwa sejfu @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Tu są przechowywane pliki Twojego sejfu. addvault.new.readme.accessLocation.3=Wszystkie pliki dodane tutaj zostaną zaszyfrowane przez Cryptomator. Możesz tu wykonywać operacje jak na każdym innym dysku czy katalogu. To jest jedynie odszyfrowany podgląd Twoich plików, wszystkie pozostają cały czas zaszyfrowane na Twoim dysku twardym. addvault.new.readme.accessLocation.4=Jeśli chcesz możesz spokojnie usunąć ten plik. ## Existing +addvaultwizard.existing.title=Dodaj istniejący sejf addvaultwizard.existing.instruction=Wybierz plik "vault.cryptomator" w istniejącym sejfie. Jeśli istnieje tylko plik "masterkey.cryptomator", wybierz ten plik. addvaultwizard.existing.chooseBtn=Wybierz… addvaultwizard.existing.filePickerTitle=Wybierz plik sejfu @@ -135,8 +136,10 @@ unlock.success.revealBtn=Pokaż Dysk unlock.error.customPath.message=Nie można zamontować sejfu na niestandardowej ścieżce unlock.error.customPath.description.notSupported=Jeśli chcesz nadal używać niestandardowej ścieżki, przejdź do preferencji i wybierz typ udziału, który ją obsługuje. W przeciwnym razie przejdź do opcji sejfu i wybierz obsługiwany punkt montowania. unlock.error.customPath.description.notExists=Niestandardowa ścieżka montowania nie istnieje. Stwórz ją w lokalnym systemie plików lub zmień ją w opcjach sejfu. -unlock.error.customPath.description.inUse=Litera dysku "%s" jest już w użyciu. -unlock.error.customPath.description.generic=Wybrałeś niestandardową ścieżkę montowania dla tego sejfu, ale użycie jej nie powiodło się z wiadomością: %s +unlock.error.customPath.description.inUse=Litera dysku lub podana ścieżka montowania "%s" jest już w użyciu. +unlock.error.customPath.description.couldNotBeCleaned=Twój sejf nie mógł być zamontowany do ścieżki "%s". Spróbuj ponownie lub wybierz inną ścieżkę. +unlock.error.customPath.description.notEmptyDir=Wybrana ścieżka montowania "%s" nie jest pustym katalogiem. Wybierz pusty katalog i spróbuj ponownie. +unlock.error.customPath.description.generic=Wybrałeś własną ścieżkę montowania dla tego sejfu, ale użycie jej nie powiodło się. Powód: %2$s ## Hub hub.noKeychain.message=Brak dostępu do klucza urządzenia hub.noKeychain.description=Aby odblokować sejfy na Hubie, wymagany jest klucz urządzenia zabezpieczony za pomocą pęku kluczy. Aby kontynuować, włącz "%s" i wybierz Pęk kluczy w ustawieniach. @@ -317,29 +320,29 @@ stats.title=Statystyki dla %s stats.cacheHitRate=Trafność cache ## Read stats.read.throughput.idle=Odczyt: bezczynny -stats.read.throughput.kibs=Odczyt: %.2f kiB/s -stats.read.throughput.mibs=Odczyt: %.2f kiB/s +stats.read.throughput.kibs=Odczyt: %.2f KiB/s +stats.read.throughput.mibs=Odczyt: %.2f MiB/s stats.read.total.data.none=Dane odczytywane: - stats.read.total.data.kib=Odczyt danych: %.1f KiB -stats.read.total.data.mib=Odczyt danych: %.1f kiB -stats.read.total.data.gib=Odczyt danych: %.1f kiB +stats.read.total.data.mib=Odczyt danych: %.1f MiB +stats.read.total.data.gib=Odczyt danych: %.1f GiB stats.decr.total.data.none=Dane odszyfrowane: - stats.decr.total.data.kib=Dane odszyfrowane: %.1f KiB -stats.decr.total.data.mib=Dane odszyfrowane: %.1f kiB -stats.decr.total.data.gib=Dane odszyfrowane: %.1f kiB +stats.decr.total.data.mib=Dane odszyfrowane: %.1f MiB +stats.decr.total.data.gib=Dane odszyfrowane: %.1f GiB stats.read.accessCount=Całkowite odczyty: %d ## Write stats.write.throughput.idle=Zapis: bezczynny stats.write.throughput.kibs=Zapis: %.2f KiB/s -stats.write.throughput.mibs=Zapis: %.2f kiB/s +stats.write.throughput.mibs=Zapis: %.2f MiB/s stats.write.total.data.none=Zapisane dane: - stats.write.total.data.kib=Zapis danych: %.1f KiB stats.write.total.data.mib=Zapisane dane: %.1f MiB -stats.write.total.data.gib=Zapisane dane: %.1f kiB +stats.write.total.data.gib=Zapisane dane: %.1f GiB stats.encr.total.data.none=Dane odszyfrowane: - stats.encr.total.data.kib=Dane zaszyfrowane: %.1f KiB -stats.encr.total.data.mib=Dane odszyfrowane: %.1f kiB -stats.encr.total.data.gib=Dane odszyfrowane: %.1f kiB +stats.encr.total.data.mib=Dane odszyfrowane: %.1f MiB +stats.encr.total.data.gib=Dane odszyfrowane: %.1f GiB stats.write.accessCount=Całkowity zapis: %d ## Accesses @@ -361,7 +364,9 @@ main.vaultlist.contextMenu.unlock=Odblokuj… main.vaultlist.contextMenu.unlockNow=Odblokuj teraz main.vaultlist.contextMenu.vaultoptions=Pokaż opcje sejfu main.vaultlist.contextMenu.reveal=Otwórz lokalizację -main.vaultlist.addVaultBtn=Dodaj sejf +main.vaultlist.addVaultBtn=Dodaj +main.vaultlist.addVaultBtn.menuItemNew=Nowy sejf... +main.vaultlist.addVaultBtn.menuItemExisting=Istniejący sejf... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Dziękujemy za wybranie programu Cryptomator do ochrony plików. Jeśli potrzebujesz pomocy, sprawdź nasze przewodniki: diff --git a/src/main/resources/i18n/strings_pt.properties b/src/main/resources/i18n/strings_pt.properties index ab6eca329..c10bf780a 100644 --- a/src/main/resources/i18n/strings_pt.properties +++ b/src/main/resources/i18n/strings_pt.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Relatar este erro error.technicalDetails=Detalhes: error.existingSolutionDescription=O Cryptomator não esperava que isso acontecesse. Mas encontrámos uma solução existente para esse erro. Por favor, veja o seguinte link. error.hyperlink.solution=Procure a solução - +error.lookupPermissionMessage=O Cryptomator pode procurar uma solução on-line para este problema. Isso enviará uma solicitação do problema à nossa base de dados a partir do seu endereço IP. +error.dismiss=Ignorar +error.lookUpSolution=Procure solução # Defaults defaults.vault.vaultName=Cofre @@ -38,9 +40,6 @@ traymenu.vault.reveal=Revelar # Add Vault Wizard addvaultwizard.title=Adicionar Cofre -## Welcome -addvaultwizard.welcome.newButton=Criar Novo Cofre -addvaultwizard.welcome.existingButton=Abrir Cofre Existente ## New ### Name addvaultwizard.new.nameInstruction=Escolha um nome para o cofre @@ -135,6 +134,11 @@ unlock.success.revealBtn=Revelar unidade unlock.error.customPath.message=Não é possível montar o cofre no caminho personalizado unlock.error.customPath.description.notSupported=Se pretender continuar a utilizar o caminho personalizado, vá às preferências e seleccione um tipo de volume que o suporte. Caso contrário, aceda às opções do vault e escolha um ponto de montagem suportado. unlock.error.customPath.description.notExists=O caminho de montagem personalizado não existe. Crie-o no seu sistema de ficheiros local ou altere-o nas opções do vault. +unlock.error.customPath.description.inUse=A letra da unidade ou o caminho de montagem personalizado "%s" já está em uso. +unlock.error.customPath.description.hideawayNotDir=O arquivo oculto temporário "%3$s" usado para desbloquear não pôde ser removido. Verifique o arquivo e exclua-o manualmente. +unlock.error.customPath.description.couldNotBeCleaned=Não foi possível montar o seu cofre no caminho "%s". Tente novamente ou escolha um caminho diferente. +unlock.error.customPath.description.notEmptyDir=O caminho de montagem personalizado "%s" não é uma pasta vazia. Escolha uma pasta vazia e tente novamente. +unlock.error.customPath.description.generic=Selecionou um caminho de montagem personalizado para este cofre, mas o seu uso falhou com a mensagem: %2$s ## Hub hub.noKeychain.message=Não foi possível aceder à chave do dispositivo hub.noKeychain.description=Para desbloquear os cofres do Hub, é necessária uma chave do dispositivo, que é protegida usando um porta-chaves. Para continuar, ative “%s” e selecione um porta-chaves nas preferências. @@ -333,7 +337,6 @@ main.vaultlist.contextMenu.unlock=Desbloquear… main.vaultlist.contextMenu.unlockNow=Desbloquear agora main.vaultlist.contextMenu.vaultoptions=Mostrar opções do Cofre main.vaultlist.contextMenu.reveal=Revelar unidade -main.vaultlist.addVaultBtn=Adicionar Cofre ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Obrigado por escolher Cryptomator para proteger os seus ficheiros. Se precisar de alguma ajuda, veja os nossos guias introdutórios: @@ -463,4 +466,10 @@ quit.forced.message=Alguns cofres não poderam ser fechados quit.forced.description=Bloquear os cofres foi impossibilitado por operações pendentes ou ficheiros abertos. Poderá forçar o bloqueio dos cofres restantes, sob a possibilidade da perda de dados não guardados. quit.forced.forceAndQuitBtn=Forçar e Sair -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Verificação de Atualização +updateReminder.message=Verificar atualizações? +updateReminder.description=Fique atualizado com novos recursos, correções de erros e melhorias de segurança. Recomendamos verificar automaticamente se há atualizações. +updateReminder.notNow=Agora não +updateReminder.yesOnce=Sim, Uma Vez +updateReminder.yesAutomatically=Sim, Automaticamente \ No newline at end of file diff --git a/src/main/resources/i18n/strings_pt_BR.properties b/src/main/resources/i18n/strings_pt_BR.properties index 1d6946ce0..6c512e1c6 100644 --- a/src/main/resources/i18n/strings_pt_BR.properties +++ b/src/main/resources/i18n/strings_pt_BR.properties @@ -10,19 +10,21 @@ generic.button.choose=Escolha… generic.button.close=Fechar generic.button.copy=Copiar generic.button.copied=Copiado! -generic.button.done=Pronto +generic.button.done=Concluído generic.button.next=Próximo generic.button.print=Imprimir # Error error.message=Erro %s -error.description=Oops! Cryptomator não esperava que isso acontecesse. Você pode procurar soluções existentes para este erro. Ou se isso ainda não foi reportado como erro, fique à vontade para fazê-lo. +error.description=O Cryptomator encontrou um erro inesperado. Você pode procurar soluções pré-existentes na internet ou até mesmo reportar como bug. error.hyperlink.lookup=Procure este erro error.hyperlink.report=Reportar este erro error.technicalDetails=Detalhes: error.existingSolutionDescription=O Cryptomator encontrou um erro inesperado, mas há uma solução pré-existente disponível no seguinte link. error.hyperlink.solution=Procure a solução - +error.lookupPermissionMessage=O Cryptomator pode procurar uma solução online. Isso enviará um pedido ao nosso banco de problemas a partir do seu endereço IP. +error.dismiss=Ignorar +error.lookUpSolution=Procurar solução # Defaults defaults.vault.vaultName=Cofre @@ -38,35 +40,32 @@ traymenu.vault.reveal=Exibir # Add Vault Wizard addvaultwizard.title=Adicionar Cofre -## Welcome -addvaultwizard.welcome.newButton=Criar Um Novo Cofre -addvaultwizard.welcome.existingButton=Abrir Cofre Existente ## New ### Name addvaultwizard.new.nameInstruction=Escolha um nome para o cofre addvaultwizard.new.namePrompt=Nome do Cofre ### Location -addvaultwizard.new.locationInstruction=Onde o Cryptomator deve armazenar os arquivos encriptados do seu cofre? +addvaultwizard.new.locationInstruction=Onde o Cryptomator deve armazenar os arquivos criptografados do seu cofre? addvaultwizard.new.locationLabel=Local de armazenamento addvaultwizard.new.locationPrompt=… addvaultwizard.new.directoryPickerLabel=Local Personalizado addvaultwizard.new.directoryPickerButton=Escolher… addvaultwizard.new.directoryPickerTitle=Selecionar Diretório -addvaultwizard.new.fileAlreadyExists=Um arquivo ou diretório com o nome do cofre já existe +addvaultwizard.new.fileAlreadyExists=Já existe um arquivo ou diretório com esse nome addvaultwizard.new.locationDoesNotExist=Um diretório no caminho especificado não existe ou não pode ser acessado -addvaultwizard.new.locationIsNotWritable=Sem acesso de escrita no caminho especificado -addvaultwizard.new.locationIsOk=Localização adequada para o seu cofre +addvaultwizard.new.locationIsNotWritable=Não há acesso de escrita nesse caminho +addvaultwizard.new.locationIsOk=Local adequado para o seu cofre addvaultwizard.new.invalidName=Nome do cofre inválido addvaultwizard.new.validName=Nome do cofre válido addvaultwizard.new.validCharacters.message=O nome do cofre pode conter os seguintes caracteres: -addvaultwizard.new.validCharacters.chars=Caracteres de texto (exemplo: a, ж ou 수) +addvaultwizard.new.validCharacters.chars=Caracteres de palavra (por exemplo, a, ж or 수) addvaultwizard.new.validCharacters.numbers=Números addvaultwizard.new.validCharacters.dashes=Hífen (%s) ou sublinhado (%s) ### Expert Settings addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Ativar configurações avançadas addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Digite um valor entre 36 e 220 (padrão 220) addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Abra a documentação para saber mais. -addvaultwizard.new.expertSettings.shorteningThreshold.title=Comprimento máximo dos nomes de arquivos encriptados +addvaultwizard.new.expertSettings.shorteningThreshold.title=Comprimento máximo dos nomes de arquivos criptografados addvaultwizard.new.expertSettings.shorteningThreshold.valid=Válido ### Password addvaultwizard.new.createVaultBtn=Criar Cofre @@ -88,7 +87,7 @@ addvault.new.readme.storageLocation.10=Se precisar de ajuda, visite a documenta addvault.new.readme.accessLocation.fileName=BEM-VINDO.rtf addvault.new.readme.accessLocation.1=🔐️ VOLUME ENCRIPTADO 🔐️ addvault.new.readme.accessLocation.2=Este é o local de acesso ao seu cofre. -addvault.new.readme.accessLocation.3=Todos os arquivos adicionados a este volume serão encriptados pelo Cryptomator. Você pode trabalhar nele tal como em qualquer outra unidade/pasta. Esta é apenas uma visão não encriptada do seu conteúdo, seus arquivos permanecem encriptados em seu disco rígido o tempo todo. +addvault.new.readme.accessLocation.3=Todos os arquivos adicionados a este volume serão criptografados de forma transparente pelo Cryptomator. Você pode trabalhar nele como se fosse qualquer unidade/pasta. Esta é apenas uma visão não criptografada do seu conteúdo, mas seus arquivos permanecem criptografados na sua unidade o tempo todo. addvault.new.readme.accessLocation.4=Fique à vontade para apagar este arquivo. ## Existing addvaultwizard.existing.instruction=Escolha o arquivo "vault.cryptomator" do seu cofre existente. Se existir apenas um arquivo chamado "masterkey.cryptomator", selecione outro. @@ -119,12 +118,12 @@ forgetPassword.confirmBtn=Esquecer Senha # Unlock unlock.title=Desbloquear "%s" unlock.passwordPrompt=Digite a senha para "%s": -unlock.savePassword=Lembrar senha +unlock.savePassword=Lembrar Senha unlock.unlockBtn=Desbloquear ## Select -unlock.chooseMasterkey.message=Arquivo de chave mestra — “masterkey” — não encontrado -unlock.chooseMasterkey.description=Não foi possível encontrar o arquivo Masterkey deste cofre no local esperado. Por favor selecione manualmente o arquivo contendo a chave. -unlock.chooseMasterkey.filePickerTitle=Selecionar Arquivo Masterkey +unlock.chooseMasterkey.message=Arquivo "masterkey" não encontrado +unlock.chooseMasterkey.description=Não encontrei o arquivo "masterkey" para o cofre "%s". Por favor selecione manualmente o arquivo contendo a chave. +unlock.chooseMasterkey.filePickerTitle=Selecionar arquivo "masterkey" unlock.chooseMasterkey.filePickerMimeDesc=Chave mestra do Cryptomator ## Success unlock.success.message=Desbloqueado com sucesso @@ -135,8 +134,11 @@ unlock.success.revealBtn=Revelar Volume unlock.error.customPath.message=Não foi possível iniciar o cofre no caminho personalizado unlock.error.customPath.description.notSupported=Se você deseja continuar usando o caminho personalizado, por favor vá para as preferências e selecione um tipo de volume que o suporte. Caso contrário, vá para as opções de cofre e escolha um ponto de montagem suportado. unlock.error.customPath.description.notExists=O caminho de montagem personalizado não existe. Crie o caminho em seu sistema de arquivos local, ou o altere nas opções de cofre. -unlock.error.customPath.description.inUse=A letra da unidade de disco "%s" já está em uso. -unlock.error.customPath.description.generic=Você selecionou um caminho de montagem personalizado para este cofre, mas ao usá-lo ocorreu uma falha com a mensagem: %s +unlock.error.customPath.description.inUse=A letra da unidade ou o caminho de montagem "%s" já está em uso. +unlock.error.customPath.description.hideawayNotDir=O arquivo oculto e temporário "%3$s" usado para desbloquear não pôde ser removido. Exclua-o manualmente. +unlock.error.customPath.description.couldNotBeCleaned=Seu cofre não pôde ser montado no caminho "%s". Tente novamente ou escolha um caminho diferente. +unlock.error.customPath.description.notEmptyDir=O caminho de montagem escolhido "%s" não é uma pasta vazia. Escolha uma pasta vazia e tente novamente. +unlock.error.customPath.description.generic=Você selecionou um caminho de montagem personalizado para este cofre, mas falhou com a mensagem: %2$s ## Hub hub.noKeychain.message=Não foi possível acessar a chave do dispositivo hub.noKeychain.description=Para desbloquear os cofres centrais, é necessário a chave do dispositivo, protegida por um chaveiro. Para proceder, ative "%s" e selecione um chaveiro nas preferências. @@ -209,8 +211,8 @@ migration.impossible.moreInfo=O cofre ainda pode ser aberto com uma versão mais # Health Check ## Start health.title=Exame de saúde de "%s" -health.intro.header=Status de saúde -health.intro.text=O Health Check é uma coleção de verificações para detectar e possivelmente corrigir problemas na estrutura interna do seu cofre. Lembre-se de: +health.intro.header=Verificação de Saúde +health.intro.text=A Verificação de Saúde é um grupo de verificações que detectam e tentam corrigir problemas na estrutura interna do cofre. Lembre-se de: health.intro.remarkSync=Certifique-se de que todos os dispositivos estejam completamente sincronizados, isso resolve a maioria dos problemas. health.intro.remarkFix=Nem todos os problemas podem ser corrigidos. health.intro.remarkBackup=Se os dados estiverem corrompidos, apenas um backup poderá ajudar. @@ -224,38 +226,38 @@ health.fail.moreInfo=Mais informações health.checkList.description=Selecione as verificações na lista esquerda ou use os botões abaixo. health.checkList.selectAllButton=Selecionar Todas as Verificações health.checkList.deselectAllButton=Desfazer seleção de todas as planilhas -health.check.runBatchBtn=Executar as Verificações Selecionadas +health.check.runBatchBtn=Executar Verificações ## Detail view -health.check.detail.noSelectedCheck=Para obter os resultados, selecione uma verificação de saúde completada na lista à esquerda. +health.check.detail.noSelectedCheck=Para ver os resultados, selecione uma verificação na lista à esquerda. health.check.detail.checkScheduled=A verificação está programada. -health.check.detail.checkRunning=A verificação está atualmente em execução… -health.check.detail.checkSkipped=A verificação não foi selecionada para ser executada. -health.check.detail.checkFinished=A verificação foi concluída com sucesso. -health.check.detail.checkFinishedAndFound=A verificação terminou em execução. Por favor, reveja os resultados. -health.check.detail.checkFailed=A verificação foi encerrada devido a um erro. +health.check.detail.checkRunning=A verificação está rodando… +health.check.detail.checkSkipped=A verificação não foi selecionada para execução. +health.check.detail.checkFinished=A verificação terminou com sucesso. +health.check.detail.checkFinishedAndFound=A verificação terminou. Verifique os resultados. +health.check.detail.checkFailed=A verificação encerrou devido a um erro. health.check.detail.checkCancelled=A verificação foi cancelada. health.check.detail.listFilters.label=Filtro -health.check.detail.fixAllSpecificBtn=Reparar todo tipo +health.check.detail.fixAllSpecificBtn=Reparar todos deste tipo health.check.exportBtn=Exportar Relatório ## Result view -health.result.severityFilter.all=Severidade - Todos -health.result.severityFilter.good=Bom -health.result.severityFilter.info=Informação +health.result.severityFilter.all=Gravidade - Todas +health.result.severityFilter.good=Bom estado +health.result.severityFilter.info=Info health.result.severityFilter.warn=Aviso health.result.severityFilter.crit=Crítico health.result.severityTip.good=Gravidade: Boa\nestrutura do cofre normal. -health.result.severityTip.info=Gravidade: Informação\nestrutura de cofre intacta, correção sugerida. -health.result.severityTip.warn=Gravidade: Aviso\nestrutura de cofre corrompida, correção altamente aconselhável. -health.result.severityTip.crit=Gravidade: Estrutura Crítica\ndo cofre corrompida, perda de dados determinada. +health.result.severityTip.info=Gravidade: Info\nEstrutura de cofre intacta, correção sugerida. +health.result.severityTip.warn=Gravidade: Aviso\nEstrutura de cofre corrompida, correção altamente aconselhada. +health.result.severityTip.crit=Gravidade: Crítica\nEstrutura do cofre corrompida, haverá perda de dados. health.result.fixStateFilter.all=Estado de reparo - Todos -health.result.fixStateFilter.fixable=Corrigível -health.result.fixStateFilter.notFixable=Não corrigível -health.result.fixStateFilter.fixing=Corrigindo… -health.result.fixStateFilter.fixed=Corrigido +health.result.fixStateFilter.fixable=Reparável +health.result.fixStateFilter.notFixable=Não reparável +health.result.fixStateFilter.fixing=Reparando… +health.result.fixStateFilter.fixed=Reparado health.result.fixStateFilter.fixFailed=Reparo falhou ## Fix Application -health.fix.fixBtn=Corrigir -health.fix.successTip=Consertado com sucesso +health.fix.fixBtn=Reparar +health.fix.successTip=Reparado health.fix.failTip=Falha na correção, consulte o log para obter detalhes # Preferences @@ -266,8 +268,8 @@ preferences.general.startHidden=Ocultar janela ao iniciar o Cryptomator preferences.general.autoCloseVaults=Bloquear cofres abertos automaticamente ao sair do aplicativo preferences.general.debugLogging=Ativar log de debug preferences.general.debugDirectory=Mostrar arquivos de log -preferences.general.autoStart=Iniciar o Cryptomator durante inicialização do sistema -preferences.general.keychainBackend=Armazenar senhas no +preferences.general.autoStart=Iniciar o Cryptomator ao inicializar o sistema +preferences.general.keychainBackend=Armazenar senhas com ## Interface preferences.interface=Interface preferences.interface.theme=Aparência @@ -324,27 +326,27 @@ stats.read.total.data.kib=Dados lidos: %.1f GiB stats.read.total.data.mib=Dados lidos: %.1f MiB stats.read.total.data.gib=Dados lidos: %.1f GiB stats.decr.total.data.none=Dados descriptografados: - -stats.decr.total.data.kib=Dados descriptografados: %.1f GiB +stats.decr.total.data.kib=Dados descriptografados: %.1f KiB stats.decr.total.data.mib=Dados descriptografados: %.1f MiB stats.decr.total.data.gib=Dados descriptografados: %.1f GiB -stats.read.accessCount=Total de leituras: %d +stats.read.accessCount=Leituras totais: %d ## Write -stats.write.throughput.idle=Escrita: ociosa -stats.write.throughput.kibs=Escrita: %.2f MiB/s -stats.write.throughput.mibs=Escrita: %.2f MiB/s +stats.write.throughput.idle=Gravação: ociosa +stats.write.throughput.kibs=Gravação: %.2f KiB/s +stats.write.throughput.mibs=Gravação: %.2f MiB/s stats.write.total.data.none=Dados gravados: - -stats.write.total.data.kib=Dados gravados: %.1f kiB +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 stats.encr.total.data.none=Dados criptografados: - -stats.encr.total.data.kib=Dados encriptados: %.1f KiB +stats.encr.total.data.kib=Dados criptografados: %.1f KiB stats.encr.total.data.mib=Dados criptografados: %.1f MiB stats.encr.total.data.gib=Dados criptografados: %.1f GiB -stats.write.accessCount=Total gravado: %d +stats.write.accessCount=Gravações totais: %d ## Accesses stats.access.current=Acesso: %d -stats.access.total=Total de acessos: %d +stats.access.total=Acessos totais: %d # Main Window @@ -352,7 +354,7 @@ main.closeBtn.tooltip=Fechar main.minimizeBtn.tooltip=Minimizar main.preferencesBtn.tooltip=Preferências main.debugModeEnabled.tooltip=Modo de depuração ativado -main.supporterCertificateMissing.tooltip=Por favor, considere doar para esse projeto +main.supporterCertificateMissing.tooltip=Por favor doe ## Vault List main.vaultlist.emptyList.onboardingInstruction=Clique aqui para adicionar um cofre main.vaultlist.contextMenu.remove=Remover… @@ -361,7 +363,7 @@ main.vaultlist.contextMenu.unlock=Desbloquear… main.vaultlist.contextMenu.unlockNow=Desbloquear Agora main.vaultlist.contextMenu.vaultoptions=Exibir Opções de Cofre main.vaultlist.contextMenu.reveal=Revelar Volume -main.vaultlist.addVaultBtn=Adicionar Cofre +main.vaultlist.addVaultBtn=Adicionar ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Obrigado por escolher o Cryptomator para proteger seus arquivos. Se precisar de ajuda, confira nossos guias de introdução: @@ -378,19 +380,19 @@ main.vaultDetail.revealBtn=Revelar Volume main.vaultDetail.copyUri=Copiar URI main.vaultDetail.lockBtn=Bloquear main.vaultDetail.bytesPerSecondRead=Leitura: -main.vaultDetail.bytesPerSecondWritten=Escrita: +main.vaultDetail.bytesPerSecondWritten=Gravação: main.vaultDetail.throughput.idle=ocioso main.vaultDetail.throughput.kbps=%.1f KiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=Estatísticas do Cofre main.vaultDetail.locateEncryptedFileBtn=Localizar Arquivo Criptografado main.vaultDetail.locateEncryptedFileBtn.tooltip=Escolha um arquivo do seu cofre para localizar sua versão criptografada -main.vaultDetail.encryptedPathsCopied=Caminhos copiados para área de transferência! +main.vaultDetail.encryptedPathsCopied=Caminhos copiados para a Área de Transferência! main.vaultDetail.filePickerTitle=Selecione o Arquivo No Cofre ### Missing -main.vaultDetail.missing.info=O Cryptomator não conseguiu encontrar um cofre neste caminho. +main.vaultDetail.missing.info=O Cryptomator não encontrou um cofre neste caminho. main.vaultDetail.missing.recheck=Verificar novamente -main.vaultDetail.missing.remove=Remover da lista de Cofres… +main.vaultDetail.missing.remove=Remover da lista de cofres… main.vaultDetail.missing.changeLocation=Alterar Localização do Cofre… ### Needs Migration main.vaultDetail.migrateButton=Atualizar Cofre diff --git a/src/main/resources/i18n/strings_ro.properties b/src/main/resources/i18n/strings_ro.properties index c23d82040..ff5c45a6d 100644 --- a/src/main/resources/i18n/strings_ro.properties +++ b/src/main/resources/i18n/strings_ro.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Raportează această eroare error.technicalDetails=Detalii: error.existingSolutionDescription=Cryptomator nu s-a aşteptat să se întâmple asta. Dar am găsit o soluţie pentru această eroare. Vă rugăm să cititi următorul link. error.hyperlink.solution=Caută soluția - +error.lookupPermissionMessage=Cryptomator poate căuta online o soluție pentru această problemă. O cerere va fi trimisa către baza noastră de date de la adresa ta IP. +error.dismiss=Renunță +error.lookUpSolution=Caută soluția # Defaults defaults.vault.vaultName=Seif @@ -38,9 +40,6 @@ traymenu.vault.reveal=Afişare # Add Vault Wizard addvaultwizard.title=Adaugă un seif -## Welcome -addvaultwizard.welcome.newButton=Creează seif nou -addvaultwizard.welcome.existingButton=Deschide un seif existent ## New ### Name addvaultwizard.new.nameInstruction=Alege un nume pentru seif @@ -135,8 +134,6 @@ unlock.success.revealBtn=Dezvăluie partiția unlock.error.customPath.message=Nu se poate monta seiful în locația alesă unlock.error.customPath.description.notSupported=Dacă doriți să continuați să utilizați locația aleasă, vă rugăm să mergeți la preferințe și să selectați o unitate de stocare suportată. În caz contrar, mergeți la opțiunile seifului și alegeți o locație de montare suportată. unlock.error.customPath.description.notExists=Locația de montare aleasă nu există. Creați-o în sistemul de fișiere local sau schimbați-o din opțiunile seifului. -unlock.error.customPath.description.inUse=Partiția cu litera "%s" este deja folosită. -unlock.error.customPath.description.generic=Ați selectat o locație de montare pentru acest seif, dar utilizarea ei a eșuat cu mesajul: %s ## Hub hub.noKeychain.message=Cheia dispozitivului nu a putut fi accesată hub.noKeychain.description=Pentru a debloca seifele de tip Hub, este necesară o cheie a dispozitivului, care este securizată prin intermediul unui keychain. Pentru a continua, activați „%s” și selectați un keychain în preferințe. @@ -361,7 +358,7 @@ main.vaultlist.contextMenu.unlock=Deblochează… main.vaultlist.contextMenu.unlockNow=Deblochează acum main.vaultlist.contextMenu.vaultoptions=Arată opțiunile seifului main.vaultlist.contextMenu.reveal=Dezvăluie unitatea -main.vaultlist.addVaultBtn=Adaugă un seif +main.vaultlist.addVaultBtn=Adaugă ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Vă mulțumim că ați ales Cryptomator pentru a vă proteja fișierele. Dacă aveți nevoie de asistență, verificați ghidurile noastre de pornire: diff --git a/src/main/resources/i18n/strings_ru.properties b/src/main/resources/i18n/strings_ru.properties index e35a8ea42..c1c352e01 100644 --- a/src/main/resources/i18n/strings_ru.properties +++ b/src/main/resources/i18n/strings_ru.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Сообщить об ошибке error.technicalDetails=Подробности: error.existingSolutionDescription=Произошло неожиданное событие. Однако мы нашли решение этой проблемы. Ознакомьтесь с ним по ссылке. error.hyperlink.solution=Найти решение - +error.lookupPermissionMessage=Cryptomator может поискать решение этой проблемы в Интернете. Для этого будет отправлен запрос о проблеме в нашу базу данных с вашего IP-адреса. +error.dismiss=Отклонить +error.lookUpSolution=Найти решение # Defaults defaults.vault.vaultName=Хранилище @@ -38,10 +40,8 @@ traymenu.vault.reveal=Показать # Add Vault Wizard addvaultwizard.title=Добавить хранилище -## Welcome -addvaultwizard.welcome.newButton=Создать хранилище -addvaultwizard.welcome.existingButton=Открыть имеющееся хранилище ## New +addvaultwizard.new.title=Добавить новое хранилище ### Name addvaultwizard.new.nameInstruction=Выберите имя для хранилища addvaultwizard.new.namePrompt=Имя хранилища @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Это место доступа к ваш addvault.new.readme.accessLocation.3=Любые файлы, добавленные в этот том, будут зашифрованы Cryptomator. Вы можете работать с ним как с любым другим диском или папкой. Здесь отображается только расшифрованное содержимое тома, ваши файлы остаются зашифрованными на жёстком диске постоянно. addvault.new.readme.accessLocation.4=Этот файл можно удалить. ## Existing +addvaultwizard.existing.title=Добавить существующее хранилище addvaultwizard.existing.instruction=Выберите файл "vault.cryptomator" существующего хранилища. Если имеется только файл "masterkey.cryptomator", выберите его. addvaultwizard.existing.chooseBtn=Выбрать… addvaultwizard.existing.filePickerTitle=Выберите файл хранилища @@ -135,8 +136,11 @@ unlock.success.revealBtn=Показать диск unlock.error.customPath.message=Невозможно смонтировать хранилище по указанному пути unlock.error.customPath.description.notSupported=Если вы хотите продолжить использование пользовательского пути, перейдите в настройки и выберите тип тома, который его поддерживает. В противном случае, перейдите в настройки хранилища и выберите поддерживаемую точку монтирования. unlock.error.customPath.description.notExists=Пользовательский путь монтирования не существует. Либо создайте его в локальной файловой системе, либо измените в параметрах хранилища. -unlock.error.customPath.description.inUse=Буква диска "%s" уже используется. -unlock.error.customPath.description.generic=Вы выбрали свой путь монтирования этого хранилища, но его нельзя использовать: %s +unlock.error.customPath.description.inUse=Буква диска или путь монтирования "%s" уже используется. +unlock.error.customPath.description.hideawayNotDir=Временный скрытый файл "%3$s" используется для разблокировки и не может быть удалён. Проверьте файл и затем удалите его вручную. +unlock.error.customPath.description.couldNotBeCleaned=Хранилище не может быть смонтировано к пути "%s". Попробуйте ещё раз или выберите другой путь. +unlock.error.customPath.description.notEmptyDir=Путь монтирования "%s" — не пустая папка. Выберите пустую папку и повторите попытку. +unlock.error.customPath.description.generic=Выбранный вами путь монтирования для хранилища не удалось использовать: %2$s ## Hub hub.noKeychain.message=Нет доступа к ключу устройства hub.noKeychain.description=Для разблокировки хаб-хранилища необходим ключ устройства, который защищён с помощью связки ключей. Чтобы продолжить, включите "%s" и выберите связку ключей в настройках. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Разблокировать… main.vaultlist.contextMenu.unlockNow=Разблокировать main.vaultlist.contextMenu.vaultoptions=Параметры хранилища main.vaultlist.contextMenu.reveal=Показать диск -main.vaultlist.addVaultBtn=Добавить хранилище +main.vaultlist.addVaultBtn=Добавить +main.vaultlist.addVaultBtn.menuItemNew=Новое хранилище... +main.vaultlist.addVaultBtn.menuItemExisting=Существующее хранилище... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Благодарим за выбор Cryptomator для защиты ваших файлов. Если требуется помощь, ознакомьтесь с документацией по началу работы: diff --git a/src/main/resources/i18n/strings_si.properties b/src/main/resources/i18n/strings_si.properties index 01d0b3615..6d8708f2e 100644 --- a/src/main/resources/i18n/strings_si.properties +++ b/src/main/resources/i18n/strings_si.properties @@ -17,7 +17,6 @@ generic.button.print=මුද්‍රණය කරන්න error.message=දෝෂය: %s error.technicalDetails=විස්තර: - # Defaults # Tray Menu @@ -25,7 +24,6 @@ traymenu.showMainWindow=පෙන්වන්න traymenu.vault.unlock=අගුළුහරින්න # Add Vault Wizard -## Welcome ## New ### Name ### Location diff --git a/src/main/resources/i18n/strings_sk.properties b/src/main/resources/i18n/strings_sk.properties index aa207e184..66daeee97 100644 --- a/src/main/resources/i18n/strings_sk.properties +++ b/src/main/resources/i18n/strings_sk.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Nahlásiť túto chybu error.technicalDetails=Podrobnosti: error.existingSolutionDescription=Cryptomator nečakal, že sa toto stane. Našli sme však existujúce riešenie tejto chyby. Pozrite si prosím nasledujúci odkaz. error.hyperlink.solution=Vyhľadať riešenie - +error.lookupPermissionMessage=Cryptomator vie vyhľadať riešenie tohoto problému online. Toto zašle požiadavku do našej databázy z Vašej IP adresy. +error.dismiss=Zamietnuť +error.lookUpSolution=Vyhľadať riešenie # Defaults defaults.vault.vaultName=Trezor @@ -38,9 +40,6 @@ traymenu.vault.reveal=Odkryť # Add Vault Wizard addvaultwizard.title=Pridať trezor -## Welcome -addvaultwizard.welcome.newButton=Vytvoriť nový trezor -addvaultwizard.welcome.existingButton=Otvoriť existujúci trezor ## New ### Name addvaultwizard.new.nameInstruction=Zvoľte názov pre trezor @@ -66,6 +65,7 @@ addvaultwizard.new.validCharacters.dashes=Pomlčka (%s) alebo podčiarnik (%s) addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Povoliť expertné nastavenia addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Zadajte hodnotu medzi 36 a 220 (predvolená 220) addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Otvorte dokumentáciu pre viac informácií. +addvaultwizard.new.expertSettings.shorteningThreshold.title=Maximálna dĺžka zakryptovaných mien súborov addvaultwizard.new.expertSettings.shorteningThreshold.valid=Platný ### Password addvaultwizard.new.createVaultBtn=Vytvoriť trezor @@ -133,8 +133,7 @@ unlock.success.revealBtn=Odkryť disk ## Failure unlock.error.customPath.message=Nie je možné namapovať trezor na uživateĺskej ceste unlock.error.customPath.description.notSupported=Ak chcete naďalej používať vlastnú cestu, prejdite do nastavení a vyberte typ zväzku, ktorý ju podporuje. V opačnom prípade prejdite na možnosti trezoru a vyberte podporovaný bod pripojenia. -unlock.error.customPath.description.inUse=Písmeno jednotky „%s“ sa už používa. -unlock.error.customPath.description.generic=Vybrali ste voliteľnú cestu pripojenia pre tento trezor, ale použiť ho zlyhalo so správou: %s +unlock.error.customPath.description.hideawayNotDir=Dočasne, skrytý súbor "%3$s" použitý pre odomknutie nemôže byť odstránený. Prosím skontrolujte súbor a následne zmažte manuálne. ## Hub hub.noKeychain.message=Nemôžem pristúpiť ku kľúču zariadenia hub.noKeychain.description=V poradí odomknutia Hub trezorov, je požadovaný kľúč zariadenia ktorý je zabezpečený použitím keychain. K vykonaniu povoľte "%s" a zvoľte keychain v nastaveniach. @@ -359,7 +358,7 @@ main.vaultlist.contextMenu.unlock=Odomknúť… main.vaultlist.contextMenu.unlockNow=Odomknúť teraz main.vaultlist.contextMenu.vaultoptions=Ukáž možnosti trezora main.vaultlist.contextMenu.reveal=Odkry disk -main.vaultlist.addVaultBtn=Pridať trezor +main.vaultlist.addVaultBtn=Pridať ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Ďakujeme Vám že ste si zvolili Cryptomator pre ochranu Vaších súborov. Ak potrebujete akúkoľvek pomoc, pozrite si našu príručku ako začať: @@ -443,6 +442,7 @@ vaultOptions.masterkey.showRecoveryKeyBtn=Ukázať klúč obnovy vaultOptions.masterkey.recoverPasswordBtn=Obnoviť heslo ## Hub vaultOptions.hub=Obnova +vaultOptions.hub.convertBtn=Konvertovať do Password-Based trezora # Recovery Key ## Display Recovery Key @@ -495,4 +495,10 @@ quit.forced.message=Niektoré trezory nemožno uzamknúť quit.forced.description=Uzavretie trezorov bolo blokované prebiehajúcou operáciou alebo otvorenými súbormi. Môžte vynútiť uzamknutie ostávajúcich trezorov, čo preruší I/O a to môže viesť k strate neuložených dát. quit.forced.forceAndQuitBtn=Vynútiť a skončiť -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Kontrola aktualizácií +updateReminder.message=Skontrolovať aktualizácie? +updateReminder.description=Zostaňte aktualizovaný s novými vlastnosťami, opravami chýb a bezpečnostnými vylepšeniami. Odporúčame automatickú kontrolu aktualizácií. +updateReminder.notNow=Teraz nie +updateReminder.yesOnce=Áno, raz +updateReminder.yesAutomatically=Áno, automaticky \ No newline at end of file diff --git a/src/main/resources/i18n/strings_sl.properties b/src/main/resources/i18n/strings_sl.properties index c5778fdd1..4557d9d84 100644 --- a/src/main/resources/i18n/strings_sl.properties +++ b/src/main/resources/i18n/strings_sl.properties @@ -21,13 +21,11 @@ error.hyperlink.lookup=Poiščite to napako error.hyperlink.report=Prijavite to napako error.technicalDetails=Podrobnosti: - # Defaults # Tray Menu # Add Vault Wizard -## Welcome ## New ### Name ### Location @@ -97,6 +95,7 @@ preferences.volume.docsTooltip=Informacije o različnih podatkovnih nosilcih naj # Main Window main.closeBtn.tooltip=Zapri ## Vault List +main.vaultlist.addVaultBtn=Dodaj ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_sr.properties b/src/main/resources/i18n/strings_sr.properties index 635bab139..f6938a3f4 100644 --- a/src/main/resources/i18n/strings_sr.properties +++ b/src/main/resources/i18n/strings_sr.properties @@ -16,7 +16,6 @@ generic.button.print=Štampaj # Error - # Defaults defaults.vault.vaultName=Sef @@ -31,9 +30,6 @@ traymenu.vault.reveal=Otkrij # Add Vault Wizard addvaultwizard.title=Dodavanje safa -## Welcome -addvaultwizard.welcome.newButton=Napravi novi sef -addvaultwizard.welcome.existingButton=Otvori postojeći sef ## New ### Name addvaultwizard.new.nameInstruction=Odaberi naziv za sef @@ -223,7 +219,6 @@ main.vaultlist.contextMenu.unlock=Откључај… main.vaultlist.contextMenu.unlockNow=Otključaj sada main.vaultlist.contextMenu.vaultoptions=Прикажи опције сефа main.vaultlist.contextMenu.reveal=Otvori disk -main.vaultlist.addVaultBtn=Dodavanje safa ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Хвала вам што сте одабрали Cryptomator за заштиту ваших података. Ако вам је потребна помоћ, прегледајте наше корисничко упутство: diff --git a/src/main/resources/i18n/strings_sr_Latn.properties b/src/main/resources/i18n/strings_sr_Latn.properties index 8c6f89342..d7522af10 100644 --- a/src/main/resources/i18n/strings_sr_Latn.properties +++ b/src/main/resources/i18n/strings_sr_Latn.properties @@ -16,7 +16,6 @@ generic.button.print=Štampaj # Error - # Defaults defaults.vault.vaultName=Sef @@ -31,9 +30,6 @@ traymenu.vault.reveal=Otkrij # Add Vault Wizard addvaultwizard.title=Dodavanje safa -## Welcome -addvaultwizard.welcome.newButton=Napravi novi sef -addvaultwizard.welcome.existingButton=Otvori postojeći sef ## New ### Name addvaultwizard.new.nameInstruction=Odaberi naziv za sef @@ -196,7 +192,6 @@ main.preferencesBtn.tooltip=Podešavanja main.vaultlist.contextMenu.lock=Zaključaj main.vaultlist.contextMenu.unlockNow=Otključaj sada main.vaultlist.contextMenu.reveal=Otvori disk -main.vaultlist.addVaultBtn=Dodavanje safa ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_sv.properties b/src/main/resources/i18n/strings_sv.properties index 8e5c56781..f1feda15c 100644 --- a/src/main/resources/i18n/strings_sv.properties +++ b/src/main/resources/i18n/strings_sv.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Rapportera fel error.technicalDetails=Detaljer: error.existingSolutionDescription=Cryptomator förväntade sig inte att det här skulle hända. Men vi hittade en befintlig lösning för detta fel. Ta en titt på följande länk. error.hyperlink.solution=Se lösningen - +error.lookupPermissionMessage=Cryptomator kan leta efter en lösning för detta problem på Internet. Detta kommer att skicka en förfrågan till vår problemdatabas från din IP-adress. +error.dismiss=Avfärda +error.lookUpSolution=Sök efter lösning # Defaults defaults.vault.vaultName=Valv @@ -38,9 +40,6 @@ traymenu.vault.reveal=Visa # Add Vault Wizard addvaultwizard.title=Lägg till valv -## Welcome -addvaultwizard.welcome.newButton=Skapa nytt valv -addvaultwizard.welcome.existingButton=Öppna befintligt valv ## New ### Name addvaultwizard.new.nameInstruction=Ange namn för valvet @@ -135,8 +134,11 @@ unlock.success.revealBtn=Visa enhet unlock.error.customPath.message=Det går inte att montera valvet på utpekad sökväg unlock.error.customPath.description.notSupported=Om du vill fortsätta använda den anpassade sökvägen, gå till inställningarna och välj en volymtyp som stöder den. Annars går du till valvalternativen och väljer en monteringspunkt som stöds. unlock.error.customPath.description.notExists=Den anpassade monteringssökvägen finns inte. Skapa den antingen i ditt lokala filsystem eller ändra den i valvalternativen. -unlock.error.customPath.description.inUse=Enhetsbokstav "%s" används redan. -unlock.error.customPath.description.generic=Den anpassade monteringssökvägen gick inte att använda. Felmeddelande: %s +unlock.error.customPath.description.inUse=Enhetsbokstaven eller anpassad monteringsväg "%s" används redan. +unlock.error.customPath.description.hideawayNotDir=Den temporära, dolda filen "%3$s" som användes för upplåsning kunde inte tas bort. Kontrollera filen och radera den manuellt. +unlock.error.customPath.description.couldNotBeCleaned=Ditt valv kunde inte monteras till sökvägen "%s". Försök igen eller välj en annan sökväg. +unlock.error.customPath.description.notEmptyDir=Den anpassade monteringssökvägen "%s" är inte en tom mapp. Välj en tom mapp och försök igen. +unlock.error.customPath.description.generic=Den anpassade monteringssökvägen gick inte att använda. Felmeddelande: %2$s ## Hub hub.noKeychain.message=Kan inte komma åt enhetsnyckeln hub.noKeychain.description=För att låsa upp Hubb-valv krävs en enhetsnyckel, som är säkrad med hjälp av en nyckelring. För att fortsätta, aktivera ”%s” och välj en nyckelring i inställningarna. @@ -292,6 +294,9 @@ preferences.volume.tcp.port=TCP-port preferences.volume.supportedFeatures=Den valda volymtypen stöder följande funktioner: preferences.volume.feature.mountAuto=Automatiskt val av monteringspunkt preferences.volume.feature.mountToDir=Utpekad katalog som monteringspunkt +preferences.volume.feature.mountToDriveLetter=Enhetsbokstav som monteringspunkt +preferences.volume.feature.mountFlags=Anpassade monteringsalternativ +preferences.volume.feature.readOnly=Skrivskyddat enhetspunkt ## Updates preferences.updates=Uppdateringar preferences.updates.currentVersion=Nuvarande version: %s @@ -358,7 +363,7 @@ main.vaultlist.contextMenu.unlock=Lås upp… main.vaultlist.contextMenu.unlockNow=Lås upp nu main.vaultlist.contextMenu.vaultoptions=Visa inställningar för valv main.vaultlist.contextMenu.reveal=Visa enhet -main.vaultlist.addVaultBtn=Lägg till valv +main.vaultlist.addVaultBtn=Lägg till ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Tack för att du väljer Cryptomator för att skydda dina filer. Om du behöver hjälp kan du kolla in våra guider: @@ -372,6 +377,7 @@ main.vaultDetail.passwordSavedInKeychain=Lösenord sparat main.vaultDetail.unlockedStatus=UPPLÅST main.vaultDetail.accessLocation=Valvets innehåll kan nås härifrån: main.vaultDetail.revealBtn=Visa enhet +main.vaultDetail.copyUri=Kopiera URI main.vaultDetail.lockBtn=Lås main.vaultDetail.bytesPerSecondRead=Läs: main.vaultDetail.bytesPerSecondWritten=Skriv: @@ -421,13 +427,17 @@ vaultOptions.general.startHealthCheckBtn=Starta hälsokontroll ## Mount vaultOptions.mount=Montering +vaultOptions.mount.info=Val beror på enhetstyp. +vaultOptions.mount.linkToPreferences=Öppna virtuella enhetsinställningar vaultOptions.mount.readonly=Skrivskyddad vaultOptions.mount.customMountFlags=Egna monterings-flaggor vaultOptions.mount.winDriveLetterOccupied=upptagen vaultOptions.mount.mountPoint=Monteringspunkt vaultOptions.mount.mountPoint.auto=Välj en lämplig plats automatiskt vaultOptions.mount.mountPoint.driveLetter=Använd tilldelad enhetsbokstav +vaultOptions.mount.mountPoint.custom=Använd vald mapp vaultOptions.mount.mountPoint.directoryPickerButton=Välj… +vaultOptions.mount.mountPoint.directoryPickerTitle=Välj mapp ## Master Key vaultOptions.masterkey=Lösenord vaultOptions.masterkey.changePasswordBtn=Ändra lösenord diff --git a/src/main/resources/i18n/strings_sw.properties b/src/main/resources/i18n/strings_sw.properties index 8eb40e330..5d2c26049 100644 --- a/src/main/resources/i18n/strings_sw.properties +++ b/src/main/resources/i18n/strings_sw.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Angalia kosa hili error.hyperlink.report=Ripoti kosa hili error.technicalDetails=Maelezo: - # Defaults defaults.vault.vaultName=Kuba @@ -36,9 +35,6 @@ traymenu.vault.reveal=Kufunua # Add Vault Wizard addvaultwizard.title=Ongeza Kuba -## Welcome -addvaultwizard.welcome.newButton=Unda kuba mpya -addvaultwizard.welcome.existingButton=Fungua Kuba iliyopo ## New ### Name addvaultwizard.new.nameInstruction=Chagua jina la kuba @@ -128,7 +124,6 @@ unlock.success.revealBtn=Fichua Kiendeshaji unlock.error.customPath.message=Haiwezi kupachika kuba kwenye njia maalum unlock.error.customPath.description.notSupported=Ikiwa ungependa kuendelea kutumia njia maalum, tafadhali nenda kwa mapendeleo na uchague aina ya sauti inayoitumia. Vinginevyo, nenda kwa chaguo za kuba na uchague sehemu ya kupachika inayotumika. unlock.error.customPath.description.notExists=Njia maalum ya kupachika haipo. Iunde katika mfumo wako wa faili wa karibu au ubadilishe katika chaguzi za kuba. -unlock.error.customPath.description.generic=Umechagua njia maalum ya kupachika kwa kuba hii, lakini kuitumia imeshindwa na ujumbe: %s ## Hub hub.noKeychain.message=Imeshindwa kufikia ufunguo wa kifaa hub.noKeychain.description=Ili kufungua kuba za Hub, ufunguo wa kifaa unahitajika, ambao hulindwa kwa kutumia mnyororo wa vitufe. Ili kuendelea, washa "%s" na uchague mnyororo wa vitufe katika mapendeleo. @@ -351,7 +346,7 @@ main.vaultlist.contextMenu.unlock=Fungua… main.vaultlist.contextMenu.unlockNow=Fungua Sasa main.vaultlist.contextMenu.vaultoptions=Onyesha Machaguo ya Kuba main.vaultlist.contextMenu.reveal=Fichua Kiendeshaji -main.vaultlist.addVaultBtn=Ongeza Kuba +main.vaultlist.addVaultBtn=Ongeza ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Shukrani kwa kuchagua Cryptomator kulinda faili zako. Ikiwa unahitaji msaada wowote, angalia miongozo yetu ya kuanza: diff --git a/src/main/resources/i18n/strings_ta.properties b/src/main/resources/i18n/strings_ta.properties index ba0eea438..fc62393dc 100644 --- a/src/main/resources/i18n/strings_ta.properties +++ b/src/main/resources/i18n/strings_ta.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=இந்தப் பிழையைத் தேடு error.hyperlink.report=இந்தப் பிழையைப் புகாரளி error.technicalDetails=விவரங்கள்: - # Defaults defaults.vault.vaultName=பெட்டகம் @@ -36,9 +35,6 @@ traymenu.vault.reveal=தெரியப்படுத்து # Add Vault Wizard addvaultwizard.title=பெட்டகத்தைச் சேர்க்கவும் -## Welcome -addvaultwizard.welcome.newButton=புதிய பெட்டகத்தை உருவாக்கவும் -addvaultwizard.welcome.existingButton=இருக்கும் பெட்டகத்தைத் திறக்கவும் ## New ### Name addvaultwizard.new.nameInstruction=பெட்டகத்திற்கு ஒரு பெயரைத் தேர்ந்தெடுக்கவும் @@ -234,7 +230,6 @@ main.vaultlist.contextMenu.unlock=பூட்டுநீக்கு… main.vaultlist.contextMenu.unlockNow=இப்போது திறக்கவும் main.vaultlist.contextMenu.vaultoptions=பெட்டக விருப்பங்களைக் காட்டு main.vaultlist.contextMenu.reveal=இயக்ககத்தை வெளிப்படுத்து -main.vaultlist.addVaultBtn=பெட்டகத்தைச் சேர்க்கவும் ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=உங்கள் கோப்புகளைப் பாதுகாக்க Cryptomator -ஐத் தேர்ந்தெடுத்ததற்கு நன்றி. உங்களுக்கு ஏதேனும் உதவி தேவைப்பட்டால், எங்கள் தொடக்க வழிகாட்டிகளைப் பார்க்கவும்: diff --git a/src/main/resources/i18n/strings_te.properties b/src/main/resources/i18n/strings_te.properties index d2c24421a..c04391f35 100644 --- a/src/main/resources/i18n/strings_te.properties +++ b/src/main/resources/i18n/strings_te.properties @@ -5,13 +5,11 @@ # Error - # Defaults # Tray Menu # Add Vault Wizard -## Welcome ## New ### Name ### Location diff --git a/src/main/resources/i18n/strings_th.properties b/src/main/resources/i18n/strings_th.properties index 76863081f..bc826f071 100644 --- a/src/main/resources/i18n/strings_th.properties +++ b/src/main/resources/i18n/strings_th.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=ค้นหาข้อผิดพลาดนี้ error.hyperlink.report=รายงานข้อผิดพลาดนี้ error.technicalDetails=ราย​ละเอียด: - # Defaults defaults.vault.vaultName=Vault @@ -36,9 +35,6 @@ traymenu.vault.reveal=เปิดเผย # Add Vault Wizard addvaultwizard.title=เพิ่ม Vault -## Welcome -addvaultwizard.welcome.newButton=สร้าง Vault ใหม่ -addvaultwizard.welcome.existingButton=เปิด Vault ## New ### Name addvaultwizard.new.nameInstruction=เลือกชื่อให้ Vault @@ -142,7 +138,6 @@ main.preferencesBtn.tooltip=การตั้งค่า main.supporterCertificateMissing.tooltip=โปรดพิจารณาเงินบริจาค ## Vault List main.vaultlist.contextMenu.lock=ล็อก -main.vaultlist.addVaultBtn=เพิ่ม Vault ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_tr.properties b/src/main/resources/i18n/strings_tr.properties index cafc9a009..0fd5a0beb 100644 --- a/src/main/resources/i18n/strings_tr.properties +++ b/src/main/resources/i18n/strings_tr.properties @@ -22,7 +22,9 @@ error.hyperlink.report=Bu hatayı bildir error.technicalDetails=Detaylar: error.existingSolutionDescription=Cryptomator bunun olmasını beklemiyordu. Ancak bu hata için hali hazırda bir çözüm olduğunu bulduk. Lütfen aşağıdaki bağlantıya göz atın. error.hyperlink.solution=Çözüme bak - +error.lookupPermissionMessage=Cryptomator bu soruna çevrimiçi bir çözüm arayabilir. Bu, sorun veritabanımıza IP adresinizden bir istek gönderecektir. +error.dismiss=Yoksay +error.lookUpSolution=Çözüme Bak # Defaults defaults.vault.vaultName=Kasa @@ -38,10 +40,8 @@ traymenu.vault.reveal=Göster # Add Vault Wizard addvaultwizard.title=Kasa Ekle -## Welcome -addvaultwizard.welcome.newButton=Yeni Kasa Oluştur -addvaultwizard.welcome.existingButton=Varolan Kasayı Aç ## New +addvaultwizard.new.title=Yeni Kasa Ekle ### Name addvaultwizard.new.nameInstruction=Kasa için bir isim seç addvaultwizard.new.namePrompt=Kasa Adı @@ -91,6 +91,7 @@ addvault.new.readme.accessLocation.2=Burası kasanızın erişim konumudur. addvault.new.readme.accessLocation.3=Bu birime eklenen tüm dosyalar Cryptomator tarafından şifrelenecektir. Başka herhangi bir sürücü/klasörde olduğu gibi üzerinde çalışabilirsiniz. Bu sadece içeriğinin şifresi çözülmüş bir görünümüdür, dosyalarınız her zaman sabit sürücünüzde şifrelenmiş halde kalır. addvault.new.readme.accessLocation.4=Bu dosyayı silmeye çekinmeyin. ## Existing +addvaultwizard.existing.title=Mevcut Kasayı Ekle addvaultwizard.existing.instruction=Mevcut kasanızın "vault.cryptomator" dosyasını seçin. Yalnızca "masterkey.cryptomator" adlı bir dosya varsa, bunun yerine onu seçin. addvaultwizard.existing.chooseBtn=Seç… addvaultwizard.existing.filePickerTitle=Kasa Dosyasını Seçin @@ -135,8 +136,11 @@ unlock.success.revealBtn=Sürücüyü Göster unlock.error.customPath.message=Kasa özel yola bağlanamıyor unlock.error.customPath.description.notSupported=Özel yolu kullanmaya devam etmek istiyorsanız, lütfen tercihlere gidin ve onu destekleyen bir cilt türü seçin. Aksi takdirde kasa seçeneklerine gidin ve desteklenen bir bağlama noktası seçin. unlock.error.customPath.description.notExists=Özel bağlama yolu mevcut değil. Ya yerel dosya sisteminizde oluşturun ya da kasa seçeneklerinde değiştirin. -unlock.error.customPath.description.inUse=Sürücü harfi "%s" zaten kullanımdadır. -unlock.error.customPath.description.generic=Bu kasa için özel bir bağlama yolu seçtiniz, ancak bunu kullanmak şu mesajla başarısız oldu: %s +unlock.error.customPath.description.inUse=Sürücü harfi veya özel montaj yolu "%s" zaten kullanımda. +unlock.error.customPath.description.hideawayNotDir=Kilidi açmak için kullanılan geçici, gizli dosya "%3$s" kaldırılamadı. Lütfen dosyayı kontrol edin ve elle silin. +unlock.error.customPath.description.couldNotBeCleaned=Kasanız "%s" yoluna monte edilemedi. Lütfen tekrar deneyin veya farklı bir montaj yolu seçin. +unlock.error.customPath.description.notEmptyDir=Özel montaj yolu "%s" boş bir klasör değil. Lütfen boş bir klasör seçip tekrar deneyin. +unlock.error.customPath.description.generic=Bu kasa için özel bir montaj yolu seçtiniz ancak bu yolun kullanımı şu ileti ile başarısız oldu: %2$s ## Hub hub.noKeychain.message=Cihaz anahtarına erişilemiyor hub.noKeychain.description=Hub kasalarının kilidini açmak için, bir anahtarlık kullanılarak güvenliği sağlanan bir cihaz anahtarı gerekir. Devam etmek için "%s"yi etkinleştirin ve tercihlerde bir anahtarlık seçin. @@ -361,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Kilit aç… main.vaultlist.contextMenu.unlockNow=Kilidi Şimdi Aç main.vaultlist.contextMenu.vaultoptions=Kasa Ayarları'nı Göster main.vaultlist.contextMenu.reveal=Sürücüyü Göster -main.vaultlist.addVaultBtn=Kasa Ekle +main.vaultlist.addVaultBtn=Ekle +main.vaultlist.addVaultBtn.menuItemNew=Yeni Kasa... +main.vaultlist.addVaultBtn.menuItemExisting=Mevcut Kasa... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Dosyalarınızı korumak için Cryptomator'u seçtiğiniz için teşekkür ederiz. Yardıma ihtiyacınız olursa başlangıç kılavuzlarımıza bakın: @@ -499,4 +505,10 @@ quit.forced.message=Bazı kasalar kilitlenemedi quit.forced.description=Kasaların kilitlenmesi, bekleyen işlemler veya açık dosyalar tarafından engellendi. Kalan kasaları zorla kilitleyebilirsiniz, ancak G/Ç'nin kesilmesi kaydedilmemiş verilerin kaybına neden olabilir. quit.forced.forceAndQuitBtn=Zorla ve Çık -# Update Reminder \ No newline at end of file +# Update Reminder +updateReminder.title=Güncelleme Kontrolü +updateReminder.message=Güncellemeleri Denetle? +updateReminder.description=Yeni özellikler, hata düzeltmeleri ve güvenlik iyileştirmeleri ile güncel kalın. Güncellemelerin otomatik olarak kontrol edilmesini öneririz. +updateReminder.notNow=Şimdi değil +updateReminder.yesOnce=Evet, tek seferlik +updateReminder.yesAutomatically=Evet, otomatik olarak \ No newline at end of file diff --git a/src/main/resources/i18n/strings_uk.properties b/src/main/resources/i18n/strings_uk.properties index ea6fd1a33..2f45c80ab 100644 --- a/src/main/resources/i18n/strings_uk.properties +++ b/src/main/resources/i18n/strings_uk.properties @@ -21,7 +21,6 @@ error.hyperlink.lookup=Дізнатися більше про цю помилк error.hyperlink.report=Повідомити про помилку error.technicalDetails=Подробиці: - # Defaults defaults.vault.vaultName=Сховище @@ -36,9 +35,6 @@ traymenu.vault.reveal=Показати # Add Vault Wizard addvaultwizard.title=Додати сховище -## Welcome -addvaultwizard.welcome.newButton=Створити нове сховище -addvaultwizard.welcome.existingButton=Відкрити сховище ## New ### Name addvaultwizard.new.nameInstruction=Оберіть назву для сховища @@ -128,7 +124,6 @@ unlock.success.revealBtn=Розкрити Диск unlock.error.customPath.message=Не вдалося змонтувати сховище за вказаним шляхом unlock.error.customPath.description.notSupported=Якщо ви хочете надалі використовувати власний шлях, будь ласка, перейдіть до налаштувань та виберіть тип тому, що його підтримує. В іншому випадку перейдіть до параметрів сховища та оберіть точку монтування, що підтримується. unlock.error.customPath.description.notExists=Вказаний шлях підключення не існує. Створіть його в локальній файловій системі або змініть його в параметрах сховища. -unlock.error.customPath.description.generic=Ви створили власний шлях підключення для цього сховища, але скористатися ним не вдалося. Повідомлення про помилку: %s ## Hub hub.noKeychain.message=Не вдалося отримати доступ до ключа пристрою hub.noKeychain.description=Щоб розблокувати Hub vaults, необхідний ключ пристрою, який захищено за допомогою ланцюга ключів. Щоб продовжити, увімкніть “%s” та виберіть ланцюг ключів у налаштуваннях. @@ -264,7 +259,7 @@ main.preferencesBtn.tooltip=Властивості main.vaultlist.contextMenu.lock=Заблокувати main.vaultlist.contextMenu.unlockNow=Розблокувати main.vaultlist.contextMenu.reveal=Розкрити Диск -main.vaultlist.addVaultBtn=Додати сховище +main.vaultlist.addVaultBtn=Додати ## Vault Detail ### Welcome ### Locked diff --git a/src/main/resources/i18n/strings_vi.properties b/src/main/resources/i18n/strings_vi.properties index ed99ae418..b434b0ca3 100644 --- a/src/main/resources/i18n/strings_vi.properties +++ b/src/main/resources/i18n/strings_vi.properties @@ -23,7 +23,6 @@ error.technicalDetails=Chi tiết: error.existingSolutionDescription=Cryptomator không mong đợi điều này xảy ra. Nhưng chúng tôi đã tìm thấy một giải pháp hiện có cho lỗi này. Vui lòng xem qua liên kết sau. error.hyperlink.solution=Tra cứu giải pháp - # Defaults defaults.vault.vaultName=Vault @@ -38,9 +37,6 @@ traymenu.vault.reveal=Hiển thị # Add Vault Wizard addvaultwizard.title=Thêm Vault -## Welcome -addvaultwizard.welcome.newButton=Tạo Vault mới -addvaultwizard.welcome.existingButton=Mở Vault Hiện Có ## New ### Name addvaultwizard.new.nameInstruction=Chọn tên cho vault @@ -130,8 +126,6 @@ unlock.success.revealBtn=Hiển thị Ổ đĩa unlock.error.customPath.message=Không thể gắn vault vào đường dẫn tùy chỉnh unlock.error.customPath.description.notSupported=Nếu bạn muốn tiếp tục sử dụng đường dẫn tuỳ chỉnh, vui lòng chuyển đến tuỳ chọn và chọn loại ổ đĩa hỗ trợ nó. Nếu không, hãy chuyển đến tuỳ chọn vault và chọn điểm gắn kết được hỗ trợ. unlock.error.customPath.description.notExists=Đường dẫn gắn kết tuỳ chỉnh không tồn tại. Tạo nó trong hệ thống tệp cục bộ của bạn hoặc thay đổi nó trong các tuỳ chọn vault. -unlock.error.customPath.description.inUse=Ký tự ổ đĩa "%s" đã được sử dụng. -unlock.error.customPath.description.generic=Bạn đã chọn một đường dẫn gắn kết tuỳ chỉnh cho vault này, nhưng sử dụng nó không thành công với thông báo: %s ## Hub hub.noKeychain.message=Không thể truy cập khoá thiết bị hub.noKeychain.description=Để mở khoá vault Hub, cần có khoá thiết bị, khoá này được bảo mật bằng chuỗi khoá. Để tiếp tục, hãy bật “%s” và chọn một chuỗi khoá trong tuỳ chọn. @@ -356,7 +350,7 @@ main.vaultlist.contextMenu.unlock=Mở khoá… main.vaultlist.contextMenu.unlockNow=Mở khóa bây giờ main.vaultlist.contextMenu.vaultoptions=Hiện tùy chọn vault main.vaultlist.contextMenu.reveal=Hiển thị Ổ đĩa -main.vaultlist.addVaultBtn=Thêm Vault +main.vaultlist.addVaultBtn=Thêm ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=Cảm ơn bạn đã chọn Cryptomator để bảo vệ tệp của bạn. Nếu bạn cần bất kỳ hỗ trợ nào, hãy xem hướng dẫn bắt đầu của chúng tôi: diff --git a/src/main/resources/i18n/strings_zh.properties b/src/main/resources/i18n/strings_zh.properties index 920997ffc..c60ff33c5 100644 --- a/src/main/resources/i18n/strings_zh.properties +++ b/src/main/resources/i18n/strings_zh.properties @@ -22,7 +22,9 @@ error.hyperlink.report=报告该错误 error.technicalDetails=详细信息: error.existingSolutionDescription=Cryptomator 没有预料到会发生这种情况。但我们找到了一个现有的解决方案来解决这个错误。请查看以下链接。 error.hyperlink.solution=查找解决方案 - +error.lookupPermissionMessage=Cryptomator 可以在线查找这个问题的解决方案。这将从您的IP地址向我们的问题数据库发送一个请求。 +error.dismiss=放弃 +error.lookUpSolution=查找解决方案 # Defaults defaults.vault.vaultName=保险库 @@ -38,9 +40,6 @@ traymenu.vault.reveal=显示 # Add Vault Wizard addvaultwizard.title=添加保险库 -## Welcome -addvaultwizard.welcome.newButton=创建新的保险库 -addvaultwizard.welcome.existingButton=打开现有的保险库 ## New ### Name addvaultwizard.new.nameInstruction=为保险库创建一个名称 @@ -135,8 +134,11 @@ unlock.success.revealBtn=显示驱动器 unlock.error.customPath.message=无法将保险库挂载到自定义路径 unlock.error.customPath.description.notSupported=如果您仍想使用自定义路径,请转至首选项并选择支持它的卷类型。否则,请转至保险库选项并选择受支持的挂载点 unlock.error.customPath.description.notExists=自定义挂载路径不存在,请在您的本地文件系统中创建它或在保险库选项中进行更改 -unlock.error.customPath.description.inUse=盘符 "%s" 已被使用。 -unlock.error.customPath.description.generic=您已为此保险库选择了自定义挂载路径,但使用失败,错误消息:%s +unlock.error.customPath.description.inUse=盘符或自定义挂载路径「%s」已被使用。 +unlock.error.customPath.description.hideawayNotDir=用于解锁的临时隐藏文件 "%3$s" 无法被删除。请检查此文件并手动删除 +unlock.error.customPath.description.couldNotBeCleaned=无法将您的保险库挂载到路径 "%s"。请重试或选择其他路径。 +unlock.error.customPath.description.notEmptyDir=自定义挂载路径 "%s" 不是一个空文件夹。请选择一个空文件夹并重试。 +unlock.error.customPath.description.generic=您为此保险库选择了自定义挂载路径,但使用它时出现了错误信息:%2$s。 ## Hub hub.noKeychain.message=无法访问设备密钥 hub.noKeychain.description=为了解锁 Hub 保险库,需要使用由钥匙串保护的设备密钥。若要继续,请启用“%s”并在首选项中选择一个钥匙串 @@ -361,7 +363,7 @@ main.vaultlist.contextMenu.unlock=解锁… main.vaultlist.contextMenu.unlockNow=立即解锁 main.vaultlist.contextMenu.vaultoptions=显示保险库选项 main.vaultlist.contextMenu.reveal=显示驱动器 -main.vaultlist.addVaultBtn=添加保险库 +main.vaultlist.addVaultBtn=添加 ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=感谢您使用 Cryptomator 来保护您的文件。如果您需要任何帮助,请查看我们的快速开始指南: diff --git a/src/main/resources/i18n/strings_zh_HK.properties b/src/main/resources/i18n/strings_zh_HK.properties index 3d130da97..3837b7a88 100644 --- a/src/main/resources/i18n/strings_zh_HK.properties +++ b/src/main/resources/i18n/strings_zh_HK.properties @@ -23,7 +23,6 @@ error.technicalDetails=詳情: error.existingSolutionDescription=Cryptomator 沒有預料到會發生這種情況。但我們找到了一個現有的解決方案來解決這個錯誤。請查看以下連結。 error.hyperlink.solution=尋找解決方案 - # Defaults defaults.vault.vaultName=加密庫 @@ -38,9 +37,6 @@ traymenu.vault.reveal=展示 # Add Vault Wizard addvaultwizard.title=新增加密庫 -## Welcome -addvaultwizard.welcome.newButton=建立新的加密庫 -addvaultwizard.welcome.existingButton=開啟現有的加密庫 ## New ### Name addvaultwizard.new.nameInstruction=為加密庫命名 @@ -135,8 +131,10 @@ unlock.success.revealBtn=展示磁碟 unlock.error.customPath.message=無法掛載加密庫於此自定路徑 unlock.error.customPath.description.notSupported=若要繼續使用自定路徑,請在設定選取支援此自定路徑的空間/加密空間類型;或者,在加密庫選項中選擇一個受支援的掛載點。 unlock.error.customPath.description.notExists=自定路徑不存在。請在本機文件系統指定另一路徑或在加密庫選項中變更。 -unlock.error.customPath.description.inUse=磁碟代號 "%s" 已被使用。 -unlock.error.customPath.description.generic=已為加密庫設定了自定路徑,但是運作時出現錯誤:%s +unlock.error.customPath.description.inUse=磁碟代號或自訂掛載路徑「%s」已被使用。 +unlock.error.customPath.description.couldNotBeCleaned=無法將您的保險庫掛載至路徑「%s」。請再試一次或選擇不同的路徑。 +unlock.error.customPath.description.notEmptyDir=自訂掛載路徑「%s」不是一個空資料夾。請選擇一個空資料夾並重試。 +unlock.error.customPath.description.generic=您為此保險庫選擇了自訂掛載路徑,但使用時出現了錯誤訊息:%2$s ## Hub hub.noKeychain.message=無法訪問設備密鑰 hub.noKeychain.description=為了解鎖 Hub 加密檔案庫需要一個裝置密鑰,該密鑰已被安全地保管在鑰匙串中。為了繼續進行,請啟用「%s」並在偏好設定中選擇一個鑰匙串。 @@ -361,7 +359,7 @@ main.vaultlist.contextMenu.unlock=解鎖… main.vaultlist.contextMenu.unlockNow=立即解鎖 main.vaultlist.contextMenu.vaultoptions=顯示加密庫選項 main.vaultlist.contextMenu.reveal=展示磁碟 -main.vaultlist.addVaultBtn=新增加密庫 +main.vaultlist.addVaultBtn=增加 ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=感謝選用 Cryptomator 保護你的檔案。如需要任何協助,請參照我們的使用指南: diff --git a/src/main/resources/i18n/strings_zh_TW.properties b/src/main/resources/i18n/strings_zh_TW.properties index 2a7f4b7d3..0aede0ed4 100644 --- a/src/main/resources/i18n/strings_zh_TW.properties +++ b/src/main/resources/i18n/strings_zh_TW.properties @@ -23,7 +23,6 @@ error.technicalDetails=詳情: error.existingSolutionDescription=Cryptomator 沒有預料到會發生這種情況。但我們找到了一個現有的解決方案來解決這個錯誤。請查看以下連結。 error.hyperlink.solution=查詢解決方案 - # Defaults defaults.vault.vaultName=加密檔案庫 @@ -38,10 +37,8 @@ traymenu.vault.reveal=顯示 # Add Vault Wizard addvaultwizard.title=新增加密檔案庫 -## Welcome -addvaultwizard.welcome.newButton=新建加密檔案庫 -addvaultwizard.welcome.existingButton=開啟現有加密檔案庫 ## New +addvaultwizard.new.title=添加加密檔案庫 ### Name addvaultwizard.new.nameInstruction=為加密檔案庫命名 addvaultwizard.new.namePrompt=加密檔案庫名稱 @@ -91,6 +88,7 @@ addvault.new.readme.accessLocation.2=這是您加密檔案庫的存取位置。 addvault.new.readme.accessLocation.3=所有被加進這個磁區的檔案都將被 Cryptomator 加密。你可以把它當做磁碟或資料夾使用。這裡式顯示出解密後內容,您的檔案總是以被加密的狀態儲存在磁碟中。 addvault.new.readme.accessLocation.4=您可以放心移除這個檔案。 ## Existing +addvaultwizard.existing.title=添加現有的加密檔案庫 addvaultwizard.existing.instruction=請選擇現有加密檔案庫中名為「vault.cryptomator」的檔案。如果只有一個名為「masterkey.cryptomator」的檔案,則選擇該檔案。 addvaultwizard.existing.chooseBtn=選取… addvaultwizard.existing.filePickerTitle=選取加密檔案庫的檔案 @@ -135,8 +133,10 @@ unlock.success.revealBtn=顯示磁碟 unlock.error.customPath.message=無法將檔案庫掛載至自訂路徑 unlock.error.customPath.description.notSupported=如果要繼續使用自訂的掛載路徑,必須變更成支援的磁區空間類型,不然就必須使用不同的掛載路徑 unlock.error.customPath.description.notExists=自訂的掛載路徑並不存在‧ 請在本機創立該路徑,或者在加密庫選項中更改 -unlock.error.customPath.description.inUse=磁碟代號 "%s" 已被使用。 -unlock.error.customPath.description.generic=你選擇使用自訂的路徑來掛載此加密庫,但是掛載失敗,原因: %s +unlock.error.customPath.description.inUse=磁碟代號或自訂掛載路徑「%s」已被使用。 +unlock.error.customPath.description.couldNotBeCleaned=無法將您的保險庫掛載至路徑「%s」。請再試一次或選擇不同的路徑。 +unlock.error.customPath.description.notEmptyDir=自訂掛載路徑「%s」不是一個空資料夾。請選擇一個空資料夾並重試。 +unlock.error.customPath.description.generic=您為此保險庫選擇了自訂掛載路徑,但使用時出現了錯誤訊息:%2$s ## Hub hub.noKeychain.message=無法讀取裝置金鑰 hub.noKeychain.description=需要由鑰匙圈保護的裝置金鑰才能解鎖Hub加密檔案庫。請先至偏好設定中啟用「%s」並選擇一組鑰匙圈。 @@ -361,7 +361,9 @@ main.vaultlist.contextMenu.unlock=解鎖… main.vaultlist.contextMenu.unlockNow=立即解鎖 main.vaultlist.contextMenu.vaultoptions=顯示加密檔案庫選項 main.vaultlist.contextMenu.reveal=顯示磁碟 -main.vaultlist.addVaultBtn=新增加密檔案庫 +main.vaultlist.addVaultBtn=添加 +main.vaultlist.addVaultBtn.menuItemNew=開啟新的加密檔案庫... +main.vaultlist.addVaultBtn.menuItemExisting=現有的加密檔案庫... ## Vault Detail ### Welcome main.vaultDetail.welcomeOnboarding=感謝您選用 Cryptomator 保護您的檔案。如果您需要任何協助,請參照我們的使用指南: