mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-15 17:21:27 +00:00
Compare commits
53 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1fb987607c | ||
|
|
5d4066d29a | ||
|
|
d3909134d5 | ||
|
|
fd9d1bf0cf | ||
|
|
2f812377c3 | ||
|
|
ebce90eb74 | ||
|
|
c888b52ebb | ||
|
|
e422c7ce4b | ||
|
|
41ad8d5dcc | ||
|
|
526c3973d6 | ||
|
|
dc16c961af | ||
|
|
c54a603078 | ||
|
|
be59097a53 | ||
|
|
ccc4842839 | ||
|
|
d95625faa1 | ||
|
|
c5bfdf32a9 | ||
|
|
0598681a23 | ||
|
|
3b8bff0d47 | ||
|
|
55051072cb | ||
|
|
6cb409eeaf | ||
|
|
b38a350c48 | ||
|
|
0e5857015a | ||
|
|
9e9aa20692 | ||
|
|
ad49ca2cb4 | ||
|
|
ba84da71f3 | ||
|
|
5c34f59d09 | ||
|
|
7499867665 | ||
|
|
7b293b8082 | ||
|
|
46e8a13555 | ||
|
|
63a3150ec3 | ||
|
|
0a78987d30 | ||
|
|
929782c318 | ||
|
|
97a0f9c435 | ||
|
|
f7e65f4eec | ||
|
|
b3c56f3aab | ||
|
|
b5dbfd3209 | ||
|
|
78675c9638 | ||
|
|
e8126e68ce | ||
|
|
c8075dbc19 | ||
|
|
2f1b5109d6 | ||
|
|
aa34ad52e6 | ||
|
|
175ed500a2 | ||
|
|
af3779ba2e | ||
|
|
953aee560f | ||
|
|
d8b798ff0f | ||
|
|
9cc863ae79 | ||
|
|
14ba852351 | ||
|
|
9516928529 | ||
|
|
62827b69cc | ||
|
|
2378227756 | ||
|
|
2194360c8a | ||
|
|
10bce1fb06 | ||
|
|
cfa3093dd0 |
25
.github/workflows/appimage.yml
vendored
25
.github/workflows/appimage.yml
vendored
@@ -10,7 +10,7 @@ on:
|
||||
required: false
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: '23.0.1+11'
|
||||
|
||||
jobs:
|
||||
@@ -29,12 +29,12 @@ jobs:
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
appimage-suffix: x86_64
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_linux-x64_bin-jmods.zip'
|
||||
openjfx-sha: '2164bca470bf70a5e2764645e2078ba7f787b274e5be3d7df30d87c5bb62bba6'
|
||||
- os: ubuntu-24.04-arm
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip'
|
||||
openjfx-sha: 'd44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||
- os: [self-hosted, Linux, ARM64]
|
||||
appimage-suffix: aarch64
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_linux-aarch64_bin-jmods.zip'
|
||||
openjfx-sha: '09c92fa9fa0b82adefd88640a14ebb2a49e5f3f733a57d1542f5590d060ffe1b'
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip'
|
||||
openjfx-sha: '3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
@@ -98,7 +98,7 @@ jobs:
|
||||
--dest appdir
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||
--java-options "--enable-preview"
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator"
|
||||
@@ -116,7 +116,6 @@ jobs:
|
||||
--java-options "-Dcryptomator.showTrayIcon=true"
|
||||
--java-options "-Dcryptomator.integrationsLinux.trayIconsDir=\"@{appdir}/usr/share/icons/hicolor/symbolic/apps\""
|
||||
--java-options "-Dcryptomator.buildNumber=\"appimage-${{ needs.get-version.outputs.revNum }}\""
|
||||
--java-options "-Dcryptomator.networking.truststore.p12Path=\"/etc/cryptomator/certs.p12\""
|
||||
--resource-dir dist/linux/resources
|
||||
- name: Patch Cryptomator.AppDir
|
||||
run: |
|
||||
@@ -133,13 +132,13 @@ jobs:
|
||||
cp dist/linux/common/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/usr/share/applications/org.cryptomator.Cryptomator.desktop
|
||||
cp dist/linux/common/application-vnd.cryptomator.vault.xml Cryptomator.AppDir/usr/share/mime/packages/application-vnd.cryptomator.vault.xml
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/org.cryptomator.Cryptomator.svg
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/Cryptomator.svg
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/.DirIcon
|
||||
ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/org.cryptomator.Cryptomator.desktop
|
||||
ln -s org.cryptomator.Cryptomator.metainfo.xml Cryptomator.AppDir/usr/share/metainfo/org.cryptomator.Cryptomator.appdata.xml
|
||||
ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/Cryptomator.desktop
|
||||
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
|
||||
- name: Download AppImageKit
|
||||
run: |
|
||||
curl -L https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${{ matrix.appimage-suffix }}.AppImage -o appimagetool.AppImage
|
||||
curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-${{ matrix.appimage-suffix }}.AppImage -o appimagetool.AppImage
|
||||
chmod +x appimagetool.AppImage
|
||||
./appimagetool.AppImage --appimage-extract
|
||||
- name: Prepare GPG-Agent for signing with key 615D449FE6E6A235
|
||||
@@ -153,7 +152,7 @@ jobs:
|
||||
run: >
|
||||
./squashfs-root/AppRun Cryptomator.AppDir cryptomator-${{ needs.get-version.outputs.semVerStr }}-${{ matrix.appimage-suffix }}.AppImage
|
||||
-u 'gh-releases-zsync|cryptomator|cryptomator|latest|cryptomator-*-${{ matrix.appimage-suffix }}.AppImage.zsync'
|
||||
--sign --sign-key=615D449FE6E6A235
|
||||
--sign --sign-key=615D449FE6E6A235 --sign-args="--batch --pinentry-mode loopback"
|
||||
- name: Create detached GPG signatures
|
||||
run: |
|
||||
gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 615D449FE6E6A235 --detach-sign -a cryptomator-*.AppImage
|
||||
@@ -176,4 +175,4 @@ jobs:
|
||||
files: |
|
||||
cryptomator-*.AppImage
|
||||
cryptomator-*.zsync
|
||||
cryptomator-*.asc
|
||||
cryptomator-*.asc
|
||||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -6,7 +6,7 @@ on:
|
||||
types: [labeled]
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: 23
|
||||
|
||||
defaults:
|
||||
|
||||
2
.github/workflows/check-jdk-updates.yml
vendored
2
.github/workflows/check-jdk-updates.yml
vendored
@@ -7,7 +7,7 @@ on:
|
||||
|
||||
env:
|
||||
JDK_VERSION: '23.0.1+11'
|
||||
JDK_VENDOR: temurin
|
||||
JDK_VENDOR: zulu
|
||||
RUNTIME_VERSION_HELPER: >
|
||||
public class Test {
|
||||
public static void main(String[] args) {
|
||||
|
||||
10
.github/workflows/debian.yml
vendored
10
.github/workflows/debian.yml
vendored
@@ -16,14 +16,14 @@ on:
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: '23.0.1+11'
|
||||
COFFEELIBS_JDK: 23
|
||||
COFFEELIBS_JDK_VERSION: '23.0.1+11-0ppa1'
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_linux-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AMD64_HASH: '2164bca470bf70a5e2764645e2078ba7f787b274e5be3d7df30d87c5bb62bba6'
|
||||
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_linux-aarch64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AARCH64_HASH: '09c92fa9fa0b82adefd88640a14ebb2a49e5f3f733a57d1542f5590d060ffe1b'
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AMD64_HASH: 'd44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AARCH64_HASH: '3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
2
.github/workflows/get-version.yml
vendored
2
.github/workflows/get-version.yml
vendored
@@ -22,7 +22,7 @@ on:
|
||||
value: ${{ jobs.determine-version.outputs.type }}
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: 23
|
||||
|
||||
jobs:
|
||||
|
||||
8
.github/workflows/mac-dmg-x64.yml
vendored
8
.github/workflows/mac-dmg-x64.yml
vendored
@@ -14,7 +14,7 @@ on:
|
||||
types: [published]
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: '23.0.1+11'
|
||||
|
||||
jobs:
|
||||
@@ -35,8 +35,8 @@ jobs:
|
||||
architecture: x64
|
||||
output-suffix: x64
|
||||
fuse-lib: macFUSE
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_osx-x64_bin-jmods.zip'
|
||||
openjfx-sha: '8857965975c464a0e5d57709292ce357d0ebb39f6168c41d5ca38301e42c3c8e'
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_osx-x64_bin-jmods.zip'
|
||||
openjfx-sha: '115cb08bb59d880cfff6e51e0bf0dcc45785ed9d456b8b8425597b04da6ab3d4'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
@@ -100,7 +100,7 @@ jobs:
|
||||
--dest appdir
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}"
|
||||
--java-options "--enable-preview"
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.mac"
|
||||
|
||||
8
.github/workflows/mac-dmg.yml
vendored
8
.github/workflows/mac-dmg.yml
vendored
@@ -15,7 +15,7 @@ on:
|
||||
type: boolean
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: '23.0.1+11'
|
||||
|
||||
jobs:
|
||||
@@ -36,8 +36,8 @@ jobs:
|
||||
architecture: aarch64
|
||||
output-suffix: arm64
|
||||
fuse-lib: FUSE-T
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_osx-aarch64_bin-jmods.zip'
|
||||
openjfx-sha: 'a800724a1f3e6757ecfa0bd5bf7ed64d2e6a7a3f5b3522650a70b8cfc7782fb6'
|
||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_osx-aarch64_bin-jmods.zip'
|
||||
openjfx-sha: '813c6748f7c99cb7a579d48b48a087b4682b1fad1fc1a4fe5f9b21cf872b15a7'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Java
|
||||
@@ -101,7 +101,7 @@ jobs:
|
||||
--dest appdir
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}"
|
||||
--java-options "--enable-preview"
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.mac"
|
||||
|
||||
2
.github/workflows/pullrequest.yml
vendored
2
.github/workflows/pullrequest.yml
vendored
@@ -4,7 +4,7 @@ on:
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: 23
|
||||
|
||||
defaults:
|
||||
|
||||
2
.github/workflows/release-check.yml
vendored
2
.github/workflows/release-check.yml
vendored
@@ -11,7 +11,7 @@ defaults:
|
||||
shell: bash
|
||||
|
||||
env:
|
||||
JAVA_DIST: 'temurin'
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: 23
|
||||
|
||||
jobs:
|
||||
|
||||
13
.github/workflows/win-exe.yml
vendored
13
.github/workflows/win-exe.yml
vendored
@@ -17,8 +17,8 @@ on:
|
||||
env:
|
||||
JAVA_DIST: 'zulu'
|
||||
JAVA_VERSION: '23.0.1+11'
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/23.0.1/openjfx-23.0.1_windows-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AMD64_HASH: 'ee176dcee3bd78bde7910735bd67f67c792882f5b89626796ae06f7a1c0119d3'
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_windows-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AMD64_HASH: 'f9376d200f5c5b85327d575c1ec1482e6455f19916577f7e2fc9be2f48bb29b6'
|
||||
WINFSP_MSI: 'https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi'
|
||||
WINFSP_UNINSTALLER: 'https://github.com/cryptomator/winfsp-uninstaller/releases/latest/download/winfsp-uninstaller.exe'
|
||||
|
||||
@@ -89,7 +89,7 @@ jobs:
|
||||
--verbose
|
||||
--output runtime
|
||||
--module-path "jfxjmods;${JAVA_HOME}/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.crypto.mscapi,jdk.unsupported,jdk.accessibility,jdk.management.jfr,java.compiler
|
||||
--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.accessibility,jdk.management.jfr,java.compiler
|
||||
--strip-native-commands
|
||||
--no-header-files
|
||||
--no-man-pages
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
--dest appdir
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||
--java-options "--enable-preview"
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win"
|
||||
@@ -130,6 +130,7 @@ jobs:
|
||||
--java-options "-Dcryptomator.buildNumber=\"msi-${{ needs.get-version.outputs.revNum }}\""
|
||||
--java-options "-Dcryptomator.integrationsWin.autoStartShellLinkName=\"Cryptomator\""
|
||||
--java-options "-Dcryptomator.integrationsWin.keychainPaths=\"@{appdata}/Cryptomator/keychain.json;@{userhome}/AppData/Roaming/Cryptomator/keychain.json\""
|
||||
--java-options "-Dcryptomator.integrationsWin.windowsHelloKeychainPaths=\"@{appdata}/Cryptomator/windowsHelloKeychain.json;@{userhome}/AppData/Roaming/Cryptomator/windowsHelloKeychain.json\""
|
||||
--java-options "-Djavafx.verbose=${{ inputs.isDebug }}"
|
||||
--resource-dir dist/win/resources
|
||||
--icon dist/win/resources/Cryptomator.ico
|
||||
@@ -218,7 +219,7 @@ jobs:
|
||||
--dest installer
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}"
|
||||
--win-menu
|
||||
--win-dir-chooser
|
||||
@@ -304,7 +305,7 @@ jobs:
|
||||
-out dist/win/bundle/
|
||||
-dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||
-dBundleVendor="Skymatic GmbH"
|
||||
-dBundleCopyright="(C) 2016 - 2025 Skymatic GmbH"
|
||||
-dBundleCopyright="(C) 2016 - 2024 Skymatic GmbH"
|
||||
-dAboutUrl="https://cryptomator.org"
|
||||
-dHelpUrl="https://cryptomator.org/contact"
|
||||
-dUpdateUrl="https://cryptomator.org/downloads/"
|
||||
|
||||
42
.idea/compiler.xml
generated
42
.idea/compiler.xml
generated
@@ -14,16 +14,17 @@
|
||||
<option name="dagger.fastInit" value="enabled" />
|
||||
<option name="dagger.formatGeneratedSource" value="enabled" />
|
||||
<processorPath useClasspath="false">
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.55/dagger-compiler-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.55/dagger-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.52/dagger-compiler-2.52.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.52/dagger-2.52.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.55/dagger-spi-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.52/dagger-spi-2.52.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/1.9.24-1.0.20/symbol-processing-api-1.9.24-1.0.20.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.0/kotlin-stdlib-jdk8-1.9.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.9.24/kotlin-stdlib-1.9.24.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0/kotlin-stdlib-jdk7-1.9.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||
@@ -34,33 +35,6 @@
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.10/kotlin-stdlib-jdk8-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.10/kotlin-stdlib-jdk7-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.55/dagger-compiler-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.55/dagger-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jspecify/jspecify/1.0.0/jspecify-1.0.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.55/dagger-spi-2.55.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/2.0.21-1.0.28/symbol-processing-api-2.0.21-1.0.28.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/2.0.21/kotlin-stdlib-2.0.21.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.2/failureaccess-1.0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/33.0.0-jre/guava-33.0.0-jre.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/3.41.0/checker-qual-3.41.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.23.0/error_prone_annotations-2.23.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/2.8/j2objc-annotations-2.8.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.10/kotlin-stdlib-jdk8-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.10/kotlin-stdlib-jdk7-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
|
||||
@@ -71,7 +45,7 @@
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
|
||||
<module name="cryptomator" options="-Adagger.fastInit=enabled -Adagger.formatGeneratedSource=enabled" />
|
||||
<module name="cryptomator" options="-Adagger.fastInit=enabled -Adagger.formatGeneratedSource=enabled --enable-preview" />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
2
.idea/runConfigurations/Cryptomator_Windows.xml
generated
2
.idea/runConfigurations/Cryptomator_Windows.xml
generated
@@ -2,7 +2,7 @@
|
||||
<configuration default="false" name="Cryptomator Windows" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
||||
<module name="cryptomator" />
|
||||
<option name="VM_PARAMETERS" value="-Dcryptomator.settingsPath="@{appdata}/Cryptomator/settings.json;@{userhome}/AppData/Roaming/Cryptomator/settings.json" -Dcryptomator.ipcSocketPath="@{localappdata}/Cryptomator/ipc.socket" -Dcryptomator.logDir="@{localappdata}/Cryptomator" -Dcryptomator.pluginDir="@{appdata}/Cryptomator/Plugins" -Dcryptomator.integrationsWin.keychainPaths="@{appdata}/Cryptomator/keychain.json;@{userhome}/AppData/Roaming/Cryptomator/keychain.json" -Dcryptomator.p12Path="@{appdata}/Cryptomator/key.p12;@{userhome}/AppData/Roaming/Cryptomator/key.p12" -Dcryptomator.mountPointsDir="@{userhome}/Cryptomator" -Dcryptomator.showTrayIcon=true -Xss2m -Xmx512m --enable-preview --enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" />
|
||||
<option name="VM_PARAMETERS" value="-Dcryptomator.settingsPath="@{appdata}/Cryptomator/settings.json;@{userhome}/AppData/Roaming/Cryptomator/settings.json" -Dcryptomator.ipcSocketPath="@{localappdata}/Cryptomator/ipc.socket" -Dcryptomator.logDir="@{localappdata}/Cryptomator" -Dcryptomator.pluginDir="@{appdata}/Cryptomator/Plugins" -Dcryptomator.integrationsWin.keychainPaths="@{appdata}/Cryptomator/keychain.json;@{userhome}/AppData/Roaming/Cryptomator/keychain.json" -Dcryptomator.integrationsWin.windowsHelloKeychainPaths="@{appdata}/Cryptomator/windowsHelloKeychain.json;@{userhome}/AppData/Roaming/Cryptomator/windowsHelloKeychain.json" -Dcryptomator.p12Path="@{appdata}/Cryptomator/key.p12;@{userhome}/AppData/Roaming/Cryptomator/key.p12" -Dcryptomator.mountPointsDir="@{userhome}/Cryptomator" -Dcryptomator.showTrayIcon=true -Xss2m -Xmx512m --enable-preview --enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<configuration default="false" name="Cryptomator Windows Dev" type="Application" factoryName="Application">
|
||||
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
||||
<module name="cryptomator" />
|
||||
<option name="VM_PARAMETERS" value="-Dcryptomator.settingsPath="@{appdata}/Cryptomator-Dev/settings.json;@{userhome}/AppData/Roaming/Cryptomator-Dev/settings.json" -Dcryptomator.ipcSocketPath="@{localappdata}/Cryptomator-Dev/ipc.socket" -Dcryptomator.logDir="@{localappdata}/Cryptomator-Dev" -Dcryptomator.pluginDir="@{appdata}/Cryptomator-Dev/Plugins" -Dcryptomator.integrationsWin.keychainPaths="@{appdata}/Cryptomator-Dev/keychain.json;@{userhome}/AppData/Roaming/Cryptomator-Dev/keychain.json" -Dcryptomator.p12Path="@{appdata}/Cryptomator-Dev/key.p12;@{userhome}/AppData/Roaming/Cryptomator-Dev/key.p12" -Dcryptomator.mountPointsDir="@{userhome}/Cryptomator-Dev" -Dcryptomator.showTrayIcon=true -Xss2m -Xmx512m --enable-preview --enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" />
|
||||
<option name="VM_PARAMETERS" value="-Dcryptomator.settingsPath="@{appdata}/Cryptomator-Dev/settings.json;@{userhome}/AppData/Roaming/Cryptomator-Dev/settings.json" -Dcryptomator.ipcSocketPath="@{localappdata}/Cryptomator-Dev/ipc.socket" -Dcryptomator.logDir="@{localappdata}/Cryptomator-Dev" -Dcryptomator.pluginDir="@{appdata}/Cryptomator-Dev/Plugins" -Dcryptomator.integrationsWin.keychainPaths="@{appdata}/Cryptomator-Dev/keychain.json;@{userhome}/AppData/Roaming/Cryptomator-Dev/keychain.json" -Dcryptomator.integrationsWin.windowsHelloKeychainPaths="@{appdata}/Cryptomator-Dev/windowsHelloKeychain.json;@{userhome}/AppData/Roaming/Cryptomator-Dev/windowsHelloKeychain.json" -Dcryptomator.p12Path="@{appdata}/Cryptomator-Dev/key.p12;@{userhome}/AppData/Roaming/Cryptomator-Dev/key.p12" -Dcryptomator.mountPointsDir="@{userhome}/Cryptomator-Dev" -Dcryptomator.showTrayIcon=true -Xss2m -Xmx512m --enable-preview --enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
|
||||
12
README.md
12
README.md
@@ -3,7 +3,7 @@
|
||||
[](https://github.com/cryptomator/cryptomator/actions?query=workflow%3ABuild)
|
||||
[](https://snyk.io/test/github/cryptomator/cryptomator)
|
||||
[](https://sonarcloud.io/dashboard?id=cryptomator_cryptomator)
|
||||
[](https://mastodon.online/@cryptomator)
|
||||
[](http://twitter.com/Cryptomator)
|
||||
[](https://translate.cryptomator.org/)
|
||||
[](https://github.com/cryptomator/cryptomator/releases/latest)
|
||||
[](https://community.cryptomator.org)
|
||||
@@ -32,9 +32,9 @@ Become our Gold Sponsor and showcase your brand to a targeted audience! Please c
|
||||
|
||||
### Special Shoutout
|
||||
|
||||
Continuous integration hosting for ARM64 builds is provided by [MacStadium](https://www.macstadium.com/company/opensource).
|
||||
Continuous integration hosting for ARM64 builds is provided by [MacStadium](https://www.macstadium.com/opensource).
|
||||
|
||||
<a href="https://www.macstadium.com/company/opensource"><img src="https://uploads-ssl.webflow.com/5ac3c046c82724970fc60918/5c019d917bba312af7553b49_MacStadium-developerlogo.png" alt="MacStadium" height="100"></a>
|
||||
<a href="https://www.macstadium.com/opensource"><img src="https://uploads-ssl.webflow.com/5ac3c046c82724970fc60918/5c019d917bba312af7553b49_MacStadium-developerlogo.png" alt="MacStadium" height="100"></a>
|
||||
|
||||
---
|
||||
|
||||
@@ -54,7 +54,7 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator
|
||||
- File names get encrypted
|
||||
- Folder structure gets obfuscated
|
||||
- Use as many vaults in your Dropbox as you want, each having individual passwords
|
||||
- More than Five thousand commits for the security of your data!! :tada:
|
||||
- Four thousand commits for the security of your data!! :tada:
|
||||
|
||||
### Privacy
|
||||
|
||||
@@ -72,13 +72,13 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator
|
||||
|
||||
### Security Architecture
|
||||
|
||||
For more information on the security details visit [cryptomator.org](https://docs.cryptomator.org/security/architecture/).
|
||||
For more information on the security details visit [cryptomator.org](https://docs.cryptomator.org/en/latest/security/architecture/).
|
||||
|
||||
## Building
|
||||
|
||||
### Dependencies
|
||||
|
||||
* JDK 23 (e.g. temurin, zulu)
|
||||
* JDK 22 (e.g. temurin, zulu)
|
||||
* Maven 3
|
||||
|
||||
### Run Maven
|
||||
|
||||
13
dist/linux/appimage/build.sh
vendored
13
dist/linux/appimage/build.sh
vendored
@@ -25,10 +25,10 @@ cp ../../../target/cryptomator-*.jar ../../../target/mods
|
||||
|
||||
JAVAFX_VERSION=22.0.2
|
||||
JAVAFX_ARCH="x64"
|
||||
JAVAFX_JMODS_SHA256='2164bca470bf70a5e2764645e2078ba7f787b274e5be3d7df30d87c5bb62bba6'
|
||||
JAVAFX_JMODS_SHA256='d44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||
if [ "${CPU_ARCH}" = "aarch64" ]; then
|
||||
JAVAFX_ARCH="aarch64"
|
||||
JAVAFX_JMODS_SHA256='09c92fa9fa0b82adefd88640a14ebb2a49e5f3f733a57d1542f5590d060ffe1b'
|
||||
JAVAFX_JMODS_SHA256='3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||
fi
|
||||
|
||||
# download javaFX jmods
|
||||
@@ -76,7 +76,7 @@ ${JAVA_HOME}/bin/jpackage \
|
||||
--vendor "Skymatic GmbH" \
|
||||
--java-options "--enable-preview" \
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator" \
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH" \
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH" \
|
||||
--java-options "-Xss5m" \
|
||||
--java-options "-Xmx256m" \
|
||||
--app-version "${VERSION}.${REVISION_NO}" \
|
||||
@@ -91,7 +91,6 @@ ${JAVA_HOME}/bin/jpackage \
|
||||
--java-options "-Dcryptomator.showTrayIcon=true" \
|
||||
--java-options "-Dcryptomator.integrationsLinux.trayIconsDir=\"@{appdir}/usr/share/icons/hicolor/symbolic/apps\"" \
|
||||
--java-options "-Dcryptomator.buildNumber=\"appimage-${REVISION_NO}\"" \
|
||||
--java-options "-Dcryptomator.networking.truststore.p12Path=\"/etc/cryptomator/certs.p12\"" \
|
||||
--resource-dir ../resources
|
||||
|
||||
# transform AppDir
|
||||
@@ -109,13 +108,13 @@ cp ../common/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/usr/share/ap
|
||||
cp ../common/org.cryptomator.Cryptomator.metainfo.xml Cryptomator.AppDir/usr/share/metainfo/org.cryptomator.Cryptomator.metainfo.xml
|
||||
cp ../common/application-vnd.cryptomator.vault.xml Cryptomator.AppDir/usr/share/mime/packages/application-vnd.cryptomator.vault.xml
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/org.cryptomator.Cryptomator.svg
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/Cryptomator.svg
|
||||
ln -s usr/share/icons/hicolor/scalable/apps/org.cryptomator.Cryptomator.svg Cryptomator.AppDir/.DirIcon
|
||||
ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/org.cryptomator.Cryptomator.desktop
|
||||
ln -s org.cryptomator.Cryptomator.metainfo.xml Cryptomator.AppDir/usr/share/metainfo/org.cryptomator.Cryptomator.appdata.xml
|
||||
ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.AppDir/Cryptomator.desktop
|
||||
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
|
||||
|
||||
# load AppImageTool
|
||||
curl -L https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-${CPU_ARCH}.AppImage -o /tmp/appimagetool.AppImage
|
||||
curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-${CPU_ARCH}.AppImage -o /tmp/appimagetool.AppImage
|
||||
chmod +x /tmp/appimagetool.AppImage
|
||||
|
||||
# create AppImage
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Copyright 2018 Armin Schrenk <armin.schrenk@zoho.eu> -->
|
||||
<component type="desktop-application">
|
||||
<id>org.cryptomator.Cryptomator</id>
|
||||
<metadata_license>FSFAP</metadata_license>
|
||||
<project_license>GPL-3.0-or-later</project_license>
|
||||
<name>Cryptomator</name>
|
||||
<summary>Encryption for your cloud made easy</summary>
|
||||
<summary>Encryption made easy and optimized for the cloud</summary>
|
||||
|
||||
<description>
|
||||
<p>
|
||||
@@ -43,16 +44,12 @@
|
||||
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<caption>Encrypt your data, protect your privacy</caption>
|
||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlocked_light.png</image>
|
||||
<caption>Light theme</caption>
|
||||
<image>https://user-images.githubusercontent.com/11858409/156986109-6e58f59c-8b8c-4501-b33b-bb1e33007cea.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Dark theme available</caption>
|
||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlock_dark.png</image>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<caption>Uses AES-GCM 256 - an industry standardized, quantum resistant encryption</caption>
|
||||
<image>https://static.cryptomator.org/desktop/flathubScreenshots/MainWindowUnlockDialog_light.png</image>
|
||||
<caption>Dark theme</caption>
|
||||
<image>https://user-images.githubusercontent.com/11858409/156986113-6c5d7801-86e0-4643-bc2f-aff9d95d3ce0.png</image>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
|
||||
@@ -77,15 +74,6 @@
|
||||
</content_rating>
|
||||
|
||||
<releases>
|
||||
<release date="2025-04-04" version="1.15.2">
|
||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.2</url>
|
||||
</release>
|
||||
<release date="2025-02-05" version="1.15.1">
|
||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.1</url>
|
||||
</release>
|
||||
<release date="2025-02-03" version="1.15.0">
|
||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.15.0</url>
|
||||
</release>
|
||||
<release date="2024-11-19" version="1.14.2">
|
||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.14.2</url>
|
||||
</release>
|
||||
|
||||
2
dist/linux/debian/control
vendored
2
dist/linux/debian/control
vendored
@@ -2,7 +2,7 @@ Source: cryptomator
|
||||
Maintainer: Cryptobot <releases@cryptomator.org>
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Build-Depends: debhelper (>=10), coffeelibs-jdk-23 (>= 23.0.1+11-0ppa1), libgtk-3-0, libxxf86vm1, libgl1
|
||||
Build-Depends: debhelper (>=10), coffeelibs-jdk-22 (>= 22.0.1+8-0ppa1), libgtk-3-0, libxxf86vm1, libgl1
|
||||
Standards-Version: 4.5.0
|
||||
Homepage: https://cryptomator.org
|
||||
Vcs-Git: https://github.com/cryptomator/cryptomator.git
|
||||
|
||||
4
dist/linux/debian/copyright
vendored
4
dist/linux/debian/copyright
vendored
@@ -4,11 +4,11 @@ Upstream-Contact: Cryptomator <info@cryptomator.org>
|
||||
Source: https://cryptomator.org
|
||||
|
||||
Files: *
|
||||
Copyright: 2016-2025 Skymatic GmbH
|
||||
Copyright: 2016-2024 Skymatic GmbH
|
||||
License: GPL-3+
|
||||
|
||||
Files: debian/org.cryptomator.Cryptomator.appdata.xml
|
||||
Copyright: 2016-2025 Skymatic GmbH
|
||||
Copyright: 2016-2024 Skymatic GmbH
|
||||
License: FSFAP
|
||||
|
||||
License: GPL-3+
|
||||
|
||||
3
dist/linux/debian/rules
vendored
3
dist/linux/debian/rules
vendored
@@ -45,7 +45,7 @@ override_dh_auto_build:
|
||||
--vendor "Skymatic GmbH" \
|
||||
--java-options "--enable-preview" \
|
||||
--java-options "--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64,org.purejava.appindicator" \
|
||||
--copyright "(C) 2016 - 2025 Skymatic GmbH" \
|
||||
--copyright "(C) 2016 - 2024 Skymatic GmbH" \
|
||||
--java-options "-Xss5m" \
|
||||
--java-options "-Xmx256m" \
|
||||
--java-options "-Dfile.encoding=\"utf-8\"" \
|
||||
@@ -62,7 +62,6 @@ override_dh_auto_build:
|
||||
--java-options "-Dcryptomator.appVersion=\"${SEMVER_STR}\"" \
|
||||
--java-options "-Dcryptomator.disableUpdateCheck=\"${DISABLE_UPDATE_CHECK}\"" \
|
||||
--java-options "-Dcryptomator.integrationsLinux.autoStartCmd=\"cryptomator\"" \
|
||||
--java-options "-Dcryptomator.networking.truststore.p12Path=\"/etc/cryptomator/certs.p12\"" \
|
||||
--app-version "${VERSION_NUM}.${REVISION_NUM}" \
|
||||
--resource-dir resources \
|
||||
--verbose
|
||||
|
||||
8
dist/mac/dmg/build.sh
vendored
8
dist/mac/dmg/build.sh
vendored
@@ -24,7 +24,7 @@ rm -rf runtime dmg *.app *.dmg
|
||||
# set variables
|
||||
APP_NAME="Cryptomator"
|
||||
VENDOR="Skymatic GmbH"
|
||||
COPYRIGHT_YEARS="2016 - 2025"
|
||||
COPYRIGHT_YEARS="2016 - 2024"
|
||||
PACKAGE_IDENTIFIER="org.cryptomator"
|
||||
MAIN_JAR_GLOB="cryptomator-*.jar"
|
||||
MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
||||
@@ -32,15 +32,15 @@ REVISION_NO=`git rev-list --count HEAD`
|
||||
VERSION_NO=`mvn -f../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout | sed -rn 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'`
|
||||
FUSE_LIB="FUSE-T"
|
||||
|
||||
JAVAFX_VERSION=23.0.1
|
||||
JAVAFX_VERSION=22.0.2
|
||||
JAVAFX_ARCH="undefined"
|
||||
JAVAFX_JMODS_SHA256="undefined"
|
||||
if [ "$(machine)" = "arm64e" ]; then
|
||||
JAVAFX_ARCH="aarch64"
|
||||
JAVAFX_JMODS_SHA256="a800724a1f3e6757ecfa0bd5bf7ed64d2e6a7a3f5b3522650a70b8cfc7782fb6"
|
||||
JAVAFX_JMODS_SHA256="813c6748f7c99cb7a579d48b48a087b4682b1fad1fc1a4fe5f9b21cf872b15a7"
|
||||
else
|
||||
JAVAFX_ARCH="x64"
|
||||
JAVAFX_JMODS_SHA256="8857965975c464a0e5d57709292ce357d0ebb39f6168c41d5ca38301e42c3c8e"
|
||||
JAVAFX_JMODS_SHA256="115cb08bb59d880cfff6e51e0bf0dcc45785ed9d456b8b8425597b04da6ab3d4"
|
||||
fi
|
||||
JAVAFX_JMODS_URL="https://download2.gluonhq.com/openjfx/${JAVAFX_VERSION}/openjfx-${JAVAFX_VERSION}_osx-${JAVAFX_ARCH}_bin-jmods.zip"
|
||||
|
||||
|
||||
2
dist/mac/dmg/resources/licenseTemplate.ftl
vendored
2
dist/mac/dmg/resources/licenseTemplate.ftl
vendored
@@ -17,7 +17,7 @@
|
||||
\f1\b0 \
|
||||
\
|
||||
|
||||
\f0\b \'a9 2016 \'96 2025 Skymatic GmbH
|
||||
\f0\b \'a9 2016 \'96 2024 Skymatic GmbH
|
||||
\f1\b0 \
|
||||
\
|
||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\
|
||||
|
||||
2
dist/win/build.bat
vendored
2
dist/win/build.bat
vendored
@@ -11,7 +11,7 @@ SET HELP_URL="https://cryptomator.org/contact/"
|
||||
SET MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
||||
SET LOOPBACK_ALIAS="cryptomator-vault"
|
||||
|
||||
pwsh -NoLogo -NoProfile -ExecutionPolicy Unrestricted -Command .\build.ps1^
|
||||
powershell -NoLogo -NoProfile -ExecutionPolicy Unrestricted -Command .\build.ps1^
|
||||
-AppName %APPNAME%^
|
||||
-MainJarGlob "%MAIN_JAR_GLOB%"^
|
||||
-ModuleAndMainClass "%MODULE_AND_MAIN_CLASS%"^
|
||||
|
||||
10
dist/win/build.ps1
vendored
10
dist/win/build.ps1
vendored
@@ -51,23 +51,23 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) {
|
||||
}
|
||||
|
||||
## download jfx jmods
|
||||
$javaFxVersion='23.0.1'
|
||||
$javaFxVersion='22.0.2'
|
||||
$javaFxJmodsUrl = "https://download2.gluonhq.com/openjfx/${javaFxVersion}/openjfx-${javaFxVersion}_windows-x64_bin-jmods.zip"
|
||||
$javaFxJmodsSHA256 = 'ee176dcee3bd78bde7910735bd67f67c792882f5b89626796ae06f7a1c0119d3'
|
||||
$javaFxJmodsSHA256 = 'f9376d200f5c5b85327d575c1ec1482e6455f19916577f7e2fc9be2f48bb29b6'
|
||||
$javaFxJmods = '.\resources\jfxJmods.zip'
|
||||
if( !(Test-Path -Path $javaFxJmods) ) {
|
||||
Write-Output "Downloading ${javaFxJmodsUrl}..."
|
||||
Invoke-WebRequest $javaFxJmodsUrl -OutFile $javaFxJmods # redirects are followed by default
|
||||
}
|
||||
|
||||
$jmodsChecksumActual = $(Get-FileHash -Path $javaFxJmods -Algorithm SHA256).Hash.ToLower()
|
||||
$jmodsChecksumActual = $(Get-FileHash -Path $javaFxJmods -Algorithm SHA256).Hash
|
||||
if( $jmodsChecksumActual -ne $javaFxJmodsSHA256 ) {
|
||||
Write-Error "Checksum mismatch for jfxJmods.zip. Expected: $javaFxJmodsSHA256
|
||||
, actual: $jmodsChecksumActual"
|
||||
exit 1;
|
||||
}
|
||||
Expand-Archive -Path $javaFxJmods -Force -DestinationPath ".\resources\"
|
||||
Remove-Item -Recurse -Force -Path ".\resources\javafx-jmods" -ErrorAction Ignore
|
||||
Remove-Item -Recurse -Force -Path ".\resources\javafx-jmods"
|
||||
Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop
|
||||
|
||||
## create custom runtime
|
||||
@@ -75,7 +75,7 @@ Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\ja
|
||||
--verbose `
|
||||
--output runtime `
|
||||
--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.accessibility,jdk.management.jfr,jdk.crypto.mscapi,java.compiler,javafx.base,javafx.graphics,javafx.controls,javafx.fxml `
|
||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.accessibility,jdk.management.jfr,java.compiler,javafx.base,javafx.graphics,javafx.controls,javafx.fxml `
|
||||
--strip-native-commands `
|
||||
--no-header-files `
|
||||
--no-man-pages `
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
\vieww12000\viewh15840\viewkind0
|
||||
\pard\tx283\tx567\tx850\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\b\fs16\lang7 Cryptomator is distributed under the GPLv3 License, found below. Please see the bottom of this document for any other license applicable to code used within Cryptomator.\b0\par
|
||||
\par
|
||||
\b\'a9 2016 \'96 2025 Skymatic GmbH \b0\par
|
||||
\b\'a9 2016 \'96 2024 Skymatic GmbH \b0\par
|
||||
\par
|
||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\par
|
||||
\par
|
||||
|
||||
BIN
dist/win/contrib/dokan1.dll
vendored
Executable file
BIN
dist/win/contrib/dokan1.dll
vendored
Executable file
Binary file not shown.
2
dist/win/resources/licenseTemplate.ftl
vendored
2
dist/win/resources/licenseTemplate.ftl
vendored
@@ -10,7 +10,7 @@
|
||||
\vieww12000\viewh15840\viewkind0
|
||||
\pard\tx283\tx567\tx850\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\b\fs16\lang7 Cryptomator is distributed under the GPLv3 License, found below. Please see the bottom of this document for any other license applicable to code used within Cryptomator.\b0\par
|
||||
\par
|
||||
\b\'a9 2016 \'96 2025 Skymatic GmbH \b0\par
|
||||
\b\'a9 2016 \'96 2024 Skymatic GmbH \b0\par
|
||||
\par
|
||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\par
|
||||
\par
|
||||
|
||||
61
pom.xml
61
pom.xml
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>cryptomator</artifactId>
|
||||
<version>1.15.2</version>
|
||||
<version>1.15.0-SNAPSHOT</version>
|
||||
<name>Cryptomator Desktop App</name>
|
||||
|
||||
<organization>
|
||||
@@ -33,59 +33,45 @@
|
||||
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents</nonModularGroupIds>
|
||||
|
||||
<!-- cryptomator dependencies -->
|
||||
<cryptomator.cryptofs.version>2.8.0</cryptomator.cryptofs.version>
|
||||
<cryptomator.integrations.version>1.5.0</cryptomator.integrations.version>
|
||||
<cryptomator.integrations.win.version>1.3.0</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.5.2</cryptomator.integrations.linux.version>
|
||||
<cryptomator.cryptofs.version>2.7.1</cryptomator.cryptofs.version>
|
||||
<cryptomator.integrations.version>1.4.0</cryptomator.integrations.version>
|
||||
<cryptomator.integrations.win.version>1.4.1</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.mac.version>1.3.0</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.5.1</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
||||
<cryptomator.webdav.version>2.0.10</cryptomator.webdav.version>
|
||||
<cryptomator.webdav.version>2.0.7</cryptomator.webdav.version>
|
||||
|
||||
<!-- 3rd party dependencies -->
|
||||
<commons-lang3.version>3.17.0</commons-lang3.version>
|
||||
<dagger.version>2.55</dagger.version>
|
||||
<dagger.version>2.52</dagger.version>
|
||||
<easybind.version>2.2</easybind.version>
|
||||
<jackson.version>2.18.2</jackson.version>
|
||||
<javafx.version>23.0.1</javafx.version>
|
||||
<jackson.version>2.18.1</jackson.version>
|
||||
<javafx.version>22.0.2</javafx.version>
|
||||
<jwt.version>4.4.0</jwt.version>
|
||||
<nimbus-jose.version>9.37.3</nimbus-jose.version>
|
||||
<logback.version>1.5.16</logback.version>
|
||||
<logback.version>1.5.12</logback.version>
|
||||
<slf4j.version>2.0.16</slf4j.version>
|
||||
<tinyoauth2.version>0.8.0</tinyoauth2.version>
|
||||
<zxcvbn.version>1.9.0</zxcvbn.version>
|
||||
|
||||
<!-- test dependencies -->
|
||||
<junit.jupiter.version>5.11.4</junit.jupiter.version>
|
||||
<mockito.version>5.15.2</mockito.version>
|
||||
<junit.jupiter.version>5.11.3</junit.jupiter.version>
|
||||
<mockito.version>5.14.2</mockito.version>
|
||||
<hamcrest.version>3.0</hamcrest.version>
|
||||
|
||||
<!-- build-time dependencies -->
|
||||
<jetbrains.annotations.version>26.0.1</jetbrains.annotations.version>
|
||||
<dependency-check.version>12.0.1</dependency-check.version>
|
||||
<dependency-check.version>11.1.0</dependency-check.version>
|
||||
<jacoco.version>0.8.12</jacoco.version>
|
||||
<license-generator.version>2.5.0</license-generator.version>
|
||||
<junit-tree-reporter.version>1.4.0</junit-tree-reporter.version>
|
||||
<license-generator.version>2.4.0</license-generator.version>
|
||||
<junit-tree-reporter.version>1.3.0</junit-tree-reporter.version>
|
||||
<mvn-compiler.version>3.13.0</mvn-compiler.version>
|
||||
<mvn-resources.version>3.3.1</mvn-resources.version>
|
||||
<mvn-dependency.version>3.8.1</mvn-dependency.version>
|
||||
<mvn-surefire.version>3.5.2</mvn-surefire.version>
|
||||
<mvn-jar.version>3.4.2</mvn-jar.version>
|
||||
|
||||
<!-- Property used by surefire to determine jacoco engine -->
|
||||
<surefire.jacoco.args></surefire.jacoco.args>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- TODO: remove once fuse-nio-adapter is updated -->
|
||||
<dependency>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>jfuse</artifactId>
|
||||
<version>0.7.2</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<!-- Cryptomator Libs -->
|
||||
<dependency>
|
||||
@@ -219,7 +205,7 @@
|
||||
<dependency>
|
||||
<groupId>com.github.ben-manes.caffeine</groupId>
|
||||
<artifactId>caffeine</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<version>3.1.8</version>
|
||||
</dependency>
|
||||
<!-- JUnit / Mockito / Hamcrest -->
|
||||
<dependency>
|
||||
@@ -322,6 +308,7 @@
|
||||
<compilerArgs>
|
||||
<arg>-Adagger.fastInit=enabled</arg>
|
||||
<arg>-Adagger.formatGeneratedSource=enabled</arg>
|
||||
<arg>--enable-preview</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
@@ -348,11 +335,11 @@
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<argLine>--enable-preview</argLine>
|
||||
<reportFormat>plain</reportFormat>
|
||||
<consoleOutputReporter>
|
||||
<disable>true</disable>
|
||||
</consoleOutputReporter>
|
||||
<argLine>@{surefire.jacoco.args} -javaagent:${org.mockito:mockito-core:jar}</argLine>
|
||||
<statelessTestsetInfoReporter
|
||||
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
|
||||
</statelessTestsetInfoReporter>
|
||||
@@ -362,13 +349,6 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>jar-paths-to-properties</id>
|
||||
<phase>validate</phase>
|
||||
<goals>
|
||||
<goal>properties</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<!-- sort jars into two buckets (classpath and modulepath). exclude openjfx, which gets jlinked separately -->
|
||||
<execution>
|
||||
<id>copy-mods</id>
|
||||
@@ -441,9 +421,6 @@
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<propertyName>surefire.jacoco.args</propertyName>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>report</id>
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import ch.qos.logback.classic.spi.Configurator;
|
||||
import org.cryptomator.networking.SSLContextWithPKCS12TrustStore;
|
||||
import org.cryptomator.common.locationpresets.DropboxLinuxLocationPresetsProvider;
|
||||
import org.cryptomator.common.locationpresets.DropboxMacLocationPresetsProvider;
|
||||
import org.cryptomator.common.locationpresets.DropboxWindowsLocationPresetsProvider;
|
||||
@@ -14,9 +13,6 @@ import org.cryptomator.common.locationpresets.OneDriveLinuxLocationPresetsProvid
|
||||
import org.cryptomator.common.locationpresets.OneDriveMacLocationPresetsProvider;
|
||||
import org.cryptomator.common.locationpresets.OneDriveWindowsLocationPresetsProvider;
|
||||
import org.cryptomator.common.locationpresets.PCloudLocationPresetsProvider;
|
||||
import org.cryptomator.networking.SSLContextWithMacKeychain;
|
||||
import org.cryptomator.networking.SSLContextProvider;
|
||||
import org.cryptomator.networking.SSLContextWithWindowsCertStore;
|
||||
import org.cryptomator.integrations.tray.TrayMenuController;
|
||||
import org.cryptomator.logging.LogbackConfiguratorFactory;
|
||||
import org.cryptomator.ui.traymenu.AwtTrayMenuController;
|
||||
@@ -58,11 +54,9 @@ open module org.cryptomator.desktop {
|
||||
requires com.github.benmanes.caffeine;
|
||||
|
||||
uses org.cryptomator.common.locationpresets.LocationPresetsProvider;
|
||||
uses SSLContextProvider;
|
||||
|
||||
provides TrayMenuController with AwtTrayMenuController;
|
||||
provides Configurator with LogbackConfiguratorFactory;
|
||||
provides SSLContextProvider with SSLContextWithWindowsCertStore, SSLContextWithMacKeychain, SSLContextWithPKCS12TrustStore;
|
||||
provides LocationPresetsProvider with //
|
||||
DropboxWindowsLocationPresetsProvider, DropboxMacLocationPresetsProvider, DropboxLinuxLocationPresetsProvider, //
|
||||
GoogleDriveMacLocationPresetsProvider, GoogleDriveWindowsLocationPresetsProvider, //
|
||||
|
||||
20
src/main/java/org/cryptomator/JavaFXUtil.java
Normal file
20
src/main/java/org/cryptomator/JavaFXUtil.java
Normal file
@@ -0,0 +1,20 @@
|
||||
package org.cryptomator;
|
||||
|
||||
import javafx.application.Platform;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class JavaFXUtil {
|
||||
|
||||
public static boolean startPlatform() throws InterruptedException {
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
try {
|
||||
Platform.startup(latch::countDown);
|
||||
} catch (IllegalStateException e) {
|
||||
//already initialized
|
||||
latch.countDown();
|
||||
}
|
||||
return latch.await(5, TimeUnit.SECONDS);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -23,6 +23,7 @@ public class Environment {
|
||||
private static final String SETTINGS_PATH_PROP_NAME = "cryptomator.settingsPath";
|
||||
private static final String IPC_SOCKET_PATH_PROP_NAME = "cryptomator.ipcSocketPath";
|
||||
private static final String KEYCHAIN_PATHS_PROP_NAME = "cryptomator.integrationsWin.keychainPaths";
|
||||
private static final String WINDOWS_HELLO_KEYCHAIN_PATHS_PROP_NAME = "cryptomator.integrationsWin.windowsHelloKeychainPaths";
|
||||
private static final String P12_PATH_PROP_NAME = "cryptomator.p12Path";
|
||||
private static final String LOG_DIR_PROP_NAME = "cryptomator.logDir";
|
||||
private static final String LOOPBACK_ALIAS_PROP_NAME = "cryptomator.loopbackAlias";
|
||||
@@ -45,6 +46,7 @@ public class Environment {
|
||||
logCryptomatorSystemProperty(SETTINGS_PATH_PROP_NAME);
|
||||
logCryptomatorSystemProperty(IPC_SOCKET_PATH_PROP_NAME);
|
||||
logCryptomatorSystemProperty(KEYCHAIN_PATHS_PROP_NAME);
|
||||
logCryptomatorSystemProperty(WINDOWS_HELLO_KEYCHAIN_PATHS_PROP_NAME);
|
||||
logCryptomatorSystemProperty(P12_PATH_PROP_NAME);
|
||||
logCryptomatorSystemProperty(LOG_DIR_PROP_NAME);
|
||||
logCryptomatorSystemProperty(LOOPBACK_ALIAS_PROP_NAME);
|
||||
@@ -85,6 +87,10 @@ public class Environment {
|
||||
return getPaths(KEYCHAIN_PATHS_PROP_NAME);
|
||||
}
|
||||
|
||||
public Stream<Path> getWindowsHelloKeychainPath() {
|
||||
return getPaths(WINDOWS_HELLO_KEYCHAIN_PATHS_PROP_NAME);
|
||||
}
|
||||
|
||||
public Stream<Path> getP12Path() {
|
||||
return getPaths(P12_PATH_PROP_NAME);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class KeychainManager implements KeychainAccessProvider {
|
||||
KeychainManager(ObjectExpression<KeychainAccessProvider> selectedKeychain) {
|
||||
this.keychain = selectedKeychain;
|
||||
this.passphraseStoredProperties = Caffeine.newBuilder() //
|
||||
.weakValues() //
|
||||
.softValues() //
|
||||
.build(this::createStoredPassphraseProperty);
|
||||
keychain.addListener(ignored -> passphraseStoredProperties.invalidateAll());
|
||||
}
|
||||
@@ -43,8 +43,13 @@ public class KeychainManager implements KeychainAccessProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean ignored) throws KeychainAccessException {
|
||||
getKeychainOrFail().storePassphrase(key, displayName, passphrase);
|
||||
public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
|
||||
storePassphrase(key, displayName, passphrase, true); //TODO: currently only TouchID is using this parameter, so this is okayish
|
||||
}
|
||||
|
||||
@Override
|
||||
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean requireOsAuthentication) throws KeychainAccessException {
|
||||
getKeychainOrFail().storePassphrase(key, displayName, passphrase, requireOsAuthentication);
|
||||
setPassphraseStored(key, true);
|
||||
}
|
||||
|
||||
@@ -101,13 +106,11 @@ public class KeychainManager implements KeychainAccessProvider {
|
||||
}
|
||||
|
||||
private void setPassphraseStored(String key, boolean value) {
|
||||
BooleanProperty property = passphraseStoredProperties.getIfPresent(key);
|
||||
if (property != null) {
|
||||
if (Platform.isFxApplicationThread()) {
|
||||
property.set(value);
|
||||
} else {
|
||||
Platform.runLater(() -> property.set(value));
|
||||
}
|
||||
BooleanProperty property = passphraseStoredProperties.get(key, _ -> new SimpleBooleanProperty(value));
|
||||
if (Platform.isFxApplicationThread()) {
|
||||
property.set(value);
|
||||
} else {
|
||||
Platform.runLater(() -> property.set(value));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,4 +137,8 @@ public class KeychainManager implements KeychainAccessProvider {
|
||||
}
|
||||
}
|
||||
|
||||
public ObjectExpression<KeychainAccessProvider> getKeychainImplementation() {
|
||||
return this.keychain;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,7 +44,6 @@ import javafx.beans.property.SimpleBooleanProperty;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.ReadOnlyFileSystemException;
|
||||
import java.util.EnumSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
@@ -112,22 +111,15 @@ public class Vault {
|
||||
|
||||
private CryptoFileSystem createCryptoFileSystem(MasterkeyLoader keyLoader) throws IOException, MasterkeyLoadingFailedException {
|
||||
Set<FileSystemFlags> flags = EnumSet.noneOf(FileSystemFlags.class);
|
||||
var createReadOnly = vaultSettings.usesReadOnlyMode.get();
|
||||
try {
|
||||
FileSystemCapabilityChecker.assertWriteAccess(getPath());
|
||||
} catch (FileSystemCapabilityChecker.MissingCapabilityException e) {
|
||||
if (!createReadOnly) {
|
||||
throw new ReadOnlyFileSystemException();
|
||||
}
|
||||
}
|
||||
if (createReadOnly) {
|
||||
if (vaultSettings.usesReadOnlyMode.get()) {
|
||||
flags.add(FileSystemFlags.READONLY);
|
||||
} else if (vaultSettings.maxCleartextFilenameLength.get() == -1) {
|
||||
LOG.debug("Determining cleartext filename length limitations...");
|
||||
var checker = new FileSystemCapabilityChecker();
|
||||
int shorteningThreshold = configCache.get().allegedShorteningThreshold();
|
||||
int ciphertextLimit = FileSystemCapabilityChecker.determineSupportedCiphertextFileNameLength(getPath());
|
||||
int ciphertextLimit = checker.determineSupportedCiphertextFileNameLength(getPath());
|
||||
if (ciphertextLimit < shorteningThreshold) {
|
||||
int cleartextLimit = FileSystemCapabilityChecker.determineSupportedCleartextFileNameLength(getPath());
|
||||
int cleartextLimit = checker.determineSupportedCleartextFileNameLength(getPath());
|
||||
vaultSettings.maxCleartextFilenameLength.set(cleartextLimit);
|
||||
} else {
|
||||
vaultSettings.maxCleartextFilenameLength.setValue(UNLIMITED_FILENAME_LENGTH);
|
||||
|
||||
@@ -9,9 +9,8 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
import dagger.Lazy;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.Environment;
|
||||
import org.cryptomator.common.ShutdownHook;
|
||||
import org.cryptomator.common.SubstitutingProperties;
|
||||
import org.cryptomator.networking.SSLContextProvider;
|
||||
import org.cryptomator.common.ShutdownHook;
|
||||
import org.cryptomator.ipc.IpcCommunicator;
|
||||
import org.cryptomator.logging.DebugMode;
|
||||
import org.cryptomator.ui.fxapp.FxApplicationComponent;
|
||||
@@ -20,10 +19,8 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javafx.application.Application;
|
||||
import javafx.stage.Stage;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@@ -51,16 +48,14 @@ public class Cryptomator {
|
||||
private final Environment env;
|
||||
private final Lazy<IpcMessageHandler> ipcMessageHandler;
|
||||
private final ShutdownHook shutdownHook;
|
||||
private final SecureRandom csprng;
|
||||
|
||||
@Inject
|
||||
Cryptomator(DebugMode debugMode, SupportedLanguages supportedLanguages, Environment env, Lazy<IpcMessageHandler> ipcMessageHandler, ShutdownHook shutdownHook, SecureRandom csprng) {
|
||||
Cryptomator(DebugMode debugMode, SupportedLanguages supportedLanguages, Environment env, Lazy<IpcMessageHandler> ipcMessageHandler, ShutdownHook shutdownHook) {
|
||||
this.debugMode = debugMode;
|
||||
this.supportedLanguages = supportedLanguages;
|
||||
this.env = env;
|
||||
this.ipcMessageHandler = ipcMessageHandler;
|
||||
this.shutdownHook = shutdownHook;
|
||||
this.csprng = csprng;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
@@ -94,7 +89,7 @@ public class Cryptomator {
|
||||
LOG.info("Starting Cryptomator {} on {} {} ({})", env.getAppVersion(), SystemUtils.OS_NAME, SystemUtils.OS_VERSION, SystemUtils.OS_ARCH);
|
||||
debugMode.initialize();
|
||||
supportedLanguages.applyPreferred();
|
||||
changeDefaultSSLContext();
|
||||
|
||||
/*
|
||||
* Attempts to create an IPC connection to a running Cryptomator instance and sends it the given args.
|
||||
* If no external process could be reached, the args will be handled by the loopback IPC endpoint.
|
||||
@@ -120,17 +115,6 @@ public class Cryptomator {
|
||||
}
|
||||
}
|
||||
|
||||
private void changeDefaultSSLContext() {
|
||||
SSLContextProvider.loadAll().findFirst().ifPresent(p -> {
|
||||
try {
|
||||
var context = p.getContext(csprng);
|
||||
SSLContext.setDefault(context);
|
||||
} catch (SSLContextProvider.SSLContextBuildException e) {
|
||||
LOG.warn("Failed to change default SSL context with provider {}", p.getClass().getName(), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Launches the JavaFX application, blocking the main thread until shuts down.
|
||||
*
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
package org.cryptomator.networking;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.TrustManagerFactory;
|
||||
import java.io.IOException;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.cert.CertificateException;
|
||||
|
||||
abstract class SSLContextDifferentTrustStoreBase implements SSLContextProvider {
|
||||
|
||||
abstract KeyStore getTruststore() throws KeyStoreException, CertificateException, IOException, NoSuchAlgorithmException;
|
||||
|
||||
@Override
|
||||
public SSLContext getContext(SecureRandom csprng) throws SSLContextBuildException {
|
||||
try {
|
||||
KeyStore truststore = getTruststore();
|
||||
truststore.load(null, null);
|
||||
|
||||
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
|
||||
tmf.init(truststore);
|
||||
|
||||
SSLContext context = SSLContext.getInstance("TLS");
|
||||
context.init(null, tmf.getTrustManagers(), csprng);
|
||||
return context;
|
||||
} catch (KeyStoreException | CertificateException | NoSuchAlgorithmException | KeyManagementException | IOException e) {
|
||||
throw new SSLContextBuildException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package org.cryptomator.networking;
|
||||
|
||||
import org.cryptomator.integrations.common.IntegrationsLoader;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.ServiceLoader;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public interface SSLContextProvider {
|
||||
|
||||
SSLContext getContext(SecureRandom csprng) throws SSLContextBuildException;
|
||||
|
||||
class SSLContextBuildException extends Exception {
|
||||
|
||||
SSLContextBuildException(Throwable t) {
|
||||
super(t);
|
||||
}
|
||||
}
|
||||
|
||||
static Stream<SSLContextProvider> loadAll() {
|
||||
return IntegrationsLoader.loadAll(ServiceLoader.load(SSLContextProvider.class), SSLContextProvider.class);
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package org.cryptomator.networking;
|
||||
|
||||
import org.cryptomator.integrations.common.OperatingSystem;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.cert.CertificateException;
|
||||
|
||||
/**
|
||||
* SSLContextProvider for macOS using the macOS Keychain as truststore
|
||||
*/
|
||||
@OperatingSystem(OperatingSystem.Value.MAC)
|
||||
public class SSLContextWithMacKeychain extends SSLContextDifferentTrustStoreBase implements SSLContextProvider {
|
||||
|
||||
@Override
|
||||
KeyStore getTruststore() throws KeyStoreException, CertificateException, IOException, NoSuchAlgorithmException {
|
||||
return KeyStore.getInstance("KeychainStore-ROOT");
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
package org.cryptomator.networking;
|
||||
|
||||
import org.cryptomator.integrations.common.CheckAvailability;
|
||||
import org.cryptomator.integrations.common.OperatingSystem;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.NoSuchFileException;
|
||||
import java.nio.file.Path;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.cert.CertificateException;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* SSLContextProvider for Linux using a PKCS#12 file as trust store
|
||||
*/
|
||||
@OperatingSystem(OperatingSystem.Value.LINUX)
|
||||
@CheckAvailability
|
||||
public class SSLContextWithPKCS12TrustStore extends SSLContextDifferentTrustStoreBase implements SSLContextProvider {
|
||||
|
||||
private static final String CERT_FILE_LOCATION_PROPERTY = "cryptomator.networking.truststore.p12Path";
|
||||
|
||||
@Override
|
||||
KeyStore getTruststore() throws KeyStoreException, CertificateException, IOException, NoSuchAlgorithmException {
|
||||
var pkcs12FilePath = Path.of(System.getProperty(CERT_FILE_LOCATION_PROPERTY));
|
||||
try {
|
||||
return KeyStore.getInstance(pkcs12FilePath.toFile(), new char[]{});
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new NoSuchFileException(pkcs12FilePath.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@CheckAvailability
|
||||
public static boolean isSupported() {
|
||||
var pkcs12Path = System.getProperty(CERT_FILE_LOCATION_PROPERTY);
|
||||
return Optional.ofNullable(pkcs12Path) //
|
||||
.map(Path::of) //
|
||||
.map(Files::exists).orElse(false);
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package org.cryptomator.networking;
|
||||
|
||||
import org.cryptomator.integrations.common.OperatingSystem;
|
||||
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
|
||||
/**
|
||||
* SSLContextProvider for Windows using the Windows certificate store as trust store
|
||||
* <p>
|
||||
* In order to work, the jdk.crypto.mscapi jmod is needed
|
||||
*/
|
||||
@OperatingSystem(OperatingSystem.Value.WINDOWS)
|
||||
public class SSLContextWithWindowsCertStore extends SSLContextDifferentTrustStoreBase implements SSLContextProvider {
|
||||
|
||||
@Override
|
||||
KeyStore getTruststore() throws KeyStoreException {
|
||||
return KeyStore.getInstance("WINDOWS-ROOT");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,7 +26,7 @@ public class CreateNewVaultExpertSettingsController implements FxController {
|
||||
|
||||
public static final int MAX_SHORTENING_THRESHOLD = 220;
|
||||
public static final int MIN_SHORTENING_THRESHOLD = 36;
|
||||
private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/security/architecture/#name-shortening";
|
||||
private static final String DOCS_NAME_SHORTENING_URL = "https://docs.cryptomator.org/en/1.7/security/architecture/#name-shortening";
|
||||
|
||||
private final Stage window;
|
||||
private final Lazy<Application> application;
|
||||
|
||||
@@ -40,6 +40,7 @@ import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardOpenOption;
|
||||
import java.util.Optional;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
@@ -49,7 +50,7 @@ public class CreateNewVaultLocationController implements FxController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(CreateNewVaultLocationController.class);
|
||||
private static final Path DEFAULT_CUSTOM_VAULT_PATH = Paths.get(System.getProperty("user.home"));
|
||||
private static final String TEMP_FILE_PREFIX = ".locationTest.cryptomator";
|
||||
private static final String TEMP_FILE_FORMAT = ".locationTest.cryptomator.tmp";
|
||||
|
||||
private final Stage window;
|
||||
private final Lazy<Scene> chooseNameScene;
|
||||
@@ -125,19 +126,16 @@ public class CreateNewVaultLocationController implements FxController {
|
||||
|
||||
|
||||
private boolean isActuallyWritable(Path p) {
|
||||
Path tmpDir = null;
|
||||
try {
|
||||
tmpDir = Files.createTempDirectory(p, TEMP_FILE_PREFIX );
|
||||
Path tmpFile = p.resolve(TEMP_FILE_FORMAT);
|
||||
try (var chan = Files.newByteChannel(tmpFile, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE, StandardOpenOption.DELETE_ON_CLOSE)) {
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
} finally {
|
||||
if (tmpDir != null) {
|
||||
try {
|
||||
Files.deleteIfExists(tmpDir);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to delete temporary directory {}. Needs to be deleted manually.", tmpDir);
|
||||
}
|
||||
try {
|
||||
Files.deleteIfExists(tmpFile);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to delete temporary file {}. Needs to be deleted manually.", tmpFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,34 +2,31 @@ package org.cryptomator.ui.dialogs;
|
||||
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.ui.common.StageFactory;
|
||||
import org.cryptomator.ui.controls.FontAwesome5Icon;
|
||||
import org.cryptomator.ui.fxapp.FxApplicationScoped;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.stage.Stage;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
@FxApplicationScoped
|
||||
@Singleton
|
||||
public class Dialogs {
|
||||
|
||||
private final ResourceBundle resourceBundle;
|
||||
private final StageFactory stageFactory;
|
||||
|
||||
@Inject
|
||||
public Dialogs(ResourceBundle resourceBundle, StageFactory stageFactory) {
|
||||
public Dialogs(ResourceBundle resourceBundle) {
|
||||
this.resourceBundle = resourceBundle;
|
||||
this.stageFactory = stageFactory;
|
||||
}
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Dialogs.class);
|
||||
|
||||
private SimpleDialog.Builder createDialogBuilder() {
|
||||
return new SimpleDialog.Builder(resourceBundle, stageFactory);
|
||||
return new SimpleDialog.Builder(resourceBundle);
|
||||
}
|
||||
|
||||
public SimpleDialog.Builder prepareRemoveVaultDialog(Stage window, Vault vault, ObservableList<Vault> vaults) {
|
||||
@@ -68,23 +65,11 @@ public class Dialogs {
|
||||
.setTitleKey("dokanySupportEnd.title") //
|
||||
.setMessageKey("dokanySupportEnd.message") //
|
||||
.setDescriptionKey("dokanySupportEnd.description") //
|
||||
.setIcon(FontAwesome5Icon.EXCLAMATION) //
|
||||
.setIcon(FontAwesome5Icon.QUESTION) //
|
||||
.setOkButtonKey("generic.button.close") //
|
||||
.setCancelButtonKey("dokanySupportEnd.preferencesBtn") //
|
||||
.setOkAction(Stage::close) //
|
||||
.setCancelAction(cancelAction);
|
||||
}
|
||||
|
||||
public SimpleDialog.Builder prepareRetryIfReadonlyDialog(Stage window, Consumer<Stage> okAction) {
|
||||
return createDialogBuilder() //
|
||||
.setOwner(window) //
|
||||
.setTitleKey("retryIfReadonly.title") //
|
||||
.setMessageKey("retryIfReadonly.message") //
|
||||
.setDescriptionKey("retryIfReadonly.description") //
|
||||
.setIcon(FontAwesome5Icon.EXCLAMATION) //
|
||||
.setOkButtonKey("retryIfReadonly.retry") //
|
||||
.setCancelButtonKey("generic.button.close") //
|
||||
.setOkAction(okAction) //
|
||||
.setCancelAction(Stage::close);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package org.cryptomator.ui.dialogs;
|
||||
|
||||
import org.cryptomator.ui.common.FxmlFile;
|
||||
import org.cryptomator.ui.common.FxmlLoaderFactory;
|
||||
import org.cryptomator.ui.common.StageFactory;
|
||||
import org.cryptomator.ui.controls.FontAwesome5Icon;
|
||||
|
||||
import javafx.scene.Scene;
|
||||
@@ -18,23 +17,24 @@ import java.util.function.Consumer;
|
||||
public class SimpleDialog {
|
||||
|
||||
private final ResourceBundle resourceBundle;
|
||||
|
||||
private final Stage dialogStage;
|
||||
|
||||
SimpleDialog(Builder builder) throws IOException {
|
||||
this.resourceBundle = builder.resourceBundle;
|
||||
dialogStage = builder.stageFactory.create();
|
||||
dialogStage = new Stage();
|
||||
dialogStage.initOwner(builder.owner);
|
||||
dialogStage.initModality(Modality.WINDOW_MODAL);
|
||||
dialogStage.setTitle(resolveText(builder.titleKey, builder.titleArgs));
|
||||
dialogStage.setResizable(false);
|
||||
|
||||
FxmlLoaderFactory loaderFactory = FxmlLoaderFactory.forController( //
|
||||
new SimpleDialogController(resolveText(builder.messageKey, null), //
|
||||
resolveText(builder.descriptionKey, null), //
|
||||
builder.icon, resolveText(builder.okButtonKey, null), //
|
||||
resolveText(builder.cancelButtonKey, null), //
|
||||
() -> builder.okAction.accept(dialogStage), //
|
||||
() -> builder.cancelAction.accept(dialogStage)), //
|
||||
FxmlLoaderFactory loaderFactory = FxmlLoaderFactory.forController(
|
||||
new SimpleDialogController(resolveText(builder.messageKey, null),
|
||||
resolveText(builder.descriptionKey, null),
|
||||
builder.icon,resolveText(builder.okButtonKey, null),
|
||||
resolveText(builder.cancelButtonKey, null),
|
||||
() -> builder.okAction.accept(dialogStage),
|
||||
() -> builder.cancelAction.accept(dialogStage)),
|
||||
Scene::new, builder.resourceBundle);
|
||||
|
||||
dialogStage.setScene(new Scene(loaderFactory.load(FxmlFile.SIMPLE_DIALOG.getRessourcePathString()).getRoot()));
|
||||
@@ -60,7 +60,6 @@ public class SimpleDialog {
|
||||
|
||||
private Stage owner;
|
||||
private final ResourceBundle resourceBundle;
|
||||
private final StageFactory stageFactory;
|
||||
private String titleKey;
|
||||
private String[] titleArgs;
|
||||
private String messageKey;
|
||||
@@ -72,9 +71,8 @@ public class SimpleDialog {
|
||||
private Consumer<Stage> okAction = Stage::close;
|
||||
private Consumer<Stage> cancelAction = Stage::close;
|
||||
|
||||
public Builder(ResourceBundle resourceBundle, StageFactory stageFactory) {
|
||||
public Builder(ResourceBundle resourceBundle) {
|
||||
this.resourceBundle = resourceBundle;
|
||||
this.stageFactory = stageFactory;
|
||||
}
|
||||
|
||||
public Builder setOwner(Stage owner) {
|
||||
@@ -124,11 +122,11 @@ public class SimpleDialog {
|
||||
}
|
||||
|
||||
public SimpleDialog build() {
|
||||
Objects.requireNonNull(titleKey, "SimpleDialog titleKey must be set.");
|
||||
Objects.requireNonNull(messageKey, "SimpleDialog messageKey must be set.");
|
||||
Objects.requireNonNull(descriptionKey, "SimpleDialog descriptionKey must be set.");
|
||||
Objects.requireNonNull(okButtonKey, "SimpleDialog okButtonKey must be set.");
|
||||
Objects.requireNonNull(cancelButtonKey, "SimpleDialog cancelButtonKey must be set.");
|
||||
Objects.requireNonNull(titleKey,"SimpleDialog titleKey must be set.");
|
||||
Objects.requireNonNull(messageKey,"SimpleDialog messageKey must be set.");
|
||||
Objects.requireNonNull(descriptionKey,"SimpleDialog descriptionKey must be set.");
|
||||
Objects.requireNonNull(okButtonKey,"SimpleDialog okButtonKey must be set.");
|
||||
Objects.requireNonNull(cancelButtonKey,"SimpleDialog cancelButtonKey must be set.");
|
||||
|
||||
try {
|
||||
return new SimpleDialog(this);
|
||||
|
||||
@@ -112,12 +112,12 @@ public class MasterkeyFileLoadingStrategy implements KeyLoadingStrategy {
|
||||
}
|
||||
|
||||
private void savePasswordToSystemkeychain(Passphrase passphrase) {
|
||||
if (keychain.isSupported()) {
|
||||
try {
|
||||
try {
|
||||
if (keychain.isSupported() && !keychain.getPassphraseStoredProperty(vault.getId()).getValue()) {
|
||||
keychain.storePassphrase(vault.getId(), vault.getDisplayName(), passphrase);
|
||||
} catch (KeychainAccessException e) {
|
||||
LOG.error("Failed to store passphrase in system keychain.", e);
|
||||
}
|
||||
} catch (KeychainAccessException e) {
|
||||
LOG.error("Failed to store passphrase in system keychain.", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ import javafx.stage.Stage;
|
||||
import javafx.stage.WindowEvent;
|
||||
import javafx.util.Duration;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
@PassphraseEntryScoped
|
||||
public class PassphraseEntryController implements FxController {
|
||||
@@ -50,7 +49,6 @@ public class PassphraseEntryController implements FxController {
|
||||
private final ForgetPasswordComponent.Builder forgetPassword;
|
||||
private final KeychainManager keychain;
|
||||
private final StringBinding vaultName;
|
||||
private final ExecutorService backgroundExecutorService;
|
||||
private final BooleanProperty unlockInProgress = new SimpleBooleanProperty();
|
||||
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay = Bindings.when(unlockInProgress).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
||||
private final BooleanProperty unlockButtonDisabled = new SimpleBooleanProperty();
|
||||
@@ -66,7 +64,7 @@ public class PassphraseEntryController implements FxController {
|
||||
public Animation unlockAnimation;
|
||||
|
||||
@Inject
|
||||
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain, ExecutorService backgroundExecutorService) {
|
||||
public PassphraseEntryController(@KeyLoading Stage window, @KeyLoading Vault vault, CompletableFuture<PassphraseEntryResult> result, @Nullable @Named("savedPassword") Passphrase savedPassword, ForgetPasswordComponent.Builder forgetPassword, KeychainManager keychain) {
|
||||
this.window = window;
|
||||
this.vault = vault;
|
||||
this.result = result;
|
||||
@@ -74,8 +72,8 @@ public class PassphraseEntryController implements FxController {
|
||||
this.forgetPassword = forgetPassword;
|
||||
this.keychain = keychain;
|
||||
this.vaultName = WeakBindings.bindString(vault.displayNameProperty());
|
||||
this.backgroundExecutorService = backgroundExecutorService;
|
||||
window.setOnHiding(this::windowClosed);
|
||||
result.whenCompleteAsync((r, t) -> unlockInProgress.set(false), Platform::runLater);
|
||||
}
|
||||
|
||||
@FXML
|
||||
@@ -121,6 +119,8 @@ public class PassphraseEntryController implements FxController {
|
||||
new KeyFrame(Duration.millis(800), legsExtendedY, legsExtendedX, faceHidden), //
|
||||
new KeyFrame(Duration.millis(1000), faceVisible) //
|
||||
);
|
||||
|
||||
result.whenCompleteAsync((r, t) -> stopUnlockAnimation());
|
||||
}
|
||||
|
||||
@FXML
|
||||
@@ -133,9 +133,6 @@ public class PassphraseEntryController implements FxController {
|
||||
result.cancel(true);
|
||||
LOG.debug("Unlock canceled by user.");
|
||||
}
|
||||
if( passwordField != null) {
|
||||
passwordField.getCharacters().destroy();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -145,7 +142,7 @@ public class PassphraseEntryController implements FxController {
|
||||
unlockInProgress.set(true);
|
||||
CharSequence pwFieldContents = passwordField.getCharacters();
|
||||
Passphrase pw = Passphrase.copyOf(pwFieldContents);
|
||||
result.completeAsync(() -> new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()), backgroundExecutorService);
|
||||
result.complete(new PassphraseEntryResult(pw, savePasswordCheckbox.isSelected()));
|
||||
startUnlockAnimation();
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@ import org.cryptomator.ui.vaultoptions.SelectedVaultOptionsTab;
|
||||
import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.ReadOnlyObjectProperty;
|
||||
import javafx.beans.property.SimpleBooleanProperty;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.stage.Stage;
|
||||
@@ -21,7 +21,6 @@ public class VaultDetailLockedController implements FxController {
|
||||
private final ReadOnlyObjectProperty<Vault> vault;
|
||||
private final FxApplicationWindows appWindows;
|
||||
private final VaultOptionsComponent.Factory vaultOptionsWindow;
|
||||
private final KeychainManager keychain;
|
||||
private final Stage mainWindow;
|
||||
private final ObservableValue<Boolean> passwordSaved;
|
||||
|
||||
@@ -30,13 +29,11 @@ public class VaultDetailLockedController implements FxController {
|
||||
this.vault = vault;
|
||||
this.appWindows = appWindows;
|
||||
this.vaultOptionsWindow = vaultOptionsWindow;
|
||||
this.keychain = keychain;
|
||||
this.mainWindow = mainWindow;
|
||||
if (keychain.isSupported() && !keychain.isLocked()) {
|
||||
this.passwordSaved = vault.flatMap(v -> keychain.getPassphraseStoredProperty(v.getId())).orElse(false);
|
||||
} else {
|
||||
this.passwordSaved = new SimpleBooleanProperty(false);
|
||||
}
|
||||
this.passwordSaved = Bindings.createBooleanBinding(() -> {
|
||||
var v = vault.get();
|
||||
return v != null && keychain.getPassphraseStoredProperty(v.getId()).getValue();
|
||||
}, vault, keychain.getKeychainImplementation());
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
||||
@@ -13,16 +13,10 @@ import javax.inject.Inject;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.geometry.Insets;
|
||||
import javafx.scene.layout.HBox;
|
||||
|
||||
// unscoped because each cell needs its own controller
|
||||
public class VaultListCellController implements FxController {
|
||||
|
||||
private static final Insets COMPACT_INSETS = new Insets(6, 12, 6, 12);
|
||||
private static final Insets DEFAULT_INSETS = new Insets(12);
|
||||
|
||||
private final ObjectProperty<Vault> vault = new SimpleObjectProperty<>();
|
||||
private final ObservableValue<FontAwesome5Icon> glyph;
|
||||
private final ObservableValue<Boolean> compactMode;
|
||||
@@ -31,8 +25,6 @@ public class VaultListCellController implements FxController {
|
||||
|
||||
/* FXML */
|
||||
public FontAwesome5IconView vaultStateView;
|
||||
@FXML
|
||||
public HBox vaultListCell;
|
||||
|
||||
@Inject
|
||||
VaultListCellController(Settings settings) {
|
||||
@@ -45,7 +37,6 @@ public class VaultListCellController implements FxController {
|
||||
.onCondition(vault.flatMap(Vault::stateProperty).map(VaultState.Value.PROCESSING::equals).orElse(false)) //
|
||||
.afterStop(() -> vaultStateView.setRotate(0)) //
|
||||
.build();
|
||||
this.vaultListCell.paddingProperty().bind(compactMode.map(c -> c ? COMPACT_INSETS : DEFAULT_INSETS));
|
||||
}
|
||||
|
||||
// TODO deduplicate w/ VaultDetailController
|
||||
|
||||
@@ -16,7 +16,7 @@ import javafx.fxml.FXML;
|
||||
public class WelcomeController implements FxController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
|
||||
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/desktop/getting-started/";
|
||||
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/en/1.7/desktop/getting-started/";
|
||||
|
||||
private final Application application;
|
||||
private final BooleanBinding noVaultPresent;
|
||||
|
||||
@@ -10,7 +10,7 @@ import javafx.stage.Stage;
|
||||
|
||||
public class MigrationImpossibleController implements FxController {
|
||||
|
||||
private static final String HELP_URI = "https://docs.cryptomator.org/help/manual-migration/";
|
||||
private static final String HELP_URI = "https://docs.cryptomator.org/en/1.7/help/manual-migration/";
|
||||
|
||||
private final Application application;
|
||||
private final Stage window;
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package org.cryptomator.ui.preferences;
|
||||
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.Environment;
|
||||
import org.cryptomator.common.Passphrase;
|
||||
import org.cryptomator.common.keychain.KeychainManager;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.integrations.autostart.AutoStartProvider;
|
||||
import org.cryptomator.integrations.autostart.ToggleAutoStartFailedException;
|
||||
import org.cryptomator.integrations.common.NamedServiceProvider;
|
||||
import org.cryptomator.integrations.keychain.KeychainAccessException;
|
||||
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
|
||||
import org.cryptomator.integrations.quickaccess.QuickAccessService;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
@@ -14,6 +18,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javafx.application.Application;
|
||||
import javafx.beans.Observable;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.CheckBox;
|
||||
@@ -36,6 +41,7 @@ public class GeneralPreferencesController implements FxController {
|
||||
private final Application application;
|
||||
private final Environment environment;
|
||||
private final List<KeychainAccessProvider> keychainAccessProviders;
|
||||
private final KeychainManager keychain;
|
||||
private final FxApplicationWindows appWindows;
|
||||
public CheckBox useKeychainCheckbox;
|
||||
public ChoiceBox<KeychainAccessProvider> keychainBackendChoiceBox;
|
||||
@@ -48,11 +54,12 @@ public class GeneralPreferencesController implements FxController {
|
||||
public ToggleGroup nodeOrientation;
|
||||
|
||||
@Inject
|
||||
GeneralPreferencesController(@PreferencesWindow Stage window, Settings settings, Optional<AutoStartProvider> autoStartProvider, List<KeychainAccessProvider> keychainAccessProviders, Application application, Environment environment, FxApplicationWindows appWindows) {
|
||||
GeneralPreferencesController(@PreferencesWindow Stage window, Settings settings, Optional<AutoStartProvider> autoStartProvider, List<KeychainAccessProvider> keychainAccessProviders, KeychainManager keychain, Application application, Environment environment, FxApplicationWindows appWindows) {
|
||||
this.window = window;
|
||||
this.settings = settings;
|
||||
this.autoStartProvider = autoStartProvider;
|
||||
this.keychainAccessProviders = keychainAccessProviders;
|
||||
this.keychain = keychain;
|
||||
this.quickAccessServices = QuickAccessService.get().toList();
|
||||
this.application = application;
|
||||
this.environment = environment;
|
||||
@@ -73,6 +80,7 @@ public class GeneralPreferencesController implements FxController {
|
||||
Bindings.bindBidirectional(settings.keychainProvider, keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter);
|
||||
useKeychainCheckbox.selectedProperty().bindBidirectional(settings.useKeychain);
|
||||
keychainBackendChoiceBox.disableProperty().bind(useKeychainCheckbox.selectedProperty().not());
|
||||
keychainBackendChoiceBox.valueProperty().addListener(this::migrateKeychainEntriesOnMac);
|
||||
|
||||
useQuickAccessCheckbox.selectedProperty().bindBidirectional(settings.useQuickAccess);
|
||||
var quickAccessSettingsConverter = new ServiceToSettingsConverter<>(quickAccessServices);
|
||||
@@ -83,6 +91,35 @@ public class GeneralPreferencesController implements FxController {
|
||||
quickAccessServiceChoiceBox.disableProperty().bind(useQuickAccessCheckbox.selectedProperty().not());
|
||||
}
|
||||
|
||||
public void migrateKeychainEntriesOnMac(Observable observable) {
|
||||
if (!SystemUtils.IS_OS_MAC) {
|
||||
return;
|
||||
}
|
||||
|
||||
var provider = keychainBackendChoiceBox.getSelectionModel().getSelectedItem();
|
||||
var providerId = "org.cryptomator.macos.keychain.MacSystemKeychainAccess";
|
||||
var isSystemKeychain = provider.getClass().getName().equals(providerId);
|
||||
|
||||
List<String> vaults = settings.directories.stream()
|
||||
.map(vault -> vault.id)
|
||||
.toList();
|
||||
|
||||
if (!vaults.isEmpty()) {
|
||||
LOG.info("Migrating keychain entries for vaults: {}", vaults);
|
||||
}
|
||||
for (String vaultId :vaults) {
|
||||
try {
|
||||
if (keychain.isPassphraseStored(vaultId)) {
|
||||
var passphrase = keychain.loadPassphrase(vaultId);
|
||||
keychain.deletePassphrase(vaultId);
|
||||
keychain.storePassphrase(vaultId, vaultId, new Passphrase(passphrase), !isSystemKeychain);
|
||||
}
|
||||
} catch (KeychainAccessException e) {
|
||||
LOG.error("Failed to migrate keychain entries.", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAutoStartSupported() {
|
||||
return autoStartProvider.isPresent();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.ResourceBundle;
|
||||
@PreferencesScoped
|
||||
public class VolumePreferencesController implements FxController {
|
||||
|
||||
public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/desktop/volume-type/";
|
||||
public static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/en/1.7/desktop/volume-type/";
|
||||
public static final int MIN_PORT = 1024;
|
||||
public static final int MAX_PORT = 65535;
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import org.cryptomator.integrations.mount.MountFailedException;
|
||||
import org.cryptomator.ui.common.FxmlFile;
|
||||
import org.cryptomator.ui.common.FxmlScene;
|
||||
import org.cryptomator.ui.common.VaultService;
|
||||
import org.cryptomator.ui.dialogs.Dialogs;
|
||||
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
||||
import org.cryptomator.ui.fxapp.PrimaryStage;
|
||||
import org.cryptomator.ui.keyloading.KeyLoadingStrategy;
|
||||
@@ -26,8 +25,6 @@ import javafx.scene.Scene;
|
||||
import javafx.stage.Screen;
|
||||
import javafx.stage.Stage;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.ReadOnlyFileSystemException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* A multi-step task that consists of background activities as well as user interaction.
|
||||
@@ -49,7 +46,6 @@ public class UnlockWorkflow extends Task<Void> {
|
||||
private final FxApplicationWindows appWindows;
|
||||
private final KeyLoadingStrategy keyLoadingStrategy;
|
||||
private final ObjectProperty<IllegalMountPointException> illegalMountPointException;
|
||||
private final Dialogs dialogs;
|
||||
|
||||
@Inject
|
||||
UnlockWorkflow(@PrimaryStage Stage mainWindow, //
|
||||
@@ -61,8 +57,7 @@ public class UnlockWorkflow extends Task<Void> {
|
||||
@FxmlScene(FxmlFile.UNLOCK_REQUIRES_RESTART) Lazy<Scene> restartRequiredScene, //
|
||||
FxApplicationWindows appWindows, //
|
||||
@UnlockWindow KeyLoadingStrategy keyLoadingStrategy, //
|
||||
@UnlockWindow ObjectProperty<IllegalMountPointException> illegalMountPointException, //
|
||||
Dialogs dialogs) {
|
||||
@UnlockWindow ObjectProperty<IllegalMountPointException> illegalMountPointException) {
|
||||
this.mainWindow = mainWindow;
|
||||
this.window = window;
|
||||
this.vault = vault;
|
||||
@@ -73,7 +68,6 @@ public class UnlockWorkflow extends Task<Void> {
|
||||
this.appWindows = appWindows;
|
||||
this.keyLoadingStrategy = keyLoadingStrategy;
|
||||
this.illegalMountPointException = illegalMountPointException;
|
||||
this.dialogs = dialogs;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -150,36 +144,11 @@ public class UnlockWorkflow extends Task<Void> {
|
||||
switch (throwable) {
|
||||
case IllegalMountPointException e -> handleIllegalMountPointError(e);
|
||||
case ConflictingMountServiceException _ -> handleConflictingMountServiceException();
|
||||
case ReadOnlyFileSystemException _ -> handleReadOnlyFileSystem();
|
||||
default -> handleGenericError(throwable);
|
||||
}
|
||||
vault.stateProperty().transition(VaultState.Value.PROCESSING, VaultState.Value.LOCKED);
|
||||
}
|
||||
|
||||
private void handleReadOnlyFileSystem() {
|
||||
var readOnlyDialog = dialogs.prepareRetryIfReadonlyDialog(mainWindow, stage -> {
|
||||
stage.close();
|
||||
this.retry();
|
||||
}).build();
|
||||
|
||||
Platform.runLater(readOnlyDialog::showAndWait);
|
||||
}
|
||||
|
||||
private void retry() {
|
||||
try {
|
||||
vault.getVaultSettings().usesReadOnlyMode.set(true);
|
||||
var isLocked = vault.stateProperty().awaitState(VaultState.Value.LOCKED, 5, TimeUnit.SECONDS);
|
||||
if (!isLocked) {
|
||||
LOG.error("Vault did not changed to LOCKED state within 5 seconds. Aborting unlock retry.");
|
||||
} else {
|
||||
appWindows.startUnlockWorkflow(vault, mainWindow);
|
||||
}
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error("Waiting for LOCKED vault state was interrupted. Aborting unlock retry.", e);
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void cancelled() {
|
||||
LOG.debug("Unlock of '{}' canceled.", vault.getDisplayName());
|
||||
|
||||
@@ -17,8 +17,6 @@ import org.cryptomator.ui.preferences.VolumePreferencesController;
|
||||
import javax.inject.Inject;
|
||||
import javafx.application.Application;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.binding.BooleanBinding;
|
||||
import javafx.beans.value.ObservableBooleanValue;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.control.Button;
|
||||
@@ -52,6 +50,7 @@ public class MountOptionsController implements FxController {
|
||||
private final ObservableValue<String> defaultMountFlags;
|
||||
private final ObservableValue<Boolean> mountpointDirSupported;
|
||||
private final ObservableValue<Boolean> mountpointDriveLetterSupported;
|
||||
private final ObservableValue<Boolean> readOnlySupported;
|
||||
private final ObservableValue<Boolean> mountFlagsSupported;
|
||||
private final ObservableValue<Boolean> defaultMountServiceSelected;
|
||||
private final ObservableValue<String> directoryPath;
|
||||
@@ -61,7 +60,6 @@ public class MountOptionsController implements FxController {
|
||||
private final ObservableValue<MountService> selectedMountService;
|
||||
private final ObservableValue<Boolean> selectedMountServiceRequiresRestart;
|
||||
private final ObservableValue<Boolean> loopbackPortChangeable;
|
||||
private final ObservableBooleanValue readOnlyOptionAllowed;
|
||||
|
||||
|
||||
//-- FXML objects --
|
||||
@@ -110,10 +108,10 @@ public class MountOptionsController implements FxController {
|
||||
});
|
||||
this.mountFlagsSupported = selectedMountService.map(s -> s.hasCapability(MountCapability.MOUNT_FLAGS));
|
||||
this.defaultMountServiceSelected = ObservableUtil.mapWithDefault(vaultSettings.mountService, _ -> false, true);
|
||||
this.readOnlySupported = selectedMountService.map(s -> s.hasCapability(MountCapability.READ_ONLY));
|
||||
this.mountpointDirSupported = selectedMountService.map(s -> s.hasCapability(MountCapability.MOUNT_TO_EXISTING_DIR) || s.hasCapability(MountCapability.MOUNT_WITHIN_EXISTING_PARENT));
|
||||
this.mountpointDriveLetterSupported = selectedMountService.map(s -> s.hasCapability(MountCapability.MOUNT_AS_DRIVE_LETTER));
|
||||
this.loopbackPortChangeable = selectedMountService.map(s -> s.hasCapability(MountCapability.LOOPBACK_PORT) && vaultSettings.mountService.getValue() != null);
|
||||
this.readOnlyOptionAllowed = BooleanBinding.booleanExpression(selectedMountService.map(s -> s.hasCapability(MountCapability.READ_ONLY))).or(vaultSettings.usesReadOnlyMode);
|
||||
}
|
||||
|
||||
private MountService reselectMountService() {
|
||||
@@ -347,12 +345,12 @@ public class MountOptionsController implements FxController {
|
||||
return mountpointDriveLetterSupported.getValue();
|
||||
}
|
||||
|
||||
public ObservableValue<Boolean> readOnlyOptionAllowedProperty() {
|
||||
return readOnlyOptionAllowed;
|
||||
public ObservableValue<Boolean> readOnlySupportedProperty() {
|
||||
return readOnlySupported;
|
||||
}
|
||||
|
||||
public boolean isReadOnlyOptionAllowed() {
|
||||
return readOnlyOptionAllowed.getValue();
|
||||
public boolean isReadOnlySupported() {
|
||||
return readOnlySupported.getValue();
|
||||
}
|
||||
|
||||
public ObservableValue<String> directoryPathProperty() {
|
||||
|
||||
@@ -15,7 +15,7 @@ import java.io.UncheckedIOException;
|
||||
@WrongFileAlertScoped
|
||||
public class WrongFileAlertController implements FxController {
|
||||
|
||||
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/desktop/accessing-vaults/";
|
||||
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/en/1.7/desktop/accessing-vaults/";
|
||||
|
||||
private final Application app;
|
||||
private final Stage window;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
</ImageView>
|
||||
<VBox spacing="3" HBox.hgrow="ALWAYS" alignment="CENTER_LEFT">
|
||||
<FormattedLabel styleClass="label-extra-large" format="Cryptomator %s" arg1="${controller.fullApplicationVersion}"/>
|
||||
<Label text="© 2016 – 2025 Skymatic GmbH"/>
|
||||
<Label text="© 2016 – 2024 Skymatic GmbH"/>
|
||||
</VBox>
|
||||
</HBox>
|
||||
|
||||
|
||||
@@ -1,19 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Tooltip?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<HBox xmlns:fx="http://javafx.com/fxml"
|
||||
xmlns="http://javafx.com/javafx"
|
||||
fx:id="vaultListCell"
|
||||
fx:controller="org.cryptomator.ui.mainwindow.VaultListCellController"
|
||||
prefHeight="60"
|
||||
prefWidth="200"
|
||||
spacing="12"
|
||||
alignment="CENTER_LEFT">
|
||||
<!-- Remark Check the containing list view for a fixed cell size before editing height properties -->
|
||||
<padding>
|
||||
<Insets topRightBottomLeft="12"/>
|
||||
</padding>
|
||||
<children>
|
||||
<VBox alignment="CENTER" minWidth="20">
|
||||
<FontAwesome5IconView fx:id="vaultStateView" glyph="${controller.glyph}" HBox.hgrow="NEVER" glyphSize="16"/>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<Button text="%generic.button.apply" fx:id="vaultLoopbackPortApplyButton" onAction="#doChangeLoopbackPort"/>
|
||||
</HBox>
|
||||
|
||||
<CheckBox fx:id="readOnlyCheckbox" text="%vaultOptions.mount.readonly" visible="${controller.readOnlyOptionAllowed}" managed="${controller.readOnlyOptionAllowed}"/>
|
||||
<CheckBox fx:id="readOnlyCheckbox" text="%vaultOptions.mount.readonly" visible="${controller.readOnlySupported}" managed="${controller.readOnlySupported}"/>
|
||||
|
||||
<VBox visible="${controller.mountFlagsSupported}" managed="${controller.mountFlagsSupported}">
|
||||
<CheckBox fx:id="customMountFlagsCheckbox" text="%vaultOptions.mount.customMountFlags" onAction="#toggleUseCustomMountFlags"/>
|
||||
|
||||
@@ -107,7 +107,6 @@ addvaultwizard.success.unlockNow=Unlock Now
|
||||
removeVault.title=Remove "%s"
|
||||
removeVault.message=Remove vault?
|
||||
removeVault.description=This will only make Cryptomator forget about this vault. You can add it again. No encrypted files will be deleted from your hard drive.
|
||||
removeVault.confirmBtn=Remove Vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Change Password
|
||||
@@ -178,7 +177,7 @@ hub.registerFailed.description.generic=An error was thrown in the registration p
|
||||
hub.registerFailed.description.deviceAlreadyExists=This device is already registered for a different user. Try to change the user account or use a different device.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Access denied
|
||||
hub.unauthorized.description=You are not authorized to open this vault. Contact the vault's owner to request access.
|
||||
hub.unauthorized.description=Your device has not yet been authorized to access this vault. Ask the vault owner to authorize it.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Action required
|
||||
hub.requireAccountInit.description.0=To proceed, please complete the steps required in your
|
||||
@@ -554,12 +553,6 @@ dokanySupportEnd.message=Support end for Dokany
|
||||
dokanySupportEnd.description=The volume type Dokany is no longer supported by Cryptomator. Your settings are adjusted to use the default volume type now. You can view the default type in the preferences.
|
||||
dokanySupportEnd.preferencesBtn=Open Preferences
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Restricted Vault Access
|
||||
retryIfReadonly.message=No write access to vault directory
|
||||
retryIfReadonly.description=Cryptomator cannot write to the vault directory. You can change the vault to be read-only and try again. This option can be disabled in the vault options.
|
||||
retryIfReadonly.retry=Change and Retry
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Share Vault
|
||||
shareVault.message=Would you like to share your vault with others?
|
||||
|
||||
@@ -118,6 +118,4 @@
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=تم النسخ!
|
||||
generic.button.done=تم
|
||||
generic.button.next=التالي
|
||||
generic.button.print=طباعة
|
||||
generic.button.remove=حذف
|
||||
|
||||
# Error
|
||||
error.message=حدث خطأ ما
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=افتح الان
|
||||
removeVault.title=احذف الحافظة
|
||||
removeVault.message=حذف المخزن؟
|
||||
removeVault.description=سيؤدي هذا إلى نسيان Cryptomator لهذا المخزن فقط. يمكنك إضافته مرة أخرى لاحقاً. لن يتم حذف أي من الملفات المشفرة من القرص الصلب الخاص بك.
|
||||
removeVault.confirmBtn=احذف الحافظة
|
||||
|
||||
# Change Password
|
||||
changepassword.title=تغيير كلمة المرور
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=حدث خطأ في عملية تسجيل
|
||||
hub.registerFailed.description.deviceAlreadyExists=هذا الجهاز مسجل لمستخدم مختلف بالفعل. حاول تغيير حساب المستخدم أو استخدام جهاز مختلف.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=تم رفض الوصول
|
||||
hub.unauthorized.description=لم يتم بعد منح الإذن لجهازك بالوصول إلى هذا المخزن. اطلب من مالك المخزن أن يأذن بذلك.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=مطلوب اتخاذ إجراء
|
||||
hub.requireAccountInit.description.0=للمتابعة، يرجى إكمال الخطوات المطلوبة في
|
||||
@@ -286,7 +287,6 @@ preferences.general.debugLogging=تمكين سجلات التصحيح
|
||||
preferences.general.debugDirectory=عرض ملفات السجل
|
||||
preferences.general.autoStart=تشغيل Cryptomator عند بدء تشغيل النظام
|
||||
preferences.general.keychainBackend=تخزين كلمات المرور مع
|
||||
preferences.general.quickAccessService=إضافة الخزانات المفتوحة إلى منطقة الوصول السريع
|
||||
## Interface
|
||||
preferences.interface=الواجهة
|
||||
preferences.interface.theme=الشكل والمظهر
|
||||
@@ -300,7 +300,6 @@ preferences.interface.interfaceOrientation=اتجاه الواجهة
|
||||
preferences.interface.interfaceOrientation.ltr=من اليسار إلى اليمين
|
||||
preferences.interface.interfaceOrientation.rtl=من اليمين إلى اليسار
|
||||
preferences.interface.showTrayIcon=إظهار أيقونة اللوحة (يتطلب إعادة تشغيل)
|
||||
preferences.interface.compactMode=تمكين قائمة الخزنة المدمجة
|
||||
## Volume
|
||||
preferences.volume=القرص الإفتراضي
|
||||
preferences.volume.type=نوع القرص الافتراضي
|
||||
@@ -334,14 +333,12 @@ preferences.contribute.registeredFor=شهادة الداعم مسجلة لـ %s
|
||||
preferences.contribute.noCertificate=ادعم Cryptomator واحصل على شهادة الداعم. إنها مثل مفتاح الترخيص لكن للأشخاص الرائعين الذين يستخدمون البرامج المجانية ؛-)
|
||||
preferences.contribute.getCertificate=ليس لديك واحدة بعد؟ تعلم كيف يمكنك الحصول عليها.
|
||||
preferences.contribute.promptText=قم بلصق رمز شهادة الداعم هنا
|
||||
preferences.contribute.thankYou=نشكرك على دعمك لتطوير Cryptomator مفتوح المصدر!
|
||||
preferences.contribute.donate=تبرع
|
||||
preferences.contribute.sponsor=الراعي
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=إزالة الشهادة
|
||||
removeCert.message=إزالة شهادة الداعم؟
|
||||
removeCert.description=الميزات الأساسية لـ Cryptomator غير متأثرة بهذا. لا يتم تقييد الوصول إلى خزاناتك ولا يتم تخفيض مستوى الأمان.
|
||||
removeCert.confirmBtn=حذف
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -391,11 +388,7 @@ main.vaultlist.contextMenu.unlock=فتح…
|
||||
main.vaultlist.contextMenu.unlockNow=افتح الان
|
||||
main.vaultlist.contextMenu.vaultoptions=إظهار خيارات المخزن
|
||||
main.vaultlist.contextMenu.reveal=اظهار القرص
|
||||
main.vaultlist.addVaultBtn.menuItemNew=إنشاء مخزن جديد...
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=افتح مخزن موجود...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=هناك تحديث متاح.
|
||||
main.notification.support=دعم Cryptomator.
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=شكرا لاختيار Cryptomator لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام:
|
||||
@@ -551,8 +544,6 @@ dokanySupportEnd.message=انتهاء الدعم لـDokany
|
||||
dokanySupportEnd.description=نوع وحدة التخزين Dokany لم يعد مدعوماً من قبل Cryptomator. تم تعديل إعداداتك لاستخدام نوع وحدة التخزين الافتراضي الآن. يمكنك عرض النوع الافتراضي في التفضيلات.
|
||||
dokanySupportEnd.preferencesBtn=فتح التفضيلات
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=مشاركة الخزانة
|
||||
shareVault.message=هل ترغب في مشاركة خزانتك مع الآخرين؟
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Күсермә алынды!
|
||||
generic.button.done=Тамам
|
||||
generic.button.next=Киләһе
|
||||
generic.button.print=Баҫтыр
|
||||
generic.button.remove=Алып ташлау
|
||||
|
||||
# Error
|
||||
error.message=Хата килеп сыҡты
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=Хәҙер бикте ас
|
||||
removeVault.title="%s" һаҡлағысын алып ташла
|
||||
removeVault.message=Һаҡлағысты алып ташларғамы?
|
||||
removeVault.description=Cryptomator был һаҡлағысты ғына онотасаҡ. Һеҙ уны яңынан өҫтәй алаһығыҙ. Ҡаты дисктан шифрланған файлдар юйылмаясаҡ.
|
||||
removeVault.confirmBtn=Һаҡлағысты алып ташла
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Серһүҙҙе үҙгәртеү
|
||||
@@ -164,6 +164,7 @@ hub.registerSuccess.unlockBtn=Биген ас
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Инеү кире ҡағылды
|
||||
hub.unauthorized.description=Һеҙҙең йыһаз әлегә был һаҡлағысҡа инеү хоҡуғына эйә түгел. Һаҡлағыс хужаһынан рөхсәт һорағыҙ.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Эш-хәрәкәт кәрәкле
|
||||
hub.requireAccountInit.description.0=Дауам итер өсөн, кәрәкле аҙымдар тамамланырға тейеш урын:
|
||||
@@ -315,6 +316,7 @@ preferences.contribute.getCertificate=Юҡ мы әллә? Уны нисек ал
|
||||
preferences.contribute.promptText=Ярҙамсы сертификатын бында йәбештерегеҙ
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Алып ташлау
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -515,6 +517,4 @@ updateReminder.yesAutomatically=Эйе, автоматик рәүештә
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Көйләүҙәрҙе ас
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Скапіявана!
|
||||
generic.button.done=Файна
|
||||
generic.button.next=Далей
|
||||
generic.button.print=Друкаваць
|
||||
generic.button.remove=Выдаліць
|
||||
|
||||
# Error
|
||||
error.message=Адбылася памылка
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=Разамкнуць зараз
|
||||
removeVault.title=Выдаліць "%s"
|
||||
removeVault.message=Ці выдаліць скарбніцу?
|
||||
removeVault.description=Гэта прывядзе толькі да таго, што Cryptomator забудзецца на гэтую скрынку. Ты зможаш дадаць яе пазней ізноў. Аніякія зашыфраваныя файлы з тайго жорсткага дыску не выдаляцьмуцца.
|
||||
removeVault.confirmBtn=Выдаліць скарбніцу
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Змяніць пароль
|
||||
@@ -157,6 +157,7 @@ hub.registerSuccess.unlockBtn=Адамкнуць
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Адмова ў доступе
|
||||
hub.unauthorized.description=Тваёй прыладзе ў дадзены момант не дазволена мець доступ да гэтай скрабніцы. Запытайся ўладальніка скрабніцы за дазволам.
|
||||
### Requires Account Initialization
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Несапраўдная ліцэнзія Hub
|
||||
@@ -302,6 +303,7 @@ preferences.contribute.getCertificate=Яшчэ ня маеш такога? Да
|
||||
preferences.contribute.promptText=Устаў код сэртыфікату ахвяравальніка сюды
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Выдаліць
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -495,6 +497,4 @@ updateReminder.yesAutomatically=Так, аўтаматычна
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Адчыніць налады
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Копирано!
|
||||
generic.button.done=Готово
|
||||
generic.button.next=Напред
|
||||
generic.button.print=Отпечатване
|
||||
generic.button.remove=Премахване
|
||||
|
||||
# Error
|
||||
error.message=Възникна грешка
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=Отключване сега
|
||||
removeVault.title=Премахване на „%s“
|
||||
removeVault.message=Премахване на хранилище?
|
||||
removeVault.description=По този начин Криптоматор ще забрави за това хранилище. Можете да го добавите отново. Шифрованите файлове няма да бъдат премахнати от твърдия диск.
|
||||
removeVault.confirmBtn=Премахване
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Промяна на парола
|
||||
@@ -164,6 +164,7 @@ hub.registerSuccess.unlockBtn=Отключване
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Отказан достъп
|
||||
hub.unauthorized.description=Устройството не е упълномощено за достъп до това хранилище. Поискайте достъп от собственика.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Необходимо е действие
|
||||
hub.requireAccountInit.description.0=За да продължите завършете необходимите стъпки в
|
||||
@@ -315,6 +316,7 @@ preferences.contribute.getCertificate=Все още нямате? Научете
|
||||
preferences.contribute.promptText=Поставете тук кода на сертификата за дарение
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Премахване
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -515,6 +517,4 @@ updateReminder.yesAutomatically=Да, автоматично
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Към настройките
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=কপি হয়েছে!
|
||||
generic.button.done=সম্পন্ন হয়েছে
|
||||
generic.button.next=পরবর্তী
|
||||
generic.button.print=প্রিন্ট
|
||||
generic.button.remove=বাতিল
|
||||
|
||||
# Error
|
||||
error.message=ত্রুটি %s
|
||||
@@ -128,6 +127,7 @@ lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=বাতিল
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -182,6 +182,4 @@ vaultOptions.mount.mountPoint.directoryPickerButton=নির্বাচন ক
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopirano!
|
||||
generic.button.done=Gotovo
|
||||
generic.button.next=Sljedeće
|
||||
generic.button.print=Ispis
|
||||
generic.button.remove=Ukloni
|
||||
|
||||
# Error
|
||||
error.message=Došlo je do greške
|
||||
@@ -79,6 +78,7 @@ addvaultwizard.success.unlockNow=Otključaj sada
|
||||
# Remove Vault
|
||||
removeVault.title=Ukloni Sef
|
||||
removeVault.description=Ovo će samo natjerati Cryptomator da zaboravi na ovaj sef. Možete ga dodati ponovo kasnije. Nijedna enkriptovana datoteka neće se izbrisati s vašeg diska.
|
||||
removeVault.confirmBtn=Ukloni Sef
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Promjeni lozinku
|
||||
@@ -175,6 +175,7 @@ preferences.updates.updateAvailable=Dostupno ažuriranje na verziju %s.
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Ukloni
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -318,6 +319,4 @@ quit.lockAndQuitBtn=Zaključaj i zatvori
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copiat!
|
||||
generic.button.done=Fet
|
||||
generic.button.next=Següent
|
||||
generic.button.print=Imprimeix
|
||||
generic.button.remove=Elimina
|
||||
|
||||
# Error
|
||||
error.message=S'ha produït un error
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Desbloqueja ara
|
||||
removeVault.title=Elimina la caixa forta
|
||||
removeVault.message=Voleu eliminar la caixa forta?
|
||||
removeVault.description=Cryptomator simplement deixarà de mostrar la caixa forta. Podeu tornar a afegir-la més endavant. Cap fitxer xifrat serà eliminat del disc dur.
|
||||
removeVault.confirmBtn=Elimina la caixa forta
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Canvia la contrasenya
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=S'ha produït un error en el procés de r
|
||||
hub.registerFailed.description.deviceAlreadyExists=El dispositiu ja ha estat registrat per un altre usuari. Mireu de canviar el compte d'usuari o feu servir un dispositiu diferent.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Accés denegat
|
||||
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Acció necessària
|
||||
hub.requireAccountInit.description.0=Per a continuar, si us plau, seguiu els passos necessaris en el vostre
|
||||
@@ -286,7 +287,6 @@ preferences.general.debugLogging=Habilita el registre de depuració
|
||||
preferences.general.debugDirectory=Mostra els fitxers de registres
|
||||
preferences.general.autoStart=Executa Cryptomator en engegar el sistema
|
||||
preferences.general.keychainBackend=Desar contrasenyes amb
|
||||
preferences.general.quickAccessService=Afegeix caixes fortes desblocades a l'àrea d'accés directe
|
||||
## Interface
|
||||
preferences.interface=Interfície
|
||||
preferences.interface.theme=Aparença
|
||||
@@ -300,7 +300,6 @@ preferences.interface.interfaceOrientation=Orientació de la interfície
|
||||
preferences.interface.interfaceOrientation.ltr=Esquerra a dreta
|
||||
preferences.interface.interfaceOrientation.rtl=Dreta a esquerra
|
||||
preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
||||
preferences.interface.compactMode=Activa la llista compacta de caixes fortes
|
||||
## Volume
|
||||
preferences.volume=Unitat virtual
|
||||
preferences.volume.type=Tipus de volum per defecte
|
||||
@@ -320,13 +319,6 @@ preferences.updates.currentVersion=Versió actual: %s
|
||||
preferences.updates.autoUpdateCheck=Comprova automàticament si hi ha actualitzacions
|
||||
preferences.updates.checkNowBtn=Comprova-ho ara
|
||||
preferences.updates.updateAvailable=L'actualització a la versió %s es troba disponible.
|
||||
preferences.updates.lastUpdateCheck=Darrera comprovació: %s
|
||||
preferences.updates.lastUpdateCheck.never=mai
|
||||
preferences.updates.lastUpdateCheck.recently=recentment
|
||||
preferences.updates.lastUpdateCheck.daysAgo=Fa %s dies
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=fa %s hores
|
||||
preferences.updates.checkFailed=Ha fallat la cerca d'actualitzacions. Si us plau, comproveu la connexió a Internet o torneu a provar-ho més tard.
|
||||
preferences.updates.upToDate=Cryptomator està actualitzat.
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=Doneu-nos suport
|
||||
@@ -334,13 +326,9 @@ preferences.contribute.registeredFor=Certificat de col·laborador registrat per
|
||||
preferences.contribute.noCertificate=Doneu suport a Cryptomator i rebeu un certificat de col·laborador. És com una clau de llicència però per a gent meravellosa que fa servir programari lliure. ;-)
|
||||
preferences.contribute.getCertificate=Encara no en teniu cap? Sapigueu com aconseguir-ne un.
|
||||
preferences.contribute.promptText=Enganxeu aquí el certificat de col·laborador
|
||||
preferences.contribute.thankYou=Gràcies pel vostre suport al desenvolupament open-source de Cryptomator!
|
||||
preferences.contribute.donate=Feu un donatiu
|
||||
preferences.contribute.sponsor=Patrocinador
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Suprimeix certificat
|
||||
removeCert.description=Les característiques principals de Cryptomator no es veuen afectades per això. Ni l'accés a les vostres caixes fortes s'ha restringit ni el nivell de seguretat ha estat rebaixat.
|
||||
removeCert.confirmBtn=Elimina
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -390,11 +378,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.menuItemNew=Crea una nova caixa forta…
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=Obri una caixa forta existent...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=Hi ha una actualització disponible.
|
||||
main.notification.support=Doneu suport a Cryptomator.
|
||||
## 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:
|
||||
@@ -547,8 +531,6 @@ updateReminder.yesAutomatically=Sí, automàticament
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Obrir les Preferències
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Comparteix la caixa forta
|
||||
shareVault.message=Voleu compartir la vostra caixa forta amb altres persones?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Zkopírováno!
|
||||
generic.button.done=Hotovo
|
||||
generic.button.next=Další
|
||||
generic.button.print=Tisk
|
||||
generic.button.remove=Odstranit
|
||||
|
||||
# Error
|
||||
error.message=Chyba %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Odemknout nyní
|
||||
removeVault.title=Odstranit trezor
|
||||
removeVault.message=Odstranit trezor?
|
||||
removeVault.description=Toto jen umožní Cryptomatoru zapomenout tento trezor. Později jej můžete opět přidat. Žádné šifrované soubory nebudou z vašeho disku smazány.
|
||||
removeVault.confirmBtn=Odstranit trezor
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Změnit heslo
|
||||
@@ -137,7 +137,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=Označení úložiště nebo vlastní cesta "%s" se již používá.
|
||||
unlock.error.restartRequired.message=Nelze odemknout trezor
|
||||
unlock.error.restartRequired.description=Změňte typ svazku v možnostech trezoru nebo restartujte Cryptomator.
|
||||
unlock.error.title=Odemknutí "%s" selhalo
|
||||
@@ -172,6 +171,7 @@ hub.registerFailed.description.generic=Došlo k chybě v registračním procesu.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Toto zařízení je již registrováno pro jiného uživatele. Zkuste změnit uživatelský účet nebo použijte jiné zařízení.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Přístup odepřen
|
||||
hub.unauthorized.description=Vaše zařízení dosud nebylo oprávněno k přístupu k tomuto trezoru. Požádejte vlastníka trezoru, aby jej autorizoval.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Požadována akce
|
||||
hub.requireAccountInit.description.0=Chcete-li pokračovat, vyplňte prosím požadované kroky ve vašem
|
||||
@@ -315,6 +315,7 @@ preferences.contribute.getCertificate=Ještě žádný nemáte? Naučte se, jak
|
||||
preferences.contribute.promptText=Sem vložte kód certifikátu podporovatele
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Odstranit
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -515,8 +516,6 @@ dokanySupportEnd.title=Oznámení o zastaralosti
|
||||
dokanySupportEnd.message=Konec podpory pro Dokany
|
||||
dokanySupportEnd.preferencesBtn=Otevřít předvolby
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Sdílet trezor
|
||||
shareVault.message=Chcete sdílet svůj trezor s ostatními?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopieret!
|
||||
generic.button.done=Færdig
|
||||
generic.button.next=Næste
|
||||
generic.button.print=Print
|
||||
generic.button.remove=Fjern
|
||||
|
||||
# Error
|
||||
error.message=Der opstod en fejl
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Lås op nu
|
||||
removeVault.title=Fjern "%s"
|
||||
removeVault.message=Fjern boks?
|
||||
removeVault.description=Dette får blot Cryptomator til at glemme boksen. Du kan tilføje den igen senere. Ingen krypterede filer bliver slettet fra harddisken.
|
||||
removeVault.confirmBtn=Fjern boks
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Skift adgangskode
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Der opstod en fejl i registreringsprocess
|
||||
hub.registerFailed.description.deviceAlreadyExists=Denne enhed er allerede registreret af en anden bruger. Prøv at ændre brugerkontoen eller brug en anden enhed.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Adgang nægtet
|
||||
hub.unauthorized.description=Du har ikke tilladelse til at åbne denne boks. Kontant ejeren af boksen for at anmode om adgang.
|
||||
hub.unauthorized.description=Din enhed er endnu ikke blevet godkendt til at få adgang til denne boks. Spørg boks-ejeren om godkendelse.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Handling påkrævet
|
||||
hub.requireAccountInit.description.0=For at fortsætte, skal du fuldføre de nødvendige trin i din
|
||||
@@ -287,7 +287,6 @@ preferences.general.debugLogging=Aktivér fejllogning
|
||||
preferences.general.debugDirectory=Vis logfiler
|
||||
preferences.general.autoStart=Start Cryptomator automatisk ved opstart
|
||||
preferences.general.keychainBackend=Gem adgangskoder med
|
||||
preferences.general.quickAccessService=Tilføj oplåste bokse til området hurtig adgang
|
||||
## Interface
|
||||
preferences.interface=Brugerflade
|
||||
preferences.interface.theme=Udseende
|
||||
@@ -320,7 +319,6 @@ preferences.updates.currentVersion=Nuværende version: %s
|
||||
preferences.updates.autoUpdateCheck=Søg automatisk efter opdateringer
|
||||
preferences.updates.checkNowBtn=Kontrollér nu
|
||||
preferences.updates.updateAvailable=Opdatering til version %s er tilgængelig.
|
||||
preferences.updates.checkFailed=Søgning efter opdateringer fejlede. Tjek din internetforbindelse eller forsøg igen senere.
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=Støt os
|
||||
@@ -330,6 +328,7 @@ preferences.contribute.getCertificate=Har du ikke et allerede? Se her hvordan du
|
||||
preferences.contribute.promptText=Indsæt koden for supporter-certifikatet her
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Fjern
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -380,8 +379,6 @@ main.vaultlist.contextMenu.unlockNow=Lås op nu
|
||||
main.vaultlist.contextMenu.vaultoptions=Vis boksindstillinger
|
||||
main.vaultlist.contextMenu.reveal=Vis drev
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=Opdatering er tilgængelig.
|
||||
main.notification.support=Støt Cryptomator.
|
||||
## 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:
|
||||
@@ -534,8 +531,6 @@ updateReminder.yesAutomatically=Ja, automatisk
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Åbn Indstillinger
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Del Boks
|
||||
shareVault.message=Vil du dele din boks med andre?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopiert!
|
||||
generic.button.done=Fertig
|
||||
generic.button.next=Weiter
|
||||
generic.button.print=Drucken
|
||||
generic.button.remove=Entfernen
|
||||
|
||||
# Error
|
||||
error.message=Ein Fehler ist aufgetreten
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Jetzt entsperren
|
||||
removeVault.title=„%s“ entfernen
|
||||
removeVault.message=Tresor entfernen?
|
||||
removeVault.description=Dieser Tresor wird nur aus der Tresorliste entfernt; du kannst ihn später jederzeit wieder hinzufügen. Es werden keine verschlüsselten Daten gelöscht.
|
||||
removeVault.confirmBtn=Tresor entfernen
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Passwort ändern
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Im Registrierungsprozess ist ein Fehler a
|
||||
hub.registerFailed.description.deviceAlreadyExists=Dieses Gerät ist bereits für einen anderen Benutzer registriert. Ändere das Benutzerkonto oder verwende ein anderes Gerät.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Zugriff verweigert
|
||||
hub.unauthorized.description=Dein Gerät wurde noch nicht für den Zugriff auf diesen Tresor autorisiert. Bitte den Tresorbesitzer, dein Gerät zu autorisieren.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Aktion erforderlich
|
||||
hub.requireAccountInit.description.0=Um fortzufahren, führe bitte die erforderlichen Schritte in deinem
|
||||
@@ -244,7 +245,7 @@ health.checkList.selectAllButton=Alle Prüfungen auswählen
|
||||
health.checkList.deselectAllButton=Alle Prüfungen abwählen
|
||||
health.check.runBatchBtn=Ausgewählte Prüfungen ausführen
|
||||
## Detail view
|
||||
health.check.detail.noSelectedCheck=Wähle für die Ergebnisse eine abgeschlossene Integritätsprüfung in der Liste links aus.
|
||||
health.check.detail.noSelectedCheck=Wähle für die Ergebnisse eine abgeschlossene Intregritätsprüfung in der Liste links aus.
|
||||
health.check.detail.checkScheduled=Die Prüfung ist geplant.
|
||||
health.check.detail.checkRunning=Die Prüfung läuft derzeit …
|
||||
health.check.detail.checkSkipped=Die Prüfung wurde nicht zur Ausführung ausgewählt.
|
||||
@@ -286,7 +287,7 @@ preferences.general.debugLogging=Diagnoseprotokoll aktivieren
|
||||
preferences.general.debugDirectory=Protokolldateien anzeigen
|
||||
preferences.general.autoStart=Cryptomator beim Systemstart starten
|
||||
preferences.general.keychainBackend=Passwörter speichern mit
|
||||
preferences.general.quickAccessService=Entsperrte Tresore zum Schnellzugriff hinzufügen
|
||||
preferences.general.quickAccessService=Die entsperrten Tresore zum Schnellzugriff hinzufügen
|
||||
## Interface
|
||||
preferences.interface=Benutzeroberfläche
|
||||
preferences.interface.theme=Erscheinungsbild
|
||||
@@ -300,7 +301,7 @@ preferences.interface.interfaceOrientation=Oberflächenausrichtung
|
||||
preferences.interface.interfaceOrientation.ltr=Von links nach rechts
|
||||
preferences.interface.interfaceOrientation.rtl=Von rechts nach links
|
||||
preferences.interface.showTrayIcon=Symbol im Infobereich anzeigen (Neustart erforderlich)
|
||||
preferences.interface.compactMode=Kompakte Tresorliste
|
||||
preferences.interface.compactMode=Kompakte Tresoransicht einschalten
|
||||
## Volume
|
||||
preferences.volume=Virtuelles Laufwerk
|
||||
preferences.volume.type=Standard-Laufwerkstyp
|
||||
@@ -342,6 +343,7 @@ preferences.contribute.sponsor=Sponsern
|
||||
removeCert.title=Zertifikat entfernen
|
||||
removeCert.message=Supporter-Zertifikat entfernen?
|
||||
removeCert.description=Die Kernfunktionen von Cryptomator sind davon nicht betroffen. Weder der Zugriff auf deine Tresore ist eingeschränkt, noch wird das Sicherheitsniveau verringert.
|
||||
removeCert.confirmBtn=Entfernen
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -546,13 +548,11 @@ updateReminder.yesOnce=Ja, einmalig
|
||||
updateReminder.yesAutomatically=Ja, automatisch
|
||||
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.title=Hinweis zur Ausmusterung
|
||||
dokanySupportEnd.message=Supportende für Dokany
|
||||
dokanySupportEnd.title=Hinweis: nicht mehr verwendet
|
||||
dokanySupportEnd.message=Ende der Unterstützung für Dokany
|
||||
dokanySupportEnd.description=Der Laufwerkstyp Dokany wird von Cryptomator nicht weiter unterstützt. Deine Einstellungen wurden angepasst, dass der Standard-Laufwerkstyp verwendet wird. Du kannst den Standardtyp in den Einstellungen anzeigen lassen.
|
||||
dokanySupportEnd.preferencesBtn=Einstellungen öffnen
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Tresor teilen
|
||||
shareVault.message=Möchtest du deinen Tresor mit anderen teilen?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Αντιγράφηκε!
|
||||
generic.button.done=Κλείσιμο
|
||||
generic.button.next=Επόμενο
|
||||
generic.button.print=Εκτύπωση
|
||||
generic.button.remove=Αφαίρεση
|
||||
|
||||
# Error
|
||||
error.message=Παρουσιάστηκε σφάλμα
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Ξεκλείδωμα τώρα
|
||||
removeVault.title=Διαγραφή "%s"
|
||||
removeVault.message=Διαγραφή κρύπτης;
|
||||
removeVault.description=Αυτό θα κάνει το Cryptomator να ξεχάσει αυτή την κρύπτη. Μπορείτε να την προσθέσετε ξανά. Κανένα κρυπτογραφημένο αρχείο δε θα διαγραφεί από τον σκληρό σας δίσκο.
|
||||
removeVault.confirmBtn=Διαγραφή Κρύπτης
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Αλλαγή κωδικού πρόσβασης
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Παρουσιάστηκε σφάλμα
|
||||
hub.registerFailed.description.deviceAlreadyExists=Αυτή η συσκευή είναι ήδη εγγεγραμμένη για διαφορετικό χρήστη. Προσπαθήστε να αλλάξετε τον λογαριασμό χρήστη ή να χρησιμοποιήσετε διαφορετική συσκευή.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Δεν επιτρέπεται η πρόσβαση
|
||||
hub.unauthorized.description=Δεν είστε εξουσιοδοτημένοι να ανοίξετε αυτή την κρύπτη. Επικοινωνήστε με τον ιδιοκτήτη τς κρύπτης για να ζητήσετε πρόσβαση.
|
||||
hub.unauthorized.description=Η συσκευή σας δεν έχει ακόμη εξουσιοδοτηθεί να έχει πρόσβαση σε αυτή την κρύπτη. Ζητήστε από τον κάτοχο της κρύπτης να την εξουσιοδοτήσει.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Απαιτείται ενέργεια
|
||||
hub.requireAccountInit.description.0=Για να συνεχίσετε, παρακαλούμε ολοκληρώστε τα βήματα που απαιτούνται στο δικό σας
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Χορηγός
|
||||
removeCert.title=Αφαίρεση Πιστοποιητικού
|
||||
removeCert.message=Αφαίρεση πιστοποιητικού υποστηρικτή;
|
||||
removeCert.description=Οι βασικές λειτουργίες του Cryptomator δεν επηρεάζονται από αυτό. Ούτε η πρόσβαση στις κρύπτες σας είναι περιορισμένη ούτε το επίπεδο ασφάλειας μειώνεται.
|
||||
removeCert.confirmBtn=Αφαίρεση
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Τέλος υποστήριξης για Dokany
|
||||
dokanySupportEnd.description=Ο τύπος τόμου Dokany δεν υποστηρίζεται πλέον από το Cryptomator. Οι ρυθμίσεις σας έχουν προσαρμοστεί για να χρησιμοποιούν τον προεπιλεγμένο τύπο τόμου. Μπορείτε να δείτε τον προεπιλεγμένο τύπο στις προτιμήσεις.
|
||||
dokanySupportEnd.preferencesBtn=Άνοιγμα Προτιμήσεων
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Περιορισμένη Πρόσβαση Κρύπτης
|
||||
retryIfReadonly.message=Δεν υπάρχει πρόσβαση εγγραφής στον κατάλογο κρύπτης
|
||||
retryIfReadonly.description=Το Cryptomator δεν μπορεί να γράψει στον κατάλογο κρύπτης. Μπορείτε να αλλάξετε την κρύπτη ώστε να είναι μόνο για ανάγνωση και να προσπαθήσετε ξανά. Αυτή η επιλογή μπορεί να απενεργοποιηθεί στις επιλογές κρύπτης.
|
||||
retryIfReadonly.retry=Αλλαγή και Επανάληψη
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Κοινή χρήση Κρύπτης
|
||||
shareVault.message=Θα θέλατε να μοιραστείτε την κρύπτη σας με άλλους;
|
||||
|
||||
198
src/main/resources/i18n/strings_en.properties
Normal file
198
src/main/resources/i18n/strings_en.properties
Normal file
@@ -0,0 +1,198 @@
|
||||
# Locale Specific CSS files such as CJK, RTL,...
|
||||
|
||||
# Generics
|
||||
## Button
|
||||
generic.button.apply=Apply
|
||||
generic.button.back=Back
|
||||
generic.button.cancel=Cancel
|
||||
generic.button.change=Change
|
||||
generic.button.choose=Choose…
|
||||
generic.button.close=Close
|
||||
generic.button.done=Done
|
||||
generic.button.next=Next
|
||||
|
||||
# Error
|
||||
|
||||
# Defaults
|
||||
|
||||
# Tray Menu
|
||||
traymenu.showMainWindow=Show
|
||||
traymenu.showPreferencesWindow=Preferences
|
||||
traymenu.quitApplication=Quit
|
||||
traymenu.vault.unlock=Unlock
|
||||
traymenu.vault.lock=Lock
|
||||
traymenu.vault.reveal=Reveal
|
||||
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=Add Vault
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=Choose a name for the vault
|
||||
addvaultwizard.new.namePrompt=Vault Name
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Where should Cryptomator store the encrypted files of your vault?
|
||||
addvaultwizard.new.locationLabel=Storage location
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerButton=Choose…
|
||||
addvaultwizard.new.directoryPickerTitle=Select Directory
|
||||
### Expert Settings
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=Create Vault
|
||||
### Information
|
||||
## Existing
|
||||
addvaultwizard.existing.chooseBtn=Choose…
|
||||
## Success
|
||||
addvaultwizard.success.nextStepsInstructions=Added vault "%s".\nYou need to unlock this vault to access or add contents. Alternatively you can unlock it at any later point in time.
|
||||
addvaultwizard.success.unlockNow=Unlock Now
|
||||
|
||||
# Remove Vault
|
||||
removeVault.confirmBtn=Remove Vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Change Password
|
||||
changepassword.enterOldPassword=Enter the current password for "%s"
|
||||
|
||||
# Forget Password
|
||||
forgetPassword.title=Forget Password
|
||||
forgetPassword.confirmBtn=Forget Password
|
||||
|
||||
# Unlock
|
||||
unlock.passwordPrompt=Enter password for "%s":
|
||||
unlock.unlockBtn=Unlock
|
||||
## Select
|
||||
unlock.chooseMasterkey.filePickerTitle=Select Masterkey File
|
||||
## Success
|
||||
unlock.success.revealBtn=Reveal Drive
|
||||
## Failure
|
||||
## Hub
|
||||
### Waiting
|
||||
### Receive Key
|
||||
### Register Device
|
||||
### Register Device Legacy
|
||||
### Registration Success
|
||||
hub.registerSuccess.unlockBtn=Unlock
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
### Requires Account Initialization
|
||||
### License Exceeded
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
|
||||
# Migration
|
||||
migration.title=Upgrade Vault
|
||||
## Start
|
||||
migration.start.header=Upgrade Vault
|
||||
## Run
|
||||
migration.run.enterPassword=Enter the password for "%s"
|
||||
migration.run.startMigrationBtn=Migrate Vault
|
||||
## Success
|
||||
migration.success.nextStepsInstructions=Migrated "%s" successfully.\nYou can now unlock your vault.
|
||||
migration.success.unlockNow=Unlock Now
|
||||
## Missing file system capabilities
|
||||
## Impossible
|
||||
|
||||
# Health Check
|
||||
## Start
|
||||
## Start Failure
|
||||
## Check Selection
|
||||
## Detail view
|
||||
## Result view
|
||||
## Fix Application
|
||||
|
||||
# Preferences
|
||||
preferences.title=Preferences
|
||||
## General
|
||||
preferences.general=General
|
||||
preferences.general.startHidden=Hide window when starting Cryptomator
|
||||
preferences.general.debugLogging=Enable debug logging
|
||||
## Interface
|
||||
## Volume
|
||||
preferences.volume=Virtual Drive
|
||||
## Updates
|
||||
preferences.updates=Updates
|
||||
preferences.updates.currentVersion=Current Version: %s
|
||||
preferences.updates.autoUpdateCheck=Check for updates automatically
|
||||
preferences.updates.checkNowBtn=Check Now
|
||||
preferences.updates.updateAvailable=Update to version %s available.
|
||||
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
# Vault Statistics
|
||||
## Read
|
||||
## Write
|
||||
|
||||
## Accesses
|
||||
|
||||
|
||||
# Main Window
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault
|
||||
main.vaultlist.contextMenu.lock=Lock
|
||||
main.vaultlist.contextMenu.unlockNow=Unlock Now
|
||||
main.vaultlist.contextMenu.reveal=Reveal Drive
|
||||
##Notificaition
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=LOCKED
|
||||
main.vaultDetail.unlockNowBtn=Unlock Now
|
||||
main.vaultDetail.optionsBtn=Vault Options
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=UNLOCKED
|
||||
main.vaultDetail.accessLocation=Your vault's contents are accessible here:
|
||||
main.vaultDetail.revealBtn=Reveal Drive
|
||||
main.vaultDetail.lockBtn=Lock
|
||||
main.vaultDetail.throughput.idle=idle
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Missing
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Upgrade Vault
|
||||
### Error
|
||||
|
||||
# Wrong File Alert
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=General
|
||||
vaultOptions.general.vaultName=Vault Name
|
||||
vaultOptions.general.actionAfterUnlock.reveal=Reveal Drive
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Mounting
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Choose…
|
||||
## Master Key
|
||||
vaultOptions.masterkey.changePasswordBtn=Change Password
|
||||
## Hub
|
||||
|
||||
# Recovery Key
|
||||
## Display Recovery Key
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
# Convert Vault
|
||||
|
||||
# New Password
|
||||
passwordStrength.messageLabel.0=Very weak
|
||||
passwordStrength.messageLabel.1=Weak
|
||||
passwordStrength.messageLabel.2=Fair
|
||||
passwordStrength.messageLabel.3=Strong
|
||||
passwordStrength.messageLabel.4=Very strong
|
||||
|
||||
# Quit
|
||||
|
||||
# Forced Quit
|
||||
|
||||
# Update Reminder
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
# Share Vault
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=¡Copiado!
|
||||
generic.button.done=Hecho
|
||||
generic.button.next=Siguiente
|
||||
generic.button.print=Imprimir
|
||||
generic.button.remove=Eliminar
|
||||
|
||||
# Error
|
||||
error.message=Ocurrió un error
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Desbloquear ahora
|
||||
removeVault.title=Eliminar "%s"
|
||||
removeVault.message=¿Eliminar bóveda?
|
||||
removeVault.description=Esto sólo hará que Cryptomator olvide la bóveda. Se la puede añadir de nuevo más tarde. Los archivos cifrados no se eliminarán del disco duro.
|
||||
removeVault.confirmBtn=Eliminar bóveda
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Cambiar contraseña
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Ha ocurrido un error al intentar registra
|
||||
hub.registerFailed.description.deviceAlreadyExists=Este dispositivo ya se ha registrado para otro usuario. Intente cambiar la cuenta de usuario o utilice un dispositivo diferente.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Acceso denegado
|
||||
hub.unauthorized.description=No tiene autorización para abrir esta bóveda. Contacta al propietario de la bóveda para solicitar acceso.
|
||||
hub.unauthorized.description=Su dispositivo aún no ha sido autorizado para acceder a esta bóveda. Pídale al propietario de la bóveda que lo autorice.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Acción requerida
|
||||
hub.requireAccountInit.description.0=Para continuar, por favor complete los pasos necesarios en su
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Patrocinador
|
||||
removeCert.title=Eliminar Certificado
|
||||
removeCert.message=¿Eliminar certificado de soporte?
|
||||
removeCert.description=Las características principales de Cryptomator no se ven afectadas por esto. No se restringe el acceso a sus bóvedas ni se reduce el nivel de seguridad.
|
||||
removeCert.confirmBtn=Eliminar
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Fin de soporte para Dokany
|
||||
dokanySupportEnd.description=El tipo de volumen Dokany ya no está soportado por Cryptomator. Su configuración se ajusta para utilizar el tipo de volumen predeterminado ahora. Puede ver el tipo predeterminado en las preferencias.
|
||||
dokanySupportEnd.preferencesBtn=Abrir preferencias
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Acceso restringido a la Bóveda
|
||||
retryIfReadonly.message=No tiene acceso de escritura al directorio de bóveda
|
||||
retryIfReadonly.description=Cryptomator no puede escribir en el directorio de la bóveda. Puede cambiar la bóveda para que sea de solo lectura e inténtelo de nuevo. Esta opción puede desactivarse en las opciones de bóveda.
|
||||
retryIfReadonly.retry=Cambiar y reintentar
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Compartir bóveda
|
||||
shareVault.message=¿Le gustaría compartir su bóveda con alguien más?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=کپی شد!
|
||||
generic.button.done=انجام شده
|
||||
generic.button.next=بعدی
|
||||
generic.button.print=چاپ
|
||||
generic.button.remove=حذف
|
||||
|
||||
# Error
|
||||
error.message=خطایی رخ داده است
|
||||
@@ -156,6 +155,7 @@ preferences.updates.upToDate=Cryptomator به روز می باشد.
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=حذف
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -210,6 +210,4 @@ vaultOptions.mount.mountPoint.directoryPickerButton=انتخاب کنید…
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
# Generics
|
||||
## Button
|
||||
generic.button.apply=Käytä
|
||||
generic.button.apply=Vahvista
|
||||
generic.button.back=Takaisin
|
||||
generic.button.cancel=Peruuta
|
||||
generic.button.change=Vaihda
|
||||
generic.button.change=Muuta
|
||||
generic.button.choose=Valitse…
|
||||
generic.button.close=Sulje
|
||||
generic.button.copy=Kopioi
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopioitu!
|
||||
generic.button.done=Valmis
|
||||
generic.button.next=Seuraava
|
||||
generic.button.print=Tulosta
|
||||
generic.button.remove=Poista
|
||||
|
||||
# Error
|
||||
error.message=Tapahtui virhe
|
||||
@@ -23,32 +22,27 @@ error.hyperlink.report=Ilmoita ongelmasta
|
||||
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
|
||||
error.lookupPermissionMessage=Cryptomator voi etsiä ratkaisun tähän ongelmaan verkosta. Tämä lähettää pyynnön ongelmatietokannallemme IP-osoitteestasi.
|
||||
error.dismiss=Ohita
|
||||
error.lookUpSolution=Etsi ratkaisu
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=Holvi
|
||||
defaults.vault.vaultName=Vault
|
||||
|
||||
# Tray Menu
|
||||
traymenu.showMainWindow=Näytä
|
||||
traymenu.showPreferencesWindow=Asetukset
|
||||
traymenu.lockAllVaults=Lukitse kaikki
|
||||
traymenu.lockAllVaults=Lukitse Kaikki
|
||||
traymenu.quitApplication=Sulje
|
||||
traymenu.vault.unlock=Avaa
|
||||
traymenu.vault.lock=Lukitse
|
||||
traymenu.vault.reveal=Paljasta
|
||||
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=Lisää holvi
|
||||
addvaultwizard.title=Lisää Vault
|
||||
## New
|
||||
addvaultwizard.new.title=Lisää uusi holvi
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=Valitse holvin nimi
|
||||
addvaultwizard.new.namePrompt=Holvin nimi
|
||||
addvaultwizard.new.nameInstruction=Anna uusi nimi Vaultille
|
||||
addvaultwizard.new.namePrompt=Vault Nimi
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Missä Cryptomatorin tulisi säilyttää holvisi salattuja tiedostoja?
|
||||
addvaultwizard.new.locationLoading=Etsitään paikallisesta tiedostojärjestelmästä pilvikansioita…
|
||||
addvaultwizard.new.locationInstruction=Missä pitäisi Cryptomator tallentaa salattuja tiedostoja Vault?
|
||||
addvaultwizard.new.locationLabel=Tallennustilan sijainti
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Oma sijainti
|
||||
@@ -65,11 +59,6 @@ addvaultwizard.new.validCharacters.chars=Sanamerkit (e.g. a, ж or 수)
|
||||
addvaultwizard.new.validCharacters.numbers=Numerot
|
||||
addvaultwizard.new.validCharacters.dashes=Hyphen (%s) tai alaviiva (%s)
|
||||
### Expert Settings
|
||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Ota lisäasetukset käyttöön
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Syötä arvo väliltä 36 ja 220 (oletus 220)
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Avaa dokumentaatio lisätietoja varten.
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.title=Salattujen tiedostonimien enimmäispituus
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Kelvollinen
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=Luo Uusi Vault
|
||||
addvaultwizard.new.generateRecoveryKeyChoice=Et voi käyttää tietojasi ilman salasanaasi. Haluatko palautusavaimen siltä varalta, että menetät salasanasi?
|
||||
@@ -93,7 +82,6 @@ addvault.new.readme.accessLocation.2=Tämä on salatun holvisi tallennuskansio.
|
||||
addvault.new.readme.accessLocation.3=Cryptomator salaa kaikki tänne siirtämäsi tiedostot. Voit työskennellä tässä kansiossa aivan samalla tavalla kuin muutenkin. Tämä on ainoastaan näkymä jossa salaus on purettu. Todellisuudessa kaikki tiedostot pysyvät salattuina aina.
|
||||
addvault.new.readme.accessLocation.4=Voit halutessasi poistaa tämän tiedoston. Poistaminen ei vaikuta Cryptomatorin toimintaan.
|
||||
## Existing
|
||||
addvaultwizard.existing.title=Lisää olemassa oleva holvi
|
||||
addvaultwizard.existing.instruction=Valitse olemassa olevan Cryptomator holvin "vault.cryptomator" -tiedosto. Mikäli "vault.cryptomator" -tiedostoa ei ole, valitse "masterkey.cryptomator" -tiedosto.
|
||||
addvaultwizard.existing.chooseBtn=Valitse…
|
||||
addvaultwizard.existing.filePickerTitle=Valitse Holvi -tiedosto
|
||||
@@ -105,31 +93,32 @@ addvaultwizard.success.unlockNow=Avaa Nyt
|
||||
# Remove Vault
|
||||
removeVault.title=Poista "%s"
|
||||
removeVault.message=Poistetaanko holvi?
|
||||
removeVault.description=Tämä toiminto ainoastaan poistaa valitun holvin Cryptomatorin näkymästä. Voit lisätä sen uudelleen. Salattuja tiedostoja ei poisteta levyltäsi.
|
||||
removeVault.description=Tämä toiminto ainoastaan poistaa valitun holvin Cryptomatorin näkymästä. Salattuja tiedostoja tai holvia itsessään ei poisteta.
|
||||
removeVault.confirmBtn=Poista Holvi
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Vaihda salasana
|
||||
changepassword.enterOldPassword=Kirjoita holvin "%s" nykyinen salasana
|
||||
changepassword.enterOldPassword=Syötä "%s": n nykyinen salasana
|
||||
changepassword.finalConfirmation=Ymmärrän, että tiedostojani ei voi palauttaa, mikäli unohdan salasanani.
|
||||
|
||||
# Forget Password
|
||||
forgetPassword.title=Unohda salasana
|
||||
forgetPassword.title=Unohda Salasana
|
||||
forgetPassword.message=Unohda tallennetut salasanat?
|
||||
forgetPassword.description=Tämä poistaa valitun holvin tallennetun salasanan järjestelmäsi avainrenkaasta.
|
||||
forgetPassword.confirmBtn=Unohda salasana
|
||||
forgetPassword.confirmBtn=Unohda Salasana
|
||||
|
||||
# Unlock
|
||||
unlock.title=Avaa "%s"
|
||||
unlock.passwordPrompt=Syötä holvin "%s" salasana:
|
||||
unlock.passwordPrompt=Syötä salasana "%s":lle
|
||||
unlock.savePassword=Muista salasana
|
||||
unlock.unlockBtn=Avaa
|
||||
## Select
|
||||
unlock.chooseMasterkey.message=Masterkey-tiedostoa ei löydy
|
||||
unlock.chooseMasterkey.description=Cryptomator ei paikantanut masterkey-tiedostoa holville "%s". Ole hyvä ja valitse tiedosto manuaalisesti.
|
||||
unlock.chooseMasterkey.filePickerTitle=Valitse masterkey-tiedosto
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator masterkey
|
||||
unlock.chooseMasterkey.message=Masterkey -tiedostoa ei löydy
|
||||
unlock.chooseMasterkey.description=Cryptomator ei paikantanut masterkey -tiedostoa holville "%s". Ole hyvä ja valitse tiedosto manuaalisesti.
|
||||
unlock.chooseMasterkey.filePickerTitle=Valitse Masterkey -tiedosto
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator Masterkey
|
||||
## Success
|
||||
unlock.success.message=Avaus onnistui
|
||||
unlock.success.message=Lukituksen purku onnistui
|
||||
unlock.success.description="%s" holvin sisältö on nyt saatavilla sen hallinnointikohteessa.
|
||||
unlock.success.rememberChoice=Muista valintani. Älä kysy uudelleen.
|
||||
unlock.success.revealBtn=Paljasta Asema
|
||||
@@ -137,14 +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=Aseman kirjain tai mukautettu liitospolku "%s" on jo käytössä.
|
||||
unlock.error.customPath.description.hideawayNotDir=Avaukseen käytettävää väliaikaista piilotettua tiedostoa "%3$s" ei voitu poistaa. Tarkista tiedosto ja poista se manuaalisesti.
|
||||
unlock.error.customPath.description.couldNotBeCleaned=Holviasi ei voilu liittää polkuun "%s". Yritä uudelleen tai valitse toinen polku.
|
||||
unlock.error.customPath.description.notEmptyDir=Mukautettu liitospolku "%s" ei ole tyhtjä kansio. Valitse tyhjä kansio ja yritä uudelleen.
|
||||
unlock.error.customPath.description.generic=Olet valinnut mukautetun liitospolun holvillesi, mutta sen kanssa ilmeni ongelma: %2$s
|
||||
unlock.error.restartRequired.message=Holvin avaus epäonnistui
|
||||
unlock.error.restartRequired.description=Vaihda aseman tyyppiä holvin asetuksissa tai käynnistä Cryptomator uudelleen.
|
||||
unlock.error.title="%s" avaaminen epäonnistui
|
||||
## 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.
|
||||
@@ -157,30 +138,15 @@ hub.auth.loginLink=Uudelleenohjaus epäonnistui? Avaa tästä manuaalisesti.
|
||||
hub.receive.message=Odotetaan vastausta…
|
||||
hub.receive.description=Cryptomator yhdistää Hub:iin. Ole hyvä ja odota.
|
||||
### Register Device
|
||||
hub.register.message=Uusi laite
|
||||
hub.register.description=Tämä on ensimmäinen Hub-yhteys tästä laitteesta. Rekisteröi se käyttäen Account Keytäsi.
|
||||
hub.register.nameLabel=Laitteen Nimi
|
||||
hub.register.invalidAccountKeyLabel=Virheellinen Account Key
|
||||
hub.register.registerBtn=Rekisteröidy
|
||||
### Register Device Legacy
|
||||
hub.register.legacy.occupiedMsg=Nimi on jo käytössä
|
||||
hub.register.legacy.description=Tämä on ensimmäinen Hub-yhteys tästä laitteesta. Ole hyvä ja rekisteröi se.
|
||||
### Registration Success
|
||||
hub.registerSuccess.message=Laite rekisteröity
|
||||
hub.registerSuccess.description=Laitteesi on rekisteröity onnistuneesti. Voit nyt avata holvin.
|
||||
hub.registerSuccess.unlockBtn=Avaa
|
||||
hub.registerSuccess.legacy.description=Käyttääksesi holvia, holvin omistajan on valtuutettava laitteesi.
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=Laitteen rekisteröinti epäonnistui
|
||||
hub.registerFailed.description.generic=Rekisteröinnissä tapahtui virhe. Löydät lisätietoja lokitiedostoista.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Tämä laite on jo rekisteröity toiselle käyttäjälle. Yritä vaihtaa käyttäjätiliä tai käytää toista laitetta.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Pääsy estetty
|
||||
hub.unauthorized.description=Laitteellasi ei ole pääsyvaltuutusta tähän holviin. Pyydä holvin omistajaa lisäämän valtuutus laitteellesi.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Toimia vaaditaan
|
||||
hub.requireAccountInit.description.0=Jatkaaksesi, ole hyvä ja suorita tarvittavat toimenpiteet
|
||||
hub.requireAccountInit.description.1=Hub käyttäjäprofiili
|
||||
hub.requireAccountInit.description.2=.
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Hub-lisenssi ei ole voimassa
|
||||
hub.invalidLicense.description=Cryptomator Hub:illasi ei ole voimassa olevaa lisenssiä. Ole hyvä ja ilmoita Hubin järjestelmänvalvojalle lisenssin päivittämiseksi tai sen uusimiseksi.
|
||||
@@ -228,335 +194,82 @@ migration.impossible.moreInfo=Varasto voidaan edelleen avata vanhemmalla versiol
|
||||
## Start
|
||||
health.title="%s" kuntotarkastus
|
||||
health.intro.header=Kuntotarkastus
|
||||
health.intro.text=Kuntotarkistus on kokoelma testejä, joilla havaitaan ja korjataan ongelmia holvissasi. Ole hyvä ja pidä mielessäsi:
|
||||
health.intro.remarkSync=Varmista että kaikki laitteet ovat täysin synkronoitu, tämä ratkaisee useimmat ongelmat.
|
||||
health.intro.remarkFix=Kaikkia ongelmia ei voida ratkaista.
|
||||
health.intro.remarkBackup=Jos tiedot ovat korruptoituneita, vain varmuuskopiosta on apua.
|
||||
health.intro.affirmation=Olen lukenut ja ymmärtänyt yllä mainitut huomiot
|
||||
## Start Failure
|
||||
health.fail.header=Virhe ladattaessa holvin asetuksia
|
||||
health.fail.ioError=Asetustiedostoa lukiessa tapahtui virhe.
|
||||
health.fail.parseError=Holvin asetuksia jäsentäessä tapahtui virhe.
|
||||
health.fail.moreInfo=Lisätietoja
|
||||
## Check Selection
|
||||
health.checkList.description=Valitse testit vasemmalta luettelosta tai käytä alla olevia painikkeita.
|
||||
health.checkList.selectAllButton=Valitse kaikki testit
|
||||
health.checkList.deselectAllButton=Poista testivalinnat
|
||||
health.check.runBatchBtn=Suorita valitut testit
|
||||
## Detail view
|
||||
health.check.detail.noSelectedCheck=Katsoaksesi tulokset, valitse suoritettu kuntotarkistus vasemmalta luettelosta.
|
||||
health.check.detail.checkScheduled=Testi on ajoitettu.
|
||||
health.check.detail.checkRunning=Testi on käynnissä…
|
||||
health.check.detail.checkSkipped=Testiä ei valittu suoritettavaksi.
|
||||
health.check.detail.checkFinished=Testi suoritettiin onnistuneesti.
|
||||
health.check.detail.checkFinishedAndFound=Testi suorietttiin loppuun. Ole hyvä ja katso tulokset.
|
||||
health.check.detail.checkFailed=Testi päättyi virheen vuoksi.
|
||||
health.check.detail.checkCancelled=Testi peruutettiin.
|
||||
health.check.detail.listFilters.label=Suodata
|
||||
health.check.detail.fixAllSpecificBtn=Korjaa kaikki tyyppiä
|
||||
health.check.exportBtn=Vie raportti
|
||||
## Result view
|
||||
health.result.severityFilter.all=Vakavuus - Kaikki
|
||||
health.result.severityFilter.good=Hyvä
|
||||
health.result.severityFilter.info=Huomio
|
||||
health.result.severityFilter.warn=Varoitus
|
||||
health.result.severityFilter.crit=Kriittinen
|
||||
health.result.severityTip.good=Vakavuus: Hyvä\nNormaali holvirakenne.
|
||||
health.result.severityTip.info=Vakavuus: Huomio\nHolvin rakenne ehjä. Ehdotetaan korjausta.
|
||||
health.result.severityTip.warn=Vakavuus: Varoitus\nHolvin rakenne korruptoitunut. Korjaus erittäin suositeltavaa.
|
||||
health.result.severityTip.crit=Vakavuus: Kriittinen\nHolvin rakenne korruptoitunut. Tietoja menetetty.
|
||||
health.result.fixStateFilter.all=Korjauksen tila - Kaikki
|
||||
health.result.fixStateFilter.fixable=Korjattavissa
|
||||
health.result.fixStateFilter.notFixable=Ei korjattavissa
|
||||
health.result.fixStateFilter.fixing=Korjataan…
|
||||
health.result.fixStateFilter.fixed=Korjattu
|
||||
health.result.fixStateFilter.fixFailed=Korjaus epäonnistui
|
||||
## Fix Application
|
||||
health.fix.fixBtn=Korjaa
|
||||
health.fix.successTip=Korjaus onnistui
|
||||
health.fix.failTip=Korjaus epäonnistui, katso lisätietoja lokista
|
||||
|
||||
# Preferences
|
||||
preferences.title=Asetukset
|
||||
## General
|
||||
preferences.general=Yleiset
|
||||
preferences.general.startHidden=Piilota ikkuna kun Cryptomator käynnistyy
|
||||
preferences.general.autoCloseVaults=Lukitse avoimet holvit automaattisesti kun ohjelma sammutetaan
|
||||
preferences.general.debugLogging=Ota virheloki käyttöön
|
||||
preferences.general.debugDirectory=Näytä lokitiedostot
|
||||
preferences.general.autoStart=Käynnistä Cryptomator järjestelmän käynnistyessä
|
||||
preferences.general.keychainBackend=Tallenna salasanat käyttäen
|
||||
preferences.general.quickAccessService=Lisää avatut holvit pikavalikkoon
|
||||
## Interface
|
||||
preferences.interface=Käyttöliittymä
|
||||
preferences.interface.theme=Ulkonäkö
|
||||
preferences.interface.theme.automatic=Automaattinen
|
||||
preferences.interface.theme.dark=Tumma
|
||||
preferences.interface.theme.light=Vaalea
|
||||
preferences.interface.unlockThemes=Hanki tumma tila
|
||||
preferences.interface.language=Kieli (vaatii uudelleenkäynnistyksen)
|
||||
preferences.interface.language.auto=Järjestelmän oletus
|
||||
preferences.interface.interfaceOrientation=Käyttöliittymän kätisyys
|
||||
preferences.interface.interfaceOrientation.ltr=Vasemmalta oikealle
|
||||
preferences.interface.interfaceOrientation.rtl=Oikealta vasemmalle
|
||||
preferences.interface.showTrayIcon=Näytä ilmoitusalueen kuvake (vaatii uudelleenkäynnistyksen)
|
||||
preferences.interface.compactMode=Käytä kompaktia holviluetteloa
|
||||
## Volume
|
||||
preferences.volume=Virtuaaliasema
|
||||
preferences.volume.type=Aseman oletustyyppi
|
||||
preferences.volume.type.automatic=Automaattinen
|
||||
preferences.volume.docsTooltip=Lue lisää asematyypeistä dokumentaatiosta.
|
||||
preferences.volume.fuseRestartRequired=Jotta muutokset tulevat voimaan, Cryptomator täytyy käynnistää uudelleen.
|
||||
preferences.volume.tcp.port=Oletus TCP-portti
|
||||
preferences.volume.supportedFeatures=Valittu asematyyppi tukee seuraavia ominaisuuksia:
|
||||
preferences.volume.feature.mountAuto=Automaattinen liitospolun valinta
|
||||
preferences.volume.feature.mountToDir=Mukautettu kansio litospolkuna
|
||||
preferences.volume.feature.mountToDriveLetter=Aseman kirjain liitospolkuna
|
||||
preferences.volume.feature.mountFlags=Mukautetut liitosasetukset
|
||||
preferences.volume.feature.readOnly=Liitos vain lukuoikeuksilla
|
||||
## Updates
|
||||
preferences.updates=Päivitykset
|
||||
preferences.updates.currentVersion=Nykyinen versio: %s
|
||||
preferences.updates.autoUpdateCheck=Tarkista päivitykset automaattisesti
|
||||
preferences.updates.checkNowBtn=Tarkista nyt
|
||||
preferences.updates.updateAvailable=Päivitys versioon %s saatavilla.
|
||||
preferences.updates.lastUpdateCheck=Edellinen tarkistus: %s
|
||||
preferences.updates.lastUpdateCheck.never=ei koskaan
|
||||
preferences.updates.lastUpdateCheck.recently=viimeaikoina
|
||||
preferences.updates.lastUpdateCheck.daysAgo=%s päivää sitten
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=%s tuntia sitten
|
||||
preferences.updates.checkFailed=Päivitysten etsiminen epäonnistui. Tarkista internetyhteys tai yritä myöhemmin uudelleen.
|
||||
preferences.updates.upToDate=Cryptomator on ajan tasalla.
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=Tue meitä
|
||||
preferences.contribute.noCertificate=Tue Cryptomatoria ja saa tukijasertifikaatti. Se on kuin lisenssiavain, mutta mahtaville ihmisille, jotka käyttävät vapaata ohjelmistoa. ;-)
|
||||
preferences.contribute.getCertificate=Eikö sinulla ole sellaista? Lue lisää miten voit hankkia sellaisen.
|
||||
preferences.contribute.promptText=Liitä tukijasertifikaatin koodi tähän
|
||||
preferences.contribute.thankYou=Kiitos tuestasi Cryptomatorin avoimeen kehittämiseen!
|
||||
preferences.contribute.donate=Lahjoita
|
||||
preferences.contribute.sponsor=Sponsori
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Poista sertifikaatti
|
||||
removeCert.message=Poista tukijasertifikaatti?
|
||||
removeCert.description=Tämä ei vaikuta Cryptomatorin ydintoimintoihin. Holveihin pääsyä ei rajoiteta eikä turvallisuutta heikennetä.
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
preferences.about=Tietoja
|
||||
|
||||
# Vault Statistics
|
||||
stats.title=%s tilastot
|
||||
## Read
|
||||
stats.read.throughput.idle=Luku: toimeton
|
||||
stats.read.throughput.kibs=Luku: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Luku: %.2f MiB/s
|
||||
stats.read.total.data.none=Dataa luettu: -
|
||||
stats.read.total.data.kib=Dataa luettu: %.1f KiB
|
||||
stats.read.total.data.mib=Dataa luettu: %.1f MiB
|
||||
stats.read.total.data.gib=Dataa luettu: %.1f GiB
|
||||
stats.decr.total.data.none=Dataa purettu: -
|
||||
stats.decr.total.data.kib=Dataa purettu: %.1f KiB
|
||||
stats.decr.total.data.mib=Dataa purettu: %.1f MiB
|
||||
stats.decr.total.data.gib=Dataa purettu: %.1f GiB
|
||||
stats.read.accessCount=Lukuja yhteensä: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Kirjoitus: toimeton
|
||||
stats.write.throughput.kibs=Kirjoitus: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Kirjoitus: %.2f MiB/s
|
||||
stats.write.total.data.none=Dataa kirjoitettu: -
|
||||
stats.write.total.data.kib=Dataa kirjoitettu: %.1f KiB
|
||||
stats.write.total.data.mib=Dataa kirjoitettu: %.1f MiB
|
||||
stats.write.total.data.gib=Dataa kirjoitettu: %.1f GiB
|
||||
stats.encr.total.data.none=Dataa salattu: -
|
||||
stats.encr.total.data.kib=Dataa salattu: %.1f KiB
|
||||
stats.encr.total.data.mib=Dataa salattu: %.1f MiB
|
||||
stats.encr.total.data.gib=Dataa salattu: %.1f GiB
|
||||
stats.write.accessCount=Kirjoituksia yhteensä: %d
|
||||
|
||||
## Accesses
|
||||
stats.access.current=Tiedostoja avattuna: %d
|
||||
stats.access.total=Avauksia yhteensä: %d
|
||||
|
||||
|
||||
# Main Window
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=Klikkaa tästä lisätäksesi holvin
|
||||
main.vaultlist.contextMenu.remove=Poista…
|
||||
main.vaultlist.contextMenu.lock=Lukitse
|
||||
main.vaultlist.contextMenu.unlock=Avaa…
|
||||
main.vaultlist.contextMenu.unlockNow=Avaa Nyt
|
||||
main.vaultlist.contextMenu.vaultoptions=Näytä holvin asetukset
|
||||
main.vaultlist.contextMenu.reveal=Paljasta Asema
|
||||
main.vaultlist.addVaultBtn.menuItemNew=Luo uusi holvi...
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=Avaa olemassa oleva holvi...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=Päivitys on saatavilla.
|
||||
main.notification.support=Tue Cryptomatoria.
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=Kiitos kun valitsit Cryptomatorin tiedostojesi suojaamiseen. Mikäli tarvitset apua, tutustu aloitusoppaaseemme:
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=LUKITTU
|
||||
main.vaultDetail.unlockBtn=Avaa…
|
||||
main.vaultDetail.unlockNowBtn=Avaa Nyt
|
||||
main.vaultDetail.optionsBtn=Holvin asetukset
|
||||
main.vaultDetail.passwordSavedInKeychain=Salasana on tallennettu
|
||||
main.vaultDetail.share=Jaa…
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=AVATTU
|
||||
main.vaultDetail.accessLocation=Holvisi sisältö on saatavilla täältä:
|
||||
main.vaultDetail.revealBtn=Paljasta Asema
|
||||
main.vaultDetail.copyUri=Kopioi URI
|
||||
main.vaultDetail.lockBtn=Lukitse
|
||||
main.vaultDetail.bytesPerSecondRead=Luku:
|
||||
main.vaultDetail.bytesPerSecondWritten=Kirjoitus:
|
||||
main.vaultDetail.throughput.idle=toimeton
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Holvin tilastot
|
||||
main.vaultDetail.locateEncryptedFileBtn=Etsi salattu tiedosto
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Valitse tiedosto holvistasi löytääksesi sen salatun vastineen
|
||||
main.vaultDetail.encryptedPathsCopied=Polut kopioitu leikepöydälle!
|
||||
main.vaultDetail.filePickerTitle=Valitse tiedosto holvin sisältä
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator ei löytänyt täältä holvia.
|
||||
main.vaultDetail.missing.recheck=Tarkista uudelleen
|
||||
main.vaultDetail.missing.remove=Poista holvilistalta…
|
||||
main.vaultDetail.missing.changeLocation=Vaihda holvin sijaintia…
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Päivitä Holvi
|
||||
main.vaultDetail.migratePrompt=Holvisi täytyy muuntaa uuteen muotoon ennen kuin voit avata sen
|
||||
### Error
|
||||
main.vaultDetail.error.info=Tapahtui virhe ladatessa holvia levyltä.
|
||||
main.vaultDetail.error.reload=Päivitä
|
||||
main.vaultDetail.error.windowTitle=Virhe ladatessa holvia
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Kuinka tiedostoja salataan
|
||||
wrongFileAlert.message=Yritkö salata nämä tiedostot?
|
||||
wrongFileAlert.instruction.0=Salaa tiedostot seuraavasti:
|
||||
wrongFileAlert.instruction.1=1. Avaa holvisi.
|
||||
wrongFileAlert.instruction.2=2. Klikkaa "Paljasta" avataksesi aseman tiedostoselaimessasi.
|
||||
wrongFileAlert.instruction.3=3. Siirrä tiedostosi asemalle.
|
||||
wrongFileAlert.link=Lisäapua varten katso
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=Yleiset
|
||||
vaultOptions.general.vaultName=Holvin nimi
|
||||
vaultOptions.general.autoLock.lockAfterTimePart1=Lukitse kun ollut käyttämättä
|
||||
vaultOptions.general.autoLock.lockAfterTimePart2=minuuttia
|
||||
vaultOptions.general.unlockAfterStartup=Avaa holvi kun Cryptomator käynnistyy
|
||||
vaultOptions.general.actionAfterUnlock=Avauksen jälkeen
|
||||
vaultOptions.general.actionAfterUnlock.ignore=Älä tee mitään
|
||||
vaultOptions.general.vaultName=Vault Nimi
|
||||
vaultOptions.general.actionAfterUnlock.reveal=Paljasta Asema
|
||||
vaultOptions.general.actionAfterUnlock.ask=Kysy
|
||||
vaultOptions.general.startHealthCheckBtn=Aloita kuntotarkastus
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Liittäminen
|
||||
vaultOptions.mount.info=Avaa virtuaaliaseman asetukset muuttaaksesi oletuksia.
|
||||
vaultOptions.mount.readonly=Vain luku
|
||||
vaultOptions.mount.customMountFlags=Mukautetut liitosasetukset
|
||||
vaultOptions.mount.winDriveLetterOccupied=käytössä
|
||||
vaultOptions.mount.mountPoint=Liitoskohta
|
||||
vaultOptions.mount.mountPoint.auto=Valitse sopiva sijainti automaattisesti
|
||||
vaultOptions.mount.mountPoint.driveLetter=Käytä määritettyä asemakirjainta
|
||||
vaultOptions.mount.mountPoint.custom=Käytä valittua kansiota
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Valitse…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Valitse kansio
|
||||
vaultOptions.mount.volumeType.default=Oletus (%s)
|
||||
vaultOptions.mount.volumeType.restartRequired=Jotta tätä asematyyppiä voidaan käyttää, Cryptomator täytyy käynnistää uudelleen.
|
||||
vaultOptions.mount.volume.tcp.port=TCP-portti
|
||||
vaultOptions.mount.volume.type=Aseman tyyppi
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Salasana
|
||||
vaultOptions.masterkey.changePasswordBtn=Vaihda salasana
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Unohda tallennettu salasana
|
||||
vaultOptions.masterkey.recoveryKeyExplanation=Palautusavain on ainoa tapa päästä käsiksi holviin jos unohdat salasanasi.
|
||||
vaultOptions.masterkey.showRecoveryKeyBtn=Näytä Palautusavain
|
||||
vaultOptions.masterkey.recoverPasswordBtn=Palauta salasana
|
||||
## Hub
|
||||
vaultOptions.hub=Palautus
|
||||
vaultOptions.hub.convertInfo=Voit käyttää palautusavainta muuttaaksesi tämä Hub-holvin salasanapohjaiseksi holviksi hätätapauksessa.
|
||||
vaultOptions.hub.convertBtn=Muunna salasanapohjaiseksi holviksi
|
||||
|
||||
# Recovery Key
|
||||
## Display Recovery Key
|
||||
recoveryKey.display.title=Näytä palautusavain
|
||||
recoveryKey.create.message=Salasana vaaditaan
|
||||
recoveryKey.create.description=Syötä salasana holville "%s" näyttääksesi sen palautusavaimen.
|
||||
recoveryKey.display.description=Tällä palautusavaimella voidaan palauttaa pääsy holviin "%s":
|
||||
recoveryKey.display.StorageHints=Pidä se hyvin tallessa, esimerkiksi\n • Säilytä se salasananhallintaohjelmassa\n • Tallenna se USB-asemalle\n • Tulosta se paperille
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Palauta salasana
|
||||
recoveryKey.recover.prompt=Syötä palautusavain holville "%s":
|
||||
recoveryKey.recover.correctKey=Tämä palautusavain on oikea
|
||||
recoveryKey.recover.wrongKey=Tämä palautusavain kuuluu jollekin toiselle holville
|
||||
recoveryKey.recover.invalidKey=Tämä palautusavain ei ole kelvollinen
|
||||
recoveryKey.printout.heading=Cryptomator palautusavain\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Palauta
|
||||
### Recovery Key Password Reset Success
|
||||
recoveryKey.recover.resetSuccess.message=Salasanan palautus onnistui
|
||||
recoveryKey.recover.resetSuccess.description=Voit avata holvin uudella salasanalla.
|
||||
|
||||
# Convert Vault
|
||||
convertVault.title=Muunna holvi
|
||||
convertVault.convert.convertBtn.before=Muunna
|
||||
convertVault.convert.convertBtn.processing=Muunnetaan…
|
||||
convertVault.success.message=Muuntaminen onnistui
|
||||
convertVault.hubToPassword.success.description=Voit nyt avata holvin valitulla salasanalla ilman Hub-yhteyttä.
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=Syötä uusi salasana
|
||||
newPassword.reenterPassword=Vahvista uusi salasana
|
||||
newPassword.passwordsMatch=Salasanat täsmäävät!
|
||||
newPassword.passwordsDoNotMatch=Salasanat eivät täsmää
|
||||
passwordStrength.messageLabel.tooShort=Käytä ainakin %d merkkiä
|
||||
passwordStrength.messageLabel.0=Erittäin heikko
|
||||
passwordStrength.messageLabel.1=Heikko
|
||||
passwordStrength.messageLabel.2=Kohtalainen
|
||||
passwordStrength.messageLabel.3=Vahva
|
||||
passwordStrength.messageLabel.4=Erittäin vahva
|
||||
|
||||
# Quit
|
||||
quit.title=Lopeta ohjelma
|
||||
quit.message=Holveja on auki
|
||||
quit.description=Vahvista että haluat lopettaa. Cryptomator lukitsee kaikki avatut holvit datan menetyksen ehkäisemiseksi.
|
||||
quit.lockAndQuitBtn=Lukitse ja lopeta
|
||||
|
||||
# Forced Quit
|
||||
quit.forced.message=Joitain holveja ei voitu lukita
|
||||
quit.forced.description=Holvien lukiseminen estyi odottavien tehtävien tai avattujen tiedostojen vuoksi. Voit pakottaa lukituksen, mutta datasiirron keskeyttäminen voi johtaa datan menetykseen.
|
||||
quit.forced.forceAndQuitBtn=Pakota ja lopeta
|
||||
|
||||
# Update Reminder
|
||||
updateReminder.title=Päivitysten tarkistus
|
||||
updateReminder.message=Tarkistetaanko päivitykset?
|
||||
updateReminder.description=Pysy ajan tasalla uusista ominaisuuksista, korjauksista ja turvallisuusparannuksista. Suosittelemme tarkistamaan päivitykset automaattisesti.
|
||||
updateReminder.notNow=Ei nyt
|
||||
updateReminder.yesOnce=Kyllä, vain tämän kerran
|
||||
updateReminder.yesAutomatically=Kyllä, automaattisesti
|
||||
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=Avaa asetukset
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Jaa holvi
|
||||
shareVault.message=Haluatko jakaa holvisi muiden kanssa?
|
||||
shareVault.description=Ole aina varuillasi jakaessasi holvia muiden kanssa. Noudata näitä ohjeita:
|
||||
shareVault.instruction.1=1. Jaa käyttöoikeus salattuun holvikansioon pilvipalvelun kautta.
|
||||
shareVault.instruction.2=2. Jaa holvin salasana turvallisella tavalla.
|
||||
shareVault.remarkBestPractices=Lisätietoja varten tutustu hyvien käytäntöjen suosituksiin dokumentaatiossamme.
|
||||
shareVault.docsTooltip=Avaa dokumentaatio lukeaksesi lisää holvein jakamisesta.
|
||||
shareVault.visitHub=Käy Cryptomator Hubissa
|
||||
|
||||
shareVault.hub.message=Kuinka jakaa Hub -holvi
|
||||
shareVault.hub.instruction.1=1. Jaa käyttöoikeus salattuun holvikansioon pilvipalvelun kautta.
|
||||
shareVault.hub.openHub=Avaa Cryptomator Hub
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Nakopya na!
|
||||
generic.button.done=Tapos na
|
||||
generic.button.next=Sunod
|
||||
generic.button.print=I-print
|
||||
generic.button.remove=Tanggalin
|
||||
|
||||
# Error
|
||||
error.message=Error %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=I-unlock Ngayon
|
||||
removeVault.title=Tanggalin %s
|
||||
removeVault.message=Itangal ang vault?
|
||||
removeVault.description=Makakalimutan lang nito ang Cryptomator tungkol sa vault na ito. Maaari mo itong idagdag muli. Walang matatanggal na mga naka-encrypt na file mula sa iyong hard drive.
|
||||
removeVault.confirmBtn=Itangal ang vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Palitan ANG password
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Nagkaroon ng error sa proseso ng pag regi
|
||||
hub.registerFailed.description.deviceAlreadyExists=Ang device na ito ay registrado na sa ibang user. Subukang palitan ang user account o gumamit ng ibang device.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Walang pahintulot
|
||||
hub.unauthorized.description=Hindi pa pinahihintulutan ang iyong device na i-access ang vault na ito. Hilingin sa may-ari ng vault na pahintulutan ito.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Kinakailangan ang pagkilos
|
||||
hub.requireAccountInit.description.0=Upang magpatuloy, mangyaring kumpletuhin ang mga hakbang na kinakailangan sa iyong
|
||||
@@ -335,6 +336,7 @@ preferences.contribute.getCertificate=Wala ka na ba? Alamin kung paano mo ito ma
|
||||
preferences.contribute.promptText=I-paste ang code ng certificate ng tagasuporta dito
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Tanggalin
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -540,8 +542,6 @@ dokanySupportEnd.message=Pagtatapos ng suporta para sa Dokany
|
||||
dokanySupportEnd.description=Ang uri ng volume na Dokany ay hindi na sinusuportahan ng Cryptomator. Isinasaayos ang iyong mga setting upang magamit ang default na uri ng volume ngayon. Maaari mong tingnan ang default na uri sa mga kagustuhan.
|
||||
dokanySupportEnd.preferencesBtn=Buksan ang Mga Kagustuhan
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Ibahagi ang Vault
|
||||
shareVault.message=Gusto mo bang ibahagi ang iyong vault sa iba?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copié !
|
||||
generic.button.done=OK
|
||||
generic.button.next=Suivant
|
||||
generic.button.print=Imprimer
|
||||
generic.button.remove=Supprimer
|
||||
|
||||
# Error
|
||||
error.message=Une erreur s'est produite
|
||||
@@ -23,9 +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 chercher une solution à ce problème en ligne. Une requête sera envoyée à notre base de données de problèmes à partir de votre adresse IP.
|
||||
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=Chercher une solution
|
||||
error.lookUpSolution=Rechercher la solution
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=Coffre
|
||||
@@ -66,7 +65,7 @@ addvaultwizard.new.validCharacters.numbers=Nombres
|
||||
addvaultwizard.new.validCharacters.dashes=Tiret (%s) ou tiret du bas (%s)
|
||||
### Expert Settings
|
||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Activer les paramètres experts
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Entrez une valeur comprise entre 36 et 220 (par défaut 220)
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Entrez une valeur entre 36 et 220 (par défaut 220)
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Ouvrez la documentation pour en savoir plus.
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.title=Longueur maximale des noms de fichiers chiffrés
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Valide
|
||||
@@ -95,7 +94,7 @@ 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.chooseBtn=Choisir...
|
||||
addvaultwizard.existing.filePickerTitle=Sélectionnez le fichier correspondant au volume chiffré
|
||||
addvaultwizard.existing.filePickerMimeDesc=Coffre-fort Cryptomator
|
||||
## Success
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Déverrouiller
|
||||
removeVault.title=Supprimer "%s"
|
||||
removeVault.message=Supprimer le coffre ?
|
||||
removeVault.description=Ceci ne fera que retirer ce coffre de Cryptomator. Vous pourrez l’ajouter à nouveau plus tard. Aucun fichier chiffré ne sera supprimé de votre disque dur.
|
||||
removeVault.confirmBtn=Supprimer le coffre
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Modifier le mot de passe
|
||||
@@ -127,7 +127,7 @@ unlock.unlockBtn=Déverrouiller
|
||||
unlock.chooseMasterkey.message=Fichier Masterkey introuvable
|
||||
unlock.chooseMasterkey.description=Impossible de trouver le fichier clef à l'adresse attendue pour l'espace chiffré "%s". Veuillez sélectionner le fichier clef manuellement.
|
||||
unlock.chooseMasterkey.filePickerTitle=Sélectionner le fichier clef
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Clé principale Cryptomator
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=\ clé principale Cryptomator
|
||||
## Success
|
||||
unlock.success.message=Déverrouillage réussi
|
||||
unlock.success.description=“%s” déverrouillé ! Le contenu de votre espace chiffré est maintenant accessible par son lecteur virtuel.
|
||||
@@ -142,7 +142,7 @@ unlock.error.customPath.description.hideawayNotDir=Le fichier temporaire et cach
|
||||
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
|
||||
unlock.error.restartRequired.message=Impossible de déverrouiller le coffre
|
||||
unlock.error.restartRequired.message=Impossible de déverrouiller le volume
|
||||
unlock.error.restartRequired.description=Modifiez le type de volume dans les options du coffre ou redémarrez Cryptomator.
|
||||
unlock.error.title=Échec du déverrouillage de "%s"
|
||||
## Hub
|
||||
@@ -152,7 +152,7 @@ hub.noKeychain.openBtn=Ouvrir les préférences
|
||||
### Waiting
|
||||
hub.auth.message=Authentification en cours…
|
||||
hub.auth.description=Vous devriez automatiquement être redirigé vers la page de connexion.
|
||||
hub.auth.loginLink=Vous n'êtes pas redirigé·e ? Cliquez ici pour l'ouvrir.
|
||||
hub.auth.loginLink=Vous n'avez pas été redirigé(e) ? Cliquez ici pour l'ouvrir.
|
||||
### Receive Key
|
||||
hub.receive.message=Traitement de la réponse…
|
||||
hub.receive.description=Cryptomator est en train de recevoir et de traiter la réponse de Hub. Veuillez patienter.
|
||||
@@ -171,12 +171,12 @@ hub.registerSuccess.description=Votre appareil est enregistré avec succès. Vou
|
||||
hub.registerSuccess.unlockBtn=Déverrouiller
|
||||
hub.registerSuccess.legacy.description=Pour accéder au coffre, votre appareil doit être autorisé par le propriétaire du coffre.
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=Échec de l'enregistrement de l'appareil
|
||||
hub.registerFailed.message=Echec de l'enregistrement de l'appareil
|
||||
hub.registerFailed.description.generic=Le processus de nommage a retourné une erreur. Pour plus de détails, regardez dans le journal de l'application.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Cet appareil est déjà enregistré pour un autre utilisateur. Essayez de changer de compte ou utilisez un autre appareil.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Accès refusé
|
||||
hub.unauthorized.description=Vous n'êtes pas autorisé à ouvrir ce coffre. Contactez le propriétaire du coffre pour en demander l'accès.
|
||||
hub.unauthorized.description=Votre appareil n'a pas encore été autorisé à accéder à ce coffre. Demandez au propriétaire du coffre de l'autoriser.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Action requise
|
||||
hub.requireAccountInit.description.0=Pour continuer, veuillez compléter les étapes requises
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Parrain
|
||||
removeCert.title=Supprimer le certificat
|
||||
removeCert.message=Supprimer le certificat de soutien ?
|
||||
removeCert.description=
|
||||
removeCert.confirmBtn=Retirer
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Fin de la prise en charge de Dokany
|
||||
dokanySupportEnd.description=Le type de volume Dokany n'est plus pris en charge par Cryptomator. Vos paramètres sont à présent ajustés pour utiliser le type de volume par défaut. Vous pouvez voir le type par défaut dans les préférences.
|
||||
dokanySupportEnd.preferencesBtn=Ouvrir les préférences
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Accès restreint au coffre
|
||||
retryIfReadonly.message=Pas d'accès en écriture au dossier du coffre
|
||||
retryIfReadonly.description=Cryptomator ne peut pas écrire dans le dossier du coffre. Vous pouvez passer le coffre en mode lecture seule et réessayer. Cette option peut être désactivée dans les options du coffre.
|
||||
retryIfReadonly.retry=Changer et réessayer
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Partager le coffre
|
||||
shareVault.message=Vous aimeriez partager votre coffre avec d'autres personnes ?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copiado!
|
||||
generic.button.done=Feito
|
||||
generic.button.next=Seguinte
|
||||
generic.button.print=Imprimir
|
||||
generic.button.remove=Eliminar
|
||||
|
||||
# Error
|
||||
error.message=Produciuse un erro
|
||||
@@ -82,6 +81,7 @@ lock.forced.retryBtn=Tentar de novo
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Eliminar
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -132,6 +132,4 @@ lock.forced.retryBtn=Tentar de novo
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=הועתק!
|
||||
generic.button.done=סיום
|
||||
generic.button.next=הבא
|
||||
generic.button.print=הדפס
|
||||
generic.button.remove=הסר
|
||||
|
||||
# Error
|
||||
error.message=אירעה שגיאה
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=בטל נעילה כעת
|
||||
removeVault.title=הסר כספת
|
||||
removeVault.message=להסיר את ה vault?
|
||||
removeVault.description=זה יגרום ל-Cryptomator לשכוח מהכספת הזו. תוכל/י להוסיף אותה שוב מאוחר יותר. קבצים מוצפנים לא ימחקו מהכונן שלך.
|
||||
removeVault.confirmBtn=הסר כספת
|
||||
|
||||
# Change Password
|
||||
changepassword.title=שנה סיסמה
|
||||
@@ -159,6 +159,7 @@ hub.registerSuccess.unlockBtn=בטל נעילה
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=הגישה נדחתה
|
||||
hub.unauthorized.description=המכשיר שלך טרם אושר לגשת לכספת הזאת. יש לבקש אישור גישה מבעל הכספת.
|
||||
### Requires Account Initialization
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=רישיון האב לא תקף
|
||||
@@ -304,6 +305,7 @@ preferences.contribute.getCertificate=עדיין אין לכם אחד? לימד
|
||||
preferences.contribute.promptText=הדבק את קוד תעודת התומך כאן
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=הסר
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -491,6 +493,4 @@ updateReminder.notNow=לא עכשיו
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=פתח העדפות
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=कॉपी हुआ!
|
||||
generic.button.done=हो गया
|
||||
generic.button.next=अगला
|
||||
generic.button.print=प्रिंट करें
|
||||
generic.button.remove=हटाएँ
|
||||
|
||||
# Error
|
||||
error.message=एक त्रुटि पाई गई
|
||||
@@ -101,6 +100,7 @@ addvaultwizard.success.unlockNow=अब अनलॉक करें
|
||||
removeVault.title=वॉल्ट हटाए
|
||||
removeVault.message=वॉल्ट हटाए?
|
||||
removeVault.description=यह करने से सिर्फ क्रिप्टोमेटर इस वॉल्ट के बारे में भूल जाएगा। आप इस वॉल्ट को वापस ऐड कर पाएंगे। कोई भी एन्क्रिप्टेड फाइल आपकी हार्ड डिस्क से नहीं डिलीट होगी।
|
||||
removeVault.confirmBtn=वॉल्ट हटाए
|
||||
|
||||
# Change Password
|
||||
changepassword.title=पासवर्ड बदलें
|
||||
@@ -221,6 +221,7 @@ preferences.updates.updateAvailable=संस्करण %s की तरफ
|
||||
preferences.contribute=हमें सपोर्ट करें
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=हटाएँ
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -314,6 +315,4 @@ quit.forced.message=कुछ वॉल्ट्स लॉक नहीं ह
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.preferencesBtn=प्राथमिकताएँ खोलें
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopirano!
|
||||
generic.button.done=Gotovo
|
||||
generic.button.next=Sljedeći
|
||||
generic.button.print=Ispiši
|
||||
generic.button.remove=Ukloni
|
||||
|
||||
# Error
|
||||
error.message=Greška: %s
|
||||
@@ -86,6 +85,7 @@ addvaultwizard.success.unlockNow=Otključaj sada
|
||||
# Remove Vault
|
||||
removeVault.title=Ukloni trezor
|
||||
removeVault.description=Ovo će jedino učiniti da Cryptomator zaboravi trezor. Možete ga kasnije ponovno dodati. Niti jedna šifrirana datoteka neće biti uklonjena s Vašeg tvrdog diska.
|
||||
removeVault.confirmBtn=Ukloni trezor
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Promijeni lozinku
|
||||
@@ -232,6 +232,7 @@ preferences.contribute.getCertificate=Još ga nemate? Naučite kako ga dobiti.
|
||||
preferences.contribute.promptText=Zalijepi certifikat podržavatelja ovdje
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Ukloni
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -381,6 +382,4 @@ quit.lockAndQuitBtn=Zaključaj i napusti
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Másolva!
|
||||
generic.button.done=Kész
|
||||
generic.button.next=Következő
|
||||
generic.button.print=Nyomtatás
|
||||
generic.button.remove=Eltávolítás
|
||||
|
||||
# Error
|
||||
error.message=Hiba: %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Azonnali feloldás
|
||||
removeVault.title=Széf eltávolitása
|
||||
removeVault.message=Vault eltávolitása?
|
||||
removeVault.description=Ez kizárolag a Cryptomator-ból távolitja el ezt a széfet. Később hozzáadhatja újra. A titkosított fájlokat nem törli a merevlemezről.
|
||||
removeVault.confirmBtn=Széf eltávolitása
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Jelszó megváltoztatása
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Hiba történt a regisztrációs folyamat
|
||||
hub.registerFailed.description.deviceAlreadyExists=Ez az eszköz már egy másik felhasználóhoz van regisztrálva. Próbáljon meg felhasználói fiókot váltani, vagy használjon egy másik eszközt.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Hozzáférés megtagadva
|
||||
hub.unauthorized.description=Eszköze még nem kapott engedélyt ehhez a széfhez. Kérje a széf tulajdonosát, hogy engedélyezze a hozzáférést.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Beavatkozás szükséges
|
||||
hub.requireAccountInit.description.0=A folytatáshoz kérlek töltsd ki a szükséges lépéseket a te
|
||||
@@ -342,6 +343,7 @@ preferences.contribute.sponsor=Szponzor
|
||||
removeCert.title=Tanúsítvány eltávolítása
|
||||
removeCert.message=Eltávolítja a támogatói tanúsítványt?
|
||||
removeCert.description=A Cryptomator alapvető funkcióit ez nem érinti. Sem a széfekhez való hozzáférés nem korlátozott, sem a biztonsági szint nem csökken.
|
||||
removeCert.confirmBtn=Eltávolítás
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -551,8 +553,6 @@ dokanySupportEnd.message=Vége a Dokany támogatásának
|
||||
dokanySupportEnd.description=A Cryptomator nem támogatja tovább a Dokany kötettípust. A beállítások az alapértelmezett kötettípus használatára lettek állítva. Az alapértelmezett típust a beállítások közt tekintheted meg.
|
||||
dokanySupportEnd.preferencesBtn=Beállítások megnyitása
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Széf megosztása
|
||||
shareVault.message=Szeretné megosztani a széfét másokkal?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Tersalin!
|
||||
generic.button.done=Selesai
|
||||
generic.button.next=Lanjut
|
||||
generic.button.print=Cetak
|
||||
generic.button.remove=Hapus
|
||||
|
||||
# Error
|
||||
error.message=Terjadi kesalahan %s
|
||||
@@ -28,7 +27,7 @@ error.dismiss=Tutup
|
||||
error.lookUpSolution=Cari tahu solusinya
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=Brangkas
|
||||
defaults.vault.vaultName=Vault
|
||||
|
||||
# Tray Menu
|
||||
traymenu.showMainWindow=Tampilkan
|
||||
@@ -42,7 +41,7 @@ traymenu.vault.reveal=Perlihatkan
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=Tambah Brankas
|
||||
## New
|
||||
addvaultwizard.new.title=Tambah Brankas Baru
|
||||
addvaultwizard.new.title=Tambah Vault baru
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=Buat sebuah nama untuk brankas
|
||||
addvaultwizard.new.namePrompt=Nama Brankas
|
||||
@@ -58,8 +57,8 @@ addvaultwizard.new.fileAlreadyExists=Sudah ada file atau direktori dengan nama v
|
||||
addvaultwizard.new.locationDoesNotExist=Direktori pada path yang dipilih tidak tersedia atau tidak dapat diakses
|
||||
addvaultwizard.new.locationIsNotWritable=Anda tidak memiliki hak akses untuk menulis pada path yang dipilih
|
||||
addvaultwizard.new.locationIsOk=Lokasi yang sesuai dengan vault Anda
|
||||
addvaultwizard.new.invalidName=Nama brangkas tidak valid
|
||||
addvaultwizard.new.validName=Nama brangkas yang valid
|
||||
addvaultwizard.new.invalidName=Nama Vault tidak valid
|
||||
addvaultwizard.new.validName=Nama vault yang valid
|
||||
addvaultwizard.new.validCharacters.message=Nama vault mungkin berisi karakter berikut:
|
||||
addvaultwizard.new.validCharacters.chars=Karakter kata (mis. a, ж or 수)
|
||||
addvaultwizard.new.validCharacters.numbers=Angka
|
||||
@@ -71,7 +70,7 @@ addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Buka dokumentasi u
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.title=Panjang maksimum nama file terenkripsi
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Valid
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=Buat Brangkas
|
||||
addvaultwizard.new.createVaultBtn=Buat Vault
|
||||
addvaultwizard.new.generateRecoveryKeyChoice=Anda tidak dapat mengakses data tanpa kata sandi yang Anda miliki. Apa Anda ingin sebuah kunci pemulihan untuk berjaga-jaga jika seandainya Anda kehilangan kata sandi?
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=Ya tolong, Lebih baik aman daripada menyesal
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.no=Tidak terima kasih, Saya tidak akan kehilangan kata sandi saya
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Buka Kunci Sekarang
|
||||
removeVault.title=Hapus Vault
|
||||
removeVault.message=Hapus vault?
|
||||
removeVault.description=Tindakan ini hanya akan membuat Cryptomator melupakan vault ini. Anda dapat menambahkan vault ini lagi nanti. File yang telah dienkripsi tidak akan dihapus dari hard drive Anda.
|
||||
removeVault.confirmBtn=Hapus Vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Ubah Kata Sandi
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Kesalahan terjadi dalam proses pendaftara
|
||||
hub.registerFailed.description.deviceAlreadyExists=Perangkat ini sudah terdaftar untuk pengguna lain. Cobalah menggunakan akun pengguna atau perangkat yang berbeda.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Akses ditolak
|
||||
hub.unauthorized.description=Perangkat Anda belum diizinkan mengakses vault ini. Mintalah pemilik vault untuk mengizinkannya.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Tindakan diperlukan
|
||||
hub.requireAccountInit.description.0=Untuk melanjutkan, silakan lengkapi langkah-langkah yang diperlukan
|
||||
@@ -286,7 +287,6 @@ preferences.general.debugLogging=Aktifkan pencatatan debug
|
||||
preferences.general.debugDirectory=Perlihatkan file log
|
||||
preferences.general.autoStart=Jalankan Cryptomator saat sistem dimulai
|
||||
preferences.general.keychainBackend=Simpan kata sandi dengan
|
||||
preferences.general.quickAccessService=Tambahkan brankas terbuka ke area akses cepat
|
||||
## Interface
|
||||
preferences.interface=Tampilan
|
||||
preferences.interface.theme=Tampilan & Suasana
|
||||
@@ -300,7 +300,6 @@ preferences.interface.interfaceOrientation=Orientasi Antarmuka
|
||||
preferences.interface.interfaceOrientation.ltr=Kiri ke Kanan
|
||||
preferences.interface.interfaceOrientation.rtl=Kanan ke Kiri
|
||||
preferences.interface.showTrayIcon=Tampilkan ikon tray (aplikasi perlu dimuat ulang)
|
||||
preferences.interface.compactMode=Aktifkan daftar brankas kompak
|
||||
## Volume
|
||||
preferences.volume=Drive Virtual
|
||||
preferences.volume.type=Jenis Default Volume
|
||||
@@ -320,13 +319,6 @@ preferences.updates.currentVersion=Versi Saat Ini: %s
|
||||
preferences.updates.autoUpdateCheck=Otomatis periksa update
|
||||
preferences.updates.checkNowBtn=Periksa Sekarang
|
||||
preferences.updates.updateAvailable=Pembaharuan ke versi %s tersedia.
|
||||
preferences.updates.lastUpdateCheck=Terakhir Diperiksa: %s
|
||||
preferences.updates.lastUpdateCheck.never=jangan pernah
|
||||
preferences.updates.lastUpdateCheck.recently=baru-baru ini
|
||||
preferences.updates.lastUpdateCheck.daysAgo=%s hari yang lalu
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=%s jam yang lalu
|
||||
preferences.updates.checkFailed=Gagal mencari pembaruan. Harap periksa koneksi internet Anda atau coba lagi nanti.
|
||||
preferences.updates.upToDate=Cryptomator versi terkini.
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=Dukung Kami
|
||||
@@ -334,14 +326,9 @@ preferences.contribute.registeredFor=Sertifikat supporter terdaftar atas nama %s
|
||||
preferences.contribute.noCertificate=Dukung Cryptomator dan terima sebuah sertifikat supporter. Sertifikat ini layaknya kunci lisensi, tetapi hanya untuk orang-orang hebat yang menggunakan aplikasi versi gratis. ;-)
|
||||
preferences.contribute.getCertificate=Belum punya? Pelajari bagaimana Anda bisa mendapatkannya.
|
||||
preferences.contribute.promptText=Tempel kode sertifikat supporter di sini
|
||||
preferences.contribute.thankYou=Terima kasih telah mendukung pengembangan open-source Cryptomator!
|
||||
preferences.contribute.donate=Donasi
|
||||
preferences.contribute.sponsor=Sponsor
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Hapus Sertifikat
|
||||
removeCert.message=Hapus sertifikat dukungan?
|
||||
removeCert.description=Fitur inti Cryptomator tidak terpengaruh oleh hal ini. Akses ke brankas Anda tidak dibatasi dan tingkat keamanannya tidak diturunkan.
|
||||
removeCert.confirmBtn=Hapus
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -391,11 +378,7 @@ 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.menuItemNew=Buat Vault Baru...
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=Buka Vault yang Tersedia...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=Pembaruan tersedia.
|
||||
main.notification.support=Dukung Cryptomator.
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami:
|
||||
@@ -546,13 +529,8 @@ updateReminder.yesOnce=Ya, Sekali
|
||||
updateReminder.yesAutomatically=Ya, Secara Otomatis
|
||||
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.title=Pemberitahuan penghentian
|
||||
dokanySupportEnd.message=Dukungan untuk Dokany telah berakhir
|
||||
dokanySupportEnd.description=Volume berjenis Dokany sudah tidak didukung oleh Cryptomator. Konfigurasi Anda telah disesuai kan dengan tipe volume yang saat ini. Anda dapat melihat tipe baku dipreferensi.
|
||||
dokanySupportEnd.preferencesBtn=Buka Preferensi
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Bagikan Vault
|
||||
shareVault.message=Apakah Anda ingin berbagi vault dengan orang lain?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copiato!
|
||||
generic.button.done=Fatto
|
||||
generic.button.next=Avanti
|
||||
generic.button.print=Stampa
|
||||
generic.button.remove=Rimuovi
|
||||
|
||||
# Error
|
||||
error.message=Si è verificato un errore
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Sblocca Ora
|
||||
removeVault.title=Rimuovi Cassaforte
|
||||
removeVault.message=Rimuovere cassaforte?
|
||||
removeVault.description=Questo farà solo dimenticare questa cassaforte a Cryptomator. Puoi aggiungerla nuovamente in seguito. Nessun file crittografato sarà eliminato dal tuo disco rigido.
|
||||
removeVault.confirmBtn=Rimuovi Cassaforte
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Modifica la Password
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Si è verificato un errore nel processo d
|
||||
hub.registerFailed.description.deviceAlreadyExists=Questo dispositivo è già registrato per un utente diverso. Prova a cambiare l'account utente o usa un altro dispositivo.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Accesso negato
|
||||
hub.unauthorized.description=Non sei autorizzato ad aprire questa cassaforte. Chiedi l'accesso al proprietario.
|
||||
hub.unauthorized.description=Il tuo dispositivo non è ancora stato autorizzato ad accedere a questa cassaforte. Chiedi al proprietario della cassaforte di autorizzarlo.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Azione richiesta
|
||||
hub.requireAccountInit.description.0=Per procedere, completa i passaggi richiesti nel tuo
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Sponsor
|
||||
removeCert.title=Rimuovi Certificato
|
||||
removeCert.message=Rimuovere il certificato supporter?
|
||||
removeCert.description=Questo non incide sulle funzionalità principali di Cryptomator. Non ti viene negato l'accesso alle tue casseforti e non viene abbassato il livello di sicurezza.
|
||||
removeCert.confirmBtn=Rimuovi
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Supporto terminato per Dokany
|
||||
dokanySupportEnd.description=Il tipo di volume Dokany non è più supportato da Cryptomator. Le impostazioni sono state aggiornate per utilizzare il tipo di volume ora predefinito. È possibile visualizzare il tipo predefinito nelle preferenze.
|
||||
dokanySupportEnd.preferencesBtn=Apri Preferenze
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Accesso Limitato Cassaforte
|
||||
retryIfReadonly.message=Accesso negato in scrittura alla cartella della cassaforte
|
||||
retryIfReadonly.description=Cryptomator non può scrivere nella cartella della cassaforte. Puoi cambiare l'impostazione "sola lettura" della cassaforte e riprovare. Questa opzione può essere impostata nelle opzioni della cassaforte.
|
||||
retryIfReadonly.retry=Modifica e riprova
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Condividi cassaforte
|
||||
shareVault.message=Vuoi condividere la tua cassaforte con altri?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=コピー完了!
|
||||
generic.button.done=完了
|
||||
generic.button.next=次へ
|
||||
generic.button.print=印刷
|
||||
generic.button.remove=削除
|
||||
|
||||
# Error
|
||||
error.message=エラー %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=今すぐ解錠
|
||||
removeVault.title=金庫を削除
|
||||
removeVault.message=金庫を削除しますか?
|
||||
removeVault.description=この操作で Cryptomator がこの金庫を認識しなくなります。あとで再度追加することが可能です。暗号化されたファイルがドライブから削除されることはありません。
|
||||
removeVault.confirmBtn=金庫を削除
|
||||
|
||||
# Change Password
|
||||
changepassword.title=パスワードの変更
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=登録中にエラーが発生しまし
|
||||
hub.registerFailed.description.deviceAlreadyExists=このデバイスは既に別のユーザーに登録されています。ユーザーアカウントを変更するか、別のデバイスを使用してください。
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=アクセスが拒否されました
|
||||
hub.unauthorized.description=お使いのデバイスはまだこの金庫にアクセスする権限がありません。金庫のオーナーに権限を与えてもらってください。
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=アクションが必要です
|
||||
hub.requireAccountInit.description.0=続行するには以下のサイトで必要な手順を完了してください
|
||||
@@ -335,6 +336,7 @@ preferences.contribute.getCertificate=まだ証明書を手に入れていませ
|
||||
preferences.contribute.promptText=サポーター証明書をここに張り付けてください
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=削除
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -540,8 +542,6 @@ dokanySupportEnd.message=Dokany のサポート終了
|
||||
dokanySupportEnd.description=ボリュームタイプ
|
||||
dokanySupportEnd.preferencesBtn=環境設定を開く
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=保管庫を共有する
|
||||
shareVault.message=保管庫を他の人と共有しますか?
|
||||
|
||||
@@ -6,26 +6,21 @@ generic.button.apply=적용
|
||||
generic.button.back=이전
|
||||
generic.button.cancel=취소
|
||||
generic.button.change=변경
|
||||
generic.button.choose=선택…
|
||||
generic.button.choose=선택
|
||||
generic.button.close=닫기
|
||||
generic.button.copy=복사
|
||||
generic.button.copied=복사됨!
|
||||
generic.button.done=완료
|
||||
generic.button.next=다음
|
||||
generic.button.print=인쇄
|
||||
generic.button.remove=제거
|
||||
|
||||
# Error
|
||||
error.message=오류 발생
|
||||
error.description=예상치 못한 에러가 발생했습니다. 해결법을 검색하십시오. 만약 보고된 적이 없는 에러일 경우, 새로 신고해도 좋습니다.
|
||||
error.message=오류가 발생했습니다
|
||||
error.description=예상치 못한 에러가 발생했습니다. 온라인에 에러를 검색해서 해결하십시오. 만약 신고된 적이 없는 에러일 경우, 새로 신고해도 좋습니다.
|
||||
error.hyperlink.lookup=에러 검색하기
|
||||
error.hyperlink.report=에러 보고하기
|
||||
error.technicalDetails=상세 정보:
|
||||
error.existingSolutionDescription=Cryptomator에 알 수 없는 문제가 발생했습니다. 하지만 이 오류에 대한 기존 해결법이 있습니다. 다음 링크를 살펴보십시오.
|
||||
error.hyperlink.solution=해결법 찾기
|
||||
error.lookupPermissionMessage=Cryptomator는 온라인에서 이 문제에 대한 해결책을 찾아볼 수 있습니다. 그러면 귀하의 IP 주소가 문제 데이터베이스로 전송됩니다.
|
||||
error.dismiss=무시
|
||||
error.lookUpSolution=해결법 찾기
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=Vault
|
||||
@@ -42,17 +37,16 @@ traymenu.vault.reveal=표시
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=Vault 추가
|
||||
## New
|
||||
addvaultwizard.new.title=새로운 Vault 추가
|
||||
addvaultwizard.new.title=새로운 금고 추가
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시오
|
||||
addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시요
|
||||
addvaultwizard.new.namePrompt=Vault 이름
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Cryptomator Vault의 암호화된 파일을 어디에 저장하시겠습니까?
|
||||
addvaultwizard.new.locationLoading=기본 클라우드 저장소 디렉터리에 대한 로컬 파일 시스템을 확인하는 중…
|
||||
addvaultwizard.new.locationInstruction=Cryptomator Vault의 암호화 파일을 어디에 저장하시겠습니까?
|
||||
addvaultwizard.new.locationLabel=저장 위치
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=사용자 지정 위치
|
||||
addvaultwizard.new.directoryPickerButton=선택…
|
||||
addvaultwizard.new.directoryPickerButton=선택
|
||||
addvaultwizard.new.directoryPickerTitle=디렉터리 선택
|
||||
addvaultwizard.new.fileAlreadyExists=Vault 내에 이미 존재하는 파일 또는 디렉터리 이름입니다.
|
||||
addvaultwizard.new.locationDoesNotExist=지정된 디렉터리가 존재하지 않거나 접근 할 수 없습니다.
|
||||
@@ -65,7 +59,7 @@ addvaultwizard.new.validCharacters.chars=문자 (예시: a, ж or 수)
|
||||
addvaultwizard.new.validCharacters.numbers=숫자
|
||||
addvaultwizard.new.validCharacters.dashes=대시 (%s) 또는 언더바 (%s)
|
||||
### Expert Settings
|
||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가 설정 활성화
|
||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가용 설정 활성화
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=36과 220 사이 숫자를 입력해주세요 (기본값: 220)
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=더 자세한 정보는 관련 문서에서 볼 수 있습니다.
|
||||
addvaultwizard.new.expertSettings.shorteningThreshold.title=암호화된 파일명의 최대 길이
|
||||
@@ -73,29 +67,29 @@ addvaultwizard.new.expertSettings.shorteningThreshold.valid=유효
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=Vault 생성
|
||||
addvaultwizard.new.generateRecoveryKeyChoice=비밀번호가 없으면 데이터에 접근할 수 없습니다. 비밀번호를 잊었을 때를 대비한 복구 키를 원하십니까?
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=네, 보안보다 비밀번호를 잊어버리는 것이 더 걱정됩니다.
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=네, 보안보다 비밀번호를 잊어버리는 것이 더 걱정됩니다
|
||||
addvaultwizard.new.generateRecoveryKeyChoice.no=아니요, 나는 비밀번호를 잊지 않을겁니다.
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
||||
addvault.new.readme.storageLocation.1=⚠️ VAULT 파일 ⚠️
|
||||
addvault.new.readme.storageLocation.2=해당 디렉토리는 당신의 Vault 저장 위치입니다.
|
||||
addvault.new.readme.storageLocation.3=금지 사항
|
||||
addvault.new.readme.storageLocation.2=해당 디렉토리는 당신의 Vault 저장 위치 입니다.
|
||||
addvault.new.readme.storageLocation.3=금지사항
|
||||
addvault.new.readme.storageLocation.4=• 이 디렉터리를 포함한 어떤 파일도 다른 파일로 교체하거나
|
||||
addvault.new.readme.storageLocation.5=• 암호화하고자 하는 파일을 이 디렉터리에 붙여넣지 마십시오.
|
||||
addvault.new.readme.storageLocation.5=• 암호화를 위한 파일을 이 디렉터리에 붙여넣지 마십시요.
|
||||
addvault.new.readme.storageLocation.6=파일을 암호화하고 Vault 의 내용을 보려면 다음을 수행하십시오.
|
||||
addvault.new.readme.storageLocation.7=1. 이 Vault를 Cryptomator에 추가하십시오.
|
||||
addvault.new.readme.storageLocation.8=2. Cryptomator에서 Vault 잠금을 해제하십시오.
|
||||
addvault.new.readme.storageLocation.9=3. "표시" 버튼을 클릭하여 Vault에 접근하십시오.
|
||||
addvault.new.readme.storageLocation.10=만일 도움이 필요하신 경우, 다음의 문서를 참조하십시오: %s
|
||||
addvault.new.readme.storageLocation.7=1. 이 Vault를 Cryptomator에 추가하십시요.
|
||||
addvault.new.readme.storageLocation.8=2. Cryptomator에서 Vault 잠금을 해제하십시요.
|
||||
addvault.new.readme.storageLocation.9=3. "표시" 버튼을 클릭하여 Vault에 접근하십시요.
|
||||
addvault.new.readme.storageLocation.10=만일 도움이 필요하신 경우, 다음의 문서를 참조하십시요: %s
|
||||
addvault.new.readme.accessLocation.fileName=WELCOME.rtf
|
||||
addvault.new.readme.accessLocation.1=🔐️ 암호화 된 볼륨 🔐️
|
||||
addvault.new.readme.accessLocation.2=이것은 당신의 Vault 접근 위치입니다.
|
||||
addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것처럼 보이지만, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다.
|
||||
addvault.new.readme.accessLocation.3=이 볼륨에 추가된 모든 파일은 Cryptomator로 암호화됩니다. 다른 드라이브/폴더처럼 작업할 수 있습니다. 볼륨의 내용은 복호화 된 것 처럼 보여지지만, 모든 파일은 항상 암호화되어 하드디스크에 저장됩니다.
|
||||
addvault.new.readme.accessLocation.4=이 파일은 지우셔도 무방합니다.
|
||||
## Existing
|
||||
addvaultwizard.existing.title=기존 금고 추가
|
||||
addvaultwizard.existing.instruction=이미 존재하는 vault 폴더 내에서 "vault.cryptomator" 파일을 선택하세요. 만약 "masterkey.cryptomator"만 있다면 그걸 대신 선택하세요.
|
||||
addvaultwizard.existing.chooseBtn=선택…
|
||||
addvaultwizard.existing.chooseBtn=선택
|
||||
addvaultwizard.existing.filePickerTitle=Vault 파일 선택
|
||||
addvaultwizard.existing.filePickerMimeDesc=Cryptomator Vault
|
||||
## Success
|
||||
@@ -105,83 +99,59 @@ addvaultwizard.success.unlockNow=지금 잠금해제
|
||||
# Remove Vault
|
||||
removeVault.title=Vault 제거
|
||||
removeVault.message=Vault를 삭제하시겠습니까?
|
||||
removeVault.description=이 행위는 Cryptomator에서만 이 Vault를 지웁니다. 나중에 다시 추가할 수 있습니다. 암호화된 파일은 하드디스크에서 삭제되지 않습니다.
|
||||
removeVault.description=이 행위는 단지 Cryptomator에서 이 Vault를 잊게합니다. 나중에 다시 추가 할 수 있습니다. 암호화된 파일은 하드디스크에서 삭제되지 않을 것입니다.
|
||||
removeVault.confirmBtn=Vault 제거
|
||||
|
||||
# Change Password
|
||||
changepassword.title=비밀번호 변경
|
||||
changepassword.enterOldPassword="%s"의 비밀번호를 입력하여 주십시요.
|
||||
changepassword.finalConfirmation=비밀번호를 잊어버리면, 데이터에 접근할 수 없다는 것을 이해했습니다.
|
||||
changepassword.finalConfirmation=비밀번호를 잊어버리면, 데이터에 접근할 수 없음을 이해했습니다.
|
||||
|
||||
# Forget Password
|
||||
forgetPassword.title=비밀번호 삭제
|
||||
forgetPassword.title=비밀번호 분실
|
||||
forgetPassword.message=저장된 비밀번호를 삭제할까요?
|
||||
forgetPassword.description=시스템 키체인에서 이 Vault의 저장된 비밀번호가 삭제될 것입니다.
|
||||
forgetPassword.confirmBtn=비밀번호 삭제
|
||||
forgetPassword.confirmBtn=비밀번호 분실
|
||||
|
||||
# Unlock
|
||||
unlock.title="%s" 잠금 해제
|
||||
unlock.passwordPrompt="%s"의 비밀번호를 입력하십시오.
|
||||
unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요.
|
||||
unlock.savePassword=비밀번호 기억
|
||||
unlock.unlockBtn=잠금해제
|
||||
## Select
|
||||
unlock.chooseMasterkey.message=마스터키 파일을 찾을 수 없습니다
|
||||
unlock.chooseMasterkey.description=이 Vault의 Masterkey를 찾지 못했습니다. 마스터 키 위치를 수동으로 선택하여 주십시오.
|
||||
unlock.chooseMasterkey.filePickerTitle=Masterkey 파일 선택
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator Masterkey
|
||||
unlock.chooseMasterkey.description=추정되는 위치에서 이 Vault의 마스터 키를 찾지 못했습니다. 마스터 키 위치를 수동으로 선택하여 주십시요.
|
||||
unlock.chooseMasterkey.filePickerTitle=마스터키 파일 선택
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 마스터키
|
||||
## Success
|
||||
unlock.success.message=잠금 해제 성공
|
||||
unlock.success.description="%s"이(가) 성공적으로 잠금 해제되었습니다. 이제 이 Vault를 마운트 지점으로 접근할 수 있습니다.
|
||||
unlock.success.rememberChoice=선택 기억하기, 다시 묻지 않음
|
||||
unlock.success.description="%s"이(가) 성공적으로 잠금해제되었습니다. 이제 이 Vault를 가상드라이브로 접근할 수 있습니다.
|
||||
unlock.success.rememberChoice=선택 기억함, 다시 묻지 않음
|
||||
unlock.success.revealBtn=드라이브 표시
|
||||
## Failure
|
||||
unlock.error.customPath.message=Vault를 사용자 정의 경로에 마운트할 수 없습니다.
|
||||
unlock.error.customPath.description.notSupported=사용자 지정 경로를 계속 사용하려면 설정으로 이동하여 이를 지원하는 볼륨 유형을 선택하십시오. 그렇지 않으면 볼트 옵션으로 이동하여 지원되는 마운트 지점을 선택하십시오.
|
||||
unlock.error.customPath.description.notExists=사용자 정의 마운트 경로가 존재하지 않습니다. 로컬 파일 시스템에서 생성하거나 볼트 옵션에서 변경하세요.
|
||||
unlock.error.customPath.description.inUse=드라이브 문자 또는 사용자 정의 마운트 경로 "%s"가 이미 사용 중입니다.
|
||||
unlock.error.customPath.description.hideawayNotDir=잠금 해제에 사용된 임시 숨김 파일 "%3$s"을 제거할 수 없습니다. 파일을 확인한 후 수동으로 삭제해 주세요.
|
||||
unlock.error.customPath.description.couldNotBeCleaned=Vault를 "%s" 경로에 마운트할 수 없습니다. 다시 시도하거나 다른 경로를 선택하세요.
|
||||
unlock.error.customPath.description.notEmptyDir=사용자 정의 마운트 경로 "%s"은 빈 폴더가 아닙니다. 빈 폴더를 선택하고 다시 시도하세요.
|
||||
unlock.error.customPath.description.generic=이 볼트에 대한 사용자 정의 마운트 경로를 선택했지만 다음 메시지와 함께 해당 경로를 사용하지 못했습니다: %2$s
|
||||
unlock.error.restartRequired.message=Vault을 잠금 해제할 수 없습니다.
|
||||
unlock.error.restartRequired.description=볼트 옵션에서 볼륨 유형을 변경하거나 Cryptomator를 다시 시작하십시오.
|
||||
unlock.error.title="%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=Hub로부터 응답을 처리하고 있습니다. 잠시만 기다려 주십시오.
|
||||
### Register Device
|
||||
hub.register.message=새 기기
|
||||
hub.register.description=이 기기로부터 첫번째 Hub 접근입니다. Account Key로 등록하십시오.
|
||||
hub.register.nameLabel=기기 이름
|
||||
hub.register.invalidAccountKeyLabel=유효하지 않은 계정 키
|
||||
hub.register.registerBtn=등록
|
||||
### Register Device Legacy
|
||||
hub.register.legacy.occupiedMsg=이미 사용 중인 이름
|
||||
hub.register.legacy.description=이 기기로부터 첫번째 Hub 접근입니다. 등록하십시오.
|
||||
### Registration Success
|
||||
hub.registerSuccess.message=기기 등록됨
|
||||
hub.registerSuccess.description=등록에 성공하였습니다. Vault를 잠금 해제할 수 있습니다.
|
||||
hub.registerSuccess.unlockBtn=잠금 해제
|
||||
hub.registerSuccess.legacy.description=Vault에 접근하기 위해서는 이 기기를 Vault 소유주가 추가적으로 허가해야 합니다.
|
||||
hub.registerSuccess.unlockBtn=잠금해제
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=기기 등록 실패
|
||||
hub.registerFailed.description.generic=등록 중에 에러가 발생했습니다. 앱 로그에서 자세한 정보를 확인할 수 있습니다.
|
||||
hub.registerFailed.description.deviceAlreadyExists=이 기기는 이미 다른 사용자에 등록되어 있습니다. 다른 사용자 계정이나 다른 기기를 사용해보세요.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=액세스 거부됨
|
||||
hub.unauthorized.description=해당 Vault에 접근하도록 허가되지 않았습니다. Vault의 소유자에게 권한을 요청하세요.
|
||||
hub.unauthorized.message=액세스 거부
|
||||
hub.unauthorized.description=귀하의 기기는 아직 이 저장소에 액세스할 수 있는 권한이 없습니다. Vault 소유자에게 승인을 요청하세요.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=조치가 필요함
|
||||
hub.requireAccountInit.description.0=진행하려면 필요한 조치를 완료하십시오:
|
||||
hub.requireAccountInit.description.1=Hub 사용자 프로필
|
||||
hub.requireAccountInit.description.2=.
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Hub 라이선스가 잘못되었습니다.
|
||||
hub.invalidLicense.description=Cryptomator Hub 인스턴스에 잘못된 라이선스가 있습니다. 라이센스를 업그레이드하거나 갱신하려면 허브 관리자에게 알리십시오.
|
||||
@@ -230,10 +200,9 @@ migration.impossible.moreInfo=Vault를 이전 버전으로 계속 열수 있습
|
||||
health.title="%s"의 상태 검사
|
||||
health.intro.header=상태 검사
|
||||
health.intro.text=상태 검사는 Vault의 내부 구조의 문제점을 점검하고 해결할 수 있는 기능입니다. 다음 사항을 유의하시기 바랍니다:
|
||||
health.intro.remarkSync=모든 장치가 완전히 동기화됐는지 확인하십시오. 대부분의 문제를 해결합니다.
|
||||
health.intro.remarkFix=모든 문제를 해결할 수 있는 것은 아닙니다.
|
||||
health.intro.remarkBackup=데이터가 손상된 경우 백업만이 유일한 해결책입니다.
|
||||
health.intro.affirmation=나는 위 정보를 읽었으며, 이해했습니다.
|
||||
health.intro.affirmation=나는 위 정보를 읽고 정말 이해했습니다.
|
||||
## Start Failure
|
||||
health.fail.header=Vault 설정을 불러오는 중 에러 발생
|
||||
health.fail.ioError=설정 파일에 접근하는 중 에러가 발생했습니다.
|
||||
@@ -254,17 +223,13 @@ 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정상적인 vault 구조를 가지고 있습니다.
|
||||
health.result.severityTip.info=상태: 정보\nVault 구조 온전함, 문제 해결 권장됨.
|
||||
health.result.severityTip.warn=상태: 경고\nVault 구조 손상됨, 문제 해결 요구됨.
|
||||
health.result.severityTip.crit=상태: 심각\nVault 구조가 손상되었습니다. 데이터 손실이 발생했습니다.
|
||||
health.result.fixStateFilter.all=모든 문제 해결 상태
|
||||
health.result.fixStateFilter.fixable=문제 해결 가능
|
||||
@@ -273,7 +238,7 @@ health.result.fixStateFilter.fixing=문제 해결중…
|
||||
health.result.fixStateFilter.fixed=문제 해결됨
|
||||
health.result.fixStateFilter.fixFailed=문제 해결 실패
|
||||
## Fix Application
|
||||
health.fix.fixBtn=문제 해결
|
||||
health.fix.fixBtn=문제해결
|
||||
health.fix.successTip=문제 해결이 성공적으로 완료되었습니다
|
||||
health.fix.failTip=문제 해결 실패, 상세 정보는 로그를 참조하십시요.
|
||||
|
||||
@@ -282,15 +247,13 @@ preferences.title=환경설정
|
||||
## General
|
||||
preferences.general=일반
|
||||
preferences.general.startHidden=Cryptomator를 시작할 때 창 숨김
|
||||
preferences.general.autoCloseVaults=애플리케이션을 닫을 때 자동으로 열린 Vault를 잠그기.
|
||||
preferences.general.debugLogging=디버그 로깅 활성화
|
||||
preferences.general.debugDirectory=로그 파일 표시
|
||||
preferences.general.debugLogging=디버그 로그기록을 사용하도록 설정
|
||||
preferences.general.debugDirectory=Log 파일 표시
|
||||
preferences.general.autoStart=시스템 시작 시 Cryptomator 실행
|
||||
preferences.general.keychainBackend=다음 경로에 비밀번호 저장
|
||||
preferences.general.quickAccessService=열린 Vault를 빠른 접근 위치에 추가하기
|
||||
## Interface
|
||||
preferences.interface=인터페이스
|
||||
preferences.interface.theme=테마
|
||||
preferences.interface.theme=테마설정
|
||||
preferences.interface.theme.automatic=자동
|
||||
preferences.interface.theme.dark=어둡게
|
||||
preferences.interface.theme.light=밝게
|
||||
@@ -301,16 +264,11 @@ preferences.interface.interfaceOrientation=인터페이스 방향
|
||||
preferences.interface.interfaceOrientation.ltr=왼쪽에서 오른쪽으로
|
||||
preferences.interface.interfaceOrientation.rtl=오른쪽에서 왼쪽으로
|
||||
preferences.interface.showTrayIcon=트레이 아이콘 보기 (재시작 필요)
|
||||
preferences.interface.compactMode=간소화 Vault 리스트 활성화
|
||||
## Volume
|
||||
preferences.volume=가상 드라이브
|
||||
preferences.volume.type=기본 볼륨 타입
|
||||
preferences.volume.type.automatic=자동
|
||||
preferences.volume.docsTooltip=다른 볼륨 타입에 대해서는 문서를 참조하십시오.
|
||||
preferences.volume.fuseRestartRequired=변경 사항을 적용하기 위해, Cryptomator의 재시작이 필요합니다.
|
||||
preferences.volume.tcp.port=기본 TCP 포트
|
||||
preferences.volume.supportedFeatures=현재 선택한 볼륨 타입은 다음과 같은 기능들을 지원합니다:
|
||||
preferences.volume.feature.mountAuto=마운트 지점 자동 지정
|
||||
preferences.volume.feature.mountToDir=마운트할 폴더 지정
|
||||
preferences.volume.feature.mountToDriveLetter=마운트할 드라이브 문자
|
||||
preferences.volume.feature.mountFlags=사용자 정의 마운트 설정
|
||||
@@ -331,18 +289,13 @@ preferences.updates.upToDate=현재 최신 버전의 Cryptomator를 사용하고
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=후원하기
|
||||
preferences.contribute.registeredFor=%s(으)로 후원자 인증 등록됨
|
||||
preferences.contribute.registeredFor=%s (으)로 후원자 인증 등록됨
|
||||
preferences.contribute.noCertificate=Cryptomator를 후원하시고 후원자 인증을 받으십시요. 라이선스 키와 비슷하지만 무료 소프트웨어를 사용하는 멋진 사람들을 위한 것입니다. ;-)
|
||||
preferences.contribute.getCertificate=아직 후원자 인증이 없으신가요? 어떻게 얻는지 배울 수 있습니다.
|
||||
preferences.contribute.promptText=후원자 인증코드를 여기에 붙여넣기
|
||||
preferences.contribute.thankYou=Cryptomator의 오픈 소스 개발을 지원해 주셔서 감사합니다!
|
||||
preferences.contribute.donate=후원하기
|
||||
preferences.contribute.sponsor=스폰서
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=인증서 제거
|
||||
removeCert.message=서포터 인증서를 제거하시겠습니까?
|
||||
removeCert.description=Cryptomator의 핵심 기능은 영향을 받지 않습니다. Vault에 대한 접근이 제한되거나 보안이 약화되지 않습니다.
|
||||
removeCert.confirmBtn=제거
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -380,35 +333,30 @@ stats.write.accessCount=총 쓰기 횟수: %d
|
||||
|
||||
## Accesses
|
||||
stats.access.current=접근: %d
|
||||
stats.access.total=총 접근: %d
|
||||
|
||||
|
||||
# Main Window
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=여기를 클릭하여 Vault를 추가하세요
|
||||
main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이곳을 클릭합니다.
|
||||
main.vaultlist.contextMenu.remove=제거...
|
||||
main.vaultlist.contextMenu.lock=잠금
|
||||
main.vaultlist.contextMenu.unlock=잠금 해제...
|
||||
main.vaultlist.contextMenu.unlockNow=지금 잠금 해제
|
||||
main.vaultlist.contextMenu.unlock=잠금해제...
|
||||
main.vaultlist.contextMenu.unlockNow=지금 잠금해제
|
||||
main.vaultlist.contextMenu.vaultoptions=Vault 옵션 보기
|
||||
main.vaultlist.contextMenu.reveal=드라이브 표시
|
||||
main.vaultlist.addVaultBtn.menuItemNew=새 Vault 생성...
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=기존 Vault 열기...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=업데이트가 있습니다.
|
||||
main.notification.support=Cryptomator 지원하기.
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작 안내서를 참조하시기 바랍니다.
|
||||
main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작안내서를 참조하시기 바랍니다.
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=잠김
|
||||
main.vaultDetail.unlockBtn=잠금 해제...
|
||||
main.vaultDetail.unlockNowBtn=지금 잠금 해제
|
||||
main.vaultDetail.unlockBtn=잠금해제...
|
||||
main.vaultDetail.unlockNowBtn=지금 잠금해제
|
||||
main.vaultDetail.optionsBtn=Vault 옵션
|
||||
main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
|
||||
main.vaultDetail.share=공유하기…
|
||||
main.vaultDetail.share=공유하기
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=잠금 해제됨
|
||||
main.vaultDetail.unlockedStatus=잠금해제됨
|
||||
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
||||
main.vaultDetail.revealBtn=드라이브 표시
|
||||
main.vaultDetail.copyUri=URI 복사
|
||||
@@ -420,9 +368,6 @@ main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Vault 통계
|
||||
main.vaultDetail.locateEncryptedFileBtn=암호화된 파일 위치
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=암호화된 파일을 보기 위해 Vault에서 파일을 선택하십시오.
|
||||
main.vaultDetail.encryptedPathsCopied=클립보드에 복사됨!
|
||||
main.vaultDetail.filePickerTitle=Vault 내부에서 파일 선택
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator가 이 경로에 있는 Vault를 찾지 못했습니다.
|
||||
main.vaultDetail.missing.recheck=다시 시도
|
||||
@@ -430,27 +375,26 @@ main.vaultDetail.missing.remove=Vault 목록에서 제거...
|
||||
main.vaultDetail.missing.changeLocation=Vault 위치 변경
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=Vault 업그레이드
|
||||
main.vaultDetail.migratePrompt=Vault에 접근하기 전, 새로운 포맷으로 업그레이드가 필요합니다.
|
||||
main.vaultDetail.migratePrompt=Vault에 접근하기 전, 새로운 포멧으로 업그레이드가 필요합니다.
|
||||
### Error
|
||||
main.vaultDetail.error.info=디스크에서 Vault를 로드 중 에러 발생
|
||||
main.vaultDetail.error.reload=새로고침
|
||||
main.vaultDetail.error.windowTitle=Vault 로드중 에러 발생
|
||||
main.vaultDetail.error.windowTitle=Vault 로딩중 에러 발생
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=파일 암호화 방법
|
||||
wrongFileAlert.message=이 파일들을 암호화하려고 하십니까?
|
||||
wrongFileAlert.description=이 목적을 위해, Cryptomator는 파일 관리자에 볼륨을 제공합니다.
|
||||
wrongFileAlert.instruction.0=파일을 암호화 하려면, 다음의 3단계를 따르십시오:
|
||||
wrongFileAlert.instruction.1=1. Vault를 잠금 해제하십시오.
|
||||
wrongFileAlert.instruction.2=2. "표시" 버튼을 클릭해 파일 탐색기에서 볼륨을 여십시오.
|
||||
wrongFileAlert.instruction.3=3. 이 볼륨에 파일을 추가하십시오.
|
||||
wrongFileAlert.link=더 많은 지원을 위해, 다음을 방문하십시오
|
||||
wrongFileAlert.instruction.0=파일을 암호화 하려면, 다음의 3단계를 따르십시요:
|
||||
wrongFileAlert.instruction.1=1. Vault의 잠금해제
|
||||
wrongFileAlert.instruction.2=2. 파일 관리자에서 열람된 볼륨의 "표시" 버튼 클릭
|
||||
wrongFileAlert.instruction.3=3. 이 볼륨에 파일 추가
|
||||
wrongFileAlert.link=추후 지원을 위해, 다음을 방문하십시요
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general=일반
|
||||
vaultOptions.general.vaultName=Vault 이름
|
||||
vaultOptions.general.autoLock.lockAfterTimePart1=다음 시간 동안 유휴상태 시 잠그기
|
||||
vaultOptions.general.autoLock.lockAfterTimePart1=다음 시간동안 유휴상태 시 잠금 :
|
||||
vaultOptions.general.autoLock.lockAfterTimePart2=분
|
||||
vaultOptions.general.unlockAfterStartup=Cryptomator를 시작할 때 Vault 잠금 해제
|
||||
vaultOptions.general.actionAfterUnlock=성공적으로 잠금해제 후
|
||||
@@ -461,7 +405,6 @@ vaultOptions.general.startHealthCheckBtn=상태 검사 시작
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=드라이브 구성
|
||||
vaultOptions.mount.info=기본 설정을 바꾸기 위해 가상 드라이브 설정을 여십시오.
|
||||
vaultOptions.mount.readonly=읽기 전용
|
||||
vaultOptions.mount.customMountFlags=사용자 정의 매개변수 사용
|
||||
vaultOptions.mount.winDriveLetterOccupied=사용됨
|
||||
@@ -471,10 +414,7 @@ vaultOptions.mount.mountPoint.driveLetter=드라이브 문자를 지정하여
|
||||
vaultOptions.mount.mountPoint.custom=선택한 디렉토리 사용
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=선택
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=디렉토리 선택
|
||||
vaultOptions.mount.volumeType.default=기본 (%s)
|
||||
vaultOptions.mount.volumeType.restartRequired=이 볼륨 타입을 사용하기 위해, Cryptomator의 재시작이 필요합니다.
|
||||
vaultOptions.mount.volume.tcp.port=TCP 포트
|
||||
vaultOptions.mount.volume.type=볼륨 타입
|
||||
## Master Key
|
||||
vaultOptions.masterkey=비밀번호
|
||||
vaultOptions.masterkey.changePasswordBtn=비밀번호 변경
|
||||
@@ -484,8 +424,6 @@ vaultOptions.masterkey.showRecoveryKeyBtn=복구 키 표시
|
||||
vaultOptions.masterkey.recoverPasswordBtn=비밀번호 재설정
|
||||
## Hub
|
||||
vaultOptions.hub=복구
|
||||
vaultOptions.hub.convertInfo=비상상황에 이 Hub Vault를 비밀번호 기반 Vault로 변환하기 위해 복구 키를 사용할 수 있습니다.
|
||||
vaultOptions.hub.convertBtn=비밀번호 기반 Vault로 변환하기
|
||||
|
||||
# Recovery Key
|
||||
## Display Recovery Key
|
||||
@@ -493,7 +431,7 @@ recoveryKey.display.title=복구 키 보기
|
||||
recoveryKey.create.message=비밀번호가 필요합니다
|
||||
recoveryKey.create.description="%s"의 복구 키를 표시하려면 비밀번호를 입력해 주세요.
|
||||
recoveryKey.display.description="%s" 데이터 접근을 복원하는데 사용 할 수 있는 복구 키 입니다:
|
||||
recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시오. 예시:\n • 비밀번호 관리자를 사용하여 저장\n • USB 플래시 드라이브에 저장\n • 종이로 출력
|
||||
recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예시:\n • 비밀번호 관리자를 사용하여 저장\n • USB 플래시 드라이브에 저장\n • 종이에 출력
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=비밀번호 바꾸기
|
||||
@@ -509,11 +447,9 @@ recoveryKey.recover.resetSuccess.message=비밀번호 재설정 성공
|
||||
recoveryKey.recover.resetSuccess.description=이제 해당 vault를 새 비밀번호로 잠금 해제할 수 있습니다.
|
||||
|
||||
# Convert Vault
|
||||
convertVault.title=Vault 변환
|
||||
convertVault.convert.convertBtn.before=변환
|
||||
convertVault.convert.convertBtn.processing=변환중…
|
||||
convertVault.success.message=변환 완료
|
||||
convertVault.hubToPassword.success.description=이제 Hub 접근 없이 지정된 비밀번호로 Vault를 잠금해제할 수 있습니다.
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=새 비밀번호를 입력하세요
|
||||
@@ -530,50 +466,16 @@ passwordStrength.messageLabel.4=매우 강함
|
||||
# Quit
|
||||
quit.title=앱 종료
|
||||
quit.message=잠금 해제된 vault들이 존재합니다
|
||||
quit.description=정말로 나가시겠습니까? Cryptomator는 데이터 손실을 막기 위해 열린 Vault를 잠글 것입니다.
|
||||
quit.lockAndQuitBtn=Vault 잠금 후 종료하기
|
||||
|
||||
# Forced Quit
|
||||
quit.forced.message=일부 Vault를 잠글 수 없습니다.
|
||||
quit.forced.description=대기 중인 작동이나 파일이 열려있어 Vault를 잠그는데 실패하였습니다. 남은 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다.
|
||||
quit.forced.forceAndQuitBtn=Vault 강제 잠금 후 종료하기
|
||||
|
||||
# Update Reminder
|
||||
updateReminder.title=업데이트 확인
|
||||
updateReminder.message=업데이트 확인
|
||||
updateReminder.description=새로운 기능, 버그 수정, 보안 향상을 위해 업데이트하십시오. 업데이트 자동 확인을 권장합니다.
|
||||
updateReminder.notNow=나중에
|
||||
updateReminder.yesOnce=예, 한번만
|
||||
updateReminder.yesAutomatically=예, 자동으로
|
||||
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.title=지원 중단 경고
|
||||
dokanySupportEnd.message=Dokany에 대한 지원 중단
|
||||
dokanySupportEnd.description=Cryptomator에서 Dokany 볼륨 형식은 더이상 지원되지 않습니다. 기본 볼륨 형식을 사용하도록 설정이 조정되었으며, 설정에서 기본 형식을 확인할 수 있습니다.
|
||||
dokanySupportEnd.preferencesBtn=설정 열기
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Vault 접근 제한됨
|
||||
retryIfReadonly.message=Vault 디렉터리에 쓰기 권한 없음
|
||||
retryIfReadonly.description=Cryptomator가 Vault 디렉터리에 쓸 수 없습니다. Vault를 읽기 전용으로 설정하고 다시 시도할 수 있습니다. 이 옵션은 Vault 옵션에서 바꿀 수 있습니다.
|
||||
retryIfReadonly.retry=바꾸고 다시 시도하기
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Vault 공유
|
||||
shareVault.message=Vault를 다른 사람과 공유하려 하십니까?
|
||||
shareVault.description=Vault를 타인과 공유할 때에는 항상 주의하십시오. 간단히 이 단계들을 따르십시오.
|
||||
shareVault.instruction.1=1. 암호화된 Vault 폴더를 클라우드 스토리지를 통해 공유하십시오.
|
||||
shareVault.instruction.2=2. Vault의 비밀번호를 안전한 방식으로 전달하십시오.
|
||||
shareVault.remarkBestPractices=문서에 있는 권장사항을 통해 더 많은 정보를 확인하십시오.
|
||||
shareVault.docsTooltip=Vault의 공유에 대해서는 문서를 참조하십시오.
|
||||
shareVault.hubAd.description=팀에서 작업하는 안전한 방법
|
||||
shareVault.hubAd.keyManagement=• 사전지식 없는 키 관리
|
||||
shareVault.hubAd.authentication=• 강력한 인증
|
||||
shareVault.hubAd.encryption=• 종단간 암호화
|
||||
shareVault.visitHub=Cryptomator Hub 방문하기
|
||||
|
||||
shareVault.hub.message=Hub Vault를 공유하는법
|
||||
shareVault.hub.description=다른 팀 구성원과 Vault를 공유하기 위해서는 다음 단계를 따르십시오:
|
||||
shareVault.hub.instruction.1=1. 암호화된 Vault 폴더를 클라우드 스토리지를 통해 공유하십시오.
|
||||
shareVault.hub.instruction.2=2. Cryptomator Hub에서 팀 구성원에 접근을 허가하기
|
||||
shareVault.hub.openHub=Cryptomator Hub 열기
|
||||
@@ -85,6 +85,7 @@ addvaultwizard.success.unlockNow=Atslēgt tagad
|
||||
# Remove Vault
|
||||
removeVault.title=Noņemt glabātuvi
|
||||
removeVault.description=Šis tikai liks Cryptomator aizmirst šo glabātuvi. Jūs to variet pievienot vēlāk atkārtoti. Nekādi šifrētie dati no diska netiks dzēsti.
|
||||
removeVault.confirmBtn=Noņemt glabātuvi
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Mainīt paroli
|
||||
@@ -280,6 +281,4 @@ quit.lockAndQuitBtn=Aizslēgt un aizvērt
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -164,6 +164,4 @@ vaultOptions.mount.mountPoint.directoryPickerButton=Избор…
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -118,6 +118,4 @@
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopiert!
|
||||
generic.button.done=Ferdig
|
||||
generic.button.next=Neste
|
||||
generic.button.print=Skriv ut
|
||||
generic.button.remove=Fjern
|
||||
|
||||
# Error
|
||||
error.message=Feilkode %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Lås opp nå
|
||||
removeVault.title=Fjern hvelvet
|
||||
removeVault.message=Fjerne hvelv?
|
||||
removeVault.description=Dette vil kun få Cryptomator til å glemme dette hvelvet. Du kan legge til hvelvet senere igjen. Ingen krypterte filer blir slettet fra harddisken.
|
||||
removeVault.confirmBtn=Fjern hvelvet
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Endre passord
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=En feil ble gjort under registreringspros
|
||||
hub.registerFailed.description.deviceAlreadyExists=Denne enheten er allerede registrert for en annen bruker. Prøv å endre brukerkontoen eller bruk en annen enhet.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Ingen tilgang
|
||||
hub.unauthorized.description=Enheten din har ikke blitt autorisert til å få tilgang til dette hvelvet ennå. Spør hvelveieren om å tillate det.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Påkrevd handling
|
||||
hub.requireAccountInit.description.0=For å fortsette, fullfør trinnene som kreves i din
|
||||
@@ -332,11 +333,9 @@ preferences.contribute.registeredFor=Supporter sertifikat registrert for %s
|
||||
preferences.contribute.noCertificate=Støtt Cryptomator og motta et supporter-sertifikat. Det er som en lisensnøkkel, men for fantastiske mennesker som bruker fri programvare. ;-)
|
||||
preferences.contribute.getCertificate=Har du ikke en allerede? Lær hvordan du kan skaffe den.
|
||||
preferences.contribute.promptText=Lim inn supporter sertifikatkoden her
|
||||
preferences.contribute.donate=Donér
|
||||
preferences.contribute.sponsor=Sponsor
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Fjern sertifikat
|
||||
removeCert.confirmBtn=Fjern
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -387,7 +386,6 @@ main.vaultlist.contextMenu.unlockNow=Lås opp nå
|
||||
main.vaultlist.contextMenu.vaultoptions=Alternativer for hvelvet
|
||||
main.vaultlist.contextMenu.reveal=Vis enheten
|
||||
##Notificaition
|
||||
main.notification.support=Støtt Cryptomator.
|
||||
## 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:
|
||||
@@ -543,8 +541,6 @@ dokanySupportEnd.message=Støtte for Dokany er avsluttet
|
||||
dokanySupportEnd.description=Volumtypen Dokany støttes ikke lenger av Cryptomator. Innstillingene dine er justert for å bruke standard volumtype nå. Du kan se standardtypen i innstillingene.
|
||||
dokanySupportEnd.preferencesBtn=Åpne innstillinger
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Del hvelv
|
||||
shareVault.message=Vil du dele hvelvet ditt med andre?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Gekopieerd!
|
||||
generic.button.done=Klaar
|
||||
generic.button.next=Volgende
|
||||
generic.button.print=Afdrukken
|
||||
generic.button.remove=Verwijderen
|
||||
|
||||
# Error
|
||||
error.message=Er deed zich een fout voor
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Nu Ontgrendelen
|
||||
removeVault.title=Verwijder Kluis
|
||||
removeVault.message=Kluis verwijderen?
|
||||
removeVault.description=Dit laat Cryptomator enkel deze kluis vergeten. U kunt deze later opnieuw toevoegen. Er worden geen versleutelde bestanden van uw harde schijf verwijderd.
|
||||
removeVault.confirmBtn=Verwijder Kluis
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Wijzig wachtwoord
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Er is een fout gemaakt in het registratie
|
||||
hub.registerFailed.description.deviceAlreadyExists=Dit apparaat is al geregistreerd voor een andere gebruiker. Probeer de account te wijzigen of gebruik een ander apparaat.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Toegang geweigerd
|
||||
hub.unauthorized.description=U bent niet geautoriseerd om deze kluis te openen. Neem contact op met de eigenaar van de kluis om toegang aan te vragen.
|
||||
hub.unauthorized.description=Uw apparaat is nog niet gemachtigd om toegang te krijgen tot deze kluis. Vraag de eigenaar van de kluis om toestemming te geven.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Actie vereist
|
||||
hub.requireAccountInit.description.0=Om verder te gaan, gelieve de stappen te voltooien in uw
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Sponsor
|
||||
removeCert.title=Verwijder Certificaat
|
||||
removeCert.message=Certificaat verwijderen?
|
||||
removeCert.description=De kernfuncties van Cryptomator worden hierdoor niet beïnvloed. Toegang tot uw kluizen wordt niet beperkt, noch wordt het beveiligingsniveau verlaagd.
|
||||
removeCert.confirmBtn=Verwijderen
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Ondersteuning beëindigd voor Dokany
|
||||
dokanySupportEnd.description=Het volumetype Dokany wordt niet langer ondersteund door Cryptomator. Uw instellingen zijn aangepast om nu het standaard volumetype te gebruiken. U kunt het standaardtype bekijken in de voorkeuren.
|
||||
dokanySupportEnd.preferencesBtn=Open Voorkeuren
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Beperkte toegang tot kluis
|
||||
retryIfReadonly.message=Geen schrijftoegang tot de kluis map
|
||||
retryIfReadonly.description=Cryptomator kan niet naar de kluis map schrijven. U kunt de kluis veranderen om alleen-lezen te zijn en het opnieuw proberen. Deze optie kan worden uitgeschakeld in de kluis opties.
|
||||
retryIfReadonly.retry=Wijzig en probeer opnieuw
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Kluis delen
|
||||
shareVault.message=Wilt u uw kluis met anderen delen?
|
||||
@@ -574,6 +569,6 @@ shareVault.visitHub=Bezoek Cryptomator Hub
|
||||
|
||||
shareVault.hub.message=Hoe een Hub kluis delen
|
||||
shareVault.hub.description=Om de inhoud van de kluis te delen met een ander teamlid, moet u twee stappen uitvoeren:
|
||||
shareVault.hub.instruction.1=1. Deel toegang van de versleutelde kluis map via de cloud opslag.
|
||||
shareVault.hub.instruction.1=1. Deel toegang van de versleutelde kluismap via de cloud opslag.
|
||||
shareVault.hub.instruction.2=2. Geef teamlid toegang in Cryptomator Hub.
|
||||
shareVault.hub.openHub=Open Cryptomator Hub
|
||||
@@ -72,6 +72,7 @@ addvaultwizard.success.unlockNow=Lås opp no
|
||||
# Remove Vault
|
||||
removeVault.title=Fjern kvelv
|
||||
removeVault.description=Dette vil berre få Cryptomator til å gløyma denne kvelven. Du kan legga til kvelven seinare igjen. Ingen krypterte filer blir sletta frå harddisken.
|
||||
removeVault.confirmBtn=Fjern kvelv
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Byt passord
|
||||
@@ -278,6 +279,4 @@ quit.lockAndQuitBtn=Lås og avslutt
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -118,6 +118,4 @@
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=ਕਾਪੀ ਕੀਤਾ!
|
||||
generic.button.done=ਮੁਕੰਮਲ
|
||||
generic.button.next=ਅੱਗੇ
|
||||
generic.button.print=ਪਰਿੰਟ ਕਰੋ
|
||||
generic.button.remove=ਹਟਾਓ
|
||||
|
||||
# Error
|
||||
error.message=ਇੱਕ ਤਰੁੱਟੀ ਆਈ ਹੈ
|
||||
@@ -52,7 +51,6 @@ addvaultwizard.new.directoryPickerLabel=ਪਸੰਦੀਦਾ ਟਿਕਾਣਾ
|
||||
addvaultwizard.new.directoryPickerButton=…ਚੁਣੋ
|
||||
addvaultwizard.new.directoryPickerTitle=ਡਾਇਰੈਕਟਰੀ ਚੁਣੋ
|
||||
addvaultwizard.new.fileAlreadyExists=ਵਾਲਟ ਨਾਂ ਨਾਲ ਫਾਇਲ ਜਾਂ ਡਾਇਰੈਕਟਰੀ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ
|
||||
addvaultwizard.new.locationIsOk=ਤੁਹਾਡੇ ਵਾਲਟ ਲਈ ਢੁੱਕਵਾਂ ਟਿਕਾਣਾ
|
||||
addvaultwizard.new.invalidName=ਗਲਤ ਵਾਲਟ ਨਾਂ
|
||||
addvaultwizard.new.validName=ਵਾਜਬ ਵਾਲਟ ਨਾਂ
|
||||
addvaultwizard.new.validCharacters.message=ਵਾਲਟ ਨਾਂ ਵਿੱਚ ਅੱਗੇ ਦਿੱਤੇ ਅੱਖਰ ਹੋ ਸਕਦੇ ਹਨ:
|
||||
@@ -61,8 +59,6 @@ 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.valid=ਵਾਜਬ
|
||||
### Password
|
||||
addvaultwizard.new.createVaultBtn=ਵਾਲਟ ਬਣਾਓ
|
||||
@@ -99,6 +95,7 @@ addvaultwizard.success.unlockNow=ਹੁਣੇ ਅਣ-ਲਾਕ ਕਰੋ
|
||||
removeVault.title=ਵਾਲਟ ਹਟਾਓ
|
||||
removeVault.message=ਵਾਲਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?
|
||||
removeVault.description=ਇਸ ਸਿਰਫ਼ Cryptomator ਨੂੰ ਇਹ ਵਾਲਟ ਭੁਲਾਏਗਾ। ਤੁਸੀਂ ਇਸ ਨੂੰ ਬਾਅਦ ਵਿੱਚ ਵੀ ਜੋੜ ਸਕਦੇ ਹੋ। ਕੋਈ ਵੀ ਇੰਕ੍ਰਿਪਟ ਕੀਤੀ ਫਾਇਲ ਤੁਹਾਡੀ ਹਾਰਡ ਡਰਾਇਵ ਉਤੋਂ ਹਟਾਈ ਨਹੀਂ ਜਾਵੇਗੀ।
|
||||
removeVault.confirmBtn=ਵਾਲਟ ਹਟਾਓ
|
||||
|
||||
# Change Password
|
||||
changepassword.title=ਪਾਸਵਰਡ ਬਦਲੋ
|
||||
@@ -149,10 +146,8 @@ hub.registerFailed.message=ਡਿਵਾਈਸ ਰਜਿਸਟਰ ਕਰਨਾ
|
||||
hub.unauthorized.message=ਪਹੁੰਚ ਤੋਂ ਇਨਾਕਰ
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=ਕਾਰਵਾਈ ਦੀ ਲੋੜ ਹੈ
|
||||
hub.requireAccountInit.description.1=ਹੱਬ ਵਰਤੋਂਕਾਰ ਪਰੋਫਾਇਲ
|
||||
hub.requireAccountInit.description.2=.
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=ਹੱਬ ਲਸੰਸ ਗ਼ੈਰਵਾਜਬ ਹੈ
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -168,7 +163,6 @@ lock.fail.description=ਵਾਲਟ "%s" ਨੂੰ ਲਾਕ ਨਹੀਂ ਕੀ
|
||||
migration.title=ਵਾਲਟ ਅੱਪਗਰੇਡ ਕਰੋ
|
||||
## Start
|
||||
migration.start.header=ਵਾਲਟ ਅੱਪਗਰੇਡ ਕਰੋ
|
||||
migration.start.remarkUndone=ਇਸ ਅੱਪਗਰੇਡ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।
|
||||
migration.start.confirm=ਮੈਂ ਉੱਤੇ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਨੂੰ ਪੜ੍ਹੋ ਅਤੇ ਸਮਝ ਲਿਆ ਹੈ
|
||||
## Run
|
||||
migration.run.enterPassword="%s" ਲਈ ਪਾਸਵਰਡ ਦਿਓ
|
||||
@@ -202,15 +196,9 @@ health.intro.affirmation=ਮੈਂ ਉੱਤੇ ਦਿੱਤੀ ਜਾਣਕਾ
|
||||
health.fail.header=ਵਾਲਟ ਸੰਰਚਨਾ ਲੋਡ ਕਰਨ ਲਈ ਗਲਤੀ
|
||||
health.fail.moreInfo=ਹੋਰ ਜਾਣਕਾਰੀ
|
||||
## Check Selection
|
||||
health.checkList.selectAllButton=ਸਭ ਚੋਣਾਂ ਨੂੰ ਚੁਣੋ
|
||||
health.checkList.deselectAllButton=ਸਭ ਚੋਣਾਂ ਨੂੰ ਨਾ ਚੁਣੋ
|
||||
health.check.runBatchBtn=ਚੁਣੀਆਂ ਚੋਣਾਂ ਨੂੰ ਚਲਾਓ
|
||||
## Detail view
|
||||
health.check.detail.checkScheduled=ਜਾਂਚ ਨੂੰ ਸੈਡਿਊਲ ਕੀਤਾ ਗਿਆ ਹੈ।
|
||||
health.check.detail.checkRunning=ਜਾਂਚ ਇਸ ਵੇਲੇ ਚੱਲ ਰਹੀ ਹੈ…
|
||||
health.check.detail.checkCancelled=ਜਾਂਚ ਨੂੰ ਰੱਦ ਕੀਤਾ ਗਿਆ ਹੈ।
|
||||
health.check.detail.listFilters.label=ਫਿਲਟਰ
|
||||
health.check.exportBtn=ਰਿਪੋਰਟ ਨੂੰ ਐਕਸਪੋਰਟ ਕਰੋ
|
||||
## Result view
|
||||
health.result.severityFilter.good=ਵਧੀਆ
|
||||
health.result.severityFilter.info=ਜਾਣਕਾਰੀ
|
||||
@@ -248,7 +236,6 @@ preferences.volume=ਵਰਚੁਅਲ ਡਰਾਇਵ
|
||||
preferences.volume.type=ਮੂਲ ਵਾਲੀਅਮ ਕਿਸਮ
|
||||
preferences.volume.type.automatic=ਆਟੋਮੈਟਿਕ
|
||||
preferences.volume.tcp.port=ਮੂਲ TCP ਪੋਰਟ
|
||||
preferences.volume.feature.readOnly=ਸਿਰਫ਼-ਪੜ੍ਹਨ ਲਈ ਮਾਊਂਟ
|
||||
## Updates
|
||||
preferences.updates=ਅੱਪਡੇਟ
|
||||
preferences.updates.currentVersion=ਮੌਜੂਦਾ ਵਰਜ਼ਨ: %s
|
||||
@@ -260,18 +247,15 @@ preferences.updates.lastUpdateCheck.never=ਕਦੇ ਨਹੀਂ
|
||||
preferences.updates.lastUpdateCheck.recently=ਸੱਜਰੇ
|
||||
preferences.updates.lastUpdateCheck.daysAgo=%s ਦਿਨ ਪਹਿਲਾਂ
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=%s ਘੰਟੇ ਪਹਿਲਾਂ
|
||||
preferences.updates.upToDate=Cryptomator ਅੱਪ-ਟੂ-ਡੇਟ ਹੈ।
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=ਸਾਡਾ ਸਮਰਥਨ ਕਰੋ
|
||||
preferences.contribute.registeredFor=%s ਲਈ ਰਜਿਸਟਰ ਕੀਤਾ ਸਹਿਯੋਗੀ ਸਰਟੀਫਿਕੇਟ
|
||||
preferences.contribute.thankYou=Cryptomator ਦੇ ਖੁੱਲ੍ਹੇ ਸਰੋਤ ਵਿਕਾਸ ਨੂੰ ਸਹਿਯੋਗ ਦੇਣ ਲਈ ਤੁਹਾਡਾ ਧੰਨਵਾਦ ਹੈ!
|
||||
preferences.contribute.donate=ਦਾਨ ਕਰੋ
|
||||
preferences.contribute.sponsor=ਸਪਾਂਸਰ
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=ਸਰਟੀਫਿਕੇਟ ਨੂੰ ਹਟਾਓ
|
||||
removeCert.message=ਸਹਿਯੋਗੀ ਸਰਟੀਫਿਕੇਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?
|
||||
removeCert.confirmBtn=ਹਟਾਓ
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -349,7 +333,6 @@ main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=ਵਾਲਟ ਅੰਕੜੇ
|
||||
main.vaultDetail.locateEncryptedFileBtn=ਇੰਕ੍ਰਿਪਟ ਕੀਤੀ ਫਾਇਲ ਨੂੰ ਲੱਭੋ
|
||||
main.vaultDetail.filePickerTitle=ਵਾਲਟ ਵਿੱਚ ਫਾਇਲ ਨੂੰ ਚੁਣੋ
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator ਇਸ ਮਾਗਰ ਉੱਤੇ ਵਾਲਟ ਨਹੀਂ ਲੱਭਿਆ ਸਕੀ।
|
||||
main.vaultDetail.missing.recheck=ਮੁੜ-ਜਾਂਚੋ
|
||||
@@ -410,7 +393,6 @@ vaultOptions.masterkey.showRecoveryKeyBtn=ਰਿਕਰਵੀ ਕੁੰਜੀ ਦ
|
||||
vaultOptions.masterkey.recoverPasswordBtn=ਪਾਸਵਰਡ ਰੀਸੈੱਟ ਕਰੋ
|
||||
## Hub
|
||||
vaultOptions.hub=ਰਿਕਵਰੀ
|
||||
vaultOptions.hub.convertBtn=ਪਾਸਵਰਡ ਅਧਾਰਿਤ ਵਾਲਟ ਲਈ ਬਦਲੋ
|
||||
|
||||
# Recovery Key
|
||||
## Display Recovery Key
|
||||
@@ -431,13 +413,8 @@ recoveryKey.printout.heading=Cryptomator ਰਿਕਵਰੀ ਕੁੰਜੀ\n"%s
|
||||
recoveryKey.recover.resetBtn=ਰੀਸੈੱਟ ਕਰੋ
|
||||
### Recovery Key Password Reset Success
|
||||
recoveryKey.recover.resetSuccess.message=ਪਾਸਵਰਡ ਨੂੰ ਕਾਮਯਾਬੀ ਨਾਲ ਮੁੜ-ਸੈੱਟ ਕੀਤਾ ਗਿਆ
|
||||
recoveryKey.recover.resetSuccess.description=ਤੁਸੀਂ ਆਪਣੇ ਵਾਲਟ ਨੂੰ ਨਵੇਂ ਪਾਸਵਰਡ ਨਾਲ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ
|
||||
|
||||
# Convert Vault
|
||||
convertVault.title=ਵਾਲਟ ਨੂੰ ਬਦਲੋ
|
||||
convertVault.convert.convertBtn.before=ਬਦਲੋ
|
||||
convertVault.convert.convertBtn.processing=…ਬਦਲਿਆ ਜਾ ਰਿਹਾ ਹੈ
|
||||
convertVault.success.message=ਬਦਲਣਾ ਕਾਮਯਾਬ ਹੈ
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=ਨਵਾਂ ਪਾਸਵਰਡ ਦਿਓ
|
||||
@@ -475,8 +452,6 @@ dokanySupportEnd.title=ਬਰਤਰਫ਼ੀ ਨੋਟਿਸ
|
||||
dokanySupportEnd.message=Dokany ਲਈ ਸਹਿਯੋਗ ਖ਼ਤਮ
|
||||
dokanySupportEnd.preferencesBtn=ਪਸੰਦੀਦਾ ਖੋਲ੍ਹੋ
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=ਵਾਲਟ ਨੂੰ ਸਾਂਝਾ ਕਰੋ
|
||||
shareVault.message=ਕੀ ਤੁਸੀਂ ਆਪਣੇ ਵਾਲਟ ਨੂੰ ਹੋਰਾਂ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Skopiowano!
|
||||
generic.button.done=Gotowe
|
||||
generic.button.next=Dalej
|
||||
generic.button.print=Drukuj
|
||||
generic.button.remove=Usuń
|
||||
|
||||
# Error
|
||||
error.message=Wystąpił błąd
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Odblokuj teraz
|
||||
removeVault.title=Usuń sejf
|
||||
removeVault.message=Usunąć sejf?
|
||||
removeVault.description=To tylko sprawi, że Cryptomator nie będzie widział tego sejfu. Możesz dodać go ponownie później. Żadne zaszyfrowane pliki nie zostaną usunięte z dysku twardego.
|
||||
removeVault.confirmBtn=Usuń sejf
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Zmiana Hasła
|
||||
@@ -150,7 +150,7 @@ 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.
|
||||
hub.noKeychain.openBtn=Otwórz ustawienia
|
||||
### Waiting
|
||||
hub.auth.message=Oczekiwanie na autoryzację…
|
||||
hub.auth.message=Czekanie na autoryzację…
|
||||
hub.auth.description=Przekierowanie na stronę logowania nastąpi automatycznie.
|
||||
hub.auth.loginLink=Nie przekierowano? Kliknij tutaj.
|
||||
### Receive Key
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Wystąpił błąd w procesie rejestracji.
|
||||
hub.registerFailed.description.deviceAlreadyExists=To urządzenie jest już zarejestrowane dla innego użytkownika. Spróbuj zmienić konto użytkownika lub użyć innego urządzenia.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Brak dostępu
|
||||
hub.unauthorized.description=Twoje urządzenie nie zostało jeszcze upoważnione do dostępu do tego sejfu. Poproś właściciela sejfu o autoryzację.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Wymagane działanie
|
||||
hub.requireAccountInit.description.0=Aby kontynuować, wykonaj wymagane kroki w Twoim
|
||||
@@ -245,7 +246,7 @@ health.checkList.deselectAllButton=Odznacz wszystkie testy
|
||||
health.check.runBatchBtn=Uruchom wybrane testy
|
||||
## Detail view
|
||||
health.check.detail.noSelectedCheck=Aby sprawdzić wyniki, wybierz test z listy po lewej stronie.
|
||||
health.check.detail.checkScheduled=Test został zaplanowany.
|
||||
health.check.detail.checkScheduled=Test będzie uruchomiony.
|
||||
health.check.detail.checkRunning=Test jest aktualnie uruchomiony…
|
||||
health.check.detail.checkSkipped=Test nie był wybrany do uruchomienia.
|
||||
health.check.detail.checkFinished=Test zakończony pomyślnie.
|
||||
@@ -336,12 +337,12 @@ preferences.contribute.getCertificate=Nie masz jeszcze? Dowiedz się, jak możes
|
||||
preferences.contribute.promptText=Wklej tutaj kod certyfikatu darczyńcy
|
||||
preferences.contribute.thankYou=Dziękujemy za wsparcie rozwoju Cryptomatora!
|
||||
preferences.contribute.donate=Wspomóż
|
||||
preferences.contribute.sponsor=Sponsor
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Usuń Certyfikat
|
||||
removeCert.message=Usunąć certyfikat wsparcia?
|
||||
removeCert.description=Nie ma to wpływu na podstawowe funkcje Cryptomatora. Dostęp do twoich sejfów nie jest ograniczony oraz nie zmniejsza się poziom bezpieczeństwa.
|
||||
removeCert.description=Nie ma to wpływu na podstawowe funkcje Cryptomatora. Dostęp do twoich sejfów nie jest ograniczony, oraz nie zmniejsza się poziom bezpieczeństwa.
|
||||
removeCert.confirmBtn=Usuń
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -368,7 +369,7 @@ stats.write.throughput.idle=Zapis: bezczynny
|
||||
stats.write.throughput.kibs=Zapis: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Zapis: %.2f MiB/s
|
||||
stats.write.total.data.none=Zapisane dane: -
|
||||
stats.write.total.data.kib=Zapisane dane: %.1f KiB
|
||||
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 GiB
|
||||
stats.encr.total.data.none=Dane zaszyfrowane: -
|
||||
@@ -413,7 +414,7 @@ main.vaultDetail.revealBtn=Otwórz lokalizację
|
||||
main.vaultDetail.copyUri=Kopiuj URI
|
||||
main.vaultDetail.lockBtn=Blokuj
|
||||
main.vaultDetail.bytesPerSecondRead=Odczyt:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zapis:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zapisz:
|
||||
main.vaultDetail.throughput.idle=bezczynny
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
@@ -441,7 +442,7 @@ wrongFileAlert.message=Czy chciałeś zaszyfrować te pliki?
|
||||
wrongFileAlert.description=W tym celu Cryptomator zapewnia udział dostępny w menedżerze plików.
|
||||
wrongFileAlert.instruction.0=Aby zaszyfrować pliki, wykonaj następujące kroki:
|
||||
wrongFileAlert.instruction.1=1. Odblokuj swój sejf.
|
||||
wrongFileAlert.instruction.2=2. Kliknij "Otwórz lokalizację", aby otworzyć udział w menedżerze plików.
|
||||
wrongFileAlert.instruction.2=2. Kliknij na "Otwórz lokalizację", aby otworzyć udział w menedżerze plików.
|
||||
wrongFileAlert.instruction.3=3. Dodaj pliki do tego udziału.
|
||||
wrongFileAlert.link=Aby uzyskać pomoc, wejdź na
|
||||
|
||||
@@ -500,7 +501,7 @@ recoveryKey.recover.prompt=Wprowadź klucz odzyskiwania dla "%s":
|
||||
recoveryKey.recover.correctKey=To jest prawidłowy klucz odzyskiwania
|
||||
recoveryKey.recover.wrongKey=Ten klucz należy do innego sejfu
|
||||
recoveryKey.recover.invalidKey=Ten klucz jest nieprawidłowy
|
||||
recoveryKey.printout.heading=Cryptomator - Klucz odzyskiwania\n"%s"\n
|
||||
recoveryKey.printout.heading=Cryptomator - Klucz odzyskiwania "%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetuj
|
||||
### Recovery Key Password Reset Success
|
||||
@@ -551,8 +552,6 @@ dokanySupportEnd.message=Koniec wsparcia dla Dokany
|
||||
dokanySupportEnd.description=Typ udziału Dokany nie jest już wspierany przez Cryptomator. Twoje ustawienia zostały dostosowane do domyślnego typu udziału. Możesz sprawdzić jaki jest domyślny typ w ustawieniach.
|
||||
dokanySupportEnd.preferencesBtn=Otwórz ustawienia
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Udostępnij sejf
|
||||
shareVault.message=Czy chcesz udostępnić swój sejf innym?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copiado!
|
||||
generic.button.done=Ok
|
||||
generic.button.next=Seguinte
|
||||
generic.button.print=Imprimir
|
||||
generic.button.remove=Remover
|
||||
|
||||
# Error
|
||||
error.message=Erro %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Desbloquear agora
|
||||
removeVault.title=Remover Cofre
|
||||
removeVault.message=Remover Cofre?
|
||||
removeVault.description=Isto fará unicamente com que o Cryptomator esqueça este cofre. Poderá adicioná-lo novamente mais tarde. Nenhum ficheiro encriptado será apagado do seu disco rígido.
|
||||
removeVault.confirmBtn=Remover Cofre
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Alterar Palavra-passe
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Ocorreu um erro no processo de registo. P
|
||||
hub.registerFailed.description.deviceAlreadyExists=Este dispositivo já está registado para um utilizador diferente. Tente alterar a conta de utilizador ou use um dispositivo diferente.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Acesso negado
|
||||
hub.unauthorized.description=Não está autorizado a abrir este cofre. Contacte o proprietário do cofre para solicitar o acesso.
|
||||
hub.unauthorized.description=O seu dispositivo ainda não foi autorizado a aceder a este cofre. Peça ao proprietário do cofre para o autorizar.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Ação requerida
|
||||
hub.requireAccountInit.description.0=Para continuar, conclua as etapas necessárias no seu
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Patrocinador
|
||||
removeCert.title=Remover certificado
|
||||
removeCert.message=Remover o certificado de apoiante?
|
||||
removeCert.description=As principais caraterísticas do Cryptomator não são afectadas por isto. Nem o acesso aos seus cofres é restringido nem o nível de segurança é reduzido.
|
||||
removeCert.confirmBtn=Remover
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Suporte termina para o Dokany
|
||||
dokanySupportEnd.description=O tipo de volume Dokany não é mais suportado pelo Cryptomator. As configurações serão ajustadas para usar o tipo de volume padrão por agora. Pode ver o tipo padrão nas preferências.
|
||||
dokanySupportEnd.preferencesBtn=Abrir preferências
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Acesso ao Cofre Restrito
|
||||
retryIfReadonly.message=Sem acesso de gravação ao diretório do cofre
|
||||
retryIfReadonly.description=O Cryptomator não pode escrever no diretório do cofre. Pode alterar o cofre para ser apenas de leitura e tentar novamente. Esta opção pode ser desactivada nas opções do cofre.
|
||||
retryIfReadonly.retry=Alterar e tentar de novo
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Partilhar cofre
|
||||
shareVault.message=Quer partilhar o seu cofre com outros?
|
||||
|
||||
@@ -13,17 +13,16 @@ generic.button.copied=Copiado!
|
||||
generic.button.done=Concluído
|
||||
generic.button.next=Próximo
|
||||
generic.button.print=Imprimir
|
||||
generic.button.remove=Remover
|
||||
|
||||
# Error
|
||||
error.message=Erro %s
|
||||
error.description=O Cryptomator não esperava que isso acontecesse. Você pode procurar soluções existentes para este erro. Ou, se ainda não foi relatado, sinta-se à 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 para este problema online. Isso enviará uma solicitação para nosso banco de dados de problemas a partir do seu endereço IP.
|
||||
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
|
||||
|
||||
@@ -56,7 +55,7 @@ addvaultwizard.new.directoryPickerButton=Escolher…
|
||||
addvaultwizard.new.directoryPickerTitle=Selecionar Diretório
|
||||
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 gravação no caminho especificado
|
||||
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
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Desbloquear Agora
|
||||
removeVault.title=Remover o cofre "%s"
|
||||
removeVault.message=Remover o cofre?
|
||||
removeVault.description=Isso só fará com que o Cryptomator esqueça esse cofre. Você pode adicioná-lo novamente. Nenhum arquivo criptografado será excluído do seu disco rígido.
|
||||
removeVault.confirmBtn=Remover Cofre
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Alterar Senha
|
||||
@@ -176,7 +176,7 @@ hub.registerFailed.description.generic=Um erro ocorreu no processo de registro.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Este dispositivo já está registrado para um usuário diferente. Tente alterar a conta de usuário ou use um dispositivo diferente.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Acesso negado
|
||||
hub.unauthorized.description=Você não está autorizado a abrir este cofre. Entre em contato com o proprietário do cofre para solicitar acesso.
|
||||
hub.unauthorized.description=Seu dispositivo ainda não foi autorizado a acessar este cofre. Peça ao proprietário do cofre para autorizá-lo.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Ação necessária
|
||||
hub.requireAccountInit.description.0=Para prosseguir, por favor, complete os passos necessários
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Patrocinador
|
||||
removeCert.title=Excluir Certificado
|
||||
removeCert.message=Excluir certificado de apoiador?
|
||||
removeCert.description=Os principais recursos do Cryptomador não são afetados por isso. Nem o acesso aos seus cofres é restrito, nem o nível de segurança é reduzido.
|
||||
removeCert.confirmBtn=Remover
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Fim do suporte para o Dokany
|
||||
dokanySupportEnd.description=O volume do tipo Dokany não é mais suportado pelo Cryptomator. Suas configurações serão ajustadas para usar o tipo de volume padrão agora. Você pode ver o tipo padrão nas preferências.
|
||||
dokanySupportEnd.preferencesBtn=Abrir Preferências
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Acesso Restrito ao Cofre
|
||||
retryIfReadonly.message=Sem acesso de gravação ao diretório do cofre
|
||||
retryIfReadonly.description=O Cryptomator não pode escrever no diretório do cofre. Você pode alterar o cofre para somente leitura e tentar novamente. Esta opção pode ser desativada nas opções de cofre.
|
||||
retryIfReadonly.retry=Alterar e Repetir
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Compartilhar Cofre
|
||||
shareVault.message=Gostaria de compartilhar o seu cofre com outras pessoas?
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Copiat!
|
||||
generic.button.done=Terminat
|
||||
generic.button.next=Următorul
|
||||
generic.button.print=Tipărește
|
||||
generic.button.remove=Șterge
|
||||
|
||||
# Error
|
||||
error.message=A apărut o eroare
|
||||
@@ -21,7 +20,7 @@ error.description=Cryptomator nu se aștepta să se întâmple asta. Puteți că
|
||||
error.hyperlink.lookup=Caută soluții pentru această eroare
|
||||
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 existenta pentru această eroare. Vă rugăm să cititi următorul link.
|
||||
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ță
|
||||
@@ -48,7 +47,6 @@ addvaultwizard.new.nameInstruction=Alege un nume pentru seif
|
||||
addvaultwizard.new.namePrompt=Nume seif
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Unde ar trebui ca Cryptomator să stocheze fișierele criptate din seiful dumneavoastră?
|
||||
addvaultwizard.new.locationLoading=Se verifică sistemul de fișiere locale pentru directoarele implicite de stocare în nor…
|
||||
addvaultwizard.new.locationLabel=Locație stocare
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Locație personalizată
|
||||
@@ -106,6 +104,7 @@ addvaultwizard.success.unlockNow=Deblochează acum
|
||||
removeVault.title=Eliminați seiful
|
||||
removeVault.message=Ștergeți seiful?
|
||||
removeVault.description=Acest lucru va face Cryptomator să uite de acest seif. Îl puteţi adăuga din nou mai târziu. Nici un fişier criptat nu va fi şters din hard disk-ul dvs.
|
||||
removeVault.confirmBtn=Eliminați seiful
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Schimbați parola
|
||||
@@ -160,7 +159,7 @@ hub.receive.description=In acest moment Criptomatorul primește și procesează
|
||||
hub.register.message=Dispozitiv nou
|
||||
hub.register.description=Acesta este primul acces la Hub de pe acest dispozitiv. Vă rugăm să îl înregistrați folosind cheia de cont.
|
||||
hub.register.nameLabel=Numele dispozitivului
|
||||
hub.register.invalidAccountKeyLabel=Cheie cont invalidă
|
||||
hub.register.invalidAccountKeyLabel=Cheie cont nevalidă
|
||||
hub.register.registerBtn=Înregistrare
|
||||
### Register Device Legacy
|
||||
hub.register.legacy.occupiedMsg=Numele este deja în uz
|
||||
@@ -173,9 +172,9 @@ hub.registerSuccess.legacy.description=Pentru a accesa seiful dispozitivului tre
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=Înregistrarea dispozitivului a eșuat
|
||||
hub.registerFailed.description.generic=.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Acest dispozitiv este deja înregistrat pentru un alt utilizator. Încercați să schimbați contul de utilizator sau folosiți un alt dispozitiv.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Acces respins
|
||||
hub.unauthorized.description=Dispozitivul dvs. nu a fost autorizat să acceseze acest seif. Solicitați proprietarului seifului să va autorizeze accesul.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Acțiune necesară
|
||||
hub.requireAccountInit.description.0=Pentru a continua, vă rugăm să finalizaţi paşii necesari în
|
||||
@@ -322,8 +321,7 @@ preferences.updates.updateAvailable=Actualizare la versiunea %s disponibilă.
|
||||
preferences.updates.lastUpdateCheck=Ultima verificare: %s
|
||||
preferences.updates.lastUpdateCheck.never=niciodată
|
||||
preferences.updates.lastUpdateCheck.recently=recent
|
||||
preferences.updates.lastUpdateCheck.daysAgo=Acum %s zile
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=%s ore în urmă
|
||||
preferences.updates.lastUpdateCheck.daysAgo=acum %s zile
|
||||
preferences.updates.checkFailed=Căutarea actualizărilor a eșuat. Verificați conexiunea la internet sau încercați din nou mai târziu.
|
||||
preferences.updates.upToDate=Cryptomator este actualizat.
|
||||
|
||||
@@ -333,13 +331,9 @@ preferences.contribute.registeredFor=Certificat de suporter înregistrat pentru
|
||||
preferences.contribute.noCertificate=Susțineți Cryptomator și primiți un certificat de suport. E ca o cheie de licență dar pentru persoanele minunate care folosesc software gratuit. ;-)
|
||||
preferences.contribute.getCertificate=Nu aveți deja unul? Aflați cum îl puteți obține.
|
||||
preferences.contribute.promptText=Lipiți codul certificatului de suporter aici
|
||||
preferences.contribute.thankYou=Va mulțumim pentru suportul dumneavoastră la dezvoltarea open-source a Cryptomatorului
|
||||
preferences.contribute.donate=Donez
|
||||
preferences.contribute.sponsor=Sponsor
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.title=Elimina Certificat
|
||||
removeCert.message=Elimina Certificat suporter?
|
||||
removeCert.confirmBtn=Șterge
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -389,11 +383,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.menuItemNew=Creare seif nou...
|
||||
main.vaultlist.addVaultBtn.menuItemExisting=Deschide un seif existent...
|
||||
##Notificaition
|
||||
main.notification.updateAvailable=O nouă versiune este valabilă.
|
||||
main.notification.support=Susține Cryptomator.
|
||||
## 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:
|
||||
@@ -403,7 +393,6 @@ main.vaultDetail.unlockBtn=Deblochează…
|
||||
main.vaultDetail.unlockNowBtn=Deblochează acum
|
||||
main.vaultDetail.optionsBtn=Opțiuni seif
|
||||
main.vaultDetail.passwordSavedInKeychain=Parola a fost salvată
|
||||
main.vaultDetail.share=Distribuie…
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=DEBLOCAT
|
||||
main.vaultDetail.accessLocation=Conținutul seifului tău este accesibil aici:
|
||||
@@ -470,8 +459,7 @@ vaultOptions.mount.mountPoint.directoryPickerButton=Alege…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Alege un director
|
||||
vaultOptions.mount.volumeType.default=Implicit (%s)
|
||||
vaultOptions.mount.volumeType.restartRequired=Cryptomator trebuie repornit pentru ca modificările să fie aplicate.
|
||||
vaultOptions.mount.volume.tcp.port=Port TCP
|
||||
vaultOptions.mount.volume.type=Tip volum
|
||||
vaultOptions.mount.volume.tcp.port=Portul TCP
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Parolă
|
||||
vaultOptions.masterkey.changePasswordBtn=Schimbați parola
|
||||
@@ -544,28 +532,22 @@ updateReminder.yesOnce=Da, o dată
|
||||
updateReminder.yesAutomatically=Da, automat
|
||||
|
||||
#Dokany Support End
|
||||
dokanySupportEnd.message=Se termină suportul pentru Dokany
|
||||
dokanySupportEnd.description=Tipul de volum Dokany nu mai este suportat de Cryptomator. Setările dumneavoastra sunt ajustate pentru a utiliza acum tipul de volum implicit. Puteți vizualiza tipul implicit din preferințe.
|
||||
dokanySupportEnd.description=Tipul de volum Dokany nu mai este suportat de Criptomator. Setările dvs. sunt ajustate pentru a utiliza acum tipul de volum implicit. Puteți vizualiza tipul implicit din preferințe.
|
||||
dokanySupportEnd.preferencesBtn=Deschideţi preferinţele
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Partajare seif
|
||||
shareVault.message=Doriți să vă împărtășiți seiful cu ceilalți?
|
||||
shareVault.description=Fiți întotdeauna precauți când împărtășiți seiful cu alte persoane. Pe scurt, urmați acești pași:
|
||||
shareVault.instruction.1=1. Partajati accesul la folderul criptat din seif prin stocarea în cloud.
|
||||
shareVault.instruction.2=2. Partajati parola seifului într-un mod sigur.
|
||||
shareVault.instruction.1=1. Partajarea accesului la folderul criptat din seif prin stocarea în cloud.
|
||||
shareVault.instruction.2=2. Partajează parola seifului într-un mod sigur.
|
||||
shareVault.remarkBestPractices=Pentru mai multe informații, consultați cele mai bune practici sugerate în documentele noastre.
|
||||
shareVault.docsTooltip=Deschideți documentația pentru a afla mai multe despre tipurile diferite de unități de stocare.
|
||||
shareVault.hubAd.description=Modul securizat pentru a lucra în echipe
|
||||
shareVault.hubAd.keyManagement=Fara cunostinte despre managementul cheie.
|
||||
shareVault.hubAd.description=Modul securizat de a lucra în echipe
|
||||
shareVault.hubAd.keyManagement=• Managementul cheie al cunoașterii spațiale
|
||||
shareVault.hubAd.authentication=• Autentificare puternică
|
||||
shareVault.hubAd.encryption=• Criptare în ambele părți
|
||||
shareVault.visitHub=Vizitează Hub-ul Cryptomator
|
||||
shareVault.visitHub=Vizitează Hub pentru Criptomator
|
||||
|
||||
shareVault.hub.message=Cum să partajezi un seif Hub
|
||||
shareVault.hub.description=Pentru a partaja conținutul de seif cu un alt membru al echipei, trebuie să efectuați doi pași:
|
||||
shareVault.hub.instruction.1=1. Partajarea accesului la folderul criptat din seif prin stocarea in nor.
|
||||
shareVault.hub.instruction.2=2. Acordă acces membrului echipei din hub-ul Cryptomator.
|
||||
shareVault.hub.openHub=Deschide Cryptomator Hub
|
||||
shareVault.hub.instruction.1=1. Partajarea accesului la folderul criptat din seif prin stocarea în cloud.
|
||||
shareVault.hub.instruction.2=2. Acordă acces membrului echipei din hub-ul Cryptomator.
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Скопировано!
|
||||
generic.button.done=Готово
|
||||
generic.button.next=Далее
|
||||
generic.button.print=Печать
|
||||
generic.button.remove=Удалить
|
||||
|
||||
# Error
|
||||
error.message=Произошла ошибка
|
||||
@@ -48,7 +47,7 @@ addvaultwizard.new.nameInstruction=Выберите имя для хранили
|
||||
addvaultwizard.new.namePrompt=Имя хранилища
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Где Cryptomator должен хранить зашифрованные файлы хранилища?
|
||||
addvaultwizard.new.locationLoading=Поиск облачных каталогов по умолчанию в локальной файловой системе…
|
||||
addvaultwizard.new.locationLoading=Поиск в локальной файловой системе облачных каталогов по умолчанию…
|
||||
addvaultwizard.new.locationLabel=Место хранения
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=Другое место
|
||||
@@ -61,7 +60,7 @@ addvaultwizard.new.locationIsOk=Подходящее расположение д
|
||||
addvaultwizard.new.invalidName=Неверное имя хранилища
|
||||
addvaultwizard.new.validName=Допустимое имя хранилища
|
||||
addvaultwizard.new.validCharacters.message=Имя хранилища может содержать следующие символы:
|
||||
addvaultwizard.new.validCharacters.chars=Буквы (например: a, ж или 수)
|
||||
addvaultwizard.new.validCharacters.chars=Буквы (например, a, ж или 수)
|
||||
addvaultwizard.new.validCharacters.numbers=Цифры
|
||||
addvaultwizard.new.validCharacters.dashes=Дефис (%s) или подчёркивание (%s)
|
||||
### Expert Settings
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Разблокировать
|
||||
removeVault.title=Удалить "%s"
|
||||
removeVault.message=Удалить хранилище?
|
||||
removeVault.description=Cryptomator просто забудет это хранилище. Позже вы можете добавить его снова. Зашифрованные файлы не будут удалены с диска.
|
||||
removeVault.confirmBtn=Удалить хранилище
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Изменить пароль
|
||||
@@ -124,8 +124,8 @@ unlock.passwordPrompt=Введите пароль для "%s"
|
||||
unlock.savePassword=Запомнить пароль
|
||||
unlock.unlockBtn=Разблокировать
|
||||
## Select
|
||||
unlock.chooseMasterkey.message=Файл Masterkey не найден
|
||||
unlock.chooseMasterkey.description=Не удалось найти файл Masterkey для хранилища "%s". Выберите ключевой файл вручную.
|
||||
unlock.chooseMasterkey.message=Файл мастер-ключа не найден
|
||||
unlock.chooseMasterkey.description=Не удалось найти файл мастер-ключа для хранилища "%s". Выберите ключевой файл вручную.
|
||||
unlock.chooseMasterkey.filePickerTitle=Выберите файл MasterKey
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Мастер-ключ Cryptomator
|
||||
## Success
|
||||
@@ -152,7 +152,7 @@ hub.noKeychain.openBtn=Открыть настройки
|
||||
### Waiting
|
||||
hub.auth.message=Ожидание аутентификации…
|
||||
hub.auth.description=Вы должны быть автоматически перенаправлены на страницу входа.
|
||||
hub.auth.loginLink=Перенаправления не произошло? Нажмите здесь, чтобы открыть её.
|
||||
hub.auth.loginLink=Не перенаправлено? Нажмите здесь, чтобы открыть её.
|
||||
### Receive Key
|
||||
hub.receive.message=Обработка ответа…
|
||||
hub.receive.description=Cryptomator принимает и обрабатывает ответ от хаба. Подождите.
|
||||
@@ -160,7 +160,7 @@ hub.receive.description=Cryptomator принимает и обрабатывае
|
||||
hub.register.message=Новое устройство
|
||||
hub.register.description=Это первый доступ к хабу с этого устройства. Авторизуйтесь, используя ваш ключ аккаунта.
|
||||
hub.register.nameLabel=Имя устройства
|
||||
hub.register.invalidAccountKeyLabel=Неверный ключ учётной записи
|
||||
hub.register.invalidAccountKeyLabel=Неверный Account Key
|
||||
hub.register.registerBtn=Регистрация
|
||||
### Register Device Legacy
|
||||
hub.register.legacy.occupiedMsg=Имя уже используется
|
||||
@@ -175,8 +175,8 @@ hub.registerFailed.message=Ошибка регистрации устройст
|
||||
hub.registerFailed.description.generic=Ошибка регистрации. Подробную информацию см. в журнале приложения.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Это устройство уже зарегистрировано другим пользователем. Попробуйте изменить учётную запись или используйте другое устройство.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Нет доступа
|
||||
hub.unauthorized.description=Вы не авторизованы для открытия этого хранилища. Свяжитесь с владельцем хранилища, чтобы запросить доступ.
|
||||
hub.unauthorized.message=Доступ запрещен
|
||||
hub.unauthorized.description=Устройство ещё не авторизовано для доступа к этому хранилищу. Попросите владельца хранилища разрешить его.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Требуется действие
|
||||
hub.requireAccountInit.description.0=Для продолжения выполните необходимые шаги в
|
||||
@@ -290,7 +290,7 @@ preferences.general.keychainBackend=Хранение паролей
|
||||
preferences.general.quickAccessService=Добавлять открытые хранилища в область быстрого доступа
|
||||
## Interface
|
||||
preferences.interface=Интерфейс
|
||||
preferences.interface.theme=Тема
|
||||
preferences.interface.theme=Отображение
|
||||
preferences.interface.theme.automatic=Автоматически
|
||||
preferences.interface.theme.dark=Тёмная
|
||||
preferences.interface.theme.light=Светлая
|
||||
@@ -343,6 +343,7 @@ preferences.contribute.sponsor=Спонсировать
|
||||
removeCert.title=Удалить сертификат
|
||||
removeCert.message=Удалить сертификат поддержки?
|
||||
removeCert.description=Ключевые функции криптоматора не затронуты этим. Ни один доступ к хранилищу не ограничен, уровень безопасности не снижен.
|
||||
removeCert.confirmBtn=Удалить
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -552,12 +553,6 @@ dokanySupportEnd.message=Заканчивается поддержка для Do
|
||||
dokanySupportEnd.description=Cryptomator больше не поддерживает тома Dokany. Параметры будут изменены на использование типа томов по умолчанию. Тип по умолчанию см. в настройках.
|
||||
dokanySupportEnd.preferencesBtn=Открыть настройки
|
||||
|
||||
#Retry If Readonly
|
||||
retryIfReadonly.title=Ограниченный доступ к хранилищу
|
||||
retryIfReadonly.message=Нет доступа на запись в каталог хранилища
|
||||
retryIfReadonly.description=Cryptomator не может выполнять запись в папку хранилища. Можно изменить у хранилища доступ только для чтения и повторить попытку. Эта опция может быть отключена в параметрах хранилища.
|
||||
retryIfReadonly.retry=Изменить и повторить
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Поделиться хранилищем
|
||||
shareVault.message=Хотите поделиться хранилищем с другими?
|
||||
|
||||
@@ -135,6 +135,4 @@ hub.registerSuccess.unlockBtn=අගුළුහරින්න
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Skopírované!
|
||||
generic.button.done=Hotovo
|
||||
generic.button.next=Ďalej
|
||||
generic.button.print=Tlač
|
||||
generic.button.remove=Odstrániť
|
||||
|
||||
# Error
|
||||
error.message=Vyskytla sa chyba
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=Odomknúť teraz
|
||||
removeVault.title=Odstrániť "%s"
|
||||
removeVault.message=Odstrániť trezor?
|
||||
removeVault.description=To spôsobí, že Cryptomator iba zabudne na tento trezor. Môžete ho pridať znova neskôr. Z pevného disku sa neodstránia žiadne šifrované súbory.
|
||||
removeVault.confirmBtn=Odstrániť trezor
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Zmeniť heslo
|
||||
@@ -168,6 +168,7 @@ hub.registerSuccess.unlockBtn=Odomknúť
|
||||
hub.registerFailed.message=Registrácia zariadenia zlyhala
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Prístup zamietnutý
|
||||
hub.unauthorized.description=Vaše zaradenie zatiaľ ešte nebolo autorizované pre pristúp tohto trezora. Požiadajte majiteľa trezora o autorizovanie.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Vyžadovaná akcia
|
||||
hub.requireAccountInit.description.0=Pre pokračovanie vyplňte potrebné kroky vo vašom
|
||||
@@ -334,6 +335,7 @@ preferences.contribute.sponsor=Sponzor
|
||||
removeCert.title=Odstrániť certifikát
|
||||
removeCert.message=Odstrániť certifikát podporovateľa?
|
||||
removeCert.description=Funkcionality jadra Cryptomator-a nie sú týmto dotknuté. Žiadny pristúp do Vášho trezora ani úroveň zabezpečenia nie je znížená.
|
||||
removeCert.confirmBtn=Odstrániť
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -542,8 +544,6 @@ dokanySupportEnd.message=Ukončenie podpory pre Dokany
|
||||
dokanySupportEnd.description=Typ média Dokany už Cryptomator viac nepodporuje. Vaše nastavenia sú nastavené používať základný typ média. Základný typ môžete vidieť v nastaveniach.
|
||||
dokanySupportEnd.preferencesBtn=Otvoriť predvoľby
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
shareVault.title=Zdielať trezor
|
||||
shareVault.hubAd.authentication=* Silná autentifikácia
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopirano!
|
||||
generic.button.done=Opravljeno
|
||||
generic.button.next=Naslednji
|
||||
generic.button.print=Natisni
|
||||
generic.button.remove=Odstrani
|
||||
|
||||
# Error
|
||||
error.message=Prišlo je do napake
|
||||
@@ -117,6 +116,7 @@ preferences.updates.lastUpdateCheck.daysAgo=%s dni nazaj
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Odstrani
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -178,6 +178,4 @@ recoveryKey.recover.invalidKey=Obnovitveni ključ ni pravilen
|
||||
|
||||
#Dokany Support End
|
||||
|
||||
#Retry If Readonly
|
||||
|
||||
# Share Vault
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user