mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-09-22 07:54:19 +00:00
Compare commits
158
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4e757606d | ||
|
|
6fcb796177 | ||
|
|
4d6b035c29 | ||
|
|
d6a020994e | ||
|
|
518f75be32 | ||
|
|
28c7dbad69 | ||
|
|
68bf441fdd | ||
|
|
a606bcb81e | ||
|
|
fe93e51ffa | ||
|
|
f2949aae63 | ||
|
|
80e101456b | ||
|
|
2f311c1dfe | ||
|
|
8aaee3710a | ||
|
|
414d81dc06 | ||
|
|
b450ab028d | ||
|
|
5a51e53603 | ||
|
|
d65beb632d | ||
|
|
2b03477d31 | ||
|
|
f25e23da82 | ||
|
|
82368e2632 | ||
|
|
9057090b56 | ||
|
|
357937e0bf | ||
|
|
f84a2396eb | ||
|
|
193dcad6e8 | ||
|
|
257f4427b8 | ||
|
|
4778ba0770 | ||
|
|
77b908199e | ||
|
|
d448c42f87 | ||
|
|
b9403222ba | ||
|
|
93d0fd41a6 | ||
|
|
067bd4752c | ||
|
|
fb4f9fc68f | ||
|
|
a20667a156 | ||
|
|
4d47544244 | ||
|
|
d59f149f7c | ||
|
|
028f6e7a02 | ||
|
|
71e4f98665 | ||
|
|
d60ced52fe | ||
|
|
45c7d2b071 | ||
|
|
7a789d2eed | ||
|
|
cc1e542146 | ||
|
|
e4e84d46b6 | ||
|
|
61fc53bf9c | ||
|
|
f8386a5a99 | ||
|
|
da7e89fc72 | ||
|
|
6b57a0ad9c | ||
|
|
f1eb997804 | ||
|
|
2fe5180721 | ||
|
|
2fa88490bd | ||
|
|
5f5b5a5426 | ||
|
|
cb054bb4f5 | ||
|
|
b4f9bc62ca | ||
|
|
34bface2d7 | ||
|
|
70e52b1a31 | ||
|
|
59a2398c4c | ||
|
|
e5003c1783 | ||
|
|
d6fd012f71 | ||
|
|
d9d8c84230 | ||
|
|
1ad2cc3ee5 | ||
|
|
2eac09f6be | ||
|
|
4114ea6163 | ||
|
|
82da9f7a88 | ||
|
|
aa08046c4d | ||
|
|
b6d7f63470 | ||
|
|
624d18238c | ||
|
|
3bfe2b7a9e | ||
|
|
ba79cd0f8c | ||
|
|
be63ea1104 | ||
|
|
a3ad2a5677 | ||
|
|
26e5ceea01 | ||
|
|
83f1c4ea41 | ||
|
|
8d78e1432a | ||
|
|
d2ec5a5646 | ||
|
|
6bb0328799 | ||
|
|
8a8617b480 | ||
|
|
7484744038 | ||
|
|
0bbc4ecae5 | ||
|
|
9fcb166047 | ||
|
|
1ac017e3ab | ||
|
|
1ba401b8e6 | ||
|
|
07303b58f7 | ||
|
|
32a463768c | ||
|
|
2307950e3b | ||
|
|
8108128c22 | ||
|
|
58fe6da7a8 | ||
|
|
92bf73297a | ||
|
|
0bf8fb39dd | ||
|
|
0dc9a3a834 | ||
|
|
91d6264b9f | ||
|
|
d2599ea525 | ||
|
|
7180af9bc7 | ||
|
|
dc993dc57c | ||
|
|
464c74ab6c | ||
|
|
8c7dd8c74f | ||
|
|
69bcf6fac6 | ||
|
|
7c243dd434 | ||
|
|
357a0b9c31 | ||
|
|
d69d11b82f | ||
|
|
863e9bbcb3 | ||
|
|
1c47012033 | ||
|
|
cd99eaa323 | ||
|
|
dda2afda92 | ||
|
|
5519eefcfa | ||
|
|
a81352800d | ||
|
|
6fec16e498 | ||
|
|
42f31204a3 | ||
|
|
7ab64cfe46 | ||
|
|
1581a10c04 | ||
|
|
249becc25d | ||
|
|
da8e84f39d | ||
|
|
9ad2d223c3 | ||
|
|
3bf1e659ef | ||
|
|
e79257e5ea | ||
|
|
dac517a6fb | ||
|
|
1ab808f1b0 | ||
|
|
08f81b7df4 | ||
|
|
b16f32ca83 | ||
|
|
d6ed88b544 | ||
|
|
ae697d7b73 | ||
|
|
ff3306cc17 | ||
|
|
9ae2f4e0f6 | ||
|
|
4230afcbac | ||
|
|
7fc6ab05a4 | ||
|
|
060f6bfc97 | ||
|
|
919dac6caa | ||
|
|
98bcf63b2c | ||
|
|
0585262952 | ||
|
|
a33dc3980e | ||
|
|
caa5e77386 | ||
|
|
c037920e79 | ||
|
|
3cdd352d39 | ||
|
|
8ae80e2932 | ||
|
|
2ffa1ee236 | ||
|
|
2bf5b57823 | ||
|
|
853ea69180 | ||
|
|
43d0dd99ec | ||
|
|
b40e6db701 | ||
|
|
387eb420eb | ||
|
|
7785bb8820 | ||
|
|
de4fa8c7b0 | ||
|
|
17f519e01c | ||
|
|
6c50023074 | ||
|
|
0009940e1e | ||
|
|
f2a50b59b5 | ||
|
|
ed03606981 | ||
|
|
4a1eaf25c7 | ||
|
|
f5e445a610 | ||
|
|
6a3a256c0b | ||
|
|
1ed77ebcc0 | ||
|
|
db224e9e5c | ||
|
|
c719982ef3 | ||
|
|
f783f5d5ec | ||
|
|
dd4f87b54c | ||
|
|
b3789700e1 | ||
|
|
b39834f4eb | ||
|
|
8064d75102 | ||
|
|
4064b61cd7 | ||
|
|
ef3affece3 |
@@ -7,6 +7,9 @@ updates:
|
|||||||
day: "monday"
|
day: "monday"
|
||||||
time: "06:00"
|
time: "06:00"
|
||||||
timezone: "Etc/UTC"
|
timezone: "Etc/UTC"
|
||||||
|
ignore:
|
||||||
|
- dependency-name: "org.cryptomator:integrations-api"
|
||||||
|
versions: ["2.0.0-alpha1"]
|
||||||
groups:
|
groups:
|
||||||
java-test-dependencies:
|
java-test-dependencies:
|
||||||
patterns:
|
patterns:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: '21.0.2+13'
|
JAVA_VERSION: '22.0.2+9'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
get-version:
|
get-version:
|
||||||
@@ -29,12 +29,12 @@ jobs:
|
|||||||
include:
|
include:
|
||||||
- os: ubuntu-latest
|
- os: ubuntu-latest
|
||||||
appimage-suffix: x86_64
|
appimage-suffix: x86_64
|
||||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-x64_bin-jmods.zip'
|
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip'
|
||||||
openjfx-sha: '7baed11ca56d5fee85995fa6612d4299f1e8b7337287228f7f12fd50407c56f8'
|
openjfx-sha: 'd44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||||
- os: [self-hosted, Linux, ARM64]
|
- os: [self-hosted, Linux, ARM64]
|
||||||
appimage-suffix: aarch64
|
appimage-suffix: aarch64
|
||||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-aarch64_bin-jmods.zip'
|
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip'
|
||||||
openjfx-sha: '871e7b9d7af16aef2e55c1b7830d0e0b2503b13dd8641374ba7e55ecb81d2ef9'
|
openjfx-sha: '3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
@@ -68,7 +68,7 @@ jobs:
|
|||||||
- name: Set version
|
- name: Set version
|
||||||
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
||||||
- name: Run maven
|
- name: Run maven
|
||||||
run: mvn -B clean package -Plinux -DskipTests
|
run: mvn -B clean package -Plinux -DskipTests -Djavafx.platform=linux
|
||||||
- name: Patch target dir
|
- name: Patch target dir
|
||||||
run: |
|
run: |
|
||||||
cp LICENSE.txt target
|
cp LICENSE.txt target
|
||||||
@@ -80,7 +80,7 @@ jobs:
|
|||||||
--verbose
|
--verbose
|
||||||
--output runtime
|
--output runtime
|
||||||
--module-path "${JAVA_HOME}/jmods:openjfx-jmods"
|
--module-path "${JAVA_HOME}/jmods:openjfx-jmods"
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net
|
--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.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler
|
||||||
--strip-native-commands
|
--strip-native-commands
|
||||||
--no-header-files
|
--no-header-files
|
||||||
--no-man-pages
|
--no-man-pages
|
||||||
@@ -169,7 +169,7 @@ jobs:
|
|||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
- name: Publish AppImage on GitHub Releases
|
- name: Publish AppImage on GitHub Releases
|
||||||
if: startsWith(github.ref, 'refs/tags/') && github.event.action == 'published'
|
if: startsWith(github.ref, 'refs/tags/') && github.event.action == 'published'
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
curl --remote-name ${{ inputs.url }} -L
|
curl --remote-name ${{ inputs.url }} -L
|
||||||
- name: Upload to Kaspersky
|
- name: Upload to Kaspersky
|
||||||
uses: SamKirkland/FTP-Deploy-Action@v4.3.4
|
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
|
||||||
with:
|
with:
|
||||||
protocol: ftps
|
protocol: ftps
|
||||||
server: allowlist.kaspersky-labs.com
|
server: allowlist.kaspersky-labs.com
|
||||||
@@ -31,7 +31,7 @@ jobs:
|
|||||||
username: ${{ secrets.ALLOWLIST_KASPERSKY_USERNAME }}
|
username: ${{ secrets.ALLOWLIST_KASPERSKY_USERNAME }}
|
||||||
password: ${{ secrets.ALLOWLIST_KASPERSKY_PASSWORD }}
|
password: ${{ secrets.ALLOWLIST_KASPERSKY_PASSWORD }}
|
||||||
- name: Upload to Avast
|
- name: Upload to Avast
|
||||||
uses: SamKirkland/FTP-Deploy-Action@v4.3.4
|
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
|
||||||
with:
|
with:
|
||||||
protocol: ftp
|
protocol: ftp
|
||||||
server: whitelisting.avast.com
|
server: whitelisting.avast.com
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: 21
|
JAVA_VERSION: 22
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@@ -33,7 +33,7 @@ jobs:
|
|||||||
- name: Build and Test
|
- name: Build and Test
|
||||||
run: >
|
run: >
|
||||||
xvfb-run
|
xvfb-run
|
||||||
mvn -B verify
|
mvn -B verify -Djavafx.platform=linux
|
||||||
jacoco:report
|
jacoco:report
|
||||||
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
|
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
|
||||||
-Pcoverage
|
-Pcoverage
|
||||||
@@ -45,7 +45,7 @@ jobs:
|
|||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
||||||
- name: Draft a release
|
- name: Draft a release
|
||||||
if: startsWith(github.ref, 'refs/tags/')
|
if: startsWith(github.ref, 'refs/tags/')
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
draft: true
|
draft: true
|
||||||
discussion_category_name: releases
|
discussion_category_name: releases
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ on:
|
|||||||
- cron: '0 0 1 * *' # run once a month at the first day of month
|
- cron: '0 0 1 * *' # run once a month at the first day of month
|
||||||
|
|
||||||
env:
|
env:
|
||||||
JDK_VERSION: '21.0.1+12'
|
JDK_VERSION: '22.0.1+8'
|
||||||
JDK_VENDOR: zulu
|
JDK_VENDOR: zulu
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: '21.0.2+13'
|
JAVA_VERSION: '22.0.2+9'
|
||||||
COFFEELIBS_JDK: 21
|
COFFEELIBS_JDK: 22
|
||||||
COFFEELIBS_JDK_VERSION: '21.0.2+13-0ppa1'
|
COFFEELIBS_JDK_VERSION: '22.0.2+9-0ppa1'
|
||||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-x64_bin-jmods.zip'
|
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-x64_bin-jmods.zip'
|
||||||
OPENJFX_JMODS_AMD64_HASH: '7baed11ca56d5fee85995fa6612d4299f1e8b7337287228f7f12fd50407c56f8'
|
OPENJFX_JMODS_AMD64_HASH: 'd44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||||
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-aarch64_bin-jmods.zip'
|
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_linux-aarch64_bin-jmods.zip'
|
||||||
OPENJFX_JMODS_AARCH64_HASH: '871e7b9d7af16aef2e55c1b7830d0e0b2503b13dd8641374ba7e55ecb81d2ef9'
|
OPENJFX_JMODS_AARCH64_HASH: '3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
@@ -53,7 +53,7 @@ jobs:
|
|||||||
check-latest: true
|
check-latest: true
|
||||||
cache: 'maven'
|
cache: 'maven'
|
||||||
- name: Run maven
|
- name: Run maven
|
||||||
run: mvn -B clean package -Plinux -DskipTests
|
run: mvn -B clean package -Plinux -Djavafx.platform=linux -DskipTests
|
||||||
- name: Download OpenJFX jmods
|
- name: Download OpenJFX jmods
|
||||||
id: download-jmods
|
id: download-jmods
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -11,7 +11,8 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
runner-os: 'ubuntu-latest'
|
runner-os: 'ubuntu-latest'
|
||||||
java-distribution: 'temurin'
|
java-distribution: 'temurin'
|
||||||
java-version: 21
|
java-version: 22
|
||||||
|
check-command: 'mvn -B validate -Pdependency-check -Djavafx.platform=linux'
|
||||||
secrets:
|
secrets:
|
||||||
nvd-api-key: ${{ secrets.NVD_API_KEY }}
|
nvd-api-key: ${{ secrets.NVD_API_KEY }}
|
||||||
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ jobs:
|
|||||||
git push
|
git push
|
||||||
- name: Create pull request
|
- name: Create pull request
|
||||||
run: |
|
run: |
|
||||||
echo "> [!IMPORTANT]\n> Todos:\n> - [ ] Update maven dependencies\n> - [ ] Check for JDK update\n> - [ ] Check for JFX update" > pr_body.md
|
printf "> [!IMPORTANT]\n> Todos:\n> - [ ] Update maven dependencies\n> - [ ] Check for JDK update\n> - [ ] Check for JFX update" > pr_body.md
|
||||||
PR_URL=$(gh pr create --title "Release ${{ needs.get-version.outputs.semVerStr }}" --body-file pr_body.md)
|
PR_URL=$(gh pr create --title "Release ${{ needs.get-version.outputs.semVerStr }}" --body-file pr_body.md)
|
||||||
echo "FLATHUB_PR_URL=$PR_URL" >> "$GITHUB_ENV"
|
echo "FLATHUB_PR_URL=$PR_URL" >> "$GITHUB_ENV"
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: 21
|
JAVA_VERSION: 22
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
determine-version:
|
determine-version:
|
||||||
@@ -71,6 +71,6 @@ jobs:
|
|||||||
echo "revNum=${REVCOUNT}" >> $GITHUB_OUTPUT
|
echo "revNum=${REVCOUNT}" >> $GITHUB_OUTPUT
|
||||||
echo "type=${TYPE}" >> $GITHUB_OUTPUT
|
echo "type=${TYPE}" >> $GITHUB_OUTPUT
|
||||||
- name: Validate Version
|
- name: Validate Version
|
||||||
uses: skymatic/semver-validation-action@v2
|
uses: skymatic/semver-validation-action@v3
|
||||||
with:
|
with:
|
||||||
version: ${{ steps.versions.outputs.semVerStr }}
|
version: ${{ steps.versions.outputs.semVerStr }}
|
||||||
@@ -16,7 +16,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: '21.0.2+13'
|
JAVA_VERSION: '22.0.2+9'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
get-version:
|
get-version:
|
||||||
@@ -32,20 +32,20 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- os: macos-11
|
- os: macos-12
|
||||||
architecture: x64
|
architecture: x64
|
||||||
output-suffix: x64
|
output-suffix: x64
|
||||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||||
fuse-lib: macFUSE
|
fuse-lib: macFUSE
|
||||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_osx-x64_bin-jmods.zip'
|
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_osx-x64_bin-jmods.zip'
|
||||||
openjfx-sha: 'bd6abab20da73d5a968dcf2fd915d81b5fb919340e3bb84979ee9a888a829939'
|
openjfx-sha: '115cb08bb59d880cfff6e51e0bf0dcc45785ed9d456b8b8425597b04da6ab3d4'
|
||||||
- os: [self-hosted, macOS, ARM64]
|
- os: [self-hosted, macOS, ARM64]
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
output-suffix: arm64
|
output-suffix: arm64
|
||||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||||
fuse-lib: FUSE-T
|
fuse-lib: FUSE-T
|
||||||
openjfx-url: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_osx-aarch64_bin-jmods.zip'
|
openjfx-url: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_osx-aarch64_bin-jmods.zip'
|
||||||
openjfx-sha: '7afaa1c57a6cc3c384d636e597b9a5364693e2db4aaec0a6e63d2fa964400b58'
|
openjfx-sha: '813c6748f7c99cb7a579d48b48a087b4682b1fad1fc1a4fe5f9b21cf872b15a7'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
@@ -79,7 +79,7 @@ jobs:
|
|||||||
- name: Set version
|
- name: Set version
|
||||||
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
||||||
- name: Run maven
|
- name: Run maven
|
||||||
run: mvn -B clean package -Pmac -DskipTests
|
run: mvn -B -Djavafx.platform=mac clean package -Pmac -DskipTests
|
||||||
- name: Patch target dir
|
- name: Patch target dir
|
||||||
run: |
|
run: |
|
||||||
cp LICENSE.txt target
|
cp LICENSE.txt target
|
||||||
@@ -91,7 +91,7 @@ jobs:
|
|||||||
--verbose
|
--verbose
|
||||||
--output runtime
|
--output runtime
|
||||||
--module-path "${JAVA_HOME}/jmods:openjfx-jmods"
|
--module-path "${JAVA_HOME}/jmods:openjfx-jmods"
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr
|
--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
|
--strip-native-commands
|
||||||
--no-header-files
|
--no-header-files
|
||||||
--no-man-pages
|
--no-man-pages
|
||||||
@@ -137,12 +137,14 @@ jobs:
|
|||||||
mv dist/mac/resources/Cryptomator-Vault.icns Cryptomator.app/Contents/Resources/
|
mv dist/mac/resources/Cryptomator-Vault.icns Cryptomator.app/Contents/Resources/
|
||||||
sed -i '' "s|###BUNDLE_SHORT_VERSION_STRING###|${VERSION_NO}|g" Cryptomator.app/Contents/Info.plist
|
sed -i '' "s|###BUNDLE_SHORT_VERSION_STRING###|${VERSION_NO}|g" Cryptomator.app/Contents/Info.plist
|
||||||
sed -i '' "s|###BUNDLE_VERSION###|${REVISION_NO}|g" Cryptomator.app/Contents/Info.plist
|
sed -i '' "s|###BUNDLE_VERSION###|${REVISION_NO}|g" Cryptomator.app/Contents/Info.plist
|
||||||
|
echo -n "$PROVISIONING_PROFILE_BASE64" | base64 --decode --output Cryptomator.app/Contents/embedded.provisionprofile
|
||||||
env:
|
env:
|
||||||
VERSION_NO: ${{ needs.get-version.outputs.semVerNum }}
|
VERSION_NO: ${{ needs.get-version.outputs.semVerNum }}
|
||||||
REVISION_NO: ${{ needs.get-version.outputs.revNum }}
|
REVISION_NO: ${{ needs.get-version.outputs.revNum }}
|
||||||
|
PROVISIONING_PROFILE_BASE64: ${{ secrets.MACOS_PROVISIONING_PROFILE_BASE64 }}
|
||||||
- name: Generate license for dmg
|
- name: Generate license for dmg
|
||||||
run: >
|
run: >
|
||||||
mvn -B license:add-third-party
|
mvn -B -Djavafx.platform=mac license:add-third-party
|
||||||
-Dlicense.thirdPartyFilename=license.rtf
|
-Dlicense.thirdPartyFilename=license.rtf
|
||||||
-Dlicense.outputDirectory=dist/mac/dmg/resources
|
-Dlicense.outputDirectory=dist/mac/dmg/resources
|
||||||
-Dlicense.fileTemplate=dist/mac/dmg/resources/licenseTemplate.ftl
|
-Dlicense.fileTemplate=dist/mac/dmg/resources/licenseTemplate.ftl
|
||||||
@@ -175,7 +177,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "Codesigning jdk files..."
|
echo "Codesigning jdk files..."
|
||||||
find Cryptomator.app/Contents/runtime/Contents/Home/lib/ -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
find Cryptomator.app/Contents/runtime/Contents/Home/lib/ -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
||||||
find Cryptomator.app/Contents/runtime/Contents/Home/lib/ -name 'jspawnhelper' -exec codesign --force -o runtime -s ${CODESIGN_IDENTITY} {} \;
|
find Cryptomator.app/Contents/runtime/Contents/Home/lib/ \( -name 'jspawnhelper' -o -name 'pauseengine' -o -name 'simengine' \) -exec codesign --force -o runtime -s ${CODESIGN_IDENTITY} {} \;
|
||||||
echo "Codesigning jar contents..."
|
echo "Codesigning jar contents..."
|
||||||
find Cryptomator.app/Contents/runtime/Contents/MacOS -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
find Cryptomator.app/Contents/runtime/Contents/MacOS -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
||||||
for JAR_PATH in `find Cryptomator.app -name "*.jar"`; do
|
for JAR_PATH in `find Cryptomator.app -name "*.jar"`; do
|
||||||
@@ -194,9 +196,12 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "Codesigning Cryptomator.app..."
|
echo "Codesigning Cryptomator.app..."
|
||||||
|
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" dist/mac/Cryptomator.entitlements
|
||||||
|
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" dist/mac/Cryptomator.entitlements
|
||||||
codesign --force --deep --entitlements dist/mac/Cryptomator.entitlements -o runtime -s ${CODESIGN_IDENTITY} Cryptomator.app
|
codesign --force --deep --entitlements dist/mac/Cryptomator.entitlements -o runtime -s ${CODESIGN_IDENTITY} Cryptomator.app
|
||||||
env:
|
env:
|
||||||
CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
|
CODESIGN_IDENTITY: ${{ secrets.MACOS_CODESIGN_IDENTITY }}
|
||||||
|
TEAM_IDENTIFIER: ${{ secrets.MACOS_TEAM_IDENTIFIER }}
|
||||||
- name: Prepare .dmg contents
|
- name: Prepare .dmg contents
|
||||||
run: |
|
run: |
|
||||||
mkdir dmg
|
mkdir dmg
|
||||||
@@ -259,7 +264,7 @@ jobs:
|
|||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
- name: Publish dmg on GitHub Releases
|
- name: Publish dmg on GitHub Releases
|
||||||
if: startsWith(github.ref, 'refs/tags/') && github.event.action == 'published'
|
if: startsWith(github.ref, 'refs/tags/') && github.event.action == 'published'
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
GPG_PRIVATE_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
|
GPG_PRIVATE_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
|
||||||
GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
|
GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
|
||||||
- name: Publish asc on GitHub Releases
|
- name: Publish asc on GitHub Releases
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: 21
|
JAVA_VERSION: 22
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@@ -24,4 +24,4 @@ jobs:
|
|||||||
java-version: ${{ env.JAVA_VERSION }}
|
java-version: ${{ env.JAVA_VERSION }}
|
||||||
cache: 'maven'
|
cache: 'maven'
|
||||||
- name: Build and Test
|
- name: Build and Test
|
||||||
run: xvfb-run mvn -B clean install jacoco:report -Pcoverage
|
run: xvfb-run mvn -B clean install jacoco:report -Pcoverage -Djavafx.platform=linux
|
||||||
@@ -12,7 +12,7 @@ defaults:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: 21
|
JAVA_VERSION: 22
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
check-preconditions:
|
check-preconditions:
|
||||||
@@ -60,6 +60,6 @@ jobs:
|
|||||||
- name: Run org.owasp:dependency-check plugin
|
- name: Run org.owasp:dependency-check plugin
|
||||||
id: dependency-check
|
id: dependency-check
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: mvn -B verify -Pdependency-check -DskipTests
|
run: mvn -B verify -Pdependency-check -DskipTests -Djavafx.platform=linux
|
||||||
env:
|
env:
|
||||||
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
|
NVD_API_KEY: ${{ secrets.NVD_API_KEY }}
|
||||||
@@ -16,9 +16,9 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_DIST: 'zulu'
|
JAVA_DIST: 'zulu'
|
||||||
JAVA_VERSION: '21.0.2+13'
|
JAVA_VERSION: '22.0.2+9'
|
||||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_windows-x64_bin-jmods.zip'
|
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/22.0.2/openjfx-22.0.2_windows-x64_bin-jmods.zip'
|
||||||
OPENJFX_JMODS_AMD64_HASH: 'daf8acae631c016c24cfe23f88469400274d3441dd890615a42dfb501f3eb94a'
|
OPENJFX_JMODS_AMD64_HASH: 'f9376d200f5c5b85327d575c1ec1482e6455f19916577f7e2fc9be2f48bb29b6'
|
||||||
WINFSP_MSI: 'https://github.com/winfsp/winfsp/releases/download/v2.0/winfsp-2.0.23075.msi'
|
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'
|
WINFSP_UNINSTALLER: 'https://github.com/cryptomator/winfsp-uninstaller/releases/latest/download/winfsp-uninstaller.exe'
|
||||||
|
|
||||||
@@ -40,6 +40,9 @@ jobs:
|
|||||||
LOOPBACK_ALIAS: 'cryptomator-vault'
|
LOOPBACK_ALIAS: 'cryptomator-vault'
|
||||||
WIN_CONSOLE_FLAG: ''
|
WIN_CONSOLE_FLAG: ''
|
||||||
steps:
|
steps:
|
||||||
|
- name: Upgrade WIX to latest version
|
||||||
|
run: choco install wixtoolset --version 3.14.1
|
||||||
|
shell: pwsh
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
@@ -74,7 +77,7 @@ jobs:
|
|||||||
- name: Set version
|
- name: Set version
|
||||||
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
|
||||||
- name: Run maven
|
- name: Run maven
|
||||||
run: mvn -B clean package -Pwin -DskipTests
|
run: mvn -B clean package -Pwin -DskipTests -Djavafx.platform=win
|
||||||
- name: Patch target dir
|
- name: Patch target dir
|
||||||
run: |
|
run: |
|
||||||
cp LICENSE.txt target
|
cp LICENSE.txt target
|
||||||
@@ -86,7 +89,7 @@ jobs:
|
|||||||
--verbose
|
--verbose
|
||||||
--output runtime
|
--output runtime
|
||||||
--module-path "jfxjmods;${JAVA_HOME}/jmods"
|
--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.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr
|
--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
|
--strip-native-commands
|
||||||
--no-header-files
|
--no-header-files
|
||||||
--no-man-pages
|
--no-man-pages
|
||||||
@@ -110,7 +113,7 @@ jobs:
|
|||||||
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
--copyright "(C) 2016 - 2024 Skymatic GmbH"
|
||||||
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||||
--java-options "--enable-preview"
|
--java-options "--enable-preview"
|
||||||
--java-options "--enable-native-access=org.cryptomator.jfuse.win"
|
--java-options "--enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win"
|
||||||
--java-options "-Xss5m"
|
--java-options "-Xss5m"
|
||||||
--java-options "-Xmx256m"
|
--java-options "-Xmx256m"
|
||||||
--java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\""
|
--java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\""
|
||||||
@@ -196,7 +199,7 @@ jobs:
|
|||||||
}
|
}
|
||||||
- name: Generate license for MSI
|
- name: Generate license for MSI
|
||||||
run: >
|
run: >
|
||||||
mvn -B license:add-third-party
|
mvn -B license:add-third-party "-Djavafx.platform=win"
|
||||||
"-Dlicense.thirdPartyFilename=license.rtf"
|
"-Dlicense.thirdPartyFilename=license.rtf"
|
||||||
"-Dlicense.outputDirectory=dist/win/resources"
|
"-Dlicense.outputDirectory=dist/win/resources"
|
||||||
"-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl"
|
"-Dlicense.fileTemplate=dist/win/resources/licenseTemplate.ftl"
|
||||||
@@ -276,7 +279,7 @@ jobs:
|
|||||||
cache: 'maven'
|
cache: 'maven'
|
||||||
- name: Generate license for exe
|
- name: Generate license for exe
|
||||||
run: >
|
run: >
|
||||||
mvn -B license:add-third-party
|
mvn -B license:add-third-party "-Djavafx.platform=win"
|
||||||
"-Dlicense.thirdPartyFilename=license.rtf"
|
"-Dlicense.thirdPartyFilename=license.rtf"
|
||||||
"-Dlicense.fileTemplate=dist/win/bundle/resources/licenseTemplate.ftl"
|
"-Dlicense.fileTemplate=dist/win/bundle/resources/licenseTemplate.ftl"
|
||||||
"-Dlicense.outputDirectory=dist/win/bundle/resources"
|
"-Dlicense.outputDirectory=dist/win/bundle/resources"
|
||||||
@@ -372,7 +375,7 @@ jobs:
|
|||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
- name: Publish .msi on GitHub Releases
|
- name: Publish .msi on GitHub Releases
|
||||||
id: publish
|
id: publish
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
fail_on_unmatched_files: true
|
fail_on_unmatched_files: true
|
||||||
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||||
@@ -387,12 +390,14 @@ jobs:
|
|||||||
needs: [publish]
|
needs: [publish]
|
||||||
with:
|
with:
|
||||||
url: ${{ needs.publish.outputs.download-url-msi }}
|
url: ${{ needs.publish.outputs.download-url-msi }}
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
allowlist-exe:
|
allowlist-exe:
|
||||||
uses: ./.github/workflows/av-whitelist.yml
|
uses: ./.github/workflows/av-whitelist.yml
|
||||||
needs: [publish]
|
needs: [publish]
|
||||||
with:
|
with:
|
||||||
url: ${{ needs.publish.outputs.download-url-exe }}
|
url: ${{ needs.publish.outputs.download-url-exe }}
|
||||||
|
secrets: inherit
|
||||||
|
|
||||||
notify-winget:
|
notify-winget:
|
||||||
name: Notify for winget-release
|
name: Notify for winget-release
|
||||||
|
|||||||
Generated
+10
-12
@@ -14,31 +14,29 @@
|
|||||||
<option name="dagger.fastInit" value="enabled" />
|
<option name="dagger.fastInit" value="enabled" />
|
||||||
<option name="dagger.formatGeneratedSource" value="enabled" />
|
<option name="dagger.formatGeneratedSource" value="enabled" />
|
||||||
<processorPath useClasspath="false">
|
<processorPath useClasspath="false">
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.48.1/dagger-compiler-2.48.1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.49/dagger-compiler-2.49.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.48.1/dagger-2.48.1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.49/dagger-2.49.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-producers/2.48.1/dagger-producers-2.48.1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.49/dagger-spi-2.49.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/1.9.20-1.0.14/symbol-processing-api-1.9.20-1.0.14.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.0/kotlin-stdlib-jdk8-1.9.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.9.20/kotlin-stdlib-1.9.20.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.0/kotlin-stdlib-jdk7-1.9.0.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" />
|
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-qual/3.12.0/checker-qual-3.12.0.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.48.1/dagger-spi-2.48.1.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/1.9.0-1.0.12/symbol-processing-api-1.9.0-1.0.12.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.0/kotlin-stdlib-common-1.9.0.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/squareup/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.6.10/kotlin-stdlib-jdk8-1.6.10.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.6.10/kotlin-stdlib-jdk7-1.6.10.jar" />
|
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
|
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
|
||||||
</processorPath>
|
</processorPath>
|
||||||
<module name="cryptomator" />
|
<module name="cryptomator" />
|
||||||
</profile>
|
</profile>
|
||||||
|
|||||||
Generated
+1
-1
@@ -8,7 +8,7 @@
|
|||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21_PREVIEW" project-jdk-name="21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" project-jdk-name="22" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
<configuration default="false" name="Cryptomator Windows" type="Application" factoryName="Application">
|
<configuration default="false" name="Cryptomator Windows" type="Application" factoryName="Application">
|
||||||
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
||||||
<module name="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" />
|
<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" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
<configuration default="false" name="Cryptomator Windows Dev" type="Application" factoryName="Application">
|
<configuration default="false" name="Cryptomator Windows Dev" type="Application" factoryName="Application">
|
||||||
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
<option name="MAIN_CLASS_NAME" value="org.cryptomator.launcher.Cryptomator" />
|
||||||
<module name="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" />
|
<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" />
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
</method>
|
</method>
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://mowcapital.com/"><img src="https://cryptomator.org/img/sponsors/mowcapital.svg" alt="Mow Capital" height="28"></a></td>
|
<td><a href="https://mowcapital.com/"><img src="https://cryptomator.org/img/sponsors/mowcapital.svg" alt="Mow Capital" height="28"></a></td>
|
||||||
<td><a href="https://www.easeus.com/"><img src="https://cryptomator.org/img/sponsors/easeus.png" alt="EaseUS" height="40"></a></td>
|
<td><a href="https://www.route4me.com/"><img src="https://cryptomator.org/img/sponsors/route4me.svg" alt="Route4Me" height="56"></a></td>
|
||||||
<td><a href="https://www.hassmann-it-forensik.de/"><img src="https://cryptomator.org/img/sponsors/hassmannitforensik.png" alt="Hassmann IT-Forensik" height="40"></a></td>
|
|
||||||
<td><a href="https://ente.io/"><img src="https://cryptomator.org/img/sponsors/ente.svg" alt="Ente" height="58"></a></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -86,7 +84,7 @@ For more information on the security details visit [cryptomator.org](https://doc
|
|||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
* JDK 21 (e.g. temurin, zulu)
|
* JDK 22 (e.g. temurin, zulu)
|
||||||
* Maven 3
|
* Maven 3
|
||||||
|
|
||||||
### Run Maven
|
### Run Maven
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
# created during build
|
# downloaded/created during build
|
||||||
|
openjfx-jmods.zip
|
||||||
|
*.jmod
|
||||||
Cryptomator.AppDir
|
Cryptomator.AppDir
|
||||||
*.AppImage
|
*.AppImage
|
||||||
*.AppImage.zsync
|
*.AppImage.zsync
|
||||||
Vendored
+20
-20
@@ -12,31 +12,31 @@ command -v unzip >/dev/null 2>&1 || { echo >&2 "unzip not found."; exit 1; }
|
|||||||
|
|
||||||
VERSION=$(mvn -f ../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)
|
VERSION=$(mvn -f ../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)
|
||||||
SEMVER_STR=${VERSION}
|
SEMVER_STR=${VERSION}
|
||||||
MACHINE_TYPE=$(uname -m)
|
CPU_ARCH=$(uname -p)
|
||||||
|
|
||||||
if [[ ! "${MACHINE_TYPE}" =~ x86_64|aarch64 ]]; then echo "Platform ${MACHINE_TYPE} not supported"; exit 1; fi
|
if [[ ! "${CPU_ARCH}" =~ x86_64|aarch64 ]]; then echo "Platform ${CPU_ARCH} not supported"; exit 1; fi
|
||||||
|
|
||||||
mvn -f ../../../pom.xml versions:set -DnewVersion=${SEMVER_STR}
|
mvn -f ../../../pom.xml versions:set -DnewVersion=${SEMVER_STR}
|
||||||
|
|
||||||
# compile
|
# compile
|
||||||
mvn -B -f ../../../pom.xml clean package -Plinux -DskipTests
|
mvn -B -f ../../../pom.xml clean package -Plinux -DskipTests -Djavafx.platform=linux
|
||||||
cp ../../../LICENSE.txt ../../../target
|
cp ../../../LICENSE.txt ../../../target
|
||||||
cp ../../../target/cryptomator-*.jar ../../../target/mods
|
cp ../../../target/cryptomator-*.jar ../../../target/mods
|
||||||
|
|
||||||
|
JAVAFX_VERSION=22.0.2
|
||||||
# download javaFX jmods
|
JAVAFX_ARCH="x64"
|
||||||
OPENJFX_URL='https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-x64_bin-jmods.zip'
|
JAVAFX_JMODS_SHA256='d44bff3b94d5668fdee18a938d7b1269026d663d44765f02d29a9bdfd3fa1eb0'
|
||||||
OPENJFX_SHA='7baed11ca56d5fee85995fa6612d4299f1e8b7337287228f7f12fd50407c56f8'
|
if [ "${CPU_ARCH}" = "aarch64" ]; then
|
||||||
OPENJFX_URL_aarch64='https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_linux-aarch64_bin-jmods.zip'
|
JAVAFX_ARCH="aarch64"
|
||||||
OPENJFX_SHA_aarch64='871e7b9d7af16aef2e55c1b7830d0e0b2503b13dd8641374ba7e55ecb81d2ef9'
|
JAVAFX_JMODS_SHA256='3d5457136690c4f5bb9522d38b45218e045bdac13c24aa4c808c7c8d17d039c7'
|
||||||
|
|
||||||
if [[ "${MACHINE_TYPE}" = "aarch64" ]]; then
|
|
||||||
OPENJFX_URL="${OPENJFX_URL_aarch64}";
|
|
||||||
OPENJFX_SHA="${OPENJFX_SHA_aarch64}";
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
curl -L ${OPENJFX_URL} -o openjfx-jmods.zip
|
# download javaFX jmods
|
||||||
echo "${OPENJFX_SHA} openjfx-jmods.zip" | shasum -a256 --check
|
JAVAFX_JMODS_URL="https://download2.gluonhq.com/openjfx/${JAVAFX_VERSION}/openjfx-${JAVAFX_VERSION}_linux-${JAVAFX_ARCH}_bin-jmods.zip"
|
||||||
|
|
||||||
|
|
||||||
|
curl -L ${JAVAFX_JMODS_URL} -o openjfx-jmods.zip
|
||||||
|
echo "${JAVAFX_JMODS_SHA256} openjfx-jmods.zip" | shasum -a256 --check
|
||||||
mkdir -p openjfx-jmods
|
mkdir -p openjfx-jmods
|
||||||
unzip -o -j openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods
|
unzip -o -j openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods
|
||||||
JMOD_VERSION=$(jmod describe ./openjfx-jmods/javafx.base.jmod | head -1)
|
JMOD_VERSION=$(jmod describe ./openjfx-jmods/javafx.base.jmod | head -1)
|
||||||
@@ -56,7 +56,7 @@ ${JAVA_HOME}/bin/jlink \
|
|||||||
--verbose \
|
--verbose \
|
||||||
--output runtime \
|
--output runtime \
|
||||||
--module-path "${JAVA_HOME}/jmods:openjfx-jmods" \
|
--module-path "${JAVA_HOME}/jmods:openjfx-jmods" \
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net \
|
--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.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler \
|
||||||
--strip-native-commands \
|
--strip-native-commands \
|
||||||
--no-header-files \
|
--no-header-files \
|
||||||
--no-man-pages \
|
--no-man-pages \
|
||||||
@@ -114,17 +114,17 @@ ln -s usr/share/applications/org.cryptomator.Cryptomator.desktop Cryptomator.App
|
|||||||
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
|
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
|
||||||
|
|
||||||
# load AppImageTool
|
# load AppImageTool
|
||||||
curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-${MACHINE_TYPE}.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
|
chmod +x /tmp/appimagetool.AppImage
|
||||||
|
|
||||||
# create AppImage
|
# create AppImage
|
||||||
/tmp/appimagetool.AppImage \
|
/tmp/appimagetool.AppImage \
|
||||||
Cryptomator.AppDir \
|
Cryptomator.AppDir \
|
||||||
cryptomator-${SEMVER_STR}-${MACHINE_TYPE}.AppImage \
|
cryptomator-${SEMVER_STR}-${CPU_ARCH}.AppImage \
|
||||||
-u 'gh-releases-zsync|cryptomator|cryptomator|latest|cryptomator-*-${MACHINE_TYPE}.AppImage.zsync'
|
-u 'gh-releases-zsync|cryptomator|cryptomator|latest|cryptomator-*-${CPU_ARCH}.AppImage.zsync'
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "Done. AppImage successfully created: cryptomator-${SEMVER_STR}-${MACHINE_TYPE}.AppImage"
|
echo "Done. AppImage successfully created: cryptomator-${SEMVER_STR}-${CPU_ARCH}.AppImage"
|
||||||
echo ""
|
echo ""
|
||||||
echo >&2 "To clean up, run: rm -rf Cryptomator.AppDir appdir runtime squashfs-root openjfx-jmods; rm /tmp/appimagetool.AppImage openjfx-jmods.zip"
|
echo >&2 "To clean up, run: rm -rf Cryptomator.AppDir appdir runtime squashfs-root openjfx-jmods; rm /tmp/appimagetool.AppImage openjfx-jmods.zip"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
+14
-1
@@ -53,6 +53,11 @@
|
|||||||
</screenshot>
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
|
|
||||||
|
<branding>
|
||||||
|
<color type="primary" scheme_preference="light">#EBF5EB</color>
|
||||||
|
<color type="primary" scheme_preference="dark">#2F4858</color>
|
||||||
|
</branding>
|
||||||
|
|
||||||
<url type="homepage">https://cryptomator.org/</url>
|
<url type="homepage">https://cryptomator.org/</url>
|
||||||
<url type="bugtracker">https://github.com/cryptomator/cryptomator/issues/</url>
|
<url type="bugtracker">https://github.com/cryptomator/cryptomator/issues/</url>
|
||||||
<url type="donation">https://cryptomator.org/donate</url>
|
<url type="donation">https://cryptomator.org/donate</url>
|
||||||
@@ -64,12 +69,20 @@
|
|||||||
<name>Skymatic GmbH</name>
|
<name>Skymatic GmbH</name>
|
||||||
</developer>
|
</developer>
|
||||||
|
|
||||||
|
|
||||||
<content_rating type="oars-1.1">
|
<content_rating type="oars-1.1">
|
||||||
<content_attribute id="social-info">mild</content_attribute> <!-- update checker connects to https://api.cryptomator.org/updates/latestVersion.json -->
|
<content_attribute id="social-info">mild</content_attribute> <!-- update checker connects to https://api.cryptomator.org/updates/latestVersion.json -->
|
||||||
</content_rating>
|
</content_rating>
|
||||||
|
|
||||||
<releases>
|
<releases>
|
||||||
|
<release date="2024-09-17" version="1.14.0">
|
||||||
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.14.0</url>
|
||||||
|
</release>
|
||||||
|
<release date="2024-06-26" version="1.13.0">
|
||||||
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.13.0</url>
|
||||||
|
</release>
|
||||||
|
<release date="2024-03-27" version="1.12.4">
|
||||||
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.12.4</url>
|
||||||
|
</release>
|
||||||
<release date="2024-02-27" version="1.12.3">
|
<release date="2024-02-27" version="1.12.3">
|
||||||
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.12.3</url>
|
<url type="details">https://github.com/cryptomator/cryptomator/releases/1.12.3</url>
|
||||||
</release>
|
</release>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -2,7 +2,7 @@ Source: cryptomator
|
|||||||
Maintainer: Cryptobot <releases@cryptomator.org>
|
Maintainer: Cryptobot <releases@cryptomator.org>
|
||||||
Section: utils
|
Section: utils
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Build-Depends: debhelper (>=10), coffeelibs-jdk-21 (>= 21.0.2+12-0ppa1), libgtk-3-0, libxxf86vm1, libgl1
|
Build-Depends: debhelper (>=10), coffeelibs-jdk-22 (>= 22.0.1+8-0ppa1), libgtk-3-0, libxxf86vm1, libgl1
|
||||||
Standards-Version: 4.5.0
|
Standards-Version: 4.5.0
|
||||||
Homepage: https://cryptomator.org
|
Homepage: https://cryptomator.org
|
||||||
Vcs-Git: https://github.com/cryptomator/cryptomator.git
|
Vcs-Git: https://github.com/cryptomator/cryptomator.git
|
||||||
|
|||||||
Vendored
+3
-2
@@ -4,7 +4,7 @@
|
|||||||
# Uncomment this to turn on verbose mode.
|
# Uncomment this to turn on verbose mode.
|
||||||
#export DH_VERBOSE=1
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
JAVA_HOME = /usr/lib/jvm/java-21-coffeelibs
|
JAVA_HOME = /usr/lib/jvm/java-22-coffeelibs
|
||||||
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
|
||||||
ifeq ($(DEB_BUILD_ARCH),amd64)
|
ifeq ($(DEB_BUILD_ARCH),amd64)
|
||||||
JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods
|
JMODS_PATH = jmods/amd64:${JAVA_HOME}/jmods
|
||||||
@@ -28,7 +28,7 @@ override_dh_auto_build:
|
|||||||
$(JAVA_HOME)/bin/jlink \
|
$(JAVA_HOME)/bin/jlink \
|
||||||
--output runtime \
|
--output runtime \
|
||||||
--module-path "${JMODS_PATH}" \
|
--module-path "${JMODS_PATH}" \
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net \
|
--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.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net,java.compiler \
|
||||||
--strip-native-commands \
|
--strip-native-commands \
|
||||||
--no-header-files \
|
--no-header-files \
|
||||||
--no-man-pages \
|
--no-man-pages \
|
||||||
@@ -61,6 +61,7 @@ override_dh_auto_build:
|
|||||||
--java-options "-Dcryptomator.buildNumber=\"deb-${REVISION_NUM}\"" \
|
--java-options "-Dcryptomator.buildNumber=\"deb-${REVISION_NUM}\"" \
|
||||||
--java-options "-Dcryptomator.appVersion=\"${SEMVER_STR}\"" \
|
--java-options "-Dcryptomator.appVersion=\"${SEMVER_STR}\"" \
|
||||||
--java-options "-Dcryptomator.disableUpdateCheck=\"${DISABLE_UPDATE_CHECK}\"" \
|
--java-options "-Dcryptomator.disableUpdateCheck=\"${DISABLE_UPDATE_CHECK}\"" \
|
||||||
|
--java-options "-Dcryptomator.integrationsLinux.autoStartCmd=\"cryptomator\"" \
|
||||||
--app-version "${VERSION_NUM}.${REVISION_NUM}" \
|
--app-version "${VERSION_NUM}.${REVISION_NUM}" \
|
||||||
--resource-dir resources \
|
--resource-dir resources \
|
||||||
--verbose
|
--verbose
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
embedded.provisionprofile
|
||||||
Vendored
+8
@@ -2,6 +2,10 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>com.apple.application-identifier</key>
|
||||||
|
<string>###APP_IDENTIFIER_PREFIX###org.cryptomator</string>
|
||||||
|
<key>com.apple.developer.team-identifier</key>
|
||||||
|
<string>###TEAM_IDENTIFIER###</string>
|
||||||
<key>com.apple.security.cs.allow-jit</key>
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
@@ -10,5 +14,9 @@
|
|||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.cs.disable-library-validation</key>
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>keychain-access-groups</key>
|
||||||
|
<array>
|
||||||
|
<string>###APP_IDENTIFIER_PREFIX###org.cryptomator</string>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
# created during build
|
# downloaded/created during build
|
||||||
Cryptomator.app/
|
Cryptomator.app/
|
||||||
runtime/
|
runtime/
|
||||||
dmg/
|
dmg/
|
||||||
*.dmg
|
*.dmg
|
||||||
license.rtf
|
license.rtf
|
||||||
|
openjfx-jmods.zip
|
||||||
|
*.jmod
|
||||||
|
Cryptomator.entitlements
|
||||||
|
|||||||
Vendored
+28
-12
@@ -1,12 +1,15 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# parse options
|
# parse options
|
||||||
usage() { echo "Usage: $0 [-s <codesign-identity>]" 1>&2; exit 1; }
|
usage() { echo "Usage: $0 [-s <codesign-identity>] [-t <team-identifier>]" 1>&2; exit 1; }
|
||||||
while getopts ":s:" o; do
|
while getopts ":s:t:" o; do
|
||||||
case "${o}" in
|
case "${o}" in
|
||||||
s)
|
s)
|
||||||
CODESIGN_IDENTITY=${OPTARG}
|
CODESIGN_IDENTITY=${OPTARG}
|
||||||
;;
|
;;
|
||||||
|
t)
|
||||||
|
TEAM_IDENTIFIER=${OPTARG}
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usage
|
usage
|
||||||
;;
|
;;
|
||||||
@@ -29,13 +32,17 @@ 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'`
|
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"
|
FUSE_LIB="FUSE-T"
|
||||||
|
|
||||||
ARCH="undefined"
|
JAVAFX_VERSION=22.0.2
|
||||||
|
JAVAFX_ARCH="undefined"
|
||||||
|
JAVAFX_JMODS_SHA256="undefined"
|
||||||
if [ "$(machine)" = "arm64e" ]; then
|
if [ "$(machine)" = "arm64e" ]; then
|
||||||
ARCH="aarch64"
|
JAVAFX_ARCH="aarch64"
|
||||||
|
JAVAFX_JMODS_SHA256="813c6748f7c99cb7a579d48b48a087b4682b1fad1fc1a4fe5f9b21cf872b15a7"
|
||||||
else
|
else
|
||||||
ARCH="x64"
|
JAVAFX_ARCH="x64"
|
||||||
|
JAVAFX_JMODS_SHA256="115cb08bb59d880cfff6e51e0bf0dcc45785ed9d456b8b8425597b04da6ab3d4"
|
||||||
fi
|
fi
|
||||||
OPENJFX_JMODS="https://download2.gluonhq.com/openjfx/21.0.1/openjfx-21.0.1_osx-${ARCH}_bin-jmods.zip"
|
JAVAFX_JMODS_URL="https://download2.gluonhq.com/openjfx/${JAVAFX_VERSION}/openjfx-${JAVAFX_VERSION}_osx-${JAVAFX_ARCH}_bin-jmods.zip"
|
||||||
|
|
||||||
# check preconditions
|
# check preconditions
|
||||||
if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi
|
if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi
|
||||||
@@ -47,7 +54,8 @@ if [ -n "${CODESIGN_IDENTITY}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# download and check jmods
|
# download and check jmods
|
||||||
curl -L ${OPENJFX_JMODS} -o openjfx-jmods.zip
|
curl -L ${JAVAFX_JMODS_URL} -o openjfx-jmods.zip
|
||||||
|
echo "${JAVAFX_JMODS_SHA256} openjfx-jmods.zip" | shasum -a256 --check
|
||||||
mkdir -p openjfx-jmods/
|
mkdir -p openjfx-jmods/
|
||||||
unzip -jo openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods
|
unzip -jo openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods
|
||||||
JMOD_VERSION=$(jmod describe openjfx-jmods/javafx.base.jmod | head -1)
|
JMOD_VERSION=$(jmod describe openjfx-jmods/javafx.base.jmod | head -1)
|
||||||
@@ -63,7 +71,7 @@ if [ "${POM_JFX_VERSION}" -ne "${JMOD_VERSION}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# compile
|
# compile
|
||||||
mvn -B -f../../../pom.xml clean package -DskipTests -Pmac
|
mvn -B -Djavafx.platform=mac -f../../../pom.xml clean package -DskipTests -Pmac
|
||||||
cp ../../../LICENSE.txt ../../../target
|
cp ../../../LICENSE.txt ../../../target
|
||||||
cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods
|
cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods
|
||||||
|
|
||||||
@@ -71,7 +79,7 @@ cp ../../../target/${MAIN_JAR_GLOB} ../../../target/mods
|
|||||||
${JAVA_HOME}/bin/jlink \
|
${JAVA_HOME}/bin/jlink \
|
||||||
--output runtime \
|
--output runtime \
|
||||||
--module-path "${JAVA_HOME}/jmods:openjfx-jmods" \
|
--module-path "${JAVA_HOME}/jmods:openjfx-jmods" \
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr \
|
--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.security.auth,jdk.accessibility,jdk.management.jfr,java.compiler \
|
||||||
--strip-native-commands \
|
--strip-native-commands \
|
||||||
--no-header-files \
|
--no-header-files \
|
||||||
--no-man-pages \
|
--no-man-pages \
|
||||||
@@ -116,9 +124,10 @@ ${JAVA_HOME}/bin/jpackage \
|
|||||||
cp ../resources/${APP_NAME}-Vault.icns ${APP_NAME}.app/Contents/Resources/
|
cp ../resources/${APP_NAME}-Vault.icns ${APP_NAME}.app/Contents/Resources/
|
||||||
sed -i '' "s|###BUNDLE_SHORT_VERSION_STRING###|${VERSION_NO}|g" ${APP_NAME}.app/Contents/Info.plist
|
sed -i '' "s|###BUNDLE_SHORT_VERSION_STRING###|${VERSION_NO}|g" ${APP_NAME}.app/Contents/Info.plist
|
||||||
sed -i '' "s|###BUNDLE_VERSION###|${REVISION_NO}|g" ${APP_NAME}.app/Contents/Info.plist
|
sed -i '' "s|###BUNDLE_VERSION###|${REVISION_NO}|g" ${APP_NAME}.app/Contents/Info.plist
|
||||||
|
cp ../embedded.provisionprofile ${APP_NAME}.app/Contents/
|
||||||
|
|
||||||
# generate license
|
# generate license
|
||||||
mvn -B -f../../../pom.xml license:add-third-party \
|
mvn -B -Djavafx.platform=mac -f../../../pom.xml license:add-third-party \
|
||||||
-Dlicense.thirdPartyFilename=license.rtf \
|
-Dlicense.thirdPartyFilename=license.rtf \
|
||||||
-Dlicense.outputDirectory=dist/mac/dmg/resources \
|
-Dlicense.outputDirectory=dist/mac/dmg/resources \
|
||||||
-Dlicense.fileTemplate=resources/licenseTemplate.ftl \
|
-Dlicense.fileTemplate=resources/licenseTemplate.ftl \
|
||||||
@@ -128,7 +137,11 @@ mvn -B -f../../../pom.xml license:add-third-party \
|
|||||||
-Dlicense.licenseMergesUrl=file://$(pwd)/../../../license/merges
|
-Dlicense.licenseMergesUrl=file://$(pwd)/../../../license/merges
|
||||||
|
|
||||||
# codesign
|
# codesign
|
||||||
if [ -n "${CODESIGN_IDENTITY}" ]; then
|
if [ -n "${CODESIGN_IDENTITY}" ] && [ -n "${TEAM_IDENTIFIER}" ]; then
|
||||||
|
echo "Codesigning jdk files..."
|
||||||
|
find ${APP_NAME}.app/Contents/runtime/Contents/Home/lib/ -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
||||||
|
find ${APP_NAME}.app/Contents/runtime/Contents/Home/lib/ -name 'jspawnhelper' -exec codesign --force -o runtime -s ${CODESIGN_IDENTITY} {} \;
|
||||||
|
echo "Codesigning jar contents..."
|
||||||
find ${APP_NAME}.app/Contents/runtime/Contents/MacOS -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
find ${APP_NAME}.app/Contents/runtime/Contents/MacOS -name '*.dylib' -exec codesign --force -s ${CODESIGN_IDENTITY} {} \;
|
||||||
for JAR_PATH in `find ${APP_NAME}.app -name "*.jar"`; do
|
for JAR_PATH in `find ${APP_NAME}.app -name "*.jar"`; do
|
||||||
if [[ `unzip -l ${JAR_PATH} | grep '.dylib\|.jnilib'` ]]; then
|
if [[ `unzip -l ${JAR_PATH} | grep '.dylib\|.jnilib'` ]]; then
|
||||||
@@ -146,7 +159,10 @@ if [ -n "${CODESIGN_IDENTITY}" ]; then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo "Codesigning ${APP_NAME}.app..."
|
echo "Codesigning ${APP_NAME}.app..."
|
||||||
codesign --force --deep --entitlements ../${APP_NAME}.entitlements -o runtime -s ${CODESIGN_IDENTITY} ${APP_NAME}.app
|
cp ../${APP_NAME}.entitlements .
|
||||||
|
sed -i '' "s|###APP_IDENTIFIER_PREFIX###|${TEAM_IDENTIFIER}.|g" ${APP_NAME}.entitlements
|
||||||
|
sed -i '' "s|###TEAM_IDENTIFIER###|${TEAM_IDENTIFIER}|g" ${APP_NAME}.entitlements
|
||||||
|
codesign --force --deep --entitlements ${APP_NAME}.entitlements -o runtime -s ${CODESIGN_IDENTITY} ${APP_NAME}.app
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# prepare dmg contents
|
# prepare dmg contents
|
||||||
|
|||||||
@@ -6,4 +6,5 @@ installer
|
|||||||
*.msi
|
*.msi
|
||||||
*.exe
|
*.exe
|
||||||
*.jmod
|
*.jmod
|
||||||
|
resources/jfxJmods.zip
|
||||||
license.rtf
|
license.rtf
|
||||||
Vendored
+17
-16
@@ -41,7 +41,7 @@ Write-Output "`$Env:JAVA_HOME=$Env:JAVA_HOME"
|
|||||||
$copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor"
|
$copyright = "(C) $CopyrightStartYear - $((Get-Date).Year) $Vendor"
|
||||||
|
|
||||||
# compile
|
# compile
|
||||||
&mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin
|
&mvn -B -f $buildDir/../../pom.xml clean package -DskipTests -Pwin "-Djavafx.platform=win"
|
||||||
Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods"
|
Copy-Item "$buildDir\..\..\target\$MainJarGlob.jar" -Destination "$buildDir\..\..\target\mods"
|
||||||
|
|
||||||
# add runtime
|
# add runtime
|
||||||
@@ -51,21 +51,22 @@ if ($clean -and (Test-Path -Path $runtimeImagePath)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
## download jfx jmods
|
## download jfx jmods
|
||||||
$jmodsVersion='21.0.1'
|
$javaFxVersion='22.0.2'
|
||||||
$jmodsUrl = "https://download2.gluonhq.com/openjfx/${jmodsVersion}/openjfx-${jmodsVersion}_windows-x64_bin-jmods.zip"
|
$javaFxJmodsUrl = "https://download2.gluonhq.com/openjfx/${javaFxVersion}/openjfx-${javaFxVersion}_windows-x64_bin-jmods.zip"
|
||||||
$jfxJmodsChecksum = 'daf8acae631c016c24cfe23f88469400274d3441dd890615a42dfb501f3eb94a'
|
$javaFxJmodsSHA256 = 'f9376d200f5c5b85327d575c1ec1482e6455f19916577f7e2fc9be2f48bb29b6'
|
||||||
$jfxJmodsZip = '.\resources\jfxJmods.zip'
|
$javaFxJmods = '.\resources\jfxJmods.zip'
|
||||||
if( !(Test-Path -Path $jfxJmodsZip) ) {
|
if( !(Test-Path -Path $javaFxJmods) ) {
|
||||||
Write-Output "Downloading ${jmodsUrl}..."
|
Write-Output "Downloading ${javaFxJmodsUrl}..."
|
||||||
Invoke-WebRequest $jmodsUrl -OutFile $jfxJmodsZip # redirects are followed by default
|
Invoke-WebRequest $javaFxJmodsUrl -OutFile $javaFxJmods # redirects are followed by default
|
||||||
}
|
}
|
||||||
|
|
||||||
$jmodsChecksumActual = $(Get-FileHash -Path $jfxJmodsZip -Algorithm SHA256).Hash
|
$jmodsChecksumActual = $(Get-FileHash -Path $javaFxJmods -Algorithm SHA256).Hash
|
||||||
if( $jmodsChecksumActual -ne $jfxJmodsChecksum ) {
|
if( $jmodsChecksumActual -ne $javaFxJmodsSHA256 ) {
|
||||||
Write-Error "Checksum mismatch for jfxJmods.zip. Expected: $jfxJmodsChecksum, actual: $jmodsChecksumActual"
|
Write-Error "Checksum mismatch for jfxJmods.zip. Expected: $javaFxJmodsSHA256
|
||||||
|
, actual: $jmodsChecksumActual"
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
Expand-Archive -Path $jfxJmodsZip -Force -DestinationPath ".\resources\"
|
Expand-Archive -Path $javaFxJmods -Force -DestinationPath ".\resources\"
|
||||||
Remove-Item -Recurse -Force -Path ".\resources\javafx-jmods"
|
Remove-Item -Recurse -Force -Path ".\resources\javafx-jmods"
|
||||||
Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop
|
Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop
|
||||||
|
|
||||||
@@ -74,7 +75,7 @@ Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\ja
|
|||||||
--verbose `
|
--verbose `
|
||||||
--output runtime `
|
--output runtime `
|
||||||
--module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods" `
|
--module-path "$Env:JAVA_HOME/jmods;$buildDir/resources/javafx-jmods" `
|
||||||
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,jdk.unsupported,jdk.crypto.ec,jdk.accessibility,jdk.management.jfr,javafx.base,javafx.graphics,javafx.controls,javafx.fxml `
|
--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 `
|
--strip-native-commands `
|
||||||
--no-header-files `
|
--no-header-files `
|
||||||
--no-man-pages `
|
--no-man-pages `
|
||||||
@@ -99,7 +100,7 @@ if ($clean -and (Test-Path -Path $appPath)) {
|
|||||||
--vendor $Vendor `
|
--vendor $Vendor `
|
||||||
--copyright $copyright `
|
--copyright $copyright `
|
||||||
--java-options "--enable-preview" `
|
--java-options "--enable-preview" `
|
||||||
--java-options "--enable-native-access=org.cryptomator.jfuse.win" `
|
--java-options "--enable-native-access=org.cryptomator.jfuse.win,org.cryptomator.integrations.win" `
|
||||||
--java-options "-Xss5m" `
|
--java-options "-Xss5m" `
|
||||||
--java-options "-Xmx256m" `
|
--java-options "-Xmx256m" `
|
||||||
--java-options "-Dcryptomator.appVersion=`"$semVerNo`"" `
|
--java-options "-Dcryptomator.appVersion=`"$semVerNo`"" `
|
||||||
@@ -121,7 +122,7 @@ if ($clean -and (Test-Path -Path $appPath)) {
|
|||||||
--icon resources/$AppName.ico
|
--icon resources/$AppName.ico
|
||||||
|
|
||||||
#Create RTF license for msi
|
#Create RTF license for msi
|
||||||
&mvn -B -f $buildDir/../../pom.xml license:add-third-party `
|
&mvn -B -f $buildDir/../../pom.xml license:add-third-party "-Djavafx.platform=win" `
|
||||||
"-Dlicense.thirdPartyFilename=license.rtf" `
|
"-Dlicense.thirdPartyFilename=license.rtf" `
|
||||||
"-Dlicense.fileTemplate=$buildDir\resources\licenseTemplate.ftl" `
|
"-Dlicense.fileTemplate=$buildDir\resources\licenseTemplate.ftl" `
|
||||||
"-Dlicense.outputDirectory=$buildDir\resources\" `
|
"-Dlicense.outputDirectory=$buildDir\resources\" `
|
||||||
@@ -166,7 +167,7 @@ $Env:JP_WIXHELPER_DIR = "."
|
|||||||
--file-associations resources/FAvaultFile.properties
|
--file-associations resources/FAvaultFile.properties
|
||||||
|
|
||||||
#Create RTF license for bundle
|
#Create RTF license for bundle
|
||||||
&mvn -B -f $buildDir/../../pom.xml license:add-third-party `
|
&mvn -B -f $buildDir/../../pom.xml license:add-third-party "-Djavafx.platform=win" `
|
||||||
"-Dlicense.thirdPartyFilename=license.rtf" `
|
"-Dlicense.thirdPartyFilename=license.rtf" `
|
||||||
"-Dlicense.fileTemplate=$buildDir\bundle\resources\licenseTemplate.ftl" `
|
"-Dlicense.fileTemplate=$buildDir\bundle\resources\licenseTemplate.ftl" `
|
||||||
"-Dlicense.outputDirectory=$buildDir\bundle\resources\" `
|
"-Dlicense.outputDirectory=$buildDir\bundle\resources\" `
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
@echo off
|
|
||||||
:: see comments in file ./version170-migrate-settings.ps1
|
|
||||||
|
|
||||||
cd %~dp0
|
|
||||||
powershell -NoLogo -NoProfile -NonInteractive -ExecutionPolicy RemoteSigned -Command .\version170-migrate-settings.ps1
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
# This script migrates Cryptomator settings for all local users on Windows in case the users uses custom directories as mountpoint
|
|
||||||
# See also https://github.com/cryptomator/cryptomator/pull/2654.
|
|
||||||
#
|
|
||||||
# TODO: This script should be evaluated in a yearly interval if it is still needed and if not, should be removed
|
|
||||||
#
|
|
||||||
#Requires -RunAsAdministrator
|
|
||||||
|
|
||||||
#Get all active, local user profiles
|
|
||||||
$profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
|
|
||||||
Get-ChildItem $profileList | ForEach-Object {
|
|
||||||
$profilePath = $_.GetValue("ProfileImagePath")
|
|
||||||
$settingsPath = "$profilePath\AppData\Roaming\Cryptomator\settings.json"
|
|
||||||
if(!(Test-Path -Path $settingsPath -PathType Leaf)) {
|
|
||||||
#No settings file, nothing to do.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$settings = Get-Content -Path $settingsPath | ConvertFrom-Json
|
|
||||||
if($settings.preferredVolumeImpl -ne "FUSE") {
|
|
||||||
#Fuse not used, nothing to do
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#check if customMountPoints are used
|
|
||||||
$atLeastOneCustomPath = $false;
|
|
||||||
foreach ($vault in $settings.directories){
|
|
||||||
$atLeastOneCustomPath = $atLeastOneCustomPath -or ($vault.useCustomMountPath -eq "True")
|
|
||||||
}
|
|
||||||
|
|
||||||
#if so, use WinFsp Local Drive
|
|
||||||
if( $atLeastOneCustomPath ) {
|
|
||||||
Add-Member -Force -InputObject $settings -Name "mountService" -Value "org.cryptomator.frontend.fuse.mount.WinFspMountProvider" -MemberType NoteProperty
|
|
||||||
$newSettings = $settings | Select-Object * -ExcludeProperty "preferredVolumeImpl"
|
|
||||||
ConvertTo-Json $newSettings | Set-Content -Path $settingsPath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Vendored
-6
@@ -139,11 +139,6 @@
|
|||||||
Sequence="execute" Before="PatchWebDAV" />
|
Sequence="execute" Before="PatchWebDAV" />
|
||||||
<CustomAction Id="PatchWebDAV" BinaryKey="WixCA" DllEntry="WixQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/>
|
<CustomAction Id="PatchWebDAV" BinaryKey="WixCA" DllEntry="WixQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/>
|
||||||
|
|
||||||
<!-- Special Settings migration for 1.7.0,. Should be removed eventually, for more info, see ../contrib/version170-migrate-settings.ps1-->
|
|
||||||
<SetProperty Id="V170MigrateSettings" Value=""[INSTALLDIR]version170-migrate-settings.bat""
|
|
||||||
Sequence="execute" Before="V170MigrateSettings" />
|
|
||||||
<CustomAction Id="V170MigrateSettings" BinaryKey="WixCA" DllEntry="WixQuietExec64" Execute="deferred" Return="ignore" Impersonate="no"/>
|
|
||||||
|
|
||||||
<!-- Running App detection and exit -->
|
<!-- Running App detection and exit -->
|
||||||
<Property Id="FOUNDRUNNINGAPP" Admin="yes"/>
|
<Property Id="FOUNDRUNNINGAPP" Admin="yes"/>
|
||||||
<util:CloseApplication
|
<util:CloseApplication
|
||||||
@@ -195,7 +190,6 @@
|
|||||||
<RemoveExistingProducts After="InstallValidate"/> <!-- Moved from CostInitialize, due to WixCloseApplications -->
|
<RemoveExistingProducts After="InstallValidate"/> <!-- Moved from CostInitialize, due to WixCloseApplications -->
|
||||||
|
|
||||||
<Custom Action="PatchWebDAV" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
<Custom Action="PatchWebDAV" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||||
<Custom Action="V170MigrateSettings" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
|
||||||
</InstallExecuteSequence>
|
</InstallExecuteSequence>
|
||||||
|
|
||||||
<InstallUISequence>
|
<InstallUISequence>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptomator</artifactId>
|
<artifactId>cryptomator</artifactId>
|
||||||
<version>1.13.0-SNAPSHOT</version>
|
<version>1.14.1</version>
|
||||||
<name>Cryptomator Desktop App</name>
|
<name>Cryptomator Desktop App</name>
|
||||||
|
|
||||||
<organization>
|
<organization>
|
||||||
@@ -26,56 +26,60 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.jdk.version>21</project.jdk.version>
|
<project.jdk.version>22</project.jdk.version>
|
||||||
|
|
||||||
<!-- Group IDs of jars that need to stay on the class path for now -->
|
<!-- Group IDs of jars that need to stay on the class path for now -->
|
||||||
<!-- remove them, as soon they got modularized or support is dropped (i.e., WebDAV) -->
|
<!-- remove them, as soon they got modularized or support is dropped (i.e., WebDAV) -->
|
||||||
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents</nonModularGroupIds>
|
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents</nonModularGroupIds>
|
||||||
|
|
||||||
<!-- cryptomator dependencies -->
|
<!-- cryptomator dependencies -->
|
||||||
<cryptomator.cryptofs.version>2.6.9</cryptomator.cryptofs.version>
|
<cryptomator.cryptofs.version>2.7.1-beta1</cryptomator.cryptofs.version>
|
||||||
<cryptomator.integrations.version>1.3.1</cryptomator.integrations.version>
|
<cryptomator.integrations.version>1.4.0</cryptomator.integrations.version>
|
||||||
<cryptomator.integrations.win.version>1.2.5</cryptomator.integrations.win.version>
|
<cryptomator.integrations.win.version>1.3.0</cryptomator.integrations.win.version>
|
||||||
<cryptomator.integrations.mac.version>1.2.3</cryptomator.integrations.mac.version>
|
<cryptomator.integrations.mac.version>1.2.4</cryptomator.integrations.mac.version>
|
||||||
<cryptomator.integrations.linux.version>1.4.4</cryptomator.integrations.linux.version>
|
<cryptomator.integrations.linux.version>1.5.1</cryptomator.integrations.linux.version>
|
||||||
<cryptomator.fuse.version>4.0.0</cryptomator.fuse.version>
|
<cryptomator.fuse.version>5.0.2</cryptomator.fuse.version>
|
||||||
<cryptomator.dokany.version>2.0.0</cryptomator.dokany.version>
|
<cryptomator.webdav.version>2.0.7</cryptomator.webdav.version>
|
||||||
<cryptomator.webdav.version>2.0.6</cryptomator.webdav.version>
|
|
||||||
|
|
||||||
<!-- 3rd party dependencies -->
|
<!-- 3rd party dependencies -->
|
||||||
<commons-lang3.version>3.14.0</commons-lang3.version>
|
<commons-lang3.version>3.16.0</commons-lang3.version>
|
||||||
<dagger.version>2.50</dagger.version>
|
<dagger.version>2.51.1</dagger.version>
|
||||||
<easybind.version>2.2</easybind.version>
|
<easybind.version>2.2</easybind.version>
|
||||||
<guava.version>33.0.0-jre</guava.version>
|
<guava.version>33.3.0-jre</guava.version>
|
||||||
<jackson.version>2.16.1</jackson.version>
|
<jackson.version>2.17.2</jackson.version>
|
||||||
<javafx.version>21.0.1</javafx.version>
|
<javafx.version>22.0.2</javafx.version>
|
||||||
<jwt.version>4.4.0</jwt.version>
|
<jwt.version>4.4.0</jwt.version>
|
||||||
<nimbus-jose.version>9.37.3</nimbus-jose.version>
|
<nimbus-jose.version>9.37.3</nimbus-jose.version>
|
||||||
<logback.version>1.5.0</logback.version>
|
<logback.version>1.5.7</logback.version>
|
||||||
<slf4j.version>2.0.12</slf4j.version>
|
<slf4j.version>2.0.16</slf4j.version>
|
||||||
<tinyoauth2.version>0.8.0</tinyoauth2.version>
|
<tinyoauth2.version>0.8.0</tinyoauth2.version>
|
||||||
<zxcvbn.version>1.8.2</zxcvbn.version>
|
<zxcvbn.version>1.9.0</zxcvbn.version>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<junit.jupiter.version>5.10.2</junit.jupiter.version>
|
<junit.jupiter.version>5.11.0</junit.jupiter.version>
|
||||||
<mockito.version>5.10.0</mockito.version>
|
<mockito.version>5.12.0</mockito.version>
|
||||||
<hamcrest.version>2.2</hamcrest.version>
|
<hamcrest.version>3.0</hamcrest.version>
|
||||||
|
|
||||||
<!-- build-time dependencies -->
|
<!-- build-time dependencies -->
|
||||||
<jetbrains.annotations.version>24.1.0</jetbrains.annotations.version>
|
<jetbrains.annotations.version>24.1.0</jetbrains.annotations.version>
|
||||||
<dependency-check.version>9.0.9</dependency-check.version>
|
<dependency-check.version>10.0.3</dependency-check.version>
|
||||||
<jacoco.version>0.8.11</jacoco.version>
|
<jacoco.version>0.8.12</jacoco.version>
|
||||||
<license-generator.version>2.4.0</license-generator.version>
|
<license-generator.version>2.4.0</license-generator.version>
|
||||||
<junit-tree-reporter.version>1.2.1</junit-tree-reporter.version>
|
<junit-tree-reporter.version>1.3.0</junit-tree-reporter.version>
|
||||||
<mvn-compiler.version>3.12.1</mvn-compiler.version>
|
<mvn-compiler.version>3.13.0</mvn-compiler.version>
|
||||||
<mvn-resources.version>3.3.1</mvn-resources.version>
|
<mvn-resources.version>3.3.1</mvn-resources.version>
|
||||||
<mvn-dependency.version>3.6.1</mvn-dependency.version>
|
<mvn-dependency.version>3.7.1</mvn-dependency.version>
|
||||||
<mvn-surefire.version>3.2.5</mvn-surefire.version>
|
<mvn-surefire.version>3.4.0</mvn-surefire.version>
|
||||||
<mvn-jar.version>3.3.0</mvn-jar.version>
|
<mvn-jar.version>3.4.2</mvn-jar.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Cryptomator Libs -->
|
<!-- Cryptomator Libs -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.cryptomator</groupId>
|
||||||
|
<artifactId>cryptolib</artifactId>
|
||||||
|
<version>2.2.0</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptofs</artifactId>
|
<artifactId>cryptofs</artifactId>
|
||||||
@@ -86,11 +90,6 @@
|
|||||||
<artifactId>fuse-nio-adapter</artifactId>
|
<artifactId>fuse-nio-adapter</artifactId>
|
||||||
<version>${cryptomator.fuse.version}</version>
|
<version>${cryptomator.fuse.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.cryptomator</groupId>
|
|
||||||
<artifactId>dokany-nio-adapter</artifactId>
|
|
||||||
<version>${cryptomator.dokany.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>webdav-nio-adapter</artifactId>
|
<artifactId>webdav-nio-adapter</artifactId>
|
||||||
@@ -164,11 +163,18 @@
|
|||||||
<artifactId>nimbus-jose-jwt</artifactId>
|
<artifactId>nimbus-jose-jwt</artifactId>
|
||||||
<version>${nimbus-jose.version}</version>
|
<version>${nimbus-jose.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Jackson -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.core</groupId>
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
<artifactId>jackson-databind</artifactId>
|
<artifactId>jackson-databind</artifactId>
|
||||||
<version>${jackson.version}</version>
|
<version>${jackson.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||||
|
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- EasyBind -->
|
<!-- EasyBind -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -465,7 +471,7 @@
|
|||||||
<skipTestScope>true</skipTestScope>
|
<skipTestScope>true</skipTestScope>
|
||||||
<detail>true</detail>
|
<detail>true</detail>
|
||||||
<suppressionFile>suppression.xml</suppressionFile>
|
<suppressionFile>suppression.xml</suppressionFile>
|
||||||
<nvdApiKey>${env.NVD_API_KEY}</nvdApiKey>
|
<nvdApiKeyEnvironmentVariable>NVD_API_KEY</nvdApiKeyEnvironmentVariable>
|
||||||
</configuration>
|
</configuration>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ open module org.cryptomator.desktop {
|
|||||||
|
|
||||||
requires org.cryptomator.cryptolib;
|
requires org.cryptomator.cryptolib;
|
||||||
requires org.cryptomator.cryptofs;
|
requires org.cryptomator.cryptofs;
|
||||||
requires org.cryptomator.frontend.dokany;
|
|
||||||
requires org.cryptomator.frontend.fuse;
|
requires org.cryptomator.frontend.fuse;
|
||||||
requires org.cryptomator.frontend.webdav;
|
requires org.cryptomator.frontend.webdav;
|
||||||
requires org.cryptomator.integrations.api;
|
requires org.cryptomator.integrations.api;
|
||||||
@@ -32,17 +31,18 @@ open module org.cryptomator.desktop {
|
|||||||
requires javafx.graphics;
|
requires javafx.graphics;
|
||||||
requires javafx.controls;
|
requires javafx.controls;
|
||||||
requires javafx.fxml;
|
requires javafx.fxml;
|
||||||
requires jdk.crypto.ec;
|
|
||||||
// 3rd party:
|
// 3rd party:
|
||||||
requires ch.qos.logback.classic;
|
requires ch.qos.logback.classic;
|
||||||
requires ch.qos.logback.core;
|
requires ch.qos.logback.core;
|
||||||
requires com.auth0.jwt;
|
requires com.auth0.jwt;
|
||||||
requires com.google.common;
|
requires com.google.common;
|
||||||
requires com.fasterxml.jackson.databind;
|
requires com.fasterxml.jackson.databind;
|
||||||
|
requires com.fasterxml.jackson.datatype.jsr310;
|
||||||
requires com.nimbusds.jose.jwt;
|
requires com.nimbusds.jose.jwt;
|
||||||
requires com.nulabinc.zxcvbn;
|
requires com.nulabinc.zxcvbn;
|
||||||
requires com.tobiasdiez.easybind;
|
requires com.tobiasdiez.easybind;
|
||||||
requires dagger;
|
requires dagger;
|
||||||
|
requires java.compiler;
|
||||||
requires io.github.coffeelibs.tinyoauth2client;
|
requires io.github.coffeelibs.tinyoauth2client;
|
||||||
requires org.slf4j;
|
requires org.slf4j;
|
||||||
requires org.apache.commons.lang3;
|
requires org.apache.commons.lang3;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class SubstitutingProperties extends PropertiesDecorator {
|
public class SubstitutingProperties extends PropertiesDecorator {
|
||||||
@@ -58,7 +59,7 @@ public class SubstitutingProperties extends PropertiesDecorator {
|
|||||||
LoggerFactory.getLogger(SubstitutingProperties.class).warn("Variable {} used for substitution not found in {}. Replaced with empty string.", key, src);
|
LoggerFactory.getLogger(SubstitutingProperties.class).warn("Variable {} used for substitution not found in {}. Replaced with empty string.", key, src);
|
||||||
return "";
|
return "";
|
||||||
} else {
|
} else {
|
||||||
return val.replace("\\", "\\\\");
|
return Matcher.quoteReplacement(val);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class KeychainManager implements KeychainAccessProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
|
public void storePassphrase(String key, String displayName, CharSequence passphrase, boolean ignored) throws KeychainAccessException {
|
||||||
getKeychainOrFail().storePassphrase(key, displayName, passphrase);
|
getKeychainOrFail().storePassphrase(key, displayName, passphrase);
|
||||||
setPassphraseStored(key, true);
|
setPassphraseStored(key, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import javafx.beans.property.StringProperty;
|
|||||||
import javafx.collections.FXCollections;
|
import javafx.collections.FXCollections;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import javafx.geometry.NodeOrientation;
|
import javafx.geometry.NodeOrientation;
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class Settings {
|
public class Settings {
|
||||||
@@ -36,16 +37,21 @@ public class Settings {
|
|||||||
static final boolean DEFAULT_START_HIDDEN = false;
|
static final boolean DEFAULT_START_HIDDEN = false;
|
||||||
static final boolean DEFAULT_AUTO_CLOSE_VAULTS = false;
|
static final boolean DEFAULT_AUTO_CLOSE_VAULTS = false;
|
||||||
static final boolean DEFAULT_USE_KEYCHAIN = true;
|
static final boolean DEFAULT_USE_KEYCHAIN = true;
|
||||||
|
static final boolean DEFAULT_USE_QUICKACCESS = true;
|
||||||
static final int DEFAULT_PORT = 42427;
|
static final int DEFAULT_PORT = 42427;
|
||||||
static final int DEFAULT_NUM_TRAY_NOTIFICATIONS = 3;
|
static final int DEFAULT_NUM_TRAY_NOTIFICATIONS = 3;
|
||||||
static final boolean DEFAULT_DEBUG_MODE = false;
|
static final boolean DEFAULT_DEBUG_MODE = false;
|
||||||
static final UiTheme DEFAULT_THEME = UiTheme.LIGHT;
|
static final UiTheme DEFAULT_THEME = UiTheme.LIGHT;
|
||||||
@Deprecated // to be changed to "whatever is available" eventually
|
@Deprecated // to be changed to "whatever is available" eventually
|
||||||
static final String DEFAULT_KEYCHAIN_PROVIDER = SystemUtils.IS_OS_WINDOWS ? "org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess" : SystemUtils.IS_OS_MAC ? "org.cryptomator.macos.keychain.MacSystemKeychainAccess" : "org.cryptomator.linux.keychain.SecretServiceKeychainAccess";
|
static final String DEFAULT_KEYCHAIN_PROVIDER = SystemUtils.IS_OS_WINDOWS ? "org.cryptomator.windows.keychain.WindowsProtectedKeychainAccess" : //
|
||||||
|
SystemUtils.IS_OS_MAC ? "org.cryptomator.macos.keychain.MacSystemKeychainAccess" : //
|
||||||
|
"org.cryptomator.linux.keychain.SecretServiceKeychainAccess";
|
||||||
|
static final String DEFAULT_QUICKACCESS_SERVICE = SystemUtils.IS_OS_WINDOWS ? "org.cryptomator.windows.quickaccess.ExplorerQuickAccessService" : //
|
||||||
|
SystemUtils.IS_OS_LINUX ? "org.cryptomator.linux.quickaccess.NautilusBookmarks" : null;
|
||||||
|
|
||||||
static final String DEFAULT_USER_INTERFACE_ORIENTATION = NodeOrientation.LEFT_TO_RIGHT.name();
|
static final String DEFAULT_USER_INTERFACE_ORIENTATION = NodeOrientation.LEFT_TO_RIGHT.name();
|
||||||
static final boolean DEFAULT_SHOW_MINIMIZE_BUTTON = false;
|
static final boolean DEFAULT_SHOW_MINIMIZE_BUTTON = false;
|
||||||
static final String DEFAULT_LAST_UPDATE_CHECK = "2000-01-01";
|
public static final Instant DEFAULT_TIMESTAMP = Instant.parse("2000-01-01T00:00:00Z");
|
||||||
|
|
||||||
public final ObservableList<VaultSettings> directories;
|
public final ObservableList<VaultSettings> directories;
|
||||||
public final BooleanProperty askedForUpdateCheck;
|
public final BooleanProperty askedForUpdateCheck;
|
||||||
public final BooleanProperty checkForUpdates;
|
public final BooleanProperty checkForUpdates;
|
||||||
@@ -57,6 +63,8 @@ public class Settings {
|
|||||||
public final BooleanProperty debugMode;
|
public final BooleanProperty debugMode;
|
||||||
public final ObjectProperty<UiTheme> theme;
|
public final ObjectProperty<UiTheme> theme;
|
||||||
public final StringProperty keychainProvider;
|
public final StringProperty keychainProvider;
|
||||||
|
public final BooleanProperty useQuickAccess;
|
||||||
|
public final StringProperty quickAccessService;
|
||||||
public final ObjectProperty<NodeOrientation> userInterfaceOrientation;
|
public final ObjectProperty<NodeOrientation> userInterfaceOrientation;
|
||||||
public final StringProperty licenseKey;
|
public final StringProperty licenseKey;
|
||||||
public final BooleanProperty showMinimizeButton;
|
public final BooleanProperty showMinimizeButton;
|
||||||
@@ -67,7 +75,7 @@ public class Settings {
|
|||||||
public final IntegerProperty windowHeight;
|
public final IntegerProperty windowHeight;
|
||||||
public final StringProperty language;
|
public final StringProperty language;
|
||||||
public final StringProperty mountService;
|
public final StringProperty mountService;
|
||||||
public final StringProperty lastUpdateCheck;
|
public final ObjectProperty<Instant> lastSuccessfulUpdateCheck;
|
||||||
|
|
||||||
private Consumer<Settings> saveCmd;
|
private Consumer<Settings> saveCmd;
|
||||||
|
|
||||||
@@ -89,6 +97,7 @@ public class Settings {
|
|||||||
this.startHidden = new SimpleBooleanProperty(this, "startHidden", json.startHidden);
|
this.startHidden = new SimpleBooleanProperty(this, "startHidden", json.startHidden);
|
||||||
this.autoCloseVaults = new SimpleBooleanProperty(this, "autoCloseVaults", json.autoCloseVaults);
|
this.autoCloseVaults = new SimpleBooleanProperty(this, "autoCloseVaults", json.autoCloseVaults);
|
||||||
this.useKeychain = new SimpleBooleanProperty(this, "useKeychain", json.useKeychain);
|
this.useKeychain = new SimpleBooleanProperty(this, "useKeychain", json.useKeychain);
|
||||||
|
this.useQuickAccess = new SimpleBooleanProperty(this, "addToQuickAccess", json.useQuickAccess);
|
||||||
this.port = new SimpleIntegerProperty(this, "webDavPort", json.port);
|
this.port = new SimpleIntegerProperty(this, "webDavPort", json.port);
|
||||||
this.numTrayNotifications = new SimpleIntegerProperty(this, "numTrayNotifications", json.numTrayNotifications);
|
this.numTrayNotifications = new SimpleIntegerProperty(this, "numTrayNotifications", json.numTrayNotifications);
|
||||||
this.debugMode = new SimpleBooleanProperty(this, "debugMode", json.debugMode);
|
this.debugMode = new SimpleBooleanProperty(this, "debugMode", json.debugMode);
|
||||||
@@ -104,7 +113,8 @@ public class Settings {
|
|||||||
this.windowHeight = new SimpleIntegerProperty(this, "windowHeight", json.windowHeight);
|
this.windowHeight = new SimpleIntegerProperty(this, "windowHeight", json.windowHeight);
|
||||||
this.language = new SimpleStringProperty(this, "language", json.language);
|
this.language = new SimpleStringProperty(this, "language", json.language);
|
||||||
this.mountService = new SimpleStringProperty(this, "mountService", json.mountService);
|
this.mountService = new SimpleStringProperty(this, "mountService", json.mountService);
|
||||||
this.lastUpdateCheck = new SimpleStringProperty(this, "lastUpdateCheck", json.lastUpdateCheck);
|
this.quickAccessService = new SimpleStringProperty(this, "quickAccessService", json.quickAccessService);
|
||||||
|
this.lastSuccessfulUpdateCheck = new SimpleObjectProperty<>(this, "lastSuccessfulUpdateCheck", json.lastSuccessfulUpdateCheck);
|
||||||
|
|
||||||
this.directories.addAll(json.directories.stream().map(VaultSettings::new).toList());
|
this.directories.addAll(json.directories.stream().map(VaultSettings::new).toList());
|
||||||
|
|
||||||
@@ -116,6 +126,7 @@ public class Settings {
|
|||||||
startHidden.addListener(this::somethingChanged);
|
startHidden.addListener(this::somethingChanged);
|
||||||
autoCloseVaults.addListener(this::somethingChanged);
|
autoCloseVaults.addListener(this::somethingChanged);
|
||||||
useKeychain.addListener(this::somethingChanged);
|
useKeychain.addListener(this::somethingChanged);
|
||||||
|
useQuickAccess.addListener(this::somethingChanged);
|
||||||
port.addListener(this::somethingChanged);
|
port.addListener(this::somethingChanged);
|
||||||
numTrayNotifications.addListener(this::somethingChanged);
|
numTrayNotifications.addListener(this::somethingChanged);
|
||||||
debugMode.addListener(this::somethingChanged);
|
debugMode.addListener(this::somethingChanged);
|
||||||
@@ -131,7 +142,8 @@ public class Settings {
|
|||||||
windowHeight.addListener(this::somethingChanged);
|
windowHeight.addListener(this::somethingChanged);
|
||||||
language.addListener(this::somethingChanged);
|
language.addListener(this::somethingChanged);
|
||||||
mountService.addListener(this::somethingChanged);
|
mountService.addListener(this::somethingChanged);
|
||||||
lastUpdateCheck.addListener(this::somethingChanged);
|
quickAccessService.addListener(this::somethingChanged);
|
||||||
|
lastSuccessfulUpdateCheck.addListener(this::somethingChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@@ -170,6 +182,7 @@ public class Settings {
|
|||||||
json.startHidden = startHidden.get();
|
json.startHidden = startHidden.get();
|
||||||
json.autoCloseVaults = autoCloseVaults.get();
|
json.autoCloseVaults = autoCloseVaults.get();
|
||||||
json.useKeychain = useKeychain.get();
|
json.useKeychain = useKeychain.get();
|
||||||
|
json.useQuickAccess = useQuickAccess.get();
|
||||||
json.port = port.get();
|
json.port = port.get();
|
||||||
json.numTrayNotifications = numTrayNotifications.get();
|
json.numTrayNotifications = numTrayNotifications.get();
|
||||||
json.debugMode = debugMode.get();
|
json.debugMode = debugMode.get();
|
||||||
@@ -185,7 +198,8 @@ public class Settings {
|
|||||||
json.windowHeight = windowHeight.get();
|
json.windowHeight = windowHeight.get();
|
||||||
json.language = language.get();
|
json.language = language.get();
|
||||||
json.mountService = mountService.get();
|
json.mountService = mountService.get();
|
||||||
json.lastUpdateCheck = lastUpdateCheck.get();
|
json.quickAccessService = quickAccessService.get();
|
||||||
|
json.lastSuccessfulUpdateCheck = lastSuccessfulUpdateCheck.get();
|
||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package org.cryptomator.common.settings;
|
package org.cryptomator.common.settings;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
@@ -80,7 +82,13 @@ class SettingsJson {
|
|||||||
@JsonProperty(value = "preferredVolumeImpl", access = JsonProperty.Access.WRITE_ONLY) // WRITE_ONLY means value is "written" into the java object during deserialization. Upvote this: https://github.com/FasterXML/jackson-annotations/issues/233
|
@JsonProperty(value = "preferredVolumeImpl", access = JsonProperty.Access.WRITE_ONLY) // WRITE_ONLY means value is "written" into the java object during deserialization. Upvote this: https://github.com/FasterXML/jackson-annotations/issues/233
|
||||||
String preferredVolumeImpl;
|
String preferredVolumeImpl;
|
||||||
|
|
||||||
@JsonProperty("lastUpdateCheck")
|
@JsonProperty("lastSuccessfulUpdateCheck")
|
||||||
String lastUpdateCheck = Settings.DEFAULT_LAST_UPDATE_CHECK;
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'", timezone = "UTC")
|
||||||
|
Instant lastSuccessfulUpdateCheck = Settings.DEFAULT_TIMESTAMP;
|
||||||
|
|
||||||
|
@JsonProperty("useQuickAccess")
|
||||||
|
boolean useQuickAccess = Settings.DEFAULT_USE_QUICKACCESS;
|
||||||
|
|
||||||
|
@JsonProperty("quickAccessService")
|
||||||
|
String quickAccessService = Settings.DEFAULT_QUICKACCESS_SERVICE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ package org.cryptomator.common.settings;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.core.JacksonException;
|
import com.fasterxml.jackson.core.JacksonException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import com.google.common.base.Suppliers;
|
import com.google.common.base.Suppliers;
|
||||||
import org.cryptomator.common.Environment;
|
import org.cryptomator.common.Environment;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -36,7 +37,7 @@ import java.util.stream.Stream;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class SettingsProvider implements Supplier<Settings> {
|
public class SettingsProvider implements Supplier<Settings> {
|
||||||
|
|
||||||
private static final ObjectMapper JSON = new ObjectMapper().setDefaultLeniency(true);
|
private static final ObjectMapper JSON = new ObjectMapper().setDefaultLeniency(true).registerModule(new JavaTimeModule());
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(SettingsProvider.class);
|
private static final Logger LOG = LoggerFactory.getLogger(SettingsProvider.class);
|
||||||
private static final long SAVE_DELAY_MS = 1000;
|
private static final long SAVE_DELAY_MS = 1000;
|
||||||
|
|
||||||
@@ -57,7 +58,10 @@ public class SettingsProvider implements Supplier<Settings> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Settings load() {
|
private Settings load() {
|
||||||
Settings settings = env.getSettingsPath().flatMap(this::tryLoad).findFirst().orElseGet(() -> Settings.create(env));
|
Settings settings = env.getSettingsPath() //
|
||||||
|
.flatMap(this::tryLoad) //
|
||||||
|
.findFirst() //
|
||||||
|
.orElseGet(() -> Settings.create(env));
|
||||||
settings.setSaveCmd(this::scheduleSave);
|
settings.setSaveCmd(this::scheduleSave);
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ package org.cryptomator.common.vaults;
|
|||||||
import org.apache.commons.lang3.SystemUtils;
|
import org.apache.commons.lang3.SystemUtils;
|
||||||
import org.cryptomator.common.Constants;
|
import org.cryptomator.common.Constants;
|
||||||
import org.cryptomator.common.mount.Mounter;
|
import org.cryptomator.common.mount.Mounter;
|
||||||
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.cryptomator.common.settings.VaultSettings;
|
import org.cryptomator.common.settings.VaultSettings;
|
||||||
import org.cryptomator.cryptofs.CryptoFileSystem;
|
import org.cryptomator.cryptofs.CryptoFileSystem;
|
||||||
import org.cryptomator.cryptofs.CryptoFileSystemProperties;
|
import org.cryptomator.cryptofs.CryptoFileSystemProperties;
|
||||||
@@ -23,6 +24,9 @@ import org.cryptomator.cryptolib.api.MasterkeyLoadingFailedException;
|
|||||||
import org.cryptomator.integrations.mount.MountFailedException;
|
import org.cryptomator.integrations.mount.MountFailedException;
|
||||||
import org.cryptomator.integrations.mount.Mountpoint;
|
import org.cryptomator.integrations.mount.Mountpoint;
|
||||||
import org.cryptomator.integrations.mount.UnmountFailedException;
|
import org.cryptomator.integrations.mount.UnmountFailedException;
|
||||||
|
import org.cryptomator.integrations.quickaccess.QuickAccessService;
|
||||||
|
import org.cryptomator.integrations.quickaccess.QuickAccessServiceException;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -54,6 +58,7 @@ public class Vault {
|
|||||||
|
|
||||||
private final VaultSettings vaultSettings;
|
private final VaultSettings vaultSettings;
|
||||||
private final AtomicReference<CryptoFileSystem> cryptoFileSystem;
|
private final AtomicReference<CryptoFileSystem> cryptoFileSystem;
|
||||||
|
private final AtomicReference<QuickAccessService.QuickAccessEntry> quickAccessEntry;
|
||||||
private final VaultState state;
|
private final VaultState state;
|
||||||
private final ObjectProperty<Exception> lastKnownException;
|
private final ObjectProperty<Exception> lastKnownException;
|
||||||
private final VaultConfigCache configCache;
|
private final VaultConfigCache configCache;
|
||||||
@@ -67,6 +72,7 @@ public class Vault {
|
|||||||
private final BooleanBinding unknownError;
|
private final BooleanBinding unknownError;
|
||||||
private final ObjectBinding<Mountpoint> mountPoint;
|
private final ObjectBinding<Mountpoint> mountPoint;
|
||||||
private final Mounter mounter;
|
private final Mounter mounter;
|
||||||
|
private final Settings settings;
|
||||||
private final BooleanProperty showingStats;
|
private final BooleanProperty showingStats;
|
||||||
|
|
||||||
private final AtomicReference<Mounter.MountHandle> mountHandle = new AtomicReference<>(null);
|
private final AtomicReference<Mounter.MountHandle> mountHandle = new AtomicReference<>(null);
|
||||||
@@ -78,7 +84,7 @@ public class Vault {
|
|||||||
VaultState state, //
|
VaultState state, //
|
||||||
@Named("lastKnownException") ObjectProperty<Exception> lastKnownException, //
|
@Named("lastKnownException") ObjectProperty<Exception> lastKnownException, //
|
||||||
VaultStats stats, //
|
VaultStats stats, //
|
||||||
Mounter mounter) {
|
Mounter mounter, Settings settings) {
|
||||||
this.vaultSettings = vaultSettings;
|
this.vaultSettings = vaultSettings;
|
||||||
this.configCache = configCache;
|
this.configCache = configCache;
|
||||||
this.cryptoFileSystem = cryptoFileSystem;
|
this.cryptoFileSystem = cryptoFileSystem;
|
||||||
@@ -94,7 +100,9 @@ public class Vault {
|
|||||||
this.unknownError = Bindings.createBooleanBinding(this::isUnknownError, state);
|
this.unknownError = Bindings.createBooleanBinding(this::isUnknownError, state);
|
||||||
this.mountPoint = Bindings.createObjectBinding(this::getMountPoint, state);
|
this.mountPoint = Bindings.createObjectBinding(this::getMountPoint, state);
|
||||||
this.mounter = mounter;
|
this.mounter = mounter;
|
||||||
|
this.settings = settings;
|
||||||
this.showingStats = new SimpleBooleanProperty(false);
|
this.showingStats = new SimpleBooleanProperty(false);
|
||||||
|
this.quickAccessEntry = new AtomicReference<>(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ******************************************************************************
|
// ******************************************************************************
|
||||||
@@ -154,6 +162,9 @@ public class Vault {
|
|||||||
var rootPath = fs.getRootDirectories().iterator().next();
|
var rootPath = fs.getRootDirectories().iterator().next();
|
||||||
var mountHandle = mounter.mount(vaultSettings, rootPath);
|
var mountHandle = mounter.mount(vaultSettings, rootPath);
|
||||||
success = this.mountHandle.compareAndSet(null, mountHandle);
|
success = this.mountHandle.compareAndSet(null, mountHandle);
|
||||||
|
if (settings.useQuickAccess.getValue()) {
|
||||||
|
addToQuickAccess();
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
if (!success) {
|
if (!success) {
|
||||||
destroyCryptoFileSystem();
|
destroyCryptoFileSystem();
|
||||||
@@ -178,6 +189,7 @@ public class Vault {
|
|||||||
mountHandle.mountObj().close();
|
mountHandle.mountObj().close();
|
||||||
mountHandle.specialCleanup().run();
|
mountHandle.specialCleanup().run();
|
||||||
} finally {
|
} finally {
|
||||||
|
removeFromQuickAccess();
|
||||||
destroyCryptoFileSystem();
|
destroyCryptoFileSystem();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,6 +197,52 @@ public class Vault {
|
|||||||
LOG.info("Locked vault '{}'", getDisplayName());
|
LOG.info("Locked vault '{}'", getDisplayName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private synchronized void addToQuickAccess() {
|
||||||
|
if (quickAccessEntry.get() != null) {
|
||||||
|
//we don't throw an exception since we don't wanna block unlocking
|
||||||
|
LOG.warn("Vault already added to quick access area. Will be removed on next lock operation.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QuickAccessService.get() //
|
||||||
|
.filter(s -> s.getClass().getName().equals(settings.quickAccessService.getValue())) //
|
||||||
|
.findFirst() //
|
||||||
|
.ifPresentOrElse( //
|
||||||
|
this::addToQuickAccessInternal, //
|
||||||
|
() -> LOG.warn("Unable to add Vault to quick access area: Desired implementation not available.") //
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addToQuickAccessInternal(@NotNull QuickAccessService s) {
|
||||||
|
if (getMountPoint() instanceof Mountpoint.WithPath mp) {
|
||||||
|
try {
|
||||||
|
var entry = s.add(mp.path(), getDisplayName());
|
||||||
|
quickAccessEntry.set(entry);
|
||||||
|
} catch (QuickAccessServiceException e) {
|
||||||
|
LOG.error("Adding vault to quick access area failed", e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
LOG.warn("Unable to add vault to quick access area: Vault is not mounted to local system path.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private synchronized void removeFromQuickAccess() {
|
||||||
|
if (quickAccessEntry.get() == null) {
|
||||||
|
LOG.debug("Removing vault from quick access area: Entry not found, nothing to do.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
removeFromQuickAccessInternal();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeFromQuickAccessInternal() {
|
||||||
|
try {
|
||||||
|
quickAccessEntry.get().remove();
|
||||||
|
quickAccessEntry.set(null);
|
||||||
|
} catch (QuickAccessServiceException e) {
|
||||||
|
LOG.error("Removing vault from quick access area failed", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ******************************************************************************
|
// ******************************************************************************
|
||||||
// Observable Properties
|
// Observable Properties
|
||||||
// *******************************************************************************
|
// *******************************************************************************
|
||||||
|
|||||||
@@ -8,11 +8,13 @@
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.cryptomator.common.vaults;
|
package org.cryptomator.common.vaults;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.SystemUtils;
|
||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.cryptomator.common.settings.VaultSettings;
|
import org.cryptomator.common.settings.VaultSettings;
|
||||||
import org.cryptomator.cryptofs.CryptoFileSystemProvider;
|
import org.cryptomator.cryptofs.CryptoFileSystemProvider;
|
||||||
import org.cryptomator.cryptofs.DirStructure;
|
import org.cryptomator.cryptofs.DirStructure;
|
||||||
import org.cryptomator.cryptofs.migration.Migrators;
|
import org.cryptomator.cryptofs.migration.Migrators;
|
||||||
|
import org.cryptomator.integrations.mount.MountService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -24,6 +26,7 @@ import java.nio.file.Files;
|
|||||||
import java.nio.file.NoSuchFileException;
|
import java.nio.file.NoSuchFileException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
@@ -38,14 +41,21 @@ public class VaultListManager {
|
|||||||
private static final Logger LOG = LoggerFactory.getLogger(VaultListManager.class);
|
private static final Logger LOG = LoggerFactory.getLogger(VaultListManager.class);
|
||||||
|
|
||||||
private final AutoLocker autoLocker;
|
private final AutoLocker autoLocker;
|
||||||
|
private final List<MountService> mountServices;
|
||||||
private final VaultComponent.Factory vaultComponentFactory;
|
private final VaultComponent.Factory vaultComponentFactory;
|
||||||
private final ObservableList<Vault> vaultList;
|
private final ObservableList<Vault> vaultList;
|
||||||
private final String defaultVaultName;
|
private final String defaultVaultName;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public VaultListManager(ObservableList<Vault> vaultList, AutoLocker autoLocker, VaultComponent.Factory vaultComponentFactory, ResourceBundle resourceBundle, Settings settings) {
|
public VaultListManager(ObservableList<Vault> vaultList, //
|
||||||
|
AutoLocker autoLocker, //
|
||||||
|
List<MountService> mountServices,
|
||||||
|
VaultComponent.Factory vaultComponentFactory,
|
||||||
|
ResourceBundle resourceBundle,
|
||||||
|
Settings settings) {
|
||||||
this.vaultList = vaultList;
|
this.vaultList = vaultList;
|
||||||
this.autoLocker = autoLocker;
|
this.autoLocker = autoLocker;
|
||||||
|
this.mountServices = mountServices;
|
||||||
this.vaultComponentFactory = vaultComponentFactory;
|
this.vaultComponentFactory = vaultComponentFactory;
|
||||||
this.defaultVaultName = resourceBundle.getString("defaults.vault.vaultName");
|
this.defaultVaultName = resourceBundle.getString("defaults.vault.vaultName");
|
||||||
|
|
||||||
@@ -76,6 +86,15 @@ public class VaultListManager {
|
|||||||
} else {
|
} else {
|
||||||
vaultSettings.displayName.set(defaultVaultName);
|
vaultSettings.displayName.set(defaultVaultName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//due to https://github.com/cryptomator/cryptomator/issues/2880#issuecomment-1680313498
|
||||||
|
var nameOfWinfspLocalMounter = "org.cryptomator.frontend.fuse.mount.WinFspMountProvider";
|
||||||
|
if (SystemUtils.IS_OS_WINDOWS //
|
||||||
|
&& vaultSettings.path.get().toString().contains("Dropbox") //
|
||||||
|
&& mountServices.stream().anyMatch(s -> s.getClass().getName().equals(nameOfWinfspLocalMounter))) {
|
||||||
|
vaultSettings.mountService.setValue(nameOfWinfspLocalMounter);
|
||||||
|
}
|
||||||
|
|
||||||
return vaultSettings;
|
return vaultSettings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public enum FxmlFile {
|
|||||||
CONVERTVAULT_HUBTOPASSWORD_START("/fxml/convertvault_hubtopassword_start.fxml"), //
|
CONVERTVAULT_HUBTOPASSWORD_START("/fxml/convertvault_hubtopassword_start.fxml"), //
|
||||||
CONVERTVAULT_HUBTOPASSWORD_CONVERT("/fxml/convertvault_hubtopassword_convert.fxml"), //
|
CONVERTVAULT_HUBTOPASSWORD_CONVERT("/fxml/convertvault_hubtopassword_convert.fxml"), //
|
||||||
CONVERTVAULT_HUBTOPASSWORD_SUCCESS("/fxml/convertvault_hubtopassword_success.fxml"), //
|
CONVERTVAULT_HUBTOPASSWORD_SUCCESS("/fxml/convertvault_hubtopassword_success.fxml"), //
|
||||||
|
DOKANY_SUPPORT_END("/fxml/dokany_support_end.fxml"), //
|
||||||
ERROR("/fxml/error.fxml"), //
|
ERROR("/fxml/error.fxml"), //
|
||||||
FORGET_PASSWORD("/fxml/forget_password.fxml"), //
|
FORGET_PASSWORD("/fxml/forget_password.fxml"), //
|
||||||
HEALTH_START("/fxml/health_start.fxml"), //
|
HEALTH_START("/fxml/health_start.fxml"), //
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package org.cryptomator.ui.dokanysupportend;
|
||||||
|
|
||||||
|
import dagger.Lazy;
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
import org.cryptomator.ui.common.FxmlFile;
|
||||||
|
import org.cryptomator.ui.common.FxmlScene;
|
||||||
|
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
@DokanySupportEndScoped
|
||||||
|
@Subcomponent(modules = {DokanySupportEndModule.class})
|
||||||
|
public interface DokanySupportEndComponent {
|
||||||
|
|
||||||
|
@DokanySupportEndWindow
|
||||||
|
Stage window();
|
||||||
|
|
||||||
|
@FxmlScene(FxmlFile.DOKANY_SUPPORT_END)
|
||||||
|
Lazy<Scene> dokanySupportEndScene();
|
||||||
|
|
||||||
|
|
||||||
|
default void showDokanySupportEndWindow() {
|
||||||
|
Stage stage = window();
|
||||||
|
stage.setScene(dokanySupportEndScene().get());
|
||||||
|
stage.sizeToScene();
|
||||||
|
stage.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
|
||||||
|
DokanySupportEndComponent create();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package org.cryptomator.ui.dokanysupportend;
|
||||||
|
|
||||||
|
import org.cryptomator.ui.common.FxController;
|
||||||
|
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
||||||
|
import org.cryptomator.ui.preferences.SelectedPreferencesTab;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javafx.fxml.FXML;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
|
|
||||||
|
@DokanySupportEndScoped
|
||||||
|
public class DokanySupportEndController implements FxController {
|
||||||
|
|
||||||
|
private final Stage window;
|
||||||
|
private final FxApplicationWindows applicationWindows;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DokanySupportEndController(@DokanySupportEndWindow Stage window, FxApplicationWindows applicationWindows) {
|
||||||
|
this.window = window;
|
||||||
|
this.applicationWindows = applicationWindows;
|
||||||
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void close() {
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void openVolumePreferences() {
|
||||||
|
applicationWindows.showPreferencesWindow(SelectedPreferencesTab.VOLUME);
|
||||||
|
window.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
package org.cryptomator.ui.dokanysupportend;
|
||||||
|
|
||||||
|
import dagger.Binds;
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import dagger.multibindings.IntoMap;
|
||||||
|
import org.cryptomator.ui.common.DefaultSceneFactory;
|
||||||
|
import org.cryptomator.ui.common.FxController;
|
||||||
|
import org.cryptomator.ui.common.FxControllerKey;
|
||||||
|
import org.cryptomator.ui.common.FxmlFile;
|
||||||
|
import org.cryptomator.ui.common.FxmlLoaderFactory;
|
||||||
|
import org.cryptomator.ui.common.FxmlScene;
|
||||||
|
import org.cryptomator.ui.common.StageFactory;
|
||||||
|
|
||||||
|
import javax.inject.Provider;
|
||||||
|
import javafx.scene.Scene;
|
||||||
|
import javafx.stage.Modality;
|
||||||
|
import javafx.stage.Stage;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
abstract class DokanySupportEndModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@DokanySupportEndWindow
|
||||||
|
@DokanySupportEndScoped
|
||||||
|
static FxmlLoaderFactory provideFxmlLoaderFactory(Map<Class<? extends FxController>, Provider<FxController>> factories, DefaultSceneFactory sceneFactory, ResourceBundle resourceBundle) {
|
||||||
|
return new FxmlLoaderFactory(factories, sceneFactory, resourceBundle);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@DokanySupportEndWindow
|
||||||
|
@DokanySupportEndScoped
|
||||||
|
static Stage provideStage(StageFactory factory, ResourceBundle resourceBundle) {
|
||||||
|
Stage stage = factory.create();
|
||||||
|
stage.setTitle(resourceBundle.getString("dokanySupportEnd.title"));
|
||||||
|
stage.setMinWidth(500);
|
||||||
|
stage.setMinHeight(100);
|
||||||
|
stage.initModality(Modality.APPLICATION_MODAL);
|
||||||
|
return stage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@FxmlScene(FxmlFile.DOKANY_SUPPORT_END)
|
||||||
|
@DokanySupportEndScoped
|
||||||
|
static Scene provideDokanySupportEndScene(@DokanySupportEndWindow FxmlLoaderFactory fxmlLoaders) {
|
||||||
|
return fxmlLoaders.createScene(FxmlFile.DOKANY_SUPPORT_END);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Binds
|
||||||
|
@IntoMap
|
||||||
|
@FxControllerKey(DokanySupportEndController.class)
|
||||||
|
abstract FxController bindDokanySupportEndController(DokanySupportEndController controller);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package org.cryptomator.ui.dokanysupportend;
|
||||||
|
|
||||||
|
import javax.inject.Scope;
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@Scope
|
||||||
|
@Documented
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@interface DokanySupportEndScoped {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package org.cryptomator.ui.dokanysupportend;
|
||||||
|
|
||||||
|
import javax.inject.Qualifier;
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
@Qualifier
|
||||||
|
@Documented
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
@interface DokanySupportEndWindow {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@ package org.cryptomator.ui.fxapp;
|
|||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
import org.cryptomator.common.Environment;
|
import org.cryptomator.common.Environment;
|
||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
|
import org.cryptomator.common.settings.VaultSettings;
|
||||||
import org.cryptomator.ui.traymenu.TrayMenuComponent;
|
import org.cryptomator.ui.traymenu.TrayMenuComponent;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -75,7 +76,27 @@ public class FxApplication {
|
|||||||
appWindows.checkAndShowUpdateReminderWindow();
|
appWindows.checkAndShowUpdateReminderWindow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
migrateAndInformDokanyRemoval();
|
||||||
|
|
||||||
launchEventHandler.startHandlingLaunchEvents();
|
launchEventHandler.startHandlingLaunchEvents();
|
||||||
autoUnlocker.tryUnlockForTimespan(2, TimeUnit.MINUTES);
|
autoUnlocker.tryUnlockForTimespan(2, TimeUnit.MINUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void migrateAndInformDokanyRemoval() {
|
||||||
|
var dokanyProviderId = "org.cryptomator.frontend.dokany.mount.DokanyMountProvider";
|
||||||
|
boolean dokanyFound = false;
|
||||||
|
if (settings.mountService.getValueSafe().equals(dokanyProviderId)) {
|
||||||
|
dokanyFound = true;
|
||||||
|
settings.mountService.set(null);
|
||||||
|
}
|
||||||
|
for (VaultSettings vaultSettings : settings.directories) {
|
||||||
|
if (vaultSettings.mountService.getValueSafe().equals(dokanyProviderId)) {
|
||||||
|
dokanyFound = true;
|
||||||
|
vaultSettings.mountService.set(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dokanyFound) {
|
||||||
|
appWindows.showDokanySupportEndWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package org.cryptomator.ui.fxapp;
|
|||||||
|
|
||||||
import dagger.Module;
|
import dagger.Module;
|
||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
|
import org.cryptomator.ui.dokanysupportend.DokanySupportEndComponent;
|
||||||
import org.cryptomator.ui.error.ErrorComponent;
|
import org.cryptomator.ui.error.ErrorComponent;
|
||||||
import org.cryptomator.ui.health.HealthCheckComponent;
|
import org.cryptomator.ui.health.HealthCheckComponent;
|
||||||
import org.cryptomator.ui.lock.LockComponent;
|
import org.cryptomator.ui.lock.LockComponent;
|
||||||
@@ -33,6 +34,7 @@ import java.io.InputStream;
|
|||||||
ErrorComponent.class, //
|
ErrorComponent.class, //
|
||||||
HealthCheckComponent.class, //
|
HealthCheckComponent.class, //
|
||||||
UpdateReminderComponent.class, //
|
UpdateReminderComponent.class, //
|
||||||
|
DokanySupportEndComponent.class, //
|
||||||
ShareVaultComponent.class})
|
ShareVaultComponent.class})
|
||||||
abstract class FxApplicationModule {
|
abstract class FxApplicationModule {
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import dagger.Lazy;
|
|||||||
import org.cryptomator.common.vaults.Vault;
|
import org.cryptomator.common.vaults.Vault;
|
||||||
import org.cryptomator.common.vaults.VaultState;
|
import org.cryptomator.common.vaults.VaultState;
|
||||||
import org.cryptomator.integrations.tray.TrayIntegrationProvider;
|
import org.cryptomator.integrations.tray.TrayIntegrationProvider;
|
||||||
|
import org.cryptomator.ui.dokanysupportend.DokanySupportEndComponent;
|
||||||
import org.cryptomator.ui.error.ErrorComponent;
|
import org.cryptomator.ui.error.ErrorComponent;
|
||||||
import org.cryptomator.ui.lock.LockComponent;
|
import org.cryptomator.ui.lock.LockComponent;
|
||||||
import org.cryptomator.ui.mainwindow.MainWindowComponent;
|
import org.cryptomator.ui.mainwindow.MainWindowComponent;
|
||||||
@@ -48,6 +49,7 @@ public class FxApplicationWindows {
|
|||||||
private final QuitComponent.Builder quitWindowBuilder;
|
private final QuitComponent.Builder quitWindowBuilder;
|
||||||
private final UnlockComponent.Factory unlockWorkflowFactory;
|
private final UnlockComponent.Factory unlockWorkflowFactory;
|
||||||
private final UpdateReminderComponent.Factory updateReminderWindowBuilder;
|
private final UpdateReminderComponent.Factory updateReminderWindowBuilder;
|
||||||
|
private final DokanySupportEndComponent.Factory dokanySupportEndWindowBuilder;
|
||||||
private final LockComponent.Factory lockWorkflowFactory;
|
private final LockComponent.Factory lockWorkflowFactory;
|
||||||
private final ErrorComponent.Factory errorWindowFactory;
|
private final ErrorComponent.Factory errorWindowFactory;
|
||||||
private final ExecutorService executor;
|
private final ExecutorService executor;
|
||||||
@@ -56,13 +58,14 @@ public class FxApplicationWindows {
|
|||||||
private final FilteredList<Window> visibleWindows;
|
private final FilteredList<Window> visibleWindows;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public FxApplicationWindows(@PrimaryStage Stage primaryStage,
|
public FxApplicationWindows(@PrimaryStage Stage primaryStage, //
|
||||||
Optional<TrayIntegrationProvider> trayIntegration, //
|
Optional<TrayIntegrationProvider> trayIntegration, //
|
||||||
Lazy<MainWindowComponent> mainWindow, //
|
Lazy<MainWindowComponent> mainWindow, //
|
||||||
Lazy<PreferencesComponent> preferencesWindow, //
|
Lazy<PreferencesComponent> preferencesWindow, //
|
||||||
QuitComponent.Builder quitWindowBuilder, //
|
QuitComponent.Builder quitWindowBuilder, //
|
||||||
UnlockComponent.Factory unlockWorkflowFactory, //
|
UnlockComponent.Factory unlockWorkflowFactory, //
|
||||||
UpdateReminderComponent.Factory updateReminderWindowBuilder, //
|
UpdateReminderComponent.Factory updateReminderWindowBuilder, //
|
||||||
|
DokanySupportEndComponent.Factory dokanySupportEndWindowBuilder, //
|
||||||
LockComponent.Factory lockWorkflowFactory, //
|
LockComponent.Factory lockWorkflowFactory, //
|
||||||
ErrorComponent.Factory errorWindowFactory, //
|
ErrorComponent.Factory errorWindowFactory, //
|
||||||
VaultOptionsComponent.Factory vaultOptionsWindow, //
|
VaultOptionsComponent.Factory vaultOptionsWindow, //
|
||||||
@@ -75,6 +78,7 @@ public class FxApplicationWindows {
|
|||||||
this.quitWindowBuilder = quitWindowBuilder;
|
this.quitWindowBuilder = quitWindowBuilder;
|
||||||
this.unlockWorkflowFactory = unlockWorkflowFactory;
|
this.unlockWorkflowFactory = unlockWorkflowFactory;
|
||||||
this.updateReminderWindowBuilder = updateReminderWindowBuilder;
|
this.updateReminderWindowBuilder = updateReminderWindowBuilder;
|
||||||
|
this.dokanySupportEndWindowBuilder = dokanySupportEndWindowBuilder;
|
||||||
this.lockWorkflowFactory = lockWorkflowFactory;
|
this.lockWorkflowFactory = lockWorkflowFactory;
|
||||||
this.errorWindowFactory = errorWindowFactory;
|
this.errorWindowFactory = errorWindowFactory;
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
@@ -142,6 +146,11 @@ public class FxApplicationWindows {
|
|||||||
CompletableFuture.runAsync(() -> updateReminderWindowBuilder.create().checkAndShowUpdateReminderWindow(), Platform::runLater);
|
CompletableFuture.runAsync(() -> updateReminderWindowBuilder.create().checkAndShowUpdateReminderWindow(), Platform::runLater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showDokanySupportEndWindow() {
|
||||||
|
CompletableFuture.runAsync(() -> dokanySupportEndWindowBuilder.create().showDokanySupportEndWindow(), Platform::runLater);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public CompletionStage<Void> startUnlockWorkflow(Vault vault, @Nullable Stage owner) {
|
public CompletionStage<Void> startUnlockWorkflow(Vault vault, @Nullable Stage owner) {
|
||||||
return CompletableFuture.supplyAsync(() -> {
|
return CompletableFuture.supplyAsync(() -> {
|
||||||
Preconditions.checkState(vault.stateProperty().transition(VaultState.Value.LOCKED, VaultState.Value.PROCESSING), "Vault not locked.");
|
Preconditions.checkState(vault.stateProperty().transition(VaultState.Value.LOCKED, VaultState.Value.PROCESSING), "Vault not locked.");
|
||||||
|
|||||||
@@ -1,45 +1,57 @@
|
|||||||
package org.cryptomator.ui.fxapp;
|
package org.cryptomator.ui.fxapp;
|
||||||
|
|
||||||
import org.cryptomator.common.Environment;
|
import org.cryptomator.common.Environment;
|
||||||
|
import org.cryptomator.common.SemVerComparator;
|
||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.binding.BooleanBinding;
|
import javafx.beans.binding.BooleanBinding;
|
||||||
|
import javafx.beans.property.ObjectProperty;
|
||||||
import javafx.beans.property.ReadOnlyStringProperty;
|
import javafx.beans.property.ReadOnlyStringProperty;
|
||||||
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
|
import javafx.beans.property.SimpleStringProperty;
|
||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
import javafx.concurrent.ScheduledService;
|
import javafx.concurrent.ScheduledService;
|
||||||
import javafx.concurrent.Worker;
|
import javafx.concurrent.Worker;
|
||||||
import javafx.concurrent.WorkerStateEvent;
|
import javafx.concurrent.WorkerStateEvent;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
||||||
@FxApplicationScoped
|
@FxApplicationScoped
|
||||||
public class UpdateChecker {
|
public class UpdateChecker {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(UpdateChecker.class);
|
private static final Logger LOG = LoggerFactory.getLogger(UpdateChecker.class);
|
||||||
private static final Duration AUTOCHECK_DELAY = Duration.seconds(5);
|
private static final Duration AUTO_CHECK_DELAY = Duration.seconds(5);
|
||||||
|
|
||||||
private final Environment env;
|
private final Environment env;
|
||||||
private final Settings settings;
|
private final Settings settings;
|
||||||
private final StringProperty latestVersionProperty;
|
private final StringProperty latestVersion = new SimpleStringProperty();
|
||||||
private final Comparator<String> semVerComparator;
|
|
||||||
private final ScheduledService<String> updateCheckerService;
|
private final ScheduledService<String> updateCheckerService;
|
||||||
|
private final ObjectProperty<UpdateCheckState> state = new SimpleObjectProperty<>(UpdateCheckState.NOT_CHECKED);
|
||||||
|
private final ObjectProperty<Instant> lastSuccessfulUpdateCheck;
|
||||||
|
private final Comparator<String> versionComparator = new SemVerComparator();
|
||||||
|
private final BooleanBinding updateAvailable;
|
||||||
|
private final BooleanBinding checkFailed;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UpdateChecker(Settings settings, Environment env, @Named("latestVersion") StringProperty latestVersionProperty, @Named("SemVer") Comparator<String> semVerComparator, ScheduledService<String> updateCheckerService) {
|
UpdateChecker(Settings settings, //
|
||||||
|
Environment env, //
|
||||||
|
ScheduledService<String> updateCheckerService) {
|
||||||
this.env = env;
|
this.env = env;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.latestVersionProperty = latestVersionProperty;
|
|
||||||
this.semVerComparator = semVerComparator;
|
|
||||||
this.updateCheckerService = updateCheckerService;
|
this.updateCheckerService = updateCheckerService;
|
||||||
|
this.lastSuccessfulUpdateCheck = settings.lastSuccessfulUpdateCheck;
|
||||||
|
this.updateAvailable = Bindings.createBooleanBinding(this::isUpdateAvailable, latestVersion);
|
||||||
|
this.checkFailed = Bindings.equal(UpdateCheckState.CHECK_FAILED, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void automaticallyCheckForUpdatesIfEnabled() {
|
public void automaticallyCheckForUpdatesIfEnabled() {
|
||||||
if (!env.disableUpdateCheck() && settings.checkForUpdates.get()) {
|
if (!env.disableUpdateCheck() && settings.checkForUpdates.get()) {
|
||||||
startCheckingForUpdates(AUTOCHECK_DELAY);
|
startCheckingForUpdates(AUTO_CHECK_DELAY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,36 +71,65 @@ public class UpdateChecker {
|
|||||||
|
|
||||||
private void checkStarted(WorkerStateEvent event) {
|
private void checkStarted(WorkerStateEvent event) {
|
||||||
LOG.debug("Checking for updates...");
|
LOG.debug("Checking for updates...");
|
||||||
|
state.set(UpdateCheckState.IS_CHECKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkSucceeded(WorkerStateEvent event) {
|
private void checkSucceeded(WorkerStateEvent event) {
|
||||||
String latestVersion = updateCheckerService.getValue();
|
var latestVersionString = updateCheckerService.getValue();
|
||||||
LOG.info("Current version: {}, lastest version: {}", getCurrentVersion(), latestVersion);
|
LOG.info("Current version: {}, latest version: {}", getCurrentVersion(), latestVersionString);
|
||||||
|
lastSuccessfulUpdateCheck.set(Instant.now());
|
||||||
if (semVerComparator.compare(getCurrentVersion(), latestVersion) < 0) {
|
latestVersion.set(latestVersionString);
|
||||||
// update is available
|
state.set(UpdateCheckState.CHECK_SUCCESSFUL);
|
||||||
latestVersionProperty.set(latestVersion);
|
|
||||||
} else {
|
|
||||||
latestVersionProperty.set(null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkFailed(WorkerStateEvent event) {
|
private void checkFailed(WorkerStateEvent event) {
|
||||||
LOG.warn("Error checking for updates", event.getSource().getException());
|
state.set(UpdateCheckState.CHECK_FAILED);
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum UpdateCheckState {
|
||||||
|
NOT_CHECKED,
|
||||||
|
IS_CHECKING,
|
||||||
|
CHECK_SUCCESSFUL,
|
||||||
|
CHECK_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Observable Properties */
|
/* Observable Properties */
|
||||||
|
|
||||||
public BooleanBinding checkingForUpdatesProperty() {
|
public BooleanBinding checkingForUpdatesProperty() {
|
||||||
return updateCheckerService.stateProperty().isEqualTo(Worker.State.RUNNING);
|
return updateCheckerService.stateProperty().isEqualTo(Worker.State.RUNNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReadOnlyStringProperty latestVersionProperty() {
|
public ReadOnlyStringProperty latestVersionProperty() {
|
||||||
return latestVersionProperty;
|
return latestVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BooleanBinding updateAvailableProperty() {
|
||||||
|
return updateAvailable;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BooleanBinding checkFailedProperty() {
|
||||||
|
return checkFailed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUpdateAvailable() {
|
||||||
|
String currentVersion = getCurrentVersion();
|
||||||
|
String latestVersionString = latestVersion.get();
|
||||||
|
|
||||||
|
if (currentVersion == null || latestVersionString == null) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return versionComparator.compare(currentVersion, latestVersionString) < 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObjectProperty<Instant> lastSuccessfulUpdateCheckProperty() {
|
||||||
|
return lastSuccessfulUpdateCheck;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObjectProperty<UpdateCheckState> updateCheckStateProperty() {
|
||||||
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCurrentVersion() {
|
public String getCurrentVersion() {
|
||||||
return env.getAppVersion();
|
return env.getAppVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,6 @@ import org.slf4j.LoggerFactory;
|
|||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.binding.ObjectBinding;
|
import javafx.beans.binding.ObjectBinding;
|
||||||
import javafx.beans.property.SimpleStringProperty;
|
|
||||||
import javafx.beans.property.StringProperty;
|
|
||||||
import javafx.concurrent.ScheduledService;
|
import javafx.concurrent.ScheduledService;
|
||||||
import javafx.concurrent.Task;
|
import javafx.concurrent.Task;
|
||||||
import javafx.util.Duration;
|
import javafx.util.Duration;
|
||||||
@@ -32,13 +30,6 @@ public abstract class UpdateCheckerModule {
|
|||||||
private static final Duration UPDATE_CHECK_INTERVAL = Duration.hours(3);
|
private static final Duration UPDATE_CHECK_INTERVAL = Duration.hours(3);
|
||||||
private static final Duration DISABLED_UPDATE_CHECK_INTERVAL = Duration.hours(100000); // Duration.INDEFINITE leads to overflows...
|
private static final Duration DISABLED_UPDATE_CHECK_INTERVAL = Duration.hours(100000); // Duration.INDEFINITE leads to overflows...
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Named("latestVersion")
|
|
||||||
@FxApplicationScoped
|
|
||||||
static StringProperty provideLatestVersion() {
|
|
||||||
return new SimpleStringProperty();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@FxApplicationScoped
|
@FxApplicationScoped
|
||||||
static Optional<HttpClient> provideHttpClient() {
|
static Optional<HttpClient> provideHttpClient() {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class MainWindowTitleController implements FxController {
|
|||||||
this.appWindows = appWindows;
|
this.appWindows = appWindows;
|
||||||
this.trayMenuInitialized = trayMenu.isInitialized();
|
this.trayMenuInitialized = trayMenu.isInitialized();
|
||||||
this.updateChecker = updateChecker;
|
this.updateChecker = updateChecker;
|
||||||
this.updateAvailable = updateChecker.latestVersionProperty().isNotNull();
|
this.updateAvailable = updateChecker.updateAvailableProperty();
|
||||||
this.licenseHolder = licenseHolder;
|
this.licenseHolder = licenseHolder;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.showMinimizeButton = Bindings.createBooleanBinding(this::isShowMinimizeButton, settings.showMinimizeButton, settings.showTrayIcon);
|
this.showMinimizeButton = Bindings.createBooleanBinding(this::isShowMinimizeButton, settings.showMinimizeButton, settings.showTrayIcon);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import org.cryptomator.cryptofs.CryptoFileSystemProvider;
|
|||||||
import org.cryptomator.cryptofs.DirStructure;
|
import org.cryptomator.cryptofs.DirStructure;
|
||||||
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
|
import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
|
||||||
import org.cryptomator.ui.common.FxController;
|
import org.cryptomator.ui.common.FxController;
|
||||||
|
import org.cryptomator.ui.common.VaultService;
|
||||||
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
||||||
import org.cryptomator.ui.removevault.RemoveVaultComponent;
|
import org.cryptomator.ui.removevault.RemoveVaultComponent;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -58,6 +59,7 @@ public class VaultListController implements FxController {
|
|||||||
|
|
||||||
private final Stage mainWindow;
|
private final Stage mainWindow;
|
||||||
private final ObservableList<Vault> vaults;
|
private final ObservableList<Vault> vaults;
|
||||||
|
private final VaultService vaultService;
|
||||||
private final ObjectProperty<Vault> selectedVault;
|
private final ObjectProperty<Vault> selectedVault;
|
||||||
private final VaultListCellFactory cellFactory;
|
private final VaultListCellFactory cellFactory;
|
||||||
private final AddVaultWizardComponent.Builder addVaultWizard;
|
private final AddVaultWizardComponent.Builder addVaultWizard;
|
||||||
@@ -79,6 +81,7 @@ public class VaultListController implements FxController {
|
|||||||
ObservableList<Vault> vaults, //
|
ObservableList<Vault> vaults, //
|
||||||
ObjectProperty<Vault> selectedVault, //
|
ObjectProperty<Vault> selectedVault, //
|
||||||
VaultListCellFactory cellFactory, //
|
VaultListCellFactory cellFactory, //
|
||||||
|
VaultService vaultService, //
|
||||||
AddVaultWizardComponent.Builder addVaultWizard, //
|
AddVaultWizardComponent.Builder addVaultWizard, //
|
||||||
RemoveVaultComponent.Builder removeVaultDialogue, //
|
RemoveVaultComponent.Builder removeVaultDialogue, //
|
||||||
VaultListManager vaultListManager, //
|
VaultListManager vaultListManager, //
|
||||||
@@ -88,6 +91,7 @@ public class VaultListController implements FxController {
|
|||||||
this.vaults = vaults;
|
this.vaults = vaults;
|
||||||
this.selectedVault = selectedVault;
|
this.selectedVault = selectedVault;
|
||||||
this.cellFactory = cellFactory;
|
this.cellFactory = cellFactory;
|
||||||
|
this.vaultService = vaultService;
|
||||||
this.addVaultWizard = addVaultWizard;
|
this.addVaultWizard = addVaultWizard;
|
||||||
this.removeVaultDialogue = removeVaultDialogue;
|
this.removeVaultDialogue = removeVaultDialogue;
|
||||||
this.vaultListManager = vaultListManager;
|
this.vaultListManager = vaultListManager;
|
||||||
@@ -119,6 +123,9 @@ public class VaultListController implements FxController {
|
|||||||
Optional.ofNullable(selectedVault.get())
|
Optional.ofNullable(selectedVault.get())
|
||||||
.filter(Vault::isLocked)
|
.filter(Vault::isLocked)
|
||||||
.ifPresent(vault -> appWindows.startUnlockWorkflow(vault, mainWindow));
|
.ifPresent(vault -> appWindows.startUnlockWorkflow(vault, mainWindow));
|
||||||
|
Optional.ofNullable(selectedVault.get())
|
||||||
|
.filter(Vault::isUnlocked)
|
||||||
|
.ifPresent(vaultService::reveal);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ import org.cryptomator.common.Environment;
|
|||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.cryptomator.integrations.autostart.AutoStartProvider;
|
import org.cryptomator.integrations.autostart.AutoStartProvider;
|
||||||
import org.cryptomator.integrations.autostart.ToggleAutoStartFailedException;
|
import org.cryptomator.integrations.autostart.ToggleAutoStartFailedException;
|
||||||
|
import org.cryptomator.integrations.common.NamedServiceProvider;
|
||||||
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
|
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
|
||||||
|
import org.cryptomator.integrations.quickaccess.QuickAccessService;
|
||||||
import org.cryptomator.ui.common.FxController;
|
import org.cryptomator.ui.common.FxController;
|
||||||
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
import org.cryptomator.ui.fxapp.FxApplicationWindows;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -30,12 +32,15 @@ public class GeneralPreferencesController implements FxController {
|
|||||||
private final Stage window;
|
private final Stage window;
|
||||||
private final Settings settings;
|
private final Settings settings;
|
||||||
private final Optional<AutoStartProvider> autoStartProvider;
|
private final Optional<AutoStartProvider> autoStartProvider;
|
||||||
|
private final List<QuickAccessService> quickAccessServices;
|
||||||
private final Application application;
|
private final Application application;
|
||||||
private final Environment environment;
|
private final Environment environment;
|
||||||
private final List<KeychainAccessProvider> keychainAccessProviders;
|
private final List<KeychainAccessProvider> keychainAccessProviders;
|
||||||
private final FxApplicationWindows appWindows;
|
private final FxApplicationWindows appWindows;
|
||||||
public CheckBox useKeychainCheckbox;
|
public CheckBox useKeychainCheckbox;
|
||||||
public ChoiceBox<KeychainAccessProvider> keychainBackendChoiceBox;
|
public ChoiceBox<KeychainAccessProvider> keychainBackendChoiceBox;
|
||||||
|
public CheckBox useQuickAccessCheckbox;
|
||||||
|
public ChoiceBox<QuickAccessService> quickAccessServiceChoiceBox;
|
||||||
public CheckBox startHiddenCheckbox;
|
public CheckBox startHiddenCheckbox;
|
||||||
public CheckBox autoCloseVaultsCheckbox;
|
public CheckBox autoCloseVaultsCheckbox;
|
||||||
public CheckBox debugModeCheckbox;
|
public CheckBox debugModeCheckbox;
|
||||||
@@ -48,6 +53,7 @@ public class GeneralPreferencesController implements FxController {
|
|||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.autoStartProvider = autoStartProvider;
|
this.autoStartProvider = autoStartProvider;
|
||||||
this.keychainAccessProviders = keychainAccessProviders;
|
this.keychainAccessProviders = keychainAccessProviders;
|
||||||
|
this.quickAccessServices = QuickAccessService.get().toList();
|
||||||
this.application = application;
|
this.application = application;
|
||||||
this.environment = environment;
|
this.environment = environment;
|
||||||
this.appWindows = appWindows;
|
this.appWindows = appWindows;
|
||||||
@@ -60,13 +66,21 @@ public class GeneralPreferencesController implements FxController {
|
|||||||
debugModeCheckbox.selectedProperty().bindBidirectional(settings.debugMode);
|
debugModeCheckbox.selectedProperty().bindBidirectional(settings.debugMode);
|
||||||
autoStartProvider.ifPresent(autoStart -> autoStartCheckbox.setSelected(autoStart.isEnabled()));
|
autoStartProvider.ifPresent(autoStart -> autoStartCheckbox.setSelected(autoStart.isEnabled()));
|
||||||
|
|
||||||
var keychainSettingsConverter = new KeychainProviderClassNameConverter(keychainAccessProviders);
|
var keychainSettingsConverter = new ServiceToSettingsConverter<>(keychainAccessProviders);
|
||||||
keychainBackendChoiceBox.getItems().addAll(keychainAccessProviders);
|
keychainBackendChoiceBox.getItems().addAll(keychainAccessProviders);
|
||||||
keychainBackendChoiceBox.setValue(keychainSettingsConverter.fromString(settings.keychainProvider.get()));
|
keychainBackendChoiceBox.setValue(keychainSettingsConverter.fromString(settings.keychainProvider.get()));
|
||||||
keychainBackendChoiceBox.setConverter(new KeychainProviderDisplayNameConverter());
|
keychainBackendChoiceBox.setConverter(new KeychainProviderDisplayNameConverter());
|
||||||
Bindings.bindBidirectional(settings.keychainProvider, keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter);
|
Bindings.bindBidirectional(settings.keychainProvider, keychainBackendChoiceBox.valueProperty(), keychainSettingsConverter);
|
||||||
useKeychainCheckbox.selectedProperty().bindBidirectional(settings.useKeychain);
|
useKeychainCheckbox.selectedProperty().bindBidirectional(settings.useKeychain);
|
||||||
keychainBackendChoiceBox.disableProperty().bind(useKeychainCheckbox.selectedProperty().not());
|
keychainBackendChoiceBox.disableProperty().bind(useKeychainCheckbox.selectedProperty().not());
|
||||||
|
|
||||||
|
useQuickAccessCheckbox.selectedProperty().bindBidirectional(settings.useQuickAccess);
|
||||||
|
var quickAccessSettingsConverter = new ServiceToSettingsConverter<>(quickAccessServices);
|
||||||
|
quickAccessServiceChoiceBox.getItems().addAll(quickAccessServices);
|
||||||
|
quickAccessServiceChoiceBox.setValue(quickAccessSettingsConverter.fromString(settings.quickAccessService.get()));
|
||||||
|
quickAccessServiceChoiceBox.setConverter(new NamedServiceConverter<>());
|
||||||
|
Bindings.bindBidirectional(settings.quickAccessService, quickAccessServiceChoiceBox.valueProperty(), quickAccessSettingsConverter);
|
||||||
|
quickAccessServiceChoiceBox.disableProperty().bind(useQuickAccessCheckbox.selectedProperty().not());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAutoStartSupported() {
|
public boolean isAutoStartSupported() {
|
||||||
@@ -91,6 +105,10 @@ public class GeneralPreferencesController implements FxController {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSomeQuickAccessServiceAvailable() {
|
||||||
|
return !quickAccessServices.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void showLogfileDirectory() {
|
public void showLogfileDirectory() {
|
||||||
environment.getLogDir().ifPresent(logDirPath -> application.getHostServices().showDocument(logDirPath.toUri().toString()));
|
environment.getLogDir().ifPresent(logDirPath -> application.getHostServices().showDocument(logDirPath.toUri().toString()));
|
||||||
@@ -116,29 +134,47 @@ public class GeneralPreferencesController implements FxController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class KeychainProviderClassNameConverter extends StringConverter<KeychainAccessProvider> {
|
private static class NamedServiceConverter<T extends NamedServiceProvider> extends StringConverter<T> {
|
||||||
|
|
||||||
private final List<KeychainAccessProvider> keychainAccessProviders;
|
|
||||||
|
|
||||||
public KeychainProviderClassNameConverter(List<KeychainAccessProvider> keychainAccessProviders) {
|
|
||||||
this.keychainAccessProviders = keychainAccessProviders;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString(KeychainAccessProvider provider) {
|
public String toString(T namedService) {
|
||||||
if (provider == null) {
|
if (namedService == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return provider.getClass().getName();
|
return namedService.getName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KeychainAccessProvider fromString(String string) {
|
public T fromString(String string) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ServiceToSettingsConverter<T> extends StringConverter<T> {
|
||||||
|
|
||||||
|
private final List<T> services;
|
||||||
|
|
||||||
|
public ServiceToSettingsConverter(List<T> services) {
|
||||||
|
this.services = services;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString(T service) {
|
||||||
|
if (service == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return service.getClass().getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public T fromString(String string) {
|
||||||
if (string == null) {
|
if (string == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return keychainAccessProviders.stream().filter(provider -> provider.getClass().getName().equals(string)).findAny().orElse(null);
|
return services.stream().filter(provider -> provider.getClass().getName().equals(string)).findAny().orElse(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ public interface PreferencesComponent {
|
|||||||
selectedTabProperty().set(selectedTab);
|
selectedTabProperty().set(selectedTab);
|
||||||
Stage stage = window();
|
Stage stage = window();
|
||||||
stage.setScene(scene().get());
|
stage.setScene(scene().get());
|
||||||
|
stage.setMinWidth(420);
|
||||||
|
stage.setMinHeight(300);
|
||||||
stage.show();
|
stage.show();
|
||||||
stage.requestFocus();
|
stage.requestFocus();
|
||||||
return stage;
|
return stage;
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class PreferencesController implements FxController {
|
|||||||
this.env = env;
|
this.env = env;
|
||||||
this.window = window;
|
this.window = window;
|
||||||
this.selectedTabProperty = selectedTabProperty;
|
this.selectedTabProperty = selectedTabProperty;
|
||||||
this.updateAvailable = updateChecker.latestVersionProperty().isNotNull();
|
this.updateAvailable = updateChecker.updateAvailableProperty();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
|
|||||||
@@ -1,18 +1,33 @@
|
|||||||
package org.cryptomator.ui.preferences;
|
package org.cryptomator.ui.preferences;
|
||||||
|
|
||||||
|
import org.cryptomator.common.Environment;
|
||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.cryptomator.ui.common.FxController;
|
import org.cryptomator.ui.common.FxController;
|
||||||
import org.cryptomator.ui.fxapp.UpdateChecker;
|
import org.cryptomator.ui.fxapp.UpdateChecker;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javafx.animation.PauseTransition;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.binding.BooleanBinding;
|
import javafx.beans.binding.BooleanBinding;
|
||||||
import javafx.beans.binding.ObjectBinding;
|
import javafx.beans.binding.ObjectBinding;
|
||||||
|
import javafx.beans.binding.StringBinding;
|
||||||
|
import javafx.beans.property.BooleanProperty;
|
||||||
import javafx.beans.property.ReadOnlyStringProperty;
|
import javafx.beans.property.ReadOnlyStringProperty;
|
||||||
|
import javafx.beans.property.SimpleBooleanProperty;
|
||||||
|
import javafx.beans.value.ObservableValue;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.CheckBox;
|
import javafx.scene.control.CheckBox;
|
||||||
import javafx.scene.control.ContentDisplay;
|
import javafx.scene.control.ContentDisplay;
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.FormatStyle;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
|
||||||
@PreferencesScoped
|
@PreferencesScoped
|
||||||
public class UpdatesPreferencesController implements FxController {
|
public class UpdatesPreferencesController implements FxController {
|
||||||
@@ -20,29 +35,55 @@ public class UpdatesPreferencesController implements FxController {
|
|||||||
private static final String DOWNLOADS_URI = "https://cryptomator.org/downloads";
|
private static final String DOWNLOADS_URI = "https://cryptomator.org/downloads";
|
||||||
|
|
||||||
private final Application application;
|
private final Application application;
|
||||||
|
private final Environment environment;
|
||||||
|
private final ResourceBundle resourceBundle;
|
||||||
private final Settings settings;
|
private final Settings settings;
|
||||||
private final UpdateChecker updateChecker;
|
private final UpdateChecker updateChecker;
|
||||||
private final ObjectBinding<ContentDisplay> checkForUpdatesButtonState;
|
private final ObjectBinding<ContentDisplay> checkForUpdatesButtonState;
|
||||||
private final ReadOnlyStringProperty latestVersion;
|
private final ReadOnlyStringProperty latestVersion;
|
||||||
|
private final ObservableValue<Instant> lastSuccessfulUpdateCheck;
|
||||||
|
private final StringBinding lastUpdateCheckMessage;
|
||||||
|
private final ObservableValue<String> timeDifferenceMessage;
|
||||||
private final String currentVersion;
|
private final String currentVersion;
|
||||||
private final BooleanBinding updateAvailable;
|
private final BooleanBinding updateAvailable;
|
||||||
|
private final BooleanBinding checkFailed;
|
||||||
|
private final BooleanProperty upToDateLabelVisible = new SimpleBooleanProperty(false);
|
||||||
|
private final DateTimeFormatter formatter;
|
||||||
|
private final BooleanBinding upToDate;
|
||||||
|
|
||||||
/* FXML */
|
/* FXML */
|
||||||
public CheckBox checkForUpdatesCheckbox;
|
public CheckBox checkForUpdatesCheckbox;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UpdatesPreferencesController(Application application, Settings settings, UpdateChecker updateChecker) {
|
UpdatesPreferencesController(Application application, Environment environment, ResourceBundle resourceBundle, Settings settings, UpdateChecker updateChecker) {
|
||||||
this.application = application;
|
this.application = application;
|
||||||
|
this.environment = environment;
|
||||||
|
this.resourceBundle = resourceBundle;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.updateChecker = updateChecker;
|
this.updateChecker = updateChecker;
|
||||||
this.checkForUpdatesButtonState = Bindings.when(updateChecker.checkingForUpdatesProperty()).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
this.checkForUpdatesButtonState = Bindings.when(updateChecker.checkingForUpdatesProperty()).then(ContentDisplay.LEFT).otherwise(ContentDisplay.TEXT_ONLY);
|
||||||
this.latestVersion = updateChecker.latestVersionProperty();
|
this.latestVersion = updateChecker.latestVersionProperty();
|
||||||
this.updateAvailable = latestVersion.isNotNull();
|
this.lastSuccessfulUpdateCheck = updateChecker.lastSuccessfulUpdateCheckProperty();
|
||||||
|
this.timeDifferenceMessage = Bindings.createStringBinding(this::getTimeDifferenceMessage, lastSuccessfulUpdateCheck);
|
||||||
this.currentVersion = updateChecker.getCurrentVersion();
|
this.currentVersion = updateChecker.getCurrentVersion();
|
||||||
|
this.updateAvailable = updateChecker.updateAvailableProperty();
|
||||||
|
this.formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withLocale(Locale.getDefault());
|
||||||
|
this.upToDate = updateChecker.updateCheckStateProperty().isEqualTo(UpdateChecker.UpdateCheckState.CHECK_SUCCESSFUL).and(latestVersion.isEqualTo(currentVersion));
|
||||||
|
this.checkFailed = updateChecker.checkFailedProperty();
|
||||||
|
this.lastUpdateCheckMessage = Bindings.createStringBinding(this::getLastUpdateCheckMessage, lastSuccessfulUpdateCheck);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
checkForUpdatesCheckbox.selectedProperty().bindBidirectional(settings.checkForUpdates);
|
checkForUpdatesCheckbox.selectedProperty().bindBidirectional(settings.checkForUpdates);
|
||||||
|
|
||||||
|
upToDate.addListener((_, _, newVal) -> {
|
||||||
|
if (newVal) {
|
||||||
|
upToDateLabelVisible.set(true);
|
||||||
|
PauseTransition delay = new PauseTransition(javafx.util.Duration.seconds(5));
|
||||||
|
delay.setOnFinished(_ -> upToDateLabelVisible.set(false));
|
||||||
|
delay.play();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
@@ -55,6 +96,11 @@ public class UpdatesPreferencesController implements FxController {
|
|||||||
application.getHostServices().showDocument(DOWNLOADS_URI);
|
application.getHostServices().showDocument(DOWNLOADS_URI);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
public void showLogfileDirectory() {
|
||||||
|
environment.getLogDir().ifPresent(logDirPath -> application.getHostServices().showDocument(logDirPath.toUri().toString()));
|
||||||
|
}
|
||||||
|
|
||||||
/* Observable Properties */
|
/* Observable Properties */
|
||||||
|
|
||||||
public ObjectBinding<ContentDisplay> checkForUpdatesButtonStateProperty() {
|
public ObjectBinding<ContentDisplay> checkForUpdatesButtonStateProperty() {
|
||||||
@@ -77,6 +123,46 @@ public class UpdatesPreferencesController implements FxController {
|
|||||||
return currentVersion;
|
return currentVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StringBinding lastUpdateCheckMessageProperty() {
|
||||||
|
return lastUpdateCheckMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastUpdateCheckMessage() {
|
||||||
|
Instant lastCheck = lastSuccessfulUpdateCheck.getValue();
|
||||||
|
if (lastCheck != null && !lastCheck.equals(Settings.DEFAULT_TIMESTAMP)) {
|
||||||
|
return formatter.format(LocalDateTime.ofInstant(lastCheck, ZoneId.systemDefault()));
|
||||||
|
} else {
|
||||||
|
return "-";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObservableValue<String> timeDifferenceMessageProperty() {
|
||||||
|
return timeDifferenceMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTimeDifferenceMessage() {
|
||||||
|
var lastSuccessCheck = lastSuccessfulUpdateCheck.getValue();
|
||||||
|
var duration = Duration.between(lastSuccessCheck, Instant.now());
|
||||||
|
var hours = duration.toHours();
|
||||||
|
if (lastSuccessCheck.equals(Settings.DEFAULT_TIMESTAMP)) {
|
||||||
|
return resourceBundle.getString("preferences.updates.lastUpdateCheck.never");
|
||||||
|
} else if (hours < 1) {
|
||||||
|
return resourceBundle.getString("preferences.updates.lastUpdateCheck.recently");
|
||||||
|
} else if (hours < 24) {
|
||||||
|
return String.format(resourceBundle.getString("preferences.updates.lastUpdateCheck.hoursAgo"), hours);
|
||||||
|
} else {
|
||||||
|
return String.format(resourceBundle.getString("preferences.updates.lastUpdateCheck.daysAgo"), duration.toDays());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BooleanProperty upToDateLabelVisibleProperty() {
|
||||||
|
return upToDateLabelVisible;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUpToDateLabelVisible() {
|
||||||
|
return upToDateLabelVisible.get();
|
||||||
|
}
|
||||||
|
|
||||||
public BooleanBinding updateAvailableProperty() {
|
public BooleanBinding updateAvailableProperty() {
|
||||||
return updateAvailable;
|
return updateAvailable;
|
||||||
}
|
}
|
||||||
@@ -84,4 +170,13 @@ public class UpdatesPreferencesController implements FxController {
|
|||||||
public boolean isUpdateAvailable() {
|
public boolean isUpdateAvailable() {
|
||||||
return updateAvailable.get();
|
return updateAvailable.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BooleanBinding checkFailedProperty() {
|
||||||
|
return checkFailed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCheckFailed() {
|
||||||
|
return checkFailed.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ import org.cryptomator.ui.common.FxmlScene;
|
|||||||
|
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import java.time.LocalDate;
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
@UpdateReminderScoped
|
@UpdateReminderScoped
|
||||||
@Subcomponent(modules = {UpdateReminderModule.class})
|
@Subcomponent(modules = {UpdateReminderModule.class})
|
||||||
@@ -23,7 +24,8 @@ public interface UpdateReminderComponent {
|
|||||||
Settings settings();
|
Settings settings();
|
||||||
|
|
||||||
default void checkAndShowUpdateReminderWindow() {
|
default void checkAndShowUpdateReminderWindow() {
|
||||||
if (LocalDate.parse(settings().lastUpdateCheck.get()).isBefore(LocalDate.now().minusDays(14)) && !settings().checkForUpdates.getValue()) {
|
var now = Instant.now();
|
||||||
|
if (!settings().checkForUpdates.getValue() && settings().lastSuccessfulUpdateCheck.get().isBefore(now.minus(Duration.ofDays(14)))) {
|
||||||
Stage stage = window();
|
Stage stage = window();
|
||||||
stage.setScene(updateReminderScene().get());
|
stage.setScene(updateReminderScene().get());
|
||||||
stage.sizeToScene();
|
stage.sizeToScene();
|
||||||
@@ -33,6 +35,7 @@ public interface UpdateReminderComponent {
|
|||||||
|
|
||||||
@Subcomponent.Factory
|
@Subcomponent.Factory
|
||||||
interface Factory {
|
interface Factory {
|
||||||
|
|
||||||
UpdateReminderComponent create();
|
UpdateReminderComponent create();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,8 +7,6 @@ import org.cryptomator.ui.fxapp.UpdateChecker;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
|
|
||||||
@UpdateReminderScoped
|
@UpdateReminderScoped
|
||||||
public class UpdateReminderController implements FxController {
|
public class UpdateReminderController implements FxController {
|
||||||
@@ -27,20 +25,17 @@ public class UpdateReminderController implements FxController {
|
|||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void cancel() {
|
public void cancel() {
|
||||||
settings.lastUpdateCheck.set(LocalDate.now().format(DateTimeFormatter.ISO_DATE));
|
|
||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void once() {
|
public void once() {
|
||||||
settings.lastUpdateCheck.set(LocalDate.now().format(DateTimeFormatter.ISO_DATE));
|
|
||||||
updateChecker.checkForUpdatesNow();
|
updateChecker.checkForUpdatesNow();
|
||||||
window.close();
|
window.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public void automatically() {
|
public void automatically() {
|
||||||
settings.lastUpdateCheck.set(LocalDate.now().format(DateTimeFormatter.ISO_DATE));
|
|
||||||
updateChecker.checkForUpdatesNow();
|
updateChecker.checkForUpdatesNow();
|
||||||
settings.checkForUpdates.set(true);
|
settings.checkForUpdates.set(true);
|
||||||
window.close();
|
window.close();
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
|
<?import javafx.scene.control.Button?>
|
||||||
|
<?import javafx.scene.control.ButtonBar?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.Group?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
|
<?import javafx.scene.layout.Region?>
|
||||||
|
<?import javafx.scene.layout.StackPane?>
|
||||||
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.shape.Circle?>
|
||||||
|
<HBox xmlns:fx="http://javafx.com/fxml"
|
||||||
|
xmlns="http://javafx.com/javafx"
|
||||||
|
fx:controller="org.cryptomator.ui.dokanysupportend.DokanySupportEndController"
|
||||||
|
minWidth="500"
|
||||||
|
prefWidth="500"
|
||||||
|
minHeight="145"
|
||||||
|
spacing="12"
|
||||||
|
alignment="TOP_LEFT">
|
||||||
|
<padding>
|
||||||
|
<Insets topRightBottomLeft="12"/>
|
||||||
|
</padding>
|
||||||
|
<children>
|
||||||
|
<Group>
|
||||||
|
<StackPane>
|
||||||
|
<padding>
|
||||||
|
<Insets topRightBottomLeft="6"/>
|
||||||
|
</padding>
|
||||||
|
<Circle styleClass="glyph-icon-primary" radius="24"/>
|
||||||
|
<FontAwesome5IconView styleClass="glyph-icon-white" glyph="EXCLAMATION" glyphSize="24"/>
|
||||||
|
</StackPane>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
<VBox HBox.hgrow="ALWAYS">
|
||||||
|
<Label styleClass="label-large" text="%dokanySupportEnd.message" wrapText="true">
|
||||||
|
<padding>
|
||||||
|
<Insets bottom="6" top="6"/>
|
||||||
|
</padding>
|
||||||
|
</Label>
|
||||||
|
<Label text="%dokanySupportEnd.description" wrapText="true"/>
|
||||||
|
<Region VBox.vgrow="ALWAYS" minHeight="18"/>
|
||||||
|
<ButtonBar buttonMinWidth="120" buttonOrder="+UC">
|
||||||
|
<buttons>
|
||||||
|
<Button text="%dokanySupportEnd.preferencesBtn" ButtonBar.buttonData="OTHER" cancelButton="true" onAction="#openVolumePreferences"/>
|
||||||
|
<Button text="%generic.button.close" ButtonBar.buttonData="CANCEL_CLOSE" cancelButton="true" onAction="#close" defaultButton="true"/>
|
||||||
|
</buttons>
|
||||||
|
</ButtonBar>
|
||||||
|
|
||||||
|
</VBox>
|
||||||
|
</children>
|
||||||
|
</HBox>
|
||||||
@@ -7,8 +7,6 @@
|
|||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
fx:id="tabPane"
|
fx:id="tabPane"
|
||||||
fx:controller="org.cryptomator.ui.preferences.PreferencesController"
|
fx:controller="org.cryptomator.ui.preferences.PreferencesController"
|
||||||
minWidth="-Infinity"
|
|
||||||
maxWidth="-Infinity"
|
|
||||||
prefWidth="650"
|
prefWidth="650"
|
||||||
tabMinWidth="60"
|
tabMinWidth="60"
|
||||||
tabClosingPolicy="UNAVAILABLE"
|
tabClosingPolicy="UNAVAILABLE"
|
||||||
|
|||||||
@@ -30,6 +30,10 @@
|
|||||||
<ChoiceBox fx:id="keychainBackendChoiceBox"/>
|
<ChoiceBox fx:id="keychainBackendChoiceBox"/>
|
||||||
</HBox>
|
</HBox>
|
||||||
|
|
||||||
|
<HBox spacing="12" alignment="CENTER_LEFT" visible="${controller.someQuickAccessServiceAvailable}" managed="${controller.someQuickAccessServiceAvailable}">
|
||||||
|
<CheckBox fx:id="useQuickAccessCheckbox" text="%preferences.general.quickAccessService"/>
|
||||||
|
<ChoiceBox fx:id="quickAccessServiceChoiceBox"/>
|
||||||
|
</HBox>
|
||||||
<Region VBox.vgrow="ALWAYS"/>
|
<Region VBox.vgrow="ALWAYS"/>
|
||||||
|
|
||||||
<HBox spacing="12" alignment="CENTER_LEFT">
|
<HBox spacing="12" alignment="CENTER_LEFT">
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
|
||||||
|
<?import org.cryptomator.ui.controls.FontAwesome5Spinner?>
|
||||||
<?import org.cryptomator.ui.controls.FormattedLabel?>
|
<?import org.cryptomator.ui.controls.FormattedLabel?>
|
||||||
<?import org.cryptomator.ui.controls.FormattedString?>
|
<?import org.cryptomator.ui.controls.FormattedString?>
|
||||||
<?import javafx.geometry.Insets?>
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.CheckBox?>
|
<?import javafx.scene.control.CheckBox?>
|
||||||
<?import javafx.scene.control.Hyperlink?>
|
<?import javafx.scene.control.Hyperlink?>
|
||||||
|
<?import javafx.scene.control.Label?>
|
||||||
|
<?import javafx.scene.layout.HBox?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import org.cryptomator.ui.controls.FontAwesome5Spinner?>
|
<?import javafx.scene.control.Tooltip?>
|
||||||
|
<?import javafx.scene.text.TextFlow?>
|
||||||
|
<?import javafx.scene.text.Text?>
|
||||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
fx:controller="org.cryptomator.ui.preferences.UpdatesPreferencesController"
|
fx:controller="org.cryptomator.ui.preferences.UpdatesPreferencesController"
|
||||||
@@ -18,19 +24,34 @@
|
|||||||
<padding>
|
<padding>
|
||||||
<Insets topRightBottomLeft="24"/>
|
<Insets topRightBottomLeft="24"/>
|
||||||
</padding>
|
</padding>
|
||||||
<children>
|
<FormattedLabel format="%preferences.updates.currentVersion" arg1="${controller.currentVersion}" textAlignment="CENTER" wrapText="true"/>
|
||||||
<FormattedLabel format="%preferences.updates.currentVersion" arg1="${controller.currentVersion}" textAlignment="CENTER" wrapText="true"/>
|
|
||||||
|
|
||||||
<CheckBox fx:id="checkForUpdatesCheckbox" text="%preferences.updates.autoUpdateCheck"/>
|
<CheckBox fx:id="checkForUpdatesCheckbox" text="%preferences.updates.autoUpdateCheck"/>
|
||||||
|
|
||||||
<VBox alignment="CENTER" spacing="12">
|
<VBox alignment="CENTER" spacing="12">
|
||||||
<Button text="%preferences.updates.checkNowBtn" defaultButton="true" onAction="#checkNow" contentDisplay="${controller.checkForUpdatesButtonState}">
|
<Button text="%preferences.updates.checkNowBtn" defaultButton="true" onAction="#checkNow" contentDisplay="${controller.checkForUpdatesButtonState}">
|
||||||
<graphic>
|
<graphic>
|
||||||
<FontAwesome5Spinner fx:id="spinner" glyphSize="12"/>
|
<FontAwesome5Spinner glyphSize="12"/>
|
||||||
</graphic>
|
</graphic>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Hyperlink text="${linkLabel.value}" onAction="#visitDownloadsPage" textAlignment="CENTER" wrapText="true" styleClass="hyperlink-underline" visible="${controller.updateAvailable}"/>
|
<TextFlow styleClass="text-flow" textAlignment="CENTER" visible="${controller.checkFailed}" managed="${controller.checkFailed}">
|
||||||
</VBox>
|
<FontAwesome5IconView glyphSize="12" styleClass="glyph-icon-orange" glyph="EXCLAMATION_TRIANGLE"/>
|
||||||
</children>
|
<Text text=" "/>
|
||||||
|
<Text text="%preferences.updates.checkFailed"/>
|
||||||
|
<Text text=" "/>
|
||||||
|
<Hyperlink styleClass="hyperlink-underline" text="%preferences.general.debugDirectory" onAction="#showLogfileDirectory"/>
|
||||||
|
</TextFlow>
|
||||||
|
<FormattedLabel format="%preferences.updates.lastUpdateCheck" arg1="${controller.timeDifferenceMessage}" textAlignment="CENTER" wrapText="true">
|
||||||
|
<tooltip>
|
||||||
|
<Tooltip text="${controller.lastUpdateCheckMessage}" showDelay="10ms"/>
|
||||||
|
</tooltip>
|
||||||
|
</FormattedLabel>
|
||||||
|
<Label text="%preferences.updates.upToDate" visible="${controller.upToDateLabelVisible}" managed="${controller.upToDateLabelVisible}">
|
||||||
|
<graphic>
|
||||||
|
<FontAwesome5IconView glyphSize="12" styleClass="glyph-icon-primary" glyph="CHECK"/>
|
||||||
|
</graphic>
|
||||||
|
</Label>
|
||||||
|
<Hyperlink text="${linkLabel.value}" onAction="#visitDownloadsPage" textAlignment="CENTER" wrapText="true" styleClass="hyperlink-underline" visible="${controller.updateAvailable}" managed="${controller.updateAvailable}"/>
|
||||||
|
</VBox>
|
||||||
</VBox>
|
</VBox>
|
||||||
|
|||||||
@@ -288,6 +288,7 @@ preferences.general.debugLogging=Enable debug logging
|
|||||||
preferences.general.debugDirectory=Reveal log files
|
preferences.general.debugDirectory=Reveal log files
|
||||||
preferences.general.autoStart=Launch Cryptomator on system start
|
preferences.general.autoStart=Launch Cryptomator on system start
|
||||||
preferences.general.keychainBackend=Store passwords with
|
preferences.general.keychainBackend=Store passwords with
|
||||||
|
preferences.general.quickAccessService=Add unlocked vaults to the quick access area
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Interface
|
preferences.interface=Interface
|
||||||
preferences.interface.theme=Look & Feel
|
preferences.interface.theme=Look & Feel
|
||||||
@@ -321,6 +322,14 @@ preferences.updates.currentVersion=Current Version: %s
|
|||||||
preferences.updates.autoUpdateCheck=Check for updates automatically
|
preferences.updates.autoUpdateCheck=Check for updates automatically
|
||||||
preferences.updates.checkNowBtn=Check Now
|
preferences.updates.checkNowBtn=Check Now
|
||||||
preferences.updates.updateAvailable=Update to version %s available.
|
preferences.updates.updateAvailable=Update to version %s available.
|
||||||
|
preferences.updates.lastUpdateCheck=Last check: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=never
|
||||||
|
preferences.updates.lastUpdateCheck.recently=recently
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s days ago
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s hours ago
|
||||||
|
preferences.updates.checkFailed=Looking for updates failed. Please check your internet connection or try again later.
|
||||||
|
preferences.updates.upToDate=Cryptomator is up-to-date.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Support Us
|
preferences.contribute=Support Us
|
||||||
preferences.contribute.registeredFor=Supporter certificate registered for %s
|
preferences.contribute.registeredFor=Supporter certificate registered for %s
|
||||||
@@ -533,6 +542,12 @@ updateReminder.notNow=Not Now
|
|||||||
updateReminder.yesOnce=Yes, Once
|
updateReminder.yesOnce=Yes, Once
|
||||||
updateReminder.yesAutomatically=Yes, Automatically
|
updateReminder.yesAutomatically=Yes, Automatically
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Deprecation notice
|
||||||
|
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
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Share Vault
|
shareVault.title=Share Vault
|
||||||
shareVault.message=Would you like to share your vault with others?
|
shareVault.message=Would you like to share your vault with others?
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
# Locale Specific CSS files such as CJK, RTL,...
|
||||||
|
|
||||||
|
# Generics
|
||||||
|
## Button
|
||||||
|
|
||||||
|
# Error
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
|
||||||
|
# Tray Menu
|
||||||
|
|
||||||
|
# Add Vault Wizard
|
||||||
|
## New
|
||||||
|
### Name
|
||||||
|
### Location
|
||||||
|
### Expert Settings
|
||||||
|
### Password
|
||||||
|
### Information
|
||||||
|
## Existing
|
||||||
|
## Success
|
||||||
|
|
||||||
|
# Remove Vault
|
||||||
|
|
||||||
|
# Change Password
|
||||||
|
|
||||||
|
# Forget Password
|
||||||
|
|
||||||
|
# Unlock
|
||||||
|
## Select
|
||||||
|
## Success
|
||||||
|
## Failure
|
||||||
|
## Hub
|
||||||
|
### Waiting
|
||||||
|
### Receive Key
|
||||||
|
### Register Device
|
||||||
|
### Register Device Legacy
|
||||||
|
### Registration Success
|
||||||
|
### Registration Failed
|
||||||
|
### Unauthorized
|
||||||
|
### Requires Account Initialization
|
||||||
|
### License Exceeded
|
||||||
|
|
||||||
|
# Lock
|
||||||
|
## Force
|
||||||
|
## Failure
|
||||||
|
|
||||||
|
# Migration
|
||||||
|
## Start
|
||||||
|
## Run
|
||||||
|
## Success
|
||||||
|
## Missing file system capabilities
|
||||||
|
## Impossible
|
||||||
|
|
||||||
|
# Health Check
|
||||||
|
## Start
|
||||||
|
## Start Failure
|
||||||
|
## Check Selection
|
||||||
|
## Detail view
|
||||||
|
## Result view
|
||||||
|
## Fix Application
|
||||||
|
|
||||||
|
# Preferences
|
||||||
|
## General
|
||||||
|
## Interface
|
||||||
|
## Volume
|
||||||
|
## Updates
|
||||||
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
# Vault Statistics
|
||||||
|
## Read
|
||||||
|
## Write
|
||||||
|
|
||||||
|
## Accesses
|
||||||
|
|
||||||
|
|
||||||
|
# Main Window
|
||||||
|
## Vault List
|
||||||
|
##Notificaition
|
||||||
|
## Vault Detail
|
||||||
|
### Welcome
|
||||||
|
### Locked
|
||||||
|
### Unlocked
|
||||||
|
### Missing
|
||||||
|
### Needs Migration
|
||||||
|
### Error
|
||||||
|
|
||||||
|
# Wrong File Alert
|
||||||
|
|
||||||
|
# Vault Options
|
||||||
|
## General
|
||||||
|
|
||||||
|
## Mount
|
||||||
|
## Master Key
|
||||||
|
## Hub
|
||||||
|
|
||||||
|
# Recovery Key
|
||||||
|
## Display Recovery Key
|
||||||
|
## Reset Password
|
||||||
|
### Enter Recovery Key
|
||||||
|
### Reset Password
|
||||||
|
### Recovery Key Password Reset Success
|
||||||
|
|
||||||
|
# Convert Vault
|
||||||
|
|
||||||
|
# New Password
|
||||||
|
|
||||||
|
# Quit
|
||||||
|
|
||||||
|
# Forced Quit
|
||||||
|
|
||||||
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
|
# Share Vault
|
||||||
@@ -16,7 +16,7 @@ generic.button.print=طباعة
|
|||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=حدث خطأ ما
|
error.message=حدث خطأ ما
|
||||||
error.description=لم يتوقع "كريبتوماتور" حدوث ذلك. يمكنك البحث عن الحلول الموجودة لهذا الخطأ. وإذا لم يتم الإبلاغ عنه بعد، لا تتردد في فعل ذلك.
|
error.description=لم يتوقع Cryptomator حدوث ذلك. يمكنك البحث عن الحلول الموجودة لهذا الخطأ. وإذا لم يتم الإبلاغ عنه بعد، لا تتردد في فعل ذلك.
|
||||||
error.hyperlink.lookup=ابحث عن هذا الخطأ
|
error.hyperlink.lookup=ابحث عن هذا الخطأ
|
||||||
error.hyperlink.report=أبلغ عن هذا الخطأ
|
error.hyperlink.report=أبلغ عن هذا الخطأ
|
||||||
error.technicalDetails=التفاصيل:
|
error.technicalDetails=التفاصيل:
|
||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=اختر اسم للمخزن
|
|||||||
addvaultwizard.new.namePrompt=اسم الخزينة
|
addvaultwizard.new.namePrompt=اسم الخزينة
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=أين يجب على Cryptomator تخزين الملفات المشفرة للمخزن الخاص بك؟
|
addvaultwizard.new.locationInstruction=أين يجب على Cryptomator تخزين الملفات المشفرة للمخزن الخاص بك؟
|
||||||
|
addvaultwizard.new.locationLoading=جاري التحقق من وجود مسارات تخزين سحابية افتراضية في نظام الملفات المحلية…
|
||||||
addvaultwizard.new.locationLabel=موقع التخزين
|
addvaultwizard.new.locationLabel=موقع التخزين
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=موقع مخصص
|
addvaultwizard.new.directoryPickerLabel=موقع مخصص
|
||||||
@@ -141,6 +142,9 @@ unlock.error.customPath.description.hideawayNotDir=لا يمكن إزالة ال
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=لا يمكن تركيب خزانتك على المسار "%s". الرجاء المحاولة مرة أخرى أو اختيار مسار مختلف.
|
unlock.error.customPath.description.couldNotBeCleaned=لا يمكن تركيب خزانتك على المسار "%s". الرجاء المحاولة مرة أخرى أو اختيار مسار مختلف.
|
||||||
unlock.error.customPath.description.notEmptyDir=مسار التركيب المخصص "%s" ليس مجلد فارغ. الرجاء اختيار مجلد فارغ وحاول مرة أخرى.
|
unlock.error.customPath.description.notEmptyDir=مسار التركيب المخصص "%s" ليس مجلد فارغ. الرجاء اختيار مجلد فارغ وحاول مرة أخرى.
|
||||||
unlock.error.customPath.description.generic=لقد اخترت مسار تركيب مخصص لهذه الخزانة، ولكن استخدامه فشل مع الرسالة: %2$s
|
unlock.error.customPath.description.generic=لقد اخترت مسار تركيب مخصص لهذه الخزانة، ولكن استخدامه فشل مع الرسالة: %2$s
|
||||||
|
unlock.error.restartRequired.message=غير قادر على فتح الخزنة
|
||||||
|
unlock.error.restartRequired.description=اختر نوع قرص آخر في خيارات المخزن أو اعد تشغيل Cryptomator.
|
||||||
|
unlock.error.title=فشل فتح "%s"
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=غير قادر على الوصول إلى مفتاح الجهاز
|
hub.noKeychain.message=غير قادر على الوصول إلى مفتاح الجهاز
|
||||||
hub.noKeychain.description=من أجل فتح مركز مخازن، مطلوب مفتاح جهاز، يتم تأمينه باستخدام سلسلة مفاتيح. للمضي قدما، قم بتمكين "%s" واختر سلسلة مفاتيح في التفضيلات.
|
hub.noKeychain.description=من أجل فتح مركز مخازن، مطلوب مفتاح جهاز، يتم تأمينه باستخدام سلسلة مفاتيح. للمضي قدما، قم بتمكين "%s" واختر سلسلة مفاتيح في التفضيلات.
|
||||||
@@ -153,15 +157,31 @@ hub.auth.loginLink=لم يتم إعادة توجيهك؟ انقر هنا لفت
|
|||||||
hub.receive.message=معالجة الاستجابة…
|
hub.receive.message=معالجة الاستجابة…
|
||||||
hub.receive.description=Cryptomator يتلقى ويعالج الاستجابة من المركز. الرجاء الانتظار.
|
hub.receive.description=Cryptomator يتلقى ويعالج الاستجابة من المركز. الرجاء الانتظار.
|
||||||
### Register Device
|
### Register Device
|
||||||
|
hub.register.message=جهاز جديد
|
||||||
|
hub.register.description=هذا هو أول وصول مركزي من هذا الجهاز. الرجاء تسجيله باستخدام مفتاح الحساب الخاص بك.
|
||||||
hub.register.nameLabel=اسم الجهاز
|
hub.register.nameLabel=اسم الجهاز
|
||||||
|
hub.register.invalidAccountKeyLabel=مفتاح الحساب غير صحيح
|
||||||
|
hub.register.registerBtn=تسجيل
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=الاسم قيد الاستخدام
|
||||||
|
hub.register.legacy.description=هذا هو أول وصول للمركز من هذا الجهاز. الرجاء تسجيله.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=تم تسجيل الجهاز
|
||||||
|
hub.registerSuccess.description=تم تسجيل جهازك بنجاح. يمكنك الآن المتابعة لفتح الخزنة.
|
||||||
hub.registerSuccess.unlockBtn=افتح
|
hub.registerSuccess.unlockBtn=افتح
|
||||||
|
hub.registerSuccess.legacy.description=للدخول إلى الخزينة، يحتاج جهازك كذالك إلى إذن من مالك الخزينة.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=فشل تسجيل الجهاز
|
||||||
|
hub.registerFailed.description.generic=حدث خطأ في عملية تسجيل الاسم. لمزيد من التفاصيل، راجع سجل التطبيق.
|
||||||
|
hub.registerFailed.description.deviceAlreadyExists=هذا الجهاز مسجل لمستخدم مختلف بالفعل. حاول تغيير حساب المستخدم أو استخدام جهاز مختلف.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=تم رفض الوصول
|
hub.unauthorized.message=تم رفض الوصول
|
||||||
hub.unauthorized.description=لم يتم بعد منح الإذن لجهازك بالوصول إلى هذا المخزن. اطلب من مالك المخزن أن يأذن بذلك.
|
hub.unauthorized.description=لم يتم بعد منح الإذن لجهازك بالوصول إلى هذا المخزن. اطلب من مالك المخزن أن يأذن بذلك.
|
||||||
### Requires Account Initialization
|
### Requires Account Initialization
|
||||||
|
hub.requireAccountInit.message=مطلوب اتخاذ إجراء
|
||||||
|
hub.requireAccountInit.description.0=للمتابعة، يرجى إكمال الخطوات المطلوبة في
|
||||||
|
hub.requireAccountInit.description.1=ملف تعريف المستخدم
|
||||||
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.invalidLicense.message=ترخيص المركز غير صالح
|
hub.invalidLicense.message=ترخيص المركز غير صالح
|
||||||
hub.invalidLicense.description=نموذج المركز Cryptomator الخاص بك لديه ترخيص غير صالح. الرجاء إبلاغ مسؤول مركز لترقية أو تجديد الترخيص.
|
hub.invalidLicense.description=نموذج المركز Cryptomator الخاص بك لديه ترخيص غير صالح. الرجاء إبلاغ مسؤول مركز لترقية أو تجديد الترخيص.
|
||||||
@@ -279,26 +299,46 @@ preferences.interface.language.auto=النظام الافتراضي
|
|||||||
preferences.interface.interfaceOrientation=اتجاه الواجهة
|
preferences.interface.interfaceOrientation=اتجاه الواجهة
|
||||||
preferences.interface.interfaceOrientation.ltr=من اليسار إلى اليمين
|
preferences.interface.interfaceOrientation.ltr=من اليسار إلى اليمين
|
||||||
preferences.interface.interfaceOrientation.rtl=من اليمين إلى اليسار
|
preferences.interface.interfaceOrientation.rtl=من اليمين إلى اليسار
|
||||||
preferences.interface.showMinimizeButton=إظهار زر التصغير
|
|
||||||
preferences.interface.showTrayIcon=إظهار أيقونة اللوحة (يتطلب إعادة تشغيل)
|
preferences.interface.showTrayIcon=إظهار أيقونة اللوحة (يتطلب إعادة تشغيل)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=القرص الإفتراضي
|
preferences.volume=القرص الإفتراضي
|
||||||
|
preferences.volume.type=نوع القرص الافتراضي
|
||||||
preferences.volume.type.automatic=تلقائي
|
preferences.volume.type.automatic=تلقائي
|
||||||
preferences.volume.docsTooltip=افتح الوثائق لمعرفة المزيد عن مختلف أنواع وحدة التخزين.
|
preferences.volume.docsTooltip=افتح الوثائق لمعرفة المزيد عن مختلف أنواع وحدة التخزين.
|
||||||
preferences.volume.fuseRestartRequired=لتطبيق التغييرات، يحتاج Cryptomator إلى إعادة التشغيل.
|
preferences.volume.fuseRestartRequired=لتطبيق التغييرات، يحتاج Cryptomator إلى إعادة التشغيل.
|
||||||
|
preferences.volume.tcp.port=منفذ TCP الافتراضي
|
||||||
preferences.volume.supportedFeatures=يدعم نوع وحدة تخزين المختار الميزات التالية:
|
preferences.volume.supportedFeatures=يدعم نوع وحدة تخزين المختار الميزات التالية:
|
||||||
|
preferences.volume.feature.mountAuto=اختيار نقطة البَدْء التلقائية
|
||||||
|
preferences.volume.feature.mountToDir=مجلد مخصص كنقطة تحميل
|
||||||
|
preferences.volume.feature.mountToDriveLetter=استخدام حرف وحدة التخزين كنقطة تحميل
|
||||||
|
preferences.volume.feature.mountFlags=خيارات التثبيت المخصصة
|
||||||
|
preferences.volume.feature.readOnly=تحميل للقراءة فقط
|
||||||
## Updates
|
## Updates
|
||||||
preferences.updates=تحديثات
|
preferences.updates=تحديثات
|
||||||
preferences.updates.currentVersion=الإصدار الحالي: %s
|
preferences.updates.currentVersion=الإصدار الحالي: %s
|
||||||
preferences.updates.autoUpdateCheck=تحقق من التحديثات اوتوماتيكيا
|
preferences.updates.autoUpdateCheck=تحقق من التحديثات اوتوماتيكيا
|
||||||
preferences.updates.checkNowBtn=تحقق الان
|
preferences.updates.checkNowBtn=تحقق الان
|
||||||
preferences.updates.updateAvailable=التحديث إلى الإصدار %s متاح.
|
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
|
## Contribution
|
||||||
preferences.contribute=ادعمنا
|
preferences.contribute=ادعمنا
|
||||||
preferences.contribute.registeredFor=شهادة الداعم مسجلة لـ %s
|
preferences.contribute.registeredFor=شهادة الداعم مسجلة لـ %s
|
||||||
preferences.contribute.noCertificate=ادعم Cryptomator واحصل على شهادة الداعم. إنها مثل مفتاح الترخيص لكن للأشخاص الرائعين الذين يستخدمون البرامج المجانية ؛-)
|
preferences.contribute.noCertificate=ادعم Cryptomator واحصل على شهادة الداعم. إنها مثل مفتاح الترخيص لكن للأشخاص الرائعين الذين يستخدمون البرامج المجانية ؛-)
|
||||||
preferences.contribute.getCertificate=ليس لديك واحدة بعد؟ تعلم كيف يمكنك الحصول عليها.
|
preferences.contribute.getCertificate=ليس لديك واحدة بعد؟ تعلم كيف يمكنك الحصول عليها.
|
||||||
preferences.contribute.promptText=قم بلصق رمز شهادة الداعم هنا
|
preferences.contribute.promptText=قم بلصق رمز شهادة الداعم هنا
|
||||||
|
preferences.contribute.donate=تبرع
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.title=إزالة الشهادة
|
||||||
|
removeCert.message=إزالة شهادة الداعم؟
|
||||||
|
removeCert.confirmBtn=حذف
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -309,21 +349,37 @@ stats.title=إحصائيات عن %s
|
|||||||
stats.cacheHitRate=معدل استخدام الكاش
|
stats.cacheHitRate=معدل استخدام الكاش
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=قراءة: خامل
|
stats.read.throughput.idle=قراءة: خامل
|
||||||
|
stats.read.throughput.kibs=القراءة: %.2f KiB/s
|
||||||
|
stats.read.throughput.mibs=القراءة: %.2f MiB/s
|
||||||
|
stats.read.total.data.none=بيانات القراءة: -
|
||||||
|
stats.read.total.data.kib=بيانات القراءة: %.1f كيلوبايت
|
||||||
|
stats.read.total.data.mib=بيانات القراءة: %.1f ميجابايت
|
||||||
|
stats.read.total.data.gib=بيانات القراءة: %.1f جيجابايت
|
||||||
stats.decr.total.data.none=تم فك تشفير البيانات:-
|
stats.decr.total.data.none=تم فك تشفير البيانات:-
|
||||||
|
stats.decr.total.data.kib=البيانات المفكوكة: %.1f كيلوبايت
|
||||||
|
stats.decr.total.data.mib=البيانات المفكوكة: %.1f ميجابايت
|
||||||
|
stats.decr.total.data.gib=البيانات المفكوكة: %.1f جيجابايت
|
||||||
|
stats.read.accessCount=مجموع القراءات: %d
|
||||||
## Write
|
## Write
|
||||||
|
stats.write.throughput.idle=الكتابة: خامل
|
||||||
|
stats.write.throughput.kibs=الكتابة: %.2f كيلوبايت/ثانية
|
||||||
|
stats.write.throughput.mibs=الكتابة: %.2f ميجابايت/ثانية
|
||||||
|
stats.write.total.data.none=البيانات المكتوبة: -
|
||||||
|
stats.write.total.data.kib=البيانات المكتوبة: %.1f كيلوبايت
|
||||||
stats.write.total.data.mib=البيانات المكتوبة: %.1f م.ب
|
stats.write.total.data.mib=البيانات المكتوبة: %.1f م.ب
|
||||||
stats.write.total.data.gib=البيانات المكتوبة: %.1f ج.ب
|
stats.write.total.data.gib=البيانات المكتوبة: %.1f ج.ب
|
||||||
stats.encr.total.data.none=البيانات المشفرة: -
|
stats.encr.total.data.none=البيانات المشفرة: -
|
||||||
|
stats.encr.total.data.kib=البيانات المشفرة: %.1f كيلوبايت
|
||||||
|
stats.encr.total.data.mib=البيانات المشفرة: %.1f ميجابايت
|
||||||
|
stats.encr.total.data.gib=البيانات المشفرة: %.1f جيجابايت
|
||||||
|
stats.write.accessCount=مجموع الكتابات: %d
|
||||||
|
|
||||||
## Accesses
|
## Accesses
|
||||||
|
stats.access.current=الوصول: %d
|
||||||
|
stats.access.total=مجموع الوصول: %d
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=إغلاق
|
|
||||||
main.minimizeBtn.tooltip=تصغير
|
|
||||||
main.preferencesBtn.tooltip=تفضيلات
|
|
||||||
main.debugModeEnabled.tooltip=تم تمكين وضع التصحيح
|
|
||||||
main.supporterCertificateMissing.tooltip=يرجى النظر في تقديم تبرعات
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=انقر هنا لإضافة خزنة
|
main.vaultlist.emptyList.onboardingInstruction=انقر هنا لإضافة خزنة
|
||||||
main.vaultlist.contextMenu.remove=حذف…
|
main.vaultlist.contextMenu.remove=حذف…
|
||||||
@@ -332,7 +388,7 @@ main.vaultlist.contextMenu.unlock=فتح…
|
|||||||
main.vaultlist.contextMenu.unlockNow=افتح الان
|
main.vaultlist.contextMenu.unlockNow=افتح الان
|
||||||
main.vaultlist.contextMenu.vaultoptions=إظهار خيارات المخزن
|
main.vaultlist.contextMenu.vaultoptions=إظهار خيارات المخزن
|
||||||
main.vaultlist.contextMenu.reveal=اظهار القرص
|
main.vaultlist.contextMenu.reveal=اظهار القرص
|
||||||
main.vaultlist.addVaultBtn=إضافة
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=شكرا لاختيار Cryptomator لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام:
|
main.vaultDetail.welcomeOnboarding=شكرا لاختيار Cryptomator لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام:
|
||||||
@@ -342,14 +398,17 @@ main.vaultDetail.unlockBtn=فتح…
|
|||||||
main.vaultDetail.unlockNowBtn=فتح القفل الان
|
main.vaultDetail.unlockNowBtn=فتح القفل الان
|
||||||
main.vaultDetail.optionsBtn=خيارات المخزن
|
main.vaultDetail.optionsBtn=خيارات المخزن
|
||||||
main.vaultDetail.passwordSavedInKeychain=تم حفظ كلمة المرور
|
main.vaultDetail.passwordSavedInKeychain=تم حفظ كلمة المرور
|
||||||
|
main.vaultDetail.share=مشاركة…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=مفتوح
|
main.vaultDetail.unlockedStatus=مفتوح
|
||||||
main.vaultDetail.accessLocation=يمكن الوصول إلى محتويات مخزنك هنا:
|
main.vaultDetail.accessLocation=يمكن الوصول إلى محتويات مخزنك هنا:
|
||||||
main.vaultDetail.revealBtn=اظهار القرص
|
main.vaultDetail.revealBtn=اظهار القرص
|
||||||
|
main.vaultDetail.copyUri=نسخ الرابط
|
||||||
main.vaultDetail.lockBtn=قفل
|
main.vaultDetail.lockBtn=قفل
|
||||||
main.vaultDetail.bytesPerSecondRead=قراءة:
|
main.vaultDetail.bytesPerSecondRead=قراءة:
|
||||||
main.vaultDetail.bytesPerSecondWritten=كتابة:
|
main.vaultDetail.bytesPerSecondWritten=كتابة:
|
||||||
main.vaultDetail.throughput.idle=خمول
|
main.vaultDetail.throughput.idle=خمول
|
||||||
|
main.vaultDetail.throughput.kbps=%.1f كيلوبايت/ث
|
||||||
main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث
|
main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث
|
||||||
main.vaultDetail.stats=إحصائيات الخزنة
|
main.vaultDetail.stats=إحصائيات الخزنة
|
||||||
main.vaultDetail.locateEncryptedFileBtn=تحديد موقع الملف المشفر
|
main.vaultDetail.locateEncryptedFileBtn=تحديد موقع الملف المشفر
|
||||||
@@ -365,6 +424,9 @@ main.vaultDetail.missing.changeLocation=تغيير موقع الخزنة…
|
|||||||
main.vaultDetail.migrateButton=ترقية الحافظة
|
main.vaultDetail.migrateButton=ترقية الحافظة
|
||||||
main.vaultDetail.migratePrompt=يجب ترقية المخزن الخاص بك إلى تنسيق جديد، قبل أن تتمكن من الوصول إليه
|
main.vaultDetail.migratePrompt=يجب ترقية المخزن الخاص بك إلى تنسيق جديد، قبل أن تتمكن من الوصول إليه
|
||||||
### Error
|
### Error
|
||||||
|
main.vaultDetail.error.info=حدث خطأ أثناء تحميل الخزانة من القرص الصلب.
|
||||||
|
main.vaultDetail.error.reload=إعادة تحميل
|
||||||
|
main.vaultDetail.error.windowTitle=خطأ في تحميل الخزنة
|
||||||
|
|
||||||
# Wrong File Alert
|
# Wrong File Alert
|
||||||
wrongFileAlert.title=كيفية تشفير الملفات
|
wrongFileAlert.title=كيفية تشفير الملفات
|
||||||
@@ -380,24 +442,31 @@ wrongFileAlert.link=لمزيد من المساعدة، قم بزيارة
|
|||||||
## General
|
## General
|
||||||
vaultOptions.general=عام
|
vaultOptions.general=عام
|
||||||
vaultOptions.general.vaultName=اسم المخزن
|
vaultOptions.general.vaultName=اسم المخزن
|
||||||
|
vaultOptions.general.autoLock.lockAfterTimePart1=قفل عند الخمول لمدة
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart2=دقائق
|
vaultOptions.general.autoLock.lockAfterTimePart2=دقائق
|
||||||
vaultOptions.general.unlockAfterStartup=فتح قفل المخزن عند بدء تشغيل Cryptomator
|
vaultOptions.general.unlockAfterStartup=فتح قفل المخزن عند بدء تشغيل Cryptomator
|
||||||
vaultOptions.general.actionAfterUnlock=بعد فتح القفل بنجاح
|
vaultOptions.general.actionAfterUnlock=بعد فتح القفل بنجاح
|
||||||
vaultOptions.general.actionAfterUnlock.ignore=لا تفعل شيئاً
|
vaultOptions.general.actionAfterUnlock.ignore=لا تفعل شيئاً
|
||||||
vaultOptions.general.actionAfterUnlock.reveal=إظهار القرص
|
vaultOptions.general.actionAfterUnlock.reveal=إظهار القرص
|
||||||
vaultOptions.general.actionAfterUnlock.ask=اسأل
|
vaultOptions.general.actionAfterUnlock.ask=اسأل
|
||||||
|
vaultOptions.general.startHealthCheckBtn=بدء فحص الصحة
|
||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=القرص الوهمي
|
vaultOptions.mount=القرص الوهمي
|
||||||
|
vaultOptions.mount.info=افتح تفضيلات القرص الظاهري لتغيير الإعدادات الافتراضية.
|
||||||
vaultOptions.mount.readonly=للقراءة فقط
|
vaultOptions.mount.readonly=للقراءة فقط
|
||||||
vaultOptions.mount.customMountFlags=الأعلام المخصصة
|
vaultOptions.mount.customMountFlags=الأعلام المخصصة
|
||||||
vaultOptions.mount.winDriveLetterOccupied=مشغول
|
vaultOptions.mount.winDriveLetterOccupied=مشغول
|
||||||
vaultOptions.mount.mountPoint=موقع التحميل الوهمي
|
vaultOptions.mount.mountPoint=موقع التحميل الوهمي
|
||||||
vaultOptions.mount.mountPoint.auto=اختيار موقع مناسب تلقائياً
|
vaultOptions.mount.mountPoint.auto=اختيار موقع مناسب تلقائياً
|
||||||
vaultOptions.mount.mountPoint.driveLetter=استخدام دالة قرص معين
|
vaultOptions.mount.mountPoint.driveLetter=استخدام دالة قرص معين
|
||||||
|
vaultOptions.mount.mountPoint.custom=استخدام المجلد المختار
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=اختر…
|
vaultOptions.mount.mountPoint.directoryPickerButton=اختر…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=إختر مجلد
|
||||||
vaultOptions.mount.volumeType.default=الافتراضي (%s)
|
vaultOptions.mount.volumeType.default=الافتراضي (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=لاستخدام هذا النوع من وحدة التخزين يحتاج Cryptomator إلى إعادة تشغيله.
|
||||||
vaultOptions.mount.volume.tcp.port=منفذ TCP
|
vaultOptions.mount.volume.tcp.port=منفذ TCP
|
||||||
|
vaultOptions.mount.volume.type=نوع وحدة التخزين
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=كلمة المرور
|
vaultOptions.masterkey=كلمة المرور
|
||||||
vaultOptions.masterkey.changePasswordBtn=تغيير كلمة المرور
|
vaultOptions.masterkey.changePasswordBtn=تغيير كلمة المرور
|
||||||
@@ -407,9 +476,12 @@ vaultOptions.masterkey.showRecoveryKeyBtn=عرض مفتاح الاسترداد
|
|||||||
vaultOptions.masterkey.recoverPasswordBtn=إعادة تعيين كلمة المرور
|
vaultOptions.masterkey.recoverPasswordBtn=إعادة تعيين كلمة المرور
|
||||||
## Hub
|
## Hub
|
||||||
vaultOptions.hub=الإسترداد
|
vaultOptions.hub=الإسترداد
|
||||||
|
vaultOptions.hub.convertInfo=يمكنك استخدام مفتاح الاسترداد لتحويل هذه خزانة Hub إلى خزانة تعتمد على كلمة مرور في حالة الطوارئ.
|
||||||
|
vaultOptions.hub.convertBtn=التحويل إلى خزانة قائمة على كلمة المرور
|
||||||
|
|
||||||
# Recovery Key
|
# Recovery Key
|
||||||
## Display Recovery Key
|
## Display Recovery Key
|
||||||
|
recoveryKey.display.title=إظهار مفتاح الاسترداد
|
||||||
recoveryKey.create.message=مطلوب كلمة المرور
|
recoveryKey.create.message=مطلوب كلمة المرور
|
||||||
recoveryKey.create.description=أدخل كلمة المرور الخاصة بك لإظهار مفتاح الاسترداد ل "%s":
|
recoveryKey.create.description=أدخل كلمة المرور الخاصة بك لإظهار مفتاح الاسترداد ل "%s":
|
||||||
recoveryKey.display.description=يمكن استخدام مفتاح الاسترداد التالي لاستعادة الوصول إلى "%s":
|
recoveryKey.display.description=يمكن استخدام مفتاح الاسترداد التالي لاستعادة الوصول إلى "%s":
|
||||||
@@ -417,12 +489,23 @@ recoveryKey.display.StorageHints=حافظ عليه في مكان ما آمن ج
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=إعادة تعيين كلمة المرور
|
recoveryKey.recover.title=إعادة تعيين كلمة المرور
|
||||||
|
recoveryKey.recover.prompt=أدخل مفتاح الاسترداد لـ "%s":
|
||||||
recoveryKey.recover.correctKey=هذا مفتاح استرداد صالح
|
recoveryKey.recover.correctKey=هذا مفتاح استرداد صالح
|
||||||
|
recoveryKey.recover.wrongKey=مفتاح الاسترداد هذا ينتمي إلى خزانة مختلفة
|
||||||
|
recoveryKey.recover.invalidKey=مفتاح الاسترداد غير صالح
|
||||||
recoveryKey.printout.heading=مفتاح استرداد Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=مفتاح استرداد Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
|
recoveryKey.recover.resetBtn=إعادة الضبط
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
recoveryKey.recover.resetSuccess.message=تم إعادة تعيين كلمة المرور بنجاح
|
||||||
|
recoveryKey.recover.resetSuccess.description=يمكنك فتح الخزانة الخاصة بك بكلمة المرور الجديدة.
|
||||||
|
|
||||||
# Convert Vault
|
# Convert Vault
|
||||||
|
convertVault.title=تحويل الخزانة
|
||||||
|
convertVault.convert.convertBtn.before=حوّل
|
||||||
|
convertVault.convert.convertBtn.processing=جاري التحويل…
|
||||||
|
convertVault.success.message=تم التحويل بنجاح
|
||||||
|
convertVault.hubToPassword.success.description=يمكنك الآن فتح الخزانة باستخدام كلمة المرور المختارة دون الحاجة إلى الوصول إلى Hub.
|
||||||
|
|
||||||
# New Password
|
# New Password
|
||||||
newPassword.promptText=أدخل كلمة مرور جديدة
|
newPassword.promptText=أدخل كلمة مرور جديدة
|
||||||
@@ -437,10 +520,46 @@ passwordStrength.messageLabel.3=قوية
|
|||||||
passwordStrength.messageLabel.4=قوية جداً
|
passwordStrength.messageLabel.4=قوية جداً
|
||||||
|
|
||||||
# Quit
|
# Quit
|
||||||
|
quit.title=إغلاق التطبيق
|
||||||
|
quit.message=هناك خزانات مفتوحة
|
||||||
|
quit.description=يرجى تأكيد رغبتك في الخروج. سيقوم Cryptomator بقفل جميع الخزائن غير المقفلة بشكل آمن لمنع فقدان البيانات.
|
||||||
quit.lockAndQuitBtn=قفل و خروج
|
quit.lockAndQuitBtn=قفل و خروج
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
|
quit.forced.message=بعض الخزائن لم أتمكن من قفلها
|
||||||
|
quit.forced.description=تم حظر قفل الخزنات بسبب العمليات المعلقة أو الملفات المفتوحة. يمكنك فرض قفل الخزنات المتبقية، ولكن قد يؤدي مقاطعة عمليات الإدخال/الإخراج إلى فقدان البيانات غير المحفوظة.
|
||||||
|
quit.forced.forceAndQuitBtn=فرض وإغلاق
|
||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
updateReminder.title=التحقق من التحديث
|
||||||
|
updateReminder.message=التحقق من التحديثات؟
|
||||||
|
updateReminder.description=ابقَ على اطلاع بأحدث الميزات، وإصلاحات الأخطاء، وتحسينات الأمان. نوصي بالتحقق التلقائي من التحديثات.
|
||||||
|
updateReminder.notNow=ليس الآن
|
||||||
|
updateReminder.yesOnce=نعم، مرة واحدة
|
||||||
|
updateReminder.yesAutomatically=نعم، تلقائياً
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=إشعار بإيقاف الدعم
|
||||||
|
dokanySupportEnd.message=انتهاء الدعم لـDokany
|
||||||
|
dokanySupportEnd.description=نوع وحدة التخزين Dokany لم يعد مدعوماً من قبل Cryptomator. تم تعديل إعداداتك لاستخدام نوع وحدة التخزين الافتراضي الآن. يمكنك عرض النوع الافتراضي في التفضيلات.
|
||||||
|
dokanySupportEnd.preferencesBtn=فتح التفضيلات
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=مشاركة الخزانة
|
||||||
|
shareVault.message=هل ترغب في مشاركة خزانتك مع الآخرين؟
|
||||||
|
shareVault.description=كن حذرًا دائمًا عند مشاركة خزانتك مع الآخرين. باختصار، اتبع هذه الخطوات:
|
||||||
|
shareVault.instruction.1=1. شارك الوصول إلى مجلد الخزانة المشفر عبر التخزين السحابي.
|
||||||
|
shareVault.instruction.2=2. شارك كلمة مرور الخزانة بطريقة آمنة.
|
||||||
|
shareVault.remarkBestPractices=لمزيد من المعلومات، تحقق من اقتراحات أفضل الممارسات في مستنداتنا.
|
||||||
|
shareVault.docsTooltip=افتح وثائق البرنامج Documentation لتعلم المزيد عن مشاركة الخزائن.
|
||||||
|
shareVault.hubAd.description=الطريقة الآمنة للعمل ضمن الفرق
|
||||||
|
shareVault.hubAd.keyManagement=• إدارة المفاتيح بدون معرفة
|
||||||
|
shareVault.hubAd.authentication=• مصادقة قوية
|
||||||
|
shareVault.hubAd.encryption=• التشفير من الطرف إلى الطرف
|
||||||
|
shareVault.visitHub=زيارة Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=كيفية مشاركة خزانة Hub
|
||||||
|
shareVault.hub.description=لمشاركة محتوى الخزانة مع عضو آخر في الفريق، عليك القيام بخطوتين:
|
||||||
|
shareVault.hub.instruction.1=1. شارك الوصول إلى مجلد الخزانة المشفر عبر التخزين السحابي.
|
||||||
|
shareVault.hub.instruction.2=2. امنح الوصول لعضو الفريق في Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=زيارة Cryptomator Hub
|
||||||
@@ -287,7 +287,6 @@ preferences.interface.language.auto=Ғәҙәттәге система көйлә
|
|||||||
preferences.interface.interfaceOrientation=Интерфейс йүнәлеше
|
preferences.interface.interfaceOrientation=Интерфейс йүнәлеше
|
||||||
preferences.interface.interfaceOrientation.ltr=Һулдан уңға
|
preferences.interface.interfaceOrientation.ltr=Һулдан уңға
|
||||||
preferences.interface.interfaceOrientation.rtl=Уңдан һулға
|
preferences.interface.interfaceOrientation.rtl=Уңдан һулға
|
||||||
preferences.interface.showMinimizeButton=Бәләкәйләтеү төймәһен күрһәтергә
|
|
||||||
preferences.interface.showTrayIcon=Панелдә билдәне күрһәтергә (яңынан башлатыу кәрәк)
|
preferences.interface.showTrayIcon=Панелдә билдәне күрһәтергә (яңынан башлатыу кәрәк)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Виртуаль диск
|
preferences.volume=Виртуаль диск
|
||||||
@@ -308,12 +307,16 @@ preferences.updates.currentVersion=Ағымдағы версия: %s
|
|||||||
preferences.updates.autoUpdateCheck=Яңыртыуҙарҙы автоматик рәүештә тикшереү
|
preferences.updates.autoUpdateCheck=Яңыртыуҙарҙы автоматик рәүештә тикшереү
|
||||||
preferences.updates.checkNowBtn=Хәҙер тикшер
|
preferences.updates.checkNowBtn=Хәҙер тикшер
|
||||||
preferences.updates.updateAvailable=%s версияһына тиклем яңыртыу бар.
|
preferences.updates.updateAvailable=%s версияһына тиклем яңыртыу бар.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Ярҙам
|
preferences.contribute=Ярҙам
|
||||||
preferences.contribute.registeredFor=%s өсөн теркәлгән ярҙамсы сертификаты
|
preferences.contribute.registeredFor=%s өсөн теркәлгән ярҙамсы сертификаты
|
||||||
preferences.contribute.noCertificate=Cryptomator-ҡа ярҙам итегеҙ һәм ярҙамсы сертификаты алығыҙ. Был рөхсәтнамә асҡысы кеүек, әммә ирекле программа ҡулланған бик шәп кешеләр өсөн. ;-)
|
preferences.contribute.noCertificate=Cryptomator-ҡа ярҙам итегеҙ һәм ярҙамсы сертификаты алығыҙ. Был рөхсәтнамә асҡысы кеүек, әммә ирекле программа ҡулланған бик шәп кешеләр өсөн. ;-)
|
||||||
preferences.contribute.getCertificate=Юҡ мы әллә? Уны нисек алырға кәрәклеген ҡарағыҙ.
|
preferences.contribute.getCertificate=Юҡ мы әллә? Уны нисек алырға кәрәклеген ҡарағыҙ.
|
||||||
preferences.contribute.promptText=Ярҙамсы сертификатын бында йәбештерегеҙ
|
preferences.contribute.promptText=Ярҙамсы сертификатын бында йәбештерегеҙ
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Алып ташлау
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -355,11 +358,6 @@ stats.access.total=Барлыҡ инеү: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Яп
|
|
||||||
main.minimizeBtn.tooltip=Бәләкәйләт
|
|
||||||
main.preferencesBtn.tooltip=Көйләүҙәр
|
|
||||||
main.debugModeEnabled.tooltip=Төҙөкләндереү режимы асыҡ
|
|
||||||
main.supporterCertificateMissing.tooltip=Зинһар, иғәнә биреү тураһында уйлағыҙ
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Һаҡлағыс өҫтәү өсөн бында баҫығыҙ
|
main.vaultlist.emptyList.onboardingInstruction=Һаҡлағыс өҫтәү өсөн бында баҫығыҙ
|
||||||
main.vaultlist.contextMenu.remove=Алып ташлау…
|
main.vaultlist.contextMenu.remove=Алып ташлау…
|
||||||
@@ -368,9 +366,7 @@ main.vaultlist.contextMenu.unlock=Бикте асыу…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Хәҙер бикте ас
|
main.vaultlist.contextMenu.unlockNow=Хәҙер бикте ас
|
||||||
main.vaultlist.contextMenu.vaultoptions=Һаҡлағыс варианттарын күрһәт
|
main.vaultlist.contextMenu.vaultoptions=Һаҡлағыс варианттарын күрһәт
|
||||||
main.vaultlist.contextMenu.reveal=Дискты күрһәт
|
main.vaultlist.contextMenu.reveal=Дискты күрһәт
|
||||||
main.vaultlist.addVaultBtn=Өҫтәү
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Яңы Һаҡлағыс...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Булған һаҡлағыс...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Файлдарығыҙҙы һаҡлау өсөн Cryptomator-ҙы һайлағанығыҙ өсөн рәхмәт. Әгәр һеҙгә ярҙам кәрәк булһа, башлау буйынса белешмәләребеҙҙе ҡарағыҙ:
|
main.vaultDetail.welcomeOnboarding=Файлдарығыҙҙы һаҡлау өсөн Cryptomator-ҙы һайлағанығыҙ өсөн рәхмәт. Әгәр һеҙгә ярҙам кәрәк булһа, башлау буйынса белешмәләребеҙҙе ҡарағыҙ:
|
||||||
@@ -518,4 +514,7 @@ updateReminder.notNow=Хәҙер түгел
|
|||||||
updateReminder.yesOnce=Эйе, бер тапҡыр
|
updateReminder.yesOnce=Эйе, бер тапҡыр
|
||||||
updateReminder.yesAutomatically=Эйе, автоматик рәүештә
|
updateReminder.yesAutomatically=Эйе, автоматик рәүештә
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Көйләүҙәрҙе ас
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -276,7 +276,6 @@ preferences.interface.language.auto=Сістэма па змаўчанні
|
|||||||
preferences.interface.interfaceOrientation=Арыентацыя інтэрфэйсу
|
preferences.interface.interfaceOrientation=Арыентацыя інтэрфэйсу
|
||||||
preferences.interface.interfaceOrientation.ltr=Злева ўправа
|
preferences.interface.interfaceOrientation.ltr=Злева ўправа
|
||||||
preferences.interface.interfaceOrientation.rtl=Справа ўлева
|
preferences.interface.interfaceOrientation.rtl=Справа ўлева
|
||||||
preferences.interface.showMinimizeButton=Паказаць кнопку згортвання
|
|
||||||
preferences.interface.showTrayIcon=Паказваць іконку на інфармацыйнай панэлі (спатрэбіцца перазапуск)
|
preferences.interface.showTrayIcon=Паказваць іконку на інфармацыйнай панэлі (спатрэбіцца перазапуск)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Віртуальны дыск
|
preferences.volume=Віртуальны дыск
|
||||||
@@ -295,12 +294,16 @@ preferences.updates.currentVersion=Бягучая версія: %s
|
|||||||
preferences.updates.autoUpdateCheck=Правяраць наяўнасць абнаўленняў аўтаматычна
|
preferences.updates.autoUpdateCheck=Правяраць наяўнасць абнаўленняў аўтаматычна
|
||||||
preferences.updates.checkNowBtn=Праверыць зараз
|
preferences.updates.checkNowBtn=Праверыць зараз
|
||||||
preferences.updates.updateAvailable=Даступна абнаўленне да версіі %s
|
preferences.updates.updateAvailable=Даступна абнаўленне да версіі %s
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Падтрымай нас
|
preferences.contribute=Падтрымай нас
|
||||||
preferences.contribute.registeredFor=Сэртыфікат ахвяравальніка зарэгістраваны на %s
|
preferences.contribute.registeredFor=Сэртыфікат ахвяравальніка зарэгістраваны на %s
|
||||||
preferences.contribute.noCertificate=Ахвяруй на Cryptomator ды атрымай сэртыфікат ахвяравальніка. Гэта штось падобнае на ліцэнзійны ключ, але для цудоўных людзей, якія карыстаюцца бясплатнай праграмай. ;-)
|
preferences.contribute.noCertificate=Ахвяруй на Cryptomator ды атрымай сэртыфікат ахвяравальніка. Гэта штось падобнае на ліцэнзійны ключ, але для цудоўных людзей, якія карыстаюцца бясплатнай праграмай. ;-)
|
||||||
preferences.contribute.getCertificate=Яшчэ ня маеш такога? Даведайся, як атрымаць.
|
preferences.contribute.getCertificate=Яшчэ ня маеш такога? Даведайся, як атрымаць.
|
||||||
preferences.contribute.promptText=Устаў код сэртыфікату ахвяравальніка сюды
|
preferences.contribute.promptText=Устаў код сэртыфікату ахвяравальніка сюды
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Выдаліць
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -342,11 +345,6 @@ stats.access.total=Доступы агулам: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Зачыніць
|
|
||||||
main.minimizeBtn.tooltip=Згарнуць
|
|
||||||
main.preferencesBtn.tooltip=Налады
|
|
||||||
main.debugModeEnabled.tooltip=Функццыя дыягназавання выключана
|
|
||||||
main.supporterCertificateMissing.tooltip=Калі ласка, падумай пра ахвяраванне
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Пстрыкні тут, каб дадаць скарбніцу
|
main.vaultlist.emptyList.onboardingInstruction=Пстрыкні тут, каб дадаць скарбніцу
|
||||||
main.vaultlist.contextMenu.remove=Выдаліць…
|
main.vaultlist.contextMenu.remove=Выдаліць…
|
||||||
@@ -355,9 +353,7 @@ main.vaultlist.contextMenu.unlock=Адамкнуць…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Разамкнуць зараз
|
main.vaultlist.contextMenu.unlockNow=Разамкнуць зараз
|
||||||
main.vaultlist.contextMenu.vaultoptions=Паказаць параметры скарбніцы
|
main.vaultlist.contextMenu.vaultoptions=Паказаць параметры скарбніцы
|
||||||
main.vaultlist.contextMenu.reveal=Паказаць дыск
|
main.vaultlist.contextMenu.reveal=Паказаць дыск
|
||||||
main.vaultlist.addVaultBtn=Дадаць
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Новая скарбніца...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Існуючая скрабніца...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Дзякуй, што ты абраў Cryptomator для абароны тваіх файлаў. Калі табе патрэбна дапамога, калі ласка, паглядзі нашы інструкцыі:
|
main.vaultDetail.welcomeOnboarding=Дзякуй, што ты абраў Cryptomator для абароны тваіх файлаў. Калі табе патрэбна дапамога, калі ласка, паглядзі нашы інструкцыі:
|
||||||
@@ -498,4 +494,7 @@ updateReminder.notNow=Не цяпер
|
|||||||
updateReminder.yesOnce=Так, аднойчы
|
updateReminder.yesOnce=Так, аднойчы
|
||||||
updateReminder.yesAutomatically=Так, аўтаматычна
|
updateReminder.yesAutomatically=Так, аўтаматычна
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Адчыніць налады
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -287,7 +287,6 @@ preferences.interface.language.auto=Подразбиран
|
|||||||
preferences.interface.interfaceOrientation=Посока на текста
|
preferences.interface.interfaceOrientation=Посока на текста
|
||||||
preferences.interface.interfaceOrientation.ltr=От ляво на дясно
|
preferences.interface.interfaceOrientation.ltr=От ляво на дясно
|
||||||
preferences.interface.interfaceOrientation.rtl=От дясно на ляво
|
preferences.interface.interfaceOrientation.rtl=От дясно на ляво
|
||||||
preferences.interface.showMinimizeButton=Бутон за скриване
|
|
||||||
preferences.interface.showTrayIcon=Икона в областта за известия (изисква рестарт)
|
preferences.interface.showTrayIcon=Икона в областта за известия (изисква рестарт)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Виртуален диск
|
preferences.volume=Виртуален диск
|
||||||
@@ -308,12 +307,16 @@ preferences.updates.currentVersion=Текущо издание: %s
|
|||||||
preferences.updates.autoUpdateCheck=Автоматична проверка за издания
|
preferences.updates.autoUpdateCheck=Автоматична проверка за издания
|
||||||
preferences.updates.checkNowBtn=Проверяване
|
preferences.updates.checkNowBtn=Проверяване
|
||||||
preferences.updates.updateAvailable=Налично е ново издание %s.
|
preferences.updates.updateAvailable=Налично е ново издание %s.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Подкрепете ни
|
preferences.contribute=Подкрепете ни
|
||||||
preferences.contribute.registeredFor=Сертификатът за дарение е регистриран на %s
|
preferences.contribute.registeredFor=Сертификатът за дарение е регистриран на %s
|
||||||
preferences.contribute.noCertificate=Ако подкрепите Криптоматор ще получите сертификат за дарение. Това е като лицензен ключ, но за готини хора, които използват безплатен софтуер. ;-)
|
preferences.contribute.noCertificate=Ако подкрепите Криптоматор ще получите сертификат за дарение. Това е като лицензен ключ, но за готини хора, които използват безплатен софтуер. ;-)
|
||||||
preferences.contribute.getCertificate=Все още нямате? Научете как да се сдобиете.
|
preferences.contribute.getCertificate=Все още нямате? Научете как да се сдобиете.
|
||||||
preferences.contribute.promptText=Поставете тук кода на сертификата за дарение
|
preferences.contribute.promptText=Поставете тук кода на сертификата за дарение
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Премахване
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -355,11 +358,6 @@ stats.access.total=Общо достъпвания: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Затваряне
|
|
||||||
main.minimizeBtn.tooltip=Скриване
|
|
||||||
main.preferencesBtn.tooltip=Настройки
|
|
||||||
main.debugModeEnabled.tooltip=Режимът за премахване на дефекти е включен
|
|
||||||
main.supporterCertificateMissing.tooltip=Обмислете дарение
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Щракнете, за да добавите хранилище
|
main.vaultlist.emptyList.onboardingInstruction=Щракнете, за да добавите хранилище
|
||||||
main.vaultlist.contextMenu.remove=Премахване…
|
main.vaultlist.contextMenu.remove=Премахване…
|
||||||
@@ -368,9 +366,7 @@ main.vaultlist.contextMenu.unlock=Отключване…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Отключване сега
|
main.vaultlist.contextMenu.unlockNow=Отключване сега
|
||||||
main.vaultlist.contextMenu.vaultoptions=Настройки на хранилището
|
main.vaultlist.contextMenu.vaultoptions=Настройки на хранилището
|
||||||
main.vaultlist.contextMenu.reveal=Разкриване на диска
|
main.vaultlist.contextMenu.reveal=Разкриване на диска
|
||||||
main.vaultlist.addVaultBtn=Добавяне
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Ново хранилище…
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Съществуващо хранилище…
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Благодарим ви, че избрахте Криптоматор, за да предпазвате файловете си. Ако имате нужда от съдействие прочетете ръководствата за започване на работа с приложението:
|
main.vaultDetail.welcomeOnboarding=Благодарим ви, че избрахте Криптоматор, за да предпазвате файловете си. Ако имате нужда от съдействие прочетете ръководствата за започване на работа с приложението:
|
||||||
@@ -518,4 +514,7 @@ updateReminder.notNow=Не сега
|
|||||||
updateReminder.yesOnce=Да, веднъж
|
updateReminder.yesOnce=Да, веднъж
|
||||||
updateReminder.yesAutomatically=Да, автоматично
|
updateReminder.yesAutomatically=Да, автоматично
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Към настройките
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ error.description=ওহো! ক্রিপ্টোমেটর এটা য
|
|||||||
error.hyperlink.lookup=ত্রুটিটি খুঁজে দেখুন
|
error.hyperlink.lookup=ত্রুটিটি খুঁজে দেখুন
|
||||||
error.hyperlink.report=ত্রুটিটি রিপোর্ট করুন
|
error.hyperlink.report=ত্রুটিটি রিপোর্ট করুন
|
||||||
error.technicalDetails=বিস্তারিত:
|
error.technicalDetails=বিস্তারিত:
|
||||||
|
error.existingSolutionDescription=এটা হওয়ার কথা ছিল না. যদিও এ সমস্যার জন্য বিদ্যমান একটি সমাধান রয়েছে. অনুগ্রহ করে লিংকটিতে যান.
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=ভোল্ট
|
defaults.vault.vaultName=ভোল্ট
|
||||||
@@ -122,7 +123,11 @@ lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
|||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=বাতিল
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -135,9 +140,9 @@ lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=বন্ধ করুন
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.contextMenu.lock=লক করুন
|
main.vaultlist.contextMenu.lock=লক করুন
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -175,4 +180,6 @@ vaultOptions.mount.mountPoint.directoryPickerButton=নির্বাচন ক
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -171,7 +171,11 @@ preferences.updates.currentVersion=Trenutna verzija: %s
|
|||||||
preferences.updates.autoUpdateCheck=Automatski provjeri ima li ažuriranja
|
preferences.updates.autoUpdateCheck=Automatski provjeri ima li ažuriranja
|
||||||
preferences.updates.checkNowBtn=Provjeri sada
|
preferences.updates.checkNowBtn=Provjeri sada
|
||||||
preferences.updates.updateAvailable=Dostupno ažuriranje na verziju %s.
|
preferences.updates.updateAvailable=Dostupno ažuriranje na verziju %s.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Ukloni
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -205,11 +209,6 @@ stats.write.accessCount=Ukupno upisano: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Zatvori
|
|
||||||
main.minimizeBtn.tooltip=Minimiziraj
|
|
||||||
main.preferencesBtn.tooltip=Postavke
|
|
||||||
main.debugModeEnabled.tooltip=Omogućen je mod otklanjanja pogrešaka
|
|
||||||
main.supporterCertificateMissing.tooltip=Molimo razmislite o doniranju
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Kliknite ovdje da dodate sef
|
main.vaultlist.emptyList.onboardingInstruction=Kliknite ovdje da dodate sef
|
||||||
main.vaultlist.contextMenu.remove=Ukloni…
|
main.vaultlist.contextMenu.remove=Ukloni…
|
||||||
@@ -218,6 +217,7 @@ main.vaultlist.contextMenu.unlock=Otključaj…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Otključaj sada
|
main.vaultlist.contextMenu.unlockNow=Otključaj sada
|
||||||
main.vaultlist.contextMenu.vaultoptions=Pokaži opcije sefa
|
main.vaultlist.contextMenu.vaultoptions=Pokaži opcije sefa
|
||||||
main.vaultlist.contextMenu.reveal=Otkrij pogon
|
main.vaultlist.contextMenu.reveal=Otkrij pogon
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Hvala što ste izabrali Cryptomator za zaštitu podataka. Ako vam je potrebna pomoć, pogledajte naše vodiče za početak:
|
main.vaultDetail.welcomeOnboarding=Hvala što ste izabrali Cryptomator za zaštitu podataka. Ako vam je potrebna pomoć, pogledajte naše vodiče za početak:
|
||||||
@@ -317,4 +317,6 @@ quit.lockAndQuitBtn=Zaključaj i zatvori
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Introduiu el nom de la caixa forta
|
|||||||
addvaultwizard.new.namePrompt=Nom de la caixa forta
|
addvaultwizard.new.namePrompt=Nom de la caixa forta
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=On deu emmagatzemar Cryptomator els fitxers xifrats de la vostra caixa forta?
|
addvaultwizard.new.locationInstruction=On deu emmagatzemar Cryptomator els fitxers xifrats de la vostra caixa forta?
|
||||||
|
addvaultwizard.new.locationLoading=Comprovació del sistema de fitxers locals per a trobar directoris habituals d'emmagatzematge al núvol…
|
||||||
addvaultwizard.new.locationLabel=Ubicació de l'emmagatzematge
|
addvaultwizard.new.locationLabel=Ubicació de l'emmagatzematge
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Ubicació personalitzada
|
addvaultwizard.new.directoryPickerLabel=Ubicació personalitzada
|
||||||
@@ -141,6 +142,9 @@ unlock.error.customPath.description.hideawayNotDir=El fitxer temporal "%3$s" uti
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=La caixa forta no es pot muntar en "%s". Intenteu-ho de nou o escolliu un destí diferent, si us plau.
|
unlock.error.customPath.description.couldNotBeCleaned=La caixa forta no es pot muntar en "%s". Intenteu-ho de nou o escolliu un destí diferent, si us plau.
|
||||||
unlock.error.customPath.description.notEmptyDir=El punt de muntatge "%s" no és una carpeta buida. Trieu una carpeta buida i proveu-ho de nou.
|
unlock.error.customPath.description.notEmptyDir=El punt de muntatge "%s" no és una carpeta buida. Trieu una carpeta buida i proveu-ho de nou.
|
||||||
unlock.error.customPath.description.generic=Al anar a desar la caixa forta en el lloc indicat ha fallat amb el missatge: %2$s
|
unlock.error.customPath.description.generic=Al anar a desar la caixa forta en el lloc indicat ha fallat amb el missatge: %2$s
|
||||||
|
unlock.error.restartRequired.message=No ha estat possible desblocar la caixa forta
|
||||||
|
unlock.error.restartRequired.description=Canvieu el tipus de volum en les opcions de la caixa forta o reinicieu Criptovalor.
|
||||||
|
unlock.error.title=El desblocatge de "%s" ha fallat
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=No es pot accedir a la clau del dispositiu
|
hub.noKeychain.message=No es pot accedir a la clau del dispositiu
|
||||||
hub.noKeychain.description=Per poder desblocar caixes fortes del Hub es requereix la clau d'un dispositiu, que s'emmagatzema de forma segura en un clauer. Per continuar, habiliti "%s" i seleccioni un clauer en les Preferències.
|
hub.noKeychain.description=Per poder desblocar caixes fortes del Hub es requereix la clau d'un dispositiu, que s'emmagatzema de forma segura en un clauer. Per continuar, habiliti "%s" i seleccioni un clauer en les Preferències.
|
||||||
@@ -154,15 +158,30 @@ hub.receive.message=S'està processant la resposta…
|
|||||||
hub.receive.description=Cryptomator està rebent i processant la resposta del Hub. Espereu, si us plau.
|
hub.receive.description=Cryptomator està rebent i processant la resposta del Hub. Espereu, si us plau.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Nou dispositiu
|
hub.register.message=Nou dispositiu
|
||||||
|
hub.register.description=Aquest és el primer accés a Hub d'aquest dispositiu. Si us plau, registreu-vos-hi amb la vostra Account Key.
|
||||||
hub.register.nameLabel=Nom del dispositiu
|
hub.register.nameLabel=Nom del dispositiu
|
||||||
|
hub.register.invalidAccountKeyLabel=Account Key no és vàlida
|
||||||
|
hub.register.registerBtn=Registre
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=El nom ja està en ús
|
||||||
|
hub.register.legacy.description=Aquest és el primer accés a Hub d'aquest dispositiu. Si us plau, registreu-lo.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Dispositiu registrat
|
||||||
|
hub.registerSuccess.description=El vostre dispositiu ha estat registrat correctament. Ara podeu desblocar la caixa forta.
|
||||||
hub.registerSuccess.unlockBtn=Desbloqueja
|
hub.registerSuccess.unlockBtn=Desbloqueja
|
||||||
|
hub.registerSuccess.legacy.description=Per a accedir a la caixa forta, el vostre dispositiu ha de ser autoritzat pel propietari de la caixa.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=El registre del dispositiu ha fallat
|
||||||
|
hub.registerFailed.description.generic=S'ha produït un error en el procés de registre. Per a obtindre'n més detalls vegeu els registres de l'aplicació.
|
||||||
|
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
|
### Unauthorized
|
||||||
hub.unauthorized.message=Accés denegat
|
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.
|
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
||||||
### Requires Account Initialization
|
### 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
|
||||||
|
hub.requireAccountInit.description.1=perfil d'usuari de Hub
|
||||||
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.invalidLicense.message=La llicència del Hub no és vàlida
|
hub.invalidLicense.message=La llicència del Hub no és vàlida
|
||||||
hub.invalidLicense.description=Aquest Cryptomator Hub no té una llicència vàlida. Informa si us plau a l'administrador perquè actualitzi o renovi la llicència.
|
hub.invalidLicense.description=Aquest Cryptomator Hub no té una llicència vàlida. Informa si us plau a l'administrador perquè actualitzi o renovi la llicència.
|
||||||
@@ -280,13 +299,14 @@ preferences.interface.language.auto=Valor predeterminat del sistema
|
|||||||
preferences.interface.interfaceOrientation=Orientació de la interfície
|
preferences.interface.interfaceOrientation=Orientació de la interfície
|
||||||
preferences.interface.interfaceOrientation.ltr=Esquerra a dreta
|
preferences.interface.interfaceOrientation.ltr=Esquerra a dreta
|
||||||
preferences.interface.interfaceOrientation.rtl=Dreta a esquerra
|
preferences.interface.interfaceOrientation.rtl=Dreta a esquerra
|
||||||
preferences.interface.showMinimizeButton=Mostra el botó 'minimitzar'
|
|
||||||
preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Unitat virtual
|
preferences.volume=Unitat virtual
|
||||||
|
preferences.volume.type=Tipus de volum per defecte
|
||||||
preferences.volume.type.automatic=Automàtic
|
preferences.volume.type.automatic=Automàtic
|
||||||
preferences.volume.docsTooltip=Obre la documentació per aprendre més sobre els diferents tipus de volums.
|
preferences.volume.docsTooltip=Obre la documentació per aprendre més sobre els diferents tipus de volums.
|
||||||
preferences.volume.fuseRestartRequired=Per aplicar els canvis Cryptomator necessita reiniciar-se.
|
preferences.volume.fuseRestartRequired=Per aplicar els canvis Cryptomator necessita reiniciar-se.
|
||||||
|
preferences.volume.tcp.port=Port TCP per defecte
|
||||||
preferences.volume.supportedFeatures=El tipus de volum escollit suporta les següents característiques:
|
preferences.volume.supportedFeatures=El tipus de volum escollit suporta les següents característiques:
|
||||||
preferences.volume.feature.mountAuto=Selecció automàtica del punt de muntatge
|
preferences.volume.feature.mountAuto=Selecció automàtica del punt de muntatge
|
||||||
preferences.volume.feature.mountToDir=Directori personalitzat com a punt de muntatge
|
preferences.volume.feature.mountToDir=Directori personalitzat com a punt de muntatge
|
||||||
@@ -299,12 +319,16 @@ preferences.updates.currentVersion=Versió actual: %s
|
|||||||
preferences.updates.autoUpdateCheck=Comprova automàticament si hi ha actualitzacions
|
preferences.updates.autoUpdateCheck=Comprova automàticament si hi ha actualitzacions
|
||||||
preferences.updates.checkNowBtn=Comprova-ho ara
|
preferences.updates.checkNowBtn=Comprova-ho ara
|
||||||
preferences.updates.updateAvailable=L'actualització a la versió %s es troba disponible.
|
preferences.updates.updateAvailable=L'actualització a la versió %s es troba disponible.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Doneu-nos suport
|
preferences.contribute=Doneu-nos suport
|
||||||
preferences.contribute.registeredFor=Certificat de col·laborador registrat per a %s
|
preferences.contribute.registeredFor=Certificat de col·laborador registrat per a %s
|
||||||
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.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.getCertificate=Encara no en teniu cap? Sapigueu com aconseguir-ne un.
|
||||||
preferences.contribute.promptText=Enganxeu aquí el certificat de col·laborador
|
preferences.contribute.promptText=Enganxeu aquí el certificat de col·laborador
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Elimina
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -346,11 +370,6 @@ stats.access.total=Total d'accessos: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Tanca
|
|
||||||
main.minimizeBtn.tooltip=Minimitza
|
|
||||||
main.preferencesBtn.tooltip=Preferències
|
|
||||||
main.debugModeEnabled.tooltip=Mode depuració activat
|
|
||||||
main.supporterCertificateMissing.tooltip=Si us plau, considereu fer una donació
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Feu clic aquí per afegir una caixa forta
|
main.vaultlist.emptyList.onboardingInstruction=Feu clic aquí per afegir una caixa forta
|
||||||
main.vaultlist.contextMenu.remove=Elimina…
|
main.vaultlist.contextMenu.remove=Elimina…
|
||||||
@@ -359,9 +378,7 @@ main.vaultlist.contextMenu.unlock=Desbloca…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Desbloqueja ara
|
main.vaultlist.contextMenu.unlockNow=Desbloqueja ara
|
||||||
main.vaultlist.contextMenu.vaultoptions=Opcions de la caixa forta
|
main.vaultlist.contextMenu.vaultoptions=Opcions de la caixa forta
|
||||||
main.vaultlist.contextMenu.reveal=Mostra la unitat
|
main.vaultlist.contextMenu.reveal=Mostra la unitat
|
||||||
main.vaultlist.addVaultBtn=Afegir
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nova caixa forta...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Caixa forta existent...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### 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:
|
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:
|
||||||
@@ -371,6 +388,7 @@ main.vaultDetail.unlockBtn=Desbloca…
|
|||||||
main.vaultDetail.unlockNowBtn=Desbloqueja ara
|
main.vaultDetail.unlockNowBtn=Desbloqueja ara
|
||||||
main.vaultDetail.optionsBtn=Opcions de la caixa forta
|
main.vaultDetail.optionsBtn=Opcions de la caixa forta
|
||||||
main.vaultDetail.passwordSavedInKeychain=Contrasenya desada
|
main.vaultDetail.passwordSavedInKeychain=Contrasenya desada
|
||||||
|
main.vaultDetail.share=Compateix…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=DESBLOQUEJADA
|
main.vaultDetail.unlockedStatus=DESBLOQUEJADA
|
||||||
main.vaultDetail.accessLocation=Els continguts de la vostra caixa forta són accessibles aquí:
|
main.vaultDetail.accessLocation=Els continguts de la vostra caixa forta són accessibles aquí:
|
||||||
@@ -425,6 +443,7 @@ vaultOptions.general.startHealthCheckBtn=Inicia la comprovació
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Muntatge
|
vaultOptions.mount=Muntatge
|
||||||
|
vaultOptions.mount.info=Obriu les preferències de la unitat virtual per a canviar les preferències per defecte.
|
||||||
vaultOptions.mount.readonly=Només lectura
|
vaultOptions.mount.readonly=Només lectura
|
||||||
vaultOptions.mount.customMountFlags=Senyaladors de muntatge personalitzats
|
vaultOptions.mount.customMountFlags=Senyaladors de muntatge personalitzats
|
||||||
vaultOptions.mount.winDriveLetterOccupied=ocupat
|
vaultOptions.mount.winDriveLetterOccupied=ocupat
|
||||||
@@ -434,6 +453,10 @@ vaultOptions.mount.mountPoint.driveLetter=Utilitza la lletra de la unitat assign
|
|||||||
vaultOptions.mount.mountPoint.custom=Faci servir el directori escollit
|
vaultOptions.mount.mountPoint.custom=Faci servir el directori escollit
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Trieu…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Trieu…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Triï un directori
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Triï un directori
|
||||||
|
vaultOptions.mount.volumeType.default=Per defecte (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Per a fer servir aquest tipus de volum cal reiniciar Cryptomator.
|
||||||
|
vaultOptions.mount.volume.tcp.port=Port TCP
|
||||||
|
vaultOptions.mount.volume.type=Tipus de volum
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Contrasenya
|
vaultOptions.masterkey=Contrasenya
|
||||||
vaultOptions.masterkey.changePasswordBtn=Canvi de contrasenya
|
vaultOptions.masterkey.changePasswordBtn=Canvi de contrasenya
|
||||||
@@ -505,4 +528,25 @@ updateReminder.notNow=Ara no
|
|||||||
updateReminder.yesOnce=Sí, una vegada
|
updateReminder.yesOnce=Sí, una vegada
|
||||||
updateReminder.yesAutomatically=Sí, automàticament
|
updateReminder.yesAutomatically=Sí, automàticament
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Obrir les Preferències
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Comparteix la caixa forta
|
||||||
|
shareVault.message=Voleu compartir la vostra caixa forta amb altres persones?
|
||||||
|
shareVault.description=Aneu amb molt de compte quan compartiu la vostra caixa forta amb altres persones. En resum, seguiu aquests passos:
|
||||||
|
shareVault.instruction.1=1. Compartiu l'accés a la carpeta via emmagatzematge en el núvol.
|
||||||
|
shareVault.instruction.2=2. Compartiu la contrasenya de la caixa forta per un mitjà segur.
|
||||||
|
shareVault.remarkBestPractices=Si en voleu més informació, feu una ullada als suggeriments que trobareu a la nostra documentació.
|
||||||
|
shareVault.docsTooltip=Obre la documentació per aprendre més sobre compartir caixes fortes.
|
||||||
|
shareVault.hubAd.description=La forma segura de treballar en equip
|
||||||
|
shareVault.hubAd.keyManagement=* Gestió sense divulgació de mots de pas
|
||||||
|
shareVault.hubAd.authentication=* Autenticació forta
|
||||||
|
shareVault.hubAd.encryption=Xifratge d'extrem a extrem
|
||||||
|
shareVault.visitHub=Visita Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Com compartir una caixa forta al Hub
|
||||||
|
shareVault.hub.description=Per tal de compartir el contingut de la caixa forta amb un altre membre de l'equip, heu de seguir dos passos:
|
||||||
|
shareVault.hub.instruction.1=1. Compartiu l'accés a la carpeta via emmagatzematge en el núvol.
|
||||||
|
shareVault.hub.instruction.2=2. Doneu accés al membre de l'equip a Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Obre Cryptomator Hub
|
||||||
@@ -24,6 +24,7 @@ error.existingSolutionDescription=Cryptomator neočekával, že se tak stane. Na
|
|||||||
error.hyperlink.solution=Podívejte se na řešení
|
error.hyperlink.solution=Podívejte se na řešení
|
||||||
error.lookupPermissionMessage=Cryptomator může najít řešení tohoto problému online. To odešle žádost do naší databáze problémů z vaší IP adresy.
|
error.lookupPermissionMessage=Cryptomator může najít řešení tohoto problému online. To odešle žádost do naší databáze problémů z vaší IP adresy.
|
||||||
error.dismiss=Zrušit
|
error.dismiss=Zrušit
|
||||||
|
error.lookUpSolution=Vyhledat řešení
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=Trezor
|
defaults.vault.vaultName=Trezor
|
||||||
@@ -46,6 +47,7 @@ addvaultwizard.new.nameInstruction=Zvolte jméno trezoru
|
|||||||
addvaultwizard.new.namePrompt=Název trezoru
|
addvaultwizard.new.namePrompt=Název trezoru
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Kde by měl Cryptomator ukládat šifrované soubory vašeho trezoru?
|
addvaultwizard.new.locationInstruction=Kde by měl Cryptomator ukládat šifrované soubory vašeho trezoru?
|
||||||
|
addvaultwizard.new.locationLoading=Kontroluji lokální souborový systém pro výchozí cloudové úložiště…
|
||||||
addvaultwizard.new.locationLabel=Umístění úložiště
|
addvaultwizard.new.locationLabel=Umístění úložiště
|
||||||
addvaultwizard.new.locationPrompt=...
|
addvaultwizard.new.locationPrompt=...
|
||||||
addvaultwizard.new.directoryPickerLabel=Vlastní umístění
|
addvaultwizard.new.directoryPickerLabel=Vlastní umístění
|
||||||
@@ -135,8 +137,12 @@ unlock.success.revealBtn=Zobrazit jednotku
|
|||||||
unlock.error.customPath.message=Nelze připojit trezor k vlastní cestě
|
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.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.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.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
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Nelze získat přístup ke klíči zařízení
|
hub.noKeychain.message=Nelze získat přístup ke klíči zařízení
|
||||||
|
hub.noKeychain.description=Chcete-li odemknout Hub trezory, je potřeba použít klíč zařízení, který je zabezpečen pomocí klíčenky. Chcete-li pokračovat, povolte „%s“ a vyberte klíčenku v nastavení.
|
||||||
hub.noKeychain.openBtn=Otevřít předvolby
|
hub.noKeychain.openBtn=Otevřít předvolby
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=Čekání na ověření…
|
hub.auth.message=Čekání na ověření…
|
||||||
@@ -144,19 +150,33 @@ hub.auth.description=Měli byste být automaticky přesměrováni na přihlašov
|
|||||||
hub.auth.loginLink=Nebyli jste přesměrováni? Klikněte zde pro otevření.
|
hub.auth.loginLink=Nebyli jste přesměrováni? Klikněte zde pro otevření.
|
||||||
### Receive Key
|
### Receive Key
|
||||||
hub.receive.message=Zpracovávání odezvy…
|
hub.receive.message=Zpracovávání odezvy…
|
||||||
|
hub.receive.description=Cryptomator přijímá a zpracovává odpověď od Hubu. Počkejte prosím.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Nové zařízení
|
hub.register.message=Nové zařízení
|
||||||
|
hub.register.description=Toto je první přístup k Hub z tohoto zařízení. Zaregistrujte ho pomocí vašeho Account Key.
|
||||||
hub.register.nameLabel=Název zařízení
|
hub.register.nameLabel=Název zařízení
|
||||||
|
hub.register.invalidAccountKeyLabel=Neplatný Account Key
|
||||||
hub.register.registerBtn=Registrovat
|
hub.register.registerBtn=Registrovat
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Jméno je již používáno
|
||||||
|
hub.register.legacy.description=Toto je první přístup k Hubu z tohoto zařízení. Zaregistrujte ho.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Zařízení registrováno
|
||||||
|
hub.registerSuccess.description=Vaše zařízení je úspěšně zaregistrováno. Nyní můžete pokračovat v odemknutí trezoru.
|
||||||
hub.registerSuccess.unlockBtn=Odemknout
|
hub.registerSuccess.unlockBtn=Odemknout
|
||||||
|
hub.registerSuccess.legacy.description=Pro přístup k trezoru musí být vaše zařízení autorizováno majitelem trezoru.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Registrace zařízení se nezdařila
|
||||||
|
hub.registerFailed.description.generic=Došlo k chybě v registračním procesu. Pro více detailů se podívejte do logu aplikace.
|
||||||
|
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
|
### Unauthorized
|
||||||
hub.unauthorized.message=Přístup odepřen
|
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.
|
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
|
### Requires Account Initialization
|
||||||
hub.requireAccountInit.message=Požadována akce
|
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
|
||||||
|
hub.requireAccountInit.description.1=Uživatelský profil Hubu
|
||||||
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.invalidLicense.message=Licence Hubu je neplatná
|
hub.invalidLicense.message=Licence Hubu je neplatná
|
||||||
|
|
||||||
@@ -236,6 +256,7 @@ health.result.severityFilter.good=Dobré
|
|||||||
health.result.severityFilter.info=Informace
|
health.result.severityFilter.info=Informace
|
||||||
health.result.severityFilter.warn=Varování
|
health.result.severityFilter.warn=Varování
|
||||||
health.result.severityFilter.crit=Kritické
|
health.result.severityFilter.crit=Kritické
|
||||||
|
health.result.fixStateFilter.all=Stav opravy - Vše
|
||||||
health.result.fixStateFilter.fixable=Opravitelné
|
health.result.fixStateFilter.fixable=Opravitelné
|
||||||
health.result.fixStateFilter.notFixable=Ne opravitelné
|
health.result.fixStateFilter.notFixable=Ne opravitelné
|
||||||
health.result.fixStateFilter.fixing=Opravování…
|
health.result.fixStateFilter.fixing=Opravování…
|
||||||
@@ -251,6 +272,7 @@ preferences.title=Nastavení
|
|||||||
## General
|
## General
|
||||||
preferences.general=Obecné
|
preferences.general=Obecné
|
||||||
preferences.general.startHidden=Skrýt okno Cryptomatoru při spuštění
|
preferences.general.startHidden=Skrýt okno Cryptomatoru při spuštění
|
||||||
|
preferences.general.autoCloseVaults=Zamknout trezory automaticky při ukončení aplikace
|
||||||
preferences.general.debugLogging=Ladicí režim
|
preferences.general.debugLogging=Ladicí režim
|
||||||
preferences.general.debugDirectory=Ukázat soubory se záznamy událostí (log)
|
preferences.general.debugDirectory=Ukázat soubory se záznamy událostí (log)
|
||||||
preferences.general.autoStart=Spustit Cryptomator při spuštění systému
|
preferences.general.autoStart=Spustit Cryptomator při spuštění systému
|
||||||
@@ -267,12 +289,15 @@ preferences.interface.language.auto=Podle systému
|
|||||||
preferences.interface.interfaceOrientation=Orientace
|
preferences.interface.interfaceOrientation=Orientace
|
||||||
preferences.interface.interfaceOrientation.ltr=Zleva doprava
|
preferences.interface.interfaceOrientation.ltr=Zleva doprava
|
||||||
preferences.interface.interfaceOrientation.rtl=Zprava doleva
|
preferences.interface.interfaceOrientation.rtl=Zprava doleva
|
||||||
preferences.interface.showMinimizeButton=Zobrazit tlačítko minimalizovat
|
|
||||||
preferences.interface.showTrayIcon=Zobrazit ikonu v liště (vyžaduje restart)
|
preferences.interface.showTrayIcon=Zobrazit ikonu v liště (vyžaduje restart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuální jednotky
|
preferences.volume=Virtuální jednotky
|
||||||
preferences.volume.type=Výchozí typ jednotky
|
preferences.volume.type=Výchozí typ jednotky
|
||||||
preferences.volume.type.automatic=Automatické
|
preferences.volume.type.automatic=Automatické
|
||||||
|
preferences.volume.docsTooltip=Otevřete dokumentaci, abyste se dozvěděli více o různých typech svazků.
|
||||||
|
preferences.volume.fuseRestartRequired=Chcete-li použít změny, Cryptomator musí být restartován.
|
||||||
|
preferences.volume.tcp.port=Výchozí TCP port
|
||||||
|
preferences.volume.supportedFeatures=Zvolený typ svazku podporuje následující funkce:
|
||||||
preferences.volume.feature.mountFlags=Vlastní možnosti připojení disku
|
preferences.volume.feature.mountFlags=Vlastní možnosti připojení disku
|
||||||
preferences.volume.feature.readOnly=Připojení disku pouze pro čtení
|
preferences.volume.feature.readOnly=Připojení disku pouze pro čtení
|
||||||
## Updates
|
## Updates
|
||||||
@@ -281,12 +306,16 @@ preferences.updates.currentVersion=Aktuální verze: %s
|
|||||||
preferences.updates.autoUpdateCheck=Automaticky kontrolovat aktualizace
|
preferences.updates.autoUpdateCheck=Automaticky kontrolovat aktualizace
|
||||||
preferences.updates.checkNowBtn=Zkontrolovat nyní
|
preferences.updates.checkNowBtn=Zkontrolovat nyní
|
||||||
preferences.updates.updateAvailable=Dostupná nová verze %s.
|
preferences.updates.updateAvailable=Dostupná nová verze %s.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Podpořte nás
|
preferences.contribute=Podpořte nás
|
||||||
preferences.contribute.registeredFor=Certifikát podporovatele byl registrován pro %s
|
preferences.contribute.registeredFor=Certifikát podporovatele byl registrován pro %s
|
||||||
preferences.contribute.noCertificate=Podpořte Cryptomator a získejte certifikát podporovatele. Je to jako licenční klíč, ale pro skvělé lidi, kteří používají svobodný software. ;-)
|
preferences.contribute.noCertificate=Podpořte Cryptomator a získejte certifikát podporovatele. Je to jako licenční klíč, ale pro skvělé lidi, kteří používají svobodný software. ;-)
|
||||||
preferences.contribute.getCertificate=Ještě žádný nemáte? Naučte se, jak ho můžete získat.
|
preferences.contribute.getCertificate=Ještě žádný nemáte? Naučte se, jak ho můžete získat.
|
||||||
preferences.contribute.promptText=Sem vložte kód certifikátu podporovatele
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -328,11 +357,6 @@ stats.access.total=Přístup celkem: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Zavřít
|
|
||||||
main.minimizeBtn.tooltip=Minimalizovat
|
|
||||||
main.preferencesBtn.tooltip=Nastavení
|
|
||||||
main.debugModeEnabled.tooltip=Režim ladění je povolen
|
|
||||||
main.supporterCertificateMissing.tooltip=Prosím, zvažte darování
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klikněte zde pro přidání nového trezoru
|
main.vaultlist.emptyList.onboardingInstruction=Klikněte zde pro přidání nového trezoru
|
||||||
main.vaultlist.contextMenu.remove=Odstranit…
|
main.vaultlist.contextMenu.remove=Odstranit…
|
||||||
@@ -341,9 +365,7 @@ main.vaultlist.contextMenu.unlock=Odemknout…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Odemknout nyní
|
main.vaultlist.contextMenu.unlockNow=Odemknout nyní
|
||||||
main.vaultlist.contextMenu.vaultoptions=Zobrazit možnosti trezoru
|
main.vaultlist.contextMenu.vaultoptions=Zobrazit možnosti trezoru
|
||||||
main.vaultlist.contextMenu.reveal=Zobrazit jednotku
|
main.vaultlist.contextMenu.reveal=Zobrazit jednotku
|
||||||
main.vaultlist.addVaultBtn=Přidat
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nový trezor...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Existující trezor...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Děkujeme, že jste si vybrali Cryptomator pro ochranu vašich souborů. Pokud potřebujete pomoc, podívejte se na naše návody:
|
main.vaultDetail.welcomeOnboarding=Děkujeme, že jste si vybrali Cryptomator pro ochranu vašich souborů. Pokud potřebujete pomoc, podívejte se na naše návody:
|
||||||
@@ -353,6 +375,7 @@ main.vaultDetail.unlockBtn=Odemknout…
|
|||||||
main.vaultDetail.unlockNowBtn=Odemknout nyní
|
main.vaultDetail.unlockNowBtn=Odemknout nyní
|
||||||
main.vaultDetail.optionsBtn=Možnosti trezoru
|
main.vaultDetail.optionsBtn=Možnosti trezoru
|
||||||
main.vaultDetail.passwordSavedInKeychain=Heslo uloženo
|
main.vaultDetail.passwordSavedInKeychain=Heslo uloženo
|
||||||
|
main.vaultDetail.share=Sdílet…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=ODEMKNUTO
|
main.vaultDetail.unlockedStatus=ODEMKNUTO
|
||||||
main.vaultDetail.accessLocation=Obsah vašeho trezoru je dostupný:
|
main.vaultDetail.accessLocation=Obsah vašeho trezoru je dostupný:
|
||||||
@@ -366,7 +389,9 @@ main.vaultDetail.throughput.kbps=%.1f KiB/s
|
|||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistiky trezoru
|
main.vaultDetail.stats=Statistiky trezoru
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Najít šifrovaný soubor
|
main.vaultDetail.locateEncryptedFileBtn=Najít šifrovaný soubor
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=Vyberte soubor z vašeho trezoru, abyste našli jeho šifrovaný protějšek
|
||||||
main.vaultDetail.encryptedPathsCopied=Cesta souboru byla zkopírována do schránky!
|
main.vaultDetail.encryptedPathsCopied=Cesta souboru byla zkopírována do schránky!
|
||||||
|
main.vaultDetail.filePickerTitle=Vyberte soubor uvnitř trezoru
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator nemohl najít trezor na této cestě.
|
main.vaultDetail.missing.info=Cryptomator nemohl najít trezor na této cestě.
|
||||||
main.vaultDetail.missing.recheck=Znovu zkontrolovat
|
main.vaultDetail.missing.recheck=Znovu zkontrolovat
|
||||||
@@ -411,8 +436,10 @@ vaultOptions.mount.winDriveLetterOccupied=obsazeno
|
|||||||
vaultOptions.mount.mountPoint=Přípojný bod
|
vaultOptions.mount.mountPoint=Přípojný bod
|
||||||
vaultOptions.mount.mountPoint.auto=Automaticky vybrat vhodné místo
|
vaultOptions.mount.mountPoint.auto=Automaticky vybrat vhodné místo
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Použít zvolenou jednotku
|
vaultOptions.mount.mountPoint.driveLetter=Použít zvolenou jednotku
|
||||||
|
vaultOptions.mount.mountPoint.custom=Použít vybraný adresář
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Vybrat...
|
vaultOptions.mount.mountPoint.directoryPickerButton=Vybrat...
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Vyberte složku
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Vyberte složku
|
||||||
|
vaultOptions.mount.volumeType.default=Výchozí (%s)
|
||||||
vaultOptions.mount.volume.tcp.port=TCP port
|
vaultOptions.mount.volume.tcp.port=TCP port
|
||||||
vaultOptions.mount.volume.type=Typ jednotky
|
vaultOptions.mount.volume.type=Typ jednotky
|
||||||
## Master Key
|
## Master Key
|
||||||
@@ -437,18 +464,23 @@ recoveryKey.display.StorageHints=Uchovejte ho někde velmi bezpečně, např.\n
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Resetovat heslo
|
recoveryKey.recover.title=Resetovat heslo
|
||||||
|
recoveryKey.recover.prompt=Zadejte obnovovací klíč pro "%s":
|
||||||
recoveryKey.recover.correctKey=Toto je platný obnovovací klíč
|
recoveryKey.recover.correctKey=Toto je platný obnovovací klíč
|
||||||
|
recoveryKey.recover.wrongKey=Tento klíč pro obnovení partří k jinému trezoru
|
||||||
|
recoveryKey.recover.invalidKey=Tento klíč pro obnovení není platný
|
||||||
recoveryKey.printout.heading=Obnovovací klíč Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Obnovovací klíč Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetovat
|
recoveryKey.recover.resetBtn=Resetovat
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
recoveryKey.recover.resetSuccess.message=Resetování hesla bylo úspěšné
|
recoveryKey.recover.resetSuccess.message=Resetování hesla bylo úspěšné
|
||||||
|
recoveryKey.recover.resetSuccess.description=Můžete odemknout váš trezor pomocí nového hesla.
|
||||||
|
|
||||||
# Convert Vault
|
# Convert Vault
|
||||||
convertVault.title=Převést trezor
|
convertVault.title=Převést trezor
|
||||||
convertVault.convert.convertBtn.before=Převést
|
convertVault.convert.convertBtn.before=Převést
|
||||||
convertVault.convert.convertBtn.processing=Převádění…
|
convertVault.convert.convertBtn.processing=Převádění…
|
||||||
convertVault.success.message=Konverze byla úspěšná
|
convertVault.success.message=Konverze byla úspěšná
|
||||||
|
convertVault.hubToPassword.success.description=Nyní můžete odemknout trezor zvoleným heslem bez nutnosti přístupu k Hubu.
|
||||||
|
|
||||||
# New Password
|
# New Password
|
||||||
newPassword.promptText=Zadejte nové heslo
|
newPassword.promptText=Zadejte nové heslo
|
||||||
@@ -479,4 +511,26 @@ updateReminder.notNow=Nyní ne
|
|||||||
updateReminder.yesOnce=Ano, jednou
|
updateReminder.yesOnce=Ano, jednou
|
||||||
updateReminder.yesAutomatically=Ano, automaticky
|
updateReminder.yesAutomatically=Ano, automaticky
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Oznámení o zastaralosti
|
||||||
|
dokanySupportEnd.message=Konec podpory pro Dokany
|
||||||
|
dokanySupportEnd.preferencesBtn=Otevřít předvolby
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Sdílet trezor
|
||||||
|
shareVault.message=Chcete sdílet svůj trezor s ostatními?
|
||||||
|
shareVault.description=Vždy buďte opatrní při sdílení vašeho trezoru s ostatními lidmi. Stručně řečeno, postupujte podle těchto kroků:
|
||||||
|
shareVault.instruction.1=1. Sdílejte přístup ke šifrované složce trezoru prostřednictvím cloudového úložiště.
|
||||||
|
shareVault.instruction.2=2. Sdílejte heslo trezoru bezpečným způsobem.
|
||||||
|
shareVault.remarkBestPractices=Pro více informací se podívejte na návrhy osvědčených postupů v našich dokumentech.
|
||||||
|
shareVault.docsTooltip=Otevřete dokumentaci a dozvíte se více o sdílení trezorů.
|
||||||
|
shareVault.hubAd.description=Bezpečný způsob práce v týmech
|
||||||
|
shareVault.hubAd.authentication=• Silné ověření
|
||||||
|
shareVault.hubAd.encryption=• End-to-end šifrování
|
||||||
|
shareVault.visitHub=Navštivte Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Jak sdílet Hub trezor
|
||||||
|
shareVault.hub.description=Chcete-li sdílet obsah trezoru s jiným členem týmu, musíte provést dva kroky:
|
||||||
|
shareVault.hub.instruction.1=1. Sdílejte přístup ke šifrované složce trezoru prostřednictvím cloudového úložiště.
|
||||||
|
shareVault.hub.instruction.2=2. Udělte přístup členovi týmu v Cryptomator Hubu.
|
||||||
|
shareVault.hub.openHub=Otevřít Cryptomator Hub
|
||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Vælg et navn til boksen
|
|||||||
addvaultwizard.new.namePrompt=Boks-navn
|
addvaultwizard.new.namePrompt=Boks-navn
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Hvor skal Cryptomator gemme de krypterede filer af din boks?
|
addvaultwizard.new.locationInstruction=Hvor skal Cryptomator gemme de krypterede filer af din boks?
|
||||||
|
addvaultwizard.new.locationLoading=Tjekker lokalt filsystem for standard mappe til opbevaring i skyen…
|
||||||
addvaultwizard.new.locationLabel=Dataplacering
|
addvaultwizard.new.locationLabel=Dataplacering
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Vælg placering
|
addvaultwizard.new.directoryPickerLabel=Vælg placering
|
||||||
@@ -141,6 +142,9 @@ unlock.error.customPath.description.hideawayNotDir=Den midlertidige, skjulte fil
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=Din boks kunne ikke monteres på stien "%s". Prøv venligst igen eller vælg en anden sti.
|
unlock.error.customPath.description.couldNotBeCleaned=Din boks kunne ikke monteres på stien "%s". Prøv venligst igen eller vælg en anden sti.
|
||||||
unlock.error.customPath.description.notEmptyDir=Den brugerdefinerede monteringssti "%s" er ikke en tom mappe. Vælg venligst en tom mappe og prøv igen.
|
unlock.error.customPath.description.notEmptyDir=Den brugerdefinerede monteringssti "%s" er ikke en tom mappe. Vælg venligst en tom mappe og prøv igen.
|
||||||
unlock.error.customPath.description.generic=Du har valgt en brugerdefineret monteringssti til denne boks, men det mislykkedes med følgende besked: %2$s
|
unlock.error.customPath.description.generic=Du har valgt en brugerdefineret monteringssti til denne boks, men det mislykkedes med følgende besked: %2$s
|
||||||
|
unlock.error.restartRequired.message=Kan ikke låse boks op
|
||||||
|
unlock.error.restartRequired.description=Skift drev typen i boksindstillinger eller genstart Cryptomator.
|
||||||
|
unlock.error.title=Oplåsning af "%s" mislykkedes
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Kan ikke tilgå enhedsnøgle
|
hub.noKeychain.message=Kan ikke tilgå enhedsnøgle
|
||||||
hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne.
|
hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne.
|
||||||
@@ -154,15 +158,30 @@ hub.receive.message=Behandler svar…
|
|||||||
hub.receive.description=Cryptomator modtager og behandler svaret fra hubben. Vent venligst.
|
hub.receive.description=Cryptomator modtager og behandler svaret fra hubben. Vent venligst.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Ny Enhed
|
hub.register.message=Ny Enhed
|
||||||
|
hub.register.description=Det er første gang Hub tilgås fra denne enhed. Registrer den venligst ved at anvende din Account Key.
|
||||||
hub.register.nameLabel=Enheds-navn
|
hub.register.nameLabel=Enheds-navn
|
||||||
|
hub.register.invalidAccountKeyLabel=Ugyldig Account Key
|
||||||
|
hub.register.registerBtn=Registrer
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Navnet er allerede i brug
|
||||||
|
hub.register.legacy.description=Det er første gang Hub tilgås fra denne enhed. Registrer den venligst.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Enhed registreret
|
||||||
|
hub.registerSuccess.description=Din enhed er registreret. Du kan nu fortsætte med at låse boksen op.
|
||||||
hub.registerSuccess.unlockBtn=Lås op
|
hub.registerSuccess.unlockBtn=Lås op
|
||||||
|
hub.registerSuccess.legacy.description=For at få adgang til boksen, skal din enhed desuden være godkendt af boksens ejer.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Enheds registrering mislykkedes
|
||||||
|
hub.registerFailed.description.generic=Der opstod en fejl i registreringsprocessen. Kig i applikations-loggen for flere detaljer.
|
||||||
|
hub.registerFailed.description.deviceAlreadyExists=Denne enhed er allerede registreret af en anden bruger. Prøv at ændre brugerkontoen eller brug en anden enhed.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=Adgang nægtet
|
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.
|
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
|
### 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
|
||||||
|
hub.requireAccountInit.description.1=Hub brugerprofil
|
||||||
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.invalidLicense.message=Ugyldig Hub-licens
|
hub.invalidLicense.message=Ugyldig Hub-licens
|
||||||
hub.invalidLicense.description=Din Cryptomator Hub har en ugyldig licens. Få venligst en Hub administrator til at opgradere eller forny licensen.
|
hub.invalidLicense.description=Din Cryptomator Hub har en ugyldig licens. Få venligst en Hub administrator til at opgradere eller forny licensen.
|
||||||
@@ -280,13 +299,14 @@ preferences.interface.language.auto=System standard
|
|||||||
preferences.interface.interfaceOrientation=Brugerflade retning
|
preferences.interface.interfaceOrientation=Brugerflade retning
|
||||||
preferences.interface.interfaceOrientation.ltr=Venstre til højre
|
preferences.interface.interfaceOrientation.ltr=Venstre til højre
|
||||||
preferences.interface.interfaceOrientation.rtl=Højre til venstre
|
preferences.interface.interfaceOrientation.rtl=Højre til venstre
|
||||||
preferences.interface.showMinimizeButton=Vis knap til minimering
|
|
||||||
preferences.interface.showTrayIcon=Vis ikon i system-bakken (kræver genstart)
|
preferences.interface.showTrayIcon=Vis ikon i system-bakken (kræver genstart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuelt drev
|
preferences.volume=Virtuelt drev
|
||||||
|
preferences.volume.type=Standard Drev Type
|
||||||
preferences.volume.type.automatic=Automatisk
|
preferences.volume.type.automatic=Automatisk
|
||||||
preferences.volume.docsTooltip=Åbn dokumentationen for at lære mere om de forskellige typer drev.
|
preferences.volume.docsTooltip=Åbn dokumentationen for at lære mere om de forskellige typer drev.
|
||||||
preferences.volume.fuseRestartRequired=For at anvende ændringerne skal Cryptomator genstartes.
|
preferences.volume.fuseRestartRequired=For at anvende ændringerne skal Cryptomator genstartes.
|
||||||
|
preferences.volume.tcp.port=Standard TCP- Port
|
||||||
preferences.volume.supportedFeatures=Den valgte type drev understøtter følgende funktioner:
|
preferences.volume.supportedFeatures=Den valgte type drev understøtter følgende funktioner:
|
||||||
preferences.volume.feature.mountAuto=Automatisk valg af monteringspunkt
|
preferences.volume.feature.mountAuto=Automatisk valg af monteringspunkt
|
||||||
preferences.volume.feature.mountToDir=Brugerdefineret mappe som monteringspunkt
|
preferences.volume.feature.mountToDir=Brugerdefineret mappe som monteringspunkt
|
||||||
@@ -299,12 +319,16 @@ preferences.updates.currentVersion=Nuværende version: %s
|
|||||||
preferences.updates.autoUpdateCheck=Søg automatisk efter opdateringer
|
preferences.updates.autoUpdateCheck=Søg automatisk efter opdateringer
|
||||||
preferences.updates.checkNowBtn=Kontrollér nu
|
preferences.updates.checkNowBtn=Kontrollér nu
|
||||||
preferences.updates.updateAvailable=Opdatering til version %s er tilgængelig.
|
preferences.updates.updateAvailable=Opdatering til version %s er tilgængelig.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Støt os
|
preferences.contribute=Støt os
|
||||||
preferences.contribute.registeredFor=Registreret supporter-certifikat for %s
|
preferences.contribute.registeredFor=Registreret supporter-certifikat for %s
|
||||||
preferences.contribute.noCertificate=Hjælp Cryptomator, og modtag et supporter-certifikat. Det er ligesom en license-nøgle, men til fantastiske mennesker som bruger fri software. ;-)
|
preferences.contribute.noCertificate=Hjælp Cryptomator, og modtag et supporter-certifikat. Det er ligesom en license-nøgle, men til fantastiske mennesker som bruger fri software. ;-)
|
||||||
preferences.contribute.getCertificate=Har du ikke et allerede? Se her hvordan du kan få et.
|
preferences.contribute.getCertificate=Har du ikke et allerede? Se her hvordan du kan få et.
|
||||||
preferences.contribute.promptText=Indsæt koden for supporter-certifikatet her
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -346,11 +370,6 @@ stats.access.total=Samlede adgang: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Luk
|
|
||||||
main.minimizeBtn.tooltip=Minimér
|
|
||||||
main.preferencesBtn.tooltip=Præferencer
|
|
||||||
main.debugModeEnabled.tooltip=Fejlfindingstilstand er aktiveret
|
|
||||||
main.supporterCertificateMissing.tooltip=Overvej venligst at donere
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klik her for at tilføje en boks
|
main.vaultlist.emptyList.onboardingInstruction=Klik her for at tilføje en boks
|
||||||
main.vaultlist.contextMenu.remove=Fjern…
|
main.vaultlist.contextMenu.remove=Fjern…
|
||||||
@@ -359,9 +378,7 @@ main.vaultlist.contextMenu.unlock=Lås op…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Lås op nu
|
main.vaultlist.contextMenu.unlockNow=Lås op nu
|
||||||
main.vaultlist.contextMenu.vaultoptions=Vis boksindstillinger
|
main.vaultlist.contextMenu.vaultoptions=Vis boksindstillinger
|
||||||
main.vaultlist.contextMenu.reveal=Vis drev
|
main.vaultlist.contextMenu.reveal=Vis drev
|
||||||
main.vaultlist.addVaultBtn=Tilføj
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Ny Boks...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Eksisterende Boks...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Tak fordi du valgte Cryptomator til at beskytte dine filer. Hvis du har brug for hjælp, så tjek vores guider for at komme i gang:
|
main.vaultDetail.welcomeOnboarding=Tak fordi du valgte Cryptomator til at beskytte dine filer. Hvis du har brug for hjælp, så tjek vores guider for at komme i gang:
|
||||||
@@ -371,6 +388,7 @@ main.vaultDetail.unlockBtn=Lås op…
|
|||||||
main.vaultDetail.unlockNowBtn=Lås op nu
|
main.vaultDetail.unlockNowBtn=Lås op nu
|
||||||
main.vaultDetail.optionsBtn=Boksindstillinger
|
main.vaultDetail.optionsBtn=Boksindstillinger
|
||||||
main.vaultDetail.passwordSavedInKeychain=Adgangskode gemt
|
main.vaultDetail.passwordSavedInKeychain=Adgangskode gemt
|
||||||
|
main.vaultDetail.share=Del…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=LÅST OP
|
main.vaultDetail.unlockedStatus=LÅST OP
|
||||||
main.vaultDetail.accessLocation=Boksens indhold er tilgængeligt her:
|
main.vaultDetail.accessLocation=Boksens indhold er tilgængeligt her:
|
||||||
@@ -425,6 +443,7 @@ vaultOptions.general.startHealthCheckBtn=Start sunhedstjek
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Montering
|
vaultOptions.mount=Montering
|
||||||
|
vaultOptions.mount.info=Åbn indstillinger for virtuelle drev for at ændre standardindstillinger.
|
||||||
vaultOptions.mount.readonly=Skrivebeskyttet
|
vaultOptions.mount.readonly=Skrivebeskyttet
|
||||||
vaultOptions.mount.customMountFlags=Brugerdefinerede monterings-flag
|
vaultOptions.mount.customMountFlags=Brugerdefinerede monterings-flag
|
||||||
vaultOptions.mount.winDriveLetterOccupied=optaget
|
vaultOptions.mount.winDriveLetterOccupied=optaget
|
||||||
@@ -434,6 +453,10 @@ vaultOptions.mount.mountPoint.driveLetter=Brug et ledigt drevbogstav
|
|||||||
vaultOptions.mount.mountPoint.custom=Brug en valgt mappe
|
vaultOptions.mount.mountPoint.custom=Brug en valgt mappe
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Vælg…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Vælg…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Vælg en mappe
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Vælg en mappe
|
||||||
|
vaultOptions.mount.volumeType.default=Standard (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=For bruge denne drev type skal Cryptomator genstartes.
|
||||||
|
vaultOptions.mount.volume.tcp.port=TCP Port
|
||||||
|
vaultOptions.mount.volume.type=Drev Type
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Adgangskode
|
vaultOptions.masterkey=Adgangskode
|
||||||
vaultOptions.masterkey.changePasswordBtn=Skift adgangskode
|
vaultOptions.masterkey.changePasswordBtn=Skift adgangskode
|
||||||
@@ -505,4 +528,25 @@ updateReminder.notNow=Ikke nu
|
|||||||
updateReminder.yesOnce=Ja, én gang
|
updateReminder.yesOnce=Ja, én gang
|
||||||
updateReminder.yesAutomatically=Ja, automatisk
|
updateReminder.yesAutomatically=Ja, automatisk
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Åbn Indstillinger
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Del Boks
|
||||||
|
shareVault.message=Vil du dele din boks med andre?
|
||||||
|
shareVault.description=Vær altid forsigtig, når du deler din boks med andre. Kort sagt, følg disse trin:
|
||||||
|
shareVault.instruction.1=1. Del adgang til den krypterede boks-mappe via opbevaring i skyen.
|
||||||
|
shareVault.instruction.2=2. Del boksens adgangskode på en sikker måde.
|
||||||
|
shareVault.remarkBestPractices=For mere information, tjek best practice forslag i vores dokumenter.
|
||||||
|
shareVault.docsTooltip=Åbn dokumentationen for at lære mere om deling af bokse.
|
||||||
|
shareVault.hubAd.description=Den sikre måde at arbejde i hold
|
||||||
|
shareVault.hubAd.keyManagement=Zero-knowledge nøgle håndtering
|
||||||
|
shareVault.hubAd.authentication=Stærk autentifikation
|
||||||
|
shareVault.hubAd.encryption=End-to-end-kryptering
|
||||||
|
shareVault.visitHub=Besøg Kryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Sådan deler du en Hub boks
|
||||||
|
shareVault.hub.description=For at dele indholdet i boksen med et andet holdmedlem skal du udføre to trin:
|
||||||
|
shareVault.hub.instruction.1=1. Del adgang til den krypterede boks-mappe vha. opbevaring i skyen.
|
||||||
|
shareVault.hub.instruction.2=2. Giv adgang til holdmedlem i Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Åben Cryptomator Hub
|
||||||
@@ -47,7 +47,7 @@ addvaultwizard.new.nameInstruction=Wähle einen Namen für den Tresor
|
|||||||
addvaultwizard.new.namePrompt=Tresorname
|
addvaultwizard.new.namePrompt=Tresorname
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Wo soll Cryptomator die verschlüsselten Dateien deines Tresors ablegen?
|
addvaultwizard.new.locationInstruction=Wo soll Cryptomator die verschlüsselten Dateien deines Tresors ablegen?
|
||||||
addvaultwizard.new.locationLoading=Überprüfen des lokalen Dateisystems auf Standard-Cloud-Verzeichnisse…
|
addvaultwizard.new.locationLoading=Lokales Dateisystem wird auf Standard-Cloud-Verzeichnisse überprüft …
|
||||||
addvaultwizard.new.locationLabel=Speicherort
|
addvaultwizard.new.locationLabel=Speicherort
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Eigener Ort
|
addvaultwizard.new.directoryPickerLabel=Eigener Ort
|
||||||
@@ -136,7 +136,7 @@ unlock.success.revealBtn=Laufwerk anzeigen
|
|||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Tresor kann nicht in benutzerdefinierten Pfad eingehängt werden
|
unlock.error.customPath.message=Tresor kann nicht in benutzerdefinierten Pfad eingehängt werden
|
||||||
unlock.error.customPath.description.notSupported=Wenn du weiterhin den benutzerdefinierten Pfad verwenden möchtest, öffne die allgemeinen Einstellungen und wähle einen unterstützten Laufwerkstyp. Andernfalls gehe zu den Tresor-Optionen und wähle einen unterstützten Einhängepunkt.
|
unlock.error.customPath.description.notSupported=Wenn du weiterhin den benutzerdefinierten Pfad verwenden möchtest, öffne die allgemeinen Einstellungen und wähle einen unterstützten Laufwerkstyp. Andernfalls gehe zu den Tresor-Optionen und wähle einen unterstützten Einhängepunkt.
|
||||||
unlock.error.customPath.description.notExists=Der benutzerdefinierte Einhängepunkt existiert nicht. Erstelle ihn in deinem lokalen Dateisystem oder ändere ihn in den Tresor-Optionen.
|
unlock.error.customPath.description.notExists=Der benutzerdefinierte Einhängepfad existiert nicht. Erstelle ihn entweder in deinem lokalen Dateisystem oder ändere ihn in den Tresor-Optionen.
|
||||||
unlock.error.customPath.description.inUse=Der Laufwerksbuchstabe oder benutzerdefinierte Einhängepunkt „%s“ wird bereits verwendet.
|
unlock.error.customPath.description.inUse=Der Laufwerksbuchstabe oder benutzerdefinierte Einhängepunkt „%s“ wird bereits verwendet.
|
||||||
unlock.error.customPath.description.hideawayNotDir=Die temporäre, versteckte Datei „%3$s“, die für das Entsperren verwendet wurde, konnte nicht entfernt werden. Bitte überprüfe die Datei und lösche sie manuell.
|
unlock.error.customPath.description.hideawayNotDir=Die temporäre, versteckte Datei „%3$s“, die für das Entsperren verwendet wurde, konnte nicht entfernt werden. Bitte überprüfe die Datei und lösche sie manuell.
|
||||||
unlock.error.customPath.description.couldNotBeCleaned=Dein Tresor konnte nicht in den Pfad „%s“ eingehängt werden. Bitte versuche es erneut oder wähle einen anderen Pfad aus.
|
unlock.error.customPath.description.couldNotBeCleaned=Dein Tresor konnte nicht in den Pfad „%s“ eingehängt werden. Bitte versuche es erneut oder wähle einen anderen Pfad aus.
|
||||||
@@ -169,9 +169,9 @@ hub.register.legacy.description=Dies ist der erste Hub-Zugriff von diesem Gerät
|
|||||||
hub.registerSuccess.message=Gerät registriert
|
hub.registerSuccess.message=Gerät registriert
|
||||||
hub.registerSuccess.description=Dein Gerät ist erfolgreich registriert. Du kannst den Tresor jetzt entsperren.
|
hub.registerSuccess.description=Dein Gerät ist erfolgreich registriert. Du kannst den Tresor jetzt entsperren.
|
||||||
hub.registerSuccess.unlockBtn=Entsperren
|
hub.registerSuccess.unlockBtn=Entsperren
|
||||||
hub.registerSuccess.legacy.description=Um den Tresor zu öffnen muss dein Gerät zusätzlich vom Tresorbesitzer autorisiert werden.
|
hub.registerSuccess.legacy.description=Für den Zugriff auf den Tresor muss dein Gerät zusätzlich vom Tresoreigentümer autorisiert werden.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
hub.registerFailed.message=Geräteregistrierung fehlgeschlagen
|
hub.registerFailed.message=Gerät konnte nicht registriert werden
|
||||||
hub.registerFailed.description.generic=Im Registrierungsprozess ist ein Fehler aufgetreten. Weitere Details findest du im Anwendungsprotokoll.
|
hub.registerFailed.description.generic=Im Registrierungsprozess ist ein Fehler aufgetreten. Weitere Details findest du im Anwendungsprotokoll.
|
||||||
hub.registerFailed.description.deviceAlreadyExists=Dieses Gerät ist bereits für einen anderen Benutzer registriert. Ändere das Benutzerkonto oder verwende ein anderes Gerät.
|
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
|
### Unauthorized
|
||||||
@@ -287,6 +287,7 @@ preferences.general.debugLogging=Diagnoseprotokoll aktivieren
|
|||||||
preferences.general.debugDirectory=Protokolldateien anzeigen
|
preferences.general.debugDirectory=Protokolldateien anzeigen
|
||||||
preferences.general.autoStart=Cryptomator beim Systemstart starten
|
preferences.general.autoStart=Cryptomator beim Systemstart starten
|
||||||
preferences.general.keychainBackend=Passwörter speichern mit
|
preferences.general.keychainBackend=Passwörter speichern mit
|
||||||
|
preferences.general.quickAccessService=Die entsperrten Tresore zum Schnellzugriff hinzufügen
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Benutzeroberfläche
|
preferences.interface=Benutzeroberfläche
|
||||||
preferences.interface.theme=Erscheinungsbild
|
preferences.interface.theme=Erscheinungsbild
|
||||||
@@ -299,8 +300,8 @@ preferences.interface.language.auto=Systemvorgabe
|
|||||||
preferences.interface.interfaceOrientation=Oberflächenausrichtung
|
preferences.interface.interfaceOrientation=Oberflächenausrichtung
|
||||||
preferences.interface.interfaceOrientation.ltr=Von links nach rechts
|
preferences.interface.interfaceOrientation.ltr=Von links nach rechts
|
||||||
preferences.interface.interfaceOrientation.rtl=Von rechts nach links
|
preferences.interface.interfaceOrientation.rtl=Von rechts nach links
|
||||||
preferences.interface.showMinimizeButton=Schaltfläche zum Minimieren anzeigen
|
|
||||||
preferences.interface.showTrayIcon=Symbol im Infobereich anzeigen (Neustart erforderlich)
|
preferences.interface.showTrayIcon=Symbol im Infobereich anzeigen (Neustart erforderlich)
|
||||||
|
preferences.interface.compactMode=Kompakte Tresoransicht einschalten
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuelles Laufwerk
|
preferences.volume=Virtuelles Laufwerk
|
||||||
preferences.volume.type=Standard-Laufwerkstyp
|
preferences.volume.type=Standard-Laufwerkstyp
|
||||||
@@ -320,12 +321,29 @@ preferences.updates.currentVersion=Aktuelle Version: %s
|
|||||||
preferences.updates.autoUpdateCheck=Automatisch nach Updates suchen
|
preferences.updates.autoUpdateCheck=Automatisch nach Updates suchen
|
||||||
preferences.updates.checkNowBtn=Jetzt prüfen
|
preferences.updates.checkNowBtn=Jetzt prüfen
|
||||||
preferences.updates.updateAvailable=Update auf Version %s verfügbar.
|
preferences.updates.updateAvailable=Update auf Version %s verfügbar.
|
||||||
|
preferences.updates.lastUpdateCheck=Letzte Überprüfung: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=nie
|
||||||
|
preferences.updates.lastUpdateCheck.recently=kürzlich
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=vor %s Tagen
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=vor %s Stunden
|
||||||
|
preferences.updates.checkFailed=Die Suche nach Updates ist fehlgeschlagen. Bitte überprüfe deine Internetverbindung oder versuche es später erneut.
|
||||||
|
preferences.updates.upToDate=Cryptomator ist aktuell.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Unterstütze uns
|
preferences.contribute=Unterstütze uns
|
||||||
preferences.contribute.registeredFor=Supporter-Zertifikat registriert für %s
|
preferences.contribute.registeredFor=Supporter-Zertifikat registriert für %s
|
||||||
preferences.contribute.noCertificate=Unterstütze Cryptomator und erhalte ein Supporter-Zertifikat. Es ist eine Art Lizenzschlüssel, aber für großartige Menschen, die freie Software verwenden. ;-)
|
preferences.contribute.noCertificate=Unterstütze Cryptomator und erhalte ein Supporter-Zertifikat. Es ist eine Art Lizenzschlüssel, aber für großartige Menschen, die freie Software verwenden. ;-)
|
||||||
preferences.contribute.getCertificate=Du hast noch keines? Erfahre, wie du es erhalten kannst.
|
preferences.contribute.getCertificate=Du hast noch keines? Erfahre, wie du es erhalten kannst.
|
||||||
preferences.contribute.promptText=Füge hier den Code des Supporter-Zertifikats ein
|
preferences.contribute.promptText=Füge hier den Code des Supporter-Zertifikats ein
|
||||||
|
preferences.contribute.thankYou=Danke, dass Du die Open-Source-Entwicklung von Cryptomator unterstützt!
|
||||||
|
preferences.contribute.donate=Spenden
|
||||||
|
preferences.contribute.sponsor=Sponsern
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -367,11 +385,6 @@ stats.access.total=Gesamtzugriffe: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Schließen
|
|
||||||
main.minimizeBtn.tooltip=Minimieren
|
|
||||||
main.preferencesBtn.tooltip=Einstellungen
|
|
||||||
main.debugModeEnabled.tooltip=Diagnosemodus ist aktiviert
|
|
||||||
main.supporterCertificateMissing.tooltip=Zieh bitte eine Spende in Betracht
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinzuzufügen
|
main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinzuzufügen
|
||||||
main.vaultlist.contextMenu.remove=Entfernen …
|
main.vaultlist.contextMenu.remove=Entfernen …
|
||||||
@@ -380,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Entsperren …
|
|||||||
main.vaultlist.contextMenu.unlockNow=Jetzt entsperren
|
main.vaultlist.contextMenu.unlockNow=Jetzt entsperren
|
||||||
main.vaultlist.contextMenu.vaultoptions=Tresoroptionen anzeigen
|
main.vaultlist.contextMenu.vaultoptions=Tresoroptionen anzeigen
|
||||||
main.vaultlist.contextMenu.reveal=Laufwerk anzeigen
|
main.vaultlist.contextMenu.reveal=Laufwerk anzeigen
|
||||||
main.vaultlist.addVaultBtn=Hinzufügen
|
main.vaultlist.addVaultBtn.menuItemNew=Neuen Tresor erstellen...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Neuer Tresor …
|
main.vaultlist.addVaultBtn.menuItemExisting=Bestehenden Tresor öffnen...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Bestehender Tresor …
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Eine neue Version ist verfügbar.
|
||||||
|
main.notification.support=Unterstütze Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Danke, dass du zum Schutz deiner Dateien Cryptomator gewählt hast. Falls du Hilfe brauchst, schau dir unsere Anleitungen an:
|
main.vaultDetail.welcomeOnboarding=Danke, dass du zum Schutz deiner Dateien Cryptomator gewählt hast. Falls du Hilfe brauchst, schau dir unsere Anleitungen an:
|
||||||
@@ -392,7 +407,7 @@ main.vaultDetail.unlockBtn=Entsperren …
|
|||||||
main.vaultDetail.unlockNowBtn=Jetzt entsperren
|
main.vaultDetail.unlockNowBtn=Jetzt entsperren
|
||||||
main.vaultDetail.optionsBtn=Tresoroptionen
|
main.vaultDetail.optionsBtn=Tresoroptionen
|
||||||
main.vaultDetail.passwordSavedInKeychain=Passwort gespeichert
|
main.vaultDetail.passwordSavedInKeychain=Passwort gespeichert
|
||||||
main.vaultDetail.share=Teilen…
|
main.vaultDetail.share=Teilen …
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=ENTSPERRT
|
main.vaultDetail.unlockedStatus=ENTSPERRT
|
||||||
main.vaultDetail.accessLocation=Deine Tresorinhalte sind hier erreichbar:
|
main.vaultDetail.accessLocation=Deine Tresorinhalte sind hier erreichbar:
|
||||||
@@ -532,22 +547,28 @@ updateReminder.notNow=Nicht jetzt
|
|||||||
updateReminder.yesOnce=Ja, einmalig
|
updateReminder.yesOnce=Ja, einmalig
|
||||||
updateReminder.yesAutomatically=Ja, automatisch
|
updateReminder.yesAutomatically=Ja, automatisch
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
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
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Tresor teilen
|
shareVault.title=Tresor teilen
|
||||||
shareVault.message=Möchtest du deinen Tresor mit anderen teilen?
|
shareVault.message=Möchtest du deinen Tresor mit anderen teilen?
|
||||||
shareVault.description=Seien immer vorsichtig, wenn du deinen Tresor mit anderen teilst. Um den Tresor zu teilen, muss du folgendes tun:
|
shareVault.description=Sei immer vorsichtig, wenn du deinen Tresor mit anderen Personen teilst. Kurz gesagt, befolge diese Schritte:
|
||||||
shareVault.instruction.1=1. Teile den Zugriff auf den verschlüsselten Tresorordner in deinem Cloud-Speicher.
|
shareVault.instruction.1=1. Teile den Zugriff auf den verschlüsselten Tresorordner über den Cloud-Speicher.
|
||||||
shareVault.instruction.2=2. Teile das Tresorpasswort auf einem sicheren Weg.
|
shareVault.instruction.2=2. Teile das Tresorpasswort auf einem sicheren Weg.
|
||||||
shareVault.remarkBestPractices=Für mehr Informationen lies dir unsere Vorschläge für bewährte Praktiken in unserer Dokumentation durch.
|
shareVault.remarkBestPractices=Weitere Informationen findest du in den Vorschlägen für bewährte Verfahren in unserer Dokumentation.
|
||||||
shareVault.docsTooltip=Öffne die Dokumentation, um mehr über das Teilen von Tresoren zu erfahren.
|
shareVault.docsTooltip=Öffne die Dokumentation, um mehr über das Teilen von Tresoren zu erfahren.
|
||||||
shareVault.hubAd.description=Der sichere Weg in Teams zu arbeiten
|
shareVault.hubAd.description=Die sichere Art der Teamarbeit
|
||||||
shareVault.hubAd.keyManagement=• Zero-knowledge Schlüsselverwaltung
|
shareVault.hubAd.keyManagement=• Zero-knowledge-Schlüsselverwaltung
|
||||||
shareVault.hubAd.authentication=• Starke Authentifizierung
|
shareVault.hubAd.authentication=• Starke Authentifizierung
|
||||||
shareVault.hubAd.encryption=• Ende-zu-Ende-Verschlüsselung
|
shareVault.hubAd.encryption=• Ende-zu-Ende-Verschlüsselung
|
||||||
shareVault.visitHub=Besuche Cryptomator Hub
|
shareVault.visitHub=Besuche Cryptomator Hub
|
||||||
|
|
||||||
shareVault.hub.message=Wie man einen Hub Tresor teilt
|
shareVault.hub.message=Teilen eines Hub-Tresors
|
||||||
shareVault.hub.description=Um den Tresor mit einem anderen Teammitglied zu teilen, musst du zwei Schritte ausführen:
|
shareVault.hub.description=Zur Freigabe des Tresorinhalts für ein anderes Teammitglied sind zwei Schritte erforderlich:
|
||||||
shareVault.hub.instruction.1=1. Teile den Zugriff auf den verschlüsselten Tresorordner in deinem Cloud-Speicher.
|
shareVault.hub.instruction.1=1. Teile den Zugriff auf den verschlüsselten Tresorordner über den Cloud-Speicher.
|
||||||
shareVault.hub.instruction.2=2. Füge das Teammitglied in Cryptomator Hub als Tresormitglied hinzu.
|
shareVault.hub.instruction.2=2. Füge das Teammitglied in Cryptomator Hub als Tresormitglied hinzu.
|
||||||
shareVault.hub.openHub=Cryptomator Hub öffnen
|
shareVault.hub.openHub=Cryptomator Hub öffnen
|
||||||
@@ -287,6 +287,7 @@ preferences.general.debugLogging=Ενεργοποίηση καταγραφής
|
|||||||
preferences.general.debugDirectory=Αποκάλυψη αρχείων καταγραφής
|
preferences.general.debugDirectory=Αποκάλυψη αρχείων καταγραφής
|
||||||
preferences.general.autoStart=Εκκίνηση Cryptomator στην εκκίνηση του συστήματος
|
preferences.general.autoStart=Εκκίνηση Cryptomator στην εκκίνηση του συστήματος
|
||||||
preferences.general.keychainBackend=Αποθήκευση κωδικού πρόσβασης με
|
preferences.general.keychainBackend=Αποθήκευση κωδικού πρόσβασης με
|
||||||
|
preferences.general.quickAccessService=Προσθήκη ξεκλειδωμένων Κρυπτών στην περιοχή γρήγορης πρόσβασης
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Διεπαφή
|
preferences.interface=Διεπαφή
|
||||||
preferences.interface.theme=Εμφάνιση & Αίσθηση
|
preferences.interface.theme=Εμφάνιση & Αίσθηση
|
||||||
@@ -299,8 +300,8 @@ preferences.interface.language.auto=Προεπιλογή Συστήματος
|
|||||||
preferences.interface.interfaceOrientation=Προσανατολισμός Διεπαφής
|
preferences.interface.interfaceOrientation=Προσανατολισμός Διεπαφής
|
||||||
preferences.interface.interfaceOrientation.ltr=Αριστερά προς Δεξιά
|
preferences.interface.interfaceOrientation.ltr=Αριστερά προς Δεξιά
|
||||||
preferences.interface.interfaceOrientation.rtl=Δεξιά προς Αριστερά
|
preferences.interface.interfaceOrientation.rtl=Δεξιά προς Αριστερά
|
||||||
preferences.interface.showMinimizeButton=Εμφάνιση κουμπιού ελαχιστοποίησης
|
|
||||||
preferences.interface.showTrayIcon=Εμφάνιση εικονιδίου tray (απαιτεί επανεκκίνηση)
|
preferences.interface.showTrayIcon=Εμφάνιση εικονιδίου tray (απαιτεί επανεκκίνηση)
|
||||||
|
preferences.interface.compactMode=Ενεργοποίηση συμπαγούς λίστας κρυπτών
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Εικονικός δίσκος
|
preferences.volume=Εικονικός δίσκος
|
||||||
preferences.volume.type=Προεπιλεγμένος Τύπος Τόμου
|
preferences.volume.type=Προεπιλεγμένος Τύπος Τόμου
|
||||||
@@ -320,12 +321,29 @@ preferences.updates.currentVersion=Τρέχουσα έκδοση: %s
|
|||||||
preferences.updates.autoUpdateCheck=Αυτόματος έλεγχος για ενημερώσεις
|
preferences.updates.autoUpdateCheck=Αυτόματος έλεγχος για ενημερώσεις
|
||||||
preferences.updates.checkNowBtn=Έλεγχος τώρα
|
preferences.updates.checkNowBtn=Έλεγχος τώρα
|
||||||
preferences.updates.updateAvailable=Η ενημέρωση για την έκδοση %s είναι διαθέσιμη.
|
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
|
## Contribution
|
||||||
preferences.contribute=Υποστηρίξτε μας
|
preferences.contribute=Υποστηρίξτε μας
|
||||||
preferences.contribute.registeredFor=Το πιστοποιητικό υποστήριξης καταχωρήθηκε για %s
|
preferences.contribute.registeredFor=Το πιστοποιητικό υποστήριξης καταχωρήθηκε για %s
|
||||||
preferences.contribute.noCertificate=Υποστηρίξτε το Cryptomator και λάβετε ένα πιστοποιητικό υποστηρικτή. Είναι σαν κλειδί άδειας χρήσης, αλλά για φοβερά άτομα που χρησιμοποιούν ελεύθερο λογισμικό. ;-)
|
preferences.contribute.noCertificate=Υποστηρίξτε το Cryptomator και λάβετε ένα πιστοποιητικό υποστηρικτή. Είναι σαν κλειδί άδειας χρήσης, αλλά για φοβερά άτομα που χρησιμοποιούν ελεύθερο λογισμικό. ;-)
|
||||||
preferences.contribute.getCertificate=Δεν έχετε ένα ήδη; Μάθετε πώς μπορείτε να το αποκτήσετε.
|
preferences.contribute.getCertificate=Δεν έχετε ένα ήδη; Μάθετε πώς μπορείτε να το αποκτήσετε.
|
||||||
preferences.contribute.promptText=Επικολλήστε τον κωδικό πιστοποιητικού υποστηρικτή εδώ
|
preferences.contribute.promptText=Επικολλήστε τον κωδικό πιστοποιητικού υποστηρικτή εδώ
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -367,11 +385,6 @@ stats.access.total=Συνολική πρόσβαση: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Κλείσιμο
|
|
||||||
main.minimizeBtn.tooltip=Ελαχιστοποίηση
|
|
||||||
main.preferencesBtn.tooltip=Προτιμήσεις
|
|
||||||
main.debugModeEnabled.tooltip=Έχει ενεργοποιηθεί η λειτουργία αποσφαλμάτωσης
|
|
||||||
main.supporterCertificateMissing.tooltip=Παρακαλούμε σκεφτείτε να κάνετε δωρεά
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Κάντε κλικ εδώ για να προσθέσετε ένα vault
|
main.vaultlist.emptyList.onboardingInstruction=Κάντε κλικ εδώ για να προσθέσετε ένα vault
|
||||||
main.vaultlist.contextMenu.remove=Αφαίρεση…
|
main.vaultlist.contextMenu.remove=Αφαίρεση…
|
||||||
@@ -380,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Ξεκλείδωμα…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα
|
main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα
|
||||||
main.vaultlist.contextMenu.vaultoptions=Εμφάνιση επιλογών Vault
|
main.vaultlist.contextMenu.vaultoptions=Εμφάνιση επιλογών Vault
|
||||||
main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου
|
main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου
|
||||||
main.vaultlist.addVaultBtn=Προσθήκη
|
main.vaultlist.addVaultBtn.menuItemNew=Δημιουργία Νέας Κρύπτης...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Νέα Κρύπτη...
|
main.vaultlist.addVaultBtn.menuItemExisting=Άνοιγμα Υπάρχοντος Κρύπτης...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Υπάρχουσα Κρύπτη...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Η ενημέρωση είναι διαθέσιμη.
|
||||||
|
main.notification.support=Υποστήριξη Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους:
|
main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους:
|
||||||
@@ -532,6 +547,12 @@ updateReminder.notNow=Όχι Τώρα
|
|||||||
updateReminder.yesOnce=Ναι, Μία Φορά
|
updateReminder.yesOnce=Ναι, Μία Φορά
|
||||||
updateReminder.yesAutomatically=Ναι, Αυτόματα
|
updateReminder.yesAutomatically=Ναι, Αυτόματα
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Ειδοποίηση κατάργησης
|
||||||
|
dokanySupportEnd.message=Τέλος υποστήριξης για Dokany
|
||||||
|
dokanySupportEnd.description=Ο τύπος τόμου Dokany δεν υποστηρίζεται πλέον από το Cryptomator. Οι ρυθμίσεις σας έχουν προσαρμοστεί για να χρησιμοποιούν τον προεπιλεγμένο τύπο τόμου. Μπορείτε να δείτε τον προεπιλεγμένο τύπο στις προτιμήσεις.
|
||||||
|
dokanySupportEnd.preferencesBtn=Άνοιγμα Προτιμήσεων
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Κοινή χρήση Κρύπτης
|
shareVault.title=Κοινή χρήση Κρύπτης
|
||||||
shareVault.message=Θα θέλατε να μοιραστείτε την κρύπτη σας με άλλους;
|
shareVault.message=Θα θέλατε να μοιραστείτε την κρύπτη σας με άλλους;
|
||||||
|
|||||||
@@ -0,0 +1,198 @@
|
|||||||
|
# Locale Specific CSS files such as CJK, RTL,...
|
||||||
|
|
||||||
|
# Generics
|
||||||
|
## Button
|
||||||
|
generic.button.apply=Apply
|
||||||
|
generic.button.back=Back
|
||||||
|
generic.button.cancel=Cancel
|
||||||
|
generic.button.change=Change
|
||||||
|
generic.button.choose=Choose…
|
||||||
|
generic.button.close=Close
|
||||||
|
generic.button.done=Done
|
||||||
|
generic.button.next=Next
|
||||||
|
|
||||||
|
# Error
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
|
||||||
|
# Tray Menu
|
||||||
|
traymenu.showMainWindow=Show
|
||||||
|
traymenu.showPreferencesWindow=Preferences
|
||||||
|
traymenu.quitApplication=Quit
|
||||||
|
traymenu.vault.unlock=Unlock
|
||||||
|
traymenu.vault.lock=Lock
|
||||||
|
traymenu.vault.reveal=Reveal
|
||||||
|
|
||||||
|
# Add Vault Wizard
|
||||||
|
addvaultwizard.title=Add Vault
|
||||||
|
## New
|
||||||
|
### Name
|
||||||
|
addvaultwizard.new.nameInstruction=Choose a name for the vault
|
||||||
|
addvaultwizard.new.namePrompt=Vault Name
|
||||||
|
### Location
|
||||||
|
addvaultwizard.new.locationInstruction=Where should Cryptomator store the encrypted files of your vault?
|
||||||
|
addvaultwizard.new.locationLabel=Storage location
|
||||||
|
addvaultwizard.new.locationPrompt=…
|
||||||
|
addvaultwizard.new.directoryPickerButton=Choose…
|
||||||
|
addvaultwizard.new.directoryPickerTitle=Select Directory
|
||||||
|
### Expert Settings
|
||||||
|
### Password
|
||||||
|
addvaultwizard.new.createVaultBtn=Create Vault
|
||||||
|
### Information
|
||||||
|
## Existing
|
||||||
|
addvaultwizard.existing.chooseBtn=Choose…
|
||||||
|
## Success
|
||||||
|
addvaultwizard.success.nextStepsInstructions=Added vault "%s".\nYou need to unlock this vault to access or add contents. Alternatively you can unlock it at any later point in time.
|
||||||
|
addvaultwizard.success.unlockNow=Unlock Now
|
||||||
|
|
||||||
|
# Remove Vault
|
||||||
|
removeVault.confirmBtn=Remove Vault
|
||||||
|
|
||||||
|
# Change Password
|
||||||
|
changepassword.title=Change Password
|
||||||
|
changepassword.enterOldPassword=Enter the current password for "%s"
|
||||||
|
|
||||||
|
# Forget Password
|
||||||
|
forgetPassword.title=Forget Password
|
||||||
|
forgetPassword.confirmBtn=Forget Password
|
||||||
|
|
||||||
|
# Unlock
|
||||||
|
unlock.passwordPrompt=Enter password for "%s":
|
||||||
|
unlock.unlockBtn=Unlock
|
||||||
|
## Select
|
||||||
|
unlock.chooseMasterkey.filePickerTitle=Select Masterkey File
|
||||||
|
## Success
|
||||||
|
unlock.success.revealBtn=Reveal Drive
|
||||||
|
## Failure
|
||||||
|
## Hub
|
||||||
|
### Waiting
|
||||||
|
### Receive Key
|
||||||
|
### Register Device
|
||||||
|
### Register Device Legacy
|
||||||
|
### Registration Success
|
||||||
|
hub.registerSuccess.unlockBtn=Unlock
|
||||||
|
### Registration Failed
|
||||||
|
### Unauthorized
|
||||||
|
### Requires Account Initialization
|
||||||
|
### License Exceeded
|
||||||
|
|
||||||
|
# Lock
|
||||||
|
## Force
|
||||||
|
## Failure
|
||||||
|
|
||||||
|
# Migration
|
||||||
|
migration.title=Upgrade Vault
|
||||||
|
## Start
|
||||||
|
migration.start.header=Upgrade Vault
|
||||||
|
## Run
|
||||||
|
migration.run.enterPassword=Enter the password for "%s"
|
||||||
|
migration.run.startMigrationBtn=Migrate Vault
|
||||||
|
## Success
|
||||||
|
migration.success.nextStepsInstructions=Migrated "%s" successfully.\nYou can now unlock your vault.
|
||||||
|
migration.success.unlockNow=Unlock Now
|
||||||
|
## Missing file system capabilities
|
||||||
|
## Impossible
|
||||||
|
|
||||||
|
# Health Check
|
||||||
|
## Start
|
||||||
|
## Start Failure
|
||||||
|
## Check Selection
|
||||||
|
## Detail view
|
||||||
|
## Result view
|
||||||
|
## Fix Application
|
||||||
|
|
||||||
|
# Preferences
|
||||||
|
preferences.title=Preferences
|
||||||
|
## General
|
||||||
|
preferences.general=General
|
||||||
|
preferences.general.startHidden=Hide window when starting Cryptomator
|
||||||
|
preferences.general.debugLogging=Enable debug logging
|
||||||
|
## Interface
|
||||||
|
## Volume
|
||||||
|
preferences.volume=Virtual Drive
|
||||||
|
## Updates
|
||||||
|
preferences.updates=Updates
|
||||||
|
preferences.updates.currentVersion=Current Version: %s
|
||||||
|
preferences.updates.autoUpdateCheck=Check for updates automatically
|
||||||
|
preferences.updates.checkNowBtn=Check Now
|
||||||
|
preferences.updates.updateAvailable=Update to version %s available.
|
||||||
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
# Vault Statistics
|
||||||
|
## Read
|
||||||
|
## Write
|
||||||
|
|
||||||
|
## Accesses
|
||||||
|
|
||||||
|
|
||||||
|
# Main Window
|
||||||
|
## Vault List
|
||||||
|
main.vaultlist.emptyList.onboardingInstruction=Click here to add a vault
|
||||||
|
main.vaultlist.contextMenu.lock=Lock
|
||||||
|
main.vaultlist.contextMenu.unlockNow=Unlock Now
|
||||||
|
main.vaultlist.contextMenu.reveal=Reveal Drive
|
||||||
|
##Notificaition
|
||||||
|
## Vault Detail
|
||||||
|
### Welcome
|
||||||
|
### Locked
|
||||||
|
main.vaultDetail.lockedStatus=LOCKED
|
||||||
|
main.vaultDetail.unlockNowBtn=Unlock Now
|
||||||
|
main.vaultDetail.optionsBtn=Vault Options
|
||||||
|
### Unlocked
|
||||||
|
main.vaultDetail.unlockedStatus=UNLOCKED
|
||||||
|
main.vaultDetail.accessLocation=Your vault's contents are accessible here:
|
||||||
|
main.vaultDetail.revealBtn=Reveal Drive
|
||||||
|
main.vaultDetail.lockBtn=Lock
|
||||||
|
main.vaultDetail.throughput.idle=idle
|
||||||
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
|
### Missing
|
||||||
|
### Needs Migration
|
||||||
|
main.vaultDetail.migrateButton=Upgrade Vault
|
||||||
|
### Error
|
||||||
|
|
||||||
|
# Wrong File Alert
|
||||||
|
|
||||||
|
# Vault Options
|
||||||
|
## General
|
||||||
|
vaultOptions.general=General
|
||||||
|
vaultOptions.general.vaultName=Vault Name
|
||||||
|
vaultOptions.general.actionAfterUnlock.reveal=Reveal Drive
|
||||||
|
|
||||||
|
## Mount
|
||||||
|
vaultOptions.mount=Mounting
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerButton=Choose…
|
||||||
|
## Master Key
|
||||||
|
vaultOptions.masterkey.changePasswordBtn=Change Password
|
||||||
|
## Hub
|
||||||
|
|
||||||
|
# Recovery Key
|
||||||
|
## Display Recovery Key
|
||||||
|
## Reset Password
|
||||||
|
### Enter Recovery Key
|
||||||
|
### Reset Password
|
||||||
|
### Recovery Key Password Reset Success
|
||||||
|
|
||||||
|
# Convert Vault
|
||||||
|
|
||||||
|
# New Password
|
||||||
|
passwordStrength.messageLabel.0=Very weak
|
||||||
|
passwordStrength.messageLabel.1=Weak
|
||||||
|
passwordStrength.messageLabel.2=Fair
|
||||||
|
passwordStrength.messageLabel.3=Strong
|
||||||
|
passwordStrength.messageLabel.4=Very strong
|
||||||
|
|
||||||
|
# Quit
|
||||||
|
|
||||||
|
# Forced Quit
|
||||||
|
|
||||||
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
|
# Share Vault
|
||||||
@@ -24,7 +24,7 @@ error.existingSolutionDescription=Cryptomator no esperaba que esto ocurriera, pe
|
|||||||
error.hyperlink.solution=Buscar la solución
|
error.hyperlink.solution=Buscar la solución
|
||||||
error.lookupPermissionMessage=Cryptomator puede buscar una solución en línea para este problema. Esto enviará una solicitud a nuestra base de datos de problemas desde su dirección IP.
|
error.lookupPermissionMessage=Cryptomator puede buscar una solución en línea para este problema. Esto enviará una solicitud a nuestra base de datos de problemas desde su dirección IP.
|
||||||
error.dismiss=Descartar
|
error.dismiss=Descartar
|
||||||
error.lookUpSolution=Buscar solución
|
error.lookUpSolution=Buscar una solución
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=Bóveda
|
defaults.vault.vaultName=Bóveda
|
||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Elegir un nombre para la bóveda
|
|||||||
addvaultwizard.new.namePrompt=Nombre de la bóveda
|
addvaultwizard.new.namePrompt=Nombre de la bóveda
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=¿Dónde se deben almacenar los archivos cifrados de la bóveda?
|
addvaultwizard.new.locationInstruction=¿Dónde se deben almacenar los archivos cifrados de la bóveda?
|
||||||
|
addvaultwizard.new.locationLoading=Comprobando el sistema de archivos local en busca de los directorios de almacenamiento en la nube por defecto…
|
||||||
addvaultwizard.new.locationLabel=Lugar de almacenamiento
|
addvaultwizard.new.locationLabel=Lugar de almacenamiento
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Ubicación personalizada
|
addvaultwizard.new.directoryPickerLabel=Ubicación personalizada
|
||||||
@@ -61,7 +62,7 @@ addvaultwizard.new.validName=Nombre de bóveda válido
|
|||||||
addvaultwizard.new.validCharacters.message=El nombre de la bóveda puede contener los siguientes caracteres:
|
addvaultwizard.new.validCharacters.message=El nombre de la bóveda puede contener los siguientes caracteres:
|
||||||
addvaultwizard.new.validCharacters.chars=Caracteres de la palabra (por ejemplo, a, ж o 수)
|
addvaultwizard.new.validCharacters.chars=Caracteres de la palabra (por ejemplo, a, ж o 수)
|
||||||
addvaultwizard.new.validCharacters.numbers=Números
|
addvaultwizard.new.validCharacters.numbers=Números
|
||||||
addvaultwizard.new.validCharacters.dashes=Guion (%s) o subrayado (%s)
|
addvaultwizard.new.validCharacters.dashes=Guion (%s) o guion bajo (%s)
|
||||||
### Expert Settings
|
### Expert Settings
|
||||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Habilitar ajustes expertos
|
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Habilitar ajustes expertos
|
||||||
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Ingrese un valor entre 36 y 220 (por defecto 220)
|
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Ingrese un valor entre 36 y 220 (por defecto 220)
|
||||||
@@ -71,7 +72,7 @@ addvaultwizard.new.expertSettings.shorteningThreshold.valid=Válido
|
|||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=Crear bóveda
|
addvaultwizard.new.createVaultBtn=Crear bóveda
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice=No podrá acceder a sus datos sin su contraseña. ¿Desea una clave de recuperación en caso de que pierda su contraseña?
|
addvaultwizard.new.generateRecoveryKeyChoice=No podrá acceder a sus datos sin su contraseña. ¿Desea una clave de recuperación en caso de que pierda su contraseña?
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=Sí, por favor
|
addvaultwizard.new.generateRecoveryKeyChoice.yes=Sí, por favor. Más vale prevenir que curar
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.no=No, gracias
|
addvaultwizard.new.generateRecoveryKeyChoice.no=No, gracias
|
||||||
### Information
|
### Information
|
||||||
addvault.new.readme.storageLocation.fileName=IMPORTANTE.rtf
|
addvault.new.readme.storageLocation.fileName=IMPORTANTE.rtf
|
||||||
@@ -129,7 +130,7 @@ unlock.chooseMasterkey.filePickerTitle=Seleccione el archivo de la clave maestra
|
|||||||
unlock.chooseMasterkey.filePickerMimeDesc=Clave maestra de Cryptomator
|
unlock.chooseMasterkey.filePickerMimeDesc=Clave maestra de Cryptomator
|
||||||
## Success
|
## Success
|
||||||
unlock.success.message=Desbloqueo exitoso
|
unlock.success.message=Desbloqueo exitoso
|
||||||
unlock.success.description=El contenido de la bóveda "%s" ahora es accesible a través de su punto de montaje.
|
unlock.success.description=El contenido de la caja fuerte "%s" ahora es accesible a través de su punto de montaje.
|
||||||
unlock.success.rememberChoice=Recordar opción y no mostrar de nuevo
|
unlock.success.rememberChoice=Recordar opción y no mostrar de nuevo
|
||||||
unlock.success.revealBtn=Revelar unidad
|
unlock.success.revealBtn=Revelar unidad
|
||||||
## Failure
|
## Failure
|
||||||
@@ -141,6 +142,8 @@ unlock.error.customPath.description.hideawayNotDir=El archivo oculto temporal "%
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=Su bóveda no se pudo montar en la ruta "%s". Intente de nuevo o elija una ruta diferente.
|
unlock.error.customPath.description.couldNotBeCleaned=Su bóveda no se pudo montar en la ruta "%s". Intente de nuevo o elija una ruta diferente.
|
||||||
unlock.error.customPath.description.notEmptyDir=La ruta de montaje personalizada "%s" no es una carpeta vacía. Elija una carpeta vacía y vuelva a intentarlo.
|
unlock.error.customPath.description.notEmptyDir=La ruta de montaje personalizada "%s" no es una carpeta vacía. Elija una carpeta vacía y vuelva a intentarlo.
|
||||||
unlock.error.customPath.description.generic=Seleccionó una ruta de montaje personalizada para esta bóveda, pero falló al usarla con el mensaje: %2$s
|
unlock.error.customPath.description.generic=Seleccionó una ruta de montaje personalizada para esta bóveda, pero falló al usarla con el mensaje: %2$s
|
||||||
|
unlock.error.restartRequired.message=No se puede desbloquear la bóveda
|
||||||
|
unlock.error.restartRequired.description=Cambie el tipo de volumen en las opciones de la bóveda o reinicie Cryptomator.
|
||||||
unlock.error.title=Error al desbloquear "%s"
|
unlock.error.title=Error al desbloquear "%s"
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=No se puede acceder a la clave del dispositivo
|
hub.noKeychain.message=No se puede acceder a la clave del dispositivo
|
||||||
@@ -155,13 +158,22 @@ hub.receive.message=Procesando la respuesta…
|
|||||||
hub.receive.description=Cryptomator está recibiendo y procesando la respuesta del Hub. Por favor espere.
|
hub.receive.description=Cryptomator está recibiendo y procesando la respuesta del Hub. Por favor espere.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Nuevo dispositivo
|
hub.register.message=Nuevo dispositivo
|
||||||
|
hub.register.description=Este es el primer acceso al Hub desde este dispositivo. Por favor, regístrelo usando su Account Key.
|
||||||
hub.register.nameLabel=Nombre del dispositivo
|
hub.register.nameLabel=Nombre del dispositivo
|
||||||
hub.register.invalidAccountKeyLabel=Account Key no válida
|
hub.register.invalidAccountKeyLabel=Account Key no válida
|
||||||
hub.register.registerBtn=Registrarse
|
hub.register.registerBtn=Registrarse
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=El nombre ya está en uso
|
||||||
|
hub.register.legacy.description=Este es el primer acceso al Hub desde este dispositivo. Por favor, regístrelo.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Dispositivo registrado
|
||||||
|
hub.registerSuccess.description=Tu dispositivo se ha registrado correctamente. Ahora puede proceder a desbloquear la bóveda.
|
||||||
hub.registerSuccess.unlockBtn=Desbloquear
|
hub.registerSuccess.unlockBtn=Desbloquear
|
||||||
|
hub.registerSuccess.legacy.description=Para acceder a la bóveda, su dispositivo debe estar autorizado por el propietario de la bóveda.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=El registro del dispositivo ha fallado
|
||||||
|
hub.registerFailed.description.generic=Ha ocurrido un error al intentar registrarse. Para más detalles, consulte el registro de la aplicación.
|
||||||
|
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
|
### Unauthorized
|
||||||
hub.unauthorized.message=Acceso denegado
|
hub.unauthorized.message=Acceso denegado
|
||||||
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.
|
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.
|
||||||
@@ -181,8 +193,8 @@ lock.forced.description=El bloqueo de "%s" fue bloqueado por operaciones pendien
|
|||||||
lock.forced.retryBtn=Reintentar
|
lock.forced.retryBtn=Reintentar
|
||||||
lock.forced.forceBtn=Forzar bloqueo
|
lock.forced.forceBtn=Forzar bloqueo
|
||||||
## Failure
|
## Failure
|
||||||
lock.fail.message=Error al bloquear la bóveda
|
lock.fail.message=Error al bloquear la caja fuerte
|
||||||
lock.fail.description=No se pudo bloquear la bóveda "%s". Asegúrese de que el trabajo no guardado se ha guardado en otro lugar y las operaciones de lectura/escritura importantes han finalizado. Para cerrar la bóveda termine el proceso de Cryptomator.
|
lock.fail.description=No se pudo bloquear la caja fuerte "%s". Asegúrese de que el trabajo no guardado se ha guardado en otro lugar y las operaciones de lectura/escritura importantes han finalizado. Para cerrar la bóveda termine el proceso de Cryptomator.
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
migration.title=Actualizar bóveda
|
migration.title=Actualizar bóveda
|
||||||
@@ -275,6 +287,7 @@ preferences.general.debugLogging=Habilitar registro de depuración
|
|||||||
preferences.general.debugDirectory=Revelar archivos de registro
|
preferences.general.debugDirectory=Revelar archivos de registro
|
||||||
preferences.general.autoStart=Cargar Cryptomator al iniciar el sistema
|
preferences.general.autoStart=Cargar Cryptomator al iniciar el sistema
|
||||||
preferences.general.keychainBackend=Guardar contraseñas con
|
preferences.general.keychainBackend=Guardar contraseñas con
|
||||||
|
preferences.general.quickAccessService=Añadir bóvedas desbloqueadas al área de acceso rápido
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Interfaz
|
preferences.interface=Interfaz
|
||||||
preferences.interface.theme=Apariencia
|
preferences.interface.theme=Apariencia
|
||||||
@@ -287,8 +300,8 @@ preferences.interface.language.auto=Valores por defecto del sistema
|
|||||||
preferences.interface.interfaceOrientation=Orientación de la interfaz
|
preferences.interface.interfaceOrientation=Orientación de la interfaz
|
||||||
preferences.interface.interfaceOrientation.ltr=Izquierda a derecha
|
preferences.interface.interfaceOrientation.ltr=Izquierda a derecha
|
||||||
preferences.interface.interfaceOrientation.rtl=Derecha a izquierda
|
preferences.interface.interfaceOrientation.rtl=Derecha a izquierda
|
||||||
preferences.interface.showMinimizeButton=Mostrar botón minimizar
|
|
||||||
preferences.interface.showTrayIcon=Mostrar ícono de bandeja (requiere reiniciar)
|
preferences.interface.showTrayIcon=Mostrar ícono de bandeja (requiere reiniciar)
|
||||||
|
preferences.interface.compactMode=Habilitar la lista de bóvedas compactas
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Unidad virtual
|
preferences.volume=Unidad virtual
|
||||||
preferences.volume.type=Tipo de volumen predeterminado
|
preferences.volume.type=Tipo de volumen predeterminado
|
||||||
@@ -308,12 +321,29 @@ preferences.updates.currentVersion=Versión actual: %s
|
|||||||
preferences.updates.autoUpdateCheck=Buscar actualizaciones automáticamente
|
preferences.updates.autoUpdateCheck=Buscar actualizaciones automáticamente
|
||||||
preferences.updates.checkNowBtn=Buscar ahora
|
preferences.updates.checkNowBtn=Buscar ahora
|
||||||
preferences.updates.updateAvailable=Actualización a la versión %s disponible.
|
preferences.updates.updateAvailable=Actualización a la versión %s disponible.
|
||||||
|
preferences.updates.lastUpdateCheck=Última comprobación: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=nunca
|
||||||
|
preferences.updates.lastUpdateCheck.recently=recientemente
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=hace %s días
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=hace %s horas
|
||||||
|
preferences.updates.checkFailed=La comprobación de actualizaciones ha fallado. Compruebe su conexión a Internet o inténtelo más tarde.
|
||||||
|
preferences.updates.upToDate=Cryptomator está actualizado.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Apóyenos
|
preferences.contribute=Apóyenos
|
||||||
preferences.contribute.registeredFor=Certificado de soporte registrado para %s
|
preferences.contribute.registeredFor=Certificado de soporte registrado para %s
|
||||||
preferences.contribute.noCertificate=Apoye a Cryptomator y reciba un certificado de seguidor. Es como una clave de licencia, pero para gente asombrosa usando software libre. ;-)
|
preferences.contribute.noCertificate=Apoye a Cryptomator y reciba un certificado de seguidor. Es como una clave de licencia, pero para gente asombrosa usando software libre. ;-)
|
||||||
preferences.contribute.getCertificate=¿Aún no tiene uno? Aprenda cómo puede obtenerlo.
|
preferences.contribute.getCertificate=¿Aún no tiene uno? Aprenda cómo puede obtenerlo.
|
||||||
preferences.contribute.promptText=Pegue aquí el código de certificado de seguidor
|
preferences.contribute.promptText=Pegue aquí el código de certificado de seguidor
|
||||||
|
preferences.contribute.thankYou=¡Gracias por apoyar el desarrollo de código abierto de Cryptomator!
|
||||||
|
preferences.contribute.donate=Donar
|
||||||
|
preferences.contribute.sponsor=Patrocinador
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -355,11 +385,6 @@ stats.access.total=Accesos totales: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Cerrar
|
|
||||||
main.minimizeBtn.tooltip=Minimizar
|
|
||||||
main.preferencesBtn.tooltip=Preferencias
|
|
||||||
main.debugModeEnabled.tooltip=Modo de depuración activado
|
|
||||||
main.supporterCertificateMissing.tooltip=Por favor, considere donar
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Haga clic aquí para añadir una bóveda
|
main.vaultlist.emptyList.onboardingInstruction=Haga clic aquí para añadir una bóveda
|
||||||
main.vaultlist.contextMenu.remove=Eliminar…
|
main.vaultlist.contextMenu.remove=Eliminar…
|
||||||
@@ -368,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Desbloquear…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Desbloquear ahora
|
main.vaultlist.contextMenu.unlockNow=Desbloquear ahora
|
||||||
main.vaultlist.contextMenu.vaultoptions=Mostrar opciones de la bóveda
|
main.vaultlist.contextMenu.vaultoptions=Mostrar opciones de la bóveda
|
||||||
main.vaultlist.contextMenu.reveal=Revelar unidad
|
main.vaultlist.contextMenu.reveal=Revelar unidad
|
||||||
main.vaultlist.addVaultBtn=Añadir
|
main.vaultlist.addVaultBtn.menuItemNew=Crear Bóveda Nueva...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nueva bóveda...
|
main.vaultlist.addVaultBtn.menuItemExisting=Abrir Bóveda Existente...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Bóveda existente...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Existen actualizaciones disponibles.
|
||||||
|
main.notification.support=Soporte de Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger sus archivos. En caso de necesitar ayuda, revise nuestras guías:
|
main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger sus archivos. En caso de necesitar ayuda, revise nuestras guías:
|
||||||
@@ -380,6 +407,7 @@ main.vaultDetail.unlockBtn=Desbloquear…
|
|||||||
main.vaultDetail.unlockNowBtn=Desbloquear ahora
|
main.vaultDetail.unlockNowBtn=Desbloquear ahora
|
||||||
main.vaultDetail.optionsBtn=Opciones de la bóveda
|
main.vaultDetail.optionsBtn=Opciones de la bóveda
|
||||||
main.vaultDetail.passwordSavedInKeychain=Contraseña guardada
|
main.vaultDetail.passwordSavedInKeychain=Contraseña guardada
|
||||||
|
main.vaultDetail.share=Compartir…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
main.vaultDetail.unlockedStatus=DESBLOQUEADO
|
||||||
main.vaultDetail.accessLocation=El contenido de la bóveda es accesible aquí:
|
main.vaultDetail.accessLocation=El contenido de la bóveda es accesible aquí:
|
||||||
@@ -445,6 +473,7 @@ vaultOptions.mount.mountPoint.custom=Usar directorio seleccionado
|
|||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Elegir…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Elegir…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Seleccionar un directorio
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Seleccionar un directorio
|
||||||
vaultOptions.mount.volumeType.default=Predeterminado (%s)
|
vaultOptions.mount.volumeType.default=Predeterminado (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Para utilizar este tipo de volumen debe reiniciar Cryptomator.
|
||||||
vaultOptions.mount.volume.tcp.port=Puerto TCP
|
vaultOptions.mount.volume.tcp.port=Puerto TCP
|
||||||
vaultOptions.mount.volume.type=Tipo de volumen
|
vaultOptions.mount.volume.type=Tipo de volumen
|
||||||
## Master Key
|
## Master Key
|
||||||
@@ -518,4 +547,28 @@ updateReminder.notNow=Ahora no
|
|||||||
updateReminder.yesOnce=Sí, una vez
|
updateReminder.yesOnce=Sí, una vez
|
||||||
updateReminder.yesAutomatically=Sí, automáticamente
|
updateReminder.yesAutomatically=Sí, automáticamente
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Aviso de obsolescencia
|
||||||
|
dokanySupportEnd.message=Fin de soporte para Dokany
|
||||||
|
dokanySupportEnd.description=El tipo de volumen Dokany ya no está soportado por Cryptomator. Su configuración se ajusta para utilizar el tipo de volumen predeterminado ahora. Puede ver el tipo predeterminado en las preferencias.
|
||||||
|
dokanySupportEnd.preferencesBtn=Abrir preferencias
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Compartir bóveda
|
||||||
|
shareVault.message=¿Le gustaría compartir su bóveda con alguien más?
|
||||||
|
shareVault.description=Siempre tenga cuidado cuando comparta su bóveda con otras personas. En resumen, siga estos pasos:
|
||||||
|
shareVault.instruction.1=1. Comparta el acceso a la carpeta de la bóveda cifrada a través del almacenamiento en la nube.
|
||||||
|
shareVault.instruction.2=2. Comparta la contraseña de la bóveda de manera segura.
|
||||||
|
shareVault.remarkBestPractices=Para más información, consulte las sugerencias de buenas prácticas en nuestros documentos.
|
||||||
|
shareVault.docsTooltip=Abra la documentación para conocer más sobre cómo compartir sus bóvedas.
|
||||||
|
shareVault.hubAd.description=Una manera segura de trabajar en equipos
|
||||||
|
shareVault.hubAd.keyManagement=• Administración de claves de cero conocimiento
|
||||||
|
shareVault.hubAd.authentication=• Autenticación fuerte
|
||||||
|
shareVault.hubAd.encryption=• Cifrado de extremo a extremo
|
||||||
|
shareVault.visitHub=Visite Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Cómo compartir una bóveda de Hub
|
||||||
|
shareVault.hub.description=Para compartir el contenido de la bóveda con otro miembro del equipo, tiene que realizar dos pasos:
|
||||||
|
shareVault.hub.instruction.1=1. Comparta el acceso a la carpeta de la bóveda cifrada a través del almacenamiento en la nube.
|
||||||
|
shareVault.hub.instruction.2=2. Conceda el acceso al miembro del equipo en Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Abrir Cryptomator Hub
|
||||||
@@ -16,13 +16,23 @@ generic.button.print=چاپ
|
|||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=خطایی رخ داده است
|
error.message=خطایی رخ داده است
|
||||||
|
error.description=کریپتوماتور انتظار رخ دادن این مورد را نداشت. شما میتوانید به دنبال راهکار های موجود برای این خطا بگردید، یا اگر قبلا گزارش نشده است، گزارش کنید.
|
||||||
|
error.hyperlink.lookup=جستجوی خطا
|
||||||
|
error.hyperlink.report=گزارش خطا
|
||||||
error.technicalDetails=جزئیات:
|
error.technicalDetails=جزئیات:
|
||||||
|
error.existingSolutionDescription=کریپتوماتور انتظار رخ دادن این مورد را نداشت، اما ما راه حلی برای این خطا پیدا کردیم. لطفا نگاهی به لینک زیر بیندازید.
|
||||||
|
error.hyperlink.solution=جستجوی راه حل
|
||||||
|
error.lookupPermissionMessage=کریپتوماتور میتواند دنبال راه حلی برای این مشکل بصورت آنلاین بگردد. این عمل درخواستی را به دیتابیس خطا های ما از آیپی آدرس شما خواهد فرستاد.
|
||||||
|
error.dismiss=لغو
|
||||||
|
error.lookUpSolution=جستجوی راه حل
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=گاوصندوق
|
defaults.vault.vaultName=گاوصندوق
|
||||||
|
|
||||||
# Tray Menu
|
# Tray Menu
|
||||||
traymenu.showMainWindow=نشان
|
traymenu.showMainWindow=نشان
|
||||||
|
traymenu.showPreferencesWindow=تنظیمات
|
||||||
|
traymenu.lockAllVaults=قفل کردن همگی
|
||||||
traymenu.quitApplication=ترک
|
traymenu.quitApplication=ترک
|
||||||
traymenu.vault.unlock=بازکردن قفل
|
traymenu.vault.unlock=بازکردن قفل
|
||||||
traymenu.vault.lock=قفل
|
traymenu.vault.lock=قفل
|
||||||
@@ -31,19 +41,57 @@ traymenu.vault.reveal=ظاهر
|
|||||||
# Add Vault Wizard
|
# Add Vault Wizard
|
||||||
addvaultwizard.title=اضافه کردن گاوصندوق
|
addvaultwizard.title=اضافه کردن گاوصندوق
|
||||||
## New
|
## New
|
||||||
|
addvaultwizard.new.title=افزودن گاوصندوق جدید
|
||||||
### Name
|
### Name
|
||||||
addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید
|
addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید
|
||||||
addvaultwizard.new.namePrompt=نام گاوصندوق
|
addvaultwizard.new.namePrompt=نام گاوصندوق
|
||||||
### Location
|
### Location
|
||||||
|
addvaultwizard.new.locationInstruction=کجا باید کریپتوماتور فایل های رمزگذاری شده گاوصندوق شما را نگهداری کند؟
|
||||||
|
addvaultwizard.new.locationLoading=در حال بررسی سیستم فایل های لوکال برای پوشه های پیش فرض حافظه ابری…
|
||||||
addvaultwizard.new.locationLabel=مکان ذخیرهسازی
|
addvaultwizard.new.locationLabel=مکان ذخیرهسازی
|
||||||
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=مکان سفارشی
|
addvaultwizard.new.directoryPickerLabel=مکان سفارشی
|
||||||
addvaultwizard.new.directoryPickerButton=انتخاب کنید…
|
addvaultwizard.new.directoryPickerButton=انتخاب کنید…
|
||||||
|
addvaultwizard.new.directoryPickerTitle=انتخاب پوشه
|
||||||
addvaultwizard.new.fileAlreadyExists=در حال حاضر یک فایل یا پوشه با همین نام وجود دارد
|
addvaultwizard.new.fileAlreadyExists=در حال حاضر یک فایل یا پوشه با همین نام وجود دارد
|
||||||
|
addvaultwizard.new.locationDoesNotExist=پوشه ای در مسیر انتخاب شده وجود ندارد یا قابل دسترسی نیست
|
||||||
|
addvaultwizard.new.locationIsNotWritable=دسترسی نوشتن در مسیر مشخص شده موجود نیست
|
||||||
|
addvaultwizard.new.locationIsOk=مکانی مناسب برای گاوصندوق شما
|
||||||
|
addvaultwizard.new.invalidName=نام گاوصندوق نامعتبر
|
||||||
|
addvaultwizard.new.validName=نام گاوصندوق معتبر
|
||||||
|
addvaultwizard.new.validCharacters.message=نام گاوصندوق میتواند شامل کاراکتر های زیر باشد:
|
||||||
|
addvaultwizard.new.validCharacters.chars=کاراکتری های حرف(برای مثال a،ж یا 수)
|
||||||
addvaultwizard.new.validCharacters.numbers=اعداد
|
addvaultwizard.new.validCharacters.numbers=اعداد
|
||||||
|
addvaultwizard.new.validCharacters.dashes=خط تیره (%s) و یا زیرخط (%s)
|
||||||
### Expert Settings
|
### Expert Settings
|
||||||
|
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=فعالسازی تنظیمات پیشرفته
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=لطفا مقداری بین 36 و 220 را وارد کنید(پیش فرض 220)
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=برای آموختن بیشتر، مستندات را مطالعه کنید.
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.title=حداکثر طول اسم های رمزگذاری شده فایل ها
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.valid=معتبر
|
||||||
### Password
|
### Password
|
||||||
|
addvaultwizard.new.createVaultBtn=ایجاد گاوصندوق
|
||||||
|
addvaultwizard.new.generateRecoveryKeyChoice=شما بدون رمزعبورتان، امکان دسترسی به اطلاعاتتان را نخواهید داشت. آیا میخواهید یک کلید بازیابی برای حالتی که رمزتان را فراموش کردید ایجاد کنید؟
|
||||||
|
addvaultwizard.new.generateRecoveryKeyChoice.yes=بله لطفا، بهتره خیالم راحت باشه
|
||||||
|
addvaultwizard.new.generateRecoveryKeyChoice.no=نه ممنون، رمز عبورم را گم نخواهم کرد
|
||||||
### Information
|
### Information
|
||||||
|
addvault.new.readme.storageLocation.fileName=مهم.rtf
|
||||||
|
addvault.new.readme.storageLocation.1=⚠️ فایل های گاوصندوق ⚠️
|
||||||
|
addvault.new.readme.storageLocation.2=این، مکان ذخیره سازی گاوصندوق شماست.
|
||||||
|
addvault.new.readme.storageLocation.3=به هیچ عنوان
|
||||||
|
addvault.new.readme.storageLocation.4=فایل های داخل این پوشه را تغییر ندهید و یا
|
||||||
|
addvault.new.readme.storageLocation.5=فایلی را برای رمزگذاری داخل این پوشه paste نکنید.
|
||||||
|
addvault.new.readme.storageLocation.6=اگر میخواهید فایل ها را رمزگذاری کنید و یا محتویات گاوصندوق را ببینید، این کار ها را بکنید:
|
||||||
|
addvault.new.readme.storageLocation.8=2. قفل گاوصندوق را در کریپتوماتور باز کنید.
|
||||||
|
addvault.new.readme.storageLocation.9=3. با کلیک روی دکمه "آشکار سازی"، به مکان دسترسی وارد شوید.
|
||||||
|
addvault.new.readme.storageLocation.10=اگر نیاز به کمک دارید، به مستندات ما مراجعه کنید: %s
|
||||||
|
addvault.new.readme.accessLocation.fileName=خوش آمدید.rtf
|
||||||
|
addvault.new.readme.accessLocation.1=🔐️ درایو رمزگذاری شده 🔐️
|
||||||
|
addvault.new.readme.accessLocation.2=این، مکان دسترسی گاوصندوق شماست.
|
||||||
|
addvault.new.readme.accessLocation.3=هر فایلی که به این درایو اضافه شود بطور خودکار توسط کریپتوماتور رمزگذاری خواهد شد. شما میتوانید روی آن مثل هر پوشه یا درایور دیگری کار کنید. این فقط یک نمایش رمزگشایی شده از محتویات است. فایل های شما روی درایوتان همیشه رمزگذاری شده خواهند ماند.
|
||||||
|
addvault.new.readme.accessLocation.4=میتوانید این فایل را حذف کنید.
|
||||||
## Existing
|
## Existing
|
||||||
|
addvaultwizard.existing.title=اضافه کردن مخزن موجود
|
||||||
addvaultwizard.existing.chooseBtn=انتخاب کنید…
|
addvaultwizard.existing.chooseBtn=انتخاب کنید…
|
||||||
## Success
|
## Success
|
||||||
|
|
||||||
@@ -91,11 +139,23 @@ lock.forced.retryBtn=تلاش مجدد
|
|||||||
## Fix Application
|
## Fix Application
|
||||||
|
|
||||||
# Preferences
|
# Preferences
|
||||||
|
preferences.title=تنظیمات
|
||||||
## General
|
## General
|
||||||
|
preferences.general.quickAccessService=خزانه های قفل نشده را به دسترسی سریع اضافه کنید
|
||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
preferences.updates.lastUpdateCheck=آخرین بررسی: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=هرگز
|
||||||
|
preferences.updates.lastUpdateCheck.recently=به تازگی
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s روز پیش
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s ساعت قبل
|
||||||
|
preferences.updates.upToDate=Cryptomator به روز می باشد.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=حذف
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -108,10 +168,9 @@ lock.forced.retryBtn=تلاش مجدد
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=ببند
|
|
||||||
main.supporterCertificateMissing.tooltip=لطفا کمک مالی در نظر بگیرند
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.contextMenu.lock=قفل
|
main.vaultlist.contextMenu.lock=قفل
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -149,4 +208,6 @@ vaultOptions.mount.mountPoint.directoryPickerButton=انتخاب کنید…
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -206,7 +206,10 @@ preferences.title=Asetukset
|
|||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -219,12 +222,11 @@ preferences.title=Asetukset
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Sulje
|
|
||||||
main.preferencesBtn.tooltip=Asetukset
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.contextMenu.lock=Lukitse
|
main.vaultlist.contextMenu.lock=Lukitse
|
||||||
main.vaultlist.contextMenu.unlockNow=Avaa Nyt
|
main.vaultlist.contextMenu.unlockNow=Avaa Nyt
|
||||||
main.vaultlist.contextMenu.reveal=Paljasta Asema
|
main.vaultlist.contextMenu.reveal=Paljasta Asema
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -267,4 +269,7 @@ vaultOptions.masterkey.changePasswordBtn=Vaihda salasana
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Avaa asetukset
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Pangalanan ang vault
|
|||||||
addvaultwizard.new.namePrompt=Pangalan ng Vault
|
addvaultwizard.new.namePrompt=Pangalan ng Vault
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Saan maaaring ilagay ng Cryptomator ang mga encrypted files ng iyong vault?
|
addvaultwizard.new.locationInstruction=Saan maaaring ilagay ng Cryptomator ang mga encrypted files ng iyong vault?
|
||||||
|
addvaultwizard.new.locationLoading=Sinusuri ang lokal na filesystem para sa mga default na direktoryo ng cloud storage…
|
||||||
addvaultwizard.new.locationLabel=Storage location
|
addvaultwizard.new.locationLabel=Storage location
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Custom Location
|
addvaultwizard.new.directoryPickerLabel=Custom Location
|
||||||
@@ -141,6 +142,8 @@ unlock.error.customPath.description.hideawayNotDir=Ang pansamantalang nakatagong
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=Hindi ma-mount ang iyong vault sa path na "%s". Pakisubukang muli o pumili ng ibang landas.
|
unlock.error.customPath.description.couldNotBeCleaned=Hindi ma-mount ang iyong vault sa path na "%s". Pakisubukang muli o pumili ng ibang landas.
|
||||||
unlock.error.customPath.description.notEmptyDir=Ang custom na mount path na "%s" ay hindi isang walang laman na folder. Mangyaring pumili ng isang walang laman na folder at subukang muli.
|
unlock.error.customPath.description.notEmptyDir=Ang custom na mount path na "%s" ay hindi isang walang laman na folder. Mangyaring pumili ng isang walang laman na folder at subukang muli.
|
||||||
unlock.error.customPath.description.generic=Pumili ka ng custom na mount path para sa vault na ito, ngunit nabigo ang paggamit nito sa mensaheng: %2$s
|
unlock.error.customPath.description.generic=Pumili ka ng custom na mount path para sa vault na ito, ngunit nabigo ang paggamit nito sa mensaheng: %2$s
|
||||||
|
unlock.error.restartRequired.message=Hindi mabuksan ang vault
|
||||||
|
unlock.error.restartRequired.description=Baguhin ang uri ng volume sa mga opsyon sa vault o i-restart ang Cryptomator.
|
||||||
unlock.error.title=Hindi mabuksan ang "%s"
|
unlock.error.title=Hindi mabuksan ang "%s"
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Hindi ma-access ang key ng device
|
hub.noKeychain.message=Hindi ma-access ang key ng device
|
||||||
@@ -155,12 +158,22 @@ hub.receive.message=Pinoproseso ang tugon…
|
|||||||
hub.receive.description=Ang Cryptomator ay tumatanggap at nagpoproseso ng tugon mula sa Hub. Mangyaring maghintay.
|
hub.receive.description=Ang Cryptomator ay tumatanggap at nagpoproseso ng tugon mula sa Hub. Mangyaring maghintay.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Bagong Device
|
hub.register.message=Bagong Device
|
||||||
|
hub.register.description=Ito ang unang Hub access mula sa device na ito. Mangyaring irehistro ito gamit ang iyong Account Key.
|
||||||
hub.register.nameLabel=Pangalan ng device
|
hub.register.nameLabel=Pangalan ng device
|
||||||
hub.register.invalidAccountKeyLabel=Di-wastong Account Key
|
hub.register.invalidAccountKeyLabel=Di-wastong Account Key
|
||||||
|
hub.register.registerBtn=Magparehistro
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Ang pangalan ay nagamit na
|
||||||
|
hub.register.legacy.description=Ito ang unang Hub access mula sa device na ito. Mangyaring irehistro ito.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Rehistrado na ang device
|
||||||
|
hub.registerSuccess.description=Ang iyong device ay matagumpay sa pag rehistrado. Maaari mo nang buksan ang vault.
|
||||||
hub.registerSuccess.unlockBtn=I-unlock
|
hub.registerSuccess.unlockBtn=I-unlock
|
||||||
|
hub.registerSuccess.legacy.description=Para ma-access ang vault, kailangang pahintulutan ng may-ari ng vault ang iyong device.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Ang pag rehistrado ng device ay pumalya
|
||||||
|
hub.registerFailed.description.generic=Nagkaroon ng error sa proseso ng pag registrado. Para sa higit pang mga detalye, tingnan ang log ng aplikasyon.
|
||||||
|
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
|
### Unauthorized
|
||||||
hub.unauthorized.message=Walang pahintulot
|
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.
|
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.
|
||||||
@@ -274,6 +287,7 @@ preferences.general.debugLogging=Paganahin ang pag-log ng debug
|
|||||||
preferences.general.debugDirectory=Magbunyag ng mga log file
|
preferences.general.debugDirectory=Magbunyag ng mga log file
|
||||||
preferences.general.autoStart=Ilunsad ang Cryptomator sa pagsisimula ng system
|
preferences.general.autoStart=Ilunsad ang Cryptomator sa pagsisimula ng system
|
||||||
preferences.general.keychainBackend=Mag-imbak ng mga password gamit ang
|
preferences.general.keychainBackend=Mag-imbak ng mga password gamit ang
|
||||||
|
preferences.general.quickAccessService=Magdagdag ng mga naka-unlock na vault sa lugar ng mabilisang pag-access
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Interface
|
preferences.interface=Interface
|
||||||
preferences.interface.theme=Tingnan at Pakiramdam
|
preferences.interface.theme=Tingnan at Pakiramdam
|
||||||
@@ -286,13 +300,14 @@ preferences.interface.language.auto=System Default
|
|||||||
preferences.interface.interfaceOrientation=Oryentasyon ng Interface
|
preferences.interface.interfaceOrientation=Oryentasyon ng Interface
|
||||||
preferences.interface.interfaceOrientation.ltr=Kaliwa hanggang Kanan
|
preferences.interface.interfaceOrientation.ltr=Kaliwa hanggang Kanan
|
||||||
preferences.interface.interfaceOrientation.rtl=Kanan papuntang Kaliwa
|
preferences.interface.interfaceOrientation.rtl=Kanan papuntang Kaliwa
|
||||||
preferences.interface.showMinimizeButton=Ipakita ang pindutan ng minimize
|
|
||||||
preferences.interface.showTrayIcon=Ipakita ang icon ng tray (kailangan i-restart)
|
preferences.interface.showTrayIcon=Ipakita ang icon ng tray (kailangan i-restart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtual Drive
|
preferences.volume=Virtual Drive
|
||||||
|
preferences.volume.type=Default na Uri ng Dami
|
||||||
preferences.volume.type.automatic=Awtomatiko
|
preferences.volume.type.automatic=Awtomatiko
|
||||||
preferences.volume.docsTooltip=Buksan ang dokumentasyon para matuto pa tungkol sa iba't ibang uri ng volume.
|
preferences.volume.docsTooltip=Buksan ang dokumentasyon para matuto pa tungkol sa iba't ibang uri ng volume.
|
||||||
preferences.volume.fuseRestartRequired=Upang mailapat ang mga pagbabago, kailangang i-restart ang Cryptomator.
|
preferences.volume.fuseRestartRequired=Upang mailapat ang mga pagbabago, kailangang i-restart ang Cryptomator.
|
||||||
|
preferences.volume.tcp.port=Default na TCP Port
|
||||||
preferences.volume.supportedFeatures=Sinusuportahan ng napiling uri ng volume ang mga sumusunod na tampok:
|
preferences.volume.supportedFeatures=Sinusuportahan ng napiling uri ng volume ang mga sumusunod na tampok:
|
||||||
preferences.volume.feature.mountAuto=Awtomatikong pagpili ng mount point
|
preferences.volume.feature.mountAuto=Awtomatikong pagpili ng mount point
|
||||||
preferences.volume.feature.mountToDir=Custom na direktoryo bilang mount point
|
preferences.volume.feature.mountToDir=Custom na direktoryo bilang mount point
|
||||||
@@ -305,12 +320,23 @@ preferences.updates.currentVersion=Kasalukuyang Bersyon: %s
|
|||||||
preferences.updates.autoUpdateCheck=Awtomatikong suriin ang mga update
|
preferences.updates.autoUpdateCheck=Awtomatikong suriin ang mga update
|
||||||
preferences.updates.checkNowBtn=Tingnan ngayon
|
preferences.updates.checkNowBtn=Tingnan ngayon
|
||||||
preferences.updates.updateAvailable=Available ang update sa bersyong %s.
|
preferences.updates.updateAvailable=Available ang update sa bersyong %s.
|
||||||
|
preferences.updates.lastUpdateCheck=Huling pagsusuri: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=hindi kailanman
|
||||||
|
preferences.updates.lastUpdateCheck.recently=kamakailan
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s araw ang lumipas
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s oras ang lumipas
|
||||||
|
preferences.updates.checkFailed=Nabigo ang paghahanap ng mga update. Pakisuri ang iyong koneksyon sa internet o subukang muli sa ibang pagkakataon.
|
||||||
|
preferences.updates.upToDate=Ang Cryptomator ay napapanahon.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Suportahan Kami
|
preferences.contribute=Suportahan Kami
|
||||||
preferences.contribute.registeredFor=Nakarehistro ang sertipiko ng tagasuporta para sa %s
|
preferences.contribute.registeredFor=Nakarehistro ang sertipiko ng tagasuporta para sa %s
|
||||||
preferences.contribute.noCertificate=Suportahan ang Cryptomator at tumanggap ng sertipiko ng tagasuporta. Ito ay tulad ng isang susi ng lisensya ngunit para sa mga kahanga-hangang tao na gumagamit ng libreng software. ;-)
|
preferences.contribute.noCertificate=Suportahan ang Cryptomator at tumanggap ng sertipiko ng tagasuporta. Ito ay tulad ng isang susi ng lisensya ngunit para sa mga kahanga-hangang tao na gumagamit ng libreng software. ;-)
|
||||||
preferences.contribute.getCertificate=Wala ka na ba? Alamin kung paano mo ito makukuha.
|
preferences.contribute.getCertificate=Wala ka na ba? Alamin kung paano mo ito makukuha.
|
||||||
preferences.contribute.promptText=I-paste ang code ng certificate ng tagasuporta dito
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -352,11 +378,6 @@ stats.access.total=Kabuuang mga access: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Isara
|
|
||||||
main.minimizeBtn.tooltip=I-minimize
|
|
||||||
main.preferencesBtn.tooltip=Mga Kagustuhan
|
|
||||||
main.debugModeEnabled.tooltip=Naka-enable ang debug mode
|
|
||||||
main.supporterCertificateMissing.tooltip=Mangyaring isaalang-alang ang pagbibigay ng donasyon
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Mag-click dito para magdagdag ng vault
|
main.vaultlist.emptyList.onboardingInstruction=Mag-click dito para magdagdag ng vault
|
||||||
main.vaultlist.contextMenu.remove=Alisin…
|
main.vaultlist.contextMenu.remove=Alisin…
|
||||||
@@ -365,9 +386,7 @@ main.vaultlist.contextMenu.unlock=I-unlock…
|
|||||||
main.vaultlist.contextMenu.unlockNow=I-unlock Ngayon
|
main.vaultlist.contextMenu.unlockNow=I-unlock Ngayon
|
||||||
main.vaultlist.contextMenu.vaultoptions=Ipakita ang Mga Opsyon sa Vault
|
main.vaultlist.contextMenu.vaultoptions=Ipakita ang Mga Opsyon sa Vault
|
||||||
main.vaultlist.contextMenu.reveal=Ibunyag ang Drive
|
main.vaultlist.contextMenu.reveal=Ibunyag ang Drive
|
||||||
main.vaultlist.addVaultBtn=Idagdag
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Bagong Vault...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Kasalukuyang Vault...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Salamat sa pagpili sa Cryptomator para protektahan ang iyong mga file. Kung kailangan mo ng anumang tulong, tingnan ang aming mga gabay sa pagsisimula:
|
main.vaultDetail.welcomeOnboarding=Salamat sa pagpili sa Cryptomator para protektahan ang iyong mga file. Kung kailangan mo ng anumang tulong, tingnan ang aming mga gabay sa pagsisimula:
|
||||||
@@ -377,6 +396,7 @@ main.vaultDetail.unlockBtn=I-unlock…
|
|||||||
main.vaultDetail.unlockNowBtn=I-unlock Ngayon
|
main.vaultDetail.unlockNowBtn=I-unlock Ngayon
|
||||||
main.vaultDetail.optionsBtn=Mga Pagpipilian sa Vault
|
main.vaultDetail.optionsBtn=Mga Pagpipilian sa Vault
|
||||||
main.vaultDetail.passwordSavedInKeychain=Na-save ang password
|
main.vaultDetail.passwordSavedInKeychain=Na-save ang password
|
||||||
|
main.vaultDetail.share=Ibahagi…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=NAKA-unlock
|
main.vaultDetail.unlockedStatus=NAKA-unlock
|
||||||
main.vaultDetail.accessLocation=Ang mga nilalaman ng iyong vault ay maa-access dito:
|
main.vaultDetail.accessLocation=Ang mga nilalaman ng iyong vault ay maa-access dito:
|
||||||
@@ -431,6 +451,7 @@ vaultOptions.general.startHealthCheckBtn=Simulan ang Health Check
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Pag-mount
|
vaultOptions.mount=Pag-mount
|
||||||
|
vaultOptions.mount.info=Buksan ang mga kagustuhan sa virtual drive upang baguhin ang mga default na setting.
|
||||||
vaultOptions.mount.readonly=Basahin lamang
|
vaultOptions.mount.readonly=Basahin lamang
|
||||||
vaultOptions.mount.customMountFlags=Mga custom na naka-mount na flag
|
vaultOptions.mount.customMountFlags=Mga custom na naka-mount na flag
|
||||||
vaultOptions.mount.winDriveLetterOccupied=inookupahan
|
vaultOptions.mount.winDriveLetterOccupied=inookupahan
|
||||||
@@ -440,6 +461,10 @@ vaultOptions.mount.mountPoint.driveLetter=Gumamit ng nakatalagang drive letter
|
|||||||
vaultOptions.mount.mountPoint.custom=Gamitin ang napiling direktoryo
|
vaultOptions.mount.mountPoint.custom=Gamitin ang napiling direktoryo
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Mamili…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Mamili…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Pumili ng isang direktoryo
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Pumili ng isang direktoryo
|
||||||
|
vaultOptions.mount.volumeType.default=Default (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Upang magamit ang uri ng volume na ito, kailangang i-restart ang Cryptomator.
|
||||||
|
vaultOptions.mount.volume.tcp.port=TCP Port
|
||||||
|
vaultOptions.mount.volume.type=Uri ng Dami
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Password
|
vaultOptions.masterkey=Password
|
||||||
vaultOptions.masterkey.changePasswordBtn=Palitan ANG password
|
vaultOptions.masterkey.changePasswordBtn=Palitan ANG password
|
||||||
@@ -511,4 +536,28 @@ updateReminder.notNow=Hindi ngayon
|
|||||||
updateReminder.yesOnce=Oo, Minsan
|
updateReminder.yesOnce=Oo, Minsan
|
||||||
updateReminder.yesAutomatically=Oo, Awtomatiko
|
updateReminder.yesAutomatically=Oo, Awtomatiko
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Paunawa sa paghinto sa paggamit
|
||||||
|
dokanySupportEnd.message=Pagtatapos ng suporta para sa Dokany
|
||||||
|
dokanySupportEnd.description=Ang uri ng volume na Dokany ay hindi na sinusuportahan ng Cryptomator. Isinasaayos ang iyong mga setting upang magamit ang default na uri ng volume ngayon. Maaari mong tingnan ang default na uri sa mga kagustuhan.
|
||||||
|
dokanySupportEnd.preferencesBtn=Buksan ang Mga Kagustuhan
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Ibahagi ang Vault
|
||||||
|
shareVault.message=Gusto mo bang ibahagi ang iyong vault sa iba?
|
||||||
|
shareVault.description=Maingat palagi pag binabahagi ang iyong vault sa ibang tao. Sa maikling salita, sundin ang mga hakbangin:
|
||||||
|
shareVault.instruction.1=1. Ibahagi ang access ng naka-encrypt na folder ng vault sa pamamagitan ng cloud storage.
|
||||||
|
shareVault.instruction.2=2. Ibahagi ang password ng vault sa isang secure na paraan.
|
||||||
|
shareVault.remarkBestPractices=Para sa higit pang impormasyon, tingnan ang mga mungkahi sa pinakamahuhusay na kagawian sa aming mga doc.
|
||||||
|
shareVault.docsTooltip=Buksan ang dokumentasyon para matuto pa tungkol sa pagbabahagi ng mga vault.
|
||||||
|
shareVault.hubAd.description=Ang ligtas na paraan upang magtrabaho sa mga koponan
|
||||||
|
shareVault.hubAd.keyManagement=• Zero-knowledge key management
|
||||||
|
shareVault.hubAd.authentication=• Malakas na pagpapatunay
|
||||||
|
shareVault.hubAd.encryption=• End-to-end na pag-encrypt
|
||||||
|
shareVault.visitHub=Pagbisita ang Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Paano ibahagi ang Hub vault
|
||||||
|
shareVault.hub.description=Upang maibahagi ang nilalaman ng vault sa isa pang miyembro ng koponan, kailangan mong magsagawa ng dalawang hakbang:
|
||||||
|
shareVault.hub.instruction.1=1. Ibahagi ang access ng naka-encrypt na folder ng vault sa pamamagitan ng cloud storage.
|
||||||
|
shareVault.hub.instruction.2=2. Magbigay ng access sa miyembro ng team sa Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Buksan ang Cryptomator Hub
|
||||||
@@ -287,6 +287,7 @@ preferences.general.debugLogging=Activer les logs debug
|
|||||||
preferences.general.debugDirectory=Afficher le journal
|
preferences.general.debugDirectory=Afficher le journal
|
||||||
preferences.general.autoStart=Lancer Cryptomator au démarrage du système
|
preferences.general.autoStart=Lancer Cryptomator au démarrage du système
|
||||||
preferences.general.keychainBackend=Stocker les mots de passe avec
|
preferences.general.keychainBackend=Stocker les mots de passe avec
|
||||||
|
preferences.general.quickAccessService=Ajouter les coffres déverrouillés à la zone d'accès rapide
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Interface
|
preferences.interface=Interface
|
||||||
preferences.interface.theme=Apparence
|
preferences.interface.theme=Apparence
|
||||||
@@ -299,8 +300,8 @@ preferences.interface.language.auto=Valeur du système
|
|||||||
preferences.interface.interfaceOrientation=Orientation de l'interface
|
preferences.interface.interfaceOrientation=Orientation de l'interface
|
||||||
preferences.interface.interfaceOrientation.ltr=De gauche à droite
|
preferences.interface.interfaceOrientation.ltr=De gauche à droite
|
||||||
preferences.interface.interfaceOrientation.rtl=De droite à gauche
|
preferences.interface.interfaceOrientation.rtl=De droite à gauche
|
||||||
preferences.interface.showMinimizeButton=Afficher le bouton Réduire
|
|
||||||
preferences.interface.showTrayIcon=Montrer l'icône de service (redémarrage nécessaire)
|
preferences.interface.showTrayIcon=Montrer l'icône de service (redémarrage nécessaire)
|
||||||
|
preferences.interface.compactMode=Activer la liste compacte des coffres
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Disque virtuel
|
preferences.volume=Disque virtuel
|
||||||
preferences.volume.type=Type de volume par défaut
|
preferences.volume.type=Type de volume par défaut
|
||||||
@@ -320,12 +321,29 @@ preferences.updates.currentVersion=Version actuelle : “%s”
|
|||||||
preferences.updates.autoUpdateCheck=Vérifier automatiquement si des mises à jour sont disponibles
|
preferences.updates.autoUpdateCheck=Vérifier automatiquement si des mises à jour sont disponibles
|
||||||
preferences.updates.checkNowBtn=Vérifier maintenant
|
preferences.updates.checkNowBtn=Vérifier maintenant
|
||||||
preferences.updates.updateAvailable=Mise à jour “%s” disponible.
|
preferences.updates.updateAvailable=Mise à jour “%s” disponible.
|
||||||
|
preferences.updates.lastUpdateCheck=Dernière vérification : %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=jamais
|
||||||
|
preferences.updates.lastUpdateCheck.recently=récemment
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=Il y a %s jours
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=il y a %s heures
|
||||||
|
preferences.updates.checkFailed=La recherche de mises à jour a échoué. Veuillez vérifier votre connexion internet ou réessayez plus tard.
|
||||||
|
preferences.updates.upToDate=Cryptomator est à jour.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Nous soutenir
|
preferences.contribute=Nous soutenir
|
||||||
preferences.contribute.registeredFor=Certificat de soutien enregistré pour %s
|
preferences.contribute.registeredFor=Certificat de soutien enregistré pour %s
|
||||||
preferences.contribute.noCertificate=Soutenez Cryptomator et recevez un certificat de soutien. C'est comme une clé de licence, mais pour des gens géniaux qui utilisent des logiciels libres. ;-)
|
preferences.contribute.noCertificate=Soutenez Cryptomator et recevez un certificat de soutien. C'est comme une clé de licence, mais pour des gens géniaux qui utilisent des logiciels libres. ;-)
|
||||||
preferences.contribute.getCertificate=Vous n'en avez pas encore? Découvrez comment vous pouvez l'obtenir.
|
preferences.contribute.getCertificate=Vous n'en avez pas encore? Découvrez comment vous pouvez l'obtenir.
|
||||||
preferences.contribute.promptText=Collez le code du certificat du supporter ici
|
preferences.contribute.promptText=Collez le code du certificat du supporter ici
|
||||||
|
preferences.contribute.thankYou=Merci de soutenir le développement open-source de Cryptomator !
|
||||||
|
preferences.contribute.donate=Faire un don
|
||||||
|
preferences.contribute.sponsor=Parrain
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -367,11 +385,6 @@ stats.access.total=Total des accès: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Fermer
|
|
||||||
main.minimizeBtn.tooltip=Réduire
|
|
||||||
main.preferencesBtn.tooltip=Préférences
|
|
||||||
main.debugModeEnabled.tooltip=Le mode débogage est activé
|
|
||||||
main.supporterCertificateMissing.tooltip=Merci d'envisager un don
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Cliquez ici pour ajouter un volume chiffré
|
main.vaultlist.emptyList.onboardingInstruction=Cliquez ici pour ajouter un volume chiffré
|
||||||
main.vaultlist.contextMenu.remove=Retirer…
|
main.vaultlist.contextMenu.remove=Retirer…
|
||||||
@@ -380,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Déverrouiller…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Déverrouiller maintenant
|
main.vaultlist.contextMenu.unlockNow=Déverrouiller maintenant
|
||||||
main.vaultlist.contextMenu.vaultoptions=Afficher les options du volume chiffré
|
main.vaultlist.contextMenu.vaultoptions=Afficher les options du volume chiffré
|
||||||
main.vaultlist.contextMenu.reveal=Afficher le lecteur
|
main.vaultlist.contextMenu.reveal=Afficher le lecteur
|
||||||
main.vaultlist.addVaultBtn=Ajouter
|
main.vaultlist.addVaultBtn.menuItemNew=Créer un nouveau coffre...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nouveau coffre...
|
main.vaultlist.addVaultBtn.menuItemExisting=Ouvrir un coffre existant...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Coffre existant...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Mise à jour disponible.
|
||||||
|
main.notification.support=Soutenir Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Merci d'avoir choisi Cryptomator pour protéger vos fichiers. Si vous avez besoin d'aide, consultez nos guides de démarrage :
|
main.vaultDetail.welcomeOnboarding=Merci d'avoir choisi Cryptomator pour protéger vos fichiers. Si vous avez besoin d'aide, consultez nos guides de démarrage :
|
||||||
@@ -477,7 +492,7 @@ vaultOptions.hub.convertBtn=Convertir en coffre-fort basé sur mot de passe
|
|||||||
## Display Recovery Key
|
## Display Recovery Key
|
||||||
recoveryKey.display.title=Montrer la clé de récupération
|
recoveryKey.display.title=Montrer la clé de récupération
|
||||||
recoveryKey.create.message=Mot de passe requis
|
recoveryKey.create.message=Mot de passe requis
|
||||||
recoveryKey.create.description=Entrer le mot de passe de "%s" pour afficher sa clé de récupération.
|
recoveryKey.create.description=Entrez le mot de passe de "%s" pour afficher sa clé de récupération.
|
||||||
recoveryKey.display.description=La clé de récupération suivante peut être utilisée pour restaurer l'accès à "%s " :
|
recoveryKey.display.description=La clé de récupération suivante peut être utilisée pour restaurer l'accès à "%s " :
|
||||||
recoveryKey.display.StorageHints=Gardez-la dans un endroit sûr, par ex. :\n • Stockez-la en utilisant un gestionnaire de mots de passe\n • Enregistrez-la sur une clé USB\n • Imprimez-la
|
recoveryKey.display.StorageHints=Gardez-la dans un endroit sûr, par ex. :\n • Stockez-la en utilisant un gestionnaire de mots de passe\n • Enregistrez-la sur une clé USB\n • Imprimez-la
|
||||||
## Reset Password
|
## Reset Password
|
||||||
@@ -532,6 +547,12 @@ updateReminder.notNow=Plus tard
|
|||||||
updateReminder.yesOnce=Cette fois seulement
|
updateReminder.yesOnce=Cette fois seulement
|
||||||
updateReminder.yesAutomatically=Oui, automatiquement
|
updateReminder.yesAutomatically=Oui, automatiquement
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Avis d'obsolescence
|
||||||
|
dokanySupportEnd.message=Fin de la prise en charge de Dokany
|
||||||
|
dokanySupportEnd.description=Le type de volume Dokany n'est plus pris en charge par Cryptomator. Vos paramètres sont à présent ajustés pour utiliser le type de volume par défaut. Vous pouvez voir le type par défaut dans les préférences.
|
||||||
|
dokanySupportEnd.preferencesBtn=Ouvrir les préférences
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Partager le coffre
|
shareVault.title=Partager le coffre
|
||||||
shareVault.message=Vous aimeriez partager votre coffre avec d'autres personnes ?
|
shareVault.message=Vous aimeriez partager votre coffre avec d'autres personnes ?
|
||||||
|
|||||||
@@ -77,7 +77,11 @@ lock.forced.retryBtn=Tentar de novo
|
|||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Eliminar
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -90,8 +94,8 @@ lock.forced.retryBtn=Tentar de novo
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Pechar
|
|
||||||
## Vault List
|
## Vault List
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -126,4 +130,6 @@ main.closeBtn.tooltip=Pechar
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -278,7 +278,6 @@ preferences.interface.language.auto=ברירת המחדל של המערכת
|
|||||||
preferences.interface.interfaceOrientation=כיוון ממשק
|
preferences.interface.interfaceOrientation=כיוון ממשק
|
||||||
preferences.interface.interfaceOrientation.ltr=משמאל לימין
|
preferences.interface.interfaceOrientation.ltr=משמאל לימין
|
||||||
preferences.interface.interfaceOrientation.rtl=מימין לשמאל
|
preferences.interface.interfaceOrientation.rtl=מימין לשמאל
|
||||||
preferences.interface.showMinimizeButton=הצג כפתור מזעור
|
|
||||||
preferences.interface.showTrayIcon=הצג צלמית בשורה מטה (דורש הפעלה מחדש)
|
preferences.interface.showTrayIcon=הצג צלמית בשורה מטה (דורש הפעלה מחדש)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=כונן וירטואלי
|
preferences.volume=כונן וירטואלי
|
||||||
@@ -297,12 +296,16 @@ preferences.updates.currentVersion=הגרסה הנוכחית: %s
|
|||||||
preferences.updates.autoUpdateCheck=בצע בדיקת עדכונים אוטומטית
|
preferences.updates.autoUpdateCheck=בצע בדיקת עדכונים אוטומטית
|
||||||
preferences.updates.checkNowBtn=בדוק כעת
|
preferences.updates.checkNowBtn=בדוק כעת
|
||||||
preferences.updates.updateAvailable=שדרוג לגרסה %s זמין.
|
preferences.updates.updateAvailable=שדרוג לגרסה %s זמין.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=תמוך בנו
|
preferences.contribute=תמוך בנו
|
||||||
preferences.contribute.registeredFor=אישור על תמיכה על שם %s
|
preferences.contribute.registeredFor=אישור על תמיכה על שם %s
|
||||||
preferences.contribute.noCertificate=תמכו ב-Cryptomator וקבלו תעודת תמיכה. זה כמו מפתח רישוי רק לאנשים מדהימים שמשתמשים בתוכנה חופשית. ;-)
|
preferences.contribute.noCertificate=תמכו ב-Cryptomator וקבלו תעודת תמיכה. זה כמו מפתח רישוי רק לאנשים מדהימים שמשתמשים בתוכנה חופשית. ;-)
|
||||||
preferences.contribute.getCertificate=עדיין אין לכם אחד? לימדו כיצד אתם יכולים להשיג אותו.
|
preferences.contribute.getCertificate=עדיין אין לכם אחד? לימדו כיצד אתם יכולים להשיג אותו.
|
||||||
preferences.contribute.promptText=הדבק את קוד תעודת התומך כאן
|
preferences.contribute.promptText=הדבק את קוד תעודת התומך כאן
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=הסר
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -344,11 +347,6 @@ stats.access.total=מספר גישות כולל: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=סגור
|
|
||||||
main.minimizeBtn.tooltip=מזער
|
|
||||||
main.preferencesBtn.tooltip=העדפות
|
|
||||||
main.debugModeEnabled.tooltip=מצב דיבאג מופעל
|
|
||||||
main.supporterCertificateMissing.tooltip=תרומתך תתקבל בברכה
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=לחץ כאן להוספת כספת
|
main.vaultlist.emptyList.onboardingInstruction=לחץ כאן להוספת כספת
|
||||||
main.vaultlist.contextMenu.remove=הסר…
|
main.vaultlist.contextMenu.remove=הסר…
|
||||||
@@ -357,8 +355,7 @@ main.vaultlist.contextMenu.unlock=שחרר נעילה…
|
|||||||
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
|
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
|
||||||
main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת
|
main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת
|
||||||
main.vaultlist.contextMenu.reveal=חשוף את הכונן
|
main.vaultlist.contextMenu.reveal=חשוף את הכונן
|
||||||
main.vaultlist.addVaultBtn=הוספה
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=פתיחת כספת...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו:
|
main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו:
|
||||||
@@ -493,4 +490,7 @@ updateReminder.title=בדיקת עדכון
|
|||||||
updateReminder.message=חפש עדכונים?
|
updateReminder.message=חפש עדכונים?
|
||||||
updateReminder.notNow=לא עכשיו
|
updateReminder.notNow=לא עכשיו
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=פתח העדפות
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -216,8 +216,12 @@ preferences.updates=नवीनीकरण
|
|||||||
preferences.updates.currentVersion=वर्तमान संस्करण: %s
|
preferences.updates.currentVersion=वर्तमान संस्करण: %s
|
||||||
preferences.updates.checkNowBtn=अभी जाँचें
|
preferences.updates.checkNowBtn=अभी जाँचें
|
||||||
preferences.updates.updateAvailable=संस्करण %s की तरफ नवीनीकरण उपलब्ध है।
|
preferences.updates.updateAvailable=संस्करण %s की तरफ नवीनीकरण उपलब्ध है।
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=हमें सपोर्ट करें
|
preferences.contribute=हमें सपोर्ट करें
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=हटाएँ
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -230,9 +234,6 @@ preferences.contribute=हमें सपोर्ट करें
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=बंद करें
|
|
||||||
main.preferencesBtn.tooltip=प्राथमिकताएं
|
|
||||||
main.supporterCertificateMissing.tooltip=कृपया दान पर विचार करें।
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=वॉल्ट को डालने के लिए यहाँ क्लिक करें।
|
main.vaultlist.emptyList.onboardingInstruction=वॉल्ट को डालने के लिए यहाँ क्लिक करें।
|
||||||
main.vaultlist.contextMenu.remove=हटाएँ...
|
main.vaultlist.contextMenu.remove=हटाएँ...
|
||||||
@@ -241,7 +242,7 @@ main.vaultlist.contextMenu.unlock=अनलॉक करें...
|
|||||||
main.vaultlist.contextMenu.unlockNow=अब अनलॉक करें
|
main.vaultlist.contextMenu.unlockNow=अब अनलॉक करें
|
||||||
main.vaultlist.contextMenu.vaultoptions=वॉल्ट के विकल्प दिखाए
|
main.vaultlist.contextMenu.vaultoptions=वॉल्ट के विकल्प दिखाए
|
||||||
main.vaultlist.contextMenu.reveal=फोल्डर खोलें
|
main.vaultlist.contextMenu.reveal=फोल्डर खोलें
|
||||||
main.vaultlist.addVaultBtn=जोड़िये
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Cryptomator को अपनी फाइल्स सिराक्षित रखने को चुनने के लिए धन्यवाद। अगर आपको सहायता चाइये, तो हमारी गेटिंग स्टार्टेड गाइगाइड्स देखिये:
|
main.vaultDetail.welcomeOnboarding=Cryptomator को अपनी फाइल्स सिराक्षित रखने को चुनने के लिए धन्यवाद। अगर आपको सहायता चाइये, तो हमारी गेटिंग स्टार्टेड गाइगाइड्स देखिये:
|
||||||
@@ -311,4 +312,7 @@ quit.forced.message=कुछ वॉल्ट्स लॉक नहीं ह
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=प्राथमिकताएँ खोलें
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -213,7 +213,6 @@ preferences.interface.language.auto=Zadano sustavom
|
|||||||
preferences.interface.interfaceOrientation=Orijentacija sučelja
|
preferences.interface.interfaceOrientation=Orijentacija sučelja
|
||||||
preferences.interface.interfaceOrientation.ltr=S lijeva na desno
|
preferences.interface.interfaceOrientation.ltr=S lijeva na desno
|
||||||
preferences.interface.interfaceOrientation.rtl=S desna na lijevo
|
preferences.interface.interfaceOrientation.rtl=S desna na lijevo
|
||||||
preferences.interface.showMinimizeButton=Prikaži dugme za smanjivanje
|
|
||||||
preferences.interface.showTrayIcon=Pokaži ikonu u traci (zahtjeva ponovno pokretanje)
|
preferences.interface.showTrayIcon=Pokaži ikonu u traci (zahtjeva ponovno pokretanje)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtualni pogon
|
preferences.volume=Virtualni pogon
|
||||||
@@ -224,12 +223,16 @@ preferences.updates.currentVersion=Trenutna verzija: %s
|
|||||||
preferences.updates.autoUpdateCheck=Automatski provjeri nadogradnje
|
preferences.updates.autoUpdateCheck=Automatski provjeri nadogradnje
|
||||||
preferences.updates.checkNowBtn=Provjeri sada
|
preferences.updates.checkNowBtn=Provjeri sada
|
||||||
preferences.updates.updateAvailable=Nadogradnja na verziju %s dostupna.
|
preferences.updates.updateAvailable=Nadogradnja na verziju %s dostupna.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Podržite nas
|
preferences.contribute=Podržite nas
|
||||||
preferences.contribute.registeredFor=Certifikat podržavatelja registriran za %s
|
preferences.contribute.registeredFor=Certifikat podržavatelja registriran za %s
|
||||||
preferences.contribute.noCertificate=Podržite Cryptomator i primite certifikat podržavatelja. On je kao licenčni ključ, ali za fenomenalne ljude koji koriste slobodni softver. ;-)
|
preferences.contribute.noCertificate=Podržite Cryptomator i primite certifikat podržavatelja. On je kao licenčni ključ, ali za fenomenalne ljude koji koriste slobodni softver. ;-)
|
||||||
preferences.contribute.getCertificate=Još ga nemate? Naučite kako ga dobiti.
|
preferences.contribute.getCertificate=Još ga nemate? Naučite kako ga dobiti.
|
||||||
preferences.contribute.promptText=Zalijepi certifikat podržavatelja ovdje
|
preferences.contribute.promptText=Zalijepi certifikat podržavatelja ovdje
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Ukloni
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -263,11 +266,6 @@ stats.write.accessCount=Ukupno pisanja: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Zatvori
|
|
||||||
main.minimizeBtn.tooltip=Smanji
|
|
||||||
main.preferencesBtn.tooltip=Postavke
|
|
||||||
main.debugModeEnabled.tooltip=Način otklanjanja pogrešaka je omogućen
|
|
||||||
main.supporterCertificateMissing.tooltip=Molimo razmislite o doniranju
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Pritisnite ovdje da biste dodali trezor
|
main.vaultlist.emptyList.onboardingInstruction=Pritisnite ovdje da biste dodali trezor
|
||||||
main.vaultlist.contextMenu.remove=Ukloni…
|
main.vaultlist.contextMenu.remove=Ukloni…
|
||||||
@@ -276,7 +274,7 @@ main.vaultlist.contextMenu.unlock=Otključaj…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Otključaj sada
|
main.vaultlist.contextMenu.unlockNow=Otključaj sada
|
||||||
main.vaultlist.contextMenu.vaultoptions=Prikaži opcije trezora
|
main.vaultlist.contextMenu.vaultoptions=Prikaži opcije trezora
|
||||||
main.vaultlist.contextMenu.reveal=Otkrij pogon
|
main.vaultlist.contextMenu.reveal=Otkrij pogon
|
||||||
main.vaultlist.addVaultBtn=Dodaj
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Hvala što ste odabrali Cryptomator za zaštitu Vaših datoteka. Ukoliko trebate pomoć, provjerite naše vodiče za početak rada:
|
main.vaultDetail.welcomeOnboarding=Hvala što ste odabrali Cryptomator za zaštitu Vaših datoteka. Ukoliko trebate pomoć, provjerite naše vodiče za početak rada:
|
||||||
@@ -382,4 +380,6 @@ quit.lockAndQuitBtn=Zaključaj i napusti
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Válasszon egy nevet az új széf számára
|
|||||||
addvaultwizard.new.namePrompt=A széf neve
|
addvaultwizard.new.namePrompt=A széf neve
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Hova mentse a Cryptomator a széf titkosított fájljait?
|
addvaultwizard.new.locationInstruction=Hova mentse a Cryptomator a széf titkosított fájljait?
|
||||||
|
addvaultwizard.new.locationLoading=Helyi fájlrendszer ellenőrzése alapértelmezett felhő tárolási könyvtárakra…
|
||||||
addvaultwizard.new.locationLabel=Tárolási hely
|
addvaultwizard.new.locationLabel=Tárolási hely
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Egyedi hely
|
addvaultwizard.new.directoryPickerLabel=Egyedi hely
|
||||||
@@ -141,6 +142,9 @@ unlock.error.customPath.description.hideawayNotDir=A feloldáshoz használt, "%3
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=A széfet nem lehetett a "%s" elérési útvonalra csatlakoztatni. Kérjük, próbálja meg újra, vagy válasszon másik elérési útvonalat.
|
unlock.error.customPath.description.couldNotBeCleaned=A széfet nem lehetett a "%s" elérési útvonalra csatlakoztatni. Kérjük, próbálja meg újra, vagy válasszon másik elérési útvonalat.
|
||||||
unlock.error.customPath.description.notEmptyDir=A megadott "%s" elérési útvonal nem egy üres mappa. Kérjük, válasszon egy üres mappát, és próbálja meg újra.
|
unlock.error.customPath.description.notEmptyDir=A megadott "%s" elérési útvonal nem egy üres mappa. Kérjük, válasszon egy üres mappát, és próbálja meg újra.
|
||||||
unlock.error.customPath.description.generic=Egyéni csatolási útvonalat választott ehhez a széfhez, de használatakor ez a hibaüzenet érkezett: %2$s
|
unlock.error.customPath.description.generic=Egyéni csatolási útvonalat választott ehhez a széfhez, de használatakor ez a hibaüzenet érkezett: %2$s
|
||||||
|
unlock.error.restartRequired.message=Nem lehet feloldani a széfet
|
||||||
|
unlock.error.restartRequired.description=Módosítsa a kötet típusát a széf beállításaiban, vagy indítsa újra a Cryptomator-t.
|
||||||
|
unlock.error.title=A(z) „%s” feloldása sikertelen
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Nem lehet az eszközkulcshoz hozzáférni
|
hub.noKeychain.message=Nem lehet az eszközkulcshoz hozzáférni
|
||||||
hub.noKeychain.description=Hogy feloldja a Hub széfeket, egy eszközkulcs szükséges, mely egy kulcslánccal van biztosítva. A folytatáshoz engedélyezze a következőt: “%s” és válasszon egy kulcsláncot a beállításokban.
|
hub.noKeychain.description=Hogy feloldja a Hub széfeket, egy eszközkulcs szükséges, mely egy kulcslánccal van biztosítva. A folytatáshoz engedélyezze a következőt: “%s” és válasszon egy kulcsláncot a beállításokban.
|
||||||
@@ -154,18 +158,29 @@ hub.receive.message=Válasz feldolgozása…
|
|||||||
hub.receive.description=Cryptomator fogadja és feldolgozza a Hub válaszát. Kérem, várjon.
|
hub.receive.description=Cryptomator fogadja és feldolgozza a Hub válaszát. Kérem, várjon.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Új eszköz
|
hub.register.message=Új eszköz
|
||||||
|
hub.register.description=Ez az első Hub hozzáférés erről az eszközről. Kérem, regisztrálja az Account Key használatával.
|
||||||
hub.register.nameLabel=Készülék neve
|
hub.register.nameLabel=Készülék neve
|
||||||
hub.register.invalidAccountKeyLabel=Érvénytelen fiókkulcs
|
hub.register.invalidAccountKeyLabel=Érvénytelen fiókkulcs
|
||||||
hub.register.registerBtn=Regisztráció
|
hub.register.registerBtn=Regisztráció
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Név már használatban van
|
||||||
|
hub.register.legacy.description=Ez az első Hub hozzáférés erről az eszközről. Kérem, regisztrálja.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Az eszköz regisztrálva
|
||||||
|
hub.registerSuccess.description=Az eszköze sikeresen regisztrálva. Most már folytathatja a széf feloldását.
|
||||||
hub.registerSuccess.unlockBtn=Feloldás
|
hub.registerSuccess.unlockBtn=Feloldás
|
||||||
|
hub.registerSuccess.legacy.description=A széfhez való hozzáféréshez az eszközének a széf tulajdonosától további engedélyt kell kapnia.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Az eszköz regisztrációja sikertelen
|
||||||
|
hub.registerFailed.description.generic=Hiba történt a regisztrációs folyamat során. További részletekért nézze meg az alkalmazás naplóját.
|
||||||
|
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
|
### Unauthorized
|
||||||
hub.unauthorized.message=Hozzáférés megtagadva
|
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.
|
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
|
### Requires Account Initialization
|
||||||
hub.requireAccountInit.message=Beavatkozás szükséges
|
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
|
||||||
|
hub.requireAccountInit.description.1=Hub felhasználói profilodban
|
||||||
hub.requireAccountInit.description.2=.
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.invalidLicense.message=Érvénytelen Hub licenc
|
hub.invalidLicense.message=Érvénytelen Hub licenc
|
||||||
@@ -272,6 +287,7 @@ preferences.general.debugLogging=Hibakeresési naplózás engedélyezése
|
|||||||
preferences.general.debugDirectory=Naplófájlok megjelenítése
|
preferences.general.debugDirectory=Naplófájlok megjelenítése
|
||||||
preferences.general.autoStart=Cryptomator indítása a rendszerrel együtt
|
preferences.general.autoStart=Cryptomator indítása a rendszerrel együtt
|
||||||
preferences.general.keychainBackend=Itt tárolja a jelszavakat
|
preferences.general.keychainBackend=Itt tárolja a jelszavakat
|
||||||
|
preferences.general.quickAccessService=Adja a feloldott széfeket a gyors elérési területhez
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Kezelőfelület
|
preferences.interface=Kezelőfelület
|
||||||
preferences.interface.theme=Megjelenés
|
preferences.interface.theme=Megjelenés
|
||||||
@@ -284,13 +300,15 @@ preferences.interface.language.auto=Rendszer alapértelmezett
|
|||||||
preferences.interface.interfaceOrientation=Felhasználói felület tájolása
|
preferences.interface.interfaceOrientation=Felhasználói felület tájolása
|
||||||
preferences.interface.interfaceOrientation.ltr=Balról jobbra
|
preferences.interface.interfaceOrientation.ltr=Balról jobbra
|
||||||
preferences.interface.interfaceOrientation.rtl=Jobbról balra
|
preferences.interface.interfaceOrientation.rtl=Jobbról balra
|
||||||
preferences.interface.showMinimizeButton=Kicsinyítés ikon megjelenítése
|
|
||||||
preferences.interface.showTrayIcon=Tálca ikon megjelenítése (újraindítás szükséges)
|
preferences.interface.showTrayIcon=Tálca ikon megjelenítése (újraindítás szükséges)
|
||||||
|
preferences.interface.compactMode=Kompakt széflista engedélyezése
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuális meghajtó
|
preferences.volume=Virtuális meghajtó
|
||||||
|
preferences.volume.type=Alapértelmezett kötet típus
|
||||||
preferences.volume.type.automatic=Automatikus
|
preferences.volume.type.automatic=Automatikus
|
||||||
preferences.volume.docsTooltip=További információért a kötet típusokról kattintson ide, hogy megnyissa a dokumentációt.
|
preferences.volume.docsTooltip=További információért a kötet típusokról kattintson ide, hogy megnyissa a dokumentációt.
|
||||||
preferences.volume.fuseRestartRequired=A változtatások alkalmazásához újra kell indítania a Cryptomatort.
|
preferences.volume.fuseRestartRequired=A változtatások alkalmazásához újra kell indítania a Cryptomatort.
|
||||||
|
preferences.volume.tcp.port=Alapértelmezett TCP port
|
||||||
preferences.volume.supportedFeatures=A kiválaszott kötet típus az alábbi funkciókat támogatja:
|
preferences.volume.supportedFeatures=A kiválaszott kötet típus az alábbi funkciókat támogatja:
|
||||||
preferences.volume.feature.mountAuto=Automatikus csatlakozási pont választás
|
preferences.volume.feature.mountAuto=Automatikus csatlakozási pont választás
|
||||||
preferences.volume.feature.mountToDir=Egyéni mappa csatlakozási pontként
|
preferences.volume.feature.mountToDir=Egyéni mappa csatlakozási pontként
|
||||||
@@ -303,12 +321,29 @@ preferences.updates.currentVersion=Jelenlegi verzió: %s
|
|||||||
preferences.updates.autoUpdateCheck=Frissítések autómatikus keresése
|
preferences.updates.autoUpdateCheck=Frissítések autómatikus keresése
|
||||||
preferences.updates.checkNowBtn=Ellenőrzés most
|
preferences.updates.checkNowBtn=Ellenőrzés most
|
||||||
preferences.updates.updateAvailable=Frissítés a %s verzióra elérhető.
|
preferences.updates.updateAvailable=Frissítés a %s verzióra elérhető.
|
||||||
|
preferences.updates.lastUpdateCheck=Utolsó ellenőrzés: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=soha
|
||||||
|
preferences.updates.lastUpdateCheck.recently=mostanában
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s nappal ezelőtt
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s órával ezelőtt
|
||||||
|
preferences.updates.checkFailed=A frissítések keresése sikertelen. Kérem, ellenőrizze az internetkapcsolatát, vagy próbálja meg később újra.
|
||||||
|
preferences.updates.upToDate=A Cryptomator naprakész.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Támogasson bennünket
|
preferences.contribute=Támogasson bennünket
|
||||||
preferences.contribute.registeredFor=Támogatói igazolás regisztrálva neki: %s
|
preferences.contribute.registeredFor=Támogatói igazolás regisztrálva neki: %s
|
||||||
preferences.contribute.noCertificate=Ha támogatja a "Cryptomator"-t, kaphat egy "támogatói igazolást". Az olyasmi mint egy licenckulcs klassz embereknek, akik ingyenes szoftvert használnak. ;-)
|
preferences.contribute.noCertificate=Ha támogatja a "Cryptomator"-t, kaphat egy "támogatói igazolást". Az olyasmi mint egy licenckulcs klassz embereknek, akik ingyenes szoftvert használnak. ;-)
|
||||||
preferences.contribute.getCertificate=Még nincs? Ismerje meg, hogyan szerezheti meg.
|
preferences.contribute.getCertificate=Még nincs? Ismerje meg, hogyan szerezheti meg.
|
||||||
preferences.contribute.promptText=Ide illessze be támogatói igazolása kódját
|
preferences.contribute.promptText=Ide illessze be támogatói igazolása kódját
|
||||||
|
preferences.contribute.thankYou=Köszönjük, hogy támogatja a Cryptomator nyílt forráskódú fejlesztését!
|
||||||
|
preferences.contribute.donate=Támogatás
|
||||||
|
preferences.contribute.sponsor=Szponzor
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -350,11 +385,6 @@ stats.access.total=Összes hozzáférés: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Bezárás
|
|
||||||
main.minimizeBtn.tooltip=Minimalizálás
|
|
||||||
main.preferencesBtn.tooltip=Beállítások
|
|
||||||
main.debugModeEnabled.tooltip=A hibakeresési mód aktiválva van
|
|
||||||
main.supporterCertificateMissing.tooltip=Kérjük, fontolja meg az adományozást
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Kattintson ide egy széf hozzáadásához
|
main.vaultlist.emptyList.onboardingInstruction=Kattintson ide egy széf hozzáadásához
|
||||||
main.vaultlist.contextMenu.remove=Eltávolítás…
|
main.vaultlist.contextMenu.remove=Eltávolítás…
|
||||||
@@ -363,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Feloldás…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Azonnali feloldás
|
main.vaultlist.contextMenu.unlockNow=Azonnali feloldás
|
||||||
main.vaultlist.contextMenu.vaultoptions=Széf beállítások
|
main.vaultlist.contextMenu.vaultoptions=Széf beállítások
|
||||||
main.vaultlist.contextMenu.reveal=Széf megjelenítése
|
main.vaultlist.contextMenu.reveal=Széf megjelenítése
|
||||||
main.vaultlist.addVaultBtn=Hozzáadás
|
main.vaultlist.addVaultBtn.menuItemNew=Új széf létrehozása...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Új széf...
|
main.vaultlist.addVaultBtn.menuItemExisting=Meglévő széf megnyitása...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Meglévő széf...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Frissítés elérhető.
|
||||||
|
main.notification.support=Cryptomator támogatása.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Köszönjük, hogy a Cryptomator programot választotta a fájlai védelmére. Ha segítségre van szüksége, akkor olvassa el a kezdő útmutatónk lépéseit:
|
main.vaultDetail.welcomeOnboarding=Köszönjük, hogy a Cryptomator programot választotta a fájlai védelmére. Ha segítségre van szüksége, akkor olvassa el a kezdő útmutatónk lépéseit:
|
||||||
@@ -375,6 +407,7 @@ main.vaultDetail.unlockBtn=Feloldás…
|
|||||||
main.vaultDetail.unlockNowBtn=Azonnali feloldás
|
main.vaultDetail.unlockNowBtn=Azonnali feloldás
|
||||||
main.vaultDetail.optionsBtn=Széf beállítások
|
main.vaultDetail.optionsBtn=Széf beállítások
|
||||||
main.vaultDetail.passwordSavedInKeychain=Jelszó mentve
|
main.vaultDetail.passwordSavedInKeychain=Jelszó mentve
|
||||||
|
main.vaultDetail.share=Megosztás…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=FELOLDVA
|
main.vaultDetail.unlockedStatus=FELOLDVA
|
||||||
main.vaultDetail.accessLocation=A széf tartalma itt érhető el:
|
main.vaultDetail.accessLocation=A széf tartalma itt érhető el:
|
||||||
@@ -429,6 +462,7 @@ vaultOptions.general.startHealthCheckBtn=Épség-ellenőrzés indítása
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Felcsatolás
|
vaultOptions.mount=Felcsatolás
|
||||||
|
vaultOptions.mount.info=Nyissa meg a virtuális meghajtó beállításait az alapértelmezett beállítások módosításához.
|
||||||
vaultOptions.mount.readonly=Csak-olvasható
|
vaultOptions.mount.readonly=Csak-olvasható
|
||||||
vaultOptions.mount.customMountFlags=Egyedi csatolási paraméterek
|
vaultOptions.mount.customMountFlags=Egyedi csatolási paraméterek
|
||||||
vaultOptions.mount.winDriveLetterOccupied=foglalt
|
vaultOptions.mount.winDriveLetterOccupied=foglalt
|
||||||
@@ -438,6 +472,10 @@ vaultOptions.mount.mountPoint.driveLetter=Használja a kiválasztott meghajtó b
|
|||||||
vaultOptions.mount.mountPoint.custom=Egyéni könyvtár használata
|
vaultOptions.mount.mountPoint.custom=Egyéni könyvtár használata
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Kiválaszt…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Kiválaszt…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Válasszon könyvtárat
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Válasszon könyvtárat
|
||||||
|
vaultOptions.mount.volumeType.default=Alapértelmezett (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Ahhoz, hogy ezt a kötet típust használhassa, újra kell indítania a Cryptomator-t.
|
||||||
|
vaultOptions.mount.volume.tcp.port=TCP port
|
||||||
|
vaultOptions.mount.volume.type=Kötet típus
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Jelszó
|
vaultOptions.masterkey=Jelszó
|
||||||
vaultOptions.masterkey.changePasswordBtn=Jelszó megváltoztatása
|
vaultOptions.masterkey.changePasswordBtn=Jelszó megváltoztatása
|
||||||
@@ -509,4 +547,28 @@ updateReminder.notNow=Most nem
|
|||||||
updateReminder.yesOnce=Igen, egyszer
|
updateReminder.yesOnce=Igen, egyszer
|
||||||
updateReminder.yesAutomatically=Igen, automatikusan
|
updateReminder.yesAutomatically=Igen, automatikusan
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Értesítés elavulásról
|
||||||
|
dokanySupportEnd.message=Vége a Dokany támogatásának
|
||||||
|
dokanySupportEnd.description=A Cryptomator nem támogatja tovább a Dokany kötettípust. A beállítások az alapértelmezett kötettípus használatára lettek állítva. Az alapértelmezett típust a beállítások közt tekintheted meg.
|
||||||
|
dokanySupportEnd.preferencesBtn=Beállítások megnyitása
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Széf megosztása
|
||||||
|
shareVault.message=Szeretné megosztani a széfét másokkal?
|
||||||
|
shareVault.description=Mindig legyen óvatos, amikor másokkal osztja meg a széfét. Röviden, kövesse az alábbi lépéseket:
|
||||||
|
shareVault.instruction.1=Ossza meg a titkosított széf mappájának hozzáférését felhőalapú tárolón keresztül.
|
||||||
|
shareVault.instruction.2=2. Ossza meg a széf jelszavát biztonságos módon.
|
||||||
|
shareVault.remarkBestPractices=További információkért tekintse meg a legjobb gyakorlatokra vonatkozó javaslatokat a dokumentációnkban.
|
||||||
|
shareVault.docsTooltip=Nyissa meg a dokumentációt, hogy többet megtudjon a széfek megosztásáról.
|
||||||
|
shareVault.hubAd.description=A biztonságos mód csapatokban való munkavégzéshez
|
||||||
|
shareVault.hubAd.keyManagement=• Nullaismeretű (Zero-knowledge) kulcskezelés
|
||||||
|
shareVault.hubAd.authentication=• Erős hitelesítés
|
||||||
|
shareVault.hubAd.encryption=• Végponttól végpontig terjedő titkosítás
|
||||||
|
shareVault.visitHub=Látogassa meg a Cryptomator Hubot
|
||||||
|
|
||||||
|
shareVault.hub.message=Hogyan osszon meg egy Hub széfet
|
||||||
|
shareVault.hub.description=Ahhoz, hogy megossza a széf tartalmát egy másik csapattaggal, két lépést kell végrehajtania:
|
||||||
|
shareVault.hub.instruction.1=Ossza meg a titkosított széf mappájának hozzáférését felhőalapú tárolón keresztül.
|
||||||
|
shareVault.hub.instruction.2=2. Adjon hozzáférést a csapattagnak a Cryptomator Hubban.
|
||||||
|
shareVault.hub.openHub=Nyissa meg a Cryptomator Hubot
|
||||||
@@ -15,11 +15,16 @@ generic.button.next=Lanjut
|
|||||||
generic.button.print=Cetak
|
generic.button.print=Cetak
|
||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=Error %s
|
error.message=Terjadi kesalahan %s
|
||||||
error.description=Ups! Cryptomator tidak menyangka hal ini terjadi. Anda dapat mencari solusi yang tersedia untuk error ini. Atau jika error ini belum pernah dilaporkan, tidak perlu sungkan untuk melaporkannya.
|
error.description=Ups! Cryptomator tidak menyangka hal ini terjadi. Anda dapat mencari solusi yang tersedia untuk error ini. Atau jika error ini belum pernah dilaporkan, tidak perlu sungkan untuk melaporkannya.
|
||||||
error.hyperlink.lookup=Cari error berikut
|
error.hyperlink.lookup=Cari tahu informasi lebih lanjut tentang suatu kesalahan
|
||||||
error.hyperlink.report=Laporkan error berikut
|
error.hyperlink.report=Laporkan error berikut
|
||||||
error.technicalDetails=Rincian:
|
error.technicalDetails=Rincian:
|
||||||
|
error.existingSolutionDescription=Maaf, Cryptomator tiba-tiba berhenti. Tapi telah ditemukan sebuah jawaban untuk masalah ini. Lihat tautan berikut.
|
||||||
|
error.hyperlink.solution=Cari tahu solusi untuk masalah ini
|
||||||
|
error.lookupPermissionMessage=Cryptomator bisa mencari solusinya secara daring. Ini akan meneruskan pesan ke direktori masalah kami dengan alamat IP Anda.
|
||||||
|
error.dismiss=Tutup
|
||||||
|
error.lookUpSolution=Cari tahu solusinya
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
defaults.vault.vaultName=Vault
|
defaults.vault.vaultName=Vault
|
||||||
@@ -34,13 +39,15 @@ traymenu.vault.lock=Kunci
|
|||||||
traymenu.vault.reveal=Perlihatkan
|
traymenu.vault.reveal=Perlihatkan
|
||||||
|
|
||||||
# Add Vault Wizard
|
# Add Vault Wizard
|
||||||
addvaultwizard.title=Tambah Vault
|
addvaultwizard.title=Tambah Brankas
|
||||||
## New
|
## New
|
||||||
|
addvaultwizard.new.title=Tambah Vault baru
|
||||||
### Name
|
### Name
|
||||||
addvaultwizard.new.nameInstruction=Beri nama untuk vault berikut
|
addvaultwizard.new.nameInstruction=Buat sebuah nama untuk brankas
|
||||||
addvaultwizard.new.namePrompt=Nama Vault
|
addvaultwizard.new.namePrompt=Nama Brankas
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Dimana Cryptomator seharusnya menyimpan vault berisi file enkripsi Anda?
|
addvaultwizard.new.locationInstruction=Dimana Cryptomator seharusnya menyimpan vault berisi file enkripsi Anda?
|
||||||
|
addvaultwizard.new.locationLoading=Memeriksa sistem file lokal untuk direktori default penyimpanan cloud…
|
||||||
addvaultwizard.new.locationLabel=Lokasi penyimpanan
|
addvaultwizard.new.locationLabel=Lokasi penyimpanan
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Lokasi khusus
|
addvaultwizard.new.directoryPickerLabel=Lokasi khusus
|
||||||
@@ -50,7 +57,18 @@ 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.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.locationIsNotWritable=Anda tidak memiliki hak akses untuk menulis pada path yang dipilih
|
||||||
addvaultwizard.new.locationIsOk=Lokasi yang sesuai dengan vault Anda
|
addvaultwizard.new.locationIsOk=Lokasi yang sesuai dengan vault Anda
|
||||||
|
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
|
||||||
|
addvaultwizard.new.validCharacters.dashes=Tanda hubung (%s) atau garis bawah (%s)
|
||||||
### Expert Settings
|
### Expert Settings
|
||||||
|
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Aktifkan pengaturan ahli
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Masukkan nilai antara 36 dan 220 (default 220)
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Buka dokumentasi untuk mempelajari lebih lanjut.
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.title=Panjang maksimum nama file terenkripsi
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Valid
|
||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=Buat Vault
|
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=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?
|
||||||
@@ -74,6 +92,7 @@ addvault.new.readme.accessLocation.2=Ini adalah lokasi akses dari vault Anda.
|
|||||||
addvault.new.readme.accessLocation.3=Seluruh file yang ditambahkan ke volume ini akan dienkripsi oleh Cryptomator. Anda dapat mempergunakan isi vault seperti dalam folder/drive lain pada umumnya. Tampilan yang saat ini Anda lihat adalah tampilan dalam bentuk terdekripsi, yang sebenarnya terjadi adalah file-file Anda selalu dalam kondisi terenkripsi di dalam hard drive Anda.
|
addvault.new.readme.accessLocation.3=Seluruh file yang ditambahkan ke volume ini akan dienkripsi oleh Cryptomator. Anda dapat mempergunakan isi vault seperti dalam folder/drive lain pada umumnya. Tampilan yang saat ini Anda lihat adalah tampilan dalam bentuk terdekripsi, yang sebenarnya terjadi adalah file-file Anda selalu dalam kondisi terenkripsi di dalam hard drive Anda.
|
||||||
addvault.new.readme.accessLocation.4=Anda dapat menghapus file ini.
|
addvault.new.readme.accessLocation.4=Anda dapat menghapus file ini.
|
||||||
## Existing
|
## Existing
|
||||||
|
addvaultwizard.existing.title=Tambahkan Vault yang Ada
|
||||||
addvaultwizard.existing.instruction=Pilih file "vault.cryptomator" Anda dari vault yang ada. Jika hanya ada file bernama "masterkey.cryptomator", pilih file tersebut.
|
addvaultwizard.existing.instruction=Pilih file "vault.cryptomator" Anda dari vault yang ada. Jika hanya ada file bernama "masterkey.cryptomator", pilih file tersebut.
|
||||||
addvaultwizard.existing.chooseBtn=Pilih…
|
addvaultwizard.existing.chooseBtn=Pilih…
|
||||||
addvaultwizard.existing.filePickerTitle=Pilih File Vault
|
addvaultwizard.existing.filePickerTitle=Pilih File Vault
|
||||||
@@ -84,6 +103,7 @@ addvaultwizard.success.unlockNow=Buka Kunci Sekarang
|
|||||||
|
|
||||||
# Remove Vault
|
# Remove Vault
|
||||||
removeVault.title=Hapus Vault
|
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.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
|
removeVault.confirmBtn=Hapus Vault
|
||||||
|
|
||||||
@@ -94,6 +114,7 @@ changepassword.finalConfirmation=Saya mengerti bahwa saya tidak akan dapat menga
|
|||||||
|
|
||||||
# Forget Password
|
# Forget Password
|
||||||
forgetPassword.title=Lupa Kata Sandi
|
forgetPassword.title=Lupa Kata Sandi
|
||||||
|
forgetPassword.message=Lupakan kata sandi yang disimpan?
|
||||||
forgetPassword.description=Tindakan ini akan menghapus kata sandi vault berikut yang tersimpan dari sistem keychain Anda.
|
forgetPassword.description=Tindakan ini akan menghapus kata sandi vault berikut yang tersimpan dari sistem keychain Anda.
|
||||||
forgetPassword.confirmBtn=Lupa Kata Sandi
|
forgetPassword.confirmBtn=Lupa Kata Sandi
|
||||||
|
|
||||||
@@ -103,25 +124,67 @@ unlock.passwordPrompt=Masukkan kata sandi "%s":
|
|||||||
unlock.savePassword=Ingat Kata Sandi
|
unlock.savePassword=Ingat Kata Sandi
|
||||||
unlock.unlockBtn=Buka Kunci
|
unlock.unlockBtn=Buka Kunci
|
||||||
## Select
|
## Select
|
||||||
|
unlock.chooseMasterkey.message=File masterkey tidak ditemukan
|
||||||
unlock.chooseMasterkey.description=Tidak dapat menemukan file masterkey untuk vault ini pada lokasi yang dicari. Mohon pilih file kunci secara manual.
|
unlock.chooseMasterkey.description=Tidak dapat menemukan file masterkey untuk vault ini pada lokasi yang dicari. Mohon pilih file kunci secara manual.
|
||||||
unlock.chooseMasterkey.filePickerTitle=Pilih File Masterkey
|
unlock.chooseMasterkey.filePickerTitle=Pilih File Masterkey
|
||||||
unlock.chooseMasterkey.filePickerMimeDesc=MasterKey Cryptomator
|
unlock.chooseMasterkey.filePickerMimeDesc=MasterKey Cryptomator
|
||||||
## Success
|
## Success
|
||||||
|
unlock.success.message=Buka kunci berhasil
|
||||||
unlock.success.description="%s" berhasil dibuka! Vault Anda sekarang dapat diakses melalui drive virtual.
|
unlock.success.description="%s" berhasil dibuka! Vault Anda sekarang dapat diakses melalui drive virtual.
|
||||||
unlock.success.rememberChoice=Ingat pilihan saya, jangan perlihatkan lagi
|
unlock.success.rememberChoice=Ingat pilihan saya, jangan perlihatkan lagi
|
||||||
unlock.success.revealBtn=Tampilkan Drive
|
unlock.success.revealBtn=Tampilkan Drive
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=Tidak dapat memasang vault ke path kustom
|
||||||
|
unlock.error.customPath.description.notSupported=Jika Anda ingin tetap menggunakan path kustom, silakan buka preferensi dan pilih jenis volume yang mendukungnya. Jika tidak, buka opsi vault dan pilih titik mount yang didukung.
|
||||||
|
unlock.error.customPath.description.notExists=Jalur pemasangan kustom tidak ada. Baik membuatnya di sistem file lokal Anda atau mengubahnya di opsi vault.
|
||||||
|
unlock.error.customPath.description.inUse=Huruf drive atau jalur pemasangan kustom "%s" sudah digunakan.
|
||||||
|
unlock.error.customPath.description.hideawayNotDir=File sementara dan tersembunyi "%3$s" yang digunakan untuk membuka kunci tidak dapat dihapus. Silakan periksa file dan kemudian hapus secara manual.
|
||||||
|
unlock.error.customPath.description.couldNotBeCleaned=Vault Anda tidak dapat dipasang ke path "%s". Silakan coba lagi atau pilih path yang berbeda.
|
||||||
|
unlock.error.customPath.description.notEmptyDir=Path kustom pemasangan "%s" bukan folder kosong. Silakan pilih folder kosong dan coba lagi.
|
||||||
|
unlock.error.customPath.description.generic=Anda telah memilih kustom path pemasangan untuk vault ini, tetapi gagal menggunakannya dengan pesan:%2$s
|
||||||
|
unlock.error.restartRequired.message=Tidak dapat membuka kunci vault
|
||||||
|
unlock.error.restartRequired.description=Ubah jenis volume di opsi vault atau restart Cryptomator.
|
||||||
|
unlock.error.title=Gagal membuka kunci "%s"
|
||||||
## Hub
|
## Hub
|
||||||
|
hub.noKeychain.message=Tidak dapat mengakses perangkat kunci
|
||||||
|
hub.noKeychain.description=Untuk membuka kunci Hub vault, diperlukan perangkat kunci, yang diamankan menggunakan keychain. Untuk melanjutkan, aktifkan “%s” dan pilih keychain di preferensi.
|
||||||
|
hub.noKeychain.openBtn=Buka Preferensi
|
||||||
### Waiting
|
### Waiting
|
||||||
|
hub.auth.message=Menunggu otentikasi…
|
||||||
|
hub.auth.description=Anda secara otomatis akan diarahkan ke halaman login.
|
||||||
|
hub.auth.loginLink=Tidak diarahkan? Klik di sini untuk membukanya.
|
||||||
### Receive Key
|
### Receive Key
|
||||||
|
hub.receive.message=Respons pemrosesan…
|
||||||
|
hub.receive.description=Cryptomator menerima dan memproses respons dari Hub. Harap tunggu.
|
||||||
### Register Device
|
### Register Device
|
||||||
|
hub.register.message=Perangkat Baru
|
||||||
|
hub.register.description=Ini adalah akses Hub pertama dari perangkat ini. Silakan daftarkan menggunakan Kunci Akun Anda.
|
||||||
|
hub.register.nameLabel=Nama Perangkat
|
||||||
|
hub.register.invalidAccountKeyLabel=Kunci Akun Tidak Valid
|
||||||
|
hub.register.registerBtn=Daftar
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Nama sudah digunakan
|
||||||
|
hub.register.legacy.description=Ini adalah akses Hub pertama dari perangkat ini. Silakan daftarkan.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Perangkat terdaftar
|
||||||
|
hub.registerSuccess.description=Perangkat Anda berhasil terdaftar. Sekarang Anda dapat membuka kunci vault.
|
||||||
hub.registerSuccess.unlockBtn=Buka Kunci
|
hub.registerSuccess.unlockBtn=Buka Kunci
|
||||||
|
hub.registerSuccess.legacy.description=Untuk mengakses vault, perangkat Anda harus diberi wewenang tambahan oleh pemilik vault.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Registrasi perangkat gagal
|
||||||
|
hub.registerFailed.description.generic=Kesalahan terjadi dalam proses pendaftaran. Untuk detail lebih lanjut, lihat log aplikasi.
|
||||||
|
hub.registerFailed.description.deviceAlreadyExists=Perangkat ini sudah terdaftar untuk pengguna lain. Cobalah menggunakan akun pengguna atau perangkat yang berbeda.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
|
hub.unauthorized.message=Akses ditolak
|
||||||
|
hub.unauthorized.description=Perangkat Anda belum diizinkan mengakses vault ini. Mintalah pemilik vault untuk mengizinkannya.
|
||||||
### Requires Account Initialization
|
### Requires Account Initialization
|
||||||
|
hub.requireAccountInit.message=Tindakan diperlukan
|
||||||
|
hub.requireAccountInit.description.0=Untuk melanjutkan, silakan lengkapi langkah-langkah yang diperlukan
|
||||||
|
hub.requireAccountInit.description.1=Hub profil pengguna
|
||||||
|
hub.requireAccountInit.description.2=.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
hub.invalidLicense.message=Lisensi Hub tidak valid
|
||||||
|
hub.invalidLicense.description=Instans Cryptomator Hub Anda memiliki lisensi yang tidak valid. Harap informasikan kepada administrator Hub untuk meningkatkan atau memperbarui lisensi.
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -137,6 +200,11 @@ lock.fail.description=Vault "%s" tidak dapat dikunci. Pastikan bahwa file yang b
|
|||||||
migration.title=Tingkatkan Vault
|
migration.title=Tingkatkan Vault
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=Tingkatkan Vault
|
migration.start.header=Tingkatkan Vault
|
||||||
|
migration.start.text=Untuk membuka vault Anda "%s" di Cryptomator versi baru ini, vault harus ditingkatkan ke format yang lebih baru. Sebelum melakukan ini, Anda harus tahu hal berikut:
|
||||||
|
migration.start.remarkUndone=Pembaruan ini tidak dapat dibatalkan.
|
||||||
|
migration.start.remarkVersions=Cryptomator versi yang lebih lama tidak akan dapat membuka vault yang ditingkatkan.
|
||||||
|
migration.start.remarkCanRun=Anda harus yakin bahwa setiap perangkat tempat Anda mengakses vault dapat menjalankan versi Cryptomator ini.
|
||||||
|
migration.start.remarkSynced=Anda harus yakin bahwa vault Anda sepenuhnya disinkronkan pada perangkat ini, dan pada perangkat Anda yang lain, sebelum memutakhirkannya.
|
||||||
migration.start.confirm=Saya telah membaca dan memahami informasi di atas
|
migration.start.confirm=Saya telah membaca dan memahami informasi di atas
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword=Masukkan kata sandi untuk "%s"
|
migration.run.enterPassword=Masukkan kata sandi untuk "%s"
|
||||||
@@ -185,8 +253,25 @@ health.check.detail.checkFinished=Pemeriksaan berhasil dilakukan.
|
|||||||
health.check.detail.checkFinishedAndFound=Pemeriksaan selesai. Silahkan tinjau hasilnya.
|
health.check.detail.checkFinishedAndFound=Pemeriksaan selesai. Silahkan tinjau hasilnya.
|
||||||
health.check.detail.checkFailed=Pemeriksaan terhenti karena terjadi kesalahan.
|
health.check.detail.checkFailed=Pemeriksaan terhenti karena terjadi kesalahan.
|
||||||
health.check.detail.checkCancelled=Pemeriksaan dibatalkan.
|
health.check.detail.checkCancelled=Pemeriksaan dibatalkan.
|
||||||
|
health.check.detail.listFilters.label=Filter
|
||||||
|
health.check.detail.fixAllSpecificBtn=Pemulihan semua jenis
|
||||||
health.check.exportBtn=Ekspor Laporan
|
health.check.exportBtn=Ekspor Laporan
|
||||||
## Result view
|
## Result view
|
||||||
|
health.result.severityFilter.all=Tingkat Keparahan - Semua
|
||||||
|
health.result.severityFilter.good=Baik
|
||||||
|
health.result.severityFilter.info=Info
|
||||||
|
health.result.severityFilter.warn=Peringatan
|
||||||
|
health.result.severityFilter.crit=Kritikal
|
||||||
|
health.result.severityTip.good=Keparahan: Baik\nStruktur vault normal.
|
||||||
|
health.result.severityTip.info=Keparahan: Info\nStruktur vault utuh, perbaikan disarankan.
|
||||||
|
health.result.severityTip.warn=Keparahan: Peringatan\nStruktur vault rusak, sangat disarankan untuk perbaikan.
|
||||||
|
health.result.severityTip.crit=Keparahan: Kritkal\nStruktur vault rusak, kemungkinan kehilangan data.
|
||||||
|
health.result.fixStateFilter.all=Status pemulihan - Semua
|
||||||
|
health.result.fixStateFilter.fixable=Dapat dipulihkan
|
||||||
|
health.result.fixStateFilter.notFixable=Tidak dapat dipulihkan
|
||||||
|
health.result.fixStateFilter.fixing=Memulihkan…
|
||||||
|
health.result.fixStateFilter.fixed=Dipulihkan
|
||||||
|
health.result.fixStateFilter.fixFailed=Pemulihan gagal
|
||||||
## Fix Application
|
## Fix Application
|
||||||
health.fix.fixBtn=Perbaiki
|
health.fix.fixBtn=Perbaiki
|
||||||
health.fix.successTip=Perbaikan berhasil
|
health.fix.successTip=Perbaikan berhasil
|
||||||
@@ -197,6 +282,7 @@ preferences.title=Preferensi
|
|||||||
## General
|
## General
|
||||||
preferences.general=Umum
|
preferences.general=Umum
|
||||||
preferences.general.startHidden=Sembunyikan jendela saat memulai Cryptomator
|
preferences.general.startHidden=Sembunyikan jendela saat memulai Cryptomator
|
||||||
|
preferences.general.autoCloseVaults=Kunci vault yang terbuka secara otomatis saat aplikasi dihentikan
|
||||||
preferences.general.debugLogging=Aktifkan pencatatan debug
|
preferences.general.debugLogging=Aktifkan pencatatan debug
|
||||||
preferences.general.debugDirectory=Perlihatkan file log
|
preferences.general.debugDirectory=Perlihatkan file log
|
||||||
preferences.general.autoStart=Jalankan Cryptomator saat sistem dimulai
|
preferences.general.autoStart=Jalankan Cryptomator saat sistem dimulai
|
||||||
@@ -213,23 +299,36 @@ preferences.interface.language.auto=Bawaan Sistem
|
|||||||
preferences.interface.interfaceOrientation=Orientasi Antarmuka
|
preferences.interface.interfaceOrientation=Orientasi Antarmuka
|
||||||
preferences.interface.interfaceOrientation.ltr=Kiri ke Kanan
|
preferences.interface.interfaceOrientation.ltr=Kiri ke Kanan
|
||||||
preferences.interface.interfaceOrientation.rtl=Kanan ke Kiri
|
preferences.interface.interfaceOrientation.rtl=Kanan ke Kiri
|
||||||
preferences.interface.showMinimizeButton=Tampilkan tombol perkecil
|
|
||||||
preferences.interface.showTrayIcon=Tampilkan ikon tray (aplikasi perlu dimuat ulang)
|
preferences.interface.showTrayIcon=Tampilkan ikon tray (aplikasi perlu dimuat ulang)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Drive Virtual
|
preferences.volume=Drive Virtual
|
||||||
|
preferences.volume.type=Jenis Default Volume
|
||||||
preferences.volume.type.automatic=Otomatis
|
preferences.volume.type.automatic=Otomatis
|
||||||
|
preferences.volume.docsTooltip=Buka dokumentasi untuk mempelajari lebih lanjut tentang berbagai jenis volume.
|
||||||
|
preferences.volume.fuseRestartRequired=Untuk menerapkan perubahan, Cryptomator perlu dimulai kembali.
|
||||||
|
preferences.volume.tcp.port=TCP Port Default
|
||||||
|
preferences.volume.supportedFeatures=Jenis volume yang dipilih mendukung fitur-fitur berikut ini:
|
||||||
|
preferences.volume.feature.mountAuto=Pemilihan titik pemasangan secara otomatis
|
||||||
|
preferences.volume.feature.mountToDir=Direktori kustom sebagai titik pemasangan
|
||||||
|
preferences.volume.feature.mountToDriveLetter=Huruf drive sebagai titik pemasangan
|
||||||
|
preferences.volume.feature.mountFlags=Opsi pemasangan kustom
|
||||||
|
preferences.volume.feature.readOnly=Pemasangan hanya baca saja
|
||||||
## Updates
|
## Updates
|
||||||
preferences.updates=Pembaharuan
|
preferences.updates=Pembaharuan
|
||||||
preferences.updates.currentVersion=Versi Saat Ini: %s
|
preferences.updates.currentVersion=Versi Saat Ini: %s
|
||||||
preferences.updates.autoUpdateCheck=Otomatis periksa update
|
preferences.updates.autoUpdateCheck=Otomatis periksa update
|
||||||
preferences.updates.checkNowBtn=Periksa Sekarang
|
preferences.updates.checkNowBtn=Periksa Sekarang
|
||||||
preferences.updates.updateAvailable=Pembaharuan ke versi %s tersedia.
|
preferences.updates.updateAvailable=Pembaharuan ke versi %s tersedia.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Dukung Kami
|
preferences.contribute=Dukung Kami
|
||||||
preferences.contribute.registeredFor=Sertifikat supporter terdaftar atas nama %s
|
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.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.getCertificate=Belum punya? Pelajari bagaimana Anda bisa mendapatkannya.
|
||||||
preferences.contribute.promptText=Tempel kode sertifikat supporter di sini
|
preferences.contribute.promptText=Tempel kode sertifikat supporter di sini
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Hapus
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -240,34 +339,37 @@ stats.title=Statistik untuk %s
|
|||||||
stats.cacheHitRate=Tingkat Hit Cache
|
stats.cacheHitRate=Tingkat Hit Cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Baca: diam
|
stats.read.throughput.idle=Baca: diam
|
||||||
|
stats.read.throughput.kibs=Membaca: %.2f KiB/s
|
||||||
stats.read.throughput.mibs=Baca: %.2f MiB/detik
|
stats.read.throughput.mibs=Baca: %.2f MiB/detik
|
||||||
stats.read.total.data.none=Data dibaca: -
|
stats.read.total.data.none=Data dibaca: -
|
||||||
|
stats.read.total.data.kib=Data yang dibaca: %.1f KiB
|
||||||
stats.read.total.data.mib=Data dibaca: %.1f MiB
|
stats.read.total.data.mib=Data dibaca: %.1f MiB
|
||||||
stats.read.total.data.gib=Data dibaca: %.1f GiB
|
stats.read.total.data.gib=Data dibaca: %.1f GiB
|
||||||
stats.decr.total.data.none=Data terdekripsi: -
|
stats.decr.total.data.none=Data terdekripsi: -
|
||||||
|
stats.decr.total.data.kib=Data yang didekripsi: %.1f KiB
|
||||||
stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB
|
stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB
|
stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB
|
||||||
stats.read.accessCount=Total dibaca: %d
|
stats.read.accessCount=Total dibaca: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Tulis: diam
|
stats.write.throughput.idle=Tulis: diam
|
||||||
|
stats.write.throughput.kibs=Menulis: %.2f KiB/s
|
||||||
stats.write.throughput.mibs=Tulis: %.2f MiB/detik
|
stats.write.throughput.mibs=Tulis: %.2f MiB/detik
|
||||||
stats.write.total.data.none=Data tertulis: -
|
stats.write.total.data.none=Data tertulis: -
|
||||||
|
stats.write.total.data.kib=Data yang ditulis: %.1f KiB
|
||||||
stats.write.total.data.mib=Data tertulis: %.1f MiB
|
stats.write.total.data.mib=Data tertulis: %.1f MiB
|
||||||
stats.write.total.data.gib=Data tertulis: %.1f GiB
|
stats.write.total.data.gib=Data tertulis: %.1f GiB
|
||||||
stats.encr.total.data.none=Data terenkripsi: -
|
stats.encr.total.data.none=Data terenkripsi: -
|
||||||
|
stats.encr.total.data.kib=Data yang dienkripsi: %.1f KiB
|
||||||
stats.encr.total.data.mib=Data terenkripsi: %.1f MiB
|
stats.encr.total.data.mib=Data terenkripsi: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data terenkripsi: %.1f GiB
|
stats.encr.total.data.gib=Data terenkripsi: %.1f GiB
|
||||||
stats.write.accessCount=Total ditulis: %d
|
stats.write.accessCount=Total ditulis: %d
|
||||||
|
|
||||||
## Accesses
|
## Accesses
|
||||||
|
stats.access.current=Akses: %d
|
||||||
|
stats.access.total=Total yang akses: %d
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Tutup
|
|
||||||
main.minimizeBtn.tooltip=Perkecil
|
|
||||||
main.preferencesBtn.tooltip=Preferensi
|
|
||||||
main.debugModeEnabled.tooltip=Mode Debug diaktifkan
|
|
||||||
main.supporterCertificateMissing.tooltip=Tolong pertimbangkan untuk melakukan donasi
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klik di sini untuk menambahkan vault
|
main.vaultlist.emptyList.onboardingInstruction=Klik di sini untuk menambahkan vault
|
||||||
main.vaultlist.contextMenu.remove=Hapus…
|
main.vaultlist.contextMenu.remove=Hapus…
|
||||||
@@ -276,6 +378,7 @@ main.vaultlist.contextMenu.unlock=Buka Kunci…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Buka Kunci Sekarang
|
main.vaultlist.contextMenu.unlockNow=Buka Kunci Sekarang
|
||||||
main.vaultlist.contextMenu.vaultoptions=Tampilkan Opsi Vault
|
main.vaultlist.contextMenu.vaultoptions=Tampilkan Opsi Vault
|
||||||
main.vaultlist.contextMenu.reveal=Buka Drive
|
main.vaultlist.contextMenu.reveal=Buka Drive
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami:
|
main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami:
|
||||||
@@ -285,16 +388,23 @@ main.vaultDetail.unlockBtn=Buka Kunci…
|
|||||||
main.vaultDetail.unlockNowBtn=Buka Kunci Sekarang
|
main.vaultDetail.unlockNowBtn=Buka Kunci Sekarang
|
||||||
main.vaultDetail.optionsBtn=Opsi Vault
|
main.vaultDetail.optionsBtn=Opsi Vault
|
||||||
main.vaultDetail.passwordSavedInKeychain=Kata Sandi tersimpan
|
main.vaultDetail.passwordSavedInKeychain=Kata Sandi tersimpan
|
||||||
|
main.vaultDetail.share=Bagikan…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=TERBUKA
|
main.vaultDetail.unlockedStatus=TERBUKA
|
||||||
main.vaultDetail.accessLocation=Konten vault Anda dapat diakses di sini:
|
main.vaultDetail.accessLocation=Konten vault Anda dapat diakses di sini:
|
||||||
main.vaultDetail.revealBtn=Buka Drive
|
main.vaultDetail.revealBtn=Buka Drive
|
||||||
|
main.vaultDetail.copyUri=Salin URI
|
||||||
main.vaultDetail.lockBtn=Gembok
|
main.vaultDetail.lockBtn=Gembok
|
||||||
main.vaultDetail.bytesPerSecondRead=Read:
|
main.vaultDetail.bytesPerSecondRead=Read:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Write:
|
main.vaultDetail.bytesPerSecondWritten=Write:
|
||||||
main.vaultDetail.throughput.idle=idle
|
main.vaultDetail.throughput.idle=idle
|
||||||
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/detik
|
main.vaultDetail.throughput.mbps=%.1f MiB/detik
|
||||||
main.vaultDetail.stats=Statistik Vault
|
main.vaultDetail.stats=Statistik Vault
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn=Temukan File yang Dienkripsi
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=Pilih file dari vault Anda untuk menemukan mitra enkripsinya
|
||||||
|
main.vaultDetail.encryptedPathsCopied=Path Disalin ke Clipboard!
|
||||||
|
main.vaultDetail.filePickerTitle=Pilih File Didalam Vault
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator tidak dapat menemukan vault di path ini.
|
main.vaultDetail.missing.info=Cryptomator tidak dapat menemukan vault di path ini.
|
||||||
main.vaultDetail.missing.recheck=Periksa kembali
|
main.vaultDetail.missing.recheck=Periksa kembali
|
||||||
@@ -333,34 +443,59 @@ vaultOptions.general.startHealthCheckBtn=Mulai Pemeriksaan Kesehatan
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Pemasangan
|
vaultOptions.mount=Pemasangan
|
||||||
|
vaultOptions.mount.info=Buka preferensi drive virtual untuk mengubah pengaturan default.
|
||||||
vaultOptions.mount.readonly=Read-Only
|
vaultOptions.mount.readonly=Read-Only
|
||||||
vaultOptions.mount.customMountFlags=Custom Mount Flags
|
vaultOptions.mount.customMountFlags=Custom Mount Flags
|
||||||
vaultOptions.mount.winDriveLetterOccupied=terpakai
|
vaultOptions.mount.winDriveLetterOccupied=terpakai
|
||||||
vaultOptions.mount.mountPoint=Titik Pasang
|
vaultOptions.mount.mountPoint=Titik Pasang
|
||||||
vaultOptions.mount.mountPoint.auto=Secara otomatis memilih lokasi yang sesuai
|
vaultOptions.mount.mountPoint.auto=Secara otomatis memilih lokasi yang sesuai
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Gunakan drive letter yang sudah ditetapkan
|
vaultOptions.mount.mountPoint.driveLetter=Gunakan drive letter yang sudah ditetapkan
|
||||||
|
vaultOptions.mount.mountPoint.custom=Gunakan direktori yang dipilih
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Pilih…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Pilih…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Pilih directori
|
||||||
|
vaultOptions.mount.volumeType.default=Default (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Untuk menggunakan tipe volume ini, Cryptomator perlu dimulai ulang.
|
||||||
|
vaultOptions.mount.volume.tcp.port=Port TCP
|
||||||
|
vaultOptions.mount.volume.type=Jenis Volume
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Kata Sandi
|
vaultOptions.masterkey=Kata Sandi
|
||||||
vaultOptions.masterkey.changePasswordBtn=Ubah Kata Sandi
|
vaultOptions.masterkey.changePasswordBtn=Ubah Kata Sandi
|
||||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Lupa Kata Sandi
|
vaultOptions.masterkey.forgetSavedPasswordBtn=Lupa Kata Sandi
|
||||||
vaultOptions.masterkey.recoveryKeyExplanation=Kunci pemulihan adalah satu-satunya cara Anda untuk memulihkan akses ke vault jika Anda kehilangan kata sandi.
|
vaultOptions.masterkey.recoveryKeyExplanation=Kunci pemulihan adalah satu-satunya cara Anda untuk memulihkan akses ke vault jika Anda kehilangan kata sandi.
|
||||||
vaultOptions.masterkey.showRecoveryKeyBtn=Tampilkan Kunci Pemulihan
|
vaultOptions.masterkey.showRecoveryKeyBtn=Tampilkan Kunci Pemulihan
|
||||||
|
vaultOptions.masterkey.recoverPasswordBtn=Atur Ulang Kata Sandi
|
||||||
## Hub
|
## Hub
|
||||||
|
vaultOptions.hub=Pemulihan
|
||||||
|
vaultOptions.hub.convertInfo=Anda dapat menggunakan kunci pemulihan untuk mengonversi Hub vault ini ke vault berbasis kata sandi dalam keadaan darurat.
|
||||||
|
vaultOptions.hub.convertBtn=Konversi ke Vault Berbasis Kata Sandi
|
||||||
|
|
||||||
# Recovery Key
|
# Recovery Key
|
||||||
## Display Recovery Key
|
## Display Recovery Key
|
||||||
|
recoveryKey.display.title=Tampilkan Kunci Pemulihan
|
||||||
|
recoveryKey.create.message=Diperlukan kata sandi
|
||||||
recoveryKey.create.description=Masukkan kata sandi untuk menampilkan kunci pemulikan untuk "%s":
|
recoveryKey.create.description=Masukkan kata sandi untuk menampilkan kunci pemulikan untuk "%s":
|
||||||
recoveryKey.display.description=Kunci pemulihan berikut dapat digunakan untuk memulihkan akses ke "%s":
|
recoveryKey.display.description=Kunci pemulihan berikut dapat digunakan untuk memulihkan akses ke "%s":
|
||||||
recoveryKey.display.StorageHints=Simpan di tempat yang sangat aman, misal.:\n • Simpan menggunakan password manager\n • Simpan di USB\n • cetak di kertas
|
recoveryKey.display.StorageHints=Simpan di tempat yang sangat aman, misal.:\n • Simpan menggunakan password manager\n • Simpan di USB\n • cetak di kertas
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
|
recoveryKey.recover.title=Atur Ulang Kata Sandi
|
||||||
|
recoveryKey.recover.prompt=Masukkan kunci pemulihan untuk "%s":
|
||||||
recoveryKey.recover.correctKey=Ini adalah kunci pemulihan yang valid
|
recoveryKey.recover.correctKey=Ini adalah kunci pemulihan yang valid
|
||||||
|
recoveryKey.recover.wrongKey=Kunci pemulihan ini milik vault yang lain
|
||||||
|
recoveryKey.recover.invalidKey=Kunci pemulihan ini tidak valid
|
||||||
recoveryKey.printout.heading=Kunci Pemulihan Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Kunci Pemulihan Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
|
recoveryKey.recover.resetBtn=Atur ulang
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
recoveryKey.recover.resetSuccess.message=Atur ulang kata sandi berhasil
|
||||||
|
recoveryKey.recover.resetSuccess.description=Anda dapat membuka kunci vault Anda dengan kata sandi baru.
|
||||||
|
|
||||||
# Convert Vault
|
# Convert Vault
|
||||||
|
convertVault.title=Konversi Vault
|
||||||
|
convertVault.convert.convertBtn.before=Konversi
|
||||||
|
convertVault.convert.convertBtn.processing=Mengonversi…
|
||||||
|
convertVault.success.message=Konversi berhasil
|
||||||
|
convertVault.hubToPassword.success.description=Anda sekarang dapat membuka kunci vault dengan kata sandi yang dipilih tanpa memerlukan akses Hub.
|
||||||
|
|
||||||
# New Password
|
# New Password
|
||||||
newPassword.promptText=Masukkan kata sandi baru
|
newPassword.promptText=Masukkan kata sandi baru
|
||||||
@@ -375,10 +510,43 @@ passwordStrength.messageLabel.3=Kuat
|
|||||||
passwordStrength.messageLabel.4=Sangat kuat
|
passwordStrength.messageLabel.4=Sangat kuat
|
||||||
|
|
||||||
# Quit
|
# Quit
|
||||||
|
quit.title=Hentikan Aplikasi
|
||||||
|
quit.message=Ada vault yang tidak dikunci
|
||||||
|
quit.description=Beri konfirmasi bila Anda ingin berhenti. Cryptomator akan mengunci semua vault yang terbuka agar mencegah kehilangan data.
|
||||||
quit.lockAndQuitBtn=Kunci dan Keluar
|
quit.lockAndQuitBtn=Kunci dan Keluar
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
|
quit.forced.message=Beberapa vault tidak bisa dikunci
|
||||||
|
quit.forced.description=Penguncian vault diblokir oleh operasi yang tertunda atau file yang terbuka. Anda bisa memaksa mengunci brankas yang tersisa, namun mengganggu I/O dapat mengakibatkan hilangnya data yang belum disimpan.
|
||||||
|
quit.forced.forceAndQuitBtn=Paksa dan Berhenti
|
||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
updateReminder.title=Periksa Pembaruan
|
||||||
|
updateReminder.message=Periksa Pembaruan?
|
||||||
|
updateReminder.description=Tetap perbarui dengan fitur baru, perbaikan bug, dan peningkatan keamanan. Kami sarankan untuk memeriksa pembaruan secara otomatis.
|
||||||
|
updateReminder.notNow=Jangan Sekarang
|
||||||
|
updateReminder.yesOnce=Ya, Sekali
|
||||||
|
updateReminder.yesAutomatically=Ya, Secara Otomatis
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=Buka Preferensi
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Bagikan Vault
|
||||||
|
shareVault.message=Apakah Anda ingin berbagi vault dengan orang lain?
|
||||||
|
shareVault.description=Selalu berhati-hati saat berbagi vault dengan orang lain. Singkatnya, ikuti langkah-langkah ini:
|
||||||
|
shareVault.instruction.1=1. Bagikan akses folder vault terenkripsi melalui penyimpanan cloud.
|
||||||
|
shareVault.instruction.2=2. Bagikan kata sandi vault dengan cara yang aman.
|
||||||
|
shareVault.remarkBestPractices=Untuk informasi lebih lanjut, lihat saran praktik terbaik di dokumentasi kami.
|
||||||
|
shareVault.docsTooltip=Buka dokumentasi untuk mempelajari lebih lanjut tentang berbagi vault.
|
||||||
|
shareVault.hubAd.description=Cara aman untuk bekerja dalam tim
|
||||||
|
shareVault.hubAd.keyManagement=• Manajemen kunci tanpa pengetahuan
|
||||||
|
shareVault.hubAd.authentication=• Otentikasi yang kuat
|
||||||
|
shareVault.hubAd.encryption=• Enkripsi end-to-end
|
||||||
|
shareVault.visitHub=Kunjungi Cryptomator Hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Cara berbagi Hub vault
|
||||||
|
shareVault.hub.description=Untuk berbagi isi vault dengan anggota tim lain, Anda harus melakukan dua langkah:
|
||||||
|
shareVault.hub.instruction.1=1. Bagikan akses folder vault terenkripsi melalui penyimpanan cloud.
|
||||||
|
shareVault.hub.instruction.2=2. Berikan akses ke anggota tim di Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Buka Cryptomator Hub
|
||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Scegli un nome per la cassaforte
|
|||||||
addvaultwizard.new.namePrompt=Nome della Cassaforte
|
addvaultwizard.new.namePrompt=Nome della Cassaforte
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Dove dovrebbe memorizzare Cryptomator i file crittografati della tua cassaforte?
|
addvaultwizard.new.locationInstruction=Dove dovrebbe memorizzare Cryptomator i file crittografati della tua cassaforte?
|
||||||
|
addvaultwizard.new.locationLoading=Controllo del filesystem locale per le cartelle predefinite di archiviazione cloud…
|
||||||
addvaultwizard.new.locationLabel=Posizione archivio
|
addvaultwizard.new.locationLabel=Posizione archivio
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Posizione personalizzata
|
addvaultwizard.new.directoryPickerLabel=Posizione personalizzata
|
||||||
@@ -88,7 +89,7 @@ addvault.new.readme.storageLocation.10=Se hai bisogno di aiuto, leggi la documen
|
|||||||
addvault.new.readme.accessLocation.fileName=BENVENUTO.rtf
|
addvault.new.readme.accessLocation.fileName=BENVENUTO.rtf
|
||||||
addvault.new.readme.accessLocation.1=🔐 VOLUME CRITTOGRAFATO 🔐
|
addvault.new.readme.accessLocation.1=🔐 VOLUME CRITTOGRAFATO 🔐
|
||||||
addvault.new.readme.accessLocation.2=Questa è la posizione d'accesso della tua cassaforte.
|
addvault.new.readme.accessLocation.2=Questa è la posizione d'accesso della tua cassaforte.
|
||||||
addvault.new.readme.accessLocation.3=Ogni file aggiunto a questo volume sarà crittografato da Cryptomator. Puoi lavorarci come su ogni altra unità/cartella. Questa è solo una vista decrittografata del suo contenuto, i tuoi file restano sempre crittografati sul tuo disco rigido.
|
addvault.new.readme.accessLocation.3=Ogni file aggiunto a questo volume sarà crittografato da Cryptomator. Puoi lavorarci come su ogni altro disco/cartella. Questa è solo una vista decrittografata del suo contenuto, i tuoi file restano sempre crittografati sul tuo disco rigido.
|
||||||
addvault.new.readme.accessLocation.4=Sentiti libero di rimuovere questo file.
|
addvault.new.readme.accessLocation.4=Sentiti libero di rimuovere questo file.
|
||||||
## Existing
|
## Existing
|
||||||
addvaultwizard.existing.title=Aggiungi una Cassaforte Esistente
|
addvaultwizard.existing.title=Aggiungi una Cassaforte Esistente
|
||||||
@@ -131,7 +132,7 @@ unlock.chooseMasterkey.filePickerMimeDesc=Chiave principale di Cryptomator
|
|||||||
unlock.success.message=Sbloccato con successo
|
unlock.success.message=Sbloccato con successo
|
||||||
unlock.success.description="%s" sbloccato correttamente! La tua cassaforte è ora accessibile tramite la sua unità virtuale.
|
unlock.success.description="%s" sbloccato correttamente! La tua cassaforte è ora accessibile tramite la sua unità virtuale.
|
||||||
unlock.success.rememberChoice=Ricorda la scelta, non mostrarmelo più
|
unlock.success.rememberChoice=Ricorda la scelta, non mostrarmelo più
|
||||||
unlock.success.revealBtn=Rivela l'Unità
|
unlock.success.revealBtn=Rivela Unità
|
||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso personalizzato
|
unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso personalizzato
|
||||||
unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato.
|
unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato.
|
||||||
@@ -141,6 +142,8 @@ unlock.error.customPath.description.hideawayNotDir=Impossibile rimuovere il file
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=La tua cassaforte non può essere montata sul percorso "%s". Riprova o scegli un percorso diverso.
|
unlock.error.customPath.description.couldNotBeCleaned=La tua cassaforte non può essere montata sul percorso "%s". Riprova o scegli un percorso diverso.
|
||||||
unlock.error.customPath.description.notEmptyDir=Il percorso di montaggio selezionato "%s" non è una cartella vuota. Scegli una cartella vuota e riprova.
|
unlock.error.customPath.description.notEmptyDir=Il percorso di montaggio selezionato "%s" non è una cartella vuota. Scegli una cartella vuota e riprova.
|
||||||
unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo non è riuscito con il messaggio: %2$s
|
unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo non è riuscito con il messaggio: %2$s
|
||||||
|
unlock.error.restartRequired.message=Impossibile sbloccare la cassaforte
|
||||||
|
unlock.error.restartRequired.description=Cambia il tipo di unità nelle opzioni della cassaforte o riavvia Cryptomator.
|
||||||
unlock.error.title=Sblocco "%s" non riuscito
|
unlock.error.title=Sblocco "%s" non riuscito
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Impossibile accedere alla chiave del dispositivo
|
hub.noKeychain.message=Impossibile accedere alla chiave del dispositivo
|
||||||
@@ -155,13 +158,22 @@ hub.receive.message=Elaborazione della risposta…
|
|||||||
hub.receive.description=Cryptomator sta ricevendo ed elaborando la risposta da Hub. Attendere prego.
|
hub.receive.description=Cryptomator sta ricevendo ed elaborando la risposta da Hub. Attendere prego.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Nuovo dispositivo
|
hub.register.message=Nuovo dispositivo
|
||||||
|
hub.register.description=Questo è il primo accesso all'Hub da questo dispositivo. Per favore autorizzalo utilizzando la tua chiave dell'account.
|
||||||
hub.register.nameLabel=Nome Del Dispositivo
|
hub.register.nameLabel=Nome Del Dispositivo
|
||||||
hub.register.invalidAccountKeyLabel=Chiave dell'account non valida
|
hub.register.invalidAccountKeyLabel=Chiave dell'account non valida
|
||||||
hub.register.registerBtn=Registrati
|
hub.register.registerBtn=Registrati
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Nome già in uso
|
||||||
|
hub.register.legacy.description=Questo è il primo accesso all'Hub da questo dispositivo. Per favore autorizzalo utilizzando la tua chiave dell'account.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Dispositivo autorizzato
|
||||||
|
hub.registerSuccess.description=Il tuo dispositivo è stato autorizzato correttamente. Ora puoi continuare a sbloccare la cassaforte.
|
||||||
hub.registerSuccess.unlockBtn=Sblocca
|
hub.registerSuccess.unlockBtn=Sblocca
|
||||||
|
hub.registerSuccess.legacy.description=Per accedere alla cassaforte, il tuo dispositivo deve essere anche autorizzato dal proprietario.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Registrazione dispositivo fallita
|
||||||
|
hub.registerFailed.description.generic=Si è verificato un errore nel processo di registrazione. Per maggiori dettagli, consulta il registro delle applicazioni.
|
||||||
|
hub.registerFailed.description.deviceAlreadyExists=Questo dispositivo è già registrato per un utente diverso. Prova a cambiare l'account utente o usa un altro dispositivo.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=Accesso negato
|
hub.unauthorized.message=Accesso negato
|
||||||
hub.unauthorized.description=Il tuo dispositivo non è ancora stato autorizzato ad accedere a questa cassaforte. Chiedi al proprietario della cassaforte di autorizzarlo.
|
hub.unauthorized.description=Il tuo dispositivo non è ancora stato autorizzato ad accedere a questa cassaforte. Chiedi al proprietario della cassaforte di autorizzarlo.
|
||||||
@@ -275,6 +287,7 @@ preferences.general.debugLogging=Abilita la registrazione di debug
|
|||||||
preferences.general.debugDirectory=Rivela i file di registro
|
preferences.general.debugDirectory=Rivela i file di registro
|
||||||
preferences.general.autoStart=Avvia Cryptomator all'avvio del sistema
|
preferences.general.autoStart=Avvia Cryptomator all'avvio del sistema
|
||||||
preferences.general.keychainBackend=Memorizza le password con
|
preferences.general.keychainBackend=Memorizza le password con
|
||||||
|
preferences.general.quickAccessService=Aggiungi cassaforte sbloccata all'area di accesso rapido
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Interfaccia
|
preferences.interface=Interfaccia
|
||||||
preferences.interface.theme=Aspetto
|
preferences.interface.theme=Aspetto
|
||||||
@@ -287,8 +300,8 @@ preferences.interface.language.auto=Predefinita di Sistema
|
|||||||
preferences.interface.interfaceOrientation=Orientamento dell'Interfaccia
|
preferences.interface.interfaceOrientation=Orientamento dell'Interfaccia
|
||||||
preferences.interface.interfaceOrientation.ltr=Da Sinistra a Destra
|
preferences.interface.interfaceOrientation.ltr=Da Sinistra a Destra
|
||||||
preferences.interface.interfaceOrientation.rtl=Da Destra a Sinistra
|
preferences.interface.interfaceOrientation.rtl=Da Destra a Sinistra
|
||||||
preferences.interface.showMinimizeButton=Mostra il pulsante minimizza
|
|
||||||
preferences.interface.showTrayIcon=Mostra l'icona della barra d'applicazioni (richiede il riavvio)
|
preferences.interface.showTrayIcon=Mostra l'icona della barra d'applicazioni (richiede il riavvio)
|
||||||
|
preferences.interface.compactMode=Abilita elenco compatto casseforti
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Unità Virtuale
|
preferences.volume=Unità Virtuale
|
||||||
preferences.volume.type=Tipo di Unità Predefinita
|
preferences.volume.type=Tipo di Unità Predefinita
|
||||||
@@ -308,12 +321,29 @@ preferences.updates.currentVersion=Versione Corrente: %s
|
|||||||
preferences.updates.autoUpdateCheck=Cerca automaticamente gli aggiornamenti
|
preferences.updates.autoUpdateCheck=Cerca automaticamente gli aggiornamenti
|
||||||
preferences.updates.checkNowBtn=Controlla Ora
|
preferences.updates.checkNowBtn=Controlla Ora
|
||||||
preferences.updates.updateAvailable=Aggiornamento alla versione %s disponibile.
|
preferences.updates.updateAvailable=Aggiornamento alla versione %s disponibile.
|
||||||
|
preferences.updates.lastUpdateCheck=Ultimo controllo: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=mai
|
||||||
|
preferences.updates.lastUpdateCheck.recently=recentemente
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s giorni fa
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s ore fa
|
||||||
|
preferences.updates.checkFailed=Ricerca aggiornamenti non riuscita. Controlla la tua connessione internet o riprova più tardi.
|
||||||
|
preferences.updates.upToDate=Cryptomator è aggiornato.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Supportaci
|
preferences.contribute=Supportaci
|
||||||
preferences.contribute.registeredFor=Certificato del sostenitore registrato per %s
|
preferences.contribute.registeredFor=Certificato del sostenitore registrato per %s
|
||||||
preferences.contribute.noCertificate=Supporta Cryptomator e ricevi il certificato da sostenitore. È come una chiave di licenza me per persone fantastiche che usano un software gratuito. ;-)
|
preferences.contribute.noCertificate=Supporta Cryptomator e ricevi un certificato di supporter. È come una chiave di licenza, ma per persone fantastiche che utilizzano software libero. ;-)
|
||||||
preferences.contribute.getCertificate=Non ne hai ancora uno? Scopri come puoi ottenerlo.
|
preferences.contribute.getCertificate=Non ne hai ancora uno? Scopri come puoi ottenerlo.
|
||||||
preferences.contribute.promptText=Incolla qui il codice del certificato da sostenitore
|
preferences.contribute.promptText=Incolla qui il codice del certificato da sostenitore
|
||||||
|
preferences.contribute.thankYou=Grazie per il tuo supporto allo sviluppo open-source di Cryptomator!
|
||||||
|
preferences.contribute.donate=Dona
|
||||||
|
preferences.contribute.sponsor=Sponsor
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -355,11 +385,6 @@ stats.access.total=Accesso totale: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Chiudi
|
|
||||||
main.minimizeBtn.tooltip=Minimizza
|
|
||||||
main.preferencesBtn.tooltip=Preferenze
|
|
||||||
main.debugModeEnabled.tooltip=La modalità di debug è abilitata
|
|
||||||
main.supporterCertificateMissing.tooltip=Per favore, considera le donazioni
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cassaforte
|
main.vaultlist.emptyList.onboardingInstruction=Clicca qui per aggiungere una cassaforte
|
||||||
main.vaultlist.contextMenu.remove=Rimuovi…
|
main.vaultlist.contextMenu.remove=Rimuovi…
|
||||||
@@ -368,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Sblocca…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Sblocca Ora
|
main.vaultlist.contextMenu.unlockNow=Sblocca Ora
|
||||||
main.vaultlist.contextMenu.vaultoptions=Mostra le Opzioni della Cassaforte
|
main.vaultlist.contextMenu.vaultoptions=Mostra le Opzioni della Cassaforte
|
||||||
main.vaultlist.contextMenu.reveal=Rivela Unità
|
main.vaultlist.contextMenu.reveal=Rivela Unità
|
||||||
main.vaultlist.addVaultBtn=Aggiungi
|
main.vaultlist.addVaultBtn.menuItemNew=Crea una nuova cassaforte...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nuova Cassaforte...
|
main.vaultlist.addVaultBtn.menuItemExisting=Apri una cassaforte esistente...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Cassaforte esistente...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Aggiornamento disponibile.
|
||||||
|
main.notification.support=Supporta Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se necessiti d'assistenza, dai un'occhiata alle nostre guide per iniziare:
|
main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se necessiti d'assistenza, dai un'occhiata alle nostre guide per iniziare:
|
||||||
@@ -380,6 +407,7 @@ main.vaultDetail.unlockBtn=Sblocca…
|
|||||||
main.vaultDetail.unlockNowBtn=Sblocca Ora
|
main.vaultDetail.unlockNowBtn=Sblocca Ora
|
||||||
main.vaultDetail.optionsBtn=Opzioni della Cassaforte
|
main.vaultDetail.optionsBtn=Opzioni della Cassaforte
|
||||||
main.vaultDetail.passwordSavedInKeychain=Password salvata
|
main.vaultDetail.passwordSavedInKeychain=Password salvata
|
||||||
|
main.vaultDetail.share=Condividi…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=SBLOCCATA
|
main.vaultDetail.unlockedStatus=SBLOCCATA
|
||||||
main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui:
|
main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui:
|
||||||
@@ -399,7 +427,7 @@ main.vaultDetail.filePickerTitle=Seleziona File Nella Cassaforte
|
|||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator non è riuscito a trovare una cassaforte in questo percorso.
|
main.vaultDetail.missing.info=Cryptomator non è riuscito a trovare una cassaforte in questo percorso.
|
||||||
main.vaultDetail.missing.recheck=Ricontrolla
|
main.vaultDetail.missing.recheck=Ricontrolla
|
||||||
main.vaultDetail.missing.remove=Rimuovi dall'Elenco di Cassaforti…
|
main.vaultDetail.missing.remove=Rimuovi dall'elenco delle casseforti…
|
||||||
main.vaultDetail.missing.changeLocation=Cambia la Posizione della Cassaforte…
|
main.vaultDetail.missing.changeLocation=Cambia la Posizione della Cassaforte…
|
||||||
### Needs Migration
|
### Needs Migration
|
||||||
main.vaultDetail.migrateButton=Aggiorna la Cassaforte
|
main.vaultDetail.migrateButton=Aggiorna la Cassaforte
|
||||||
@@ -445,8 +473,9 @@ vaultOptions.mount.mountPoint.custom=Usa la directory scelta
|
|||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Scegli…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Scegli…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Scegli una directory
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Scegli una directory
|
||||||
vaultOptions.mount.volumeType.default=Predefinito (%s)
|
vaultOptions.mount.volumeType.default=Predefinito (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=Per utilizzare questo tipo di volume, Cryptomator deve essere riavviato.
|
||||||
vaultOptions.mount.volume.tcp.port=Porta TCP
|
vaultOptions.mount.volume.tcp.port=Porta TCP
|
||||||
vaultOptions.mount.volume.type=Tipo di Unità
|
vaultOptions.mount.volume.type=Tipo di Volume
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Password
|
vaultOptions.masterkey=Password
|
||||||
vaultOptions.masterkey.changePasswordBtn=Modifica password
|
vaultOptions.masterkey.changePasswordBtn=Modifica password
|
||||||
@@ -465,7 +494,7 @@ recoveryKey.display.title=Mostra Chiave Di Recupero
|
|||||||
recoveryKey.create.message=Password richiesta
|
recoveryKey.create.message=Password richiesta
|
||||||
recoveryKey.create.description=Inserisci la password per visualizzare la chiave di recupero per "%s":
|
recoveryKey.create.description=Inserisci la password per visualizzare la chiave di recupero per "%s":
|
||||||
recoveryKey.display.description=La seguente chiave di recupero può essere utilizzata per ripristinare l'accesso a %s":
|
recoveryKey.display.description=La seguente chiave di recupero può essere utilizzata per ripristinare l'accesso a %s":
|
||||||
recoveryKey.display.StorageHints=Mantienilo da qualche parte molto sicuro, ad es.\n • Archivialo usando un gestore di password\n • Salvarlo su un'unità flash USB\n • Stamparlo su carta
|
recoveryKey.display.StorageHints=Conservala da qualche parte in modo sicuro, es.\n • Archiviarla usando un gestore di password\n • Salvarla su un'unità flash USB\n • Stamparla su carta
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Reimposta Password
|
recoveryKey.recover.title=Reimposta Password
|
||||||
@@ -518,4 +547,28 @@ updateReminder.notNow=Non adesso
|
|||||||
updateReminder.yesOnce=Sì, una volta
|
updateReminder.yesOnce=Sì, una volta
|
||||||
updateReminder.yesAutomatically=Sì, automaticamente
|
updateReminder.yesAutomatically=Sì, automaticamente
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Avviso di obsolescenza
|
||||||
|
dokanySupportEnd.message=Supporto terminato per Dokany
|
||||||
|
dokanySupportEnd.description=Il tipo di volume Dokany non è più supportato da Cryptomator. Le impostazioni sono state aggiornate per utilizzare il tipo di volume ora predefinito. È possibile visualizzare il tipo predefinito nelle preferenze.
|
||||||
|
dokanySupportEnd.preferencesBtn=Apri Preferenze
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Condividi cassaforte
|
||||||
|
shareVault.message=Vuoi condividere la tua cassaforte con altri?
|
||||||
|
shareVault.description=Fai sempre attenzione quando condividi la tua cassaforte con altre persone. In breve, segui questi passaggi:
|
||||||
|
shareVault.instruction.1=1. Condividi l'accesso alla cartella della cassaforte crittografata tramite l'archiviazione cloud.
|
||||||
|
shareVault.instruction.2=2. Condividi la password della cassaforte in modo sicuro.
|
||||||
|
shareVault.remarkBestPractices=Per ulteriori informazioni, dai un'occhiata ai documenti con i consigli sulle le migliori pratiche.
|
||||||
|
shareVault.docsTooltip=Apri la documentazione per saperne di più circa la condivisione delle casseforti.
|
||||||
|
shareVault.hubAd.description=Il modo sicuro di lavorare in gruppi
|
||||||
|
shareVault.hubAd.keyManagement=Gestione delle chiavi a Conoscenza-Zero
|
||||||
|
shareVault.hubAd.authentication=• Autenticazione forte
|
||||||
|
shareVault.hubAd.encryption=• Crittografia end-to-end
|
||||||
|
shareVault.visitHub=Visita Hub Cryptomator
|
||||||
|
|
||||||
|
shareVault.hub.message=Come condividere una cassaforte Hub
|
||||||
|
shareVault.hub.description=Per condividere il contenuto della cassaforte con un altro membro del gruppo, è necessario eseguire due passaggi:
|
||||||
|
shareVault.hub.instruction.1=1. Condividi l'accesso alla cartella della cassaforte crittografata tramite l'archiviazione cloud.
|
||||||
|
shareVault.hub.instruction.2=2. Concedi l'accesso ai membri del gruppo nell'Hub Cryptomator.
|
||||||
|
shareVault.hub.openHub=Apri l'Hub Cryptomator
|
||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=金庫の名前を入力してください
|
|||||||
addvaultwizard.new.namePrompt=金庫の名前
|
addvaultwizard.new.namePrompt=金庫の名前
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=金庫の暗号化済みファイルをどの場所に保存しますか?
|
addvaultwizard.new.locationInstruction=金庫の暗号化済みファイルをどの場所に保存しますか?
|
||||||
|
addvaultwizard.new.locationLoading=デフォルトのクラウド・ストレージ・ディレクトリについてローカル・ファイルシステムをチェックする...
|
||||||
addvaultwizard.new.locationLabel=保存場所
|
addvaultwizard.new.locationLabel=保存場所
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=ユーザー設定
|
addvaultwizard.new.directoryPickerLabel=ユーザー設定
|
||||||
@@ -143,6 +144,7 @@ unlock.error.customPath.description.notEmptyDir=カスタムマウントパス
|
|||||||
unlock.error.customPath.description.generic=この金庫に対してカスタムマウントパスを選択しましたが、以下のメッセージとともに失敗しました:%2$s
|
unlock.error.customPath.description.generic=この金庫に対してカスタムマウントパスを選択しましたが、以下のメッセージとともに失敗しました:%2$s
|
||||||
unlock.error.restartRequired.message=金庫を解錠できません
|
unlock.error.restartRequired.message=金庫を解錠できません
|
||||||
unlock.error.restartRequired.description=金庫のオプションからボリュームタイプを変更するか、Cryptomatorを再起動してください。
|
unlock.error.restartRequired.description=金庫のオプションからボリュームタイプを変更するか、Cryptomatorを再起動してください。
|
||||||
|
unlock.error.title=ロック解除 "%s" に失敗しました。
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=デバイス キーにアクセスできません
|
hub.noKeychain.message=デバイス キーにアクセスできません
|
||||||
hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。
|
hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。
|
||||||
@@ -158,6 +160,7 @@ hub.receive.description=Cryptomator が Hub からの応答を受信、処理中
|
|||||||
hub.register.message=新しいデバイス
|
hub.register.message=新しいデバイス
|
||||||
hub.register.description=このデバイスからの最初のハブアクセスです。アカウントキーを使用して登録してください。
|
hub.register.description=このデバイスからの最初のハブアクセスです。アカウントキーを使用して登録してください。
|
||||||
hub.register.nameLabel=デバイス名
|
hub.register.nameLabel=デバイス名
|
||||||
|
hub.register.invalidAccountKeyLabel=無効なアカウントキー
|
||||||
hub.register.registerBtn=登録
|
hub.register.registerBtn=登録
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
hub.register.legacy.occupiedMsg=この名前は既に使われています
|
hub.register.legacy.occupiedMsg=この名前は既に使われています
|
||||||
@@ -284,6 +287,7 @@ preferences.general.debugLogging=ログを有効にする
|
|||||||
preferences.general.debugDirectory=ログ ファイルを表示
|
preferences.general.debugDirectory=ログ ファイルを表示
|
||||||
preferences.general.autoStart=システム開始時に Cryptomator を起動する
|
preferences.general.autoStart=システム開始時に Cryptomator を起動する
|
||||||
preferences.general.keychainBackend=次を利用してパスワードを保存する
|
preferences.general.keychainBackend=次を利用してパスワードを保存する
|
||||||
|
preferences.general.quickAccessService=解錠された金庫をクイックアクセス領域に追加
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=インターフェース
|
preferences.interface=インターフェース
|
||||||
preferences.interface.theme=外観
|
preferences.interface.theme=外観
|
||||||
@@ -296,13 +300,14 @@ preferences.interface.language.auto=システムのデフォルト
|
|||||||
preferences.interface.interfaceOrientation=インターフェースの向き
|
preferences.interface.interfaceOrientation=インターフェースの向き
|
||||||
preferences.interface.interfaceOrientation.ltr=左から右
|
preferences.interface.interfaceOrientation.ltr=左から右
|
||||||
preferences.interface.interfaceOrientation.rtl=右から左
|
preferences.interface.interfaceOrientation.rtl=右から左
|
||||||
preferences.interface.showMinimizeButton=最小化ボタンを表示
|
|
||||||
preferences.interface.showTrayIcon=トレイアイコンを表示 (再起動が必要)
|
preferences.interface.showTrayIcon=トレイアイコンを表示 (再起動が必要)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=仮想ドライブ
|
preferences.volume=仮想ドライブ
|
||||||
|
preferences.volume.type=デフォルトのボリュームタイプ
|
||||||
preferences.volume.type.automatic=自動
|
preferences.volume.type.automatic=自動
|
||||||
preferences.volume.docsTooltip=異なるボリュームタイプの詳細については、ドキュメントを確認してください。
|
preferences.volume.docsTooltip=異なるボリュームタイプの詳細については、ドキュメントを確認してください。
|
||||||
preferences.volume.fuseRestartRequired=変更を適用するには、Cryptomator を再起動する必要があります。
|
preferences.volume.fuseRestartRequired=変更を適用するには、Cryptomator を再起動する必要があります。
|
||||||
|
preferences.volume.tcp.port=既定のTCPポート
|
||||||
preferences.volume.supportedFeatures=選択したボリューム形式は、次の機能をサポートしています:
|
preferences.volume.supportedFeatures=選択したボリューム形式は、次の機能をサポートしています:
|
||||||
preferences.volume.feature.mountAuto=マウント先の自動選択
|
preferences.volume.feature.mountAuto=マウント先の自動選択
|
||||||
preferences.volume.feature.mountToDir=カスタム ディレクトリをマウント先に指定
|
preferences.volume.feature.mountToDir=カスタム ディレクトリをマウント先に指定
|
||||||
@@ -315,12 +320,23 @@ preferences.updates.currentVersion=現在のバージョン: %s
|
|||||||
preferences.updates.autoUpdateCheck=自動的に更新を確認する
|
preferences.updates.autoUpdateCheck=自動的に更新を確認する
|
||||||
preferences.updates.checkNowBtn=今すぐ確認
|
preferences.updates.checkNowBtn=今すぐ確認
|
||||||
preferences.updates.updateAvailable=利用可能なバージョン %s に更新します。
|
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
|
## Contribution
|
||||||
preferences.contribute=支援する
|
preferences.contribute=支援する
|
||||||
preferences.contribute.registeredFor=サポート証明書 (%s) が登録されました
|
preferences.contribute.registeredFor=サポート証明書 (%s) が登録されました
|
||||||
preferences.contribute.noCertificate=Cryptomator を支援し、サポーター証明書を受け取りましょう。ライセンスキーに似ていますがフリーソフトを使う寄付者向けのキーです。 ;-)
|
preferences.contribute.noCertificate=Cryptomator を支援し、サポーター証明書を受け取りましょう。ライセンスキーに似ていますがフリーソフトを使う寄付者向けのキーです。 ;-)
|
||||||
preferences.contribute.getCertificate=まだ証明書を手に入れていませんか? 詳細はこちらから確認できます。
|
preferences.contribute.getCertificate=まだ証明書を手に入れていませんか? 詳細はこちらから確認できます。
|
||||||
preferences.contribute.promptText=サポーター証明書をここに張り付けてください
|
preferences.contribute.promptText=サポーター証明書をここに張り付けてください
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=削除
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -362,11 +378,6 @@ stats.access.total=合計アクセス: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=閉じる
|
|
||||||
main.minimizeBtn.tooltip=最小化
|
|
||||||
main.preferencesBtn.tooltip=環境設定
|
|
||||||
main.debugModeEnabled.tooltip=デバッグモードが有効です
|
|
||||||
main.supporterCertificateMissing.tooltip=寄付をお願いします
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=ここをクリックして金庫を追加します
|
main.vaultlist.emptyList.onboardingInstruction=ここをクリックして金庫を追加します
|
||||||
main.vaultlist.contextMenu.remove=削除...
|
main.vaultlist.contextMenu.remove=削除...
|
||||||
@@ -375,9 +386,7 @@ main.vaultlist.contextMenu.unlock=解錠...
|
|||||||
main.vaultlist.contextMenu.unlockNow=今すぐ解錠
|
main.vaultlist.contextMenu.unlockNow=今すぐ解錠
|
||||||
main.vaultlist.contextMenu.vaultoptions=金庫のオプションを表示
|
main.vaultlist.contextMenu.vaultoptions=金庫のオプションを表示
|
||||||
main.vaultlist.contextMenu.reveal=ドライブを表示
|
main.vaultlist.contextMenu.reveal=ドライブを表示
|
||||||
main.vaultlist.addVaultBtn=追加
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=新しい金庫...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=既存の金庫...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=ファイルを保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください:
|
main.vaultDetail.welcomeOnboarding=ファイルを保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください:
|
||||||
@@ -387,6 +396,7 @@ main.vaultDetail.unlockBtn=解錠...
|
|||||||
main.vaultDetail.unlockNowBtn=今すぐ解錠
|
main.vaultDetail.unlockNowBtn=今すぐ解錠
|
||||||
main.vaultDetail.optionsBtn=金庫のオプション
|
main.vaultDetail.optionsBtn=金庫のオプション
|
||||||
main.vaultDetail.passwordSavedInKeychain=パスワードを保存しました
|
main.vaultDetail.passwordSavedInKeychain=パスワードを保存しました
|
||||||
|
main.vaultDetail.share=共有…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=解錠済み
|
main.vaultDetail.unlockedStatus=解錠済み
|
||||||
main.vaultDetail.accessLocation=金庫の内容はこちらからアクセスできます:
|
main.vaultDetail.accessLocation=金庫の内容はこちらからアクセスできます:
|
||||||
@@ -441,6 +451,7 @@ vaultOptions.general.startHealthCheckBtn=正常性チェックを開始
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=マウント
|
vaultOptions.mount=マウント
|
||||||
|
vaultOptions.mount.info=仮想ドライブの環境設定を開き、デフォルト設定を変更します。
|
||||||
vaultOptions.mount.readonly=読み取り専用
|
vaultOptions.mount.readonly=読み取り専用
|
||||||
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
||||||
vaultOptions.mount.winDriveLetterOccupied=使用中
|
vaultOptions.mount.winDriveLetterOccupied=使用中
|
||||||
@@ -450,6 +461,10 @@ vaultOptions.mount.mountPoint.driveLetter=割り当てられるドライブ文
|
|||||||
vaultOptions.mount.mountPoint.custom=選択したディレクトリを使う
|
vaultOptions.mount.mountPoint.custom=選択したディレクトリを使う
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=選択...
|
vaultOptions.mount.mountPoint.directoryPickerButton=選択...
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=ディレクトリを選択
|
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
|
## Master Key
|
||||||
vaultOptions.masterkey=パスワード
|
vaultOptions.masterkey=パスワード
|
||||||
vaultOptions.masterkey.changePasswordBtn=パスワードの変更
|
vaultOptions.masterkey.changePasswordBtn=パスワードの変更
|
||||||
@@ -521,4 +536,28 @@ updateReminder.notNow=また後で
|
|||||||
updateReminder.yesOnce=はい、一度だけ
|
updateReminder.yesOnce=はい、一度だけ
|
||||||
updateReminder.yesAutomatically=自動的に行う
|
updateReminder.yesAutomatically=自動的に行う
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=サポート廃止の通知
|
||||||
|
dokanySupportEnd.message=Dokany のサポート終了
|
||||||
|
dokanySupportEnd.description=ボリュームタイプ
|
||||||
|
dokanySupportEnd.preferencesBtn=環境設定を開く
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=保管庫を共有する
|
||||||
|
shareVault.message=保管庫を他の人と共有しますか?
|
||||||
|
shareVault.description=あなたの保管庫を他の人と共有するときは、常に注意してください。要するに、以下の手順に従ってください:
|
||||||
|
shareVault.instruction.1=1. クラウドストレージ経由で暗号化された保管庫フォルダへのアクセスを共有します。
|
||||||
|
shareVault.instruction.2=2. 保管庫のパスワードを安全な方法で共有する。
|
||||||
|
shareVault.remarkBestPractices=詳しくは、ドキュメントにあるベストプラクティスの提案をご覧ください。
|
||||||
|
shareVault.docsTooltip=保管庫の共有についての詳細は、ドキュメントをご覧ください。
|
||||||
|
shareVault.hubAd.description=チームワークの安全な方法
|
||||||
|
shareVault.hubAd.keyManagement=• ゼロ知識キー管理
|
||||||
|
shareVault.hubAd.authentication=• 強固な認証
|
||||||
|
shareVault.hubAd.encryption=• エンドツーエンドの暗号化
|
||||||
|
shareVault.visitHub=Cryptomator Hubを訪問
|
||||||
|
|
||||||
|
shareVault.hub.message=ハブ保管庫の共有方法
|
||||||
|
shareVault.hub.description=データ保管庫のコンテンツを他のチームメンバーと共有するには、2つの手順を実行する必要があります:
|
||||||
|
shareVault.hub.instruction.1=1. クラウドストレージ経由で暗号化された保管庫フォルダへのアクセスを共有します。
|
||||||
|
shareVault.hub.instruction.2=2. Cryptomator Hubでチームメンバーにアクセスを許可する。
|
||||||
|
shareVault.hub.openHub=Cryptomator Hubを開く
|
||||||
@@ -60,6 +60,10 @@ addvaultwizard.new.validCharacters.numbers=숫자
|
|||||||
addvaultwizard.new.validCharacters.dashes=대시 (%s) 또는 언더바 (%s)
|
addvaultwizard.new.validCharacters.dashes=대시 (%s) 또는 언더바 (%s)
|
||||||
### Expert Settings
|
### Expert Settings
|
||||||
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가용 설정 활성화
|
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=전문가용 설정 활성화
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=36과 220 사이 숫자를 입력해주세요 (기본값: 220)
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=더 자세한 정보는 관련 문서에서 볼 수 있습니다.
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.title=암호화된 파일명의 최대 길이
|
||||||
|
addvaultwizard.new.expertSettings.shorteningThreshold.valid=유효
|
||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=Vault 생성
|
addvaultwizard.new.createVaultBtn=Vault 생성
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice=비밀번호가 없으면 데이터에 접근할 수 없습니다. 비밀번호를 잊었을 때를 대비한 복구 키를 원하십니까?
|
addvaultwizard.new.generateRecoveryKeyChoice=비밀번호가 없으면 데이터에 접근할 수 없습니다. 비밀번호를 잊었을 때를 대비한 복구 키를 원하십니까?
|
||||||
@@ -128,13 +132,21 @@ unlock.success.revealBtn=드라이브 표시
|
|||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.openBtn=설정 열기
|
hub.noKeychain.openBtn=설정 열기
|
||||||
### Waiting
|
### Waiting
|
||||||
|
hub.auth.message=인증 대기중…
|
||||||
### Receive Key
|
### Receive Key
|
||||||
### Register Device
|
### Register Device
|
||||||
|
hub.register.message=새 기기
|
||||||
hub.register.nameLabel=기기 이름
|
hub.register.nameLabel=기기 이름
|
||||||
|
hub.register.invalidAccountKeyLabel=유효하지 않은 계정 키
|
||||||
|
hub.register.registerBtn=등록
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=이미 사용 중인 이름
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=기기 등록됨
|
||||||
hub.registerSuccess.unlockBtn=잠금해제
|
hub.registerSuccess.unlockBtn=잠금해제
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=기기 등록 실패
|
||||||
|
hub.registerFailed.description.generic=등록 중에 에러가 발생했습니다. 앱 로그에서 자세한 정보를 확인할 수 있습니다.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=액세스 거부
|
hub.unauthorized.message=액세스 거부
|
||||||
hub.unauthorized.description=귀하의 기기는 아직 이 저장소에 액세스할 수 있는 권한이 없습니다. Vault 소유자에게 승인을 요청하세요.
|
hub.unauthorized.description=귀하의 기기는 아직 이 저장소에 액세스할 수 있는 권한이 없습니다. Vault 소유자에게 승인을 요청하세요.
|
||||||
@@ -162,6 +174,7 @@ migration.start.text=Vault "%s"를 현재 버전의 Cryptomator에서 열기 위
|
|||||||
migration.start.remarkUndone=이 업그레이드는 되돌릴 수 없습니다.
|
migration.start.remarkUndone=이 업그레이드는 되돌릴 수 없습니다.
|
||||||
migration.start.remarkVersions=과거 버전의 Cryptomator는 업그레이드된 vault를 열 수 없습니다.
|
migration.start.remarkVersions=과거 버전의 Cryptomator는 업그레이드된 vault를 열 수 없습니다.
|
||||||
migration.start.remarkCanRun=이 vault를 열 때 사용하는 모든 장치가 현재 버전의 Cryptomator를 실행할 수 있는지 확인해야 합니다.
|
migration.start.remarkCanRun=이 vault를 열 때 사용하는 모든 장치가 현재 버전의 Cryptomator를 실행할 수 있는지 확인해야 합니다.
|
||||||
|
migration.start.remarkSynced=업그레이드하기 전에 해당 vault가 모든 기기에 정상적으로 동기화되어야 합니다.
|
||||||
migration.start.confirm=나는 위 정보를 읽고 정말 이해했습니다.
|
migration.start.confirm=나는 위 정보를 읽고 정말 이해했습니다.
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword="%s"의 비밀번호를 입력하십시요.
|
migration.run.enterPassword="%s"의 비밀번호를 입력하십시요.
|
||||||
@@ -207,11 +220,23 @@ health.check.detail.checkRunning=검사가 현재 실행중입니다...
|
|||||||
health.check.detail.checkSkipped=선택된 검사항목이 없습니다.
|
health.check.detail.checkSkipped=선택된 검사항목이 없습니다.
|
||||||
health.check.detail.checkFinished=검사가 성공적으로 완료되었습니다.
|
health.check.detail.checkFinished=검사가 성공적으로 완료되었습니다.
|
||||||
health.check.detail.checkFinishedAndFound=검사가 완료되었습니다. 검사 결과를 확인해주세요.
|
health.check.detail.checkFinishedAndFound=검사가 완료되었습니다. 검사 결과를 확인해주세요.
|
||||||
|
health.check.detail.checkFailed=오류로 인해 검사가 종료되었습니다.
|
||||||
health.check.detail.checkCancelled=검사가 취소되었습니다
|
health.check.detail.checkCancelled=검사가 취소되었습니다
|
||||||
health.check.detail.listFilters.label=필터
|
health.check.detail.listFilters.label=필터
|
||||||
health.check.exportBtn=보고서 내보내기
|
health.check.exportBtn=보고서 내보내기
|
||||||
## Result view
|
## Result view
|
||||||
|
health.result.severityFilter.all=모든 상태 표시
|
||||||
|
health.result.severityFilter.good=양호
|
||||||
health.result.severityFilter.warn=경고
|
health.result.severityFilter.warn=경고
|
||||||
|
health.result.severityFilter.crit=심각
|
||||||
|
health.result.severityTip.good=상태: 양호\n정상적인 vault 구조를 가지고 있습니다.
|
||||||
|
health.result.severityTip.crit=상태: 심각\nVault 구조가 손상되었습니다. 데이터 손실이 발생했습니다.
|
||||||
|
health.result.fixStateFilter.all=모든 문제 해결 상태
|
||||||
|
health.result.fixStateFilter.fixable=문제 해결 가능
|
||||||
|
health.result.fixStateFilter.notFixable=문제 해결 불가
|
||||||
|
health.result.fixStateFilter.fixing=문제 해결중…
|
||||||
|
health.result.fixStateFilter.fixed=문제 해결됨
|
||||||
|
health.result.fixStateFilter.fixFailed=문제 해결 실패
|
||||||
## Fix Application
|
## Fix Application
|
||||||
health.fix.fixBtn=문제해결
|
health.fix.fixBtn=문제해결
|
||||||
health.fix.successTip=문제 해결이 성공적으로 완료되었습니다
|
health.fix.successTip=문제 해결이 성공적으로 완료되었습니다
|
||||||
@@ -238,11 +263,11 @@ preferences.interface.language.auto=시스템 기본 설정
|
|||||||
preferences.interface.interfaceOrientation=인터페이스 방향
|
preferences.interface.interfaceOrientation=인터페이스 방향
|
||||||
preferences.interface.interfaceOrientation.ltr=왼쪽에서 오른쪽으로
|
preferences.interface.interfaceOrientation.ltr=왼쪽에서 오른쪽으로
|
||||||
preferences.interface.interfaceOrientation.rtl=오른쪽에서 왼쪽으로
|
preferences.interface.interfaceOrientation.rtl=오른쪽에서 왼쪽으로
|
||||||
preferences.interface.showMinimizeButton=최소화 버튼 표시
|
|
||||||
preferences.interface.showTrayIcon=트레이 아이콘 보기 (재시작 필요)
|
preferences.interface.showTrayIcon=트레이 아이콘 보기 (재시작 필요)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=가상 드라이브
|
preferences.volume=가상 드라이브
|
||||||
preferences.volume.type.automatic=자동
|
preferences.volume.type.automatic=자동
|
||||||
|
preferences.volume.tcp.port=기본 TCP 포트
|
||||||
preferences.volume.supportedFeatures=현재 선택한 볼륨 타입은 다음과 같은 기능들을 지원합니다:
|
preferences.volume.supportedFeatures=현재 선택한 볼륨 타입은 다음과 같은 기능들을 지원합니다:
|
||||||
preferences.volume.feature.mountToDir=마운트할 폴더 지정
|
preferences.volume.feature.mountToDir=마운트할 폴더 지정
|
||||||
preferences.volume.feature.mountToDriveLetter=마운트할 드라이브 문자
|
preferences.volume.feature.mountToDriveLetter=마운트할 드라이브 문자
|
||||||
@@ -254,12 +279,23 @@ preferences.updates.currentVersion=현재 버전: %s
|
|||||||
preferences.updates.autoUpdateCheck=자동으로 업데이트 확인
|
preferences.updates.autoUpdateCheck=자동으로 업데이트 확인
|
||||||
preferences.updates.checkNowBtn=지금 확인
|
preferences.updates.checkNowBtn=지금 확인
|
||||||
preferences.updates.updateAvailable=버전 %s의 업데이트가 가능합니다.
|
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
|
## Contribution
|
||||||
preferences.contribute=후원하기
|
preferences.contribute=후원하기
|
||||||
preferences.contribute.registeredFor=%s (으)로 후원자 인증 등록됨
|
preferences.contribute.registeredFor=%s (으)로 후원자 인증 등록됨
|
||||||
preferences.contribute.noCertificate=Cryptomator를 후원하시고 후원자 인증을 받으십시요. 라이선스 키와 비슷하지만 무료 소프트웨어를 사용하는 멋진 사람들을 위한 것입니다. ;-)
|
preferences.contribute.noCertificate=Cryptomator를 후원하시고 후원자 인증을 받으십시요. 라이선스 키와 비슷하지만 무료 소프트웨어를 사용하는 멋진 사람들을 위한 것입니다. ;-)
|
||||||
preferences.contribute.getCertificate=아직 후원자 인증이 없으신가요? 어떻게 얻는지 배울 수 있습니다.
|
preferences.contribute.getCertificate=아직 후원자 인증이 없으신가요? 어떻게 얻는지 배울 수 있습니다.
|
||||||
preferences.contribute.promptText=후원자 인증코드를 여기에 붙여넣기
|
preferences.contribute.promptText=후원자 인증코드를 여기에 붙여넣기
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=제거
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -300,11 +336,6 @@ stats.access.current=접근: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=닫기
|
|
||||||
main.minimizeBtn.tooltip=최소화
|
|
||||||
main.preferencesBtn.tooltip=환경설정
|
|
||||||
main.debugModeEnabled.tooltip=디버그 모드가 활성화됨.
|
|
||||||
main.supporterCertificateMissing.tooltip=기부를 부탁드립니다.
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이곳을 클릭합니다.
|
main.vaultlist.emptyList.onboardingInstruction=Vault를 추가하기 위해 이곳을 클릭합니다.
|
||||||
main.vaultlist.contextMenu.remove=제거...
|
main.vaultlist.contextMenu.remove=제거...
|
||||||
@@ -313,9 +344,7 @@ main.vaultlist.contextMenu.unlock=잠금해제...
|
|||||||
main.vaultlist.contextMenu.unlockNow=지금 잠금해제
|
main.vaultlist.contextMenu.unlockNow=지금 잠금해제
|
||||||
main.vaultlist.contextMenu.vaultoptions=Vault 옵션 보기
|
main.vaultlist.contextMenu.vaultoptions=Vault 옵션 보기
|
||||||
main.vaultlist.contextMenu.reveal=드라이브 표시
|
main.vaultlist.contextMenu.reveal=드라이브 표시
|
||||||
main.vaultlist.addVaultBtn=추가
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=새로운 금고...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=기존 금고...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작안내서를 참조하시기 바랍니다.
|
main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작안내서를 참조하시기 바랍니다.
|
||||||
@@ -325,6 +354,7 @@ main.vaultDetail.unlockBtn=잠금해제...
|
|||||||
main.vaultDetail.unlockNowBtn=지금 잠금해제
|
main.vaultDetail.unlockNowBtn=지금 잠금해제
|
||||||
main.vaultDetail.optionsBtn=Vault 옵션
|
main.vaultDetail.optionsBtn=Vault 옵션
|
||||||
main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
|
main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
|
||||||
|
main.vaultDetail.share=공유하기
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=잠금해제됨
|
main.vaultDetail.unlockedStatus=잠금해제됨
|
||||||
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
|
||||||
@@ -384,6 +414,7 @@ vaultOptions.mount.mountPoint.driveLetter=드라이브 문자를 지정하여
|
|||||||
vaultOptions.mount.mountPoint.custom=선택한 디렉토리 사용
|
vaultOptions.mount.mountPoint.custom=선택한 디렉토리 사용
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=선택
|
vaultOptions.mount.mountPoint.directoryPickerButton=선택
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=디렉토리 선택
|
vaultOptions.mount.mountPoint.directoryPickerTitle=디렉토리 선택
|
||||||
|
vaultOptions.mount.volume.tcp.port=TCP 포트
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=비밀번호
|
vaultOptions.masterkey=비밀번호
|
||||||
vaultOptions.masterkey.changePasswordBtn=비밀번호 변경
|
vaultOptions.masterkey.changePasswordBtn=비밀번호 변경
|
||||||
@@ -444,4 +475,7 @@ quit.forced.forceAndQuitBtn=Vault 강제 잠금 후 종료하기
|
|||||||
updateReminder.title=업데이트 확인
|
updateReminder.title=업데이트 확인
|
||||||
updateReminder.notNow=나중에
|
updateReminder.notNow=나중에
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.preferencesBtn=설정 열기
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -167,7 +167,10 @@ preferences.updates.currentVersion=Pašreizējā versija: %s
|
|||||||
preferences.updates.autoUpdateCheck=Automātiski pārbaudīt atjauninājumus
|
preferences.updates.autoUpdateCheck=Automātiski pārbaudīt atjauninājumus
|
||||||
preferences.updates.checkNowBtn=Pārbaudīt tagad
|
preferences.updates.checkNowBtn=Pārbaudīt tagad
|
||||||
preferences.updates.updateAvailable=Pieejams atjauninājums uz versiju %s.
|
preferences.updates.updateAvailable=Pieejams atjauninājums uz versiju %s.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -181,15 +184,12 @@ preferences.about=Par lietotni
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Aizvērt
|
|
||||||
main.minimizeBtn.tooltip=Minimizēt
|
|
||||||
main.preferencesBtn.tooltip=Iestatījumi
|
|
||||||
main.supporterCertificateMissing.tooltip=Lūdzu apsveriet iespēju ziedot
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glabātuvi
|
main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glabātuvi
|
||||||
main.vaultlist.contextMenu.lock=Aizslēgt
|
main.vaultlist.contextMenu.lock=Aizslēgt
|
||||||
main.vaultlist.contextMenu.unlockNow=Atslēgt tagad
|
main.vaultlist.contextMenu.unlockNow=Atslēgt tagad
|
||||||
main.vaultlist.contextMenu.reveal=Atklāt disku
|
main.vaultlist.contextMenu.reveal=Atklāt disku
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Paldies, ka izvēlējāties Cryptomator lai aizsargātu jūsu datus. Ja jums nepieciešama palīdzība, iepazīstieties ar mūsu darba sākšanas ceļvežiem:
|
main.vaultDetail.welcomeOnboarding=Paldies, ka izvēlējāties Cryptomator lai aizsargātu jūsu datus. Ja jums nepieciešama palīdzība, iepazīstieties ar mūsu darba sākšanas ceļvežiem:
|
||||||
@@ -279,4 +279,6 @@ quit.lockAndQuitBtn=Aizslēgt un aizvērt
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -106,7 +106,10 @@ preferences.title=Поставки
|
|||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -119,10 +122,9 @@ preferences.title=Поставки
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Затвори
|
|
||||||
main.preferencesBtn.tooltip=Поставки
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.contextMenu.lock=Заклучи
|
main.vaultlist.contextMenu.lock=Заклучи
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -160,4 +162,6 @@ vaultOptions.mount.mountPoint.directoryPickerButton=Избор…
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -64,7 +64,10 @@
|
|||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -78,6 +81,7 @@
|
|||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
## Vault List
|
## Vault List
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
@@ -112,4 +116,6 @@
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ addvaultwizard.new.nameInstruction=Navngi hvelvet
|
|||||||
addvaultwizard.new.namePrompt=Navn på hvelvet
|
addvaultwizard.new.namePrompt=Navn på hvelvet
|
||||||
### Location
|
### Location
|
||||||
addvaultwizard.new.locationInstruction=Hvor skal Cryptomator lagre de krypterte filene dine?
|
addvaultwizard.new.locationInstruction=Hvor skal Cryptomator lagre de krypterte filene dine?
|
||||||
|
addvaultwizard.new.locationLoading=Sjekker lokalt filsystem for standard skylagringskatalog…
|
||||||
addvaultwizard.new.locationLabel=Lagringssted
|
addvaultwizard.new.locationLabel=Lagringssted
|
||||||
addvaultwizard.new.locationPrompt=…
|
addvaultwizard.new.locationPrompt=…
|
||||||
addvaultwizard.new.directoryPickerLabel=Tilpasset lagringssted
|
addvaultwizard.new.directoryPickerLabel=Tilpasset lagringssted
|
||||||
@@ -141,6 +142,8 @@ unlock.error.customPath.description.hideawayNotDir=Den midlertidige, skjulte fil
|
|||||||
unlock.error.customPath.description.couldNotBeCleaned=Hvelvet ditt kan ikke monteres i banen "%s". Prøv igjen eller velg en annen sti.
|
unlock.error.customPath.description.couldNotBeCleaned=Hvelvet ditt kan ikke monteres i banen "%s". Prøv igjen eller velg en annen sti.
|
||||||
unlock.error.customPath.description.notEmptyDir=Tilpasset monterings sti "%s" er ikke en tom mappe. Velg en tom mappe og prøv igjen.
|
unlock.error.customPath.description.notEmptyDir=Tilpasset monterings sti "%s" er ikke en tom mappe. Velg en tom mappe og prøv igjen.
|
||||||
unlock.error.customPath.description.generic=Du har valgt en egendefinert monterings sti for dette hvelvet, men bruk av den mislyktes med meldingen: %2$s
|
unlock.error.customPath.description.generic=Du har valgt en egendefinert monterings sti for dette hvelvet, men bruk av den mislyktes med meldingen: %2$s
|
||||||
|
unlock.error.restartRequired.message=Kan ikke låse opp hvelvet
|
||||||
|
unlock.error.restartRequired.description=Endre volumtype i innstillinger for hvelvet eller start Cryptomator på nytt.
|
||||||
unlock.error.title=Lås opp "%s" mislyktes
|
unlock.error.title=Lås opp "%s" mislyktes
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Får ikke tilgang til enhetsnøkkel
|
hub.noKeychain.message=Får ikke tilgang til enhetsnøkkel
|
||||||
@@ -155,13 +158,22 @@ hub.receive.message=Prosesserer svar…
|
|||||||
hub.receive.description=Cryptomator mottar og behandler svaret fra Hub. Vennligst vent.
|
hub.receive.description=Cryptomator mottar og behandler svaret fra Hub. Vennligst vent.
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=Ny Enhet
|
hub.register.message=Ny Enhet
|
||||||
|
hub.register.description=Dette er første hub tilgang fra denne enheten. Vennligst registrert dette med din kontonøkkel.
|
||||||
hub.register.nameLabel=Enhetsnavn
|
hub.register.nameLabel=Enhetsnavn
|
||||||
hub.register.invalidAccountKeyLabel=Ugyldig kontonøkkel
|
hub.register.invalidAccountKeyLabel=Ugyldig kontonøkkel
|
||||||
hub.register.registerBtn=Registrer
|
hub.register.registerBtn=Registrer
|
||||||
### Register Device Legacy
|
### Register Device Legacy
|
||||||
|
hub.register.legacy.occupiedMsg=Navnet er allerede i bruk
|
||||||
|
hub.register.legacy.description=Dette er første gang Hub blir benyttet fra denne enheten. Vennligst registrer den.
|
||||||
### Registration Success
|
### Registration Success
|
||||||
|
hub.registerSuccess.message=Enhet registrert
|
||||||
|
hub.registerSuccess.description=Enheten din er registrert. Du kan nå fortsette å låse opp hvelvet.
|
||||||
hub.registerSuccess.unlockBtn=Lås opp
|
hub.registerSuccess.unlockBtn=Lås opp
|
||||||
|
hub.registerSuccess.legacy.description=For å få tilgangen til hvelvet, må enheten din i tillegg godkjennes av hvelv eier.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
|
hub.registerFailed.message=Enhetsregistrering mislyktes
|
||||||
|
hub.registerFailed.description.generic=En feil ble gjort under registreringsprossen. For mer detaljer, se i applikasjonsloggen.
|
||||||
|
hub.registerFailed.description.deviceAlreadyExists=Denne enheten er allerede registrert for en annen bruker. Prøv å endre brukerkontoen eller bruk en annen enhet.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=Ingen tilgang
|
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.
|
hub.unauthorized.description=Enheten din har ikke blitt autorisert til å få tilgang til dette hvelvet ennå. Spør hvelveieren om å tillate det.
|
||||||
@@ -287,7 +299,6 @@ preferences.interface.language.auto=Systemstandard
|
|||||||
preferences.interface.interfaceOrientation=Grensesnittorientering
|
preferences.interface.interfaceOrientation=Grensesnittorientering
|
||||||
preferences.interface.interfaceOrientation.ltr=Fra venstre til høyre
|
preferences.interface.interfaceOrientation.ltr=Fra venstre til høyre
|
||||||
preferences.interface.interfaceOrientation.rtl=Fra høyre til venstre
|
preferences.interface.interfaceOrientation.rtl=Fra høyre til venstre
|
||||||
preferences.interface.showMinimizeButton=Vis minimer-knapp
|
|
||||||
preferences.interface.showTrayIcon=Vis verktøykasseikon (krever omstart)
|
preferences.interface.showTrayIcon=Vis verktøykasseikon (krever omstart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuell enhet
|
preferences.volume=Virtuell enhet
|
||||||
@@ -308,12 +319,23 @@ preferences.updates.currentVersion=Gjeldende versjon: %s
|
|||||||
preferences.updates.autoUpdateCheck=Se automatisk etter oppdateringer
|
preferences.updates.autoUpdateCheck=Se automatisk etter oppdateringer
|
||||||
preferences.updates.checkNowBtn=Sjekk nå
|
preferences.updates.checkNowBtn=Sjekk nå
|
||||||
preferences.updates.updateAvailable=Oppdatering til versjon %s er tilgjengelig.
|
preferences.updates.updateAvailable=Oppdatering til versjon %s er tilgjengelig.
|
||||||
|
preferences.updates.lastUpdateCheck=Siste sjekk: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=aldri
|
||||||
|
preferences.updates.lastUpdateCheck.recently=nylig
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s dager siden
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s timer siden
|
||||||
|
preferences.updates.checkFailed=Kunne ikke lete etter oppdateringer. Sjekk internett tilkoblingen din og prøv igjen senere.
|
||||||
|
preferences.updates.upToDate=Cryptomator er oppdatert.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Støtt oss
|
preferences.contribute=Støtt oss
|
||||||
preferences.contribute.registeredFor=Supporter sertifikat registrert for %s
|
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.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.getCertificate=Har du ikke en allerede? Lær hvordan du kan skaffe den.
|
||||||
preferences.contribute.promptText=Lim inn supporter sertifikatkoden her
|
preferences.contribute.promptText=Lim inn supporter sertifikatkoden her
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
removeCert.confirmBtn=Fjern
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -355,11 +377,6 @@ stats.access.total=Antall tilganger: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Lukk
|
|
||||||
main.minimizeBtn.tooltip=Minimer
|
|
||||||
main.preferencesBtn.tooltip=Innstillinger
|
|
||||||
main.debugModeEnabled.tooltip=Feilsøkingsmodus er aktivert
|
|
||||||
main.supporterCertificateMissing.tooltip=Gjerne vurdér en donasjon
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legge til et hvelv
|
main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legge til et hvelv
|
||||||
main.vaultlist.contextMenu.remove=Fjern…
|
main.vaultlist.contextMenu.remove=Fjern…
|
||||||
@@ -368,9 +385,7 @@ main.vaultlist.contextMenu.unlock=Lås opp…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Lås opp nå
|
main.vaultlist.contextMenu.unlockNow=Lås opp nå
|
||||||
main.vaultlist.contextMenu.vaultoptions=Alternativer for hvelvet
|
main.vaultlist.contextMenu.vaultoptions=Alternativer for hvelvet
|
||||||
main.vaultlist.contextMenu.reveal=Vis enheten
|
main.vaultlist.contextMenu.reveal=Vis enheten
|
||||||
main.vaultlist.addVaultBtn=Legg til
|
##Notificaition
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nytt hvelv...
|
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Eksisterende hvelv...
|
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### 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:
|
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:
|
||||||
@@ -380,6 +395,7 @@ main.vaultDetail.unlockBtn=Lås opp…
|
|||||||
main.vaultDetail.unlockNowBtn=Lås opp nå
|
main.vaultDetail.unlockNowBtn=Lås opp nå
|
||||||
main.vaultDetail.optionsBtn=Alternativer for hvelvet
|
main.vaultDetail.optionsBtn=Alternativer for hvelvet
|
||||||
main.vaultDetail.passwordSavedInKeychain=Passordet er lagret
|
main.vaultDetail.passwordSavedInKeychain=Passordet er lagret
|
||||||
|
main.vaultDetail.share=Del…
|
||||||
### Unlocked
|
### Unlocked
|
||||||
main.vaultDetail.unlockedStatus=ULÅST
|
main.vaultDetail.unlockedStatus=ULÅST
|
||||||
main.vaultDetail.accessLocation=Innholdet i hvelvet ditt er tilgjengelig her:
|
main.vaultDetail.accessLocation=Innholdet i hvelvet ditt er tilgjengelig her:
|
||||||
@@ -445,6 +461,7 @@ vaultOptions.mount.mountPoint.custom=Bruk valgt mappe
|
|||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Velg…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Velg…
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Velg en mappe
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Velg en mappe
|
||||||
vaultOptions.mount.volumeType.default=Standard (%s)
|
vaultOptions.mount.volumeType.default=Standard (%s)
|
||||||
|
vaultOptions.mount.volumeType.restartRequired=For å bruke denne volumtypen, må Cryptomator startes på nytt.
|
||||||
vaultOptions.mount.volume.tcp.port=TCP Port
|
vaultOptions.mount.volume.tcp.port=TCP Port
|
||||||
vaultOptions.mount.volume.type=Volumtype
|
vaultOptions.mount.volume.type=Volumtype
|
||||||
## Master Key
|
## Master Key
|
||||||
@@ -518,4 +535,22 @@ updateReminder.notNow=Ikke nå
|
|||||||
updateReminder.yesOnce=Ja, en gang
|
updateReminder.yesOnce=Ja, en gang
|
||||||
updateReminder.yesAutomatically=Ja, automatisk
|
updateReminder.yesAutomatically=Ja, automatisk
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Avskrivingsvarsel
|
||||||
|
dokanySupportEnd.message=Støtte for Dokany er avsluttet
|
||||||
|
dokanySupportEnd.description=Volumtypen Dokany støttes ikke lenger av Cryptomator. Innstillingene dine er justert for å bruke standard volumtype nå. Du kan se standardtypen i innstillingene.
|
||||||
|
dokanySupportEnd.preferencesBtn=Åpne innstillinger
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
shareVault.title=Del hvelv
|
||||||
|
shareVault.message=Vil du dele hvelvet ditt med andre?
|
||||||
|
shareVault.hubAd.description=Den sikre måten å jobbe i et lag på
|
||||||
|
shareVault.hubAd.authentication=• Sterk autentisering
|
||||||
|
shareVault.hubAd.encryption=• Ende-til-ende kryptering
|
||||||
|
shareVault.visitHub=Besøk Cryptomator hub
|
||||||
|
|
||||||
|
shareVault.hub.message=Hvordan dele et Hub-hvelv
|
||||||
|
shareVault.hub.description=For å dele hvelvets innhold med et annet lagmedlem må du utføre to trinn:
|
||||||
|
shareVault.hub.instruction.1=1. Del tilgang til den krypterte hvelvmappen via skylagring.
|
||||||
|
shareVault.hub.instruction.2=2. Gi tilgang til lagmedlem i Cryptomator Hub.
|
||||||
|
shareVault.hub.openHub=Åpne Cryptomator hub
|
||||||
@@ -15,8 +15,8 @@ generic.button.next=Volgende
|
|||||||
generic.button.print=Afdrukken
|
generic.button.print=Afdrukken
|
||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=Fout %s
|
error.message=Er deed zich een fout voor
|
||||||
error.description=Oeps! Cryptomator verwachtte niet dat dit zou gebeuren. U kunt bestaande oplossingen opzoeken voor deze fout, of indien er nog geen melding van deze fout is gemaakt mag u dit ook gerust doen.
|
error.description=Oeps! Cryptomator verwachtte niet dat dit zou gebeuren. U kunt bestaande oplossingen opzoeken voor deze fout, of, indien er nog geen melding van deze fout is gemaakt: doe dit gerust.
|
||||||
error.hyperlink.lookup=Deze fout opzoeken
|
error.hyperlink.lookup=Deze fout opzoeken
|
||||||
error.hyperlink.report=Deze fout melden
|
error.hyperlink.report=Deze fout melden
|
||||||
error.technicalDetails=Details:
|
error.technicalDetails=Details:
|
||||||
@@ -76,7 +76,7 @@ addvaultwizard.new.generateRecoveryKeyChoice.yes=Ja graag, voorkomen is beter da
|
|||||||
addvaultwizard.new.generateRecoveryKeyChoice.no=Nee bedankt, ik verlies mijn wachtwoord niet
|
addvaultwizard.new.generateRecoveryKeyChoice.no=Nee bedankt, ik verlies mijn wachtwoord niet
|
||||||
### Information
|
### Information
|
||||||
addvault.new.readme.storageLocation.fileName=BELANGRIJK.rtf
|
addvault.new.readme.storageLocation.fileName=BELANGRIJK.rtf
|
||||||
addvault.new.readme.storageLocation.1=⚠ KLUISBESTANDEN ⚠
|
addvault.new.readme.storageLocation.1=⚠️ KLUISBESTANDEN ⚠️
|
||||||
addvault.new.readme.storageLocation.2=Dit is de opslaglocatie van uw kluis.
|
addvault.new.readme.storageLocation.2=Dit is de opslaglocatie van uw kluis.
|
||||||
addvault.new.readme.storageLocation.3=NIET DOEN
|
addvault.new.readme.storageLocation.3=NIET DOEN
|
||||||
addvault.new.readme.storageLocation.4=• wijzig enig bestand in deze map of
|
addvault.new.readme.storageLocation.4=• wijzig enig bestand in deze map of
|
||||||
@@ -287,6 +287,7 @@ preferences.general.debugLogging=Debug logging aanzetten
|
|||||||
preferences.general.debugDirectory=Logboekbestanden bekijken
|
preferences.general.debugDirectory=Logboekbestanden bekijken
|
||||||
preferences.general.autoStart=Start Cryptomator als het systeem opstart
|
preferences.general.autoStart=Start Cryptomator als het systeem opstart
|
||||||
preferences.general.keychainBackend=Bewaar wachtwoorden met
|
preferences.general.keychainBackend=Bewaar wachtwoorden met
|
||||||
|
preferences.general.quickAccessService=Voeg ontgrendelde kluizen toe aan snelle toegang
|
||||||
## Interface
|
## Interface
|
||||||
preferences.interface=Uiterlijk
|
preferences.interface=Uiterlijk
|
||||||
preferences.interface.theme=Uiterlijk
|
preferences.interface.theme=Uiterlijk
|
||||||
@@ -299,8 +300,8 @@ preferences.interface.language.auto=Systeemstandaard
|
|||||||
preferences.interface.interfaceOrientation=SchermOrientatie
|
preferences.interface.interfaceOrientation=SchermOrientatie
|
||||||
preferences.interface.interfaceOrientation.ltr=Links naar rechts
|
preferences.interface.interfaceOrientation.ltr=Links naar rechts
|
||||||
preferences.interface.interfaceOrientation.rtl=Rechts naar links
|
preferences.interface.interfaceOrientation.rtl=Rechts naar links
|
||||||
preferences.interface.showMinimizeButton=Knop minimaliseren weergeven
|
|
||||||
preferences.interface.showTrayIcon=Pictogram in systeemvak weergeven (herstart vereist)
|
preferences.interface.showTrayIcon=Pictogram in systeemvak weergeven (herstart vereist)
|
||||||
|
preferences.interface.compactMode=Schakel compacte lijst in
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuele schijf
|
preferences.volume=Virtuele schijf
|
||||||
preferences.volume.type=Standaard volumetype
|
preferences.volume.type=Standaard volumetype
|
||||||
@@ -320,12 +321,29 @@ preferences.updates.currentVersion=Huidige Versie: "%s"
|
|||||||
preferences.updates.autoUpdateCheck=Automatisch controleren op updates
|
preferences.updates.autoUpdateCheck=Automatisch controleren op updates
|
||||||
preferences.updates.checkNowBtn=Controleer nu
|
preferences.updates.checkNowBtn=Controleer nu
|
||||||
preferences.updates.updateAvailable=Update naar versie "%s" beschikbaar.
|
preferences.updates.updateAvailable=Update naar versie "%s" beschikbaar.
|
||||||
|
preferences.updates.lastUpdateCheck=Laatst gecontroleerd: %s
|
||||||
|
preferences.updates.lastUpdateCheck.never=nooit
|
||||||
|
preferences.updates.lastUpdateCheck.recently=recent
|
||||||
|
preferences.updates.lastUpdateCheck.daysAgo=%s dagen geleden
|
||||||
|
preferences.updates.lastUpdateCheck.hoursAgo=%s uur geleden
|
||||||
|
preferences.updates.checkFailed=Zoeken naar updates is mislukt. Controleer je internetverbinding of probeer het later opnieuw.
|
||||||
|
preferences.updates.upToDate=Cryptomator is up-to-date.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Steun ons
|
preferences.contribute=Steun ons
|
||||||
preferences.contribute.registeredFor=Supporter certificaat geregistreerd voor %s
|
preferences.contribute.registeredFor=Supporter certificaat geregistreerd voor %s
|
||||||
preferences.contribute.noCertificate=Ondersteun Cryptomator en ontvang een supportercertificaat. Het is als een licentiesleutel maar voor geweldige mensen die gratis software gebruiken. ;-)
|
preferences.contribute.noCertificate=Ondersteun Cryptomator en ontvang een supportercertificaat. Het is als een licentiesleutel maar voor geweldige mensen die gratis software gebruiken. ;-)
|
||||||
preferences.contribute.getCertificate=Heb je er nog geen? Leer hoe je het kan krijgen.
|
preferences.contribute.getCertificate=Heb je er nog geen? Leer hoe je het kan krijgen.
|
||||||
preferences.contribute.promptText=Plak de supportercertificaatcode hier
|
preferences.contribute.promptText=Plak de supportercertificaatcode hier
|
||||||
|
preferences.contribute.thankYou=Bedankt voor het steunen van Cryptomator's open-source ontwikkeling!
|
||||||
|
preferences.contribute.donate=Doneren
|
||||||
|
preferences.contribute.sponsor=Sponsor
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
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 -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -367,11 +385,6 @@ stats.access.total=Totaal aantal toegangen: %d
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Sluiten
|
|
||||||
main.minimizeBtn.tooltip=Minimaliseer
|
|
||||||
main.preferencesBtn.tooltip=Voorkeuren
|
|
||||||
main.debugModeEnabled.tooltip=Foutopsporingsmodus is ingeschakeld
|
|
||||||
main.supporterCertificateMissing.tooltip=Overweeg alstublieft om te doneren
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klik hier om een kluis toe te voegen
|
main.vaultlist.emptyList.onboardingInstruction=Klik hier om een kluis toe te voegen
|
||||||
main.vaultlist.contextMenu.remove=Verwijderen…
|
main.vaultlist.contextMenu.remove=Verwijderen…
|
||||||
@@ -380,9 +393,11 @@ main.vaultlist.contextMenu.unlock=Ontgrendelen…
|
|||||||
main.vaultlist.contextMenu.unlockNow=Nu Ontgrendelen
|
main.vaultlist.contextMenu.unlockNow=Nu Ontgrendelen
|
||||||
main.vaultlist.contextMenu.vaultoptions=Laat kluisinstellingen zien
|
main.vaultlist.contextMenu.vaultoptions=Laat kluisinstellingen zien
|
||||||
main.vaultlist.contextMenu.reveal=Toon Schijf
|
main.vaultlist.contextMenu.reveal=Toon Schijf
|
||||||
main.vaultlist.addVaultBtn=Toevoegen
|
main.vaultlist.addVaultBtn.menuItemNew=Nieuwe Kluis Aanmaken...
|
||||||
main.vaultlist.addVaultBtn.menuItemNew=Nieuwe kluis...
|
main.vaultlist.addVaultBtn.menuItemExisting=Open Bestaande Kluis...
|
||||||
main.vaultlist.addVaultBtn.menuItemExisting=Bestaande kluis...
|
##Notificaition
|
||||||
|
main.notification.updateAvailable=Update beschikbaar.
|
||||||
|
main.notification.support=Steun Cryptomator.
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Bedankt dat u Cryptomator heeft gekozen om uw bestanden te beschermen. Voor assistentie verwijzen we u naar de starthandleidingen:
|
main.vaultDetail.welcomeOnboarding=Bedankt dat u Cryptomator heeft gekozen om uw bestanden te beschermen. Voor assistentie verwijzen we u naar de starthandleidingen:
|
||||||
@@ -532,6 +547,12 @@ updateReminder.notNow=Niet nu
|
|||||||
updateReminder.yesOnce=Ja, Eenmaal
|
updateReminder.yesOnce=Ja, Eenmaal
|
||||||
updateReminder.yesAutomatically=Ja, automatisch
|
updateReminder.yesAutomatically=Ja, automatisch
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
dokanySupportEnd.title=Kennisgeving van beëindiging
|
||||||
|
dokanySupportEnd.message=Ondersteuning beëindigd voor Dokany
|
||||||
|
dokanySupportEnd.description=Het volumetype Dokany wordt niet langer ondersteund door Cryptomator. Uw instellingen zijn aangepast om nu het standaard volumetype te gebruiken. U kunt het standaardtype bekijken in de voorkeuren.
|
||||||
|
dokanySupportEnd.preferencesBtn=Open Voorkeuren
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
shareVault.title=Kluis delen
|
shareVault.title=Kluis delen
|
||||||
shareVault.message=Wilt u uw kluis met anderen delen?
|
shareVault.message=Wilt u uw kluis met anderen delen?
|
||||||
|
|||||||
@@ -159,7 +159,10 @@ preferences.updates.currentVersion=Gjeldande versjon: %s
|
|||||||
preferences.updates.autoUpdateCheck=Sjå etter oppdateringar automatisk
|
preferences.updates.autoUpdateCheck=Sjå etter oppdateringar automatisk
|
||||||
preferences.updates.checkNowBtn=Sjekk no
|
preferences.updates.checkNowBtn=Sjekk no
|
||||||
preferences.updates.updateAvailable=Oppdatering til versjon %s er tilgjengeleg.
|
preferences.updates.updateAvailable=Oppdatering til versjon %s er tilgjengeleg.
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -173,16 +176,13 @@ preferences.about=Om
|
|||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=Lukk
|
|
||||||
main.minimizeBtn.tooltip=Minimer
|
|
||||||
main.preferencesBtn.tooltip=Innstillingar
|
|
||||||
main.supporterCertificateMissing.tooltip=Ver vennleg og vurder å donera
|
|
||||||
## Vault List
|
## Vault List
|
||||||
main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legga til ein kvelv
|
main.vaultlist.emptyList.onboardingInstruction=Klikk her for å legga til ein kvelv
|
||||||
main.vaultlist.contextMenu.lock=Lås
|
main.vaultlist.contextMenu.lock=Lås
|
||||||
main.vaultlist.contextMenu.unlock=Lås opp…
|
main.vaultlist.contextMenu.unlock=Lås opp…
|
||||||
main.vaultlist.contextMenu.unlockNow=Lås opp no
|
main.vaultlist.contextMenu.unlockNow=Lås opp no
|
||||||
main.vaultlist.contextMenu.reveal=Gjer eininga synleg
|
main.vaultlist.contextMenu.reveal=Gjer eininga synleg
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=Takk for at du valde Cryptomator for å verna filene dine. Viss du treng hjelp, sjekk ut guidane våre for å komma i gang:
|
main.vaultDetail.welcomeOnboarding=Takk for at du valde Cryptomator for å verna filene dine. Viss du treng hjelp, sjekk ut guidane våre for å komma i gang:
|
||||||
@@ -277,4 +277,6 @@ quit.lockAndQuitBtn=Lås og avslutt
|
|||||||
|
|
||||||
# Update Reminder
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
# Share Vault
|
# Share Vault
|
||||||
|
|||||||
@@ -2,15 +2,18 @@
|
|||||||
|
|
||||||
# Generics
|
# Generics
|
||||||
## Button
|
## Button
|
||||||
## Error
|
|
||||||
|
# Error
|
||||||
|
|
||||||
|
# Defaults
|
||||||
|
|
||||||
# Tray Menu
|
# Tray Menu
|
||||||
|
|
||||||
# Add Vault Wizard
|
# Add Vault Wizard
|
||||||
## Welcome
|
|
||||||
## New
|
## New
|
||||||
### Name
|
### Name
|
||||||
### Location
|
### Location
|
||||||
|
### Expert Settings
|
||||||
### Password
|
### Password
|
||||||
### Information
|
### Information
|
||||||
## Existing
|
## Existing
|
||||||
@@ -23,38 +26,96 @@
|
|||||||
# Forget Password
|
# Forget Password
|
||||||
|
|
||||||
# Unlock
|
# Unlock
|
||||||
|
## Select
|
||||||
## Success
|
## Success
|
||||||
## Invalid Mount Point
|
## Failure
|
||||||
|
## Hub
|
||||||
|
### Waiting
|
||||||
|
### Receive Key
|
||||||
|
### Register Device
|
||||||
|
### Register Device Legacy
|
||||||
|
### Registration Success
|
||||||
|
### Registration Failed
|
||||||
|
### Unauthorized
|
||||||
|
### Requires Account Initialization
|
||||||
|
### License Exceeded
|
||||||
|
|
||||||
|
# Lock
|
||||||
|
## Force
|
||||||
|
## Failure
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
## Start
|
## Start
|
||||||
## Run
|
## Run
|
||||||
## Sucess
|
## Success
|
||||||
## Missing file system capabilities
|
## Missing file system capabilities
|
||||||
|
## Impossible
|
||||||
|
|
||||||
|
# Health Check
|
||||||
|
## Start
|
||||||
|
## Start Failure
|
||||||
|
## Check Selection
|
||||||
|
## Detail view
|
||||||
|
## Result view
|
||||||
|
## Fix Application
|
||||||
|
|
||||||
# Preferences
|
# Preferences
|
||||||
## General
|
## General
|
||||||
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
## Updates
|
## Updates
|
||||||
## Donation Key
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
### Remove License Key Dialog
|
||||||
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
|
## About
|
||||||
|
|
||||||
|
# Vault Statistics
|
||||||
|
## Read
|
||||||
|
## Write
|
||||||
|
|
||||||
|
## Accesses
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
## Drag 'n' Drop
|
|
||||||
## Vault List
|
## Vault List
|
||||||
|
##Notificaition
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
|
### Welcome
|
||||||
### Locked
|
### Locked
|
||||||
### Unlocked
|
### Unlocked
|
||||||
|
### Missing
|
||||||
### Needs Migration
|
### Needs Migration
|
||||||
|
### Error
|
||||||
|
|
||||||
# Wrong File Alert
|
# Wrong File Alert
|
||||||
|
|
||||||
# Vault Options
|
# Vault Options
|
||||||
## General
|
## General
|
||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
## Master Key
|
## Master Key
|
||||||
|
## Hub
|
||||||
|
|
||||||
# Recovery Key
|
# Recovery Key
|
||||||
|
## Display Recovery Key
|
||||||
|
## Reset Password
|
||||||
|
### Enter Recovery Key
|
||||||
|
### Reset Password
|
||||||
|
### Recovery Key Password Reset Success
|
||||||
|
|
||||||
|
# Convert Vault
|
||||||
|
|
||||||
# New Password
|
# New Password
|
||||||
|
|
||||||
# Quit
|
# Quit
|
||||||
|
|
||||||
|
# Forced Quit
|
||||||
|
|
||||||
|
# Update Reminder
|
||||||
|
|
||||||
|
#Dokany Support End
|
||||||
|
|
||||||
|
# Share Vault
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user