mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-15 17:21:27 +00:00
Compare commits
53 Commits
1.15.0-bet
...
2ndfactor
| 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/"
|
||||
|
||||
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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -78,7 +78,7 @@ For more information on the security details visit [cryptomator.org](https://doc
|
||||
|
||||
### 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
|
||||
|
||||
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
|
||||
|
||||
48
pom.xml
48
pom.xml
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>cryptomator</artifactId>
|
||||
<version>1.15.0</version>
|
||||
<version>1.15.0-SNAPSHOT</version>
|
||||
<name>Cryptomator Desktop App</name>
|
||||
|
||||
<organization>
|
||||
@@ -33,46 +33,43 @@
|
||||
<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.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>
|
||||
|
||||
<dependencies>
|
||||
@@ -208,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>
|
||||
@@ -311,6 +308,7 @@
|
||||
<compilerArgs>
|
||||
<arg>-Adagger.fastInit=enabled</arg>
|
||||
<arg>-Adagger.formatGeneratedSource=enabled</arg>
|
||||
<arg>--enable-preview</arg>
|
||||
</compilerArgs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
@@ -337,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>
|
||||
@@ -351,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>
|
||||
@@ -430,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");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -177,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
|
||||
@@ -553,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?
|
||||
|
||||
@@ -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 لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,6 +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=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
|
||||
@@ -327,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
|
||||
|
||||
@@ -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,8 +548,8 @@ 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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,333 +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
|
||||
|
||||
# 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,9 +529,6 @@ 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
|
||||
|
||||
# Share Vault
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=복사됨!
|
||||
generic.button.done=완료
|
||||
generic.button.next=다음
|
||||
generic.button.print=인쇄
|
||||
generic.button.remove=제거
|
||||
|
||||
# Error
|
||||
error.message=오류가 발생했습니다
|
||||
@@ -21,11 +20,7 @@ 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
|
||||
@@ -44,11 +39,10 @@ addvaultwizard.title=Vault 추가
|
||||
## New
|
||||
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=사용자 지정 위치
|
||||
@@ -106,6 +100,7 @@ addvaultwizard.success.unlockNow=지금 잠금해제
|
||||
removeVault.title=Vault 제거
|
||||
removeVault.message=Vault를 삭제하시겠습니까?
|
||||
removeVault.description=이 행위는 단지 Cryptomator에서 이 Vault를 잊게합니다. 나중에 다시 추가 할 수 있습니다. 암호화된 파일은 하드디스크에서 삭제되지 않을 것입니다.
|
||||
removeVault.confirmBtn=Vault 제거
|
||||
|
||||
# Change Password
|
||||
changepassword.title=비밀번호 변경
|
||||
@@ -130,58 +125,33 @@ unlock.chooseMasterkey.filePickerTitle=마스터키 파일 선택
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 마스터키
|
||||
## Success
|
||||
unlock.success.message=잠금 해제 성공
|
||||
unlock.success.description="%s"이(가) 성공적으로 잠금 해제되었습니다. 이제 이 Vault를 마운트 지점으로 접근할 수 있습니다.
|
||||
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=문제 해결 가능
|
||||
@@ -282,12 +247,10 @@ 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=테마설정
|
||||
@@ -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=사용자 정의 마운트 설정
|
||||
@@ -335,14 +293,9 @@ 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=공유하기
|
||||
### 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,21 +375,20 @@ 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
|
||||
@@ -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,44 +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=설정 열기
|
||||
|
||||
# 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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
@@ -568,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
|
||||
|
||||
@@ -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=ਨਵਾਂ ਪਾਸਵਰਡ ਦਿਓ
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 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
|
||||
|
||||
@@ -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,6 +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=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
|
||||
@@ -342,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
|
||||
|
||||
@@ -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,26 +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
|
||||
|
||||
# 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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopirano!
|
||||
generic.button.done=Završeno
|
||||
generic.button.next=Dalje
|
||||
generic.button.print=Štampaj
|
||||
generic.button.remove=Уклони
|
||||
|
||||
# Error
|
||||
|
||||
@@ -78,6 +77,7 @@ addvaultwizard.success.unlockNow=Otključaj sada
|
||||
# Remove Vault
|
||||
removeVault.title=Ukloni sef
|
||||
removeVault.description=Ovo će uraditi da Cryptomator zaboravi vaš sef. Uvek ga ponovo možete dodati kasnije. Šifrovane datoteke neće biti obrisane sa vašeg tvrdog diska.
|
||||
removeVault.confirmBtn=Ukloni sef
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Promena lozinke
|
||||
@@ -179,6 +179,7 @@ preferences.contribute.getCertificate=Nemate sertifikat? Saznajte kako ga možet
|
||||
preferences.contribute.promptText=Unesite vaš "Prijatelj Projekta" kod ovde
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Уклони
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -74,6 +74,7 @@ addvaultwizard.success.nextStepsInstructions=Dodat je sef "%s".\nMorate da otklj
|
||||
addvaultwizard.success.unlockNow=Otključaj sada
|
||||
|
||||
# Remove Vault
|
||||
removeVault.confirmBtn=Ukloni sef
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Promena lozinke
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopierad!
|
||||
generic.button.done=Klar
|
||||
generic.button.next=Nästa
|
||||
generic.button.print=Skriv ut
|
||||
generic.button.remove=Radera
|
||||
|
||||
# Error
|
||||
error.message=Fel: %s
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Lås upp nu
|
||||
removeVault.title=Ta bort valv
|
||||
removeVault.message=Ta bort valv?
|
||||
removeVault.description=Detta kommer bara ta bort valvet från Cryptomator. Du kan lägga till det igen senare. Inga krypterade filer kommer tas bort från din hårddisk.
|
||||
removeVault.confirmBtn=Ta bort valv
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Ändra lösenord
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Ett fel uppstod i registreringsprocessen.
|
||||
hub.registerFailed.description.deviceAlreadyExists=Denna enhet är redan registrerad för en annan användare. Försök att ändra användarkontot eller använda en annan enhet.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Åtkomst nekad
|
||||
hub.unauthorized.description=Din enhet har ännu inte behörighet att komma åt detta valv. Be valvägaren att godkänna det.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Åtgärd krävs
|
||||
hub.requireAccountInit.description.0=För att fortsätta, vänligen fyll i de steg som krävs i din
|
||||
@@ -342,6 +343,7 @@ preferences.contribute.sponsor=Sponsor
|
||||
removeCert.title=Ta bort certifikat
|
||||
removeCert.message=Ta bort supportercertifikat?
|
||||
removeCert.description=Cryptomators kärnfunktioner påverkas inte av detta. Åtkomst till dina valv begränsas inte och säkerhetsnivån sänks inte.
|
||||
removeCert.confirmBtn=Ta bort
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Nakiliwa!
|
||||
generic.button.done=Tayari
|
||||
generic.button.next=Nyingine
|
||||
generic.button.print=Chapisha
|
||||
generic.button.remove=Ondoa
|
||||
|
||||
# Error
|
||||
error.message=Kosa %s
|
||||
@@ -93,6 +92,7 @@ addvaultwizard.success.unlockNow=Fungua Sasa
|
||||
removeVault.title=Ondoa Kuba
|
||||
removeVault.message=Ungependa kuondoa kuba?
|
||||
removeVault.description=Hii itafanya tu Cryptomator kusahau kuhusu kuba hii. Unaweza kuiongeza tena baadaye. Hakuna faili zilizosimbwa kwa njia fiche zitafutwa kutoka kwenye diski yako kuu.
|
||||
removeVault.confirmBtn=Ondoa Kuba
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Badilisha Neno la siri
|
||||
@@ -143,6 +143,7 @@ hub.registerSuccess.unlockBtn=Fungua
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Ufikiaji umekataliwa
|
||||
hub.unauthorized.description=Kifaa chako bado hakijaidhinishwa kufikia kuba hii. Uliza mwenye kuba aidhinishe.
|
||||
### Requires Account Initialization
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Leseni ya Hub ni batili
|
||||
@@ -287,6 +288,7 @@ preferences.contribute.getCertificate=Je, si kuwa na moja tayari? Jifunze jinsi
|
||||
preferences.contribute.promptText=Bandika msimbo wa cheti cha msaidizi hapa
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Ondoa
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=நகலெடுக்கப்பட்டது!
|
||||
generic.button.done=முடிந்தது
|
||||
generic.button.next=அடுத்து
|
||||
generic.button.print=அச்சிடு
|
||||
generic.button.remove=நீக்கு
|
||||
|
||||
# Error
|
||||
error.message=ஒரு பிழை ஏற்பட்டுள்ளது
|
||||
@@ -87,6 +86,7 @@ addvaultwizard.success.unlockNow=இப்போது திறக்கவு
|
||||
removeVault.title="%s" ஐ அகற்று
|
||||
removeVault.message=பெட்டகத்தை அகற்றவா?
|
||||
removeVault.description=இது Cryptomator -ஐ இந்தப் பெட்டகத்தை மறக்க மட்டும் செய்யும். நீங்கள் அதை மீண்டும் சேர்க்கலாம். உங்கள் ஹார்ட் டிரைவிலிருந்து குறியாக்கம் செய்யப்பட்ட கோப்புகள் எதுவும் நீக்கப்படாது.
|
||||
removeVault.confirmBtn=பெட்டகத்தை அகற்றவும்
|
||||
|
||||
# Change Password
|
||||
changepassword.title=கடவுச்சொல்லை மாற்று
|
||||
@@ -190,6 +190,7 @@ preferences.interface.theme.light=வெளிச்சம்
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=நீக்கு
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
# Generics
|
||||
## Button
|
||||
generic.button.remove=తొలగించు
|
||||
|
||||
# Error
|
||||
|
||||
@@ -72,6 +71,7 @@ preferences.interface.theme.light=కాంతి
|
||||
## Contribution
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=తొలగించు
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -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=ลบ Vault หรือไม่?
|
||||
removeVault.description=นี่จะทำให้ Cryptomator ลืมเกี่ยวกับ vault นี้เท่านั้น คุณสามารถเพิ่มมันอีกครั้งได้ ไม่มีไฟล์ที่เข้ารหัสจะถูกลบจากฮาร์ดดิสก์ของคุณ
|
||||
removeVault.confirmBtn=ลบ Vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=เปลี่ยนรหัสผ่าน
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=เกิดข้อผิดพลา
|
||||
hub.registerFailed.description.deviceAlreadyExists=อุปกรณ์นี้ลงทะเบียนไว้แล้วสำหรับผู้ใชอื่น โปรดลองเปลี่ยนบัญชีผู้ใช้หรือลงทะเบียนอุปกรณ์อื่น
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=การเข้าถึงถูกปฏิเสธ
|
||||
hub.unauthorized.description=อุปกรณ์ของคุณยังไม่ได้รับการอนุญาตให้เข้าถึง vault นี้ โปรดขอให้เจ้าของ vault อนุญาต
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=โปรดดำเนินการ
|
||||
hub.requireAccountInit.description.0=เพื่อดำเนินการต่อ โปรดทำตามขั้นตอนที่จำเป็นใน
|
||||
@@ -291,6 +292,7 @@ preferences.updates.lastUpdateCheck.hoursAgo=%s ชั่วโมงที่
|
||||
preferences.contribute=สนับสนุนเรา
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=ลบ
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Kopyalandı!
|
||||
generic.button.done=Tamam
|
||||
generic.button.next=İleri
|
||||
generic.button.print=Yazdır
|
||||
generic.button.remove=Kaldır
|
||||
|
||||
# Error
|
||||
error.message=Bir hata oluştu
|
||||
@@ -106,6 +105,7 @@ addvaultwizard.success.unlockNow=Kilidi Şimdi Aç
|
||||
removeVault.title="%s" Kasasını Sil
|
||||
removeVault.message=Kasa silinsin mi?
|
||||
removeVault.description=Bu, yalnızca Cryptomator'ın bu kasayı unutmasını sağlar. Daha sonra tekrar ekleyebilirsiniz. Şifrelenmiş hiçbir dosya sabit diskinizden silinmez.
|
||||
removeVault.confirmBtn=Kasayı Sil
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Parolayı Değiştir
|
||||
@@ -176,6 +176,7 @@ hub.registerFailed.description.generic=Kayıt işleminde bir hata oluştu. Daha
|
||||
hub.registerFailed.description.deviceAlreadyExists=Bu cihaz zaten farklı bir kullanıcı için kayıtlı. Kullanıcı hesabını değiştirmeyi veya farklı bir cihaz kullanmayı deneyin.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Erişim engellendi
|
||||
hub.unauthorized.description=Cihazınız henüz bu kasaya erişim için yetkilendirilmedi. Kasa sahibinden yetkilendirmesini isteyin.
|
||||
### Requires Account Initialization
|
||||
hub.requireAccountInit.message=Eylem gerekli
|
||||
hub.requireAccountInit.description.0=Devam etmek için lütfen gerekli adımları tamamlayın
|
||||
@@ -342,6 +343,7 @@ preferences.contribute.sponsor=Destekçi
|
||||
removeCert.title=Sertifikayı Kaldır
|
||||
removeCert.message=Destekçi sertifikası kaldırılsın mı?
|
||||
removeCert.description=Cryptomator'ın temel özellikleri bundan etkilenmez. Ne kasalarınıza erişim kısıtlanır, ne de güvenlik seviyesi düşürülür.
|
||||
removeCert.confirmBtn=Kaldır
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -105,6 +105,7 @@ addvaultwizard.success.unlockNow=ھازىر قۇلۇپسىزلا
|
||||
removeVault.title=»%s« نى چىقىرىۋەت
|
||||
removeVault.message=ئامبارنى چىقىرىۋېتەمسىز؟
|
||||
removeVault.description=بۇ پەقەت Cryptomator نىڭ بۇ ئامبارنى ئۇنتۇشىغا سەۋەب بولىدۇ. سىز ئۇنى قايتا قوشالايسىز. قاتتىق دىسكىڭىزدىكى شىفىرلانغان ھۆججەتلەر ئۆچۈرۈلمەيدۇ.
|
||||
removeVault.confirmBtn=ئامبارنى ئۆچۈرۈش
|
||||
|
||||
# Change Password
|
||||
changepassword.title=پارولنى ئۆزگەرتىش
|
||||
@@ -175,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=داۋاملاشتۇرۇش ئۈچۈن، سىزنىڭ
|
||||
|
||||
@@ -14,7 +14,6 @@ generic.button.copied=Скопійовано!
|
||||
generic.button.done=Завершити
|
||||
generic.button.next=Далі
|
||||
generic.button.print=Друкувати
|
||||
generic.button.remove=Прибрати
|
||||
|
||||
# Error
|
||||
error.message=Сталася помилка
|
||||
@@ -107,6 +106,7 @@ addvaultwizard.success.unlockNow=Розблокувати
|
||||
removeVault.title=Видалити "%s"
|
||||
removeVault.message=Видалити сховище?
|
||||
removeVault.description=Це лише змусить Cryptomator забути про це сховище. Його можна буде додати знову пізніше. Зашифровані файли на вашому жорсткому диску не буде втрачено.
|
||||
removeVault.confirmBtn=Видалити сховище
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Зміна паролю
|
||||
@@ -177,6 +177,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=Для продовження, будь ласка, завершіть виконання обов'язкових кроків
|
||||
@@ -301,7 +302,6 @@ preferences.interface.interfaceOrientation=Відображення елемен
|
||||
preferences.interface.interfaceOrientation.ltr=Зліва направо
|
||||
preferences.interface.interfaceOrientation.rtl=Справа наліво
|
||||
preferences.interface.showTrayIcon=Показувати піктограму на панелі завдань (потрібен перезапуск)
|
||||
preferences.interface.compactMode=Активувати компактний список сховищ
|
||||
## Volume
|
||||
preferences.volume=Віртуальний диск
|
||||
preferences.volume.type=Тип тому за замовчуванням
|
||||
@@ -335,14 +335,9 @@ preferences.contribute.registeredFor=Сертифікат помічника з
|
||||
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
|
||||
@@ -392,11 +387,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 для захисту ваших файлів. Якщо вам потрібна допомога, перегляньте наші інструкції з роботи:
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=Đã sao chép!
|
||||
generic.button.done=Hoàn thành
|
||||
generic.button.next=Tiếp
|
||||
generic.button.print=In
|
||||
generic.button.remove=Xóa
|
||||
|
||||
# Error
|
||||
error.message=Đã xảy ra lỗi
|
||||
@@ -105,6 +104,7 @@ addvaultwizard.success.unlockNow=Mở khóa bây giờ
|
||||
removeVault.title=Xóa Vault
|
||||
removeVault.message=Xoá vault?
|
||||
removeVault.description=Điều này sẽ chỉ làm cho Cryptomator quên đi vault này. Bạn có thể thêm lại sau. Không có tệp được mã hóa nào sẽ bị xóa khỏi ổ cứng của bạn.
|
||||
removeVault.confirmBtn=Xóa Vault
|
||||
|
||||
# Change Password
|
||||
changepassword.title=Đổi mật khẩu
|
||||
@@ -163,6 +163,7 @@ hub.registerSuccess.unlockBtn=Mở khoá
|
||||
hub.registerFailed.message=Đăng ký thiết bị thất bại
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Truy cập bị từ chối
|
||||
hub.unauthorized.description=Thiết bị của bạn chưa được phép truy cập vault này. Yêu cầu chủ sở hữu cấp phép.
|
||||
### Requires Account Initialization
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Giấy phép Hub không hợp lệ
|
||||
@@ -313,6 +314,7 @@ preferences.contribute.getCertificate=Bạn chưa có? Tìm hiểu cách bạn c
|
||||
preferences.contribute.promptText=Vui lòng dán mã chứng nhận người hỗ trợ vào đây
|
||||
|
||||
### Remove License Key Dialog
|
||||
removeCert.confirmBtn=Xóa
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
|
||||
@@ -13,15 +13,14 @@ generic.button.copied=已复制!
|
||||
generic.button.done=完成
|
||||
generic.button.next=下一步
|
||||
generic.button.print=打印
|
||||
generic.button.remove=删除
|
||||
|
||||
# Error
|
||||
error.message=发生错误
|
||||
error.description=Cryptomator 没有预料到这种情况。您可以查找该错误的现有解决方案;或者,如果是新错误,请随时向我们报告。
|
||||
error.description=糟糕!Cryptomator 未料到会发生这种情况。您可以查找该错误的现有解决方案;或者,如果是新错误,请随时向我们报告。
|
||||
error.hyperlink.lookup=查找该错误
|
||||
error.hyperlink.report=报告该错误
|
||||
error.technicalDetails=详细信息:
|
||||
error.existingSolutionDescription=Cryptomator 没有预料到这种情况,但我们找到了一个现有的解决方案来解决这个错误。请查看以下链接。
|
||||
error.existingSolutionDescription=Cryptomator 没有预料到会发生这种情况。但我们找到了一个现有的解决方案来解决这个错误。请查看以下链接。
|
||||
error.hyperlink.solution=查找解决方案
|
||||
error.lookupPermissionMessage=Cryptomator 可以在线查找这个问题的解决方案。这将从您的IP地址向我们的问题数据库发送一个请求。
|
||||
error.dismiss=放弃
|
||||
@@ -103,9 +102,10 @@ addvaultwizard.success.nextStepsInstructions=已添加保险库 "%s"\n您需要
|
||||
addvaultwizard.success.unlockNow=立即解锁
|
||||
|
||||
# Remove Vault
|
||||
removeVault.title=删除“%s”
|
||||
removeVault.title=移除保险库
|
||||
removeVault.message=删除保险库?
|
||||
removeVault.description=这将只会使 Cryptomator 忘记这个保险库,您可以稍后再添加它。任何加密的文件不会从您的硬盘中删除。
|
||||
removeVault.confirmBtn=移除保险库
|
||||
|
||||
# Change Password
|
||||
changepassword.title=更改密码
|
||||
@@ -130,12 +130,12 @@ unlock.chooseMasterkey.filePickerTitle=选择 Masterkey 文件
|
||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 主密钥
|
||||
## Success
|
||||
unlock.success.message=解锁成功
|
||||
unlock.success.description=保险库中的内容 "%s" 现在可以通过其挂载点访问。
|
||||
unlock.success.description=已成功解锁 "%s"! 您现在可以通过其虚拟驱动器访问它
|
||||
unlock.success.rememberChoice=记住选项且不再显示
|
||||
unlock.success.revealBtn=显示驱动器
|
||||
## Failure
|
||||
unlock.error.customPath.message=无法将保险库挂载到自定义路径
|
||||
unlock.error.customPath.description.notSupported=如果您仍想使用自定义路径,请转至首选项并选择支持它的卷类型。否则,请转至保险库选项并选择受支持的挂载点。
|
||||
unlock.error.customPath.description.notSupported=如果您仍想使用自定义路径,请转至首选项并选择支持它的卷类型。否则,请转至保险库选项并选择受支持的挂载点
|
||||
unlock.error.customPath.description.notExists=自定义挂载路径不存在,请在您的本地文件系统中创建它或在保险库选项中进行更改
|
||||
unlock.error.customPath.description.inUse=盘符或自定义挂载路径「%s」已被使用。
|
||||
unlock.error.customPath.description.hideawayNotDir=用于解锁的临时隐藏文件 "%3$s" 无法被删除。请检查此文件并手动删除
|
||||
@@ -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=要继续,请完成所需的步骤
|
||||
@@ -301,7 +301,6 @@ preferences.interface.interfaceOrientation=界面方向
|
||||
preferences.interface.interfaceOrientation.ltr=从左到右
|
||||
preferences.interface.interfaceOrientation.rtl=从右到左
|
||||
preferences.interface.showTrayIcon=显示托盘图标(需重启)
|
||||
preferences.interface.compactMode=启用紧凑保险库列表视图
|
||||
## Volume
|
||||
preferences.volume=虚拟磁盘
|
||||
preferences.volume.type=默认卷类型
|
||||
@@ -335,14 +334,9 @@ 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
|
||||
@@ -392,11 +386,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 来保护您的文件。如果您需要任何帮助,请查看我们的快速开始指南:
|
||||
@@ -467,7 +457,7 @@ vaultOptions.mount.customMountFlags=自定义挂载标志
|
||||
vaultOptions.mount.winDriveLetterOccupied=已占用
|
||||
vaultOptions.mount.mountPoint=挂载点
|
||||
vaultOptions.mount.mountPoint.auto=自动选择一个合适的位置
|
||||
vaultOptions.mount.mountPoint.driveLetter=使用分配的盘符
|
||||
vaultOptions.mount.mountPoint.driveLetter=使用分配的驱动器字符
|
||||
vaultOptions.mount.mountPoint.custom=使用选定的目录
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=选择...
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=选择目录
|
||||
|
||||
@@ -13,7 +13,6 @@ generic.button.copied=已複製!
|
||||
generic.button.done=完成
|
||||
generic.button.next=繼續
|
||||
generic.button.print=列印
|
||||
generic.button.remove=移除
|
||||
|
||||
# Error
|
||||
error.message=發生錯誤
|
||||
@@ -23,9 +22,6 @@ error.hyperlink.report=報告此錯誤
|
||||
error.technicalDetails=詳情:
|
||||
error.existingSolutionDescription=Cryptomator 沒有預料到會發生這種情況。但我們找到了一個現有的解決方案來解決這個錯誤。請查看以下連結。
|
||||
error.hyperlink.solution=尋找解決方案
|
||||
error.lookupPermissionMessage=Cryptomator 可以在線查找此問題的解決方案。這將從您的 IP 地址發送請求至我們的問題資料庫。
|
||||
error.dismiss=忽略
|
||||
error.lookUpSolution=查找解決方案
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=加密庫
|
||||
@@ -42,13 +38,11 @@ traymenu.vault.reveal=展示
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=新增加密庫
|
||||
## New
|
||||
addvaultwizard.new.title=新增加密檔案庫
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=為加密庫命名
|
||||
addvaultwizard.new.namePrompt=加密庫名稱
|
||||
### Location
|
||||
addvaultwizard.new.locationInstruction=Cryptomator 應該把加密後的檔案儲存在哪裏?
|
||||
addvaultwizard.new.locationLoading=正在檢查本地檔案系統中的預設雲端儲存目錄…
|
||||
addvaultwizard.new.locationLabel=儲存位置
|
||||
addvaultwizard.new.locationPrompt=…
|
||||
addvaultwizard.new.directoryPickerLabel=自訂位置
|
||||
@@ -93,7 +87,6 @@ addvault.new.readme.accessLocation.2=這是你加密庫的存取位置。
|
||||
addvault.new.readme.accessLocation.3=所有被加進這個空間的檔案都會被 Cryptomator 加密。你可以把它當做磁碟或資料夾使用。這裡僅顯示出解密後內容,而你在此儲存的檔案總會以加密狀態儲存在磁碟中。
|
||||
addvault.new.readme.accessLocation.4=你可以放心移除這個檔案。
|
||||
## Existing
|
||||
addvaultwizard.existing.title=新增現有加密檔案庫
|
||||
addvaultwizard.existing.instruction=請選擇現有加密庫中名為「vault.cryptomator」的檔案。如果只有一個名為「masterkey.cryptomator」的檔案,則選擇該檔案。
|
||||
addvaultwizard.existing.chooseBtn=選取…
|
||||
addvaultwizard.existing.filePickerTitle=選取加密庫檔案
|
||||
@@ -106,6 +99,7 @@ addvaultwizard.success.unlockNow=立即解鎖
|
||||
removeVault.title=移除加密庫:%s
|
||||
removeVault.message=移除加密庫?
|
||||
removeVault.description=這只會讓 Cryptomator 忘記這個加密庫。你可以之後再重新加入。已加密的檔案將不會從硬碟中移除。
|
||||
removeVault.confirmBtn=移除加密庫
|
||||
|
||||
# Change Password
|
||||
changepassword.title=更改密碼
|
||||
@@ -138,13 +132,9 @@ unlock.error.customPath.message=無法掛載加密庫於此自定路徑
|
||||
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=無法將您的保險庫掛載至路徑「%s」。請再試一次或選擇不同的路徑。
|
||||
unlock.error.customPath.description.notEmptyDir=自訂掛載路徑「%s」不是一個空資料夾。請選擇一個空資料夾並重試。
|
||||
unlock.error.customPath.description.generic=您為此保險庫選擇了自訂掛載路徑,但使用時出現了錯誤訊息:%2$s
|
||||
unlock.error.restartRequired.message=無法解鎖加密檔案庫
|
||||
unlock.error.restartRequired.description=在加密檔案庫選項中更改磁碟區類型或重新啟動 Cryptomator。
|
||||
unlock.error.title=解鎖"%s"失敗
|
||||
## Hub
|
||||
hub.noKeychain.message=無法訪問設備密鑰
|
||||
hub.noKeychain.description=為了解鎖 Hub 加密檔案庫需要一個裝置密鑰,該密鑰已被安全地保管在鑰匙串中。為了繼續進行,請啟用「%s」並在偏好設定中選擇一個鑰匙串。
|
||||
@@ -157,30 +147,15 @@ hub.auth.loginLink=未被轉送?點擊這裡打開
|
||||
hub.receive.message=正在處理程式回應…
|
||||
hub.receive.description=Cryptomator正在接收並處理來自Hub的回應。 請等待。
|
||||
### Register Device
|
||||
hub.register.message=新裝置
|
||||
hub.register.description=這是此裝置的第一次 Hub 存取。請使用您的帳戶密鑰註冊。
|
||||
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=您的裝置已成功註冊。您現在可以繼續解鎖加密檔案庫。
|
||||
hub.registerSuccess.unlockBtn=解鎖
|
||||
hub.registerSuccess.legacy.description=要存取加密檔案庫,您的裝置需要由加密檔案庫擁有者額外授權。
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=裝置註冊失敗
|
||||
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=請完成您所需的步驟以繼續。
|
||||
hub.requireAccountInit.description.1=Hub使用者個人資料
|
||||
hub.requireAccountInit.description.2=。
|
||||
### License Exceeded
|
||||
hub.invalidLicense.message=Hub 授權無效
|
||||
hub.invalidLicense.description=此 Cryptomator Hub 實例授權無效,請聯繫管理員升級或續訂授權。
|
||||
@@ -286,7 +261,6 @@ preferences.general.debugLogging=啟用除錯日誌
|
||||
preferences.general.debugDirectory=展示日誌檔案
|
||||
preferences.general.autoStart=系統啟動時同時啟動 Cryptomator
|
||||
preferences.general.keychainBackend=儲存密碼使用
|
||||
preferences.general.quickAccessService=將解鎖的加密檔案庫新增至快速存取區域
|
||||
## Interface
|
||||
preferences.interface=界面
|
||||
preferences.interface.theme=外觀
|
||||
@@ -300,14 +274,11 @@ preferences.interface.interfaceOrientation=界面排列方向
|
||||
preferences.interface.interfaceOrientation.ltr=左至右
|
||||
preferences.interface.interfaceOrientation.rtl=右至左
|
||||
preferences.interface.showTrayIcon=顯示系統工作列圖示 (需重新啟動)
|
||||
preferences.interface.compactMode=啟用緊湊型加密檔案庫清單
|
||||
## 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=使用自訂資料夾路徑來掛載
|
||||
@@ -320,13 +291,6 @@ preferences.updates.currentVersion=目前版本:%s
|
||||
preferences.updates.autoUpdateCheck=勾選以啟用自動更新
|
||||
preferences.updates.checkNowBtn=立即檢查
|
||||
preferences.updates.updateAvailable=有版本 %s 可更新。
|
||||
preferences.updates.lastUpdateCheck=上次檢查:%s
|
||||
preferences.updates.lastUpdateCheck.never=從未
|
||||
preferences.updates.lastUpdateCheck.recently=最近
|
||||
preferences.updates.lastUpdateCheck.daysAgo=%s天前
|
||||
preferences.updates.lastUpdateCheck.hoursAgo=%s小時前
|
||||
preferences.updates.checkFailed=更新失敗。請檢查您網路連線或稍後再試。
|
||||
preferences.updates.upToDate=Cryptomator已是最新版本
|
||||
|
||||
## Contribution
|
||||
preferences.contribute=贊助我們
|
||||
@@ -334,14 +298,9 @@ 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 +350,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 保護你的檔案。如需要任何協助,請參照我們的使用指南:
|
||||
@@ -405,7 +360,6 @@ main.vaultDetail.unlockBtn=解鎖…
|
||||
main.vaultDetail.unlockNowBtn=立即解鎖
|
||||
main.vaultDetail.optionsBtn=加密庫選項
|
||||
main.vaultDetail.passwordSavedInKeychain=密碼已儲存
|
||||
main.vaultDetail.share=分享…
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=已解鎖
|
||||
main.vaultDetail.accessLocation=加密庫的內容可以在這裏存取
|
||||
|
||||
@@ -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=請完成您的
|
||||
@@ -342,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
|
||||
|
||||
@@ -121,6 +121,13 @@ public class EnvironmentTest {
|
||||
env.getKeychainPath();
|
||||
Mockito.verify(env).getPaths("cryptomator.integrationsWin.keychainPaths");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWindowsHelloKeychainPath() {
|
||||
Mockito.doReturn(Stream.of()).when(env).getPaths(Mockito.anyString());
|
||||
env.getWindowsHelloKeychainPath();
|
||||
Mockito.verify(env).getPaths("cryptomator.integrationsWin.windowsHelloKeychainPaths");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.cryptomator.common.keychain;
|
||||
|
||||
|
||||
import org.cryptomator.JavaFXUtil;
|
||||
import org.cryptomator.integrations.keychain.KeychainAccessException;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Assumptions;
|
||||
@@ -19,6 +20,12 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
public class KeychainManagerTest {
|
||||
|
||||
@BeforeAll
|
||||
public static void startup() throws InterruptedException {
|
||||
var isRunning = JavaFXUtil.startPlatform();
|
||||
Assumptions.assumeTrue(isRunning);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStoreAndLoad() throws KeychainAccessException {
|
||||
KeychainManager keychainManager = new KeychainManager(new SimpleObjectProperty<>(new MapKeychainAccess()));
|
||||
@@ -27,15 +34,7 @@ public class KeychainManagerTest {
|
||||
}
|
||||
|
||||
@Nested
|
||||
public static class WhenObservingProperties {
|
||||
|
||||
@BeforeAll
|
||||
public static void startup() throws InterruptedException {
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
Platform.startup(latch::countDown);
|
||||
var javafxStarted = latch.await(5, TimeUnit.SECONDS);
|
||||
Assumptions.assumeTrue(javafxStarted);
|
||||
}
|
||||
public class WhenObservingProperties {
|
||||
|
||||
@Test
|
||||
public void testPropertyChangesWhenStoringPassword() throws KeychainAccessException, InterruptedException {
|
||||
@@ -43,7 +42,7 @@ public class KeychainManagerTest {
|
||||
ReadOnlyBooleanProperty property = keychainManager.getPassphraseStoredProperty("test");
|
||||
Assertions.assertFalse(property.get());
|
||||
|
||||
keychainManager.storePassphrase("test", null,"bar");
|
||||
keychainManager.storePassphrase("test", null, "bar");
|
||||
|
||||
AtomicBoolean result = new AtomicBoolean(false);
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.cryptomator.ui.controls;
|
||||
|
||||
import org.cryptomator.JavaFXUtil;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Assumptions;
|
||||
@@ -18,10 +19,8 @@ public class SecurePasswordFieldTest {
|
||||
|
||||
@BeforeAll
|
||||
public static void initJavaFx() throws InterruptedException {
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
Platform.startup(latch::countDown);
|
||||
var javafxStarted = latch.await(5, TimeUnit.SECONDS);
|
||||
Assumptions.assumeTrue(javafxStarted);
|
||||
var isRunning = JavaFXUtil.startPlatform();
|
||||
Assumptions.assumeTrue(isRunning);
|
||||
}
|
||||
|
||||
@Nested
|
||||
|
||||
Reference in New Issue
Block a user