mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-09-21 23:44:42 +00:00
Compare commits
121
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dcfdb5ad21 | ||
|
|
77bc60fe5b | ||
|
|
9f633a1ecb | ||
|
|
fcf59d12a8 | ||
|
|
6721075831 | ||
|
|
4bb0026415 | ||
|
|
bebae14744 | ||
|
|
997315eaf5 | ||
|
|
16d677c40f | ||
|
|
42a1913c17 | ||
|
|
c3f6655e48 | ||
|
|
fa1b0f2de8 | ||
|
|
385574a618 | ||
|
|
a67477bf3b | ||
|
|
7a0d255bd3 | ||
|
|
228fa099cb | ||
|
|
a60ff20f15 | ||
|
|
2328a5e3a8 | ||
|
|
e7e181b1a5 | ||
|
|
f3e7c08b43 | ||
|
|
2a41afcfa9 | ||
|
|
5bf38a328c | ||
|
|
f983b29034 | ||
|
|
4bc217e489 | ||
|
|
b24f52a4ec | ||
|
|
91e7fa3de3 | ||
|
|
1365efab3f | ||
|
|
852963b785 | ||
|
|
c47d4eaf02 | ||
|
|
36da26c6b9 | ||
|
|
33e1cb3131 | ||
|
|
ed4b433df0 | ||
|
|
d2ece543c8 | ||
|
|
4bb2df7d8f | ||
|
|
4d5c6ca29a | ||
|
|
f0d597ba73 | ||
|
|
310329d0b5 | ||
|
|
30f86a7f2a | ||
|
|
5237dc8cae | ||
|
|
67ff4da05b | ||
|
|
947eb11198 | ||
|
|
c6a9af1a04 | ||
|
|
0ddf221e26 | ||
|
|
3f2b5ccde9 | ||
|
|
3d0b6dde28 | ||
|
|
45534b0a2b | ||
|
|
6d906beeb8 | ||
|
|
e577c64c35 | ||
|
|
b848e78372 | ||
|
|
39e9395b4b | ||
|
|
ca3157cc70 | ||
|
|
f94c1f07d6 | ||
|
|
d43f197c11 | ||
|
|
67e566832c | ||
|
|
6f5a88af1d | ||
|
|
210b891616 | ||
|
|
20e820c903 | ||
|
|
5307e93c1b | ||
|
|
e221019b57 | ||
|
|
eeaaced976 | ||
|
|
d246b54268 | ||
|
|
e94572960e | ||
|
|
2d1c59bea9 | ||
|
|
921cbd6439 | ||
|
|
f811144ffa | ||
|
|
2ecc711f50 | ||
|
|
cfcc8782ef | ||
|
|
a1379bac40 | ||
|
|
fe3f2b5bd3 | ||
|
|
7fc07ae02c | ||
|
|
2a70e2f0f4 | ||
|
|
ffe0302fba | ||
|
|
c5b86bc355 | ||
|
|
5f86473e3e | ||
|
|
a91c74b6eb | ||
|
|
76949d6ccb | ||
|
|
71a09eae67 | ||
|
|
8087fcecfb | ||
|
|
29c73e1bc8 | ||
|
|
8bbdb69cda | ||
|
|
e9ee15dcd5 | ||
|
|
03f6e0a33c | ||
|
|
c5b21b0d8c | ||
|
|
c5c5e297b7 | ||
|
|
24839985e9 | ||
|
|
a7b2802f34 | ||
|
|
c85d0b4beb | ||
|
|
3dff3a8664 | ||
|
|
5b0bbf539b | ||
|
|
1ff7c40fd9 | ||
|
|
d0875ef49e | ||
|
|
e35ed9af72 | ||
|
|
ac43efe149 | ||
|
|
202a2ea79f | ||
|
|
c19a86a348 | ||
|
|
539dcaa85a | ||
|
|
fb91c1a461 | ||
|
|
bd75370dfd | ||
|
|
7a9a9cf4eb | ||
|
|
489e9fce90 | ||
|
|
d378d84832 | ||
|
|
69d73d0fb9 | ||
|
|
97c0cb4f5f | ||
|
|
b4faae7fa0 | ||
|
|
55d76b65cc | ||
|
|
fd6e1e6741 | ||
|
|
155558caa8 | ||
|
|
28217b2de3 | ||
|
|
b9e57ce895 | ||
|
|
95ea23ee6e | ||
|
|
c269184217 | ||
|
|
68d32957e4 | ||
|
|
a771f0a5b7 | ||
|
|
e56e6a8359 | ||
|
|
5f9b77241f | ||
|
|
fb54ee04a6 | ||
|
|
a106b04c7e | ||
|
|
285d48b70b | ||
|
|
0d8d7e4ee5 | ||
|
|
f232f9d958 | ||
|
|
88c3b0cc4f |
@@ -37,12 +37,17 @@ body:
|
||||
id: volume-type
|
||||
attributes:
|
||||
label: Volume Type
|
||||
description: What is selected under Settings → Virtual Drive?
|
||||
multiple: true
|
||||
description: What volume type is selected under Settings → Virtual Drive?
|
||||
options:
|
||||
- FUSE
|
||||
- Dokany
|
||||
- WebDAV
|
||||
- WinFsp
|
||||
- WinFsp (Local Drive)
|
||||
- FUSE-T
|
||||
- macFUSE
|
||||
- WebDAV (Windows Explorer)
|
||||
- WebDAV (AppleScript)
|
||||
- WebDAV (gio)
|
||||
- WebDAV (HTTP Address)
|
||||
- Dokany (1.5)
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
|
||||
@@ -47,7 +47,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/linux/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
|
||||
@@ -20,8 +20,8 @@ on:
|
||||
|
||||
env:
|
||||
JAVA_VERSION: 19
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-aarch64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/19.0.2.1/openjfx-19.0.2.1_linux-x64_bin-jmods.zip'
|
||||
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/19.0.2.1/openjfx-19.0.2.1_linux-aarch64_bin-jmods.zip'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -148,11 +148,8 @@ jobs:
|
||||
echo "TAG_NAME=${REF##*/}" >> $GITHUB_ENV
|
||||
- name: Publish Debian package on GitHub Releases
|
||||
if: startsWith(inputs.ref, 'refs/tags/')
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
fail_on_unmatched_files: true
|
||||
tag_name: ${{ inputs.ref }}
|
||||
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||
files: |
|
||||
cryptomator_*_amd64.deb
|
||||
cryptomator_*.asc
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}
|
||||
run: |
|
||||
artifacts=$(ls | grep cryptomator*.deb)
|
||||
gh release upload ${{ env.TAG_NAME }} $artifacts
|
||||
@@ -30,10 +30,12 @@ jobs:
|
||||
architecture: x64
|
||||
output-suffix: x64
|
||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||
fuse-lib: macFUSE
|
||||
- os: [self-hosted, macOS, ARM64]
|
||||
architecture: aarch64
|
||||
output-suffix: arm64
|
||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||
fuse-lib: FUSE-T
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup Java
|
||||
@@ -61,7 +63,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/mac/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
@@ -178,7 +179,7 @@ jobs:
|
||||
run: |
|
||||
mkdir dmg
|
||||
mv Cryptomator.app dmg
|
||||
cp dist/mac/dmg/resources/macFUSE.webloc dmg
|
||||
cp dist/mac/dmg/resources/${{ matrix.fuse-lib }}.webloc dmg
|
||||
ls -l dmg
|
||||
- name: Install create-dmg
|
||||
run: |
|
||||
@@ -189,14 +190,14 @@ jobs:
|
||||
create-dmg
|
||||
--volname Cryptomator
|
||||
--volicon "dist/mac/dmg/resources/Cryptomator-Volume.icns"
|
||||
--background "dist/mac/dmg/resources/Cryptomator-background.tiff"
|
||||
--background "dist/mac/dmg/resources/Cryptomator-${{ matrix.fuse-lib }}-background.tiff"
|
||||
--window-pos 400 100
|
||||
--window-size 640 694
|
||||
--icon-size 128
|
||||
--icon "Cryptomator.app" 128 245
|
||||
--hide-extension "Cryptomator.app"
|
||||
--icon "macFUSE.webloc" 320 501
|
||||
--hide-extension "macFUSE.webloc"
|
||||
--icon "${{ matrix.fuse-lib }}.webloc" 320 501
|
||||
--hide-extension "${{ matrix.fuse-lib }}.webloc"
|
||||
--app-drop-link 512 245
|
||||
--eula "dist/mac/dmg/resources/license.rtf"
|
||||
--icon ".background" 128 758
|
||||
|
||||
@@ -10,7 +10,7 @@ jobs:
|
||||
steps:
|
||||
- name: Download source tarball
|
||||
run: |
|
||||
curl -L -H "Accept: application/vnd.github+json" ${{ github.event.release.tarball_url }} --output cryptomator-${{ github.event.release.tag_name }}.tar.gz
|
||||
curl -L -H "Accept: application/vnd.github+json" https://github.com/cryptomator/cryptomator/archive/refs/tags/${{ github.event.release.tag_name }}.tar.gz --output cryptomator-${{ github.event.release.tag_name }}.tar.gz
|
||||
- name: Sign source tarball with key 615D449FE6E6A235
|
||||
run: |
|
||||
echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import
|
||||
|
||||
@@ -55,7 +55,6 @@ jobs:
|
||||
- name: Patch target dir
|
||||
run: |
|
||||
cp LICENSE.txt target
|
||||
cp dist/linux/launcher.sh target
|
||||
cp target/cryptomator-*.jar target/mods
|
||||
- name: Run jlink
|
||||
run: >
|
||||
@@ -157,7 +156,7 @@ jobs:
|
||||
--name Cryptomator
|
||||
--vendor "Skymatic GmbH"
|
||||
--copyright "(C) 2016 - 2023 Skymatic GmbH"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}"
|
||||
--app-version "${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum}}"
|
||||
--win-menu
|
||||
--win-dir-chooser
|
||||
--win-shortcut-prompt
|
||||
@@ -204,15 +203,6 @@ jobs:
|
||||
*.msi
|
||||
*.asc
|
||||
|
||||
call-winget-flow:
|
||||
needs: [get-version, build-msi]
|
||||
if: github.event.action == 'published' && needs.get-version.outputs.versionType == 'stable'
|
||||
uses: ./.github/workflows/winget.yml
|
||||
with:
|
||||
releaseTag: ${{ github.event.release.tag_name }}
|
||||
secrets: inherit
|
||||
|
||||
|
||||
build-exe:
|
||||
name: Build .exe installer
|
||||
runs-on: windows-latest
|
||||
@@ -244,13 +234,14 @@ jobs:
|
||||
shell: pwsh
|
||||
- name: Download WinFsp
|
||||
run: |
|
||||
$winfspUrl= (Select-String -Path ".\dist\win\bundle\resources\winfsp-download.url" -Pattern 'https:.*').Matches.Value
|
||||
$winfspUrl = (Select-String -Path ".\dist\win\bundle\resources\winFspMetaData.wxi" -Pattern '<\?define BundledWinFspDownloadLink="(.+)".*?>').Matches.Groups[1].Value
|
||||
curl --output dist/win/bundle/resources/winfsp.msi -L $winfspUrl
|
||||
shell: pwsh
|
||||
- name: Compile to wixObj file
|
||||
run: >
|
||||
"${WIX}/bin/candle.exe" dist/win/bundle/bundleWithWinfsp.wxs
|
||||
-ext WixBalExtension
|
||||
-ext WixUtilExtension
|
||||
-out dist/win/bundle/
|
||||
-dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||
-dBundleVendor="Skymatic GmbH"
|
||||
@@ -262,6 +253,7 @@ jobs:
|
||||
run: >
|
||||
"${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj
|
||||
-ext WixBalExtension
|
||||
-ext WixUtilExtension
|
||||
-out installer/unsigned/Cryptomator-Installer.exe
|
||||
- name: Detach burn engine in preparation to sign
|
||||
run: >
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
name: Release to Winget
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
releaseTag:
|
||||
required: true
|
||||
type: string
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
releaseTag:
|
||||
description: 'Release tag name'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
publish-winget:
|
||||
name: Publish on winget repo
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Get download url for release assets
|
||||
id: get-release-assets
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
const query =`query($tag:String!) {
|
||||
repository(owner:"cryptomator", name:"cryptomator"){
|
||||
release(tagName: $tag) {
|
||||
releaseAssets(first:20) {
|
||||
nodes {
|
||||
name
|
||||
downloadUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`;
|
||||
const variables = {
|
||||
tag: "${{ inputs.releaseTag }}"
|
||||
}
|
||||
return await github.graphql(query, variables)
|
||||
- name: Submit package to Windows Package Manager Community Repository
|
||||
id: submit-winget
|
||||
run: |
|
||||
iwr https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe
|
||||
$releaseAssets = (ConvertFrom-Json '${{ steps.get-release-assets.outputs.result }}').repository.release.releaseAssets.nodes
|
||||
$installerUrl = $releaseAssets | Where-Object -Property name -match '^Cryptomator-.*\.msi$' | Select -ExpandProperty downloadUrl -First 1
|
||||
.\wingetcreate.exe update Cryptomator.Cryptomator -s -v "${{ inputs.releaseTag }}" -u "$installerUrl" -t ${{ secrets.CRYPTOBOT_WINGET_TOKEN }}
|
||||
shell: pwsh
|
||||
Generated
+6
-4
@@ -14,10 +14,10 @@
|
||||
<option name="dagger.fastInit" value="enabled" />
|
||||
<option name="dagger.formatGeneratedSource" value="enabled" />
|
||||
<processorPath useClasspath="false">
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.44/dagger-compiler-2.44.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.44/dagger-2.44.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.45/dagger-compiler-2.45.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger/2.45/dagger-2.45.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/javax/inject/javax.inject/1/javax.inject-1.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-producers/2.44/dagger-producers-2.44.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-producers/2.45/dagger-producers-2.45.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/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||
@@ -26,14 +26,16 @@
|
||||
<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$/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.44/dagger-spi-2.44.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-spi/2.45/dagger-spi-2.45.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/com/google/devtools/ksp/symbol-processing-api/1.7.0-1.0.6/symbol-processing-api-1.7.0-1.0.6.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.7.0/kotlin-stdlib-1.7.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.7.0/kotlin-stdlib-common-1.7.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/kotlinpoet/1.11.0/kotlinpoet-1.11.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.7.0/kotlin-stdlib-jdk8-1.7.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.7.0/kotlin-stdlib-jdk7-1.7.0.jar" />
|
||||
<entry name="$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-reflect/1.6.10/kotlin-reflect-1.6.10.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$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||
|
||||
@@ -21,7 +21,6 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://www.gee-whiz.de/"><img src="https://cryptomator.org/img/sponsors/geewhiz.svg" alt="gee-whiz" height="80"></a></td>
|
||||
<td><a href="https://proxy-hub.com/"><img src="https://cryptomator.org/img/sponsors/proxyhub.svg" alt="Proxy-Hub" height="80"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -32,7 +31,6 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://mowcapital.com/"><img src="https://cryptomator.org/img/sponsors/mowcapital.svg" alt="Mow Capital" height="40"></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.hassmann-it-forensik.de/"><img src="https://cryptomator.org/img/sponsors/hassmannitforensik.png" alt="Hassmann IT-Forensik" height="40"></a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -74,7 +72,7 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator
|
||||
|
||||
### Consistency
|
||||
|
||||
- HMAC over file contents to recognize changed ciphertext before decryption
|
||||
- Authenticated encryption is used for file content to recognize changed ciphertext before decryption
|
||||
- I/O operations are transactional and atomic, if the filesystems support it
|
||||
- Each file contains all information needed for decryption (except for the key of course), no common metadata means no [SPOF](http://en.wikipedia.org/wiki/Single_point_of_failure)
|
||||
|
||||
|
||||
@@ -66,6 +66,10 @@
|
||||
</content_rating>
|
||||
|
||||
<releases>
|
||||
<release date="2023-03-15" version="1.7.3"/>
|
||||
<release date="2023-03-07" version="1.7.2"/>
|
||||
<release date="2023-03-03" version="1.7.1"/>
|
||||
<release date="2023-03-01" version="1.7.0"/>
|
||||
<release date="2022-12-14" version="1.6.17"/>
|
||||
<release date="2022-12-06" version="1.6.16"/>
|
||||
<release date="2022-10-06" version="1.6.15"/>
|
||||
|
||||
Vendored
+1
-1
@@ -12,7 +12,7 @@ Package: cryptomator
|
||||
Architecture: any
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libfuse3-3
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, fuse3
|
||||
Recommends: gvfs-backends, gvfs-fuse, gnome-keyring
|
||||
XB-AppName: Cryptomator
|
||||
XB-Category: Utility;Security;FileTools;
|
||||
|
||||
Vendored
-15
@@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd $(dirname $0)
|
||||
java \
|
||||
-p "mods" \
|
||||
-cp "libs/*" \
|
||||
-Dcryptomator.settingsPath="~/.config/Cryptomator/settings.json" \
|
||||
-Dcryptomator.ipcSocketPath="~/.config/Cryptomator/ipc.socket" \
|
||||
-Dcryptomator.logDir="~/.local/share/Cryptomator/logs" \
|
||||
-Dcryptomator.mountPointsDir="~/.local/share/Cryptomator/mnt" \
|
||||
-Djdk.gtk.version=2 \
|
||||
-Xss2m \
|
||||
-Xmx512m \
|
||||
--enable-preview \
|
||||
--enable-native-access=org.cryptomator.jfuse.linux.amd64,org.cryptomator.jfuse.linux.aarch64 \
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
||||
Vendored
+5
-4
@@ -27,6 +27,7 @@ MAIN_JAR_GLOB="cryptomator-*.jar"
|
||||
MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
||||
REVISION_NO=`git rev-list --count HEAD`
|
||||
VERSION_NO=`mvn -f../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout | sed -rn 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'`
|
||||
FUSE_LIB="FUSE-T"
|
||||
|
||||
# check preconditions
|
||||
if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi
|
||||
@@ -125,20 +126,20 @@ fi
|
||||
# prepare dmg contents
|
||||
mkdir dmg
|
||||
mv ${APP_NAME}.app dmg
|
||||
cp resources/macFUSE.webloc dmg
|
||||
cp resources/${FUSE_LIB}.webloc dmg
|
||||
|
||||
# create dmg
|
||||
create-dmg \
|
||||
--volname ${APP_NAME} \
|
||||
--volicon "resources/${APP_NAME}-Volume.icns" \
|
||||
--background "resources/${APP_NAME}-background.tiff" \
|
||||
--background "resources/${APP_NAME}-${FUSE_LIB}-background.tiff" \
|
||||
--window-pos 400 100 \
|
||||
--window-size 640 694 \
|
||||
--icon-size 128 \
|
||||
--icon "${APP_NAME}.app" 128 245 \
|
||||
--hide-extension "${APP_NAME}.app" \
|
||||
--icon "macFUSE.webloc" 320 501 \
|
||||
--hide-extension "macFUSE.webloc" \
|
||||
--icon "${FUSE_LIB}.webloc" 320 501 \
|
||||
--hide-extension "${FUSE_LIB}.webloc" \
|
||||
--app-drop-link 512 245 \
|
||||
--eula "resources/license.rtf" \
|
||||
--icon ".background" 128 758 \
|
||||
|
||||
Binary file not shown.
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>URL</key>
|
||||
<string>https://www.fuse-t.org/</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Vendored
-14
@@ -1,14 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd $(dirname $0)
|
||||
java \
|
||||
-p "mods" \
|
||||
-cp "libs/*" \
|
||||
-Dcryptomator.settingsPath="~/Library/Application Support/Cryptomator/settings.json" \
|
||||
-Dcryptomator.ipcSocketPath="~/Library/Application Support/Cryptomator/ipc.socket" \
|
||||
-Dcryptomator.logDir="~/Library/Logs/Cryptomator" \
|
||||
-Dcryptomator.mountPointsDir="/Volumes" \
|
||||
-Xss20m \
|
||||
-Xmx512m \
|
||||
--enable-preview \
|
||||
--enable-native-access=org.cryptomator.jfuse.mac \
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
||||
Vendored
+4
-4
@@ -129,7 +129,7 @@ $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
|
||||
--name $AppName `
|
||||
--vendor $Vendor `
|
||||
--copyright $copyright `
|
||||
--app-version "$semVerNo" `
|
||||
--app-version "$semVerNo.$revisionNo" `
|
||||
--win-menu `
|
||||
--win-dir-chooser `
|
||||
--win-shortcut-prompt `
|
||||
@@ -153,7 +153,7 @@ $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
|
||||
# download Winfsp
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
$ProgressPreference = 'SilentlyContinue' # disables Invoke-WebRequest's progress bar, which slows down downloads to a few bytes/s
|
||||
$winfspMsiUrl= (Select-String -Path ".\bundle\resources\winfsp-download.url" -Pattern 'https:.*').Matches.Value
|
||||
$winfspMsiUrl= (Select-String -Path ".\bundle\resources\winFspMetaData.wxi" -Pattern '<\?define BundledWinFspDownloadLink="(.+)".*?>').Matches.Groups[1].Value
|
||||
Write-Output "Downloading ${winfspMsiUrl}..."
|
||||
Invoke-WebRequest $winfspMsiUrl -OutFile ".\bundle\resources\winfsp.msi" # redirects are followed by default
|
||||
|
||||
@@ -161,11 +161,11 @@ Invoke-WebRequest $winfspMsiUrl -OutFile ".\bundle\resources\winfsp.msi" # redir
|
||||
Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi"
|
||||
|
||||
# create bundle including winfsp
|
||||
& "$env:WIX\bin\candle.exe" .\bundle\bundleWithWinfsp.wxs -ext WixBalExtension -out bundle\ `
|
||||
& "$env:WIX\bin\candle.exe" .\bundle\bundleWithWinfsp.wxs -ext WixBalExtension -ext WixUtilextension -out bundle\ `
|
||||
-dBundleVersion="$semVerNo.$revisionNo" `
|
||||
-dBundleVendor="$Vendor" `
|
||||
-dBundleCopyright="$copyright" `
|
||||
-dAboutUrl="$AboutUrl" `
|
||||
-dHelpUrl="$HelpUrl" `
|
||||
-dUpdateUrl="$UpdateUrl"
|
||||
& "$env:WIX\bin\light.exe" -b . .\bundle\BundlewithWinfsp.wixobj -ext WixBalExtension -out installer\$AppName-Installer.exe
|
||||
& "$env:WIX\bin\light.exe" -b . .\bundle\BundlewithWinfsp.wixobj -ext WixBalExtension -ext WixUtilextension -out installer\$AppName-Installer.exe
|
||||
Vendored
+19
-1
@@ -1,13 +1,31 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
|
||||
<!-- see https://wixtoolset.org/documentation/manual/v3/xsd/wix/bundle.html-->
|
||||
<!-- Attributes explicitly not used:
|
||||
Condition - the single msi files have their own install conditions, no need to copy them here
|
||||
-->
|
||||
|
||||
<Bundle Name="Cryptomator" UpgradeCode="29eea626-2e5b-4449-b5f8-4602925ddf7b" Version="$(var.BundleVersion)" Manufacturer="$(var.BundleVendor)"
|
||||
AboutUrl="$(var.AboutUrl)" HelpUrl="$(var.HelpUrl)" UpdateUrl="$(var.UpdateUrl)" Copyright="$(var.BundleCopyright)" IconSourceFile="bundle\resources\Cryptomator.ico">
|
||||
|
||||
<!-- detect outdated WinFsp installations -->
|
||||
<?include "resources\winFspMetaData.wxi" ?>
|
||||
<util:ProductSearch
|
||||
Variable="InstalledWinFspVersion"
|
||||
Result="version"
|
||||
UpgradeCode="82F812D9-4083-4EF1-8BC8-0F1EDA05B46B"
|
||||
/>
|
||||
<!-- Note: The bundle engine takes the Message format literaly -->
|
||||
<bal:Condition Message=
|
||||
"The WinFsp driver used by Cryptomator is outdated and must be removed before the installation.
|
||||
|
||||
1. Open the view of installed apps
|
||||
2. Search for "WinFsp"
|
||||
3. Uninstall the listed application
|
||||
4. Reboot your device
|
||||
5. Restart this installer">(InstalledWinFspVersion = v0.0.0.0) OR ($(var.BundledWinFspVersion) <= InstalledWinFspVersion)</bal:Condition>
|
||||
|
||||
<!-- for definition of the standard themes, see https://github.com/wixtoolset/wix3/blob/master/src/ext/BalExtension/wixstdba/Resources/-->
|
||||
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLargeLicense">
|
||||
<!-- see https://wixtoolset.org/documentation/manual/v3/xsd/bal/wixstandardbootstrapperapplication.html -->
|
||||
|
||||
+2
-1
@@ -10,6 +10,7 @@
|
||||
<Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
|
||||
<Font Id="3" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
<Font Id="4" Height="-12" Weight="500" Foreground="ff0000" Background="FFFFFF" Underline="yes">Segoe UI</Font>
|
||||
<Font Id="5" Height="-12" Weight="700" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||
|
||||
<Image X="11" Y="11" Width="64" Height="64" ImageFile="logo.png" />
|
||||
<Text X="80" Y="11" Width="-11" Height="64" FontId="1" DisablePrefix="yes">#(loc.Title)</Text>
|
||||
@@ -82,7 +83,7 @@
|
||||
<Text Name="FailureUninstallHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureUninstallHeader)</Text>
|
||||
<Text Name="FailureRepairHeader" X="185" Y="50" Width="-11" Height="30" FontId="2" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRepairHeader)</Text>
|
||||
<Hypertext Name="FailureLogFileLink" X="185" Y="121" Width="-11" Height="68" FontId="3" TabStop="yes" HideWhenDisabled="yes">#(loc.FailureHyperlinkLogText)</Hypertext>
|
||||
<Hypertext Name="FailureMessageText" X="185" Y="-115" Width="-11" Height="80" FontId="3" TabStop="yes" HideWhenDisabled="yes" />
|
||||
<Hypertext Name="FailureMessageText" X="185" Y="-80" Width="-11" Height="140" FontId="5" TabStop="yes" HideWhenDisabled="yes" />
|
||||
<Text Name="FailureRestartText" X="185" Y="-57" Width="-11" Height="80" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.FailureRestartText)</Text>
|
||||
<Button Name="FailureRestartButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0" HideWhenDisabled="yes">#(loc.FailureRestartButton)</Button>
|
||||
<Button Name="FailureCloseButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.FailureCloseButton)</Button>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<!-- A version number MUST be prefixed with letter "v", otherwise it is considered a normal string -->
|
||||
<?define BundledWinFspVersion="v1.12.22339" ?>
|
||||
<?define BundledWinFspDownloadLink="https://github.com/winfsp/winfsp/releases/download/v1.12.22339/winfsp-1.12.22339.msi" ?> <!-- Only used by external build scripts -->
|
||||
</Include>
|
||||
@@ -1,2 +0,0 @@
|
||||
[InternetShortcut]
|
||||
URL=https://github.com/winfsp/winfsp/releases/download/v1.12/winfsp-1.12.22301.msi
|
||||
Vendored
-12
@@ -1,12 +0,0 @@
|
||||
@echo off
|
||||
java ^
|
||||
-p "app/mods" ^
|
||||
-cp "app/*" ^
|
||||
-Dcryptomator.settingsPath="~/AppData/Roaming/Cryptomator/settings.json" ^
|
||||
-Dcryptomator.ipcSocketPath="~/AppData/Roaming/Cryptomator/ipc.socket" ^
|
||||
-Dcryptomator.logDir="~/AppData/Roaming/Cryptomator" ^
|
||||
-Dcryptomator.mountPointsDir="~/Cryptomator" ^
|
||||
-Dcryptomator.keychainPath="~/AppData/Roaming/Cryptomator/keychain.json" ^
|
||||
-Xss20m ^
|
||||
-Xmx512m ^
|
||||
-m org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator
|
||||
@@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
:: see comments in file ./version170-migrate-settings.ps1
|
||||
|
||||
cd %~dp0
|
||||
powershell -NoLogo -NonInteractive -ExecutionPolicy Unrestricted -Command .\version170-migrate-settings.ps1
|
||||
@@ -0,0 +1,35 @@
|
||||
# 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
+2
-5
@@ -65,13 +65,10 @@
|
||||
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
|
||||
<!-- TODO: localize? -->
|
||||
<Control Id="Suggestion" Type="Text" X="135" Y="100" Width="220" Height="60" Transparent="yes" NoPrefix="yes">
|
||||
<Text>We recommend for the best user experience to download and install one of the following third party Windows drivers:</Text>
|
||||
<Text>We recommend for the best user experience to download and install the following third party Windows driver:</Text>
|
||||
</Control>
|
||||
<Control Id="WinFsp" Type="Hyperlink" X="140" Y="125" Width="220" Height="60" Transparent="yes">
|
||||
<Text><![CDATA[• WinFsp (<a href="http://www.secfs.net/winfsp/rel/">Homepage</a>)]]></Text>
|
||||
</Control>
|
||||
<Control Id="Dokany" Type="Hyperlink" X="140" Y="137" Width="220" Height="60" Transparent="yes">
|
||||
<Text><![CDATA[• Dokany (<a href="https://dokan-dev.github.io/">Homepage</a>)]]></Text>
|
||||
<Text><![CDATA[WinFsp (<a href="https://winfsp.dev/">Homepage</a>)]]></Text>
|
||||
</Control>
|
||||
</Dialog>
|
||||
|
||||
|
||||
Vendored
+8
-4
@@ -54,7 +54,7 @@
|
||||
Property="JP_UPGRADABLE_FOUND"
|
||||
Maximum="$(var.JpAppVersion)"
|
||||
MigrateFeatures="yes"
|
||||
IncludeMaximum="$(var.JpUpgradeVersionOnlyDetectUpgrade)" />
|
||||
IncludeMaximum="yes" /> <!-- TODO: check if this needs to be set to yes-->
|
||||
<UpgradeVersion
|
||||
OnlyDetect="$(var.JpUpgradeVersionOnlyDetectDowngrade)"
|
||||
Property="JP_DOWNGRADABLE_FOUND"
|
||||
@@ -132,6 +132,9 @@
|
||||
<!-- WebDAV patches -->
|
||||
<CustomAction Id="PatchWebDAV" Impersonate="no" ExeCommand="[INSTALLDIR]patchWebDAV.bat" Directory="INSTALLDIR" Execute="deferred" Return="asyncWait" />
|
||||
|
||||
<!-- Special Settings migration for 1.7.0,. Should be removed eventually, for more info, see ../contrib/version170-migrate-settings.ps1-->
|
||||
<CustomAction Id="V170MigrateSettings" Impersonate="no" ExeCommand="[INSTALLDIR]version170-migrate-settings.bat" Directory="INSTALLDIR" Execute="deferred" Return="asyncWait" />
|
||||
|
||||
<!-- Running App detection and exit -->
|
||||
<Property Id="FOUNDRUNNINGAPP" Admin="yes"/>
|
||||
<util:CloseApplication
|
||||
@@ -140,11 +143,11 @@
|
||||
CloseMessage="no"
|
||||
RebootPrompt="no"
|
||||
PromptToContinue="yes"
|
||||
Description="A running instance of $(var.JpAppName) is found. Please close it to continue."
|
||||
Description="A running instance of $(var.JpAppName) is found, using files marked for update. Please close it to continue."
|
||||
Property="FOUNDRUNNINGAPP"
|
||||
>
|
||||
</util:CloseApplication>
|
||||
<CustomAction Id="FailOnRunningApp" Impersonate="no" ExeCommand="[SystemFolder]\cmd.exe /c "exit 1"" Directory="INSTALLDIR" Execute="immediate" Return="check" />
|
||||
<CustomAction Id="FailOnRunningApp" Error="Installation aborted, because files marked for update are used by a running instance of $(var.JpAppName)."/>
|
||||
|
||||
<?ifdef JpIcon ?>
|
||||
<Property Id="ARPPRODUCTICON" Value="JpARPPRODUCTICON"/>
|
||||
@@ -179,9 +182,10 @@
|
||||
<Custom Action="WixCloseApplications" Before="InstallValidate"></Custom>
|
||||
<Custom Action="FailOnRunningApp" After="WixCloseApplications" >FOUNDRUNNINGAPP</Custom>
|
||||
|
||||
<RemoveExistingProducts After="InstallValidate"/>
|
||||
<RemoveExistingProducts After="InstallValidate"/> <!-- Moved from CostInitialize, due to WixCloseApplications -->
|
||||
|
||||
<Custom Action="PatchWebDAV" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||
<Custom Action="V170MigrateSettings" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||
</InstallExecuteSequence>
|
||||
|
||||
<WixVariable Id="WixUIBannerBmp" Value="$(env.JP_WIXWIZARD_RESOURCES)\banner.bmp" />
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>cryptomator</artifactId>
|
||||
<version>1.7.0-SNAPSHOT</version>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>Cryptomator Desktop App</name>
|
||||
|
||||
<organization>
|
||||
@@ -17,6 +17,11 @@
|
||||
<email>sebastian.stenzel@gmail.com</email>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Armin Schrenk</name>
|
||||
<email>armin.schrenk+dev@mailbox.org</email>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<properties>
|
||||
@@ -28,49 +33,42 @@
|
||||
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents,de.swiesend,org.purejava,com.github.hypfvieh</nonModularGroupIds>
|
||||
|
||||
<!-- cryptomator dependencies -->
|
||||
<cryptomator.cryptolib.version>2.1.1</cryptomator.cryptolib.version>
|
||||
<cryptomator.cryptofs.version>2.6.1</cryptomator.cryptofs.version>
|
||||
<cryptomator.integrations.version>1.2.0-beta4</cryptomator.integrations.version>
|
||||
<cryptomator.integrations.win.version>1.2.0-beta1</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.mac.version>1.2.0-beta2</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.2.0-beta1</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>2.0.0-beta4</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>2.0.0-beta2</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>2.0.0-beta4</cryptomator.webdav.version>
|
||||
<cryptomator.cryptofs.version>2.6.2</cryptomator.cryptofs.version>
|
||||
<cryptomator.integrations.version>1.2.0</cryptomator.integrations.version>
|
||||
<cryptomator.integrations.win.version>1.2.0</cryptomator.integrations.win.version>
|
||||
<cryptomator.integrations.mac.version>1.2.0</cryptomator.integrations.mac.version>
|
||||
<cryptomator.integrations.linux.version>1.2.0</cryptomator.integrations.linux.version>
|
||||
<cryptomator.fuse.version>2.1.0-SNAPSHOT</cryptomator.fuse.version>
|
||||
<cryptomator.dokany.version>2.0.0</cryptomator.dokany.version>
|
||||
<cryptomator.webdav.version>2.0.2</cryptomator.webdav.version>
|
||||
|
||||
<!-- 3rd party dependencies -->
|
||||
<commons-lang3.version>3.12.0</commons-lang3.version>
|
||||
<dagger.version>2.44</dagger.version>
|
||||
<dagger.version>2.45</dagger.version>
|
||||
<easybind.version>2.2</easybind.version>
|
||||
<guava.version>31.1-jre</guava.version>
|
||||
<gson.version>2.9.1</gson.version>
|
||||
<javafx.version>19</javafx.version>
|
||||
<jwt.version>4.2.1</jwt.version>
|
||||
<nimbus-jose.version>9.25.4</nimbus-jose.version>
|
||||
<logback.version>1.4.4</logback.version>
|
||||
<slf4j.version>2.0.3</slf4j.version>
|
||||
<gson.version>2.10.1</gson.version>
|
||||
<javafx.version>19.0.2.1</javafx.version>
|
||||
<jwt.version>4.3.0</jwt.version>
|
||||
<nimbus-jose.version>9.31</nimbus-jose.version>
|
||||
<logback.version>1.4.5</logback.version>
|
||||
<slf4j.version>2.0.6</slf4j.version>
|
||||
<tinyoauth2.version>0.5.1</tinyoauth2.version>
|
||||
<zxcvbn.version>1.7.0</zxcvbn.version>
|
||||
|
||||
<!-- test dependencies -->
|
||||
<junit.jupiter.version>5.9.1</junit.jupiter.version>
|
||||
<mockito.version>4.8.0</mockito.version>
|
||||
<junit.jupiter.version>5.9.2</junit.jupiter.version>
|
||||
<mockito.version>5.1.1</mockito.version>
|
||||
<hamcrest.version>2.2</hamcrest.version>
|
||||
|
||||
<!-- build-time dependencies -->
|
||||
<jetbrains.annotations.version>23.0.0</jetbrains.annotations.version>
|
||||
<dependency-check.version>7.4.4</dependency-check.version>
|
||||
<dependency-check.version>8.1.0</dependency-check.version>
|
||||
<jacoco.version>0.8.8</jacoco.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- Cryptomator Libs -->
|
||||
<dependency>
|
||||
<!-- needed due to https://github.com/cryptomator/cryptolib/issues/34-->
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>cryptolib</artifactId>
|
||||
<version>${cryptomator.cryptolib.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.cryptomator</groupId>
|
||||
<artifactId>cryptofs</artifactId>
|
||||
|
||||
@@ -16,6 +16,7 @@ import org.cryptomator.common.settings.SettingsProvider;
|
||||
import org.cryptomator.common.vaults.VaultComponent;
|
||||
import org.cryptomator.common.vaults.VaultListModule;
|
||||
import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
|
||||
import org.cryptomator.integrations.revealpath.RevealPathService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@@ -26,6 +27,7 @@ import java.net.InetSocketAddress;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.Comparator;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.SynchronousQueue;
|
||||
@@ -83,6 +85,13 @@ public abstract class CommonsModule {
|
||||
return new SemVerComparator();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static Optional<RevealPathService> provideRevealPathService() {
|
||||
return RevealPathService.get().findFirst();
|
||||
}
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static Settings provideSettings(SettingsProvider settingsProvider) {
|
||||
|
||||
@@ -2,6 +2,10 @@ package org.cryptomator.common.mount;
|
||||
|
||||
public class MountPointPreparationException extends RuntimeException {
|
||||
|
||||
public MountPointPreparationException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public MountPointPreparationException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
@@ -51,8 +51,19 @@ public final class MountWithinParentUtil {
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
Files.setAttribute(hideaway, WIN_HIDDEN_ATTR, true, LinkOption.NOFOLLOW_LINKS);
|
||||
}
|
||||
int attempts = 0;
|
||||
while (!Files.notExists(mountPoint)) {
|
||||
if (attempts >= 10) {
|
||||
throw new MountPointPreparationException("Path " + mountPoint + " could not be cleared");
|
||||
}
|
||||
Thread.sleep(1000);
|
||||
attempts++;
|
||||
}
|
||||
} catch (IOException e) {
|
||||
throw new MountPointPreparationException(e);
|
||||
} catch (InterruptedException e) {
|
||||
Thread.currentThread().interrupt();
|
||||
throw new MountPointPreparationException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import javafx.beans.value.ObservableValue;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.cryptomator.integrations.mount.MountCapability.MOUNT_AS_DRIVE_LETTER;
|
||||
import static org.cryptomator.integrations.mount.MountCapability.MOUNT_TO_EXISTING_DIR;
|
||||
@@ -60,13 +59,19 @@ public class Mounter {
|
||||
case READ_ONLY -> builder.setReadOnly(vaultSettings.usesReadOnlyMode().get());
|
||||
case MOUNT_FLAGS -> {
|
||||
var mountFlags = vaultSettings.mountFlags().get();
|
||||
if( mountFlags == null || mountFlags.isBlank()) {
|
||||
if (mountFlags == null || mountFlags.isBlank()) {
|
||||
builder.setMountFlags(service.getDefaultMountFlags());
|
||||
} else {
|
||||
builder.setMountFlags(mountFlags);
|
||||
}
|
||||
}
|
||||
case VOLUME_ID -> builder.setVolumeId(vaultSettings.getId());
|
||||
case VOLUME_ID -> {
|
||||
if(vaultSettings.usesVaultIdAsVolumeId().get()) {
|
||||
builder.setVolumeId(vaultSettings.getId()+"\\test");
|
||||
} else {
|
||||
builder.setVolumeId(vaultSettings.mountName().get());
|
||||
}
|
||||
}
|
||||
case VOLUME_NAME -> builder.setVolumeName(vaultSettings.mountName().get());
|
||||
}
|
||||
}
|
||||
@@ -81,9 +86,10 @@ public class Mounter {
|
||||
var canMountToDriveLetter = service.hasCapability(MOUNT_AS_DRIVE_LETTER);
|
||||
var canMountToParent = service.hasCapability(MOUNT_WITHIN_EXISTING_PARENT);
|
||||
var canMountToDir = service.hasCapability(MOUNT_TO_EXISTING_DIR);
|
||||
var canMountToSystem = service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH);
|
||||
|
||||
if (userChosenMountPoint == null) {
|
||||
if (service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH)) {
|
||||
if (canMountToSystem) {
|
||||
// no need to set a mount point
|
||||
} else if (canMountToDriveLetter) {
|
||||
builder.setMountpoint(driveLetters.getFirstDesiredAvailable().orElseThrow()); //TODO: catch exception and translate
|
||||
@@ -96,7 +102,8 @@ public class Mounter {
|
||||
builder.setMountpoint(mountPoint);
|
||||
}
|
||||
} else {
|
||||
if (canMountToParent && !canMountToDir) {
|
||||
var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\");
|
||||
if (!mpIsDriveLetter && canMountToParent && !canMountToDir) {
|
||||
MountWithinParentUtil.prepareParentNoMountPoint(userChosenMountPoint);
|
||||
cleanup = () -> {
|
||||
MountWithinParentUtil.cleanup(userChosenMountPoint);
|
||||
@@ -104,9 +111,11 @@ public class Mounter {
|
||||
}
|
||||
try {
|
||||
builder.setMountpoint(userChosenMountPoint);
|
||||
} catch (IllegalArgumentException e) {
|
||||
var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\");
|
||||
var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) || (!canMountToDir && !mpIsDriveLetter) || (!canMountToParent && !mpIsDriveLetter);
|
||||
} catch (IllegalArgumentException | UnsupportedOperationException e) {
|
||||
var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) //mounting as driveletter, albeit not supported
|
||||
|| (!canMountToDir && !mpIsDriveLetter) //mounting to directory, albeit not supported
|
||||
|| (!canMountToParent && !mpIsDriveLetter) //
|
||||
|| (!canMountToDir && !canMountToParent && !canMountToSystem && !canMountToDriveLetter);
|
||||
if (configNotSupported) {
|
||||
throw new MountPointNotSupportedException(e.getMessage());
|
||||
} else if (canMountToDir && !canMountToParent && !Files.exists(userChosenMountPoint)) {
|
||||
|
||||
@@ -37,29 +37,30 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
@Override
|
||||
public void write(JsonWriter out, Settings value) throws IOException {
|
||||
out.beginObject();
|
||||
out.name("writtenByVersion").value(env.getAppVersion() + env.getBuildNumber().map("-"::concat).orElse(""));
|
||||
out.name("directories");
|
||||
writeVaultSettingsArray(out, value.getDirectories());
|
||||
out.name("askedForUpdateCheck").value(value.askedForUpdateCheck().get());
|
||||
out.name("checkForUpdatesEnabled").value(value.checkForUpdates().get());
|
||||
out.name("startHidden").value(value.startHidden().get());
|
||||
out.name("autoCloseVaults").value(value.autoCloseVaults().get());
|
||||
out.name("port").value(value.port().get());
|
||||
out.name("numTrayNotifications").value(value.numTrayNotifications().get());
|
||||
out.name("checkForUpdatesEnabled").value(value.checkForUpdates().get());
|
||||
out.name("debugMode").value(value.debugMode().get());
|
||||
out.name("theme").value(value.theme().get().name());
|
||||
out.name("uiOrientation").value(value.userInterfaceOrientation().get().name());
|
||||
out.name("displayConfiguration").value((value.displayConfigurationProperty().get()));
|
||||
out.name("keychainProvider").value(value.keychainProvider().get());
|
||||
out.name("useKeychain").value(value.useKeychain().get());
|
||||
out.name("language").value((value.languageProperty().get()));
|
||||
out.name("licenseKey").value(value.licenseKey().get());
|
||||
out.name("mountService").value(value.mountService().get());
|
||||
out.name("numTrayNotifications").value(value.numTrayNotifications().get());
|
||||
out.name("port").value(value.port().get());
|
||||
out.name("showMinimizeButton").value(value.showMinimizeButton().get());
|
||||
out.name("showTrayIcon").value(value.showTrayIcon().get());
|
||||
out.name("startHidden").value(value.startHidden().get());
|
||||
out.name("theme").value(value.theme().get().name());
|
||||
out.name("uiOrientation").value(value.userInterfaceOrientation().get().name());
|
||||
out.name("useKeychain").value(value.useKeychain().get());
|
||||
out.name("windowHeight").value((value.windowHeightProperty().get()));
|
||||
out.name("windowWidth").value((value.windowWidthProperty().get()));
|
||||
out.name("windowXPosition").value((value.windowXPositionProperty().get()));
|
||||
out.name("windowYPosition").value((value.windowYPositionProperty().get()));
|
||||
out.name("windowWidth").value((value.windowWidthProperty().get()));
|
||||
out.name("windowHeight").value((value.windowHeightProperty().get()));
|
||||
out.name("displayConfiguration").value((value.displayConfigurationProperty().get()));
|
||||
out.name("language").value((value.languageProperty().get()));
|
||||
out.name("mountService").value(value.mountService().get());
|
||||
out.endObject();
|
||||
}
|
||||
|
||||
@@ -81,33 +82,34 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
while (in.hasNext()) {
|
||||
String name = in.nextName();
|
||||
switch (name) {
|
||||
case "writtenByVersion" -> in.skipValue(); //noop
|
||||
case "directories" -> settings.getDirectories().addAll(readVaultSettingsArray(in));
|
||||
case "askedForUpdateCheck" -> settings.askedForUpdateCheck().set(in.nextBoolean());
|
||||
case "checkForUpdatesEnabled" -> settings.checkForUpdates().set(in.nextBoolean());
|
||||
case "startHidden" -> settings.startHidden().set(in.nextBoolean());
|
||||
case "autoCloseVaults" -> settings.autoCloseVaults().set(in.nextBoolean());
|
||||
case "port" -> settings.port().set(in.nextInt());
|
||||
case "numTrayNotifications" -> settings.numTrayNotifications().set(in.nextInt());
|
||||
case "checkForUpdatesEnabled" -> settings.checkForUpdates().set(in.nextBoolean());
|
||||
case "debugMode" -> settings.debugMode().set(in.nextBoolean());
|
||||
case "theme" -> settings.theme().set(parseUiTheme(in.nextString()));
|
||||
case "uiOrientation" -> settings.userInterfaceOrientation().set(parseUiOrientation(in.nextString()));
|
||||
case "keychainProvider" -> settings.keychainProvider().set(in.nextString());
|
||||
case "useKeychain" -> settings.useKeychain().set(in.nextBoolean());
|
||||
case "licenseKey" -> settings.licenseKey().set(in.nextString());
|
||||
case "showMinimizeButton" -> settings.showMinimizeButton().set(in.nextBoolean());
|
||||
case "showTrayIcon" -> settings.showTrayIcon().set(in.nextBoolean());
|
||||
case "windowXPosition" -> settings.windowXPositionProperty().set(in.nextInt());
|
||||
case "windowYPosition" -> settings.windowYPositionProperty().set(in.nextInt());
|
||||
case "windowWidth" -> settings.windowWidthProperty().set(in.nextInt());
|
||||
case "windowHeight" -> settings.windowHeightProperty().set(in.nextInt());
|
||||
case "displayConfiguration" -> settings.displayConfigurationProperty().set(in.nextString());
|
||||
case "keychainProvider" -> settings.keychainProvider().set(in.nextString());
|
||||
case "language" -> settings.languageProperty().set(in.nextString());
|
||||
case "licenseKey" -> settings.licenseKey().set(in.nextString());
|
||||
case "mountService" -> {
|
||||
var token = in.peek();
|
||||
if (JsonToken.STRING == token) {
|
||||
settings.mountService().set(in.nextString());
|
||||
}
|
||||
}
|
||||
case "numTrayNotifications" -> settings.numTrayNotifications().set(in.nextInt());
|
||||
case "port" -> settings.port().set(in.nextInt());
|
||||
case "showMinimizeButton" -> settings.showMinimizeButton().set(in.nextBoolean());
|
||||
case "showTrayIcon" -> settings.showTrayIcon().set(in.nextBoolean());
|
||||
case "startHidden" -> settings.startHidden().set(in.nextBoolean());
|
||||
case "theme" -> settings.theme().set(parseUiTheme(in.nextString()));
|
||||
case "uiOrientation" -> settings.userInterfaceOrientation().set(parseUiOrientation(in.nextString()));
|
||||
case "useKeychain" -> settings.useKeychain().set(in.nextBoolean());
|
||||
case "windowHeight" -> settings.windowHeightProperty().set(in.nextInt());
|
||||
case "windowWidth" -> settings.windowWidthProperty().set(in.nextInt());
|
||||
case "windowXPosition" -> settings.windowXPositionProperty().set(in.nextInt());
|
||||
case "windowYPosition" -> settings.windowYPositionProperty().set(in.nextInt());
|
||||
//1.6.x legacy
|
||||
case "preferredVolumeImpl" -> volumeImpl = in.nextString();
|
||||
//legacy end
|
||||
@@ -133,7 +135,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
if (volumeImpl.equals("Dokany")) {
|
||||
return "org.cryptomator.frontend.dokany.mount.DokanyMountProvider";
|
||||
} else if (volumeImpl.equals("FUSE")) {
|
||||
if(SystemUtils.IS_OS_WINDOWS) {
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
return "org.cryptomator.frontend.fuse.mount.WinFspNetworkMountProvider";
|
||||
} else if (SystemUtils.IS_OS_MAC) {
|
||||
return "org.cryptomator.frontend.fuse.mount.MacFuseMountProvider";
|
||||
@@ -141,7 +143,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
||||
return "org.cryptomator.frontend.fuse.mount.LinuxFuseMountProvider";
|
||||
}
|
||||
} else {
|
||||
if(SystemUtils.IS_OS_WINDOWS) {
|
||||
if (SystemUtils.IS_OS_WINDOWS) {
|
||||
return "org.cryptomator.frontend.webdav.mount.WindowsMounter";
|
||||
} else if (SystemUtils.IS_OS_MAC) {
|
||||
return "org.cryptomator.frontend.webdav.mount.MacAppleScriptMounter";
|
||||
|
||||
@@ -42,6 +42,7 @@ public class VaultSettings {
|
||||
private final String id;
|
||||
private final ObjectProperty<Path> path = new SimpleObjectProperty<>();
|
||||
private final StringProperty displayName = new SimpleStringProperty();
|
||||
private final BooleanProperty vaultIdAsVolumeId = new SimpleBooleanProperty(false);
|
||||
private final BooleanProperty unlockAfterStartup = new SimpleBooleanProperty(DEFAULT_UNLOCK_AFTER_STARTUP);
|
||||
private final BooleanProperty revealAfterMount = new SimpleBooleanProperty(DEFAULT_REVEAL_AFTER_MOUNT);
|
||||
private final BooleanProperty usesReadOnlyMode = new SimpleBooleanProperty(DEFAULT_USES_READONLY_MODE);
|
||||
@@ -127,6 +128,10 @@ public class VaultSettings {
|
||||
return mountPoint;
|
||||
}
|
||||
|
||||
public BooleanProperty usesVaultIdAsVolumeId() {
|
||||
return vaultIdAsVolumeId;
|
||||
}
|
||||
|
||||
public BooleanProperty usesReadOnlyMode() {
|
||||
return usesReadOnlyMode;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import javafx.application.Platform;
|
||||
import javafx.collections.ObservableList;
|
||||
import java.io.IOException;
|
||||
import java.time.Instant;
|
||||
@@ -40,6 +41,7 @@ public class AutoLocker {
|
||||
private void autolock(Vault vault) {
|
||||
try {
|
||||
vault.lock(false);
|
||||
Platform.runLater(() -> vault.stateProperty().set(VaultState.Value.LOCKED));
|
||||
LOG.info("Autolocked {} after idle timeout", vault.getDisplayName());
|
||||
} catch (UnmountFailedException | IOException e) {
|
||||
LOG.error("Autolocking failed.", e);
|
||||
|
||||
@@ -316,18 +316,29 @@ public class Vault {
|
||||
|
||||
/**
|
||||
* Gets from the cleartext path its ciphertext counterpart.
|
||||
* The cleartext path has to start from the vault root (by starting with "/").
|
||||
*
|
||||
* @return Local os path to the ciphertext resource
|
||||
* @throws IOException if an I/O error occurs
|
||||
* @throws IllegalStateException if the vault is not unlocked
|
||||
*/
|
||||
public Path getCiphertextPath(String cleartextPath) throws IOException {
|
||||
if (!cleartextPath.startsWith("/")) {
|
||||
throw new IllegalArgumentException("Input path must be absolute from vault root by starting with \"/\".");
|
||||
public Path getCiphertextPath(Path cleartextPath) throws IOException {
|
||||
if (!state.getValue().equals(VaultState.Value.UNLOCKED)) {
|
||||
throw new IllegalStateException("Vault is not unlocked");
|
||||
}
|
||||
var fs = cryptoFileSystem.get();
|
||||
var cryptoPath = fs.getPath(cleartextPath);
|
||||
return fs.getCiphertextPath(cryptoPath);
|
||||
var osPathSeparator = cleartextPath.getFileSystem().getSeparator();
|
||||
var cryptoFsPathSeparator = fs.getSeparator();
|
||||
|
||||
if (getMountPoint() instanceof Mountpoint.WithPath mp) {
|
||||
var absoluteCryptoFsPath = cryptoFsPathSeparator + mp.path().relativize(cleartextPath).toString();
|
||||
if (!cryptoFsPathSeparator.equals(osPathSeparator)) {
|
||||
absoluteCryptoFsPath = absoluteCryptoFsPath.replace(osPathSeparator, cryptoFsPathSeparator);
|
||||
}
|
||||
var cryptoPath = fs.getPath(absoluteCryptoFsPath);
|
||||
return fs.getCiphertextPath(cryptoPath);
|
||||
} else {
|
||||
throw new UnsupportedOperationException("URI mount points not supported.");
|
||||
}
|
||||
}
|
||||
|
||||
public VaultConfigCache getVaultConfigCache() {
|
||||
|
||||
@@ -84,6 +84,10 @@ public class LogbackConfigurator extends ContextAwareBase implements Configurato
|
||||
upgrades.addAppender(upgrade);
|
||||
upgrades.addAppender(file);
|
||||
upgrades.setAdditive(false);
|
||||
|
||||
// configure fuse file locking logger:
|
||||
Logger fuseLocking = context.getLogger("org.cryptomator.frontend.fuse.locks");
|
||||
fuseLocking.setLevel(Level.OFF);
|
||||
}
|
||||
return ExecutionStatus.DO_NOT_INVOKE_NEXT_IF_ANY;
|
||||
}
|
||||
|
||||
@@ -29,9 +29,13 @@ public class ErrorController implements FxController {
|
||||
OS: %s / %s
|
||||
App: %s / %s
|
||||
|
||||
<!-- ✏️ Please describe what happened as accurately as possible. -->
|
||||
<!-- ✏ Please describe what happened as accurately as possible. -->
|
||||
|
||||
<!-- 📋 Please also copy and paste the detail text from the error window. -->
|
||||
|
||||
<!-- ℹ Text enclosed like this (chevrons, exclamation mark, two dashes) is not visible to others! -->
|
||||
|
||||
<!-- ❗ If the description or the detail text is missing, the discussion will be deleted. -->
|
||||
""";
|
||||
|
||||
private final Application application;
|
||||
|
||||
@@ -15,7 +15,7 @@ public enum FxmlFile {
|
||||
HEALTH_CHECK_LIST("/fxml/health_check_list.fxml"), //
|
||||
HUB_NO_KEYCHAIN("/fxml/hub_no_keychain.fxml"), //
|
||||
HUB_AUTH_FLOW("/fxml/hub_auth_flow.fxml"), //
|
||||
HUB_LICENSE_EXCEEDED("/fxml/hub_license_exceeded.fxml"), //
|
||||
HUB_INVALID_LICENSE("/fxml/hub_invalid_license.fxml"), //
|
||||
HUB_RECEIVE_KEY("/fxml/hub_receive_key.fxml"), //
|
||||
HUB_REGISTER_DEVICE("/fxml/hub_register_device.fxml"), //
|
||||
HUB_REGISTER_SUCCESS("/fxml/hub_register_success.fxml"), //
|
||||
|
||||
@@ -42,6 +42,7 @@ public enum FontAwesome5Icon {
|
||||
PLUS("\uF067"), //
|
||||
PRINT("\uF02F"), //
|
||||
QUESTION("\uF128"), //
|
||||
QUESTION_CIRCLE("\uf059"), //
|
||||
REDO("\uF01E"), //
|
||||
SEARCH("\uF002"), //
|
||||
SPINNER("\uF110"), //
|
||||
|
||||
@@ -102,10 +102,10 @@ public abstract class HubKeyLoadingModule {
|
||||
}
|
||||
|
||||
@Provides
|
||||
@FxmlScene(FxmlFile.HUB_LICENSE_EXCEEDED)
|
||||
@FxmlScene(FxmlFile.HUB_INVALID_LICENSE)
|
||||
@KeyLoadingScoped
|
||||
static Scene provideLicenseExceededScene(@KeyLoading FxmlLoaderFactory fxmlLoaders) {
|
||||
return fxmlLoaders.createScene(FxmlFile.HUB_LICENSE_EXCEEDED);
|
||||
static Scene provideInvalidLicenseScene(@KeyLoading FxmlLoaderFactory fxmlLoaders) {
|
||||
return fxmlLoaders.createScene(FxmlFile.HUB_INVALID_LICENSE);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@@ -162,8 +162,8 @@ public abstract class HubKeyLoadingModule {
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
@FxControllerKey(LicenseExceededController.class)
|
||||
abstract FxController bindLicenseExceededController(LicenseExceededController controller);
|
||||
@FxControllerKey(InvalidLicenseController.class)
|
||||
abstract FxController bindInvalidLicenseController(InvalidLicenseController controller);
|
||||
|
||||
@Binds
|
||||
@IntoMap
|
||||
|
||||
+2
-2
@@ -7,12 +7,12 @@ import javax.inject.Inject;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.stage.Stage;
|
||||
|
||||
public class LicenseExceededController implements FxController {
|
||||
public class InvalidLicenseController implements FxController {
|
||||
|
||||
private final Stage window;
|
||||
|
||||
@Inject
|
||||
public LicenseExceededController(@KeyLoading Stage window) {
|
||||
public InvalidLicenseController(@KeyLoading Stage window) {
|
||||
this.window = window;
|
||||
}
|
||||
|
||||
@@ -42,11 +42,11 @@ public class ReceiveKeyController implements FxController {
|
||||
private final Lazy<Scene> registerDeviceScene;
|
||||
private final Lazy<Scene> unauthorizedScene;
|
||||
private final URI vaultBaseUri;
|
||||
private final Lazy<Scene> licenseExceededScene;
|
||||
private final Lazy<Scene> invalidLicenseScene;
|
||||
private final HttpClient httpClient;
|
||||
|
||||
@Inject
|
||||
public ReceiveKeyController(@KeyLoading Vault vault, ExecutorService executor, @KeyLoading Stage window, @Named("deviceId") String deviceId, @Named("bearerToken") AtomicReference<String> tokenRef, CompletableFuture<JWEObject> result, @FxmlScene(FxmlFile.HUB_REGISTER_DEVICE) Lazy<Scene> registerDeviceScene, @FxmlScene(FxmlFile.HUB_UNAUTHORIZED_DEVICE) Lazy<Scene> unauthorizedScene, @FxmlScene(FxmlFile.HUB_LICENSE_EXCEEDED) Lazy<Scene> licenseExceededScene) {
|
||||
public ReceiveKeyController(@KeyLoading Vault vault, ExecutorService executor, @KeyLoading Stage window, @Named("deviceId") String deviceId, @Named("bearerToken") AtomicReference<String> tokenRef, CompletableFuture<JWEObject> result, @FxmlScene(FxmlFile.HUB_REGISTER_DEVICE) Lazy<Scene> registerDeviceScene, @FxmlScene(FxmlFile.HUB_UNAUTHORIZED_DEVICE) Lazy<Scene> unauthorizedScene, @FxmlScene(FxmlFile.HUB_INVALID_LICENSE) Lazy<Scene> invalidLicenseScene) {
|
||||
this.window = window;
|
||||
this.deviceId = deviceId;
|
||||
this.bearerToken = Objects.requireNonNull(tokenRef.get());
|
||||
@@ -54,7 +54,7 @@ public class ReceiveKeyController implements FxController {
|
||||
this.registerDeviceScene = registerDeviceScene;
|
||||
this.unauthorizedScene = unauthorizedScene;
|
||||
this.vaultBaseUri = getVaultBaseUri(vault);
|
||||
this.licenseExceededScene = licenseExceededScene;
|
||||
this.invalidLicenseScene = invalidLicenseScene;
|
||||
this.window.addEventHandler(WindowEvent.WINDOW_HIDING, this::windowClosed);
|
||||
this.httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).executor(executor).build();
|
||||
}
|
||||
@@ -96,7 +96,7 @@ public class ReceiveKeyController implements FxController {
|
||||
}
|
||||
|
||||
private void licenseExceeded() {
|
||||
window.setScene(licenseExceededScene.get());
|
||||
window.setScene(invalidLicenseScene.get());
|
||||
}
|
||||
|
||||
private void needsDeviceRegistration() {
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import com.tobiasdiez.easybind.EasyBind;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.integrations.mount.Mountpoint;
|
||||
import org.cryptomator.integrations.revealpath.RevealFailedException;
|
||||
@@ -54,6 +55,7 @@ public class VaultDetailUnlockedController implements FxController {
|
||||
private final VaultService vaultService;
|
||||
private final WrongFileAlertComponent.Builder wrongFileAlert;
|
||||
private final Stage mainWindow;
|
||||
private final Optional<RevealPathService> revealPathService;
|
||||
private final ResourceBundle resourceBundle;
|
||||
private final LoadingCache<Vault, VaultStatisticsComponent> vaultStats;
|
||||
private final VaultStatisticsComponent.Builder vaultStatsBuilder;
|
||||
@@ -67,12 +69,13 @@ public class VaultDetailUnlockedController implements FxController {
|
||||
public Button dropZone;
|
||||
|
||||
@Inject
|
||||
public VaultDetailUnlockedController(ObjectProperty<Vault> vault, FxApplicationWindows appWindows, VaultService vaultService, VaultStatisticsComponent.Builder vaultStatsBuilder, WrongFileAlertComponent.Builder wrongFileAlert, @MainWindow Stage mainWindow, ResourceBundle resourceBundle) {
|
||||
public VaultDetailUnlockedController(ObjectProperty<Vault> vault, FxApplicationWindows appWindows, VaultService vaultService, VaultStatisticsComponent.Builder vaultStatsBuilder, WrongFileAlertComponent.Builder wrongFileAlert, @MainWindow Stage mainWindow, Optional<RevealPathService> revealPathService, ResourceBundle resourceBundle) {
|
||||
this.vault = vault;
|
||||
this.appWindows = appWindows;
|
||||
this.vaultService = vaultService;
|
||||
this.wrongFileAlert = wrongFileAlert;
|
||||
this.mainWindow = mainWindow;
|
||||
this.revealPathService = revealPathService;
|
||||
this.resourceBundle = resourceBundle;
|
||||
this.vaultStats = CacheBuilder.newBuilder().weakValues().build(CacheLoader.from(this::buildVaultStats));
|
||||
this.vaultStatsBuilder = vaultStatsBuilder;
|
||||
@@ -99,7 +102,11 @@ public class VaultDetailUnlockedController implements FxController {
|
||||
|
||||
private void handleDragEvent(DragEvent event) {
|
||||
if (DragEvent.DRAG_OVER.equals(event.getEventType()) && event.getGestureSource() == null && event.getDragboard().hasFiles()) {
|
||||
event.acceptTransferModes(TransferMode.LINK);
|
||||
if(SystemUtils.IS_OS_WINDOWS || SystemUtils.IS_OS_MAC) {
|
||||
event.acceptTransferModes(TransferMode.LINK);
|
||||
} else {
|
||||
event.acceptTransferModes(TransferMode.ANY);
|
||||
}
|
||||
draggingOver.set(true);
|
||||
} else if (DragEvent.DRAG_DROPPED.equals(event.getEventType()) && event.getGestureSource() == null && event.getDragboard().hasFiles()) {
|
||||
List<Path> ciphertextPaths = event.getDragboard().getFiles().stream().map(File::toPath).map(this::getCiphertextPath).flatMap(Optional::stream).toList();
|
||||
@@ -164,42 +171,29 @@ public class VaultDetailUnlockedController implements FxController {
|
||||
return Optional.empty();
|
||||
}
|
||||
try {
|
||||
var accessPoint = mountPoint.getValue();
|
||||
var cleartextPath = path.toString().substring(accessPoint.length());
|
||||
if (!cleartextPath.startsWith("/")) {
|
||||
cleartextPath = "/" + cleartextPath;
|
||||
}
|
||||
return Optional.of(vault.get().getCiphertextPath(cleartextPath));
|
||||
return Optional.of(vault.get().getCiphertextPath(path));
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to get ciphertext path from path: {}", path);
|
||||
LOG.warn("Unable to get ciphertext path from path: {}", path, e);
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
private void revealOrCopyPaths(List<Path> paths) {
|
||||
if (!revealPaths(paths)) {
|
||||
revealPathService.ifPresentOrElse(svc -> revealPaths(svc, paths), () -> {
|
||||
LOG.warn("No service provider to reveal files found.");
|
||||
copyPathsToClipboard(paths);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reveals the paths over the {@link RevealPathService} in the file system
|
||||
*
|
||||
* @param paths List of Paths to reveal
|
||||
* @return true, if at least one service provider was present, false otherwise
|
||||
*/
|
||||
private boolean revealPaths(List<Path> paths) {
|
||||
return RevealPathService.get().findAny().map(s -> {
|
||||
paths.forEach(path -> {
|
||||
try {
|
||||
s.reveal(path);
|
||||
} catch (RevealFailedException e) {
|
||||
LOG.error("Revealing ciphertext file failed.", e);
|
||||
}
|
||||
});
|
||||
return true;
|
||||
}).orElse(false);
|
||||
private void revealPaths(RevealPathService service, List<Path> paths) {
|
||||
paths.forEach(path -> {
|
||||
try {
|
||||
LOG.debug("Revealing {}", path);
|
||||
service.reveal(path);
|
||||
} catch (RevealFailedException e) {
|
||||
LOG.error("Revealing ciphertext file failed.", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void copyPathsToClipboard(List<Path> paths) {
|
||||
|
||||
@@ -16,7 +16,7 @@ import javafx.fxml.FXML;
|
||||
public class WelcomeController implements FxController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
|
||||
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/en/1.6/desktop/getting-started/";
|
||||
private static final String GETTING_STARTED_URI = "https://docs.cryptomator.org/en/1.7/desktop/getting-started/";
|
||||
|
||||
private final Application application;
|
||||
private final BooleanBinding noVaultPresent;
|
||||
|
||||
@@ -10,7 +10,7 @@ import javafx.stage.Stage;
|
||||
|
||||
public class MigrationImpossibleController implements FxController {
|
||||
|
||||
private static final String HELP_URI = "https://docs.cryptomator.org/en/1.6/help/manual-migration/";
|
||||
private static final String HELP_URI = "https://docs.cryptomator.org/en/1.7/help/manual-migration/";
|
||||
|
||||
private final Application application;
|
||||
private final Stage window;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.cryptomator.ui.preferences;
|
||||
|
||||
import dagger.Lazy;
|
||||
import org.cryptomator.common.ObservableUtil;
|
||||
import org.cryptomator.common.settings.Settings;
|
||||
import org.cryptomator.integrations.mount.MountCapability;
|
||||
@@ -7,6 +8,7 @@ import org.cryptomator.integrations.mount.MountService;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javafx.application.Application;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.binding.BooleanExpression;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
@@ -21,6 +23,8 @@ import java.util.ResourceBundle;
|
||||
@PreferencesScoped
|
||||
public class VolumePreferencesController implements FxController {
|
||||
|
||||
private static final String DOCS_MOUNTING_URL = "https://docs.cryptomator.org/en/1.7/desktop/volume-type/";
|
||||
|
||||
private final Settings settings;
|
||||
private final ObservableValue<MountService> selectedMountService;
|
||||
private final ResourceBundle resourceBundle;
|
||||
@@ -29,14 +33,16 @@ public class VolumePreferencesController implements FxController {
|
||||
private final ObservableValue<Boolean> mountToDriveLetterSupported;
|
||||
private final ObservableValue<Boolean> mountFlagsSupported;
|
||||
private final ObservableValue<Boolean> readonlySupported;
|
||||
private final Lazy<Application> application;
|
||||
private final List<MountService> mountProviders;
|
||||
public ChoiceBox<MountService> volumeTypeChoiceBox;
|
||||
public TextField loopbackPortField;
|
||||
public Button loopbackPortApplyButton;
|
||||
|
||||
@Inject
|
||||
VolumePreferencesController(Settings settings, List<MountService> mountProviders, ResourceBundle resourceBundle) {
|
||||
VolumePreferencesController(Settings settings, Lazy<Application> application, List<MountService> mountProviders, ResourceBundle resourceBundle) {
|
||||
this.settings = settings;
|
||||
this.application = application;
|
||||
this.mountProviders = mountProviders;
|
||||
this.resourceBundle = resourceBundle;
|
||||
|
||||
@@ -141,4 +147,8 @@ public class VolumePreferencesController implements FxController {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
public void openDocs() {
|
||||
application.get().getHostServices().showDocument(DOCS_MOUNTING_URL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.google.common.base.CharMatcher;
|
||||
import com.google.common.base.Strings;
|
||||
import dagger.Lazy;
|
||||
import org.cryptomator.common.Nullable;
|
||||
import org.cryptomator.common.ObservableUtil;
|
||||
import org.cryptomator.common.vaults.Vault;
|
||||
import org.cryptomator.cryptofs.VaultConfig;
|
||||
import org.cryptomator.cryptofs.VaultConfigLoadException;
|
||||
@@ -15,9 +16,10 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javafx.beans.binding.Bindings;
|
||||
import javafx.beans.binding.BooleanBinding;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
import javafx.beans.value.ObservableValue;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.scene.Scene;
|
||||
import javafx.scene.control.TextArea;
|
||||
@@ -38,11 +40,16 @@ public class RecoveryKeyRecoverController implements FxController {
|
||||
private final Vault vault;
|
||||
private final VaultConfig.UnverifiedVaultConfig unverifiedVaultConfig;
|
||||
private final StringProperty recoveryKey;
|
||||
private final ObservableValue<Boolean> recoveryKeyCorrect;
|
||||
private final ObservableValue<Boolean> recoveryKeyWrong;
|
||||
private final ObservableValue<Boolean> recoveryKeyInvalid;
|
||||
private final RecoveryKeyFactory recoveryKeyFactory;
|
||||
private final BooleanBinding validRecoveryKey;
|
||||
private final ObjectProperty<RecoveryKeyState> recoveryKeyState;
|
||||
private final Lazy<Scene> resetPasswordScene;
|
||||
private final AutoCompleter autoCompleter;
|
||||
|
||||
private volatile boolean isWrongKey;
|
||||
|
||||
public TextArea textarea;
|
||||
|
||||
@Inject
|
||||
@@ -53,14 +60,18 @@ public class RecoveryKeyRecoverController implements FxController {
|
||||
this.unverifiedVaultConfig = unverifiedVaultConfig;
|
||||
this.recoveryKey = recoveryKey;
|
||||
this.recoveryKeyFactory = recoveryKeyFactory;
|
||||
this.validRecoveryKey = Bindings.createBooleanBinding(this::isValidRecoveryKey, recoveryKey);
|
||||
this.resetPasswordScene = resetPasswordScene;
|
||||
this.autoCompleter = new AutoCompleter(recoveryKeyFactory.getDictionary());
|
||||
this.recoveryKeyState = new SimpleObjectProperty<>();
|
||||
this.recoveryKeyCorrect = ObservableUtil.mapWithDefault(recoveryKeyState, RecoveryKeyState.CORRECT::equals, false);
|
||||
this.recoveryKeyWrong = ObservableUtil.mapWithDefault(recoveryKeyState, RecoveryKeyState.WRONG::equals, false);
|
||||
this.recoveryKeyInvalid = ObservableUtil.mapWithDefault(recoveryKeyState, RecoveryKeyState.INVALID::equals, false);
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void initialize() {
|
||||
recoveryKey.bind(textarea.textProperty());
|
||||
textarea.textProperty().addListener(((observable, oldValue, newValue) -> validateRecoveryKey()));
|
||||
}
|
||||
|
||||
private TextFormatter.Change filterTextChange(TextFormatter.Change change) {
|
||||
@@ -107,6 +118,12 @@ public class RecoveryKeyRecoverController implements FxController {
|
||||
window.setScene(resetPasswordScene.get());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks, if vault config is signed with the given key.
|
||||
*
|
||||
* @param key byte array of possible signing key
|
||||
* @return true, if vault config is signed with this key
|
||||
*/
|
||||
private boolean checkKeyAgainstVaultConfig(byte[] key) {
|
||||
try {
|
||||
var config = unverifiedVaultConfig.verify(key, unverifiedVaultConfig.allegedVaultVersion());
|
||||
@@ -114,6 +131,7 @@ public class RecoveryKeyRecoverController implements FxController {
|
||||
return true;
|
||||
} catch (VaultKeyInvalidException e) {
|
||||
LOG.debug("Provided recovery key does not match vault config signature.");
|
||||
isWrongKey = true;
|
||||
return false;
|
||||
} catch (VaultConfigLoadException e) {
|
||||
LOG.error("Failed to parse vault config", e);
|
||||
@@ -121,25 +139,64 @@ public class RecoveryKeyRecoverController implements FxController {
|
||||
}
|
||||
}
|
||||
|
||||
private void validateRecoveryKey() {
|
||||
isWrongKey = false;
|
||||
var valid = recoveryKeyFactory.validateRecoveryKey(recoveryKey.get(), unverifiedVaultConfig != null ? this::checkKeyAgainstVaultConfig : null);
|
||||
if (valid) {
|
||||
recoveryKeyState.set(RecoveryKeyState.CORRECT);
|
||||
} else if (isWrongKey) { //set via side effect in checkKeyAgainstVaultConfig()
|
||||
recoveryKeyState.set(RecoveryKeyState.WRONG);
|
||||
} else {
|
||||
recoveryKeyState.set(RecoveryKeyState.INVALID);
|
||||
}
|
||||
}
|
||||
|
||||
/* Getter/Setter */
|
||||
|
||||
public Vault getVault() {
|
||||
return vault;
|
||||
}
|
||||
|
||||
public BooleanBinding validRecoveryKeyProperty() {
|
||||
return validRecoveryKey;
|
||||
}
|
||||
|
||||
public boolean isValidRecoveryKey() {
|
||||
if (unverifiedVaultConfig != null) {
|
||||
return recoveryKeyFactory.validateRecoveryKey(recoveryKey.get(), this::checkKeyAgainstVaultConfig);
|
||||
} else {
|
||||
return recoveryKeyFactory.validateRecoveryKey(recoveryKey.get());
|
||||
}
|
||||
}
|
||||
|
||||
public TextFormatter getRecoveryKeyTextFormatter() {
|
||||
return new TextFormatter<>(this::filterTextChange);
|
||||
}
|
||||
|
||||
public ObservableValue<Boolean> recoveryKeyInvalidProperty() {
|
||||
return recoveryKeyInvalid;
|
||||
}
|
||||
|
||||
public boolean isRecoveryKeyInvalid() {
|
||||
return recoveryKeyInvalid.getValue();
|
||||
}
|
||||
|
||||
public ObservableValue<Boolean> recoveryKeyCorrectProperty() {
|
||||
return recoveryKeyCorrect;
|
||||
}
|
||||
|
||||
public boolean isRecoveryKeyCorrect() {
|
||||
return recoveryKeyCorrect.getValue();
|
||||
}
|
||||
|
||||
public ObservableValue<Boolean> recoveryKeyWrongProperty() {
|
||||
return recoveryKeyWrong;
|
||||
}
|
||||
|
||||
public boolean isRecoveryKeyWrong() {
|
||||
return recoveryKeyWrong.getValue();
|
||||
}
|
||||
|
||||
private enum RecoveryKeyState {
|
||||
/**
|
||||
* Recovery key is a valid key and belongs to this vault
|
||||
*/
|
||||
CORRECT,
|
||||
/**
|
||||
* Recovery key is a valid key, but does not belong to this vault
|
||||
*/
|
||||
WRONG,
|
||||
/**
|
||||
* Recovery key is not a valid key.
|
||||
*/
|
||||
INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ public class MountOptionsController implements FxController {
|
||||
private final ObservableValue<String> defaultMountFlags;
|
||||
private final ObservableValue<Boolean> mountpointDirSupported;
|
||||
private final ObservableValue<Boolean> mountpointDriveLetterSupported;
|
||||
private final ObservableValue<Boolean> volumeIdSupported;
|
||||
private final ObservableValue<Boolean> readOnlySupported;
|
||||
private final ObservableValue<Boolean> mountFlagsSupported;
|
||||
private final ObservableValue<String> directoryPath;
|
||||
@@ -48,6 +49,7 @@ public class MountOptionsController implements FxController {
|
||||
|
||||
//-- FXML objects --
|
||||
public CheckBox readOnlyCheckbox;
|
||||
public CheckBox useVaultIdAsVolumeId;
|
||||
public CheckBox customMountFlagsCheckbox;
|
||||
public TextField mountFlagsField;
|
||||
public ToggleGroup mountPointToggleGroup;
|
||||
@@ -73,6 +75,7 @@ public class MountOptionsController implements FxController {
|
||||
this.mountpointDirSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_TO_EXISTING_DIR) || as.service().hasCapability(MountCapability.MOUNT_WITHIN_EXISTING_PARENT));
|
||||
this.mountpointDriveLetterSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_AS_DRIVE_LETTER));
|
||||
this.mountFlagsSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_FLAGS));
|
||||
this.volumeIdSupported = mountService.map(as -> as.service().hasCapability(MountCapability.VOLUME_ID));
|
||||
this.readOnlySupported = mountService.map(as -> as.service().hasCapability(MountCapability.READ_ONLY));
|
||||
this.directoryPath = vault.getVaultSettings().mountPoint().map(p -> isDriveLetter(p) ? null : p.toString());
|
||||
this.applicationWindows = applicationWindows;
|
||||
@@ -83,6 +86,9 @@ public class MountOptionsController implements FxController {
|
||||
// readonly:
|
||||
readOnlyCheckbox.selectedProperty().bindBidirectional(vaultSettings.usesReadOnlyMode());
|
||||
|
||||
// use volume name as volume id
|
||||
useVaultIdAsVolumeId.selectedProperty().bindBidirectional(vaultSettings.usesVaultIdAsVolumeId());
|
||||
|
||||
// custom mount flags:
|
||||
mountFlagsField.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
|
||||
customMountFlagsCheckbox.setSelected(!Strings.isNullOrEmpty(vaultSettings.mountFlags().getValue()));
|
||||
@@ -267,6 +273,16 @@ public class MountOptionsController implements FxController {
|
||||
return readOnlySupported.getValue();
|
||||
}
|
||||
|
||||
public ObservableValue<Boolean> volumeIdSupportedProperty() {
|
||||
return volumeIdSupported;
|
||||
}
|
||||
|
||||
public boolean getVolumeIdSupported() {
|
||||
return volumeIdSupported.getValue();
|
||||
}
|
||||
|
||||
|
||||
|
||||
public ObservableValue<String> directoryPathProperty() {
|
||||
return directoryPath;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ import java.io.UncheckedIOException;
|
||||
@WrongFileAlertScoped
|
||||
public class WrongFileAlertController implements FxController {
|
||||
|
||||
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/en/1.6/desktop/accessing-vaults/";
|
||||
private static final String DOCUMENTATION_URI = "https://docs.cryptomator.org/en/1.7/desktop/accessing-vaults/";
|
||||
|
||||
private final Application app;
|
||||
private final Stage window;
|
||||
|
||||
+3
-3
@@ -13,7 +13,7 @@
|
||||
<?import javafx.scene.shape.Circle?>
|
||||
<HBox xmlns:fx="http://javafx.com/fxml"
|
||||
xmlns="http://javafx.com/javafx"
|
||||
fx:controller="org.cryptomator.ui.keyloading.hub.LicenseExceededController"
|
||||
fx:controller="org.cryptomator.ui.keyloading.hub.InvalidLicenseController"
|
||||
minWidth="400"
|
||||
maxWidth="400"
|
||||
minHeight="145"
|
||||
@@ -33,12 +33,12 @@
|
||||
</StackPane>
|
||||
</Group>
|
||||
<VBox HBox.hgrow="ALWAYS">
|
||||
<Label styleClass="label-large" text="%hub.licenseExceeded.message" wrapText="true" textAlignment="LEFT">
|
||||
<Label styleClass="label-large" text="%hub.invalidLicense.message" wrapText="true" textAlignment="LEFT">
|
||||
<padding>
|
||||
<Insets bottom="6" top="6"/>
|
||||
</padding>
|
||||
</Label>
|
||||
<Label text="%hub.licenseExceeded.description" wrapText="true"/>
|
||||
<Label text="%hub.invalidLicense.description" wrapText="true"/>
|
||||
|
||||
<Region VBox.vgrow="ALWAYS" minHeight="18"/>
|
||||
<ButtonBar buttonMinWidth="120" buttonOrder="+C">
|
||||
@@ -5,10 +5,12 @@
|
||||
<?import javafx.geometry.Insets?>
|
||||
<?import javafx.scene.control.Button?>
|
||||
<?import javafx.scene.control.ChoiceBox?>
|
||||
<?import javafx.scene.control.Hyperlink?>
|
||||
<?import javafx.scene.control.Label?>
|
||||
<?import javafx.scene.control.Separator?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.control.Tooltip?>
|
||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||
xmlns="http://javafx.com/javafx"
|
||||
fx:controller="org.cryptomator.ui.preferences.VolumePreferencesController"
|
||||
@@ -20,6 +22,14 @@
|
||||
<HBox spacing="12" alignment="CENTER_LEFT">
|
||||
<Label text="%preferences.volume.type"/>
|
||||
<ChoiceBox fx:id="volumeTypeChoiceBox"/>
|
||||
<Hyperlink contentDisplay="GRAPHIC_ONLY" onAction="#openDocs">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="QUESTION_CIRCLE" styleClass="glyph-icon-muted"/>
|
||||
</graphic>
|
||||
<tooltip>
|
||||
<Tooltip text="%preferences.volume.docsTooltip" showDelay="100ms"/>
|
||||
</tooltip>
|
||||
</Hyperlink>
|
||||
</HBox>
|
||||
|
||||
<HBox spacing="12" alignment="CENTER_LEFT" visible="${controller.loopbackPortSupported}" managed="${controller.loopbackPortSupported}">
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
<?import javafx.scene.control.TextArea?>
|
||||
<?import javafx.scene.layout.Region?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.layout.StackPane?>
|
||||
<?import javafx.scene.Group?>
|
||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||
xmlns="http://javafx.com/javafx"
|
||||
fx:controller="org.cryptomator.ui.recoverykey.RecoveryKeyRecoverController"
|
||||
@@ -25,12 +27,28 @@
|
||||
|
||||
<TextArea wrapText="true" prefRowCount="4" fx:id="textarea" textFormatter="${controller.recoveryKeyTextFormatter}" onKeyPressed="#onKeyPressed"/>
|
||||
|
||||
<!-- TODO: add Label when the recovery key is not valid -->
|
||||
<Label text="%recoveryKey.recover.validKey" graphicTextGap="6" contentDisplay="LEFT" visible="${controller.validRecoveryKey}">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="CHECK"/>
|
||||
</graphic>
|
||||
</Label>
|
||||
<StackPane>
|
||||
<Label text="Just some Filler" visible="false" graphicTextGap="6">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="ANCHOR"/>
|
||||
</graphic>
|
||||
</Label>
|
||||
<Label text="%recoveryKey.recover.correctKey" graphicTextGap="6" contentDisplay="LEFT" visible="${(!textarea.text.empty) && controller.recoveryKeyCorrect}">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="CHECK"/>
|
||||
</graphic>
|
||||
</Label>
|
||||
<Label text="%recoveryKey.recover.wrongKey" graphicTextGap="6" contentDisplay="LEFT" visible="${(!textarea.text.empty) && controller.recoveryKeyWrong}">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="TIMES" styleClass="glyph-icon-red"/>
|
||||
</graphic>
|
||||
</Label>
|
||||
<Label text="%recoveryKey.recover.invalidKey" graphicTextGap="6" contentDisplay="LEFT" visible="${(!textarea.text.empty) && controller.recoveryKeyInvalid}">
|
||||
<graphic>
|
||||
<FontAwesome5IconView glyph="TIMES" styleClass="glyph-icon-red"/>
|
||||
</graphic>
|
||||
</Label>
|
||||
</StackPane>
|
||||
|
||||
<Region VBox.vgrow="ALWAYS"/>
|
||||
|
||||
@@ -38,7 +56,7 @@
|
||||
<ButtonBar buttonMinWidth="120" buttonOrder="+CX">
|
||||
<buttons>
|
||||
<Button text="%generic.button.cancel" ButtonBar.buttonData="CANCEL_CLOSE" cancelButton="true" onAction="#close"/>
|
||||
<Button text="%generic.button.next" ButtonBar.buttonData="NEXT_FORWARD" defaultButton="true" onAction="#recover" disable="${!controller.validRecoveryKey}"/>
|
||||
<Button text="%generic.button.next" ButtonBar.buttonData="NEXT_FORWARD" defaultButton="true" onAction="#recover" disable="${!controller.recoveryKeyCorrect}"/>
|
||||
</buttons>
|
||||
</ButtonBar>
|
||||
</VBox>
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<?import javafx.scene.control.ToggleGroup?>
|
||||
<?import javafx.scene.layout.HBox?>
|
||||
<?import javafx.scene.layout.VBox?>
|
||||
<?import javafx.scene.text.Text?>
|
||||
<?import javafx.scene.text.TextFlow?>
|
||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||
xmlns="http://javafx.com/javafx"
|
||||
@@ -26,11 +25,12 @@
|
||||
</padding>
|
||||
<children>
|
||||
<TextFlow>
|
||||
<Text text="%vaultOptions.mount.info"/>
|
||||
<Text text=" "/>
|
||||
<Label text="%vaultOptions.mount.info"/>
|
||||
<Label text=" "/>
|
||||
<Hyperlink styleClass="hyperlink-underline" text="%vaultOptions.mount.linkToPreferences" onAction="#openVolumePreferences" wrapText="true"/>
|
||||
</TextFlow>
|
||||
<CheckBox fx:id="readOnlyCheckbox" text="%vaultOptions.mount.readonly" visible="${controller.readOnlySupported}" managed="${controller.readOnlySupported}"/>
|
||||
<CheckBox fx:id="useVaultIdAsVolumeId" text="TODO vault id as volume id" visible="${controller.volumeIdSupported}" managed="${controller.volumeIdSupported}"/>
|
||||
|
||||
<VBox visible="${controller.mountFlagsSupported}" managed="${controller.mountFlagsSupported}">
|
||||
<CheckBox fx:id="customMountFlagsCheckbox" text="%vaultOptions.mount.customMountFlags" onAction="#toggleUseCustomMountFlags"/>
|
||||
|
||||
@@ -155,9 +155,8 @@ hub.registerFailed.description=An error was thrown in the naming process. For mo
|
||||
hub.unauthorized.message=Access denied
|
||||
hub.unauthorized.description=Your device has not yet been authorized to access this vault. Ask the vault owner to authorize it.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=License exceeded
|
||||
hub.licenseExceeded.description=Cryptomator Hub has given access to more users than its license permits. Please contact your Hub admin to upgrade the license or a vault admin to remove users from vaults.
|
||||
|
||||
hub.invalidLicense.message=Hub License invalid
|
||||
hub.invalidLicense.description=Your Cryptomator Hub instance has an invalid license. Please inform a Hub administrator to upgrade or renew the license.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -278,6 +277,7 @@ preferences.interface.showTrayIcon=Show tray icon (requires restart)
|
||||
preferences.volume=Virtual Drive
|
||||
preferences.volume.type=Volume Type (requires restart)
|
||||
preferences.volume.type.automatic=Automatic
|
||||
preferences.volume.docsTooltip=Open the documentation to learn more about the different volume types.
|
||||
preferences.volume.tcp.port=TCP Port
|
||||
preferences.volume.supportedFeatures=The chosen volume type supports the following features:
|
||||
preferences.volume.feature.mountAuto=Automatic mount point selection
|
||||
@@ -307,27 +307,27 @@ stats.title=Statistics for %s
|
||||
stats.cacheHitRate=Cache Hit Rate
|
||||
## Read
|
||||
stats.read.throughput.idle=Read: idle
|
||||
stats.read.throughput.kibs=Read: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Read: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Read: %.2f MiB/s
|
||||
stats.read.total.data.none=Data read: -
|
||||
stats.read.total.data.kib=Data read: %.1f kiB
|
||||
stats.read.total.data.kib=Data read: %.1f KiB
|
||||
stats.read.total.data.mib=Data read: %.1f MiB
|
||||
stats.read.total.data.gib=Data read: %.1f GiB
|
||||
stats.decr.total.data.none=Data decrypted: -
|
||||
stats.decr.total.data.kib=Data decrypted: %.1f kiB
|
||||
stats.decr.total.data.kib=Data decrypted: %.1f KiB
|
||||
stats.decr.total.data.mib=Data decrypted: %.1f MiB
|
||||
stats.decr.total.data.gib=Data decrypted: %.1f GiB
|
||||
stats.read.accessCount=Total reads: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Write: idle
|
||||
stats.write.throughput.kibs=Write: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Write: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Write: %.2f MiB/s
|
||||
stats.write.total.data.none=Data written: -
|
||||
stats.write.total.data.kib=Data written: %.1f kiB
|
||||
stats.write.total.data.kib=Data written: %.1f KiB
|
||||
stats.write.total.data.mib=Data written: %.1f MiB
|
||||
stats.write.total.data.gib=Data written: %.1f GiB
|
||||
stats.encr.total.data.none=Data encrypted: -
|
||||
stats.encr.total.data.kib=Data encrypted: %.1f kiB
|
||||
stats.encr.total.data.kib=Data encrypted: %.1f KiB
|
||||
stats.encr.total.data.mib=Data encrypted: %.1f MiB
|
||||
stats.encr.total.data.gib=Data encrypted: %.1f GiB
|
||||
stats.write.accessCount=Total writes: %d
|
||||
@@ -370,7 +370,7 @@ main.vaultDetail.lockBtn=Lock
|
||||
main.vaultDetail.bytesPerSecondRead=Read:
|
||||
main.vaultDetail.bytesPerSecondWritten=Write:
|
||||
main.vaultDetail.throughput.idle=idle
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Vault Statistics
|
||||
main.vaultDetail.locateEncryptedFileBtn=Locate Encrypted File
|
||||
@@ -446,7 +446,9 @@ recoveryKey.display.StorageHints=Keep it somewhere very secure, e.g.:\n • Stor
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Reset Password
|
||||
recoveryKey.recover.prompt=Enter your recovery key for "%s":
|
||||
recoveryKey.recover.validKey=This is a valid recovery key
|
||||
recoveryKey.recover.correctKey=This recovery key is correct
|
||||
recoveryKey.recover.wrongKey=This recovery key belongs to a different vault
|
||||
recoveryKey.recover.invalidKey=This recovery key is not valid
|
||||
recoveryKey.printout.heading=Cryptomator Recovery Key\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Reset
|
||||
|
||||
@@ -113,7 +113,6 @@ hub.register.registerBtn=تأكيد
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.description=تم حظر قفل "%s" بواسطة العمليات المعلقة أو الملفات المفتوحة. يمكنك فرض قفل هذا المخزن، ولكن مقاطعة عمليات الادخال والاخراج I/O قد تؤدي لفقدان البيانات غير المحفوظة.
|
||||
@@ -234,7 +233,6 @@ main.vaultDetail.lockBtn=قفل
|
||||
main.vaultDetail.bytesPerSecondRead=قراءة:
|
||||
main.vaultDetail.bytesPerSecondWritten=كتابة:
|
||||
main.vaultDetail.throughput.idle=خمول
|
||||
main.vaultDetail.throughput.kbps=%.1f كيلوبايت/ث
|
||||
main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث
|
||||
main.vaultDetail.stats=إحصائيات الخزنة
|
||||
main.vaultDetail.locateEncryptedFileBtn=تحديد موقع الملف المشفر
|
||||
@@ -296,7 +294,7 @@ recoveryKey.display.StorageHints=حافظ عليه في مكان ما آمن ج
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=أدخل مفتاح الاسترداد الخاص لـ "%s":
|
||||
recoveryKey.recover.validKey=هذا مفتاح استرداد صالح
|
||||
recoveryKey.recover.correctKey=هذا مفتاح استرداد صالح
|
||||
recoveryKey.printout.heading=مفتاح استرداد Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -123,7 +123,14 @@ unlock.success.description=Змест скарбніцы "%s" цяпер дас
|
||||
unlock.success.rememberChoice=Запомні мой выбар і больш не пытай
|
||||
unlock.success.revealBtn=Паказаць дыск
|
||||
## Failure
|
||||
unlock.error.customPath.message=Не магчыма змантажаваць скарбніцу да карыстальніцкай сцежкі
|
||||
unlock.error.customPath.description.notSupported=Калі ты надалей жадаеш карыстацца адмысловаю сцежкаю, калі ласка, пайдзі ў налады ды абары там тып тому, які падтрымлівае яе. У іншым выпадку пайдзі ў опцыі скарбніцы ды абяры там пункт мантажавання, які падтрымліваецца.
|
||||
unlock.error.customPath.description.notExists=Адмысловая сцежка мантажавання не існуе. Ствары яе ў сваёй файлавай сістэме, альбо змяні яе ў опцыях скарбніцы.
|
||||
unlock.error.customPath.description.generic=Ты абраў адмысловую сцежку мантажавання для гэтай скарбніцы, але скарыстацца ёю не ўдалося. Вось паведамленне пра памылку: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Няма доступу да ключа прылады
|
||||
hub.noKeychain.description=Каб разамкнуць скарбніцы Hub, патрэбны ключ прылады, які захаваны ў звязку ключоў. Каб працягнуць, уключы "%s" ды абяры звязак ключоў у наладах.
|
||||
hub.noKeychain.openBtn=Адчыніць налады
|
||||
### Waiting
|
||||
hub.auth.message=Чаканне спраўджання…
|
||||
hub.auth.description=Ты мусіш аўтаматычна перанакіравацца на старонку ўваходу.
|
||||
@@ -147,8 +154,8 @@ hub.registerFailed.description=Падчас прысваення імя адбы
|
||||
hub.unauthorized.message=Адмова ў доступе
|
||||
hub.unauthorized.description=Тваёй прыладзе ў дадзены момант не дазволена мець доступ да гэтай скрабніцы. Запытайся ўладальніка скрабніцы за дазволам.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Ліцэнзія пратэрмінаваная
|
||||
|
||||
hub.invalidLicense.message=Несапраўдная ліцэнзія Hub
|
||||
hub.invalidLicense.description=Твая інстанцыя Cryptomator Hub мае некарэктную ліцэнзію. Калі ласка, паведамі адміністратару Hub пра гэта, каб абнавіць альбо аднавіць ліцэнзію.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -164,6 +171,12 @@ lock.fail.description=Скарбніцу "%s" не мажліва замкнуц
|
||||
migration.title=Абнавіць скарбніцу
|
||||
## Start
|
||||
migration.start.header=Абнавіць скарбніцу
|
||||
migration.start.text=Каб адчыніць тваю скарбніцу "%s" у гэтай новай вэрсіі Cryptomator, скарбніца мусіць быць абноўленая да навейшага фармату. Перад тым, як пачаць, трэба ведаць наступнае:
|
||||
migration.start.remarkUndone=Не магчыма скасаваць гэта абнаўленне.
|
||||
migration.start.remarkVersions=Старэйшыя вэрсіі Cryptomator ня змогуць адчыніць абноўленую скарбніцу.
|
||||
migration.start.remarkCanRun=Ты мусіш упэўніцца, што на кожнай прыладзе, якая мае доступ да скарбніцы, працуе гэта вэрсія Cryptomator.
|
||||
migration.start.remarkSynced=Ты мусіш упэўніцца, што твая скарбніца цалкам сынхранаваная на гэтай ды іншых прыладах, перад тым як пачаць абнаўленне.
|
||||
migration.start.confirm=Я прачытала і зразумела інфармацыю зверху
|
||||
## Run
|
||||
migration.run.enterPassword=Увядзіце пароль да "%s"
|
||||
migration.run.startMigrationBtn=Перамясціць скарбніцу
|
||||
@@ -185,17 +198,47 @@ migration.impossible.heading=Не мажліва перанесці скарбн
|
||||
## Start
|
||||
health.title=Тэст на цэласнасць для "%s"
|
||||
health.intro.header=Тэст на цэласнасць
|
||||
health.intro.remarkFix=Ня ўсе хібы могуць быць выпраўленыя.
|
||||
health.intro.remarkBackup=Калі даныя пашкоджаныя, дапаможа толькі рэзервовая копія.
|
||||
health.intro.affirmation=Я прачытала і зразумела інфармацыю зверху
|
||||
## Start Failure
|
||||
health.fail.header=Падчас загрузкі налад скарбніцы адбылася памылка
|
||||
health.fail.ioError=Здарылася памылка падчас спробы прачытаць канфіґурацыйны файл.
|
||||
health.fail.parseError=Здарылася памылка падчас ператварэння канфіґурацыі скарбніцы.
|
||||
health.fail.moreInfo=Падрабязней
|
||||
## Check Selection
|
||||
health.checkList.description=Абяры тэсты ў левым спісе альбо скарыстайся кнопкамі ўнізе.
|
||||
health.checkList.selectAllButton=Вылучыць усе элементы
|
||||
health.checkList.deselectAllButton=Адрабіць вылучэнне ўсіх элементаў
|
||||
health.check.runBatchBtn=Выканаць вылучаныя элементы
|
||||
## Detail view
|
||||
health.check.detail.noSelectedCheck=Каб праглядзець вынікі, абяры тэсты цэласнасці ў левым спісе.
|
||||
health.check.detail.checkScheduled=Тэст пастаўлены ў чаргу.
|
||||
health.check.detail.checkRunning=Тэст адбываецца ў гэты момант…
|
||||
health.check.detail.checkSkipped=Тэст ня быў абраны для выканання.
|
||||
health.check.detail.checkFinished=Тэст паспяхова скончыўся.
|
||||
health.check.detail.checkFinishedAndFound=Тэст завершаны. Калі ласка, праглядзі вынікі.
|
||||
health.check.detail.checkFailed=Тэст быў спынены з-за памылкі.
|
||||
health.check.detail.checkCancelled=Праверка была скасавана.
|
||||
health.check.detail.listFilters.label=Фільтр
|
||||
health.check.detail.fixAllSpecificBtn=Адрамантаваць усё гэтага тыпу
|
||||
health.check.exportBtn=Экспартаваць справаздачу
|
||||
## Result view
|
||||
health.result.severityFilter.all=Стан – Усе
|
||||
health.result.severityFilter.good=Добра
|
||||
health.result.severityFilter.info=Інфармацыя
|
||||
health.result.severityFilter.warn=Папярэджанне
|
||||
health.result.severityFilter.crit=Крытычна
|
||||
health.result.severityTip.good=Стан: Добры\nНармальная структура скарбніцы.
|
||||
health.result.severityTip.info=Стан: Інфармацыя\nСтруктура скарбніцы непашкоджаная.
|
||||
health.result.severityTip.warn=Стан: Папярэджанне\nСтруктура скарбніцы пашкоджаная, тэрмінова патрабуецца рамонт.
|
||||
health.result.severityTip.crit=Стан: Крытычны\nСтруктура скарбніцы пашкоджаная, выяўлена страта даных.
|
||||
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
|
||||
health.fix.fixBtn=Выправіць
|
||||
health.fix.successTip=Паспяхова выпраўлена
|
||||
@@ -227,7 +270,16 @@ preferences.interface.showMinimizeButton=Паказаць кнопку згор
|
||||
preferences.interface.showTrayIcon=Паказваць іконку на інфармацыйнай панэлі (спатрэбіцца перазапуск)
|
||||
## Volume
|
||||
preferences.volume=Віртуальны дыск
|
||||
preferences.volume.type=Тып тому (спатрэбіцца перазапуск)
|
||||
preferences.volume.type.automatic=Аўтаматычна
|
||||
preferences.volume.docsTooltip=Адчыні дакумэнтацыю, каб даведацца больш пра розныя тыпы тому.
|
||||
preferences.volume.tcp.port=Порт TCP
|
||||
preferences.volume.supportedFeatures=Абраны тып тому падтрымлівае наступныя функцыі:
|
||||
preferences.volume.feature.mountAuto=Аўтаматычны выбар пункту мантажавання
|
||||
preferences.volume.feature.mountToDir=Карыстальніцкая тэчка як пункт мантажавання
|
||||
preferences.volume.feature.mountToDriveLetter=Літара тому як пункт мантажавання
|
||||
preferences.volume.feature.mountFlags=Карыстальніцкія опцыі мантажавання
|
||||
preferences.volume.feature.readOnly=Мантажаванне толькі для чытання
|
||||
## Updates
|
||||
preferences.updates=Абнаўленні
|
||||
preferences.updates.currentVersion=Бягучая версія: %s
|
||||
@@ -236,7 +288,10 @@ preferences.updates.checkNowBtn=Праверыць зараз
|
||||
preferences.updates.updateAvailable=Даступна абнаўленне да версіі %s
|
||||
## Contribution
|
||||
preferences.contribute=Падтрымай нас
|
||||
preferences.contribute.registeredFor=Сэртыфікат ахвяравальніка зарэгістраваны на %s
|
||||
preferences.contribute.noCertificate=Ахвяруй на Cryptomator ды атрымай сэртыфікат ахвяравальніка. Гэта штось падобнае на ліцэнзійны ключ, але для цудоўных людзей, якія карыстаюцца бясплатнай праграмай. ;-)
|
||||
preferences.contribute.getCertificate=Яшчэ ня маеш такога? Даведайся, як атрымаць.
|
||||
preferences.contribute.promptText=Устаў код сэртыфікату ахвяравальніка сюды
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -244,9 +299,10 @@ preferences.about=Пра нас
|
||||
|
||||
# Vault Statistics
|
||||
stats.title=Статыстыкі для %s
|
||||
stats.cacheHitRate=Трапнасць кэшу
|
||||
## Read
|
||||
stats.read.throughput.idle=Чытанне: -
|
||||
stats.read.throughput.kibs=Чытанне: %.2f КіБ/с
|
||||
stats.read.throughput.idle=Чытанне: нічога
|
||||
stats.read.throughput.kibs=Чытанне: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Чытанне: %.2f МіБ/с
|
||||
stats.read.total.data.none=Прачытана: -
|
||||
stats.read.total.data.kib=Прачытана: %.1f КіБ
|
||||
@@ -256,9 +312,9 @@ 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
|
||||
stats.read.accessCount=Прачытана агулам: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Чытанне: -
|
||||
stats.write.throughput.idle=Пісанне: нічога
|
||||
stats.write.throughput.kibs=Пісанне: %.2f КіБ/с
|
||||
stats.write.throughput.mibs=Пісанне: %.2f МіБ/с
|
||||
stats.write.total.data.none=Напісана: -
|
||||
@@ -269,9 +325,11 @@ 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
|
||||
stats.write.accessCount=Запісана агулам: %d
|
||||
|
||||
## Accesses
|
||||
stats.access.current=Доступ: %d
|
||||
stats.access.total=Доступы агулам: %d
|
||||
|
||||
|
||||
# Main Window
|
||||
@@ -301,6 +359,7 @@ main.vaultDetail.passwordSavedInKeychain=Пароль захаваны
|
||||
main.vaultDetail.unlockedStatus=РАЗАМКНЁНА
|
||||
main.vaultDetail.accessLocation=Змест тваёй скарбніцы даступны тут:
|
||||
main.vaultDetail.revealBtn=Паказаць дыск
|
||||
main.vaultDetail.copyUri=Скапіяваць URI
|
||||
main.vaultDetail.lockBtn=Замкнуць
|
||||
main.vaultDetail.bytesPerSecondRead=Чытанне:
|
||||
main.vaultDetail.bytesPerSecondWritten=Пісанне:
|
||||
@@ -308,6 +367,10 @@ main.vaultDetail.throughput.idle=бяздзейны
|
||||
main.vaultDetail.throughput.kbps=%.1f КіБ/с
|
||||
main.vaultDetail.throughput.mbps=%.1f МіБ/с
|
||||
main.vaultDetail.stats=Статыстыка скарбніцы
|
||||
main.vaultDetail.locateEncryptedFileBtn=Знайсці зашыфраваны файл
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Абяры файл у тваёй скрабніцы, каб знайсці ягоны зашыфраваны адпаведнік
|
||||
main.vaultDetail.encryptedPathsCopied=Шлях скапіяваны ў буфер абмену!
|
||||
main.vaultDetail.filePickerTitle=Абраць файл унутры скарбніцы
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator ня змог знайсці скарбніцу па гэтай сцежцы.
|
||||
main.vaultDetail.missing.recheck=Пераправерыць
|
||||
@@ -341,20 +404,26 @@ vaultOptions.general.actionAfterUnlock=Пасля паспяховага раз
|
||||
vaultOptions.general.actionAfterUnlock.ignore=Нічога не рабі
|
||||
vaultOptions.general.actionAfterUnlock.reveal=Паказаць дыск
|
||||
vaultOptions.general.actionAfterUnlock.ask=Запытацца
|
||||
vaultOptions.general.startHealthCheckBtn=Пачаць тэст на цэласнасць
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Мантажаванне
|
||||
vaultOptions.mount.info=Опцыі залежаць ад абранага тыпу тому.
|
||||
vaultOptions.mount.linkToPreferences=Адчыніць налады віртуальнага дыску
|
||||
vaultOptions.mount.readonly=Толькі для чытання
|
||||
vaultOptions.mount.customMountFlags=Карыстальніцкія опцыі мантажавання
|
||||
vaultOptions.mount.winDriveLetterOccupied=занята
|
||||
vaultOptions.mount.mountPoint=Пункт мантажавання
|
||||
vaultOptions.mount.mountPoint.auto=Аўтаматычны выбар пасуючага месцазнаходжання
|
||||
vaultOptions.mount.mountPoint.driveLetter=Назначыць літару для дыску
|
||||
vaultOptions.mount.mountPoint.custom=Выкарыстаць абраную тэчку
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Абраць…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Абраць тэчку
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Пароль
|
||||
vaultOptions.masterkey.changePasswordBtn=Змяніць пароль
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Забыцца на захаваны пароль
|
||||
vaultOptions.masterkey.recoveryKeyExplanation=Ключ аднаўлення – гэта адзіная мажлівасць аднавіць доступ да тваёй скарбніцы, калі ты згубіш пароль.
|
||||
vaultOptions.masterkey.showRecoveryKeyBtn=Паказаць ключ аднаўлення
|
||||
vaultOptions.masterkey.recoverPasswordBtn=Скінуць пароль
|
||||
|
||||
@@ -370,7 +439,9 @@ recoveryKey.display.StorageHints=Захоўвай іх у бяспечным м
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Скінуць пароль
|
||||
recoveryKey.recover.prompt=Увядзі свой ключ аднаўлення для "%s":
|
||||
recoveryKey.recover.validKey=Гэта валідны ключ аднаўлення
|
||||
recoveryKey.recover.correctKey=Гэта валідны ключ аднаўлення
|
||||
recoveryKey.recover.wrongKey=Гэты ключ аднаўлення належыць іншай скарбніцы
|
||||
recoveryKey.recover.invalidKey=Несапраўдны ключ аднаўлення
|
||||
recoveryKey.printout.heading=Ключ аднаўлення Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Скінуць
|
||||
@@ -398,4 +469,5 @@ quit.lockAndQuitBtn=Замкнуць ды вайсці
|
||||
|
||||
# Forced Quit
|
||||
quit.forced.message=Некаторыя скарбніцы не магчыма замкнуць
|
||||
quit.forced.description=Замыканне скарбніц было заблакавана праз дзеючыя аперацыі альбо праз адчыненыя файлы. Ты можаш прымусова замкнуць скарбніцы, але гэта можа прывесці да страты незахаваных даных.
|
||||
quit.forced.forceAndQuitBtn=Прымусіць і выйсці
|
||||
@@ -97,7 +97,6 @@ hub.register.registerBtn=নিশ্চিত করুন
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
||||
|
||||
@@ -113,7 +113,6 @@ hub.register.registerBtn=Potvrdi
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.description=Zaključavanje "%s" blokirano je operacijama na čekanju ili otvorenim datotekama. Možete prisilno zaključati ovaj sef, međutim prekid U / I-a može rezultirati gubitkom nespremljenih podataka.
|
||||
@@ -183,27 +182,21 @@ stats.title=Statistika za %s
|
||||
stats.cacheHitRate=Brzina učitavanja u predmemoriju
|
||||
## Read
|
||||
stats.read.throughput.idle=Čitaj: U pripravnosti
|
||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||
stats.read.total.data.none=Pročitano podataka: -
|
||||
stats.read.total.data.kib=Pročitano podataka: %.1f kiB
|
||||
stats.read.total.data.mib=Pročitano podataka: %.1f MiB
|
||||
stats.read.total.data.gib=Pročitano podataka: %.1f GiB
|
||||
stats.decr.total.data.none=Otključani podaci: -
|
||||
stats.decr.total.data.kib=Otključano podataka: %.1f kiB
|
||||
stats.decr.total.data.mib=Otključano podataka: %.1f MiB
|
||||
stats.decr.total.data.gib=Otključano podataka: %.1f GiB
|
||||
stats.read.accessCount=Ukupno pročitano: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Pisanje: U pripravnosti
|
||||
stats.write.throughput.kibs=Upisano: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Upisano: %.2f MiB/s
|
||||
stats.write.total.data.none=Podaci su upisani:-
|
||||
stats.write.total.data.kib=Upisano podataka: %.1f kiB
|
||||
stats.write.total.data.mib=Upisano podataka: %.1f MiB
|
||||
stats.write.total.data.gib=Upisano podataka: %.1f GiB
|
||||
stats.encr.total.data.none=Otključano podataka: -
|
||||
stats.encr.total.data.kib=Otključano podataka: %.1f kiB
|
||||
stats.encr.total.data.mib=Otključano podataka: %.1f MiB
|
||||
stats.encr.total.data.gib=Otključano podataka: %.1f GiB
|
||||
stats.write.accessCount=Ukupno upisano: %d
|
||||
@@ -243,7 +236,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
||||
main.vaultDetail.bytesPerSecondRead=Čitaj:
|
||||
main.vaultDetail.bytesPerSecondWritten=Piši:
|
||||
main.vaultDetail.throughput.idle=u stanju mirovanja
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistika sefa
|
||||
### Missing
|
||||
@@ -301,7 +293,7 @@ recoveryKey.display.StorageHints=Pohranite ga negdje vrlo sigurno, npr.:\n • S
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s":
|
||||
recoveryKey.recover.validKey=Ključ za oporavak je ispravan
|
||||
recoveryKey.recover.correctKey=Ključ za oporavak je ispravan
|
||||
recoveryKey.printout.heading=Cryptomator Ključ za oporavak za \n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -73,7 +73,7 @@ addvault.new.readme.storageLocation.4=• modifiqueu cap fitxer dins d'aquest d
|
||||
addvault.new.readme.storageLocation.5=• enganxeu cap fitxer a xifrar en aquest directori.
|
||||
addvault.new.readme.storageLocation.6=Si voleu xifrar fitxers i veure el contigut de la caixa forta, feu el següent:
|
||||
addvault.new.readme.storageLocation.7=1. Afegiu aquesta caixa forta a Cryptomator.
|
||||
addvault.new.readme.storageLocation.8=2. Desbloquejeu la caixa forta enCryptomator.
|
||||
addvault.new.readme.storageLocation.8=2. Desbloqueu la caixa forta a Cryptomator.
|
||||
addvault.new.readme.storageLocation.9=3. Feu click damunt del botó "Mostra" per obrir la ubicació d'accès.
|
||||
addvault.new.readme.storageLocation.10=Si us cal ajuda, llegiu la documentació: %s
|
||||
addvault.new.readme.accessLocation.fileName=BENVINGUTS.rtf
|
||||
@@ -123,6 +123,10 @@ unlock.success.description=S'ha desblocat %s correctament! Podeu accedir a la vo
|
||||
unlock.success.rememberChoice=Recorda l'elecció. No ho tornis a mostrar.
|
||||
unlock.success.revealBtn=Mostra la unitat
|
||||
## Failure
|
||||
unlock.error.customPath.message=No es pot muntar la caixa forta en la ruta personalitzada
|
||||
unlock.error.customPath.description.notSupported=Si vol continuar fent servir una ruta personalitzada, vagi si us plau a Preferències i seleccioni un tipus de volum que la suporti. Altrament, vagi a les opcions de la caixa forta i escolli un punt de muntatge suportat.
|
||||
unlock.error.customPath.description.notExists=La ruta de muntatge personalitzada no existeix. Creï-la o canviï-la en les opcions de la caixa forta.
|
||||
unlock.error.customPath.description.generic=Ha seleccionat una ruta personalitzada on muntar la caixa forta, però ha fallat amb aquest missatge: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=No es pot accedir a la clau del dispositiu
|
||||
hub.noKeychain.description=Per poder desblocar caixes fortes del Hub es requereix la clau d'un dispositiu, que s'emmagatzema de forma segura en un clauer. Per continuar, habiliti "%s" i seleccioni un clauer en les Preferències.
|
||||
@@ -133,19 +137,25 @@ hub.auth.description=Hauríeu de ser redirigits a la pàgina d'accés.
|
||||
hub.auth.loginLink=No heu estat redirigit? Feu clic aquí per a obrir-la.
|
||||
### Receive Key
|
||||
hub.receive.message=S'està processant la resposta…
|
||||
hub.receive.description=Cryptomator està rebent i processant la resposta del Hub. Espereu, si us plau.
|
||||
### Register Device
|
||||
hub.register.message=Cal un nom de dispositiu
|
||||
hub.register.description=Sembla que és el primer accés al Hub des d'aquest dispositiu. Per identificar-lo i poder autoritzar l'accés necessiteu anomenar aquest dispositiu.
|
||||
hub.register.nameLabel=Nom del dispositiu
|
||||
hub.register.occupiedMsg=El nom ja està en ús
|
||||
hub.register.registerBtn=Confirma
|
||||
### Registration Success
|
||||
hub.registerSuccess.message=Unitat anomenada
|
||||
hub.registerSuccess.description=Per a accedir a la caixa forta, el vostre dispositiu ha de ser autoritzat pel propietari de la caixa.
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=Error al nombrar el dispositiu
|
||||
hub.registerFailed.description=S'ha produït un error en el procés de nomenament. Per més detalls vegeu el registre de l'aplicació.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=Accés denegat
|
||||
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
||||
### License Exceeded
|
||||
|
||||
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.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -161,6 +171,11 @@ lock.fail.description=La caixa forta "%s" no s'ha pogut blocar. Assegureu-vos qu
|
||||
migration.title=Actualitza la caixa forta
|
||||
## Start
|
||||
migration.start.header=Actualitza la caixa forta
|
||||
migration.start.text=Per obrir la caixa forta "%s" en aquesta nova versió de Cryptomator, la caixa forta necessita actualitzar-se al nou format. Abans de fer-ho, cal que sabeu el següent:
|
||||
migration.start.remarkUndone=Aquesta actualització no pot ser desfeta.
|
||||
migration.start.remarkVersions=Versions antigues de Cryptomator no podran obrir la caixa forta actualitzada.
|
||||
migration.start.remarkCanRun=Assegureu-vos que tots els dispositius des dels quals accediu a la caixa forta poden executar aquesta versió de Cryptomator.
|
||||
migration.start.remarkSynced=Assegureu-vos que la caixa forta està completament sincronitzada en aquest i altres dispositius abans d'actualitzar-la.
|
||||
migration.start.confirm=He llegit i entès la informació anterior
|
||||
## Run
|
||||
migration.run.enterPassword=Introduïu la contrasenya per a "%s"
|
||||
@@ -218,6 +233,10 @@ health.result.severityFilter.good=Bé
|
||||
health.result.severityFilter.info=Info
|
||||
health.result.severityFilter.warn=Avís
|
||||
health.result.severityFilter.crit=Crític
|
||||
health.result.severityTip.good=Gravetat: Bona.\nEstructura de la caixa forta correcta.
|
||||
health.result.severityTip.info=Gravetat: Informació\nCaixa forta intacta, es recomana però arreglar-la.
|
||||
health.result.severityTip.warn=Gravetat: Avís\nCaixa forta corrompuda, és altament recomanable arreglar-la.
|
||||
health.result.severityTip.crit=Gravetat: Crítica\nCaixa forta corrompuda, s'ha determinat que s'han perdut dades.
|
||||
health.result.fixStateFilter.all=Estat de reparació - Tot
|
||||
health.result.fixStateFilter.fixable=Es pot arreglar
|
||||
health.result.fixStateFilter.notFixable=No es pot arreglar
|
||||
@@ -255,7 +274,16 @@ preferences.interface.showMinimizeButton=Mostra el botó 'minimitzar'
|
||||
preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
||||
## Volume
|
||||
preferences.volume=Unitat virtual
|
||||
preferences.volume.type=Tipus de volum (requereix reiniciar)
|
||||
preferences.volume.type.automatic=Automàtic
|
||||
preferences.volume.docsTooltip=Obre la documentació per aprendre més sobre els diferents tipus de volums.
|
||||
preferences.volume.tcp.port=Port TCP
|
||||
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.mountToDir=Directori personalitzat com a punt de muntatge
|
||||
preferences.volume.feature.mountToDriveLetter=Lletra de la unitat com a punt de muntatge
|
||||
preferences.volume.feature.mountFlags=Opcions de muntatge personalitzades
|
||||
preferences.volume.feature.readOnly=Muntar de només lectura
|
||||
## Updates
|
||||
preferences.updates=Actualitzacions
|
||||
preferences.updates.currentVersion=Versió actual: %s
|
||||
@@ -278,27 +306,27 @@ stats.title=Estadístiques per a %s
|
||||
stats.cacheHitRate=Relació d'encerts de la memòria cau
|
||||
## Read
|
||||
stats.read.throughput.idle=Llegit: inactiu
|
||||
stats.read.throughput.kibs=Llegit: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lectura: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Llegit: %.2f MiB/s
|
||||
stats.read.total.data.none=Dades llegides: -
|
||||
stats.read.total.data.kib=Dades llegides: %.1f kiB
|
||||
stats.read.total.data.kib=Dades llegides: %.1f KiB
|
||||
stats.read.total.data.mib=Dades llegides: %.1f MiB
|
||||
stats.read.total.data.gib=Dades llegides: %.1f GiB
|
||||
stats.decr.total.data.none=Dades desxifrades: -
|
||||
stats.decr.total.data.kib=Dades desxifrades: %.1f kiB
|
||||
stats.decr.total.data.kib=Dades desxifrades: %.1f KiB
|
||||
stats.decr.total.data.mib=Dades desxifrades: %.1f MiB
|
||||
stats.decr.total.data.gib=Dades desxifrades: %.1f GiB
|
||||
stats.read.accessCount=Lectures en total: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Escriu: inactiu
|
||||
stats.write.throughput.kibs=Escriu: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Escriptura: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Escriu: %.2f MiB/s
|
||||
stats.write.total.data.none=Dades escrites
|
||||
stats.write.total.data.kib=Dades escrites: %.1f kiB
|
||||
stats.write.total.data.kib=Dades escrites: %.1f KiB
|
||||
stats.write.total.data.mib=Dades escrites: %.1f MiB
|
||||
stats.write.total.data.gib=Dades escrites: %.1f GiB
|
||||
stats.encr.total.data.none=Dades xifrades: -
|
||||
stats.encr.total.data.kib=Dades xifrades: %.1f kiB
|
||||
stats.encr.total.data.kib=Dades xifrades: %.1f KiB
|
||||
stats.encr.total.data.mib=Dades xifrades: %.1f MiB
|
||||
stats.encr.total.data.gib=Dades xifrades: %.1f GiB
|
||||
stats.write.accessCount=Total escrits: %d
|
||||
@@ -336,15 +364,20 @@ main.vaultDetail.passwordSavedInKeychain=Contrasenya desada
|
||||
main.vaultDetail.unlockedStatus=DESBLOQUEJADA
|
||||
main.vaultDetail.accessLocation=Els continguts de la vostra caixa forta són accessibles aquí:
|
||||
main.vaultDetail.revealBtn=Mostra la unitat
|
||||
main.vaultDetail.copyUri=Copiar URI
|
||||
main.vaultDetail.lockBtn=Bloqueja
|
||||
main.vaultDetail.bytesPerSecondRead=Lectura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Escriu:
|
||||
main.vaultDetail.throughput.idle=inactiu
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Estadístiques de la caixa forta
|
||||
main.vaultDetail.locateEncryptedFileBtn=Trobar fitxer xifrat
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Esculli un fitxer de la caixa forta per trobar el seu homòleg xifrat
|
||||
main.vaultDetail.encryptedPathsCopied=Rutes copiades al porta-retalls!
|
||||
main.vaultDetail.filePickerTitle=Seleccioni un fitxer dins la caixa forta
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator no ha trobat una caixa forta en aquest camí.
|
||||
main.vaultDetail.missing.info=Cryptomator no ha trobat una caixa forta en aquesta ruta.
|
||||
main.vaultDetail.missing.recheck=Torna a comprovar
|
||||
main.vaultDetail.missing.remove=Eliminar de la llista de la caixa forta…
|
||||
main.vaultDetail.missing.changeLocation=Canvia la localització de la caixa forta…
|
||||
@@ -381,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Inicia la comprovació
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Muntatge
|
||||
vaultOptions.mount.info=Les opcions depenen del tipus de volum escollit.
|
||||
vaultOptions.mount.linkToPreferences=Obre les preferències del disc virtual
|
||||
vaultOptions.mount.readonly=Només lectura
|
||||
vaultOptions.mount.customMountFlags=Senyaladors de muntatge personalitzats
|
||||
vaultOptions.mount.winDriveLetterOccupied=ocupat
|
||||
vaultOptions.mount.mountPoint=Punt de muntatge
|
||||
vaultOptions.mount.mountPoint.auto=Tria automàticament una ubicació adequada
|
||||
vaultOptions.mount.mountPoint.driveLetter=Utilitza la lletra de la unitat assignada
|
||||
vaultOptions.mount.mountPoint.custom=Faci servir el directori escollit
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Trieu…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Triï un directori
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Contrasenya
|
||||
vaultOptions.masterkey.changePasswordBtn=Canvi de contrasenya
|
||||
@@ -408,7 +445,9 @@ recoveryKey.display.StorageHints=Conserveu-la en un lloc molt segur. P. ex.:\n
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Canviar contrasenya
|
||||
recoveryKey.recover.prompt=Introduïu la vostra clau de recuperació de "%s":
|
||||
recoveryKey.recover.validKey=La clau de recuperació és vàlida
|
||||
recoveryKey.recover.correctKey=La clau de recuperació és vàlida
|
||||
recoveryKey.recover.wrongKey=Aquesta clau de recuperació pertany a una caixa forta diferent
|
||||
recoveryKey.recover.invalidKey=Aquesta clau de recuperació no és vàlida
|
||||
recoveryKey.printout.heading=Clau de recuperació de Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Reinicia
|
||||
|
||||
@@ -142,9 +142,6 @@ hub.registerFailed.message=Pojmenování zařízení se nezdařilo
|
||||
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.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licence byla překročena
|
||||
hub.licenseExceeded.description=Cryptomator Hub poskytl přístup více uživatelům, než jsou jeho licenční povolení. Obraťte se na správce Hubu pro aktualizaci licence nebo správce trezoru pro odstranění uživatelů z trezoru.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -275,27 +272,21 @@ stats.title=Statistika pro %s
|
||||
stats.cacheHitRate=Rychlost dosažené mezipaměti
|
||||
## Read
|
||||
stats.read.throughput.idle=Čtení: nečinné
|
||||
stats.read.throughput.kibs=Čtení: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čtení: %.2f MiB/s
|
||||
stats.read.total.data.none=Přečteno: -
|
||||
stats.read.total.data.kib=Přečteno: %.1f kiB
|
||||
stats.read.total.data.mib=Přečteno: %.1f MiB
|
||||
stats.read.total.data.gib=Přečteno: %.1f GiB
|
||||
stats.decr.total.data.none=Dešifrováno: -
|
||||
stats.decr.total.data.kib=Dešifrováno: %.1f kiB
|
||||
stats.decr.total.data.mib=Dešifrováno: %.1f MiB
|
||||
stats.decr.total.data.gib=Dešifrováno: %.1f GiB
|
||||
stats.read.accessCount=Celkem přečteno: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Zápis: nečinný
|
||||
stats.write.throughput.kibs=Zápis: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Zápis: %.2f MiB/s
|
||||
stats.write.total.data.none=Zapsaná data: -
|
||||
stats.write.total.data.kib=Zapsáno: %.1f kiB
|
||||
stats.write.total.data.mib=Zapsáno: %.1f MiB
|
||||
stats.write.total.data.gib=Zapsáno: %.1f GiB
|
||||
stats.encr.total.data.none=Zašifrováno: -
|
||||
stats.encr.total.data.kib=Zašifrováno: %.1f kiB
|
||||
stats.encr.total.data.mib=Zašifrováno: %.1f MiB
|
||||
stats.encr.total.data.gib=Zašifrováno: %.1f GiB
|
||||
stats.write.accessCount=Celkem zapsáno: %d
|
||||
@@ -337,7 +328,6 @@ main.vaultDetail.lockBtn=Zamknout
|
||||
main.vaultDetail.bytesPerSecondRead=Přečteno:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zapsáno:
|
||||
main.vaultDetail.throughput.idle=nečinný
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistiky trezoru
|
||||
### Missing
|
||||
@@ -405,7 +395,7 @@ recoveryKey.display.StorageHints=Uchovejte ho někde velmi bezpečně, např.\n
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Resetovat heslo
|
||||
recoveryKey.recover.prompt=Zadejte váš obnovovací klíč pro "%s":
|
||||
recoveryKey.recover.validKey=Toto je platný obnovovací klíč
|
||||
recoveryKey.recover.correctKey=Toto je platný obnovovací klíč
|
||||
recoveryKey.printout.heading=Obnovovací klíč Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetovat
|
||||
|
||||
@@ -123,6 +123,10 @@ unlock.success.description=Indholdet i boksen "%s" er nu tilgængeligt der hvor
|
||||
unlock.success.rememberChoice=Husk mit valg. Spørg ikke igen
|
||||
unlock.success.revealBtn=Vis drev
|
||||
## Failure
|
||||
unlock.error.customPath.message=Kan ikke montere boks til brugerdefineret sti
|
||||
unlock.error.customPath.description.notSupported=Hvis du ønsker at fortsætte med at bruge den brugerdefinerede sti, skal du gå til præferencer og vælge en type drev der understøtter det. Hvis ikke, skal du gå til boksens indstillinger og vælge et understøttet monteringspunkt.
|
||||
unlock.error.customPath.description.notExists=Den brugerdefinerede monteringssti eksisterer ikke. Opret den enten i dit lokale filsystem eller skift monteringssti i boksens indstillinger.
|
||||
unlock.error.customPath.description.generic=Du har valgt en brugerdefineret monteringssti til denne boks, men det mislykkedes med beskeden: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Kan ikke tilgå enhedsnøgle
|
||||
hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne.
|
||||
@@ -150,9 +154,6 @@ hub.registerFailed.description=Der opstod en fejl i navngivnings-processen. Kig
|
||||
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.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licens overskredet
|
||||
hub.licenseExceeded.description=Cryptomator Hub har givet adgang til flere brugere end licensen tillader. Kontakt venligst din Hub administrator for at opgradere din licens eller en boks administrator for at fjerne brugere fra bokse.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -251,7 +252,7 @@ preferences.title=Præferencer
|
||||
preferences.general=Generelt
|
||||
preferences.general.startHidden=Skjul vinduet når Cryptomator starter
|
||||
preferences.general.autoCloseVaults=Lås åbne bokse automatisk, når programmet afsluttes
|
||||
preferences.general.debugLogging=Aktiver fejllogning
|
||||
preferences.general.debugLogging=Aktivér fejllogning
|
||||
preferences.general.debugDirectory=Vis logfiler
|
||||
preferences.general.autoStart=Start Cryptomator automatisk ved opstart
|
||||
preferences.general.keychainBackend=Gem adgangskoder med
|
||||
@@ -271,7 +272,15 @@ preferences.interface.showMinimizeButton=Vis knap til minimering
|
||||
preferences.interface.showTrayIcon=Vis ikon i system-bakken (kræver genstart)
|
||||
## Volume
|
||||
preferences.volume=Virtuelt drev
|
||||
preferences.volume.type=Drev type (kræver genstart)
|
||||
preferences.volume.type.automatic=Automatisk
|
||||
preferences.volume.tcp.port=TCP port
|
||||
preferences.volume.supportedFeatures=Den valgte type drev understøtter følgende funktioner:
|
||||
preferences.volume.feature.mountAuto=Automatisk valg af monteringspunkt
|
||||
preferences.volume.feature.mountToDir=Brugerdefineret mappe som monteringspunkt
|
||||
preferences.volume.feature.mountToDriveLetter=Enhedsbogstav som monteringspunkt
|
||||
preferences.volume.feature.mountFlags=Brugerdefinerede monteringsindstillinger
|
||||
preferences.volume.feature.readOnly=Skrivebeskyttet montering
|
||||
## Updates
|
||||
preferences.updates=Opdateringer
|
||||
preferences.updates.currentVersion=Nuværende version: %s
|
||||
@@ -294,27 +303,21 @@ stats.title=Statistik for %s
|
||||
stats.cacheHitRate=Cache effektivitet
|
||||
## Read
|
||||
stats.read.throughput.idle=Læser: afventer
|
||||
stats.read.throughput.kibs=Læser: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Læser: %.2f MiB/s
|
||||
stats.read.total.data.none=Data læst: -
|
||||
stats.read.total.data.kib=Data læst: %.1f kiB
|
||||
stats.read.total.data.mib=Data læst: %.1f MiB
|
||||
stats.read.total.data.gib=Data læst: %.1f GiB
|
||||
stats.decr.total.data.none=Data dekrypteret: -
|
||||
stats.decr.total.data.kib=Data dekrypteret: %.1f kiB
|
||||
stats.decr.total.data.mib=Data dekrypteret: %.1f MiB
|
||||
stats.decr.total.data.gib=Data dekrypteret: %.1f GiB
|
||||
stats.read.accessCount=Totalt antal læsninger: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Skriver: afventer
|
||||
stats.write.throughput.kibs=Skriver: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Skriver: %.2f MiB/s
|
||||
stats.write.total.data.none=Data skrevet: -
|
||||
stats.write.total.data.kib=Data skrevet: %.1f kiB
|
||||
stats.write.total.data.mib=Data skrevet: %.1f MiB
|
||||
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
||||
stats.encr.total.data.none=Data krypteret: -
|
||||
stats.encr.total.data.kib=Data krypteret: %.1f kiB
|
||||
stats.encr.total.data.mib=Data krypteret: %.1f MiB
|
||||
stats.encr.total.data.gib=Data krypteret: %.1f GiB
|
||||
stats.write.accessCount=Totalt antal skrivninger: %d
|
||||
@@ -352,13 +355,17 @@ main.vaultDetail.passwordSavedInKeychain=Adgangskode gemt
|
||||
main.vaultDetail.unlockedStatus=LÅST OP
|
||||
main.vaultDetail.accessLocation=Boksens indhold er tilgængeligt her:
|
||||
main.vaultDetail.revealBtn=Vis drev
|
||||
main.vaultDetail.copyUri=Kopiér URI
|
||||
main.vaultDetail.lockBtn=Lås
|
||||
main.vaultDetail.bytesPerSecondRead=Læser:
|
||||
main.vaultDetail.bytesPerSecondWritten=Skriver:
|
||||
main.vaultDetail.throughput.idle=afventer
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Boks statistik
|
||||
main.vaultDetail.locateEncryptedFileBtn=Find Krypteret Fil
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Vælg en fil fra din boks for at finde dens krypterede modpart
|
||||
main.vaultDetail.encryptedPathsCopied=Stier kopieret!
|
||||
main.vaultDetail.filePickerTitle=Vælg fil inde i boks
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator kunne ikke finde en boks på denne sti.
|
||||
main.vaultDetail.missing.recheck=Kontrollér igen
|
||||
@@ -373,10 +380,10 @@ main.vaultDetail.error.reload=Genindlæs
|
||||
main.vaultDetail.error.windowTitle=Fejl ved indlæsning af boks
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=Sådan krypteres filer
|
||||
wrongFileAlert.title=Sådan krypterer du filer
|
||||
wrongFileAlert.message=Forsøgte du at kryptere disse filer?
|
||||
wrongFileAlert.description=For kryptering af filer, skal du bruge det drev som Cryptomator har lavet i din stifinder.
|
||||
wrongFileAlert.instruction.0=For at kryptere filer, gør følgende:
|
||||
wrongFileAlert.description=Til dette formål opretter Cryptomator et drev i din filhåndtering.
|
||||
wrongFileAlert.instruction.0=Følg disse trin for at kryptere filer:
|
||||
wrongFileAlert.instruction.1=1. Lås din boks op.
|
||||
wrongFileAlert.instruction.2=2. Klik på "Vis drev" for at åbne drevet i din stifinder.
|
||||
wrongFileAlert.instruction.3=3. Tilføj filer til drevet.
|
||||
@@ -397,13 +404,17 @@ vaultOptions.general.startHealthCheckBtn=Start sunhedstjek
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Montering
|
||||
vaultOptions.mount.info=Valgmulighederne afhænger af den valgte type drev.
|
||||
vaultOptions.mount.linkToPreferences=Åbn virtuelle drev præferencer
|
||||
vaultOptions.mount.readonly=Skrivebeskyttet
|
||||
vaultOptions.mount.customMountFlags=Brugerdefinerede monterings-flag
|
||||
vaultOptions.mount.winDriveLetterOccupied=optaget
|
||||
vaultOptions.mount.mountPoint=Monterings-sted
|
||||
vaultOptions.mount.mountPoint.auto=Vælg automatisk en passende placering
|
||||
vaultOptions.mount.mountPoint.driveLetter=Brug et ledigt drevbogstav
|
||||
vaultOptions.mount.mountPoint.custom=Brug en valgt mappe
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Vælg…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Vælg en mappe
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Adgangskode
|
||||
vaultOptions.masterkey.changePasswordBtn=Skift adgangskode
|
||||
@@ -424,7 +435,7 @@ recoveryKey.display.StorageHints=Opbevar den et meget sikkert sted, som fx:\n
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Nulstil adgangskode
|
||||
recoveryKey.recover.prompt=Indtast din gendannelsesnøgle for "%s":
|
||||
recoveryKey.recover.validKey=Dette er en gyldig gendannelsesnøgle
|
||||
recoveryKey.recover.correctKey=Dette er en gyldig gendannelsesnøgle
|
||||
recoveryKey.printout.heading=Cryptomator gendannelsesnøgle\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Nulstil
|
||||
@@ -437,11 +448,11 @@ newPassword.promptText=Skriv en ny adgangskode
|
||||
newPassword.reenterPassword=Bekræft ny adgangskode
|
||||
newPassword.passwordsMatch=Adgangskoderne er ens!
|
||||
newPassword.passwordsDoNotMatch=Adgangskoder stemmer ikke overens
|
||||
passwordStrength.messageLabel.tooShort=Angiv mindst %d tegn
|
||||
passwordStrength.messageLabel.0=Meget dårlig
|
||||
passwordStrength.messageLabel.1=Dårlig
|
||||
passwordStrength.messageLabel.tooShort=Brug mindst %d tegn
|
||||
passwordStrength.messageLabel.0=Meget svag
|
||||
passwordStrength.messageLabel.1=Svag
|
||||
passwordStrength.messageLabel.2=Rimelig
|
||||
passwordStrength.messageLabel.3=God
|
||||
passwordStrength.messageLabel.3=Stærk
|
||||
passwordStrength.messageLabel.4=Meget god
|
||||
|
||||
# Quit
|
||||
|
||||
@@ -123,9 +123,13 @@ unlock.success.description=Der Inhalt des Tresors „%s“ ist nun über dessen
|
||||
unlock.success.rememberChoice=Auswahl merken und nicht mehr fragen
|
||||
unlock.success.revealBtn=Laufwerk anzeigen
|
||||
## Failure
|
||||
unlock.error.customPath.message=Tresor kann nicht an benutzerdefinierten Pfad eingehängt werden
|
||||
unlock.error.customPath.description.notSupported=Wenn du den benutzerdefinierten Pfad weiter verwenden möchtest, gehe bitte in die Einstellungen und wähle einen Laufwerkstyp, der ihn unterstützt. Andernfalls gehe zu den Tresoroptionen und wähle einen unterstützten Einhängepunkt.
|
||||
unlock.error.customPath.description.notExists=Der benutzerdefinierte Einhängepfad existiert nicht. Erstelle ihn entweder in deinem lokalen Dateisystem oder ändere ihn in den Tresoreinstellungen.
|
||||
unlock.error.customPath.description.generic=Du hast einen benutzerdefinierten Einhängepfad für diesen Tresor ausgewählt, aber die Verwendung ist fehlgeschlagen. Fehlermeldung: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Zugriff auf Geräteschlüssel nicht möglich
|
||||
hub.noKeychain.description=Um Hub Tresore zu entsperren, wird ein Geräteschlüssel benötigt, der mit einem Schlüsselbund gesichert ist. Um fortzufahren, aktiviere “%s” und wähle einen Schlüsselbund in den Einstellungen.
|
||||
hub.noKeychain.description=Zum Entsperren von Hub-Tresoren wird ein Geräteschlüssel benötigt, der in einem Schlüsselbund gesichert ist. Um fortzufahren, aktiviere „%s“ und wähle in den Einstellungen einen Schlüsselbund.
|
||||
hub.noKeychain.openBtn=Einstellungen öffnen
|
||||
### Waiting
|
||||
hub.auth.message=Warten auf Authentifizierung …
|
||||
@@ -150,9 +154,8 @@ hub.registerFailed.description=Während der Namensvergabe wurde ein Fehler ausge
|
||||
hub.unauthorized.message=Zugriff verweigert
|
||||
hub.unauthorized.description=Dein Gerät wurde noch nicht für den Zugriff auf diesen Tresor autorisiert. Bitte den Tresorbesitzer, dein Gerät zu autorisieren.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Lizenz überschritten
|
||||
hub.licenseExceeded.description=Im Cryptomator Hub wurden mehr Benutzern Zugriff gewährt, als dessen Lizenz erlaubt. Bitte kontaktiere deinen Hub-Administrator für ein Lizenz-Upgrade oder einen Tresor-Administrator, um Benutzer aus Tresoren zu entfernen.
|
||||
|
||||
hub.invalidLicense.message=Hub-Lizenz ungültig
|
||||
hub.invalidLicense.description=Die Lizenz deiner Cryptomator-Hub-Instanz ist ungültig. Bitte informiere deinen Hub-Administrator, um die Lizenz zu aktualisieren oder zu erneuern.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -241,8 +244,8 @@ health.result.fixStateFilter.fixing=Wird repariert …
|
||||
health.result.fixStateFilter.fixed=Repariert
|
||||
health.result.fixStateFilter.fixFailed=Reparatur gescheitert
|
||||
## Fix Application
|
||||
health.fix.fixBtn=Beheben
|
||||
health.fix.successTip=Fehlerbehebung erfolgreich
|
||||
health.fix.fixBtn=Reparieren
|
||||
health.fix.successTip=Reparatur erfolgreich
|
||||
health.fix.failTip=Reparatur fehlgeschlagen, siehe Protokoll für Details
|
||||
|
||||
# Preferences
|
||||
@@ -270,8 +273,17 @@ 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)
|
||||
## Volume
|
||||
preferences.volume=Tresorlaufwerk
|
||||
preferences.volume=Virtuelles Laufwerk
|
||||
preferences.volume.type=Laufwerkstyp (Neustart erforderlich)
|
||||
preferences.volume.type.automatic=Automatisch
|
||||
preferences.volume.docsTooltip=Öffne die Dokumentation, um mehr über die verschiedenen Laufwerkstypen zu erfahren.
|
||||
preferences.volume.tcp.port=TCP-Port
|
||||
preferences.volume.supportedFeatures=Der gewählte Laufwerkstyp unterstützt folgende Funktionen:
|
||||
preferences.volume.feature.mountAuto=Automatische Einhängepunkt Auswahl
|
||||
preferences.volume.feature.mountToDir=Benutzerdefiniertes Verzeichnis als Einhängepunkt
|
||||
preferences.volume.feature.mountToDriveLetter=Laufwerkbuchstaben als Einhängepunkt
|
||||
preferences.volume.feature.mountFlags=Benutzerdefinierte Einhänge-Optionen
|
||||
preferences.volume.feature.readOnly=Schreibgeschütztes Einhängen
|
||||
## Updates
|
||||
preferences.updates=Updates
|
||||
preferences.updates.currentVersion=Aktuelle Version: %s
|
||||
@@ -294,27 +306,27 @@ stats.title=Statistiken für %s
|
||||
stats.cacheHitRate=Cache-Trefferrate
|
||||
## Read
|
||||
stats.read.throughput.idle=Leserate: inaktiv
|
||||
stats.read.throughput.kibs=Leserate: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Leserate: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Leserate: %.2f MiB/s
|
||||
stats.read.total.data.none=Gelesen: -
|
||||
stats.read.total.data.kib=Gelesen: %.1f kiB
|
||||
stats.read.total.data.kib=Gelesen: %.1f KiB
|
||||
stats.read.total.data.mib=Gelesen: %.1f MiB
|
||||
stats.read.total.data.gib=Gelesen: %.1f GiB
|
||||
stats.decr.total.data.none=Entschlüsselt: -
|
||||
stats.decr.total.data.kib=Entschlüsselt: %.1f kiB
|
||||
stats.decr.total.data.kib=Entschlüsselt: %.1f KiB
|
||||
stats.decr.total.data.mib=Entschlüsselt: %.1f MiB
|
||||
stats.decr.total.data.gib=Entschlüsselt: %.1f GiB
|
||||
stats.read.accessCount=Lesezugriffe: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Schreibrate: inaktiv
|
||||
stats.write.throughput.kibs=Schreibrate: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Schreibrate: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Schreibrate: %.2f MiB/s
|
||||
stats.write.total.data.none=Geschrieben: -
|
||||
stats.write.total.data.kib=Geschrieben: %.1f kiB
|
||||
stats.write.total.data.kib=Geschrieben: %.1f KiB
|
||||
stats.write.total.data.mib=Geschrieben: %.1f MiB
|
||||
stats.write.total.data.gib=Geschrieben: %.1f GiB
|
||||
stats.encr.total.data.none=Verschlüsselt: -
|
||||
stats.encr.total.data.kib=Verschlüsselt: %.1f kiB
|
||||
stats.encr.total.data.kib=Verschlüsselt: %.1f KiB
|
||||
stats.encr.total.data.mib=Verschlüsselt: %.1f MiB
|
||||
stats.encr.total.data.gib=Verschlüsselt: %.1f GiB
|
||||
stats.write.accessCount=Schreibzugriffe: %d
|
||||
@@ -352,13 +364,18 @@ main.vaultDetail.passwordSavedInKeychain=Passwort gespeichert
|
||||
main.vaultDetail.unlockedStatus=ENTSPERRT
|
||||
main.vaultDetail.accessLocation=Deine Tresorinhalte sind hier erreichbar:
|
||||
main.vaultDetail.revealBtn=Laufwerk anzeigen
|
||||
main.vaultDetail.copyUri=URI kopieren
|
||||
main.vaultDetail.lockBtn=Sperren
|
||||
main.vaultDetail.bytesPerSecondRead=Leserate:
|
||||
main.vaultDetail.bytesPerSecondWritten=Schreibrate:
|
||||
main.vaultDetail.throughput.idle=inaktiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Tresorstatistik
|
||||
main.vaultDetail.locateEncryptedFileBtn=Verschlüsselte Datei finden
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Wähle eine Datei aus deinem Tresor aus, um das verschlüsselte Gegenstück zu finden
|
||||
main.vaultDetail.encryptedPathsCopied=Pfade in Zwischenablage kopiert!
|
||||
main.vaultDetail.filePickerTitle=Datei im Tresor auswählen
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator konnte keinen Tresor mit diesem Pfad finden.
|
||||
main.vaultDetail.missing.recheck=Erneut prüfen
|
||||
@@ -397,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Integritätsprüfung starten
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Laufwerk
|
||||
vaultOptions.mount.info=Die Optionen hängen vom gewählten Laufwerkstyp ab.
|
||||
vaultOptions.mount.linkToPreferences=Einstellungen für virtuelles Laufwerk öffnen
|
||||
vaultOptions.mount.readonly=Schreibgeschützt
|
||||
vaultOptions.mount.customMountFlags=Benutzerdefinierte Einhänge-Optionen
|
||||
vaultOptions.mount.winDriveLetterOccupied=belegt
|
||||
vaultOptions.mount.mountPoint=Einhängepunkt
|
||||
vaultOptions.mount.mountPoint.auto=Automatisch einen geeigneten Ort auswählen
|
||||
vaultOptions.mount.mountPoint.driveLetter=Laufwerksbuchstaben zuweisen
|
||||
vaultOptions.mount.mountPoint.custom=Ausgewähltes Verzeichnis verwenden
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Durchsuchen …
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Verzeichnis wählen
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Passwort
|
||||
vaultOptions.masterkey.changePasswordBtn=Passwort ändern
|
||||
@@ -424,7 +445,9 @@ recoveryKey.display.StorageHints=Bewahre ihn möglichst sicher auf, z. B.\n •
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Passwort zurücksetzen
|
||||
recoveryKey.recover.prompt=Gib deinen Wiederherstellungsschlüssel für „%s“ ein:
|
||||
recoveryKey.recover.validKey=Dies ist ein gültiger Wiederherstellungsschlüssel
|
||||
recoveryKey.recover.correctKey=Dieser Wiederherstellungsschlüssel ist gültig
|
||||
recoveryKey.recover.wrongKey=Dieser Wiederherstellungsschlüssel gehört zu einem anderen Tresor
|
||||
recoveryKey.recover.invalidKey=Dieser Wiederherstellungsschlüssel ist ungültig
|
||||
recoveryKey.printout.heading=Cryptomator-Wiederherstellungsschlüssel\n„%s“\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Zurücksetzen
|
||||
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Παρουσιάστηκε σφάλμα στη δ
|
||||
hub.unauthorized.message=Δεν επιτρέπεται η πρόσβαση
|
||||
hub.unauthorized.description=Η συσκευή σας δεν έχει ακόμη εξουσιοδοτηθεί να έχει πρόσβαση σε αυτή την κρύπτη. Ζητήστε από τον κάτοχο της κρύπτης να την εξουσιοδοτήσει.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Υπέρβαση άδειας
|
||||
hub.licenseExceeded.description=Το Cryptomator Hub έχει δώσει πρόσβαση σε περισσότερους χρήστες από ότι επιτρέπει η άδειά του. Παρακαλούμε επικοινωνήστε με το Hub admin για να αναβαθμίσετε την άδεια ή έναν διαχειριστή κρύπτης για να αφαιρέσετε τους χρήστες από τις κρύπτες.
|
||||
|
||||
hub.invalidLicense.message=Μη έγκυρη Άδεια Hub
|
||||
hub.invalidLicense.description=Η συνεδρία σας στο Cryptomator Hub έχει μη έγκυρη άδεια χρήσης. Ενημερώστε έναν διαχειριστή του Hub για να αναβαθμίσει ή να ανανεώσει την άδεια χρήσης.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Εμφάνιση εικονιδίου tray (
|
||||
preferences.volume=Εικονικός δίσκος
|
||||
preferences.volume.type=Τύπος Τόμου (απαιτείται επανεκκίνηση)
|
||||
preferences.volume.type.automatic=Αυτόματα
|
||||
preferences.volume.docsTooltip=Ανοίξτε τις οδηγίες για να μάθετε περισσότερα σχετικά με τους διαφορετικούς τύπους τόμων.
|
||||
preferences.volume.tcp.port=Θύρα TCP
|
||||
preferences.volume.supportedFeatures=Ο επιλεγμένος τύπος τόμου υποστηρίζει τις ακόλουθες δυνατότητες:
|
||||
preferences.volume.feature.mountAuto=Αυτόματη επιλογή σημείου προσάρτησης
|
||||
@@ -306,27 +306,27 @@ stats.title=Στατιστικά για %s
|
||||
stats.cacheHitRate=Ποσοστό χρήσης cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Ανάγνωση: ηρεμία
|
||||
stats.read.throughput.kibs=Ανάγνωση: %.2f kiB/s
|
||||
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 kiB
|
||||
stats.read.total.data.kib=Ανάγνωση δεδομένων: %.1f KiB
|
||||
stats.read.total.data.mib=Ανάγνωση δεδομένων: %.1f MiB
|
||||
stats.read.total.data.gib=Ανάγνωση δεδομένων: %.1f GiB
|
||||
stats.decr.total.data.none=Δεδομένα που αποκρυπτογραφήθηκαν: -
|
||||
stats.decr.total.data.kib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f kiB
|
||||
stats.decr.total.data.kib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f KiB
|
||||
stats.decr.total.data.mib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f MiB
|
||||
stats.decr.total.data.gib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f GiB
|
||||
stats.read.accessCount=Συνολικές αναγνώσεις: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Εγγραφή: ηρεμία
|
||||
stats.write.throughput.kibs=Εγγραφή: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Εγγραφή: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Εγγραφή: %.2f MiB/s
|
||||
stats.write.total.data.none=Δεδομένα που γράφηκαν: -
|
||||
stats.write.total.data.kib=Δεδομένα που γράφτηκαν: %.1f kiB
|
||||
stats.write.total.data.kib=Δεδομένα που γράφτηκαν: %.1f KiB
|
||||
stats.write.total.data.mib=Δεδομένα που γράφτηκαν: %.1f MiB
|
||||
stats.write.total.data.gib=Δεδομένα που γράφτηκαν: %.1f GiB
|
||||
stats.encr.total.data.none=Δεδομένα που κρυπτογραφήθηκαν: -
|
||||
stats.encr.total.data.kib=Δεδομένα που κρυπτογραφήθηκαν: %.1f kiB
|
||||
stats.encr.total.data.kib=Δεδομένα που κρυπτογραφήθηκαν: %.1f KiB
|
||||
stats.encr.total.data.mib=Δεδομένα που κρυπτογραφήθηκαν: %.1f MiB
|
||||
stats.encr.total.data.gib=Δεδομένα που κρυπτογραφήθηκαν: %.1f GiB
|
||||
stats.write.accessCount=Συνολικές εγγραφές: %d
|
||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Κλείδωμα
|
||||
main.vaultDetail.bytesPerSecondRead=Ανάγνωση:
|
||||
main.vaultDetail.bytesPerSecondWritten=Εγγραφή:
|
||||
main.vaultDetail.throughput.idle=σε αδράνεια
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Στατιστικά Vault
|
||||
main.vaultDetail.locateEncryptedFileBtn=Εντοπισμός Κρυπτογραφημένου Αρχείου
|
||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Φυλάξτε κάπου που θα είνα
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Επαναφορά Κωδικού Πρόσβασης
|
||||
recoveryKey.recover.prompt=Εισάγετε το κλειδί ανάκτησης για "%s":
|
||||
recoveryKey.recover.validKey=Αυτό είναι ένα έγκυρο κλειδί ανάκτησης
|
||||
recoveryKey.recover.correctKey=Αυτό το κλειδί ανάκτησης είναι έγκυρο
|
||||
recoveryKey.recover.wrongKey=Αυτό το κλειδί ανάκτησης ανήκει σε διαφορετική κρύπτη
|
||||
recoveryKey.recover.invalidKey=Αυτό το κλειδί ανάκτησης δεν είναι έγκυρο
|
||||
recoveryKey.printout.heading=Κλειδί ανάκτησης Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Επαναφορά
|
||||
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Ocurrió un error en el nombramiento. Para más d
|
||||
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.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licencia excedida
|
||||
hub.licenseExceeded.description=Cryptomator Hub ha dado acceso a más usuarios de los que permite su licencia. Póngase en contacto con su administrador de Hub para actualizar la licencia o un administrador de la bóveda para eliminar usuarios de la misma.
|
||||
|
||||
hub.invalidLicense.message=Licencia del Hub inválida
|
||||
hub.invalidLicense.description=Su instancia del Hub de Cryptomator tiene una licencia inválida. Informe a un administrador del Hub para actualizar o renovar la licencia.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Mostrar ícono de bandeja (requiere reiniciar
|
||||
preferences.volume=Unidad virtual
|
||||
preferences.volume.type=Tipo de volumen (requiere reiniciar)
|
||||
preferences.volume.type.automatic=Automático
|
||||
preferences.volume.docsTooltip=Abra la documentación para saber más sobre los diferentes tipos de volumen.
|
||||
preferences.volume.tcp.port=Puerto TCP
|
||||
preferences.volume.supportedFeatures=El tipo de volumen elegido admite las siguientes funciones:
|
||||
preferences.volume.feature.mountAuto=Selección automática del punto de montaje
|
||||
@@ -306,27 +306,27 @@ stats.title=Estadísticas para %s
|
||||
stats.cacheHitRate=La caché alcanzó la tasa
|
||||
## Read
|
||||
stats.read.throughput.idle=Lectura: inactivo
|
||||
stats.read.throughput.kibs=Lectura: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lectura: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Lectura: %.2f MiB/s
|
||||
stats.read.total.data.none=Datos leídos: -
|
||||
stats.read.total.data.kib=Datos leídos: %.1f kiB
|
||||
stats.read.total.data.kib=Datos leídos: %.1f KiB
|
||||
stats.read.total.data.mib=Datos leídos: %.1f MiB
|
||||
stats.read.total.data.gib=Datos leídos: %.1f GiB
|
||||
stats.decr.total.data.none=Datos descifrados: -
|
||||
stats.decr.total.data.kib=Datos descifrados: %.1f kiB
|
||||
stats.decr.total.data.kib=Datos descifrados: %.1f KiB
|
||||
stats.decr.total.data.mib=Datos descifrados: %.1f MiB
|
||||
stats.decr.total.data.gib=Datos descifrados: %.1f GiB
|
||||
stats.read.accessCount=Total leídos: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Escritura: inactivo
|
||||
stats.write.throughput.kibs=Escritura: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Escritura: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Escritura: %.2f MiB/s
|
||||
stats.write.total.data.none=Datos escritos: -
|
||||
stats.write.total.data.kib=Datos escritos: %.1f kiB
|
||||
stats.write.total.data.kib=Datos escritos: %.1f KiB
|
||||
stats.write.total.data.mib=Datos escritos: %.1f MiB
|
||||
stats.write.total.data.gib=Datos escritos: %.1f GiB
|
||||
stats.encr.total.data.none=Datos cifrados: -
|
||||
stats.encr.total.data.kib=Datos cifrados: %.1f kiB
|
||||
stats.encr.total.data.kib=Datos cifrados: %.1f KiB
|
||||
stats.encr.total.data.mib=Datos cifrados: %.1f MiB
|
||||
stats.encr.total.data.gib=Datos cifrados: %.1f GiB
|
||||
stats.write.accessCount=Total de escrituras: %d
|
||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Bloquear
|
||||
main.vaultDetail.bytesPerSecondRead=Lectura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Escritura:
|
||||
main.vaultDetail.throughput.idle=inactivo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Estadísticas de la bóveda
|
||||
main.vaultDetail.locateEncryptedFileBtn=Ubicar archivo cifrado
|
||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Manténgala en algún lugar seguro, p.ej.:\n
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Restablecer contraseña
|
||||
recoveryKey.recover.prompt=Ingresar la clave de recuperación para "%s":
|
||||
recoveryKey.recover.validKey=Esta es una clave de recuperación válida
|
||||
recoveryKey.recover.correctKey=Esta es una clave de recuperación válida
|
||||
recoveryKey.recover.wrongKey=Esta clave de recuperación pertenece a una bóveda diferente
|
||||
recoveryKey.recover.invalidKey=Esta clave de recuperación no es válida
|
||||
recoveryKey.printout.heading=Clave de recuperación de Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=## Reiniciar contraseña\nrecoveryKey.recover.resetBtn
|
||||
|
||||
@@ -16,6 +16,7 @@ generic.button.print=چاپ
|
||||
|
||||
# Error
|
||||
error.message=خطایی رخ داده است
|
||||
error.technicalDetails=جزئیات:
|
||||
|
||||
# Defaults
|
||||
defaults.vault.vaultName=گاوصندوق
|
||||
@@ -28,13 +29,24 @@ traymenu.vault.lock=قفل
|
||||
traymenu.vault.reveal=ظاهر
|
||||
|
||||
# Add Vault Wizard
|
||||
addvaultwizard.title=اضافه کردن گاوصندوق
|
||||
## Welcome
|
||||
addvaultwizard.welcome.newButton=ساخت گاوصندوق جدید
|
||||
addvaultwizard.welcome.existingButton=باز کردن گاوصندوق موجود
|
||||
## New
|
||||
### Name
|
||||
addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید
|
||||
addvaultwizard.new.namePrompt=نام گاوصندوق
|
||||
### Location
|
||||
addvaultwizard.new.locationLabel=مکان ذخیرهسازی
|
||||
addvaultwizard.new.directoryPickerLabel=مکان سفارشی
|
||||
addvaultwizard.new.directoryPickerButton=انتخاب کنید…
|
||||
addvaultwizard.new.fileAlreadyExists=در حال حاضر یک فایل یا پوشه با همین نام وجود دارد
|
||||
addvaultwizard.new.validCharacters.numbers=اعداد
|
||||
### Password
|
||||
### Information
|
||||
## Existing
|
||||
addvaultwizard.existing.chooseBtn=انتخاب کنید…
|
||||
## Success
|
||||
|
||||
# Remove Vault
|
||||
@@ -57,7 +69,6 @@ unlock.unlockBtn=بازکردن قفل
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=تلاش مجدد
|
||||
@@ -100,6 +111,7 @@ main.closeBtn.tooltip=ببند
|
||||
main.supporterCertificateMissing.tooltip=لطفا کمک مالی در نظر بگیرند
|
||||
## Vault List
|
||||
main.vaultlist.contextMenu.lock=قفل
|
||||
main.vaultlist.addVaultBtn=اضافه کردن گاوصندوق
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
### Locked
|
||||
@@ -113,8 +125,10 @@ main.vaultDetail.lockBtn=قفل
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
vaultOptions.general.vaultName=نام گاوصندوق
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=انتخاب کنید…
|
||||
## Master Key
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,6 @@ unlock.unlockBtn=I-unlock
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=Subukan muli
|
||||
|
||||
@@ -67,7 +67,7 @@ addvaultwizard.new.generateRecoveryKeyChoice.no=Non merci, je n'oublierai pas mo
|
||||
### Information
|
||||
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
||||
addvault.new.readme.storageLocation.1=Fichiers de coffre-fort
|
||||
addvault.new.readme.storageLocation.2=Ceci est le chemin de votre coffre-fort.
|
||||
addvault.new.readme.storageLocation.2=Ceci est l'emplacement de stockage de votre coffre.
|
||||
addvault.new.readme.storageLocation.3=NE PAS
|
||||
addvault.new.readme.storageLocation.4=• modifier les fichiers dans ce répertoire ni
|
||||
addvault.new.readme.storageLocation.5=• coller de fichier à chiffrer dans ce répertoire.
|
||||
@@ -124,8 +124,8 @@ unlock.success.rememberChoice=Se souvenir de mon choix et ne plus me le demander
|
||||
unlock.success.revealBtn=Révéler le lecteur
|
||||
## Failure
|
||||
unlock.error.customPath.message=Impossible de monter le coffre vers le chemin personnalisé
|
||||
unlock.error.customPath.description.notSupported=Si vous souhaitez continuer à utiliser le chemin personnalisé, veuillez aller dans les préférences et sélectionner un type de volume qui le supporte. Sinon, allez dans les options du coffre et choisissez un point de montage pris en charge.
|
||||
unlock.error.customPath.description.notExists=Le chemin de montage personnalisé n'existe pas. Créez le dans votre système de fichiers local ou modifiez-le dans les options du coffre.
|
||||
unlock.error.customPath.description.notSupported=Si vous souhaitez continuer à utiliser le chemin personnalisé, veuillez aller dans les préférences et sélectionner un type de volume qui le prend en charge. Sinon, allez dans les options du coffre et choisissez un point de montage pris en charge.
|
||||
unlock.error.customPath.description.notExists=Le chemin de montage personnalisé n'existe pas. Créez-le dans votre système de fichiers local ou modifiez-le dans les options du coffre.
|
||||
unlock.error.customPath.description.generic=Vous avez sélectionné un chemin de montage personnalisé pour ce coffre, mais son utilisation a échoué avec le message : %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Impossible d'accéder à la clé du périphérique
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Le processus de nommage a retourné une erreur. P
|
||||
hub.unauthorized.message=Accès refusé
|
||||
hub.unauthorized.description=Votre appareil n'a pas encore été autorisé à accéder à ce coffre. Demandez au propriétaire du coffre de l'autoriser.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licence dépassée
|
||||
hub.licenseExceeded.description=Cryptomator Hub a donné accès à plus d'utilisateurs qu'autorisé par la licence. Veuillez contacter votre administrateur Hub pour étendre la licence ou un administrateur de coffre pour supprimer des utilisateurs des coffres.
|
||||
|
||||
hub.invalidLicense.message=Licence de Hub invalide
|
||||
hub.invalidLicense.description=Votre instance Cryptomator Hub a une licence invalide. Veuillez informer un administrateur Hub pour la mettre à niveau ou la renouveler.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -275,13 +274,14 @@ preferences.interface.showMinimizeButton=Afficher le bouton Réduire
|
||||
preferences.interface.showTrayIcon=Montrer l'icône de service (redémarrage nécessaire)
|
||||
## Volume
|
||||
preferences.volume=Disque virtuel
|
||||
preferences.volume.type=Type de volume (nécessite un redémarrage)
|
||||
preferences.volume.type=Type de volume (redémarrage requis)
|
||||
preferences.volume.type.automatic=Automatique
|
||||
preferences.volume.docsTooltip=Consultez la documentation pour en savoir plus sur les différents types de volumes.
|
||||
preferences.volume.tcp.port=Port TCP
|
||||
preferences.volume.supportedFeatures=Le type de volume choisi prend en charge les fonctionnalités suivantes :
|
||||
preferences.volume.feature.mountAuto=Sélection automatique de point de montage
|
||||
preferences.volume.feature.mountAuto=Sélection automatique du point de montage
|
||||
preferences.volume.feature.mountToDir=Répertoire personnalisé comme point de montage
|
||||
preferences.volume.feature.mountToDriveLetter=Lettre du lecteur comme point de montage
|
||||
preferences.volume.feature.mountToDriveLetter=Lettre de lecteur comme point de montage
|
||||
preferences.volume.feature.mountFlags=Options de montage personnalisées
|
||||
preferences.volume.feature.readOnly=Montage en lecture seule
|
||||
## Updates
|
||||
@@ -306,27 +306,27 @@ stats.title=Statistiques sur %s
|
||||
stats.cacheHitRate=Taux de réussite du cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Lecture : inactif
|
||||
stats.read.throughput.kibs=Lecture : %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lecture : %.2f Mio/s
|
||||
stats.read.throughput.mibs=Lecture : %.2f Mo/s
|
||||
stats.read.total.data.none=Lecture des données : -
|
||||
stats.read.total.data.kib=Lecture des données : %.1f kiO
|
||||
stats.read.total.data.kib=Lecture des données : %.1f kio
|
||||
stats.read.total.data.mib=Lecture des données : %.1f MiO
|
||||
stats.read.total.data.gib=Lecture des données : %.1f GiO
|
||||
stats.decr.total.data.none=Données déchiffrées: -
|
||||
stats.decr.total.data.kib=Données déchiffrées: %.1f kiO
|
||||
stats.decr.total.data.kib=Données déchiffrées: %.1f kio
|
||||
stats.decr.total.data.mib=Données déchiffrées: %.1f MiO
|
||||
stats.decr.total.data.gib=Données déchiffrées: %.1f GiO
|
||||
stats.read.accessCount=Total des lectures: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Écriture : inactif
|
||||
stats.write.throughput.kibs=Écriture : %.2f kiO/s
|
||||
stats.write.throughput.kibs=Écriture : %.2f kio/s
|
||||
stats.write.throughput.mibs=Écriture : %.2f Mo/s
|
||||
stats.write.total.data.none=Données écrites : -
|
||||
stats.write.total.data.kib=Données écrites : %.1f kiO
|
||||
stats.write.total.data.kib=Données écrites : %.1f kio
|
||||
stats.write.total.data.mib=Données écrites : %.1f MiO
|
||||
stats.write.total.data.gib=Données écrites : %.1f GiO
|
||||
stats.encr.total.data.none=Données chiffrées : -
|
||||
stats.encr.total.data.kib=Données chiffrées: %.1f kiO
|
||||
stats.encr.total.data.kib=Données chiffrées: %.1f kio
|
||||
stats.encr.total.data.mib=Données chiffrées: %.1f MiO
|
||||
stats.encr.total.data.gib=Données chiffrées: %.1f GiO
|
||||
stats.write.accessCount=Total des écritures: %d
|
||||
@@ -353,7 +353,7 @@ main.vaultlist.contextMenu.reveal=Afficher le lecteur
|
||||
main.vaultlist.addVaultBtn=Ajouter un volume chiffré
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=Merci d'avoir choisi Cryptomateur 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 :
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=VERROUILLÉ
|
||||
main.vaultDetail.unlockBtn=Déverrouiller…
|
||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Verrouiller
|
||||
main.vaultDetail.bytesPerSecondRead=Lecture :
|
||||
main.vaultDetail.bytesPerSecondWritten=Écriture:
|
||||
main.vaultDetail.throughput.idle=inactif
|
||||
main.vaultDetail.throughput.kbps=%.1f Ko/s
|
||||
main.vaultDetail.throughput.kbps=%.1f kio/s
|
||||
main.vaultDetail.throughput.mbps=%.1f Mo/s
|
||||
main.vaultDetail.stats=Statistiques du volume chiffré
|
||||
main.vaultDetail.locateEncryptedFileBtn=Localiser le fichier chiffré
|
||||
@@ -424,7 +424,7 @@ vaultOptions.mount.mountPoint.auto=Choisir automatiquement un emplacement approp
|
||||
vaultOptions.mount.mountPoint.driveLetter=Utiliser la lettre du lecteur assignée
|
||||
vaultOptions.mount.mountPoint.custom=Utiliser le répertoire choisi
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Choisir...
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Choisissez un dossier
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Choisissez un répertoire
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Mot de passe
|
||||
vaultOptions.masterkey.changePasswordBtn=Modifier le mot de passe
|
||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Gardez-la dans un endroit sûr, par ex. :\n •
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Réinitialiser le mot de passe
|
||||
recoveryKey.recover.prompt=Entrez votre clé de récupération pour "%s":
|
||||
recoveryKey.recover.validKey=Cette clé de récupération est valide
|
||||
recoveryKey.recover.correctKey=Cette clé de récupération est correcte
|
||||
recoveryKey.recover.wrongKey=Cette clé de récupération appartient à un autre coffre
|
||||
recoveryKey.recover.invalidKey=Cette clé de récupération n'est pas valide
|
||||
recoveryKey.printout.heading=Clé de récupération Cryptomator "%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Réinitialiser
|
||||
|
||||
@@ -50,7 +50,6 @@ error.message=Produciuse un erro
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=Tentar de novo
|
||||
|
||||
@@ -123,37 +123,60 @@ unlock.success.description=הנעילה ל-"%s" בוטלה בהצלחה! הכס
|
||||
unlock.success.rememberChoice=זכור בחירה, אל תראה שוב
|
||||
unlock.success.revealBtn=חשוף את הכונן
|
||||
## Failure
|
||||
unlock.error.customPath.message=כשלון בקישור הכספת לנתיב הידני שהוגדר
|
||||
unlock.error.customPath.description.notSupported=אם ברצונך להשתמש בנתיב ידני, אנא גש להעדפות ובחר סוג volume שתומך בכך. אחרת, לך לאפשרויות הכספת ובחר אפשרות יעד קישור נתמך.
|
||||
unlock.error.customPath.description.notExists=יעד הקישור הידני לא קיים. או שתיצור אותו במערכת הקבצים המקומית או שנה אותו באפשרויות הכספת.
|
||||
unlock.error.customPath.description.generic=אתה בחרת באפשרות יעד קישור ידני לכספת זו, אבל השימוש בו נכשל עם ההודעה: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=לא ניתן לגשת למפתח המכשיר
|
||||
hub.noKeychain.description=כדאי לשחרר כספות האב נדרש מפתח מכשיר שיאובטח בצרור מפתחות. כדאי להמשיך, אפשר ״%s״ ובחר את צרור המפתחות בהעדפות.
|
||||
hub.noKeychain.openBtn=פתח העדפות
|
||||
### Waiting
|
||||
hub.auth.message=ממתין לאימות…
|
||||
hub.auth.description=אתה אמור להיות מופנה אוטומטית למסך ההזדהות.
|
||||
hub.auth.loginLink=לא הופנת? לחצן כאן לפתיחה.
|
||||
### Receive Key
|
||||
hub.receive.message=מעבד תשובה…
|
||||
hub.receive.description=Cryptomator מקבל ומעבד את התשובה מה- האב. אנא המתן.
|
||||
### Register Device
|
||||
hub.register.message=שם המכשיר נדרש
|
||||
hub.register.description=נראה שזו הגישה הראשונה ל- האב ממכשיר זה. כדי לזהות אותך למתן הרשאות, עליך לתת שם למכשיר זה.
|
||||
hub.register.nameLabel=שם מכשיר
|
||||
hub.register.occupiedMsg=שם זה נמצא כבר בשימוש
|
||||
hub.register.registerBtn=אישור
|
||||
### Registration Success
|
||||
hub.registerSuccess.message=שם המכשיר
|
||||
hub.registerSuccess.description=כדי לגשת לכספת, המכשיר שלך צריך לקבל הרשאה על ידי בעלי הכספת.
|
||||
### Registration Failed
|
||||
hub.registerFailed.message=הגדרת שם למכשיר נכשלה
|
||||
hub.registerFailed.description=ארעה שגיאה בתהליך עם השם. לפרטים נוספים הסתכל בלוג האפליקציה.
|
||||
### Unauthorized
|
||||
hub.unauthorized.message=הגישה נדחתה
|
||||
hub.unauthorized.description=המכשיר שלך טרם אושר לגשת לכספת הזאת. יש לבקש אישור גישה מבעל הכספת.
|
||||
### License Exceeded
|
||||
|
||||
hub.invalidLicense.message=רישיון האב לא תקף
|
||||
hub.invalidLicense.description=הרישיון שמותקן במופע ה- Cryptomator האב שלך אינו תקף. אנא ידע את מנהל ההאב שלך לשדרג או לחדש את הרישיון.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=הנעילה נכשלה
|
||||
lock.forced.description=נעילת ״%s״ נחסמה על ידי פעולות ממתינות או קבצים פתוחים. אתה יכול לנעול את הכספת בכוח, אולם הפרעה לפעולת קריאה וכתיבה עשויה לגרום לאובדן מידע לא שמור.
|
||||
lock.forced.retryBtn=נסה שנית
|
||||
lock.forced.forceBtn=הכרח נעילה
|
||||
## Failure
|
||||
lock.fail.message=נעילת הכספת נשכלה.
|
||||
lock.fail.description=לא ניתן היה לנעול את הכספת ״%s״. וודא שכל העבודה הלא שמורה נשמרת במקום אחר ושפעולות קריאה/כתיבה חשובות מסתיימות. כדי לסגור את הכספת, הרוג את התהליך של Cryptomator.
|
||||
|
||||
# Migration
|
||||
migration.title=שדרג הכספת
|
||||
## Start
|
||||
migration.start.header=שדרג הכספת
|
||||
migration.start.text=כדי לפתוח את הכספת ״%s״ בגרסה החדשה הזו של Cryptomator, צריך לשדרג את הכספת לגרסה חדשה יותר. לפני שתעשה זאת, כדאי שתדע:
|
||||
migration.start.remarkUndone=פעולת השדרוג אינה הפיכה.
|
||||
migration.start.remarkVersions=גרסאות ישנות יותר של Cryptomator לא יוכלו לפתוח את הכספת המשודרגת.
|
||||
migration.start.remarkCanRun=עליך לוודא שכל מכשיר ממנו אתה ניגש לכספת יכול להפעיל את גרסה זו של Cryptomator.
|
||||
migration.start.remarkSynced=עליך לוודא שהכספת שלך מסונכרנת במלואה במכשיר זה ובמכשירים האחרים, לפני שדרוגה.
|
||||
migration.start.confirm=קראתי והבנתי את המידע לעיל
|
||||
## Run
|
||||
migration.run.enterPassword=הכנס/י סיסמה עבור "%s"
|
||||
migration.run.startMigrationBtn=העבר הכספת
|
||||
@@ -170,22 +193,60 @@ migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=מערכת הק
|
||||
migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=מערכת הקבצים אינה מאפשרת את הכתיבה אליה.
|
||||
## Impossible
|
||||
migration.impossible.heading=לא יכול להעביר את הכספת
|
||||
migration.impossible.reason=לא ניתן לבצע מיגרציה אוטומטית של הכספת כי יעד האחסון או הקישור אינם תואמים.
|
||||
migration.impossible.moreInfo=ניתן עדיין לפתוח את כספת זו עם גרסה ישנה יותר. להנחיות כיצד לבצע מיגרציה ידנית של הכספת בקר ב-
|
||||
|
||||
# Health Check
|
||||
## Start
|
||||
health.title=בדיקת בריאות של ״%s״
|
||||
health.intro.header=בדיקת תקינות
|
||||
health.intro.text=בדיקת בריאות היא אוסף בדיקות לאיתור, ואולי תיקון, של בעיות במבנה הפנימי של הכספת. שים לב ש:
|
||||
health.intro.remarkSync=ודא שכל המכשירים מסונכרנים באופן מלא, זה פותר את רוב הבעיות.
|
||||
health.intro.remarkFix=לא ניתן לפתור את כל הבעיות.
|
||||
health.intro.remarkBackup=עם המידע משובש, רק גיבוי יכול לעזור.
|
||||
health.intro.affirmation=קראתי והבנתי את המידע לעיל
|
||||
## Start Failure
|
||||
health.fail.header=שגיאה בהעלאת הגדרות הכספת
|
||||
health.fail.ioError=ארעה שגיאה במהלך הגישה והקריאה של קובץ ההגדרות.
|
||||
health.fail.parseError=ארעה שגיאה בעת עיבוד קובץ הגדרות הכספת.
|
||||
health.fail.moreInfo=מידע נוסף
|
||||
## Check Selection
|
||||
health.checkList.description=בחר בדיקות ברשימה בצד שמאל או השתמש בלחצנים מטה.
|
||||
health.checkList.selectAllButton=בחירת כל הבדיקות
|
||||
health.checkList.deselectAllButton=הסר בחירה של כל הבדיקות
|
||||
health.check.runBatchBtn=הרץ את הבדיקות הנבחרות
|
||||
## Detail view
|
||||
health.check.detail.noSelectedCheck=לתוצאות, בחר בדיקת בריאות שהסתיימה ברשימה משמאל.
|
||||
health.check.detail.checkScheduled=הבדיקה מתוזמנת.
|
||||
health.check.detail.checkRunning=הבדיקה רצה כרגע…
|
||||
health.check.detail.checkSkipped=הבדיקה לא נבחרה לרוץ.
|
||||
health.check.detail.checkFinished=הבדיקה הסתיימה בהצלחה.
|
||||
health.check.detail.checkFinishedAndFound=הבדיקה הסתיימה. ניתן לבחון את התוצאות.
|
||||
health.check.detail.checkFailed=הבדיקה נכשלה בשל שגיאה.
|
||||
health.check.detail.checkCancelled=הבדיקה בוטלה.
|
||||
health.check.detail.listFilters.label=סנן
|
||||
health.check.detail.fixAllSpecificBtn=תקן הכל מסוג
|
||||
health.check.exportBtn=יצוא דוחות
|
||||
## Result view
|
||||
health.result.severityFilter.all=חומרה - הכל
|
||||
health.result.severityFilter.good=טוב
|
||||
health.result.severityFilter.info=מידע
|
||||
health.result.severityFilter.warn=אזהרה
|
||||
health.result.severityFilter.crit=קריטי
|
||||
health.result.severityTip.good=חומרה: טוב\nמבנה כספת רגיל.
|
||||
health.result.severityTip.info=חומרה: מידע\nמבנה כספת קיים, תיקון מומלץ.
|
||||
health.result.severityTip.warn=חומרה: אזהרה\nמבנה כספת שגוי, מומלץ מאוד לתקן.
|
||||
health.result.severityTip.crit=חומרה: קריטי\nמבנה כספת שגוי, אומת אובדן מידע.
|
||||
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
|
||||
health.fix.fixBtn=תיקון
|
||||
health.fix.successTip=התיקון הצליח
|
||||
health.fix.failTip=התיקון כשל, ראה את הלוג לפרטים
|
||||
|
||||
# Preferences
|
||||
preferences.title=העדפות
|
||||
@@ -210,16 +271,31 @@ preferences.interface.interfaceOrientation=כיוון ממשק
|
||||
preferences.interface.interfaceOrientation.ltr=משמאל לימין
|
||||
preferences.interface.interfaceOrientation.rtl=מימין לשמאל
|
||||
preferences.interface.showMinimizeButton=הצג כפתור מזעור
|
||||
preferences.interface.showTrayIcon=הצג צלמית בשורה מטה (דורש הפעלה מחדש)
|
||||
## Volume
|
||||
preferences.volume=כונן וירטואלי
|
||||
preferences.volume.type=סוג volume (דורש הפעלה מחדש)
|
||||
preferences.volume.type.automatic=אוטומטי
|
||||
preferences.volume.docsTooltip=בכדי ללמוד עוד על סוגי volume ניתן לקרוא את הדוקומנטציה.
|
||||
preferences.volume.tcp.port=פורט TCP
|
||||
preferences.volume.supportedFeatures=סוג ה- volume שבחרת תומך ביכולות הבאות:
|
||||
preferences.volume.feature.mountAuto=נבחרה בחירת נקודת קישור אוטומטית
|
||||
preferences.volume.feature.mountToDir=הגדרת תיקיה כנקודת קישור
|
||||
preferences.volume.feature.mountToDriveLetter=אות כונן כנקודת קישור
|
||||
preferences.volume.feature.mountFlags=בחירת אפשרויות לקישור
|
||||
preferences.volume.feature.readOnly=קישור במצב קריאה בלבד
|
||||
## Updates
|
||||
preferences.updates=עדכונים
|
||||
preferences.updates.currentVersion=הגרסה הנוכחית: %s
|
||||
preferences.updates.autoUpdateCheck=בצע בדיקת עדכונים אוטומטית
|
||||
preferences.updates.checkNowBtn=בדוק כעת
|
||||
preferences.updates.updateAvailable=שדרוג לגרסה %s זמין.
|
||||
## Contribution
|
||||
preferences.contribute=תמוך בנו
|
||||
preferences.contribute.registeredFor=אישור על תמיכה על שם %s
|
||||
preferences.contribute.noCertificate=תמכו ב-Cryptomator וקבלו תעודת תמיכה. זה כמו מפתח רישוי רק לאנשים מדהימים שמשתמשים בתוכנה חופשית. ;-)
|
||||
preferences.contribute.getCertificate=עדיין אין לכם אחד? לימדו כיצד אתם יכולים להשיג אותו.
|
||||
preferences.contribute.promptText=הדבק את קוד תעודת התומך כאן
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
|
||||
## About
|
||||
@@ -230,44 +306,98 @@ stats.title=סטטיסטיקה עבור %s
|
||||
stats.cacheHitRate=אחוז שימוש במטמון
|
||||
## Read
|
||||
stats.read.throughput.idle=קריאה: ללא פעילות
|
||||
stats.read.throughput.kibs=קריאה: %.2f kiB/s
|
||||
stats.read.throughput.kibs=נקרא: %.2f קילובייט/שניה
|
||||
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.kib=מידע שפוענח: %.1f קילובייט
|
||||
stats.decr.total.data.mib=מידע שפוענח: %.1f מגהבייט
|
||||
stats.decr.total.data.gib=מידע שפוענח: %.1f גיגהבייט
|
||||
stats.read.accessCount=מספר קריאות כולל: %d
|
||||
## 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.gib=מידע שנכתב: %.1f גיגהבייט
|
||||
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
|
||||
stats.access.current=גישה: %d
|
||||
stats.access.total=מספר גישות כולל: %d
|
||||
|
||||
|
||||
# Main Window
|
||||
main.closeBtn.tooltip=סגור
|
||||
main.minimizeBtn.tooltip=מזער
|
||||
main.preferencesBtn.tooltip=העדפות
|
||||
main.debugModeEnabled.tooltip=מצב דיבאג מופעל
|
||||
main.supporterCertificateMissing.tooltip=תרומתך תתקבל בברכה
|
||||
## Vault List
|
||||
main.vaultlist.emptyList.onboardingInstruction=לחץ כאן להוספת כספת
|
||||
main.vaultlist.contextMenu.remove=הסר…
|
||||
main.vaultlist.contextMenu.lock=נעילה
|
||||
main.vaultlist.contextMenu.unlock=שחרר נעילה…
|
||||
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
|
||||
main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת
|
||||
main.vaultlist.contextMenu.reveal=חשוף את הכונן
|
||||
main.vaultlist.addVaultBtn=יצירת כספת
|
||||
## Vault Detail
|
||||
### Welcome
|
||||
main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו:
|
||||
### Locked
|
||||
main.vaultDetail.lockedStatus=נעול
|
||||
main.vaultDetail.unlockBtn=שחרר נעילה…
|
||||
main.vaultDetail.unlockNowBtn=בטל נעילה כעת
|
||||
main.vaultDetail.optionsBtn=אפשרויות הכספת
|
||||
main.vaultDetail.passwordSavedInKeychain=הסיסמה נשמרה
|
||||
### Unlocked
|
||||
main.vaultDetail.unlockedStatus=לא נעול
|
||||
main.vaultDetail.accessLocation=תוכן הכספת שלך נגיש כאן:
|
||||
main.vaultDetail.revealBtn=חשוף את הכונן
|
||||
main.vaultDetail.copyUri=העתק קישור כתובת
|
||||
main.vaultDetail.lockBtn=נעילה
|
||||
main.vaultDetail.bytesPerSecondRead=קריאה:
|
||||
main.vaultDetail.bytesPerSecondWritten=כתיבה:
|
||||
main.vaultDetail.throughput.idle=ללא פעילות
|
||||
main.vaultDetail.throughput.kbps=%.1f קילובייט/שניה
|
||||
main.vaultDetail.throughput.mbps=%.1f מגהביט לשניה
|
||||
main.vaultDetail.stats=סטטיסטיקת הכספת
|
||||
main.vaultDetail.locateEncryptedFileBtn=מצא קבצים מוצפנים
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=בחר קובץ מהכספת שלך על מנת לאתר את הקובץ התואם המוצפן
|
||||
main.vaultDetail.encryptedPathsCopied=הנתיבים הועתקו ללוח!
|
||||
main.vaultDetail.filePickerTitle=בחר קובץ בתוך הכספת
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator לא הצליח למצוא כספת בנתיב זה.
|
||||
main.vaultDetail.missing.recheck=בדיקה נוספת
|
||||
main.vaultDetail.missing.remove=הסר מרשימה הכספות…
|
||||
main.vaultDetail.missing.changeLocation=שנה את מיקום הכספת…
|
||||
### Needs Migration
|
||||
main.vaultDetail.migrateButton=שדרג הכספת
|
||||
main.vaultDetail.migratePrompt=צריך לשדרג את הכספת שלך לגרסה חדשה לפני שניתן לגשת אליה
|
||||
### Error
|
||||
main.vaultDetail.error.info=ארעה שגיאה בהעלאת הכספת מהדיסק.
|
||||
main.vaultDetail.error.reload=ריענון
|
||||
main.vaultDetail.error.windowTitle=שגיאה בטעינת הכספת
|
||||
|
||||
# Wrong File Alert
|
||||
wrongFileAlert.title=איך להצפין קבצים
|
||||
wrongFileAlert.message=האם ניסית להצפין את הקבצים האלו?
|
||||
wrongFileAlert.description=לצורך כך, Cryptomator מספקת volume במנהל הקבצים של המערכת.
|
||||
wrongFileAlert.instruction.0=כדי להצפין את הקבצים, בצע את השלבים הבאים:
|
||||
wrongFileAlert.instruction.1=1. פתחו את הכספת.
|
||||
wrongFileAlert.instruction.2=2. לחץ על ״הצג״ לפתיחת ה- volume במנהל הקבצים.
|
||||
wrongFileAlert.instruction.3=3. הוסף את הקבצים שלך ל- volume הזה.
|
||||
wrongFileAlert.link=לסיוע נוסף, בקר ב-
|
||||
|
||||
# Vault Options
|
||||
## General
|
||||
@@ -275,17 +405,32 @@ vaultOptions.general=כללי
|
||||
vaultOptions.general.vaultName=שם הכספת
|
||||
vaultOptions.general.autoLock.lockAfterTimePart1=נעילה לאחר חוסר שימוש של
|
||||
vaultOptions.general.autoLock.lockAfterTimePart2=דקות
|
||||
vaultOptions.general.unlockAfterStartup=פתח את הכספת בהפעלה של Cryptomator
|
||||
vaultOptions.general.actionAfterUnlock=לאחר שחרור נעילה מוצלח
|
||||
vaultOptions.general.actionAfterUnlock.ignore=אל תעשה דבר
|
||||
vaultOptions.general.actionAfterUnlock.reveal=חשוף את הכונן
|
||||
vaultOptions.general.actionAfterUnlock.ask=שאל
|
||||
vaultOptions.general.startHealthCheckBtn=התחל בדיקת בריאות
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=קישור
|
||||
vaultOptions.mount.info=האפשרויות תלויות בסוג ה- volume הנבחר.
|
||||
vaultOptions.mount.linkToPreferences=פתח את העדפות הכונן הוירטואלי
|
||||
vaultOptions.mount.readonly=קריאה בלבד
|
||||
vaultOptions.mount.customMountFlags=דגלים ידנים לקישור
|
||||
vaultOptions.mount.winDriveLetterOccupied=בשימוש
|
||||
vaultOptions.mount.mountPoint=נקודת עיגון
|
||||
vaultOptions.mount.mountPoint.auto=בחר אוטומטית מיקום מתאים
|
||||
vaultOptions.mount.mountPoint.driveLetter=השתמש באות הכונן המוקצאת
|
||||
vaultOptions.mount.mountPoint.custom=השתמש בתיקיה שנבחרה
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=בחר...
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=בחר תיקיה
|
||||
## Master Key
|
||||
vaultOptions.masterkey=סיסמה
|
||||
vaultOptions.masterkey.changePasswordBtn=שנה סיסמה
|
||||
vaultOptions.masterkey.forgetSavedPasswordBtn=שכח סיסמה שמורה
|
||||
vaultOptions.masterkey.recoveryKeyExplanation=מפתח שחזור הינו הדרך היחידה לשחזור הגישה לכספת אם תאבד את הסיסמה.
|
||||
vaultOptions.masterkey.showRecoveryKeyBtn=הצג את מפתח השחזור
|
||||
vaultOptions.masterkey.recoverPasswordBtn=איפוס סיסמה
|
||||
|
||||
|
||||
@@ -295,9 +440,14 @@ recoveryKey.display.title=הצגת מפתח השחזור
|
||||
recoveryKey.create.message=דרושה סיסמה
|
||||
recoveryKey.create.description=נא להזין את הססמא ל "%s" בכדי להציג את מפתח השחזור.
|
||||
recoveryKey.display.description=המפתח שחזור שלהלן ניתן לשימוש בכדי לשחזר גישה ל "%s":
|
||||
recoveryKey.display.StorageHints=שמור אותו במקום מאוד בטוח, לדוגמה:\n • שמור אותו במנהל סיסמאות\n • שמור אותו בדיסק און קי\n • הדפס אותו על נייר
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=איפוס סיסמה
|
||||
recoveryKey.recover.prompt=הקש את מפתח השחזור שלך עבור ״%s״:
|
||||
recoveryKey.recover.correctKey=מפתח ה recovery נכון
|
||||
recoveryKey.recover.wrongKey=מפתח ה recovery שייך ל vault אחר
|
||||
recoveryKey.recover.invalidKey=מפתח ה recovery שגוי
|
||||
recoveryKey.printout.heading=מפתח שחזור של Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=איפוס
|
||||
@@ -306,6 +456,11 @@ recoveryKey.recover.resetSuccess.message=איפוס סיסמה הצליח
|
||||
recoveryKey.recover.resetSuccess.description=ניתן לפתוח את הכספת עם הסיסמה החדשה.
|
||||
|
||||
# New Password
|
||||
newPassword.promptText=הקש סיסמה חדשה
|
||||
newPassword.reenterPassword=לאימות, הקש שוב את הסיסמא החדשה
|
||||
newPassword.passwordsMatch=הסיסמאות תואמות!
|
||||
newPassword.passwordsDoNotMatch=הסיסמאות אינם תואמות
|
||||
passwordStrength.messageLabel.tooShort=השתמש בלפחות %d תווים
|
||||
passwordStrength.messageLabel.0=חלשה מאוד
|
||||
passwordStrength.messageLabel.1=חלשה
|
||||
passwordStrength.messageLabel.2=סבירה
|
||||
@@ -315,8 +470,10 @@ passwordStrength.messageLabel.4=חזקה מאוד
|
||||
# Quit
|
||||
quit.title=יציאה
|
||||
quit.message=קיימים vaults פתוחים
|
||||
quit.description=נא אשר שאתה רוצה לצאת. Cryptomator יבצע נעילה מסודרת של כל הכספות הפתוחות למניעת אובדן מידע.
|
||||
quit.lockAndQuitBtn=נעילה ויציאה
|
||||
|
||||
# Forced Quit
|
||||
quit.forced.message=חלק מה vaults לא היו ניתנים לנעילה
|
||||
quit.forced.description=נעילה כספות נחסמה על ידי תהליכים ממתינים או קבצים פתוחים. אתה יכול לנעול את הכספת בכוח, אולם הפרעה לפעולת קריאה וכתיבה עשויה לגרום לאובדן מידע לא שמור.
|
||||
quit.forced.forceAndQuitBtn=נעילה בכח ויציאה
|
||||
@@ -128,7 +128,6 @@ hub.register.registerBtn=पुष्टि करें
|
||||
hub.unauthorized.message=प्रवेश अस्वीकृत
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=लॉक करना विफल हुआ
|
||||
|
||||
@@ -123,7 +123,6 @@ hub.register.registerBtn=Potvrdi
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=Zaključavanje neuspješno
|
||||
@@ -241,27 +240,21 @@ stats.title=Statistika za %s
|
||||
stats.cacheHitRate=Stopa pogodaka predmemorije
|
||||
## Read
|
||||
stats.read.throughput.idle=Čitanje: mirovanje
|
||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||
stats.read.total.data.none=Podataka pročitano: -
|
||||
stats.read.total.data.kib=Podataka pročitano: %.1f kiB
|
||||
stats.read.total.data.mib=Podataka pročitano: %.1f MiB
|
||||
stats.read.total.data.gib=Podataka pročitano: %.1f GiB
|
||||
stats.decr.total.data.none=Podataka dešifrirano: -
|
||||
stats.decr.total.data.kib=Podataka dešifrirano: %.1f kiB
|
||||
stats.decr.total.data.mib=Podataka dešifrirano: %.1f MiB
|
||||
stats.decr.total.data.gib=Podataka dešifrirano: %.1f GiB
|
||||
stats.read.accessCount=Ukupno čitanja: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Pisanje: mirovanje
|
||||
stats.write.throughput.kibs=Pisanje: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Pisanje: %.2f MiB/s
|
||||
stats.write.total.data.none=Podataka zapisano: -
|
||||
stats.write.total.data.kib=Podataka zapisano: %.1f kiB
|
||||
stats.write.total.data.mib=Podataka zapisano: %.1f MiB
|
||||
stats.write.total.data.gib=Podataka zapisano: %.1f GiB
|
||||
stats.encr.total.data.none=Podataka šifrirano: -
|
||||
stats.encr.total.data.kib=Podataka šifrirano: %.1f kiB
|
||||
stats.encr.total.data.mib=Podataka šifrirano: %.1f MiB
|
||||
stats.encr.total.data.gib=Podataka šifrirano: %.1f GiB
|
||||
stats.write.accessCount=Ukupno pisanja: %d
|
||||
@@ -301,7 +294,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
||||
main.vaultDetail.bytesPerSecondRead=Čitanje:
|
||||
main.vaultDetail.bytesPerSecondWritten=Pisanje:
|
||||
main.vaultDetail.throughput.idle=neaktivan
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistika trezora
|
||||
### Missing
|
||||
@@ -365,7 +357,7 @@ recoveryKey.display.StorageHints=Držite ga na sigurnom mjestu, npr.:\n • Pohr
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s":
|
||||
recoveryKey.recover.validKey=Ovo je valjani ključ za oporavak
|
||||
recoveryKey.recover.correctKey=Ovo je valjani ključ za oporavak
|
||||
recoveryKey.printout.heading=Cryptomator-ov ključ za oporavak\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -105,7 +105,7 @@ unlock.savePassword=Jelszó megjegyzése
|
||||
unlock.unlockBtn=Feloldás
|
||||
## Select
|
||||
unlock.chooseMasterkey.description=Nem található a tároló kulcsfájlja a várt helyen. Kérjük válassza ki a kulcsfájlt manuálisan.
|
||||
unlock.chooseMasterkey.filePickerTitle=Kulcsfájl kiválasztása
|
||||
unlock.chooseMasterkey.filePickerTitle=Mesterkulcs fájl kiválasztása
|
||||
## Success
|
||||
unlock.success.description="%s" sikreresen feloldásra került! Mostmár hozzáférhet a virtuális trezorhoz.
|
||||
unlock.success.rememberChoice=Jegyezze meg a választást és ne mutassa többet
|
||||
@@ -115,12 +115,13 @@ unlock.success.revealBtn=Széf megjelenítése
|
||||
### Waiting
|
||||
### Receive Key
|
||||
### Register Device
|
||||
hub.register.occupiedMsg=Ez a név már használatban van
|
||||
hub.register.registerBtn=Megerősítés
|
||||
### Registration Success
|
||||
### Registration Failed
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=A lezárás sikertelen volt
|
||||
@@ -238,27 +239,21 @@ stats.title=Statisztika ehhez %s
|
||||
stats.cacheHitRate=Gyorsítótár találati arány
|
||||
## Read
|
||||
stats.read.throughput.idle=Olvasás: tétlen
|
||||
stats.read.throughput.kibs=Olvasás: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Olvasás: %.2f MiB/s
|
||||
stats.read.total.data.none=Olvasott adat: -
|
||||
stats.read.total.data.kib=Olvasott adat: %.1f kiB
|
||||
stats.read.total.data.mib=Olvasott adat: %.1f MiB
|
||||
stats.read.total.data.gib=Olvasott adat: %.1f GiB
|
||||
stats.decr.total.data.none=Dekódolt adat: -
|
||||
stats.decr.total.data.kib=Dekódolt adat: %.1f kiB
|
||||
stats.decr.total.data.mib=Dekódolt adat: %.1f MiB
|
||||
stats.decr.total.data.gib=Dekódolt adat: %.1f GiB
|
||||
stats.read.accessCount=Összes olvasás: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Írás: tétlen
|
||||
stats.write.throughput.kibs=Írás: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Írás: %.2f MiB/s
|
||||
stats.write.total.data.none=Írva: -
|
||||
stats.write.total.data.kib=Írott adat: %.1f kiB
|
||||
stats.write.total.data.mib=Írott adat: %.1f MiB
|
||||
stats.write.total.data.gib=Írott adat: %.1f GiB
|
||||
stats.encr.total.data.none=Titkosított adat: -
|
||||
stats.encr.total.data.kib=Titkosított adat: %.1f kiB
|
||||
stats.encr.total.data.mib=Titkosított adat: %.1f MiB
|
||||
stats.encr.total.data.gib=Titkosított adat: %.1f GiB
|
||||
stats.write.accessCount=Összes írás: %d
|
||||
@@ -298,7 +293,6 @@ main.vaultDetail.lockBtn=Zárolás
|
||||
main.vaultDetail.bytesPerSecondRead=Olvasás:
|
||||
main.vaultDetail.bytesPerSecondWritten=Írás:
|
||||
main.vaultDetail.throughput.idle=tétlen
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Széf statisztika
|
||||
### Missing
|
||||
@@ -362,7 +356,9 @@ recoveryKey.display.StorageHints=Tartsa nagyon biztonságos helyen. pl.:\n •T
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Írja be a visszaállítási kulcsát a következőhöz "%s":
|
||||
recoveryKey.recover.validKey=Ez egy érvényes visszaállítási kulcs
|
||||
recoveryKey.recover.correctKey=Ez a visszaállítási kulcs érvényes
|
||||
recoveryKey.recover.wrongKey=Ez a visszaállítási kulcs egy másik széfhez tartozik
|
||||
recoveryKey.recover.invalidKey=Ez a visszaállítási kulcs nem érvényes
|
||||
recoveryKey.printout.heading=Cryptomator visszaállítási kulcs\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -123,7 +123,6 @@ hub.register.registerBtn=Konfirmasi
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=Gagal mengunci
|
||||
@@ -241,27 +240,21 @@ stats.title=Statistik untuk %s
|
||||
stats.cacheHitRate=Tingkat Hit Cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Baca: diam
|
||||
stats.read.throughput.kibs=Baca: %.2f kiB/detik
|
||||
stats.read.throughput.mibs=Baca: %.2f MiB/detik
|
||||
stats.read.total.data.none=Data dibaca: -
|
||||
stats.read.total.data.kib=Data dibaca: %.1f kiB
|
||||
stats.read.total.data.mib=Data dibaca: %.1f MiB
|
||||
stats.read.total.data.gib=Data dibaca: %.1f GiB
|
||||
stats.decr.total.data.none=Data terdekripsi: -
|
||||
stats.decr.total.data.kib=Data terdekripsi: %.1f kiB
|
||||
stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB
|
||||
stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB
|
||||
stats.read.accessCount=Total dibaca: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Tulis: diam
|
||||
stats.write.throughput.kibs=Tulis: %.2f kiB/detik
|
||||
stats.write.throughput.mibs=Tulis: %.2f MiB/detik
|
||||
stats.write.total.data.none=Data tertulis: -
|
||||
stats.write.total.data.kib=Data tertulis: %.1f kiB
|
||||
stats.write.total.data.mib=Data tertulis: %.1f MiB
|
||||
stats.write.total.data.gib=Data tertulis: %.1f GiB
|
||||
stats.encr.total.data.none=Data terenkripsi: -
|
||||
stats.encr.total.data.kib=Data terenkripsi: %.1f kiB
|
||||
stats.encr.total.data.mib=Data terenkripsi: %.1f MiB
|
||||
stats.encr.total.data.gib=Data terenkripsi: %.1f GiB
|
||||
stats.write.accessCount=Total ditulis: %d
|
||||
@@ -301,7 +294,6 @@ main.vaultDetail.lockBtn=Gembok
|
||||
main.vaultDetail.bytesPerSecondRead=Read:
|
||||
main.vaultDetail.bytesPerSecondWritten=Write:
|
||||
main.vaultDetail.throughput.idle=idle
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/detik
|
||||
main.vaultDetail.stats=Statistik Vault
|
||||
### Missing
|
||||
@@ -365,7 +357,7 @@ recoveryKey.display.StorageHints=Simpan di tempat yang sangat aman, misal.:\n
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Masukkan kunci pemulihan untuk "%s":
|
||||
recoveryKey.recover.validKey=Ini adalah kunci pemulihan yang valid
|
||||
recoveryKey.recover.correctKey=Ini adalah kunci pemulihan yang valid
|
||||
recoveryKey.printout.heading=Kunci Pemulihan Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -123,6 +123,10 @@ unlock.success.description="%s" sbloccato correttamente! La tua cassaforte è or
|
||||
unlock.success.rememberChoice=Ricorda la scelta, non mostrarmelo più
|
||||
unlock.success.revealBtn=Rivela l'Unità
|
||||
## Failure
|
||||
unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso personalizzato
|
||||
unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato.
|
||||
unlock.error.customPath.description.notExists=Il percorso di mount personalizzato non esiste. Crealo nel tuo file system locale o cambialo nelle opzioni della cassaforte.
|
||||
unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo è fallito col messaggio: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Impossibile accedere alla chiave del dispositivo
|
||||
hub.noKeychain.description=Per sbloccare le casseforti Hub, è necessaria una chiave del dispositivo, che è protetta tramite un portachiavi. Per procedere, abilita "%s" e seleziona un portachiavi nelle preferenze.
|
||||
@@ -150,9 +154,6 @@ hub.registerFailed.description=Si è verificato un errore nel processo di nomina
|
||||
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.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licenza scaduta
|
||||
hub.licenseExceeded.description=Cryptomator Hub ha dato accesso a più utenti rispetto ai suoi permessi di licenza. Contatta il tuo amministratore Hub per aggiornare la licenza o un amministratore del vault per rimuovere gli utenti dalle cassaforte.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -271,7 +272,15 @@ preferences.interface.showMinimizeButton=Mostra il pulsante minimizza
|
||||
preferences.interface.showTrayIcon=Mostra l'icona della barra d'applicazioni (richiede il riavvio)
|
||||
## Volume
|
||||
preferences.volume=Unità Virtuale
|
||||
preferences.volume.type=Tipo di volume (richiede riavvio)
|
||||
preferences.volume.type.automatic=Automatico
|
||||
preferences.volume.tcp.port=Porta TCP
|
||||
preferences.volume.supportedFeatures=Il tipo di volume scelto supporta le seguenti caratteristiche:
|
||||
preferences.volume.feature.mountAuto=Selezione automatica del punto di montaggio
|
||||
preferences.volume.feature.mountToDir=Directory personalizzata come punto di montaggio
|
||||
preferences.volume.feature.mountToDriveLetter=Lettera dispositivo come punto di montaggio
|
||||
preferences.volume.feature.mountFlags=Opzioni di montaggio personalizzate
|
||||
preferences.volume.feature.readOnly=Montaggio di sola lettura
|
||||
## Updates
|
||||
preferences.updates=Aggiornamenti
|
||||
preferences.updates.currentVersion=Versione Corrente: %s
|
||||
@@ -294,27 +303,27 @@ stats.title=Statistiche per %s
|
||||
stats.cacheHitRate=Frequenza di Raggiungimento della Cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Lettura: inattivo
|
||||
stats.read.throughput.kibs=Lettura: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lettura: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Lettura: %.2f MiB/s
|
||||
stats.read.total.data.none=Dati letti: -
|
||||
stats.read.total.data.kib=Dati letti: %.1f kiB
|
||||
stats.read.total.data.kib=Dati letti: %.1f KiB
|
||||
stats.read.total.data.mib=Dati letti: %.1f MiB
|
||||
stats.read.total.data.gib=Dati letti: %.1f GiB
|
||||
stats.decr.total.data.none=Dati decrittografati: -
|
||||
stats.decr.total.data.kib=Dati decrittografati: %.1f kiB
|
||||
stats.decr.total.data.kib=Dati decriptati: %.1f KiB
|
||||
stats.decr.total.data.mib=Dati decrittografati: %.1f MiB
|
||||
stats.decr.total.data.gib=Dati decrittografati: %.1f GiB
|
||||
stats.read.accessCount=Letture totali: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Scrittura: inattivo
|
||||
stats.write.throughput.kibs=Scrittura: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Scrittura: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Scrittura: %.2f MiB/s
|
||||
stats.write.total.data.none=Dati scritti: -
|
||||
stats.write.total.data.kib=Dati scritti: %.1f kiB
|
||||
stats.write.total.data.kib=Dati scritti: %.1f KiB
|
||||
stats.write.total.data.mib=Dati scritti: %.1f MiB
|
||||
stats.write.total.data.gib=Dati scritti: %.1f GiB
|
||||
stats.encr.total.data.none=Dati crittografati: -
|
||||
stats.encr.total.data.kib=Dati crittografati: %.1f kiB
|
||||
stats.encr.total.data.kib=Dati criptati: %.1f KiB
|
||||
stats.encr.total.data.mib=Dati crittografati: %.1f MiB
|
||||
stats.encr.total.data.gib=Dati crittografati: %.1f GiB
|
||||
stats.write.accessCount=Scritture totali: %d
|
||||
@@ -352,14 +361,18 @@ main.vaultDetail.passwordSavedInKeychain=Password salvata
|
||||
main.vaultDetail.unlockedStatus=SBLOCCATA
|
||||
main.vaultDetail.accessLocation=I contenuti della tua cassaforte sono accessibili qui:
|
||||
main.vaultDetail.revealBtn=Rivela Unità
|
||||
main.vaultDetail.copyUri=Copia URI
|
||||
main.vaultDetail.lockBtn=Blocca
|
||||
main.vaultDetail.bytesPerSecondRead=Lettura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Scrittura:
|
||||
main.vaultDetail.throughput.idle=inattivo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistiche della Cassaforte
|
||||
main.vaultDetail.locateEncryptedFileBtn=Individua File Crittografato
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Scegli un file dalla cassaforte per individuare la controparte cifrata
|
||||
main.vaultDetail.encryptedPathsCopied=Percorsi copiati negli Appunti!
|
||||
main.vaultDetail.filePickerTitle=Seleziona File Nella Cassaforte
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator non è riuscito a trovare una cassaforte in questo percorso.
|
||||
main.vaultDetail.missing.recheck=Ricontrolla
|
||||
@@ -398,13 +411,17 @@ vaultOptions.general.startHealthCheckBtn=Avvia il Controllo della Salute
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Montaggio
|
||||
vaultOptions.mount.info=Le opzioni dipendono dal tipo di volume selezionato.
|
||||
vaultOptions.mount.linkToPreferences=Apri le preferenze dell'unità virtuale
|
||||
vaultOptions.mount.readonly=Sola Lettura
|
||||
vaultOptions.mount.customMountFlags=Flag di Montaggio Personalizzati
|
||||
vaultOptions.mount.winDriveLetterOccupied=occupato
|
||||
vaultOptions.mount.mountPoint=Punto di Montaggio
|
||||
vaultOptions.mount.mountPoint.auto=Scegli automaticamente una posizione idonea
|
||||
vaultOptions.mount.mountPoint.driveLetter=Usa la lettera del drive assegnata
|
||||
vaultOptions.mount.mountPoint.custom=Usa la directory scelta
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Scegli…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Scegli una directory
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Password
|
||||
vaultOptions.masterkey.changePasswordBtn=Modifica password
|
||||
@@ -425,7 +442,7 @@ recoveryKey.display.StorageHints=Mantienilo da qualche parte molto sicuro, ad es
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Reimposta Password
|
||||
recoveryKey.recover.prompt=Inserisci la tua chiave di recupero per "%s":
|
||||
recoveryKey.recover.validKey=Questa è una chiave di recupero valida
|
||||
recoveryKey.recover.correctKey=Questa è una chiave di recupero valida
|
||||
recoveryKey.printout.heading=Chiave di recupero Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Reimposta
|
||||
|
||||
@@ -126,6 +126,7 @@ unlock.success.revealBtn=ドライブを表示
|
||||
unlock.error.customPath.message=カスタム パスに金庫をマウントできません
|
||||
unlock.error.customPath.description.notSupported=カスタム パスを使い続けたい場合、環境設定に移動してサポートしているボリューム タイプを選択してください。もしくは、金庫のオプションに移動してサポートされるマウント ポイントを選択してください。
|
||||
unlock.error.customPath.description.notExists=カスタム マウント パスが存在していません。ローカル ファイルシステムで作成するか、金庫のオプションで変更を加えてください。
|
||||
unlock.error.customPath.description.generic=この金庫のカスタム・マウント・パスを選択しましたが、その使用は次のメッセージで失敗しました: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=デバイス キーにアクセスできません
|
||||
hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。
|
||||
@@ -153,9 +154,8 @@ hub.registerFailed.description=デバイス名登録中にエラーが発生し
|
||||
hub.unauthorized.message=アクセスが拒否されました
|
||||
hub.unauthorized.description=お使いのデバイスはまだこの金庫にアクセスする権限がありません。金庫のオーナーに権限を与えてもらってください。
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=ライセンス数が不足しています
|
||||
hub.licenseExceeded.description=Cryptomator Hubがライセンスの許可よりも多くのユーザーにアクセス権を与えています。ハブ管理者にライセンスをアップグレードするよう連絡するか,金庫の管理者に金庫からユーザーを削除するよう連絡してください。
|
||||
|
||||
hub.invalidLicense.message=ハブライセンスが無効です
|
||||
hub.invalidLicense.description=Cryptomator ハブインスタンスに無効なライセンスがあります。ライセンスをアップグレードまたは更新するには、ハブ管理者に連絡してください。
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -171,8 +171,11 @@ lock.fail.description=金庫 "%s" を施錠できませんでした。保存さ
|
||||
migration.title=金庫をアップグレード
|
||||
## Start
|
||||
migration.start.header=金庫をアップグレード
|
||||
migration.start.text=Cryptomatorのこの新しいバージョンであなたの金庫「%s」を開くには、金庫を新しい形式にアップグレードする必要があります。これを行う前に、次のことを知っておく必要があります:
|
||||
migration.start.remarkUndone=このアップグレードは取り消すことができません。
|
||||
migration.start.remarkVersions=古い Cryptomator では、アップグレードされた金庫を開くことができなくなります。
|
||||
migration.start.remarkCanRun=あなたが金庫にアクセスするすべてのデバイスは、Cryptomatorのこのバージョンを実行できることを確認する必要があります。
|
||||
migration.start.remarkSynced=アップグレードする前に、このデバイスと他のデバイスで、金庫が完全に同期されていることを確認する必要があります。
|
||||
migration.start.confirm=上記の情報を理解しました。
|
||||
## Run
|
||||
migration.run.enterPassword="%s" のパスワードを入力してください
|
||||
@@ -273,7 +276,12 @@ preferences.interface.showTrayIcon=トレイアイコンを表示 (再起動が
|
||||
preferences.volume=仮想ドライブ
|
||||
preferences.volume.type=ボリューム タイプ (再起動が必要)
|
||||
preferences.volume.type.automatic=自動
|
||||
preferences.volume.docsTooltip=異なるボリュームタイプの詳細については、ドキュメントを確認してください。
|
||||
preferences.volume.tcp.port=TCP ポート
|
||||
preferences.volume.supportedFeatures=選択されたボリュームタイプは、以下の機能をサポートしています。
|
||||
preferences.volume.feature.mountAuto=マウント先の自動選択
|
||||
preferences.volume.feature.mountToDir=カスタムディレクトリをマウント先に指定
|
||||
preferences.volume.feature.mountToDriveLetter=ドライブレターをマウント先に指定
|
||||
preferences.volume.feature.mountFlags=カスタム マウント オプション
|
||||
preferences.volume.feature.readOnly=読み取り専用マウント
|
||||
## Updates
|
||||
@@ -298,27 +306,21 @@ stats.title=%s の統計情報
|
||||
stats.cacheHitRate=キャッシュ ヒット率
|
||||
## Read
|
||||
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 kiB
|
||||
stats.read.total.data.mib=データ読み取り: %.1f MiB
|
||||
stats.read.total.data.gib=データ読み取り: %.1f GiB
|
||||
stats.decr.total.data.none=復号済みデータ: -
|
||||
stats.decr.total.data.kib=復号済みデータ: %.1f kiB
|
||||
stats.decr.total.data.mib=復号済みデータ: %.1f MiB
|
||||
stats.decr.total.data.gib=復号済みデータ: %.1f GiB
|
||||
stats.read.accessCount=合計読み取り: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=書き込み: アイドル状態
|
||||
stats.write.throughput.kibs=書き込み: %.2f kiB/s
|
||||
stats.write.throughput.mibs=書き込み: %.2f MiB/s
|
||||
stats.write.total.data.none=書き込み済みデータ: -
|
||||
stats.write.total.data.kib=書き込み済みデータ: %.1f kiB
|
||||
stats.write.total.data.mib=書き込み済みデータ: %.1f MiB
|
||||
stats.write.total.data.gib=書き込み済みデータ: %.1f GiB
|
||||
stats.encr.total.data.none=暗号化済みデータ: -
|
||||
stats.encr.total.data.kib=暗号化済みデータ: %.1f kiB
|
||||
stats.encr.total.data.mib=暗号化済みデータ: %.1f MiB
|
||||
stats.encr.total.data.gib=暗号化済みデータ: %.1f GiB
|
||||
stats.write.accessCount=合計書き込み: %d
|
||||
@@ -361,12 +363,12 @@ main.vaultDetail.lockBtn=施錠
|
||||
main.vaultDetail.bytesPerSecondRead=読み取り:
|
||||
main.vaultDetail.bytesPerSecondWritten=書き込み:
|
||||
main.vaultDetail.throughput.idle=アイドル
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=金庫の統計情報
|
||||
main.vaultDetail.locateEncryptedFileBtn=暗号化されたファイルの場所
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=暗号化された金庫のファイルを選択してください
|
||||
main.vaultDetail.encryptedPathsCopied=パスをクリップボードにコピーしました!
|
||||
main.vaultDetail.filePickerTitle=金庫内のファイルを選択
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator はこの場所に金庫を見つけることができませんでした。
|
||||
main.vaultDetail.missing.recheck=再確認
|
||||
@@ -405,6 +407,7 @@ vaultOptions.general.startHealthCheckBtn=正常性チェックを開始
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=マウント
|
||||
vaultOptions.mount.info=オプションは、選択されたボリュームタイプによって異なります。
|
||||
vaultOptions.mount.linkToPreferences=仮想ドライブの環境設定を開く
|
||||
vaultOptions.mount.readonly=読み取り専用
|
||||
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
||||
@@ -435,7 +438,9 @@ recoveryKey.display.StorageHints=十分に安全な場所に保存してくだ
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=パスワードをリセット
|
||||
recoveryKey.recover.prompt="%s" の回復キーを入力してください:
|
||||
recoveryKey.recover.validKey=有効な回復キー
|
||||
recoveryKey.recover.correctKey=有効な回復キー
|
||||
recoveryKey.recover.wrongKey=この回復キーは別の金庫に属しています
|
||||
recoveryKey.recover.invalidKey=この回復キーは有効ではありません
|
||||
recoveryKey.printout.heading=Cryptomator 回復キー\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=リセット
|
||||
|
||||
@@ -121,7 +121,6 @@ hub.register.registerBtn=확인
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.description=대기 중인 작동이나 파일이 열려있어 "%s"를 잠그는데 실패하였습니다. 이 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다.
|
||||
@@ -231,27 +230,21 @@ stats.title=%s에 대한 통계
|
||||
stats.cacheHitRate=캐시 히트율
|
||||
## Read
|
||||
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 kiB
|
||||
stats.read.total.data.mib=데이터 읽기: %.1f MiB
|
||||
stats.read.total.data.gib=데이터 읽기: %.1f GiB
|
||||
stats.decr.total.data.none=데이터 복호화: -
|
||||
stats.decr.total.data.kib=데이터 복호화: %.1f kiB
|
||||
stats.decr.total.data.mib=데이터 복호화: %.1f MiB
|
||||
stats.decr.total.data.gib=데이터 복호화: %.1f GiB
|
||||
stats.read.accessCount=총 읽기 횟수: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=쓰기: 대기중
|
||||
stats.write.throughput.kibs=쓰기: %.2f kiB/s
|
||||
stats.write.throughput.mibs=쓰기: %.2f MiB/s
|
||||
stats.write.total.data.none=데이터 기록됨: -
|
||||
stats.write.total.data.kib=데이터 쓰기: %.1f kiB
|
||||
stats.write.total.data.mib=데이터 쓰기: %.1f MiB
|
||||
stats.write.total.data.gib=데이터 쓰기: %.1f GiB
|
||||
stats.encr.total.data.none=데이터 암호화: -
|
||||
stats.encr.total.data.kib=데이터 암호화: %.1f kiB
|
||||
stats.encr.total.data.mib=데이터 암호화: %.1f MiB
|
||||
stats.encr.total.data.gib=데이터 암호화: %.1f GiB
|
||||
stats.write.accessCount=총 쓰기 횟수: %d
|
||||
@@ -291,7 +284,6 @@ main.vaultDetail.lockBtn=잠금
|
||||
main.vaultDetail.bytesPerSecondRead=읽기:
|
||||
main.vaultDetail.bytesPerSecondWritten=쓰기:
|
||||
main.vaultDetail.throughput.idle=대기
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Vault 통계
|
||||
### Missing
|
||||
@@ -352,7 +344,7 @@ recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요:
|
||||
recoveryKey.recover.validKey=올바른 복구 키 입니다
|
||||
recoveryKey.recover.correctKey=올바른 복구 키 입니다
|
||||
recoveryKey.printout.heading=Cryptomator 복구 키\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -117,7 +117,6 @@ hub.register.registerBtn=Apstiprināt
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
@@ -205,7 +204,6 @@ main.vaultDetail.revealBtn=Atklāt disku
|
||||
main.vaultDetail.lockBtn=Aizslēgt
|
||||
main.vaultDetail.bytesPerSecondRead=Nolasīts:
|
||||
main.vaultDetail.throughput.idle=dīkstāvē
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator šajā ceļā nevarēja atrast glabātuvi.
|
||||
@@ -255,7 +253,7 @@ recoveryKey.display.StorageHints=Glabājiet to drošā vietā, piemēram:\n
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Ievadiet "%s" atjaunošanas atslēgu:
|
||||
recoveryKey.recover.validKey=Šī ir derīga atjaunošanas atslēga
|
||||
recoveryKey.recover.correctKey=Šī ir derīga atjaunošanas atslēga
|
||||
recoveryKey.printout.heading=Cryptomator atjaunošanas atslēga\n"%s" \n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Atiestatīt
|
||||
|
||||
@@ -39,7 +39,6 @@ hub.register.registerBtn=Потврди
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Under navngivingsprosessen oppsto det en feilmeld
|
||||
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.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Lisensen overskredet
|
||||
hub.licenseExceeded.description=Cryptomator Hub har gitt tilgang til flere brukere enn lisensen dens tillater. Vennligst kontakt Hub-administratoren din for å få oppgradert lisensen eller få en hvelv-administrator til å fjerne brukere fra hvelv.
|
||||
|
||||
hub.invalidLicense.message=Hub-lisens er ugyldig
|
||||
hub.invalidLicense.description=Cryptomator Hub instansen din har en ugyldig lisens. Vennligst informer en Hub-administrator om å oppgradere eller fornye lisensen.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Vis verktøykasseikon (krever omstart)
|
||||
preferences.volume=Virtuell enhet
|
||||
preferences.volume.type=Volumtype (krever omstart)
|
||||
preferences.volume.type.automatic=Automatisk
|
||||
preferences.volume.docsTooltip=Åpne dokumentasjonen for å lære mer om de forskjellige volumtypene.
|
||||
preferences.volume.tcp.port=TCP Port
|
||||
preferences.volume.supportedFeatures=Valgt volumtype støtter følgende funksjoner:
|
||||
preferences.volume.feature.mountAuto=Valg av automatisk monteringspunkt
|
||||
@@ -306,27 +306,27 @@ stats.title=Statistikk for %s
|
||||
stats.cacheHitRate=Treffrate på hurtigminnet
|
||||
## Read
|
||||
stats.read.throughput.idle=Les: inaktiv
|
||||
stats.read.throughput.kibs=Lest: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lest: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Lest: %.2f MiB/s
|
||||
stats.read.total.data.none=Data lest: -
|
||||
stats.read.total.data.kib=Data lest: %.1f kiB
|
||||
stats.read.total.data.kib=Data lest: %.1f KiB
|
||||
stats.read.total.data.mib=Data lest: %.1f MiB
|
||||
stats.read.total.data.gib=Data lest: %.1f GiB
|
||||
stats.decr.total.data.none=Data dekryptert: -
|
||||
stats.decr.total.data.kib=Data dekryptert: %.1f kiB
|
||||
stats.decr.total.data.kib=Data dekryptert: %.1f KiB
|
||||
stats.decr.total.data.mib=Data dekryptert: %.1f MiB
|
||||
stats.decr.total.data.gib=Data dekryptert: %.1f GiB
|
||||
stats.read.accessCount=Lesninger totalt: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Skrive: inaktiv
|
||||
stats.write.throughput.kibs=Skriver: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Skriver: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Skriver: %.2f MiB/s
|
||||
stats.write.total.data.none=Data skrevet: -
|
||||
stats.write.total.data.kib=Data skrevet: %.1f kiB
|
||||
stats.write.total.data.kib=Data skrevet: %.1f KiB
|
||||
stats.write.total.data.mib=Data skrevet: %.1f MiB
|
||||
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
||||
stats.encr.total.data.none=Data kryptert: -
|
||||
stats.encr.total.data.kib=Data kryptert: %.1f kiB
|
||||
stats.encr.total.data.kib=Data kryptert: %.1f KiB
|
||||
stats.encr.total.data.mib=Data kryptert: %.1f MiB
|
||||
stats.encr.total.data.gib=Data kryptert: %.1f GiB
|
||||
stats.write.accessCount=Skrivninger totalt: %d
|
||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Lås
|
||||
main.vaultDetail.bytesPerSecondRead=Lesehastighet:
|
||||
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
||||
main.vaultDetail.throughput.idle=inaktiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Hvelvstatistikk
|
||||
main.vaultDetail.locateEncryptedFileBtn=Finn kryptert fil
|
||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Oppbevar den et veldig sikkert sted, f.eks. ved
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Nullstill passordet
|
||||
recoveryKey.recover.prompt=Skriv inn gjenopprettingsnøkkelen for "%s":
|
||||
recoveryKey.recover.validKey=Dette er en gyldig gjenopprettingsnøkkel
|
||||
recoveryKey.recover.correctKey=Gjenopprettingsnøkkelen er gyldig
|
||||
recoveryKey.recover.wrongKey=Gjenopprettingsnøkkelen tilhører et annet hvelv
|
||||
recoveryKey.recover.invalidKey=Gjennopprettingsnøkkelen er ugyldig
|
||||
recoveryKey.printout.heading=Cryptomator-gjenopprettingsnøkkel\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Nullstill
|
||||
|
||||
@@ -125,6 +125,7 @@ unlock.success.revealBtn=Toon Schijf
|
||||
## Failure
|
||||
unlock.error.customPath.message=Kan kluis niet aan aangepast pad koppelen
|
||||
unlock.error.customPath.description.notSupported=Als je het aangepaste pad wilt blijven gebruiken, ga dan naar de voorkeuren en selecteer een volume type dat het ondersteunt. Anders ga je naar de kluis opties en kies je een steunpunt voor het koppelplaten.
|
||||
unlock.error.customPath.description.notExists=Het aangepaste koppelpad bestaat niet. Maak het aan in uw lokale bestandssysteem of verander het in de kluis opties.
|
||||
unlock.error.customPath.description.generic=Je hebt een aangepast koppel pad geselecteerd voor deze kluis, maar het gebruik ervan is mislukt met het bericht: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Geen toegang tot de apparaatsleutel
|
||||
@@ -153,9 +154,8 @@ hub.registerFailed.description=Er is een fout in het naamproces geworpen. Kijk i
|
||||
hub.unauthorized.message=Toegang geweigerd
|
||||
hub.unauthorized.description=Uw apparaat is nog niet gemachtigd om toegang te krijgen tot deze kluis. Vraag de eigenaar van de kluis om toestemming te geven.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licentie vervallen
|
||||
hub.licenseExceeded.description=Cryptomator Hub heeft toegang gegeven aan meer gebruikers dan er licentievergunningen zijn. Neem contact op met uw Hub beheerder om de licentie of een kluisbeheerder te upgraden om gebruikers uit kluizen te verwijderen.
|
||||
|
||||
hub.invalidLicense.message=Hub Licentie ongeldig
|
||||
hub.invalidLicense.description=Uw Cryptomator Hub installatie heeft een ongeldige licentie. Informeer een Hub administrator om de licentie te upgraden of te verlengen.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -276,6 +276,7 @@ preferences.interface.showTrayIcon=Pictogram in systeemvak weergeven (herstart v
|
||||
preferences.volume=Virtuele schijf
|
||||
preferences.volume.type=Type Volume (herstart vereist)
|
||||
preferences.volume.type.automatic=Automatisch
|
||||
preferences.volume.docsTooltip=Open de documentatie om meer te weten te komen over de verschillende volume types.
|
||||
preferences.volume.tcp.port=TCP-poort
|
||||
preferences.volume.supportedFeatures=Het gekozen volume type ondersteunt de volgende functies:
|
||||
preferences.volume.feature.mountAuto=Automatische koppelpunt selectie
|
||||
@@ -305,27 +306,27 @@ stats.title=Statistieken voor %s
|
||||
stats.cacheHitRate=Succespercentage van cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Lezen: inactief
|
||||
stats.read.throughput.kibs=Lezen: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Lezen: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Lezen: %.2f MiB/s
|
||||
stats.read.total.data.none=Gegevens gelezen: -
|
||||
stats.read.total.data.kib=Gegevens gelezen: %.1f kiB
|
||||
stats.read.total.data.kib=Gegevens gelezen: %.1f KiB
|
||||
stats.read.total.data.mib=Gegevens gelezen: %.1f MiB
|
||||
stats.read.total.data.gib=Gegevens gelezen: %.1f GiB
|
||||
stats.decr.total.data.none=Gegevens ontsleuteld: -
|
||||
stats.decr.total.data.kib=Gegevens ontsleuteld: %.1f kiB
|
||||
stats.decr.total.data.kib=Gegevens gedecodeerd: %.1f KiB
|
||||
stats.decr.total.data.mib=Gegevens ontsleuteld: %.1f MiB
|
||||
stats.decr.total.data.gib=Gegevens ontsleuteld: %.1f GiB
|
||||
stats.read.accessCount=Totaal gelezen: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Schrijven: inactief
|
||||
stats.write.throughput.kibs=Schrijven: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Schrijf: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Schrijven: %.2f MiB/s
|
||||
stats.write.total.data.none=Gegevens geschreven: -
|
||||
stats.write.total.data.kib=Gegevens geschreven: %.1f kiB
|
||||
stats.write.total.data.kib=Gegevens geschreven: %.1f KiB
|
||||
stats.write.total.data.mib=Gegevens geschreven: %.1f MiB
|
||||
stats.write.total.data.gib=Gegevens geschreven: %.1f GiB
|
||||
stats.encr.total.data.none=Gegevens versleuteld: -
|
||||
stats.encr.total.data.kib=Gegevens versleuteld: %.1f kiB
|
||||
stats.encr.total.data.kib=Gegevens versleuteld: %.1f KiB
|
||||
stats.encr.total.data.mib=Gegevens versleuteld: %.1f MiB
|
||||
stats.encr.total.data.gib=Gegevens versleuteld: %.1f GiB
|
||||
stats.write.accessCount=Totaal geschreven: %d
|
||||
@@ -368,7 +369,7 @@ main.vaultDetail.lockBtn=Vergrendel
|
||||
main.vaultDetail.bytesPerSecondRead=Lezen:
|
||||
main.vaultDetail.bytesPerSecondWritten=Schrijven:
|
||||
main.vaultDetail.throughput.idle=inactief
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Kluisstatistieken
|
||||
main.vaultDetail.locateEncryptedFileBtn=Zoek versleuteld bestand
|
||||
@@ -444,7 +445,9 @@ recoveryKey.display.StorageHints=Bewaar het op een veilige plek, bv:\n • Bewaa
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Wachtwoord resetten
|
||||
recoveryKey.recover.prompt=Voer uw herstelsleutel in voor "%s":
|
||||
recoveryKey.recover.validKey=Dit is een geldige herstelsleutel
|
||||
recoveryKey.recover.correctKey=Deze herstelsleutel is geldig
|
||||
recoveryKey.recover.wrongKey=Deze herstelsleutel behoort tot een andere kluis
|
||||
recoveryKey.recover.invalidKey=Deze herstelsleutel is niet geldig
|
||||
recoveryKey.printout.heading=Cryptomator herstelsleutel\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetten
|
||||
|
||||
@@ -104,7 +104,6 @@ unlock.success.revealBtn=Gjer eininga synleg
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
@@ -200,7 +199,6 @@ main.vaultDetail.revealBtn=Gjer eininga synleg
|
||||
main.vaultDetail.lockBtn=Lås
|
||||
main.vaultDetail.bytesPerSecondRead=Lesafart:
|
||||
main.vaultDetail.throughput.idle=inaktiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator kunne ikkje finna ein kvelv på denne søkastien.
|
||||
@@ -255,7 +253,6 @@ recoveryKey.display.StorageHints=Ta vare på han ein veldig sikker stad, t.d. ve
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Skriv inn gjenopprettingsnøkkelen for "%s":
|
||||
recoveryKey.recover.validKey=Dette er ein gyldig gjenopprettingsnøkkel
|
||||
recoveryKey.printout.heading=Cryptomator-gjenopprettingsnøkkel\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -106,7 +106,6 @@ unlock.success.revealBtn=ਡਰਾਇਵ ਦਿਖਾਓ
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.description=ਬਾਕੀ ਰਹਿੰਦੀਆਂ ਕਾਰਵਾਈਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਖੁੱਲ੍ਹਣ ਕਰਕੇ "%s" ਲਾਕ ਕਰਨ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਇਸ ਵਾਲਟ ਨੂੰ ਧੱਕੇ ਨਾਲ ਲਾਕ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ I/O ਵਿੱਚ ਰੁਕਾਵਟ ਪਾਉਣ ਨਾਲ ਨਾ-ਸੰਭਾਲਿਆ ਡਾਟਾ ਖਤਮ ਹੋ ਜਾ ਸਕਦਾ ਹੈ।
|
||||
@@ -176,27 +175,21 @@ stats.title=%s ਲਈ ਅੰਕੜੇ
|
||||
stats.cacheHitRate=ਕੈਸ਼ ਹਿੱਟ ਦਰ
|
||||
## Read
|
||||
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 kiB
|
||||
stats.read.total.data.mib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f MiB
|
||||
stats.read.total.data.gib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f GiB
|
||||
stats.decr.total.data.none=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
||||
stats.decr.total.data.kib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f kiB
|
||||
stats.decr.total.data.mib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
||||
stats.decr.total.data.gib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
||||
stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ
|
||||
stats.write.throughput.kibs=ਲਿਖੇ: %.2f kiB/s
|
||||
stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s
|
||||
stats.write.total.data.none=ਲਿਖਿਆ ਡਾਟਾ: -
|
||||
stats.write.total.data.kib=ਡਾਟਾ ਲਿਖਿਆ: %.1f kiB
|
||||
stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB
|
||||
stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB
|
||||
stats.encr.total.data.none=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
||||
stats.encr.total.data.kib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f kiB
|
||||
stats.encr.total.data.mib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
||||
stats.encr.total.data.gib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
||||
stats.write.accessCount=ਕੁੱਲ ਲਿਖੇ: %d
|
||||
@@ -234,7 +227,6 @@ main.vaultDetail.lockBtn=ਲਾਕ ਕਰੋ
|
||||
main.vaultDetail.bytesPerSecondRead=ਪੜ੍ਹਨ:
|
||||
main.vaultDetail.bytesPerSecondWritten=ਲਿਖਣ:
|
||||
main.vaultDetail.throughput.idle=ਵੇਹਲਾ
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=ਵਾਲਟ ਅੰਕੜੇ
|
||||
### Missing
|
||||
@@ -292,7 +284,7 @@ recoveryKey.display.StorageHints=ਇਸ ਨੂੰ ਕਿਸੇ ਥਾਂ ਬਹ
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt='%s" ਲਈ ਆਪਣਾ ਰਿਕਵਰੀ ਕੁੰਜੀ ਦਿਓ:
|
||||
recoveryKey.recover.validKey=ਇਹ ਜਾਇਜ਼ ਰਿਕਰਵੀ ਕੁੰਜੀ ਹੈ
|
||||
recoveryKey.recover.correctKey=ਇਹ ਜਾਇਜ਼ ਰਿਕਰਵੀ ਕੁੰਜੀ ਹੈ
|
||||
recoveryKey.printout.heading=Cryptomator ਰਿਕਵਰੀ ਕੁੰਜੀ\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -123,6 +123,10 @@ unlock.success.description=Odblokowano "%s" pomyślnie! Twój sejf jest teraz do
|
||||
unlock.success.rememberChoice=Zapamiętaj wybór, nie pokazuj tego ponownie
|
||||
unlock.success.revealBtn=Pokaż Dysk
|
||||
## Failure
|
||||
unlock.error.customPath.message=Nie można zamontować sejfu na niestandardowej ścieżce
|
||||
unlock.error.customPath.description.notSupported=Jeśli chcesz nadal używać niestandardowej ścieżki, przejdź do preferencji i wybierz typ udziału, który ją obsługuje. W przeciwnym razie przejdź do opcji sejfu i wybierz obsługiwany punkt montowania.
|
||||
unlock.error.customPath.description.notExists=Niestandardowa ścieżka montowania nie istnieje. Stwórz ją w lokalnym systemie plików lub zmień ją w opcjach sejfu.
|
||||
unlock.error.customPath.description.generic=Wybrałeś niestandardową ścieżkę montowania dla tego sejfu, ale użycie jej nie powiodło się z wiadomością: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Brak dostępu do klucza urządzenia
|
||||
hub.noKeychain.description=Aby odblokować sejfy na Hubie, wymagany jest klucz urządzenia zabezpieczony za pomocą pęku kluczy. Aby kontynuować, włącz "%s" i wybierz Pęk kluczy w ustawieniach.
|
||||
@@ -150,9 +154,8 @@ hub.registerFailed.description=Wystąpił błąd podczas ustawiania nazwy. Aby u
|
||||
hub.unauthorized.message=Brak dostępu
|
||||
hub.unauthorized.description=Twoje urządzenie nie zostało jeszcze upoważnione do dostępu do tego sejfu. Poproś właściciela sejfu o autoryzację.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Przekroczono licencję
|
||||
hub.licenseExceeded.description=Cryptomator Hub dał dostęp większej ilości użytkowników, niż pozwala na to licencja. Proszę skontaktować się z administratorem Hub, aby ulepszyć licencję lub z administratorem sejfu, aby usunąć użytkowników z sejfu.
|
||||
|
||||
hub.invalidLicense.message=Nieważna licencja Huba
|
||||
hub.invalidLicense.description=Twoja instancja Hub ma nieprawidłową licencję. Poproś administratora Hub o uaktualnienie lub odnowienie licencji.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -271,7 +274,16 @@ preferences.interface.showMinimizeButton=Pokaż przycisk minimalizacji
|
||||
preferences.interface.showTrayIcon=Pokaż ikonę zasobnika (wymaga restartu)
|
||||
## Volume
|
||||
preferences.volume=Dysk wirtualny
|
||||
preferences.volume.type=Typ udziału (wymaga ponownego uruchomienia)
|
||||
preferences.volume.type.automatic=Automatyczny
|
||||
preferences.volume.docsTooltip=Sprawdź dokumentację, aby dowiedzieć się więcej o różnych typach udziałów.
|
||||
preferences.volume.tcp.port=Port TCP
|
||||
preferences.volume.supportedFeatures=Wybrany typ udziału obsługuje następujące funkcje:
|
||||
preferences.volume.feature.mountAuto=Automatyczny wybór punktu montowania
|
||||
preferences.volume.feature.mountToDir=Niestandardowy katalog jako punkt montowania
|
||||
preferences.volume.feature.mountToDriveLetter=Litera dysku jako punkt montowania
|
||||
preferences.volume.feature.mountFlags=Własne opcje montowania
|
||||
preferences.volume.feature.readOnly=Montowanie tylko do odczytu
|
||||
## Updates
|
||||
preferences.updates=Aktualizacje
|
||||
preferences.updates.currentVersion=Obecna wersja: %s
|
||||
@@ -294,27 +306,21 @@ stats.title=Statystyki dla %s
|
||||
stats.cacheHitRate=Trafność cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Odczyt: bezczynny
|
||||
stats.read.throughput.kibs=Odczyt: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Odczyt: %.2f kiB/s
|
||||
stats.read.total.data.none=Dane odczytywane: -
|
||||
stats.read.total.data.kib=Odczyt danych: %.1f kiB
|
||||
stats.read.total.data.mib=Odczyt danych: %.1f kiB
|
||||
stats.read.total.data.gib=Odczyt danych: %.1f kiB
|
||||
stats.decr.total.data.none=Dane odszyfrowane: -
|
||||
stats.decr.total.data.kib=Dane odszyfrowane: %.1f kiB
|
||||
stats.decr.total.data.mib=Dane odszyfrowane: %.1f kiB
|
||||
stats.decr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
||||
stats.read.accessCount=Całkowite odczyty: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Zapis: bezczynny
|
||||
stats.write.throughput.kibs=Zapis: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Zapis: %.2f kiB/s
|
||||
stats.write.total.data.none=Zapisane dane: -
|
||||
stats.write.total.data.kib=Zapisane dane: %.1f kiB
|
||||
stats.write.total.data.mib=Zapisane dane: %.1f MiB
|
||||
stats.write.total.data.gib=Zapisane dane: %.1f kiB
|
||||
stats.encr.total.data.none=Dane odszyfrowane: -
|
||||
stats.encr.total.data.kib=Dane odszyfrowane: %.1f kiB
|
||||
stats.encr.total.data.mib=Dane odszyfrowane: %.1f kiB
|
||||
stats.encr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
||||
stats.write.accessCount=Całkowity zapis: %d
|
||||
@@ -352,13 +358,17 @@ main.vaultDetail.passwordSavedInKeychain=Hasło zapisane
|
||||
main.vaultDetail.unlockedStatus=ODBLOKOWANE
|
||||
main.vaultDetail.accessLocation=Zawartość Twojego sejfu dostępna jest tutaj:
|
||||
main.vaultDetail.revealBtn=Otwórz lokalizację
|
||||
main.vaultDetail.copyUri=Kopiuj URI
|
||||
main.vaultDetail.lockBtn=Blokuj
|
||||
main.vaultDetail.bytesPerSecondRead=Odczyt:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zapisz:
|
||||
main.vaultDetail.throughput.idle=bezczynny
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statystyki sejfu
|
||||
main.vaultDetail.locateEncryptedFileBtn=Zlokalizuj zaszyfrowany plik
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Wybierz plik z sejfu, aby zlokalizować jego zaszyfrowany odpowiednik
|
||||
main.vaultDetail.encryptedPathsCopied=Ścieżki skopiowane do schowka!
|
||||
main.vaultDetail.filePickerTitle=Wybierz plik wewnątrz sejfu
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator nie mógł znaleźć sejfu w tej lokalizacji.
|
||||
main.vaultDetail.missing.recheck=Ponów próbę
|
||||
@@ -397,13 +407,17 @@ vaultOptions.general.startHealthCheckBtn=Rozpocznij Test Spójności
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Montowanie
|
||||
vaultOptions.mount.info=Opcje zależą od wybranego typu udziału.
|
||||
vaultOptions.mount.linkToPreferences=Otwórz ustawienia dysku wirtualnego
|
||||
vaultOptions.mount.readonly=Tylko do odczytu
|
||||
vaultOptions.mount.customMountFlags=Własne flagi montowania udziału
|
||||
vaultOptions.mount.winDriveLetterOccupied=zajęty
|
||||
vaultOptions.mount.mountPoint=Punkt montowania
|
||||
vaultOptions.mount.mountPoint.auto=Automatycznie wybierz odpowiednią lokalizację
|
||||
vaultOptions.mount.mountPoint.driveLetter=Użyj przypisanej litery dysku
|
||||
vaultOptions.mount.mountPoint.custom=Użyj wybranego katalogu
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Wybierz…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Wybierz katalog
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Hasło
|
||||
vaultOptions.masterkey.changePasswordBtn=Zmiana Hasła
|
||||
@@ -424,7 +438,9 @@ recoveryKey.display.StorageHints=Trzymaj go w bezpiecznym miejscu, np.\n • Prz
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Resetuj hasło
|
||||
recoveryKey.recover.prompt=Wprowadź swój klucz odzyskiwania dla "%s":
|
||||
recoveryKey.recover.validKey=To jest prawidłowy klucz odzyskiwania
|
||||
recoveryKey.recover.correctKey=To jest prawidłowy klucz odzyskiwania
|
||||
recoveryKey.recover.wrongKey=Ten klucz należy do innego sejfu
|
||||
recoveryKey.recover.invalidKey=Ten klucz jest nieprawidłowy
|
||||
recoveryKey.printout.heading=Cryptomator - Klucz odzyskiwania "%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetuj
|
||||
|
||||
@@ -123,6 +123,7 @@ unlock.success.description="%s" desbloqueado com sucesso! O seu cofre está agor
|
||||
unlock.success.rememberChoice=Lembrar escolha, não mostrar isto novamente
|
||||
unlock.success.revealBtn=Revelar unidade
|
||||
## Failure
|
||||
unlock.error.customPath.message=Não é possível montar o cofre no caminho personalizado
|
||||
## Hub
|
||||
hub.noKeychain.message=Não foi possível aceder à chave do dispositivo
|
||||
hub.noKeychain.description=Para desbloquear os cofres do Hub, é necessária uma chave do dispositivo, que é protegida usando um porta-chaves. Para continuar, ative “%s” e selecione um porta-chaves nas preferências.
|
||||
@@ -150,9 +151,8 @@ hub.registerFailed.description=Houve um erro no processo de nomear. Para mais de
|
||||
hub.unauthorized.message=Acesso negado
|
||||
hub.unauthorized.description=O seu dispositivo ainda não foi autorizado a aceder a este cofre. Peça ao proprietário do cofre para o autorizar.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licença excedida
|
||||
hub.licenseExceeded.description=O Hub do Cryptomator deu acesso a mais utilizadores do que as suas licenças de licença. Entre em contacto com o administrador do Hub para atualizar a licença ou um administrador do cofre para remover utilizadores dos cofres.
|
||||
|
||||
hub.invalidLicense.message=Licença Hub inválida
|
||||
hub.invalidLicense.description=O pedido do seu Cryptomator Hub tem uma licença inválida. Informe um administrador do Hub para atualizar ou renovar a licença.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -294,7 +294,6 @@ main.vaultDetail.accessLocation=O conteúdo do seu cofre está acessível aqui:
|
||||
main.vaultDetail.revealBtn=Revelar unidade
|
||||
main.vaultDetail.lockBtn=Trancar
|
||||
main.vaultDetail.throughput.idle=inativo
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.locateEncryptedFileBtn=Localizar Ficheiro Encriptado
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Escolha um ficheiro do seu cofre para localizar a sua contraparte encriptada
|
||||
|
||||
@@ -154,9 +154,6 @@ hub.registerFailed.description=Ocorreu um erro no processo de nomeação do disp
|
||||
hub.unauthorized.message=Acesso negado
|
||||
hub.unauthorized.description=Seu dispositivo ainda não foi autorizado a acessar este cofre. Peça ao proprietário ou a um administrador deste cofre para autorizá-lo.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=No. de licenças excedido
|
||||
hub.licenseExceeded.description=O Cryptomator Hub deu acesso a mais usuários do que sua licença de uso permite. Entre em contato com o administrador do seu Cryptomator Hub para ele atualizar o número de licenças ou com um administrador do cofre para remover usuários dos cofres.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -306,27 +303,21 @@ stats.title=Estatísticas para %s
|
||||
stats.cacheHitRate=Taxa de Utilização do Cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Leitura: ociosa
|
||||
stats.read.throughput.kibs=Leitura: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Leitura: %.2f MiB/s
|
||||
stats.read.total.data.none=Dados lidos: -
|
||||
stats.read.total.data.kib=Dados lidos: %.1f kiB
|
||||
stats.read.total.data.mib=Dados lidos: %.1f MiB
|
||||
stats.read.total.data.gib=Dados lidos: %.1f GiB
|
||||
stats.decr.total.data.none=Dados descriptografados: -
|
||||
stats.decr.total.data.kib=Dados descriptografados: %.1f kiB
|
||||
stats.decr.total.data.mib=Dados descriptografados: %.1f MiB
|
||||
stats.decr.total.data.gib=Dados descriptografados: %.1f GiB
|
||||
stats.read.accessCount=Total de leituras: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Escrita: ociosa
|
||||
stats.write.throughput.kibs=Escrita: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Escrita: %.2f MiB/s
|
||||
stats.write.total.data.none=Dados gravados: -
|
||||
stats.write.total.data.kib=Dados gravados: %.1f kiB
|
||||
stats.write.total.data.mib=Dados gravados: %.1f MiB
|
||||
stats.write.total.data.gib=Dados gravados: %.1f GiB
|
||||
stats.encr.total.data.none=Dados criptografados: -
|
||||
stats.encr.total.data.kib=Dados criptografados: %.1f kiB
|
||||
stats.encr.total.data.mib=Dados criptografados: %.1f MiB
|
||||
stats.encr.total.data.gib=Dados criptografados: %.1f GiB
|
||||
stats.write.accessCount=Total gravado: %d
|
||||
@@ -369,7 +360,6 @@ main.vaultDetail.lockBtn=Bloquear
|
||||
main.vaultDetail.bytesPerSecondRead=Leitura:
|
||||
main.vaultDetail.bytesPerSecondWritten=Escrita:
|
||||
main.vaultDetail.throughput.idle=ocioso
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Estatísticas do Cofre
|
||||
main.vaultDetail.locateEncryptedFileBtn=Localizar Arquivo Criptografado
|
||||
@@ -445,7 +435,7 @@ recoveryKey.display.StorageHints=Mantenha-a em um lugar bem seguro, por exemplo:
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Redefinir Senha
|
||||
recoveryKey.recover.prompt=Digite sua chave de recuperação para "%s":
|
||||
recoveryKey.recover.validKey=Esta é uma chave de recuperação válida
|
||||
recoveryKey.recover.correctKey=Esta é uma chave de recuperação válida
|
||||
recoveryKey.printout.heading=Chave de Recuperação do Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Redefinir
|
||||
|
||||
@@ -123,6 +123,10 @@ unlock.success.description=Deblocat "%s" cu succes! Seiful dvs. este acum accesi
|
||||
unlock.success.rememberChoice=Ține minte alegerea, nu mai arăta asta din nou
|
||||
unlock.success.revealBtn=Dezvăluie partiția
|
||||
## Failure
|
||||
unlock.error.customPath.message=Nu se poate monta seiful în locația alesă
|
||||
unlock.error.customPath.description.notSupported=Dacă doriți să continuați să utilizați locația aleasă, vă rugăm să mergeți la preferințe și să selectați o unitate de stocare suportată. În caz contrar, mergeți la opțiunile seifului și alegeți o locație de montare suportată.
|
||||
unlock.error.customPath.description.notExists=Locația de montare aleasă nu există. Creați-o în sistemul de fișiere local sau schimbați-o din opțiunile seifului.
|
||||
unlock.error.customPath.description.generic=Ați selectat o locație de montare pentru acest seif, dar utilizarea ei a eșuat cu mesajul: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Cheia dispozitivului nu a putut fi accesată
|
||||
hub.noKeychain.description=Pentru a debloca seifele de tip Hub, este necesară o cheie a dispozitivului, care este securizată prin intermediul unui keychain. Pentru a continua, activați „%s” și selectați un keychain în preferințe.
|
||||
@@ -150,9 +154,6 @@ hub.registerFailed.description=O eroare a fost întâmpinata în procesul de den
|
||||
hub.unauthorized.message=Acces respins
|
||||
hub.unauthorized.description=Dispozitivul dvs. nu a fost autorizat să acceseze acest seif. Solicitați proprietarului seifului să va autorizeze accesul.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Numărul de licențe a fost depășit
|
||||
hub.licenseExceeded.description=Cryptomator Hub a permis accesul la mai mulți utilizatori decât licența permite. Vă rugăm să contactați administratorul Hub-ului dumneavoastră pentru a actualiza licența sau un administrator de seif pentru a elimina utilizatorii din seifuri.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -271,7 +272,10 @@ preferences.interface.showMinimizeButton=Arată butonul de minimizare
|
||||
preferences.interface.showTrayIcon=Arată tray icon (necesită repornire)
|
||||
## Volume
|
||||
preferences.volume=Unitate virtuală
|
||||
preferences.volume.type=Tip unitate de stocare (necesită repornire)
|
||||
preferences.volume.type.automatic=Automat
|
||||
preferences.volume.docsTooltip=Deschideți documentația pentru a afla mai multe despre tipurile diferite de unități de stocare.
|
||||
preferences.volume.tcp.port=Portul TCP
|
||||
## Updates
|
||||
preferences.updates=Actualizări
|
||||
preferences.updates.currentVersion=Versiunea actuală: %s
|
||||
@@ -294,27 +298,21 @@ stats.title=Statistici pentru %s
|
||||
stats.cacheHitRate=Rata de control cache
|
||||
## Read
|
||||
stats.read.throughput.idle=Citire: inactiv
|
||||
stats.read.throughput.kibs=Citire: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Citire: %.2f MiB/s
|
||||
stats.read.total.data.none=Date citite: -
|
||||
stats.read.total.data.kib=Date citite: %.1f kiB
|
||||
stats.read.total.data.mib=Date citite: %.1f MiB
|
||||
stats.read.total.data.gib=Date citite: %.1f GiB
|
||||
stats.decr.total.data.none=Date decriptate: -
|
||||
stats.decr.total.data.kib=Date decriptate: %.1f kiB
|
||||
stats.decr.total.data.mib=Date decriptate: %.1f MiB
|
||||
stats.decr.total.data.gib=Date decriptate: %.1f GiB
|
||||
stats.read.accessCount=Total citit: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Scriere: inactiv
|
||||
stats.write.throughput.kibs=Scrie: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Scrie: %.2f MiB/s
|
||||
stats.write.total.data.none=Date scrise: -
|
||||
stats.write.total.data.kib=Date scrise: %.1f kiB
|
||||
stats.write.total.data.mib=Date scrise: %.1f MiB
|
||||
stats.write.total.data.gib=Date scrise: %.1f GiB
|
||||
stats.encr.total.data.none=Date criptate: -
|
||||
stats.encr.total.data.kib=Date criptate: %.1f kiB
|
||||
stats.encr.total.data.mib=Date criptate: %.1f MiB
|
||||
stats.encr.total.data.gib=Date criptate: %.1f GiB
|
||||
stats.write.accessCount=Total scrieri: %d
|
||||
@@ -356,7 +354,6 @@ main.vaultDetail.lockBtn=Blocaţi
|
||||
main.vaultDetail.bytesPerSecondRead=Citire:
|
||||
main.vaultDetail.bytesPerSecondWritten=Scriere:
|
||||
main.vaultDetail.throughput.idle=inactiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Statistici de seif
|
||||
### Missing
|
||||
@@ -424,7 +421,9 @@ recoveryKey.display.StorageHints=Păstrați cheia de recuperare undeva foarte si
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Resetează Parola
|
||||
recoveryKey.recover.prompt=Introduceți cheia de recuperare pentru "%s:
|
||||
recoveryKey.recover.validKey=Aceasta este o cheie de recuperare validă
|
||||
recoveryKey.recover.correctKey=Cheia de recuperare este validă
|
||||
recoveryKey.recover.wrongKey=Cheia de recuperare aparţine unui alt seif
|
||||
recoveryKey.recover.invalidKey=Cheia de recuperare nu este validă
|
||||
recoveryKey.printout.heading=Cheia de recuperare Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetează
|
||||
|
||||
@@ -123,7 +123,7 @@ unlock.success.description=Разблокировка "%s" успешно вып
|
||||
unlock.success.rememberChoice=Запомнить выбор и больше не спрашивать
|
||||
unlock.success.revealBtn=Показать диск
|
||||
## Failure
|
||||
unlock.error.customPath.message=Невозможно смонтировать хранилище на указанный путь
|
||||
unlock.error.customPath.message=Невозможно смонтировать хранилище по указанному пути
|
||||
unlock.error.customPath.description.notSupported=Если вы хотите продолжить использование пользовательского пути, перейдите в настройки и выберите тип тома, который его поддерживает. В противном случае, перейдите в настройки хранилища и выберите поддерживаемую точку монтирования.
|
||||
unlock.error.customPath.description.notExists=Пользовательский путь монтирования не существует. Либо создайте его в локальной файловой системе, либо измените в параметрах хранилища.
|
||||
unlock.error.customPath.description.generic=Вы выбрали свой путь монтирования этого хранилища, но его нельзя использовать: %s
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Ошибка присвоения имени. Б
|
||||
hub.unauthorized.message=Нет доступа
|
||||
hub.unauthorized.description=Устройство ещё не авторизовано для доступа к этому хранилищу. Попросите владельца хранилища разрешить его.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Срок действия лицензии истёк
|
||||
hub.licenseExceeded.description=Cryptomator Hub предоставил доступ большему количеству пользователей, чем разрешено лицензией. Обратитесь к администратору Hub для обновления лицензии или администратора хранилища, чтобы удалить пользователей из хранилищ.
|
||||
|
||||
hub.invalidLicense.message=Лицензия хаба недействительна
|
||||
hub.invalidLicense.description=У вашего хаба Cryptomator неверная лицензия. Попросите администратора хаба обновить или продлить лицензию.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -277,12 +276,13 @@ preferences.interface.showTrayIcon=Показывать значок в пане
|
||||
preferences.volume=Виртуальный диск
|
||||
preferences.volume.type=Тип тома (требуется перезапуск)
|
||||
preferences.volume.type.automatic=Автоматически
|
||||
preferences.volume.docsTooltip=Откройте документацию, чтобы узнать больше о различных типах томов.
|
||||
preferences.volume.tcp.port=Порт TCP
|
||||
preferences.volume.supportedFeatures=Выбранный тип тома поддерживает следующие функции:
|
||||
preferences.volume.feature.mountAuto=Выбор точки автомонтирования
|
||||
preferences.volume.feature.mountToDir=Своя папка как точка монтирования
|
||||
preferences.volume.feature.mountToDriveLetter=Буква диска как точка монтирования
|
||||
preferences.volume.feature.mountFlags=Настройки монтирования
|
||||
preferences.volume.feature.mountFlags=Параметры монтирования
|
||||
preferences.volume.feature.readOnly=Монтирование только для чтения
|
||||
## Updates
|
||||
preferences.updates=Обновления
|
||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Храните его в надёжном ме
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Сброс пароля
|
||||
recoveryKey.recover.prompt=Введите ключ восстановления для "%s":
|
||||
recoveryKey.recover.validKey=Это действительный ключ восстановления
|
||||
recoveryKey.recover.correctKey=Это действительный ключ восстановления
|
||||
recoveryKey.recover.wrongKey=Этот ключ восстановления от другого хранилища
|
||||
recoveryKey.recover.invalidKey=Этот ключ восстановления недействителен
|
||||
recoveryKey.printout.heading=Ключ восстановления Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Сброс
|
||||
@@ -468,7 +470,7 @@ passwordStrength.messageLabel.4=Очень сильный
|
||||
# Quit
|
||||
quit.title=Выйти из приложения
|
||||
quit.message=Есть открытые хранилища
|
||||
quit.description=Пожалуйста, подтвердите, что вы хотите выйти. Криптоматор корректно заблокирует все разблокированные хранилища для предотвращения потери данных.
|
||||
quit.description=Подтвердите, что вы хотите выйти. Cryptomator корректно заблокирует все разблокированные хранилища для предотвращения потери данных.
|
||||
quit.lockAndQuitBtn=Заблокировать и выйти
|
||||
|
||||
# Forced Quit
|
||||
|
||||
@@ -54,7 +54,6 @@ unlock.unlockBtn=අගුළුහරින්න
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
|
||||
@@ -123,6 +123,8 @@ unlock.success.description=Odomknutie "%s" úspešné! Váš trezor je už prís
|
||||
unlock.success.rememberChoice=Zapamätať voľbu, už viac nezobrazovať
|
||||
unlock.success.revealBtn=Odkryť disk
|
||||
## Failure
|
||||
unlock.error.customPath.message=Nie je možné namapovať trezor na uživateĺskej ceste
|
||||
unlock.error.customPath.description.generic=Vybrali ste voliteľnú cestu pripojenia pre tento trezor, ale použiť ho zlyhalo so správou: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Nemôžem pristúpiť ku kľúču zariadenia
|
||||
hub.noKeychain.description=V poradí odomknutia Hub trezorov, je požadovaný kľúč zariadenia ktorý je zabezpečený použitím keychain. K vykonaniu povoľte "%s" a zvoľte keychain v nastaveniach.
|
||||
@@ -150,9 +152,8 @@ hub.registerFailed.description=Vznikla chyba počas pomenovávacieho procesu. Pr
|
||||
hub.unauthorized.message=Prístup zamietnutý
|
||||
hub.unauthorized.description=Vaše zaradenie zatiaľ ešte nebolo autorizované pre pristúp tohto trezora. Požiadajte majiteľa trezora o autorizovanie.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licencia prekročená
|
||||
hub.licenseExceeded.description=Cryptomator Hub má prístup pre viac užívateľov ako povoľuje licencia. Prosím kontaktujte svojho Hub administrátora pre aktualizovanie licencie alebo admina trezoru pre odstránenie užívateľov z trezorov.
|
||||
|
||||
hub.invalidLicense.message=Neplatná licencia Hub-u
|
||||
hub.invalidLicense.description=Vaša inštancia Cryptomator Hub-u má neplatnú licenciu. Prosím informujte Hub administrátora pre aktualizáciu alebo obnovenie licencie.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -271,7 +272,16 @@ preferences.interface.showMinimizeButton=Ukáž minimalizačné tlačidlo
|
||||
preferences.interface.showTrayIcon=Ukázať ikonu na sytémovej lište (vyžaduje reštart)
|
||||
## Volume
|
||||
preferences.volume=Virtuálny disk
|
||||
preferences.volume.type=Typ oddielu (vyžaduje reštart)
|
||||
preferences.volume.type.automatic=Automaticky
|
||||
preferences.volume.docsTooltip=Pre viac informácií ohľadne iných typov volume otvorte dokumentáciu.
|
||||
preferences.volume.tcp.port=TCP port
|
||||
preferences.volume.supportedFeatures=Zvolený typ oddielu podporuje nasledovné funkcie:
|
||||
preferences.volume.feature.mountAuto=Automatická voľba bodu pripojenia
|
||||
preferences.volume.feature.mountToDir=Voliteľný adresár, ako bod pripojenia
|
||||
preferences.volume.feature.mountToDriveLetter=Písmeno disku, ako bod pripojenia
|
||||
preferences.volume.feature.mountFlags=Vlastné parametre mapovania
|
||||
preferences.volume.feature.readOnly=Mapovanie len na čítanie
|
||||
## Updates
|
||||
preferences.updates=Aktualizácie
|
||||
preferences.updates.currentVersion=Aktuálna verzia: %s
|
||||
@@ -294,14 +304,14 @@ stats.title=Štatistiky pre %s
|
||||
stats.cacheHitRate=Pomer nakešovaných záznamov
|
||||
## Read
|
||||
stats.read.throughput.idle=Čítanie: nečinnosť
|
||||
stats.read.throughput.kibs=Čítanie: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Čítanie: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Čítanie: %.2f MiB/s
|
||||
stats.read.total.data.none=Čítanie dát: -
|
||||
stats.read.total.data.kib=Čítanie dát: %.1f kiB
|
||||
stats.read.total.data.kib=Čítanie dát: %.1f KiB
|
||||
stats.read.total.data.mib=Čítanie dát: %.1f MiB
|
||||
stats.read.total.data.gib=Čítanie dát: %.1f GiB
|
||||
stats.decr.total.data.none=Odkódované dáta: -
|
||||
stats.decr.total.data.kib=Odkódované dáta: %.1f kiB
|
||||
stats.decr.total.data.kib=Odkódované dáta: %.1f KiB
|
||||
stats.decr.total.data.mib=Odkódované dáta: %.1f MiB
|
||||
stats.decr.total.data.gib=Odkódované dáta: %.1f GiB
|
||||
stats.read.accessCount=Spolu načítané: %d
|
||||
@@ -310,11 +320,11 @@ stats.write.throughput.idle=Zápis: nečinnosť
|
||||
stats.write.throughput.kibs=Zápis: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Zápis: %.2f MiB/s
|
||||
stats.write.total.data.none=štatistika.zápis.celkové.dáta.nič
|
||||
stats.write.total.data.kib=Zapísaných dát: %.1f kiB
|
||||
stats.write.total.data.kib=Zapísaných dát: %.1f KiB
|
||||
stats.write.total.data.mib=Zapísaných dát: %.1f MiB
|
||||
stats.write.total.data.gib=Zapísaných dát: %.1f GiB
|
||||
stats.encr.total.data.none=Zapísaných dát: -
|
||||
stats.encr.total.data.kib=Odkódovaných dát: %.1f kiB
|
||||
stats.encr.total.data.kib=Odkódované dáta: %.1f KiB
|
||||
stats.encr.total.data.mib=Odkódovaných dát: %.1f MiB
|
||||
stats.encr.total.data.gib=Odkódovaných dát: %.1f GiB
|
||||
stats.write.accessCount=Suma zápisov: %d
|
||||
@@ -352,11 +362,12 @@ main.vaultDetail.passwordSavedInKeychain=Heslo uložené
|
||||
main.vaultDetail.unlockedStatus=Odomknutý
|
||||
main.vaultDetail.accessLocation=Obsah Vášho trezora je dostupný tu:
|
||||
main.vaultDetail.revealBtn=Odkry disk
|
||||
main.vaultDetail.copyUri=Kopírovať URI
|
||||
main.vaultDetail.lockBtn=Uzamknúť
|
||||
main.vaultDetail.bytesPerSecondRead=Čítanie:
|
||||
main.vaultDetail.bytesPerSecondWritten=Zápis:
|
||||
main.vaultDetail.throughput.idle=nečinný
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Štatistiky trezora
|
||||
main.vaultDetail.locateEncryptedFileBtn=Lokalizujte zašifrovaný súbor
|
||||
@@ -401,13 +412,17 @@ vaultOptions.general.startHealthCheckBtn=Spustiť kontrolu zdravia
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Mapovanie
|
||||
vaultOptions.mount.info=Voľby závisia od typu zvolenej jednotky.
|
||||
vaultOptions.mount.linkToPreferences=Otvoriť vlastnosti virtuálnej jednotky
|
||||
vaultOptions.mount.readonly=Len-čítanie
|
||||
vaultOptions.mount.customMountFlags=Vlastné parametre mapovania
|
||||
vaultOptions.mount.winDriveLetterOccupied=obsadený
|
||||
vaultOptions.mount.mountPoint=Bod mapovania
|
||||
vaultOptions.mount.mountPoint.auto=Automaticky zvoľ vhodné umiestnenie
|
||||
vaultOptions.mount.mountPoint.driveLetter=Použiť pridelené písmeno disku
|
||||
vaultOptions.mount.mountPoint.custom=Použiť zvolený adresár
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Zvoliť…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Vyberte adresár
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Heslo
|
||||
vaultOptions.masterkey.changePasswordBtn=Zmeniť heslo
|
||||
@@ -428,7 +443,9 @@ recoveryKey.display.StorageHints=Uchovávajte ho na bezpečnom mieste, ako napr.
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Resetovanie hesla
|
||||
recoveryKey.recover.prompt=Zadajte Váš kľúč obnovy pre "%s":
|
||||
recoveryKey.recover.validKey=Toto je platný kľúč obnovy
|
||||
recoveryKey.recover.correctKey=Toto je platný kľúč obnovy
|
||||
recoveryKey.recover.wrongKey=Tento kľúč obnovy patrí inému trezoru
|
||||
recoveryKey.recover.invalidKey=Toto je neplatný kľúč obnovy
|
||||
recoveryKey.printout.heading=Kľúč obnovy Cryptomator-a\n "%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Resetovať
|
||||
|
||||
@@ -54,7 +54,6 @@ error.technicalDetails=Podrobnosti:
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=Poizkusi znova
|
||||
@@ -79,6 +78,7 @@ lock.forced.retryBtn=Poizkusi znova
|
||||
## General
|
||||
## Interface
|
||||
## Volume
|
||||
preferences.volume.docsTooltip=Informacije o različnih podatkovnih nosilcih najdete v navodilih.
|
||||
## Updates
|
||||
## Contribution
|
||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||
@@ -117,6 +117,9 @@ main.vaultDetail.locateEncryptedFileBtn=Poišči šifrirano datoteko
|
||||
## Display Recovery Key
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.correctKey=Obnovitveni ključ je pravilen
|
||||
recoveryKey.recover.wrongKey=Ta obnovitveni ključ se ujema z drugim trezorjem
|
||||
recoveryKey.recover.invalidKey=Obnovitveni ključ ni pravilen
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
|
||||
@@ -111,7 +111,6 @@ unlock.success.revealBtn=Otvori disk
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.description=Zaključavanje "%s" je blokirano operacijama na čekanju ili otvorenim datotekama. Možete prisilno zaključati ovaj sef, međutim prekid "I/O" operacija može rezultirati gubitkom nesačuvanih podataka.
|
||||
@@ -186,27 +185,21 @@ stats.title=Statistika za %s
|
||||
stats.cacheHitRate=Frekventnost keš memorije
|
||||
## Read
|
||||
stats.read.throughput.idle=Čitanje: u pripravnosti
|
||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||
stats.read.total.data.none=Učitano podataka: -
|
||||
stats.read.total.data.kib=Učitano podataka: %.1f kiB
|
||||
stats.read.total.data.mib=Učitano podataka: %.1f MiB
|
||||
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
||||
stats.decr.total.data.none=Dešifrovano podataka: -
|
||||
stats.decr.total.data.kib=Dešifrovano podataka: %.1f kiB
|
||||
stats.decr.total.data.mib=Dešifrovano podataka: %.1f MiB
|
||||
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
||||
stats.read.accessCount=Укупно учитано: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Писање: у приправности
|
||||
stats.write.throughput.kibs=Писање: %.2f kiB/s
|
||||
stats.write.throughput.mibs=Писање: %.2f MiB/s
|
||||
stats.write.total.data.none=Уписано података: -
|
||||
stats.write.total.data.kib=Уписано података: %.1f kiB
|
||||
stats.write.total.data.mib=Уписано података: %.1f MiB
|
||||
stats.write.total.data.gib=Уписано података: %.1f GiB
|
||||
stats.encr.total.data.none=Шифровано података: -
|
||||
stats.encr.total.data.kib=Шифровано података: %.1f kiB
|
||||
stats.encr.total.data.mib=Шифровано података: %.1f MiB
|
||||
stats.encr.total.data.gib=Шифровано података: %.1f GiB
|
||||
stats.write.accessCount=Укупно уписано: %d
|
||||
@@ -246,7 +239,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
||||
main.vaultDetail.bytesPerSecondRead=Читање:
|
||||
main.vaultDetail.bytesPerSecondWritten=Писање:
|
||||
main.vaultDetail.throughput.idle=у стању мировања
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Статистика сефа
|
||||
### Missing
|
||||
@@ -304,7 +296,7 @@ recoveryKey.display.StorageHints=Чувајте га на веома сигур
|
||||
## Reset Password
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.prompt=Унесите резервни кључ за "%s":
|
||||
recoveryKey.recover.validKey=Ово је исправан резервни кључ
|
||||
recoveryKey.recover.correctKey=Ово је исправан резервни кључ
|
||||
recoveryKey.printout.heading=Cryptomator Резервни Кључ\n"%s"\n
|
||||
### Reset Password
|
||||
### Recovery Key Password Reset Success
|
||||
|
||||
@@ -104,7 +104,6 @@ unlock.success.revealBtn=Otvori disk
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
@@ -176,14 +175,11 @@ stats.title=Statistika za %s
|
||||
stats.cacheHitRate=Frekventnost keš memorije
|
||||
## Read
|
||||
stats.read.throughput.idle=Čitanje: u pripravnosti
|
||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||
stats.read.total.data.none=Učitano podataka: -
|
||||
stats.read.total.data.kib=Učitano podataka: %.1f kiB
|
||||
stats.read.total.data.mib=Učitano podataka: %.1f MiB
|
||||
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
||||
stats.decr.total.data.none=Dešifrovano podataka: -
|
||||
stats.decr.total.data.kib=Dešifrovano podataka: %.1f kiB
|
||||
stats.decr.total.data.mib=Dešifrovano podataka: %.1f MiB
|
||||
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
||||
## Write
|
||||
|
||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Ett fel uppstod i namngivningsprocessen. För mer
|
||||
hub.unauthorized.message=Åtkomst nekad
|
||||
hub.unauthorized.description=Din enhet har ännu inte behörighet att komma åt detta valv. Be valvägaren att godkänna det.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Licensen överskriden
|
||||
hub.licenseExceeded.description=Cryptomator Hub har gett tillgång till fler användare än licensen medger. Kontakta din Hub-administratör för att uppgradera licensen eller en valvadministratör för att minska antalet användare i valv.
|
||||
|
||||
hub.invalidLicense.message=Din Hub-licens är ogiltig
|
||||
hub.invalidLicense.description=Din Cryptomator Hub-instans har en ogiltig licens. Vänligen informera en Hub administratör för att uppgradera eller förnya licensen.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Visa ikon i aktivitetsfältet (kräver omstar
|
||||
preferences.volume=Virtuell enhet
|
||||
preferences.volume.type=Volymtyp (kräver omstart)
|
||||
preferences.volume.type.automatic=Automatiskt
|
||||
preferences.volume.docsTooltip=Öppna dokumentationen för att läsa mer om de olika volymtyperna.
|
||||
preferences.volume.tcp.port=TCP-port
|
||||
preferences.volume.supportedFeatures=Den valda volymtypen stöder följande funktioner:
|
||||
preferences.volume.feature.mountAuto=Automatiskt val av monteringspunkt
|
||||
@@ -303,27 +303,27 @@ stats.title=Statistik för %s
|
||||
stats.cacheHitRate=Cache frekvens
|
||||
## Read
|
||||
stats.read.throughput.idle=Läs: inaktiv
|
||||
stats.read.throughput.kibs=Läs: %.2f kiB/s
|
||||
stats.read.throughput.kibs=Läst: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Läs: %.2f kiB/s
|
||||
stats.read.total.data.none=Data läst: -
|
||||
stats.read.total.data.kib=Data läst: %.1f kiB
|
||||
stats.read.total.data.kib=Data läst: %.1f KiB
|
||||
stats.read.total.data.mib=Data läst: %.1f kiB
|
||||
stats.read.total.data.gib=Data läst: %.1f GiB
|
||||
stats.decr.total.data.none=Data dekrypterad: -
|
||||
stats.decr.total.data.kib=Data dekrypterad: %.1f kiB
|
||||
stats.decr.total.data.kib=Dekrypterade data: %.1f KiB
|
||||
stats.decr.total.data.mib=Data dekrypterad: %.1f MiB
|
||||
stats.decr.total.data.gib=Data dekrypterad: %.1f GiB
|
||||
stats.read.accessCount=Totalt läst: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Skriv: inaktiv
|
||||
stats.write.throughput.kibs=Skriv: %.2f kiB/s
|
||||
stats.write.throughput.kibs=Skriv: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Skriv: %.2f MiB/s
|
||||
stats.write.total.data.none=Data skrivet: -
|
||||
stats.write.total.data.kib=Data skrivet: %.1f kiB
|
||||
stats.write.total.data.kib=Data skrivet: %.1f KiB
|
||||
stats.write.total.data.mib=Data skrivet: %.1f MiB
|
||||
stats.write.total.data.gib=Data skrivet: %.1f GiB
|
||||
stats.encr.total.data.none=Data krypterad: -
|
||||
stats.encr.total.data.kib=Data krypterad: %.1f kiB
|
||||
stats.encr.total.data.kib=Krypterade data: %.1f KiB
|
||||
stats.encr.total.data.mib=Data krypterad: %.1f MiB
|
||||
stats.encr.total.data.gib=Data krypterad: %.1f GiB
|
||||
stats.write.accessCount=Totalt skrivet: %d
|
||||
@@ -365,7 +365,7 @@ main.vaultDetail.lockBtn=Lås
|
||||
main.vaultDetail.bytesPerSecondRead=Läs:
|
||||
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
||||
main.vaultDetail.throughput.idle=inaktiv
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Valv Statistik
|
||||
main.vaultDetail.locateEncryptedFileBtn=Leta upp krypterad fil
|
||||
@@ -437,7 +437,9 @@ recoveryKey.display.StorageHints=Spara den på en säker plats, t.ex:\n • I en
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Återställ lösenord
|
||||
recoveryKey.recover.prompt=Ange din återställningsnyckel för "%s":
|
||||
recoveryKey.recover.validKey=Detta är en giltig återställningsnyckel
|
||||
recoveryKey.recover.correctKey=Denna återställningsnyckel är korrekt
|
||||
recoveryKey.recover.wrongKey=Denna återställningsnyckel tillhör ett annat valv
|
||||
recoveryKey.recover.invalidKey=Denna återställningsnyckel är ogiltig
|
||||
recoveryKey.printout.heading=Cryptomator återställningsnyckel\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Återställ
|
||||
|
||||
@@ -123,7 +123,14 @@ unlock.success.description=Imefunguliwa "%s" kwa mafanikio! Kuba yako sasa inapa
|
||||
unlock.success.rememberChoice=Kumbuka chaguo, usionyeshe hii tena
|
||||
unlock.success.revealBtn=Fichua Kiendeshaji
|
||||
## Failure
|
||||
unlock.error.customPath.message=Haiwezi kupachika kuba kwenye njia maalum
|
||||
unlock.error.customPath.description.notSupported=Ikiwa ungependa kuendelea kutumia njia maalum, tafadhali nenda kwa mapendeleo na uchague aina ya sauti inayoitumia. Vinginevyo, nenda kwa chaguo za kuba na uchague sehemu ya kupachika inayotumika.
|
||||
unlock.error.customPath.description.notExists=Njia maalum ya kupachika haipo. Iunde katika mfumo wako wa faili wa karibu au ubadilishe katika chaguzi za kuba.
|
||||
unlock.error.customPath.description.generic=Umechagua njia maalum ya kupachika kwa kuba hii, lakini kuitumia imeshindwa na ujumbe: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Imeshindwa kufikia ufunguo wa kifaa
|
||||
hub.noKeychain.description=Ili kufungua kuba za Hub, ufunguo wa kifaa unahitajika, ambao hulindwa kwa kutumia mnyororo wa vitufe. Ili kuendelea, washa "%s" na uchague mnyororo wa vitufe katika mapendeleo.
|
||||
hub.noKeychain.openBtn=Fungua Mapendeleo
|
||||
### Waiting
|
||||
hub.auth.message=Inasubiri uthibitishaji…
|
||||
hub.auth.description=Unapaswa kuelekezwa upya kiotomatiki kwa ukurasa wa kuingia.
|
||||
@@ -147,9 +154,8 @@ hub.registerFailed.description=Hitilafu imetupwa katika mchakato wa kumtaja. Kwa
|
||||
hub.unauthorized.message=Ufikiaji umekataliwa
|
||||
hub.unauthorized.description=Kifaa chako bado hakijaidhinishwa kufikia kuba hii. Uliza mwenye kuba aidhinishe.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Leseni imepitwa
|
||||
hub.licenseExceeded.description=Cryptomator Hub imetoa ufikiaji kwa watumiaji zaidi ya vibali vyake vya leseni. Tafadhali wasiliana na msimamizi wako wa Hub ili kuboresha leseni au msimamizi wa kuba ili kuondoa watumiaji kwenye kuba.
|
||||
|
||||
hub.invalidLicense.message=Leseni ya Hub ni batili
|
||||
hub.invalidLicense.description=Mfano wako wa Cryptomator Hub una leseni batili. Tafadhali mjulishe msimamizi wa Hub ili kuboresha au kusasisha leseni.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -165,6 +171,11 @@ lock.fail.description=Kuba "%s" haikuweza kufungwa. Hakikisha kazi isiyohifadhiw
|
||||
migration.title=Pandisha daraja Kuba
|
||||
## Start
|
||||
migration.start.header=Pandisha daraja Kuba
|
||||
migration.start.text=Ili kufungua kuba yako "%s" katika toleo hili jipya la Cryptomator, kuba inahitaji kuboreshwa hadi umbizo jipya zaidi. Kabla ya kufanya hivyo, unapaswa kujua yafuatayo:
|
||||
migration.start.remarkUndone=Uboreshaji huu hauwezi kutenduliwa.
|
||||
migration.start.remarkVersions=Matoleo ya zamani ya Cryptomator hayataweza kufungua kuba iliyosasishwa.
|
||||
migration.start.remarkCanRun=Lazima uwe na uhakika kwamba kila kifaa ambacho unaweza kufikia kubaki kinaweza kutumia toleo hili la Cryptomator.
|
||||
migration.start.remarkSynced=Lazima uhakikishe kuwa kuba yako imesawazishwa kikamilifu kwenye kifaa hiki, na kwenye vifaa vyako vingine, kabla ya kukiboresha.
|
||||
migration.start.confirm=Nimesoma na kuelewa habari hapo juu
|
||||
## Run
|
||||
migration.run.enterPassword=Ingiza neno la siri ya "%s"
|
||||
@@ -213,8 +224,25 @@ health.check.detail.checkFinished=Ukaguzi umekamilika kwa ufanisi.
|
||||
health.check.detail.checkFinishedAndFound=Ukaguzi ulimaliza kukimbia. Tafadhali angalia matokeo.
|
||||
health.check.detail.checkFailed=Ukaguzi ulitoka kwa sababu ya kosa.
|
||||
health.check.detail.checkCancelled=Ukaguzi ulikatishwa.
|
||||
health.check.detail.listFilters.label=Chuja
|
||||
health.check.detail.fixAllSpecificBtn=Rekebisha aina zote
|
||||
health.check.exportBtn=Hamisha Ripoti
|
||||
## Result view
|
||||
health.result.severityFilter.all=Ukali - Yote
|
||||
health.result.severityFilter.good=Nzuri
|
||||
health.result.severityFilter.info=Taarifa
|
||||
health.result.severityFilter.warn=Onyo
|
||||
health.result.severityFilter.crit=Muhimu
|
||||
health.result.severityTip.good=Ukali: Nzuri\nMuundo wa kuba ya kawaida.
|
||||
health.result.severityTip.info=Ukali: Taarifa\nMuundo wa kuba ukiwa mzima, marekebisho yamependekezwa.
|
||||
health.result.severityTip.warn=Ukali: Onyo\nMuundo wa kuba umeharibika, rekebisha inashauriwa sana.
|
||||
health.result.severityTip.crit=Ukali: Muhimu\nMuundo wa kuba umeharibika, upotezaji wa data umebainishwa.
|
||||
health.result.fixStateFilter.all=Rekebisha hali - Yote
|
||||
health.result.fixStateFilter.fixable=Inaweza kurekebishwa
|
||||
health.result.fixStateFilter.notFixable=Haiwezi kurekebishika
|
||||
health.result.fixStateFilter.fixing=Inarekebisha…
|
||||
health.result.fixStateFilter.fixed=Imerekebishwa
|
||||
health.result.fixStateFilter.fixFailed=Imeshindwa kurekebisha
|
||||
## Fix Application
|
||||
health.fix.fixBtn=Kurekebisha
|
||||
health.fix.successTip=Rekebisha imefanikiwa
|
||||
@@ -246,7 +274,15 @@ preferences.interface.showMinimizeButton=Onyesha kitufe cha kupunguza
|
||||
preferences.interface.showTrayIcon=Onyesha ikoni ya trei (inahitaji kuanzisha upya)
|
||||
## Volume
|
||||
preferences.volume=Kiendeshi pepe
|
||||
preferences.volume.type=Aina ya Sauti (inahitaji kuanzishwa upya)
|
||||
preferences.volume.type.automatic=Otomatiki
|
||||
preferences.volume.docsTooltip=Fungua hati ili kujifunza zaidi kuhusu aina tofauti za sauti.
|
||||
preferences.volume.tcp.port=Bandari ya TCP
|
||||
preferences.volume.supportedFeatures=Aina ya sauti iliyochaguliwa inasaidia vipengele vifuatavyo:
|
||||
preferences.volume.feature.mountAuto=Uchaguzi wa sehemu ya kupachika otomatiki
|
||||
preferences.volume.feature.mountToDir=Saraka maalum kama sehemu ya kupachika
|
||||
preferences.volume.feature.mountToDriveLetter=Endesha barua kama sehemu ya kupachika
|
||||
preferences.volume.feature.mountFlags=Chaguzi maalum za kupachika
|
||||
## Updates
|
||||
preferences.updates=Sasishi
|
||||
preferences.updates.currentVersion=Toleo la Sasa: %s
|
||||
@@ -269,32 +305,34 @@ stats.title=Takwimu za %s
|
||||
stats.cacheHitRate=Kiwango cha Hit ya Akiba
|
||||
## Read
|
||||
stats.read.throughput.idle=Soma: bila kazi
|
||||
stats.read.throughput.kibs=Soma:%.2f kiB/s
|
||||
stats.read.throughput.kibs=Soma: %.2f KiB/s
|
||||
stats.read.throughput.mibs=Soma:%.2fMiB/s
|
||||
stats.read.total.data.none=Data soma: -
|
||||
stats.read.total.data.kib=Data soma:%.1f kiB
|
||||
stats.read.total.data.kib=Data imesomwa: %.1f KiB
|
||||
stats.read.total.data.mib=Data soma: %.1f MiB
|
||||
stats.read.total.data.gib=Data soma: %.1f GiB
|
||||
stats.decr.total.data.none=Data iliyosimbwa kwa njia fiche: -
|
||||
stats.decr.total.data.kib=Data iliyosimbwa kwa njia fiche: %.1f kiB
|
||||
stats.decr.total.data.kib=Data imesimbwa: %.1f KiB
|
||||
stats.decr.total.data.mib=Data iliyosimbwa kwa njia fiche: %.1fMiB
|
||||
stats.decr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
||||
stats.read.accessCount=Jumla ya kusoma: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=Andika: bila kazi
|
||||
stats.write.throughput.kibs=Andika:%.2f kiB/s
|
||||
stats.write.throughput.kibs=Andika: %.2f KiB/s
|
||||
stats.write.throughput.mibs=Andika: %.2f MiB/s
|
||||
stats.write.total.data.none=Data iliyoandikwa: -
|
||||
stats.write.total.data.kib=Data iliyoandikwa: %.1f kiB
|
||||
stats.write.total.data.kib=Data iliyoandikwa: %.1f KiB
|
||||
stats.write.total.data.mib=Data iliyoandikwa: %.1f MiB
|
||||
stats.write.total.data.gib=Data iliyoandikwa: %.1f GiB
|
||||
stats.encr.total.data.none=Data iliyosimbwa kwa njia fiche: -
|
||||
stats.encr.total.data.kib=Data iliyosimbwa kwa njia fiche: %.1f kiB
|
||||
stats.encr.total.data.kib=Data imesimbwa kwa njia fiche: %.1f KiB
|
||||
stats.encr.total.data.mib=Data iliyosimbwa kwa njia fiche: %.1f MiB
|
||||
stats.encr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
||||
stats.write.accessCount=Jumla ya maandishi anaandika: %d
|
||||
|
||||
## Accesses
|
||||
stats.access.current=Ufikiaji: %d
|
||||
stats.access.total=Jumla ya ufikiaji: %d
|
||||
|
||||
|
||||
# Main Window
|
||||
@@ -325,13 +363,18 @@ main.vaultDetail.passwordSavedInKeychain=Neno la siri limehifadhiwa
|
||||
main.vaultDetail.unlockedStatus=IMEFUNGULIWA
|
||||
main.vaultDetail.accessLocation=Yaliyomo kwenye kuba yako yanapatikana hapa:
|
||||
main.vaultDetail.revealBtn=Fichua Kiendeshaji
|
||||
main.vaultDetail.copyUri=Nakili URI
|
||||
main.vaultDetail.lockBtn=Funga
|
||||
main.vaultDetail.bytesPerSecondRead=Soma:
|
||||
main.vaultDetail.bytesPerSecondWritten=Andika:
|
||||
main.vaultDetail.throughput.idle=imezubaa
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Takwimu za Kuba
|
||||
main.vaultDetail.locateEncryptedFileBtn=Tafuta Faili Iliyosimbwa kwa Njia Fiche
|
||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Chagua faili kutoka kwa chumba chako ili kupata mwenza wake uliosimbwa kwa njia fiche
|
||||
main.vaultDetail.encryptedPathsCopied=Njia Zimenakiliwa kwenye Ubao wa kunakili!
|
||||
main.vaultDetail.filePickerTitle=Chagua Faili Ndani ya Kuba
|
||||
### Missing
|
||||
main.vaultDetail.missing.info=Cryptomator haikuweza kupata kuba katika njia hii.
|
||||
main.vaultDetail.missing.recheck=Kagua upya
|
||||
@@ -370,13 +413,17 @@ vaultOptions.general.startHealthCheckBtn=Anza Ukaguzi wa Afya
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Kuweka
|
||||
vaultOptions.mount.info=Chaguzi hutegemea aina ya sauti iliyochaguliwa.
|
||||
vaultOptions.mount.linkToPreferences=Fungua mapendeleo ya hifadhi pepe
|
||||
vaultOptions.mount.readonly=Soma-Tu
|
||||
vaultOptions.mount.customMountFlags=Vipepea Vya Mlima Maalum
|
||||
vaultOptions.mount.winDriveLetterOccupied=ulichukua
|
||||
vaultOptions.mount.mountPoint=Pointi ya kuweka
|
||||
vaultOptions.mount.mountPoint.auto=Chagua otomatiki mahali panapofaa
|
||||
vaultOptions.mount.mountPoint.driveLetter=Tumia barua kiendeshi kilichopangiwa
|
||||
vaultOptions.mount.mountPoint.custom=Tumia saraka iliyochaguliwa
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Chagua…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Chagua saraka
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Neno la siri
|
||||
vaultOptions.masterkey.changePasswordBtn=Badilisha Neno la siri
|
||||
@@ -397,7 +444,9 @@ recoveryKey.display.StorageHints=Weka mahali salama sana, kwa mfano:\n • Hifad
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Fufua Neno la siri
|
||||
recoveryKey.recover.prompt=Ingiza ufunguo wako wa kurejesha kwa "%s":
|
||||
recoveryKey.recover.validKey=Hii ni ufunguo halali wa kurejesha
|
||||
recoveryKey.recover.correctKey=Hii ni ufunguo halali wa kurejesha
|
||||
recoveryKey.recover.wrongKey=Ufunguo huu wa urejeshaji ni wa kuba tofauti
|
||||
recoveryKey.recover.invalidKey=Ufunguo huu wa kurejesha si sahihi
|
||||
recoveryKey.printout.heading=Ufunguo wa Urejeshaji wa Cryptomator\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Weka upya
|
||||
|
||||
@@ -126,7 +126,6 @@ unlock.success.revealBtn=இயக்ககத்தை வெளிப்பட
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.message=பூட்டுதல் தோல்வியடைந்தது
|
||||
@@ -197,27 +196,21 @@ stats.title=%s க்கான புள்ளிவிவரங்கள்
|
||||
stats.cacheHitRate=தற்காலிக சேமிப்பு வீதம்
|
||||
## Read
|
||||
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 kiB
|
||||
stats.read.total.data.mib=படிக்கப்பட்ட தரவு: %.1f MiB
|
||||
stats.read.total.data.gib=படிக்கப்பட்ட தரவு: %.1f GiB
|
||||
stats.decr.total.data.none=மறைகுறிநீக்கப்பட்ட தரவு: -
|
||||
stats.decr.total.data.kib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f kiB
|
||||
stats.decr.total.data.mib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f MiB
|
||||
stats.decr.total.data.gib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f GiB
|
||||
stats.read.accessCount=மொத்த வாசிப்புகள்: %d
|
||||
## Write
|
||||
stats.write.throughput.idle=எழுதப்பட்டது: செயலற்ற நிலையில்
|
||||
stats.write.throughput.kibs=எழுதப்பட்டது: %.2f kiB/s
|
||||
stats.write.throughput.mibs=எழுதப்பட்டது: %.2f MiB/s
|
||||
stats.write.total.data.none=எழுதப்பட்ட தரவு: -
|
||||
stats.write.total.data.kib=எழுதப்பட்ட தரவு: %.1f kiB
|
||||
stats.write.total.data.mib=எழுதப்பட்ட தரவு: %.1f MiB
|
||||
stats.write.total.data.gib=எழுதப்பட்ட தரவு: %.1f GiB
|
||||
stats.encr.total.data.none=குறியாக்கம் செய்யப்பட்ட தரவு: -
|
||||
stats.encr.total.data.kib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f kiB
|
||||
stats.encr.total.data.mib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f MiB
|
||||
stats.encr.total.data.gib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f GiB
|
||||
stats.write.accessCount=மொத்த எழுதப்பட்டது: %d
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
lock.forced.retryBtn=మళ్ళీ చేయండి
|
||||
|
||||
@@ -97,7 +97,6 @@ unlock.unlockBtn=ปลดล็อก
|
||||
### Unauthorized
|
||||
### License Exceeded
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
## Failure
|
||||
|
||||
@@ -123,6 +123,10 @@ unlock.success.description="%s" 'nin kilidi başarıyla açıldı! Kasanız şim
|
||||
unlock.success.rememberChoice=Seçimi hatırla, bunu bir daha gösterme
|
||||
unlock.success.revealBtn=Sürücüyü Göster
|
||||
## Failure
|
||||
unlock.error.customPath.message=Kasa özel yola bağlanamıyor
|
||||
unlock.error.customPath.description.notSupported=Özel yolu kullanmaya devam etmek istiyorsanız, lütfen tercihlere gidin ve onu destekleyen bir cilt türü seçin. Aksi takdirde kasa seçeneklerine gidin ve desteklenen bir bağlama noktası seçin.
|
||||
unlock.error.customPath.description.notExists=Özel bağlama yolu mevcut değil. Ya yerel dosya sisteminizde oluşturun ya da kasa seçeneklerinde değiştirin.
|
||||
unlock.error.customPath.description.generic=Bu kasa için özel bir bağlama yolu seçtiniz, ancak bunu kullanmak şu mesajla başarısız oldu: %s
|
||||
## Hub
|
||||
hub.noKeychain.message=Cihaz anahtarına erişilemiyor
|
||||
hub.noKeychain.description=Hub kasalarının kilidini açmak için, bir anahtarlık kullanılarak güvenliği sağlanan bir cihaz anahtarı gerekir. Devam etmek için "%s"yi etkinleştirin ve tercihlerde bir anahtarlık seçin.
|
||||
@@ -150,9 +154,8 @@ hub.registerFailed.description=İsimlendirme işleminde bir hata oluştu. Daha f
|
||||
hub.unauthorized.message=Erişim engellendi
|
||||
hub.unauthorized.description=Cihazınıza henüz bu kasaya erişim yetkisi verilmedi. Kasa sahibinden yetkilendirmesini isteyin.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Lisans aşıldı
|
||||
hub.licenseExceeded.description=Cryptomator Hub, lisansının izin verdiğinden daha fazla kullanıcıya erişim sağladı. Lisansı yükseltmek için lütfen Hub yöneticinizle veya kullanıcıları kasalardan kaldırmak için bir kasa yöneticisiyle iletişime geçin.
|
||||
|
||||
hub.invalidLicense.message=Hub Lisansı geçersiz
|
||||
hub.invalidLicense.description=Cryptomator Hub örneğinizde geçersiz bir lisans var. Lisansı yükseltmesi veya yenilemesi için lütfen bir Hub yöneticisini bilgilendirin.
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -271,7 +274,16 @@ preferences.interface.showMinimizeButton=Küçültme düğmesini göster
|
||||
preferences.interface.showTrayIcon=Sistem tepsisi simgesini göster (Yeniden başlatma gerekir)
|
||||
## Volume
|
||||
preferences.volume=Sanal Sürücü
|
||||
preferences.volume.type=Birim Türü (yeniden başlatma gerektirir)
|
||||
preferences.volume.type.automatic=Otomatik
|
||||
preferences.volume.docsTooltip=Farklı birim türleri hakkında daha fazla bilgi edinmek için belgeleri açın.
|
||||
preferences.volume.tcp.port=TCP Portu
|
||||
preferences.volume.supportedFeatures=Seçilen birim türü aşağıdaki özellikleri destekler:
|
||||
preferences.volume.feature.mountAuto=Otomatik bağlama noktası seçimi
|
||||
preferences.volume.feature.mountToDir=Bağlama noktası olarak özel dizin
|
||||
preferences.volume.feature.mountToDriveLetter=Bağlama noktası olarak sürücü harfi
|
||||
preferences.volume.feature.mountFlags=Özel bağlama seçenekleri
|
||||
preferences.volume.feature.readOnly=Salt okunur bağlama
|
||||
## Updates
|
||||
preferences.updates=Güncellemeler
|
||||
preferences.updates.currentVersion=Mevcut Sürüm: %s
|
||||
@@ -352,11 +364,12 @@ main.vaultDetail.passwordSavedInKeychain=Şifre kaydedildi
|
||||
main.vaultDetail.unlockedStatus=KİLİDİ AÇIK
|
||||
main.vaultDetail.accessLocation=Kasa içeriğinize buradan erişilebilir:
|
||||
main.vaultDetail.revealBtn=Sürücüyü Göster
|
||||
main.vaultDetail.copyUri=Linki kopyala
|
||||
main.vaultDetail.lockBtn=Kilitle
|
||||
main.vaultDetail.bytesPerSecondRead=Okuma:
|
||||
main.vaultDetail.bytesPerSecondWritten=Yazma:
|
||||
main.vaultDetail.throughput.idle=boşta
|
||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
||||
main.vaultDetail.throughput.kbps=%.1f kB/s
|
||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||
main.vaultDetail.stats=Kasa İstatistikleri
|
||||
main.vaultDetail.locateEncryptedFileBtn=Şifrelenmiş Dosyayı Bul
|
||||
@@ -401,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Sağlık Kontrolünü Başlat
|
||||
|
||||
## Mount
|
||||
vaultOptions.mount=Bağlantı
|
||||
vaultOptions.mount.info=Seçenekler, seçilen birim tipine bağlıdır.
|
||||
vaultOptions.mount.linkToPreferences=Sanal sürücü tercihlerini aç
|
||||
vaultOptions.mount.readonly=Salt-Okunur
|
||||
vaultOptions.mount.customMountFlags=Özel Bağlantı Parametreleri
|
||||
vaultOptions.mount.winDriveLetterOccupied=meşgul
|
||||
vaultOptions.mount.mountPoint=Bağlantı Noktası
|
||||
vaultOptions.mount.mountPoint.auto=Otomatik uygun yer bul
|
||||
vaultOptions.mount.mountPoint.driveLetter=Bir sürücü harfi kullan
|
||||
vaultOptions.mount.mountPoint.custom=Seçilen dizini kullan
|
||||
vaultOptions.mount.mountPoint.directoryPickerButton=Seç…
|
||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Dizin seçin
|
||||
## Master Key
|
||||
vaultOptions.masterkey=Şifre
|
||||
vaultOptions.masterkey.changePasswordBtn=Şifreyi Değiştir
|
||||
@@ -428,7 +445,9 @@ recoveryKey.display.StorageHints=Bunu çok güvenli bir yerde saklayın, örneğ
|
||||
### Enter Recovery Key
|
||||
recoveryKey.recover.title=Şifreyi Sıfırla
|
||||
recoveryKey.recover.prompt="%s" için kurtarma anahtarınızı girin:
|
||||
recoveryKey.recover.validKey=Bu geçerli bir kurtarma anahtarı
|
||||
recoveryKey.recover.correctKey=Bu geçerli bir kurtarma anahtarı
|
||||
recoveryKey.recover.wrongKey=Bu kurtarma anahtarı farklı bir kasaya ait
|
||||
recoveryKey.recover.invalidKey=Bu kurtarma anahtarı geçerli değil
|
||||
recoveryKey.printout.heading=Cryptomator Kurtarma Anahtarı\n"%s"\n
|
||||
### Reset Password
|
||||
recoveryKey.recover.resetBtn=Sıfırla
|
||||
|
||||
@@ -146,9 +146,6 @@ hub.registerFailed.description=Виникла помилка у процесі
|
||||
hub.unauthorized.message=У доступі відмовлено
|
||||
hub.unauthorized.description=Ваш пристрій ще не має прав доступу до цього vault. Попросіть власника vault надати їх.
|
||||
### License Exceeded
|
||||
hub.licenseExceeded.message=Кількість користувачів перевищено
|
||||
hub.licenseExceeded.description=Cryptomator Hub надав доступ більшій кількості користувачів, ніж дозволяє ліцензія. Будь ласка, зверніться до адміністратора вашого Hub, щоб покращити ліцензію або адміністратора vault, щоб видалити користувачів з vaults.
|
||||
|
||||
|
||||
# Lock
|
||||
## Force
|
||||
@@ -268,7 +265,6 @@ main.vaultDetail.lockBtn=Заблокувати
|
||||
main.vaultDetail.bytesPerSecondRead=Зчитування:
|
||||
main.vaultDetail.bytesPerSecondWritten=Запис:
|
||||
main.vaultDetail.throughput.idle=простій
|
||||
main.vaultDetail.throughput.kbps=%.1f КіБ/c
|
||||
main.vaultDetail.throughput.mbps=%.1f МіБ/c
|
||||
main.vaultDetail.stats=Статистика Vault
|
||||
main.vaultDetail.locateEncryptedFileBtn=Знайти Зашифрований Файл
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user