mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-09-26 09:54:15 +00:00
Compare commits
96
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 |
@@ -37,12 +37,17 @@ body:
|
|||||||
id: volume-type
|
id: volume-type
|
||||||
attributes:
|
attributes:
|
||||||
label: Volume Type
|
label: Volume Type
|
||||||
description: What is selected under Settings → Virtual Drive?
|
description: What volume type is selected under Settings → Virtual Drive?
|
||||||
multiple: true
|
|
||||||
options:
|
options:
|
||||||
- FUSE
|
- WinFsp
|
||||||
- Dokany
|
- WinFsp (Local Drive)
|
||||||
- WebDAV
|
- FUSE-T
|
||||||
|
- macFUSE
|
||||||
|
- WebDAV (Windows Explorer)
|
||||||
|
- WebDAV (AppleScript)
|
||||||
|
- WebDAV (gio)
|
||||||
|
- WebDAV (HTTP Address)
|
||||||
|
- Dokany (1.5)
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
JAVA_VERSION: 19
|
JAVA_VERSION: 19
|
||||||
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/19/openjfx-19_linux-x64_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/openjfx-19_linux-aarch64_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:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|||||||
@@ -30,10 +30,12 @@ jobs:
|
|||||||
architecture: x64
|
architecture: x64
|
||||||
output-suffix: x64
|
output-suffix: x64
|
||||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||||
|
fuse-lib: macFUSE
|
||||||
- os: [self-hosted, macOS, ARM64]
|
- os: [self-hosted, macOS, ARM64]
|
||||||
architecture: aarch64
|
architecture: aarch64
|
||||||
output-suffix: arm64
|
output-suffix: arm64
|
||||||
xcode-path: '/Applications/Xcode_13.2.1.app'
|
xcode-path: '/Applications/Xcode_13.2.1.app'
|
||||||
|
fuse-lib: FUSE-T
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- name: Setup Java
|
- name: Setup Java
|
||||||
@@ -177,7 +179,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
mkdir dmg
|
mkdir dmg
|
||||||
mv Cryptomator.app 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
|
ls -l dmg
|
||||||
- name: Install create-dmg
|
- name: Install create-dmg
|
||||||
run: |
|
run: |
|
||||||
@@ -188,14 +190,14 @@ jobs:
|
|||||||
create-dmg
|
create-dmg
|
||||||
--volname Cryptomator
|
--volname Cryptomator
|
||||||
--volicon "dist/mac/dmg/resources/Cryptomator-Volume.icns"
|
--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-pos 400 100
|
||||||
--window-size 640 694
|
--window-size 640 694
|
||||||
--icon-size 128
|
--icon-size 128
|
||||||
--icon "Cryptomator.app" 128 245
|
--icon "Cryptomator.app" 128 245
|
||||||
--hide-extension "Cryptomator.app"
|
--hide-extension "Cryptomator.app"
|
||||||
--icon "macFUSE.webloc" 320 501
|
--icon "${{ matrix.fuse-lib }}.webloc" 320 501
|
||||||
--hide-extension "macFUSE.webloc"
|
--hide-extension "${{ matrix.fuse-lib }}.webloc"
|
||||||
--app-drop-link 512 245
|
--app-drop-link 512 245
|
||||||
--eula "dist/mac/dmg/resources/license.rtf"
|
--eula "dist/mac/dmg/resources/license.rtf"
|
||||||
--icon ".background" 128 758
|
--icon ".background" 128 758
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Download source tarball
|
- name: Download source tarball
|
||||||
run: |
|
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
|
- name: Sign source tarball with key 615D449FE6E6A235
|
||||||
run: |
|
run: |
|
||||||
echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import
|
echo "${GPG_PRIVATE_KEY}" | gpg --batch --quiet --import
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ jobs:
|
|||||||
--name Cryptomator
|
--name Cryptomator
|
||||||
--vendor "Skymatic GmbH"
|
--vendor "Skymatic GmbH"
|
||||||
--copyright "(C) 2016 - 2023 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-menu
|
||||||
--win-dir-chooser
|
--win-dir-chooser
|
||||||
--win-shortcut-prompt
|
--win-shortcut-prompt
|
||||||
@@ -203,15 +203,6 @@ jobs:
|
|||||||
*.msi
|
*.msi
|
||||||
*.asc
|
*.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:
|
build-exe:
|
||||||
name: Build .exe installer
|
name: Build .exe installer
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
@@ -243,13 +234,14 @@ jobs:
|
|||||||
shell: pwsh
|
shell: pwsh
|
||||||
- name: Download WinFsp
|
- name: Download WinFsp
|
||||||
run: |
|
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
|
curl --output dist/win/bundle/resources/winfsp.msi -L $winfspUrl
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
- name: Compile to wixObj file
|
- name: Compile to wixObj file
|
||||||
run: >
|
run: >
|
||||||
"${WIX}/bin/candle.exe" dist/win/bundle/bundleWithWinfsp.wxs
|
"${WIX}/bin/candle.exe" dist/win/bundle/bundleWithWinfsp.wxs
|
||||||
-ext WixBalExtension
|
-ext WixBalExtension
|
||||||
|
-ext WixUtilExtension
|
||||||
-out dist/win/bundle/
|
-out dist/win/bundle/
|
||||||
-dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
-dBundleVersion="${{ needs.get-version.outputs.semVerNum }}.${{ needs.get-version.outputs.revNum }}"
|
||||||
-dBundleVendor="Skymatic GmbH"
|
-dBundleVendor="Skymatic GmbH"
|
||||||
@@ -261,6 +253,7 @@ jobs:
|
|||||||
run: >
|
run: >
|
||||||
"${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj
|
"${WIX}/bin/light.exe" -b dist/win/ dist/win/bundle/bundleWithWinfsp.wixobj
|
||||||
-ext WixBalExtension
|
-ext WixBalExtension
|
||||||
|
-ext WixUtilExtension
|
||||||
-out installer/unsigned/Cryptomator-Installer.exe
|
-out installer/unsigned/Cryptomator-Installer.exe
|
||||||
- name: Detach burn engine in preparation to sign
|
- name: Detach burn engine in preparation to sign
|
||||||
run: >
|
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.fastInit" value="enabled" />
|
||||||
<option name="dagger.formatGeneratedSource" value="enabled" />
|
<option name="dagger.formatGeneratedSource" value="enabled" />
|
||||||
<processorPath useClasspath="false">
|
<processorPath useClasspath="false">
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/dagger/dagger-compiler/2.44/dagger-compiler-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.44/dagger-2.44.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$/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/failureaccess/1.0.1/failureaccess-1.0.1.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/guava/guava/31.0.1-jre/guava-31.0.1-jre.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar" />
|
||||||
@@ -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/errorprone/error_prone_annotations/2.7.1/error_prone_annotations-2.7.1.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/j2objc/j2objc-annotations/1.3/j2objc-annotations-1.3.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/org/checkerframework/checker-compat-qual/2.5.5/checker-compat-qual-2.5.5.jar" />
|
<entry name="$MAVEN_REPOSITORY$/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$/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/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/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$/org/jetbrains/annotations/13.0/annotations-13.0.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/squareup/javapoet/1.13.0/javapoet-1.13.0.jar" />
|
||||||
|
<entry name="$MAVEN_REPOSITORY$/com/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-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-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/googlejavaformat/google-java-format/1.5/google-java-format-1.5.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
<entry name="$MAVEN_REPOSITORY$/com/google/errorprone/javac-shaded/9-dev-r4023-3/javac-shaded-9-dev-r4023-3.jar" />
|
||||||
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
<entry name="$MAVEN_REPOSITORY$/net/ltgt/gradle/incap/incap/0.2/incap-0.2.jar" />
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<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://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>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@@ -32,7 +31,6 @@ Cryptomator is provided free of charge as an open-source project despite the hig
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="https://mowcapital.com/"><img src="https://cryptomator.org/img/sponsors/mowcapital.svg" alt="Mow Capital" height="40"></a></td>
|
<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>
|
<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>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@@ -74,7 +72,7 @@ Download native binaries of Cryptomator on [cryptomator.org](https://cryptomator
|
|||||||
|
|
||||||
### Consistency
|
### 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
|
- 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)
|
- 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>
|
</content_rating>
|
||||||
|
|
||||||
<releases>
|
<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-14" version="1.6.17"/>
|
||||||
<release date="2022-12-06" version="1.6.16"/>
|
<release date="2022-12-06" version="1.6.16"/>
|
||||||
<release date="2022-10-06" version="1.6.15"/>
|
<release date="2022-10-06" version="1.6.15"/>
|
||||||
|
|||||||
Vendored
+1
-1
@@ -12,7 +12,7 @@ Package: cryptomator
|
|||||||
Architecture: any
|
Architecture: any
|
||||||
Section: utils
|
Section: utils
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libfuse3-3
|
Depends: ${shlibs:Depends}, ${misc:Depends}, fuse3
|
||||||
Recommends: gvfs-backends, gvfs-fuse, gnome-keyring
|
Recommends: gvfs-backends, gvfs-fuse, gnome-keyring
|
||||||
XB-AppName: Cryptomator
|
XB-AppName: Cryptomator
|
||||||
XB-Category: Utility;Security;FileTools;
|
XB-Category: Utility;Security;FileTools;
|
||||||
|
|||||||
Vendored
+5
-4
@@ -27,6 +27,7 @@ MAIN_JAR_GLOB="cryptomator-*.jar"
|
|||||||
MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
MODULE_AND_MAIN_CLASS="org.cryptomator.desktop/org.cryptomator.launcher.Cryptomator"
|
||||||
REVISION_NO=`git rev-list --count HEAD`
|
REVISION_NO=`git rev-list --count HEAD`
|
||||||
VERSION_NO=`mvn -f../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout | sed -rn 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'`
|
VERSION_NO=`mvn -f../../../pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout | sed -rn 's/.*([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'`
|
||||||
|
FUSE_LIB="FUSE-T"
|
||||||
|
|
||||||
# check preconditions
|
# check preconditions
|
||||||
if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi
|
if [ -z "${JAVA_HOME}" ]; then echo "JAVA_HOME not set. Run using JAVA_HOME=/path/to/jdk ./build.sh"; exit 1; fi
|
||||||
@@ -125,20 +126,20 @@ fi
|
|||||||
# prepare dmg contents
|
# prepare dmg contents
|
||||||
mkdir dmg
|
mkdir dmg
|
||||||
mv ${APP_NAME}.app dmg
|
mv ${APP_NAME}.app dmg
|
||||||
cp resources/macFUSE.webloc dmg
|
cp resources/${FUSE_LIB}.webloc dmg
|
||||||
|
|
||||||
# create dmg
|
# create dmg
|
||||||
create-dmg \
|
create-dmg \
|
||||||
--volname ${APP_NAME} \
|
--volname ${APP_NAME} \
|
||||||
--volicon "resources/${APP_NAME}-Volume.icns" \
|
--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-pos 400 100 \
|
||||||
--window-size 640 694 \
|
--window-size 640 694 \
|
||||||
--icon-size 128 \
|
--icon-size 128 \
|
||||||
--icon "${APP_NAME}.app" 128 245 \
|
--icon "${APP_NAME}.app" 128 245 \
|
||||||
--hide-extension "${APP_NAME}.app" \
|
--hide-extension "${APP_NAME}.app" \
|
||||||
--icon "macFUSE.webloc" 320 501 \
|
--icon "${FUSE_LIB}.webloc" 320 501 \
|
||||||
--hide-extension "macFUSE.webloc" \
|
--hide-extension "${FUSE_LIB}.webloc" \
|
||||||
--app-drop-link 512 245 \
|
--app-drop-link 512 245 \
|
||||||
--eula "resources/license.rtf" \
|
--eula "resources/license.rtf" \
|
||||||
--icon ".background" 128 758 \
|
--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
+4
-4
@@ -129,7 +129,7 @@ $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
|
|||||||
--name $AppName `
|
--name $AppName `
|
||||||
--vendor $Vendor `
|
--vendor $Vendor `
|
||||||
--copyright $copyright `
|
--copyright $copyright `
|
||||||
--app-version "$semVerNo" `
|
--app-version "$semVerNo.$revisionNo" `
|
||||||
--win-menu `
|
--win-menu `
|
||||||
--win-dir-chooser `
|
--win-dir-chooser `
|
||||||
--win-shortcut-prompt `
|
--win-shortcut-prompt `
|
||||||
@@ -153,7 +153,7 @@ $Env:JP_WIXWIZARD_RESOURCES = "$buildDir\resources"
|
|||||||
# download Winfsp
|
# download Winfsp
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
$ProgressPreference = 'SilentlyContinue' # disables Invoke-WebRequest's progress bar, which slows down downloads to a few bytes/s
|
$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}..."
|
Write-Output "Downloading ${winfspMsiUrl}..."
|
||||||
Invoke-WebRequest $winfspMsiUrl -OutFile ".\bundle\resources\winfsp.msi" # redirects are followed by default
|
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"
|
Copy-Item ".\installer\$AppName-*.msi" -Destination ".\bundle\resources\$AppName.msi"
|
||||||
|
|
||||||
# create bundle including winfsp
|
# 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" `
|
-dBundleVersion="$semVerNo.$revisionNo" `
|
||||||
-dBundleVendor="$Vendor" `
|
-dBundleVendor="$Vendor" `
|
||||||
-dBundleCopyright="$copyright" `
|
-dBundleCopyright="$copyright" `
|
||||||
-dAboutUrl="$AboutUrl" `
|
-dAboutUrl="$AboutUrl" `
|
||||||
-dHelpUrl="$HelpUrl" `
|
-dHelpUrl="$HelpUrl" `
|
||||||
-dUpdateUrl="$UpdateUrl"
|
-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"?>
|
<?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-->
|
<!-- see https://wixtoolset.org/documentation/manual/v3/xsd/wix/bundle.html-->
|
||||||
<!-- Attributes explicitly not used:
|
<!-- Attributes explicitly not used:
|
||||||
Condition - the single msi files have their own install conditions, no need to copy them here
|
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)"
|
<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">
|
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/-->
|
<!-- for definition of the standard themes, see https://github.com/wixtoolset/wix3/blob/master/src/ext/BalExtension/wixstdba/Resources/-->
|
||||||
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLargeLicense">
|
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLargeLicense">
|
||||||
<!-- see https://wixtoolset.org/documentation/manual/v3/xsd/bal/wixstandardbootstrapperapplication.html -->
|
<!-- 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="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="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="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" />
|
<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>
|
<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="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>
|
<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="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>
|
<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="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>
|
<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
|
|
||||||
+3
-13
@@ -7,19 +7,9 @@
|
|||||||
|
|
||||||
#Get all active, local user profiles
|
#Get all active, local user profiles
|
||||||
$profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
|
$profileList = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList'
|
||||||
$localUsers = Get-LocalUser | Where-Object {$_.Enabled} | ForEach-Object { $_.Name}
|
Get-ChildItem $profileList | ForEach-Object {
|
||||||
|
$profilePath = $_.GetValue("ProfileImagePath")
|
||||||
Get-ChildItem $profileList | ForEach-Object { $_.GetValue("ProfileImagePath") } | Where-Object {
|
$settingsPath = "$profilePath\AppData\Roaming\Cryptomator\settings.json"
|
||||||
$profileNameMatches = ($_ | Select-String -Pattern "\\([^\\]+)$").Matches
|
|
||||||
if($profileNameMatches.Count -eq 1) {
|
|
||||||
#check if the last path part is contained in the local user name list
|
|
||||||
#otherwise do not touch it
|
|
||||||
return $localUsers.Contains($profileNameMatches[0].Groups[1].Value)
|
|
||||||
} else {
|
|
||||||
return $false;
|
|
||||||
}
|
|
||||||
} | ForEach-Object {
|
|
||||||
$settingsPath = "$_\AppData\Roaming\Cryptomator\settings.json"
|
|
||||||
if(!(Test-Path -Path $settingsPath -PathType Leaf)) {
|
if(!(Test-Path -Path $settingsPath -PathType Leaf)) {
|
||||||
#No settings file, nothing to do.
|
#No settings file, nothing to do.
|
||||||
return;
|
return;
|
||||||
|
|||||||
Vendored
+4
-4
@@ -54,7 +54,7 @@
|
|||||||
Property="JP_UPGRADABLE_FOUND"
|
Property="JP_UPGRADABLE_FOUND"
|
||||||
Maximum="$(var.JpAppVersion)"
|
Maximum="$(var.JpAppVersion)"
|
||||||
MigrateFeatures="yes"
|
MigrateFeatures="yes"
|
||||||
IncludeMaximum="$(var.JpUpgradeVersionOnlyDetectUpgrade)" />
|
IncludeMaximum="yes" /> <!-- TODO: check if this needs to be set to yes-->
|
||||||
<UpgradeVersion
|
<UpgradeVersion
|
||||||
OnlyDetect="$(var.JpUpgradeVersionOnlyDetectDowngrade)"
|
OnlyDetect="$(var.JpUpgradeVersionOnlyDetectDowngrade)"
|
||||||
Property="JP_DOWNGRADABLE_FOUND"
|
Property="JP_DOWNGRADABLE_FOUND"
|
||||||
@@ -143,11 +143,11 @@
|
|||||||
CloseMessage="no"
|
CloseMessage="no"
|
||||||
RebootPrompt="no"
|
RebootPrompt="no"
|
||||||
PromptToContinue="yes"
|
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"
|
Property="FOUNDRUNNINGAPP"
|
||||||
>
|
>
|
||||||
</util:CloseApplication>
|
</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 ?>
|
<?ifdef JpIcon ?>
|
||||||
<Property Id="ARPPRODUCTICON" Value="JpARPPRODUCTICON"/>
|
<Property Id="ARPPRODUCTICON" Value="JpARPPRODUCTICON"/>
|
||||||
@@ -182,7 +182,7 @@
|
|||||||
<Custom Action="WixCloseApplications" Before="InstallValidate"></Custom>
|
<Custom Action="WixCloseApplications" Before="InstallValidate"></Custom>
|
||||||
<Custom Action="FailOnRunningApp" After="WixCloseApplications" >FOUNDRUNNINGAPP</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="PatchWebDAV" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||||
<Custom Action="V170MigrateSettings" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
<Custom Action="V170MigrateSettings" After="InstallFiles">NOT Installed OR REINSTALL</Custom>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptomator</artifactId>
|
<artifactId>cryptomator</artifactId>
|
||||||
<version>1.7.0-SNAPSHOT</version>
|
<version>1.8.0-SNAPSHOT</version>
|
||||||
<name>Cryptomator Desktop App</name>
|
<name>Cryptomator Desktop App</name>
|
||||||
|
|
||||||
<organization>
|
<organization>
|
||||||
@@ -17,6 +17,11 @@
|
|||||||
<email>sebastian.stenzel@gmail.com</email>
|
<email>sebastian.stenzel@gmail.com</email>
|
||||||
<timezone>+1</timezone>
|
<timezone>+1</timezone>
|
||||||
</developer>
|
</developer>
|
||||||
|
<developer>
|
||||||
|
<name>Armin Schrenk</name>
|
||||||
|
<email>armin.schrenk+dev@mailbox.org</email>
|
||||||
|
<timezone>+1</timezone>
|
||||||
|
</developer>
|
||||||
</developers>
|
</developers>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@@ -28,49 +33,42 @@
|
|||||||
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents,de.swiesend,org.purejava,com.github.hypfvieh</nonModularGroupIds>
|
<nonModularGroupIds>org.ow2.asm,org.apache.jackrabbit,org.apache.httpcomponents,de.swiesend,org.purejava,com.github.hypfvieh</nonModularGroupIds>
|
||||||
|
|
||||||
<!-- cryptomator dependencies -->
|
<!-- cryptomator dependencies -->
|
||||||
<cryptomator.cryptolib.version>2.1.1</cryptomator.cryptolib.version>
|
<cryptomator.cryptofs.version>2.6.2</cryptomator.cryptofs.version>
|
||||||
<cryptomator.cryptofs.version>2.6.1</cryptomator.cryptofs.version>
|
<cryptomator.integrations.version>1.2.0</cryptomator.integrations.version>
|
||||||
<cryptomator.integrations.version>1.2.0-beta4</cryptomator.integrations.version>
|
<cryptomator.integrations.win.version>1.2.0</cryptomator.integrations.win.version>
|
||||||
<cryptomator.integrations.win.version>1.2.0-beta2</cryptomator.integrations.win.version>
|
<cryptomator.integrations.mac.version>1.2.0</cryptomator.integrations.mac.version>
|
||||||
<cryptomator.integrations.mac.version>1.2.0-beta2</cryptomator.integrations.mac.version>
|
<cryptomator.integrations.linux.version>1.2.0</cryptomator.integrations.linux.version>
|
||||||
<cryptomator.integrations.linux.version>1.2.0-beta1</cryptomator.integrations.linux.version>
|
<cryptomator.fuse.version>2.1.0-SNAPSHOT</cryptomator.fuse.version>
|
||||||
<cryptomator.fuse.version>2.0.0-beta5</cryptomator.fuse.version>
|
<cryptomator.dokany.version>2.0.0</cryptomator.dokany.version>
|
||||||
<cryptomator.dokany.version>2.0.0-beta2</cryptomator.dokany.version>
|
<cryptomator.webdav.version>2.0.2</cryptomator.webdav.version>
|
||||||
<cryptomator.webdav.version>2.0.0-beta4</cryptomator.webdav.version>
|
|
||||||
|
|
||||||
<!-- 3rd party dependencies -->
|
<!-- 3rd party dependencies -->
|
||||||
<commons-lang3.version>3.12.0</commons-lang3.version>
|
<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>
|
<easybind.version>2.2</easybind.version>
|
||||||
<guava.version>31.1-jre</guava.version>
|
<guava.version>31.1-jre</guava.version>
|
||||||
<gson.version>2.9.1</gson.version>
|
<gson.version>2.10.1</gson.version>
|
||||||
<javafx.version>19</javafx.version>
|
<javafx.version>19.0.2.1</javafx.version>
|
||||||
<jwt.version>4.2.1</jwt.version>
|
<jwt.version>4.3.0</jwt.version>
|
||||||
<nimbus-jose.version>9.25.4</nimbus-jose.version>
|
<nimbus-jose.version>9.31</nimbus-jose.version>
|
||||||
<logback.version>1.4.4</logback.version>
|
<logback.version>1.4.5</logback.version>
|
||||||
<slf4j.version>2.0.3</slf4j.version>
|
<slf4j.version>2.0.6</slf4j.version>
|
||||||
<tinyoauth2.version>0.5.1</tinyoauth2.version>
|
<tinyoauth2.version>0.5.1</tinyoauth2.version>
|
||||||
<zxcvbn.version>1.7.0</zxcvbn.version>
|
<zxcvbn.version>1.7.0</zxcvbn.version>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<junit.jupiter.version>5.9.1</junit.jupiter.version>
|
<junit.jupiter.version>5.9.2</junit.jupiter.version>
|
||||||
<mockito.version>4.8.0</mockito.version>
|
<mockito.version>5.1.1</mockito.version>
|
||||||
<hamcrest.version>2.2</hamcrest.version>
|
<hamcrest.version>2.2</hamcrest.version>
|
||||||
|
|
||||||
<!-- build-time dependencies -->
|
<!-- build-time dependencies -->
|
||||||
<jetbrains.annotations.version>23.0.0</jetbrains.annotations.version>
|
<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>
|
<jacoco.version>0.8.8</jacoco.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Cryptomator Libs -->
|
<!-- 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>
|
<dependency>
|
||||||
<groupId>org.cryptomator</groupId>
|
<groupId>org.cryptomator</groupId>
|
||||||
<artifactId>cryptofs</artifactId>
|
<artifactId>cryptofs</artifactId>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.cryptomator.common.settings.SettingsProvider;
|
|||||||
import org.cryptomator.common.vaults.VaultComponent;
|
import org.cryptomator.common.vaults.VaultComponent;
|
||||||
import org.cryptomator.common.vaults.VaultListModule;
|
import org.cryptomator.common.vaults.VaultListModule;
|
||||||
import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
|
import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
|
||||||
|
import org.cryptomator.integrations.revealpath.RevealPathService;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -26,6 +27,7 @@ import java.net.InetSocketAddress;
|
|||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.SynchronousQueue;
|
import java.util.concurrent.SynchronousQueue;
|
||||||
@@ -83,6 +85,13 @@ public abstract class CommonsModule {
|
|||||||
return new SemVerComparator();
|
return new SemVerComparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
static Optional<RevealPathService> provideRevealPathService() {
|
||||||
|
return RevealPathService.get().findFirst();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
static Settings provideSettings(SettingsProvider settingsProvider) {
|
static Settings provideSettings(SettingsProvider settingsProvider) {
|
||||||
|
|||||||
@@ -2,6 +2,10 @@ package org.cryptomator.common.mount;
|
|||||||
|
|
||||||
public class MountPointPreparationException extends RuntimeException {
|
public class MountPointPreparationException extends RuntimeException {
|
||||||
|
|
||||||
|
public MountPointPreparationException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
public MountPointPreparationException(Throwable cause) {
|
public MountPointPreparationException(Throwable cause) {
|
||||||
super(cause);
|
super(cause);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,8 +51,19 @@ public final class MountWithinParentUtil {
|
|||||||
if (SystemUtils.IS_OS_WINDOWS) {
|
if (SystemUtils.IS_OS_WINDOWS) {
|
||||||
Files.setAttribute(hideaway, WIN_HIDDEN_ATTR, true, LinkOption.NOFOLLOW_LINKS);
|
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) {
|
} catch (IOException e) {
|
||||||
throw new MountPointPreparationException(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.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
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_AS_DRIVE_LETTER;
|
||||||
import static org.cryptomator.integrations.mount.MountCapability.MOUNT_TO_EXISTING_DIR;
|
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 READ_ONLY -> builder.setReadOnly(vaultSettings.usesReadOnlyMode().get());
|
||||||
case MOUNT_FLAGS -> {
|
case MOUNT_FLAGS -> {
|
||||||
var mountFlags = vaultSettings.mountFlags().get();
|
var mountFlags = vaultSettings.mountFlags().get();
|
||||||
if( mountFlags == null || mountFlags.isBlank()) {
|
if (mountFlags == null || mountFlags.isBlank()) {
|
||||||
builder.setMountFlags(service.getDefaultMountFlags());
|
builder.setMountFlags(service.getDefaultMountFlags());
|
||||||
} else {
|
} else {
|
||||||
builder.setMountFlags(mountFlags);
|
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());
|
case VOLUME_NAME -> builder.setVolumeName(vaultSettings.mountName().get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -81,9 +86,10 @@ public class Mounter {
|
|||||||
var canMountToDriveLetter = service.hasCapability(MOUNT_AS_DRIVE_LETTER);
|
var canMountToDriveLetter = service.hasCapability(MOUNT_AS_DRIVE_LETTER);
|
||||||
var canMountToParent = service.hasCapability(MOUNT_WITHIN_EXISTING_PARENT);
|
var canMountToParent = service.hasCapability(MOUNT_WITHIN_EXISTING_PARENT);
|
||||||
var canMountToDir = service.hasCapability(MOUNT_TO_EXISTING_DIR);
|
var canMountToDir = service.hasCapability(MOUNT_TO_EXISTING_DIR);
|
||||||
|
var canMountToSystem = service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH);
|
||||||
|
|
||||||
if (userChosenMountPoint == null) {
|
if (userChosenMountPoint == null) {
|
||||||
if (service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH)) {
|
if (canMountToSystem) {
|
||||||
// no need to set a mount point
|
// no need to set a mount point
|
||||||
} else if (canMountToDriveLetter) {
|
} else if (canMountToDriveLetter) {
|
||||||
builder.setMountpoint(driveLetters.getFirstDesiredAvailable().orElseThrow()); //TODO: catch exception and translate
|
builder.setMountpoint(driveLetters.getFirstDesiredAvailable().orElseThrow()); //TODO: catch exception and translate
|
||||||
@@ -105,8 +111,11 @@ public class Mounter {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
builder.setMountpoint(userChosenMountPoint);
|
builder.setMountpoint(userChosenMountPoint);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException | UnsupportedOperationException e) {
|
||||||
var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) || (!canMountToDir && !mpIsDriveLetter) || (!canMountToParent && !mpIsDriveLetter);
|
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) {
|
if (configNotSupported) {
|
||||||
throw new MountPointNotSupportedException(e.getMessage());
|
throw new MountPointNotSupportedException(e.getMessage());
|
||||||
} else if (canMountToDir && !canMountToParent && !Files.exists(userChosenMountPoint)) {
|
} else if (canMountToDir && !canMountToParent && !Files.exists(userChosenMountPoint)) {
|
||||||
|
|||||||
@@ -37,30 +37,30 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
|||||||
@Override
|
@Override
|
||||||
public void write(JsonWriter out, Settings value) throws IOException {
|
public void write(JsonWriter out, Settings value) throws IOException {
|
||||||
out.beginObject();
|
out.beginObject();
|
||||||
out.name("lastWrittenByVersion").value(env.getAppVersion()+env.getBuildNumber().map("-"::concat).orElse(""));
|
out.name("writtenByVersion").value(env.getAppVersion() + env.getBuildNumber().map("-"::concat).orElse(""));
|
||||||
out.name("directories");
|
out.name("directories");
|
||||||
writeVaultSettingsArray(out, value.getDirectories());
|
writeVaultSettingsArray(out, value.getDirectories());
|
||||||
out.name("askedForUpdateCheck").value(value.askedForUpdateCheck().get());
|
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("autoCloseVaults").value(value.autoCloseVaults().get());
|
||||||
out.name("port").value(value.port().get());
|
out.name("checkForUpdatesEnabled").value(value.checkForUpdates().get());
|
||||||
out.name("numTrayNotifications").value(value.numTrayNotifications().get());
|
|
||||||
out.name("debugMode").value(value.debugMode().get());
|
out.name("debugMode").value(value.debugMode().get());
|
||||||
out.name("theme").value(value.theme().get().name());
|
out.name("displayConfiguration").value((value.displayConfigurationProperty().get()));
|
||||||
out.name("uiOrientation").value(value.userInterfaceOrientation().get().name());
|
|
||||||
out.name("keychainProvider").value(value.keychainProvider().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("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("showMinimizeButton").value(value.showMinimizeButton().get());
|
||||||
out.name("showTrayIcon").value(value.showTrayIcon().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("windowXPosition").value((value.windowXPositionProperty().get()));
|
||||||
out.name("windowYPosition").value((value.windowYPositionProperty().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();
|
out.endObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,33 +82,34 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
|||||||
while (in.hasNext()) {
|
while (in.hasNext()) {
|
||||||
String name = in.nextName();
|
String name = in.nextName();
|
||||||
switch (name) {
|
switch (name) {
|
||||||
|
case "writtenByVersion" -> in.skipValue(); //noop
|
||||||
case "directories" -> settings.getDirectories().addAll(readVaultSettingsArray(in));
|
case "directories" -> settings.getDirectories().addAll(readVaultSettingsArray(in));
|
||||||
case "askedForUpdateCheck" -> settings.askedForUpdateCheck().set(in.nextBoolean());
|
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 "autoCloseVaults" -> settings.autoCloseVaults().set(in.nextBoolean());
|
||||||
case "port" -> settings.port().set(in.nextInt());
|
case "checkForUpdatesEnabled" -> settings.checkForUpdates().set(in.nextBoolean());
|
||||||
case "numTrayNotifications" -> settings.numTrayNotifications().set(in.nextInt());
|
|
||||||
case "debugMode" -> settings.debugMode().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 "displayConfiguration" -> settings.displayConfigurationProperty().set(in.nextString());
|
||||||
|
case "keychainProvider" -> settings.keychainProvider().set(in.nextString());
|
||||||
case "language" -> settings.languageProperty().set(in.nextString());
|
case "language" -> settings.languageProperty().set(in.nextString());
|
||||||
|
case "licenseKey" -> settings.licenseKey().set(in.nextString());
|
||||||
case "mountService" -> {
|
case "mountService" -> {
|
||||||
var token = in.peek();
|
var token = in.peek();
|
||||||
if (JsonToken.STRING == token) {
|
if (JsonToken.STRING == token) {
|
||||||
settings.mountService().set(in.nextString());
|
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
|
//1.6.x legacy
|
||||||
case "preferredVolumeImpl" -> volumeImpl = in.nextString();
|
case "preferredVolumeImpl" -> volumeImpl = in.nextString();
|
||||||
//legacy end
|
//legacy end
|
||||||
@@ -134,7 +135,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
|||||||
if (volumeImpl.equals("Dokany")) {
|
if (volumeImpl.equals("Dokany")) {
|
||||||
return "org.cryptomator.frontend.dokany.mount.DokanyMountProvider";
|
return "org.cryptomator.frontend.dokany.mount.DokanyMountProvider";
|
||||||
} else if (volumeImpl.equals("FUSE")) {
|
} else if (volumeImpl.equals("FUSE")) {
|
||||||
if(SystemUtils.IS_OS_WINDOWS) {
|
if (SystemUtils.IS_OS_WINDOWS) {
|
||||||
return "org.cryptomator.frontend.fuse.mount.WinFspNetworkMountProvider";
|
return "org.cryptomator.frontend.fuse.mount.WinFspNetworkMountProvider";
|
||||||
} else if (SystemUtils.IS_OS_MAC) {
|
} else if (SystemUtils.IS_OS_MAC) {
|
||||||
return "org.cryptomator.frontend.fuse.mount.MacFuseMountProvider";
|
return "org.cryptomator.frontend.fuse.mount.MacFuseMountProvider";
|
||||||
@@ -142,7 +143,7 @@ public class SettingsJsonAdapter extends TypeAdapter<Settings> {
|
|||||||
return "org.cryptomator.frontend.fuse.mount.LinuxFuseMountProvider";
|
return "org.cryptomator.frontend.fuse.mount.LinuxFuseMountProvider";
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(SystemUtils.IS_OS_WINDOWS) {
|
if (SystemUtils.IS_OS_WINDOWS) {
|
||||||
return "org.cryptomator.frontend.webdav.mount.WindowsMounter";
|
return "org.cryptomator.frontend.webdav.mount.WindowsMounter";
|
||||||
} else if (SystemUtils.IS_OS_MAC) {
|
} else if (SystemUtils.IS_OS_MAC) {
|
||||||
return "org.cryptomator.frontend.webdav.mount.MacAppleScriptMounter";
|
return "org.cryptomator.frontend.webdav.mount.MacAppleScriptMounter";
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class VaultSettings {
|
|||||||
private final String id;
|
private final String id;
|
||||||
private final ObjectProperty<Path> path = new SimpleObjectProperty<>();
|
private final ObjectProperty<Path> path = new SimpleObjectProperty<>();
|
||||||
private final StringProperty displayName = new SimpleStringProperty();
|
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 unlockAfterStartup = new SimpleBooleanProperty(DEFAULT_UNLOCK_AFTER_STARTUP);
|
||||||
private final BooleanProperty revealAfterMount = new SimpleBooleanProperty(DEFAULT_REVEAL_AFTER_MOUNT);
|
private final BooleanProperty revealAfterMount = new SimpleBooleanProperty(DEFAULT_REVEAL_AFTER_MOUNT);
|
||||||
private final BooleanProperty usesReadOnlyMode = new SimpleBooleanProperty(DEFAULT_USES_READONLY_MODE);
|
private final BooleanProperty usesReadOnlyMode = new SimpleBooleanProperty(DEFAULT_USES_READONLY_MODE);
|
||||||
@@ -127,6 +128,10 @@ public class VaultSettings {
|
|||||||
return mountPoint;
|
return mountPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BooleanProperty usesVaultIdAsVolumeId() {
|
||||||
|
return vaultIdAsVolumeId;
|
||||||
|
}
|
||||||
|
|
||||||
public BooleanProperty usesReadOnlyMode() {
|
public BooleanProperty usesReadOnlyMode() {
|
||||||
return usesReadOnlyMode;
|
return usesReadOnlyMode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
import javafx.application.Platform;
|
||||||
import javafx.collections.ObservableList;
|
import javafx.collections.ObservableList;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@@ -40,6 +41,7 @@ public class AutoLocker {
|
|||||||
private void autolock(Vault vault) {
|
private void autolock(Vault vault) {
|
||||||
try {
|
try {
|
||||||
vault.lock(false);
|
vault.lock(false);
|
||||||
|
Platform.runLater(() -> vault.stateProperty().set(VaultState.Value.LOCKED));
|
||||||
LOG.info("Autolocked {} after idle timeout", vault.getDisplayName());
|
LOG.info("Autolocked {} after idle timeout", vault.getDisplayName());
|
||||||
} catch (UnmountFailedException | IOException e) {
|
} catch (UnmountFailedException | IOException e) {
|
||||||
LOG.error("Autolocking failed.", e);
|
LOG.error("Autolocking failed.", e);
|
||||||
|
|||||||
@@ -316,18 +316,29 @@ public class Vault {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets from the cleartext path its ciphertext counterpart.
|
* 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
|
* @return Local os path to the ciphertext resource
|
||||||
* @throws IOException if an I/O error occurs
|
* @throws IOException if an I/O error occurs
|
||||||
|
* @throws IllegalStateException if the vault is not unlocked
|
||||||
*/
|
*/
|
||||||
public Path getCiphertextPath(String cleartextPath) throws IOException {
|
public Path getCiphertextPath(Path cleartextPath) throws IOException {
|
||||||
if (!cleartextPath.startsWith("/")) {
|
if (!state.getValue().equals(VaultState.Value.UNLOCKED)) {
|
||||||
throw new IllegalArgumentException("Input path must be absolute from vault root by starting with \"/\".");
|
throw new IllegalStateException("Vault is not unlocked");
|
||||||
}
|
}
|
||||||
var fs = cryptoFileSystem.get();
|
var fs = cryptoFileSystem.get();
|
||||||
var cryptoPath = fs.getPath(cleartextPath);
|
var osPathSeparator = cleartextPath.getFileSystem().getSeparator();
|
||||||
return fs.getCiphertextPath(cryptoPath);
|
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() {
|
public VaultConfigCache getVaultConfigCache() {
|
||||||
|
|||||||
@@ -29,9 +29,13 @@ public class ErrorController implements FxController {
|
|||||||
OS: %s / %s
|
OS: %s / %s
|
||||||
App: %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. -->
|
<!-- 📋 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;
|
private final Application application;
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public enum FxmlFile {
|
|||||||
HEALTH_CHECK_LIST("/fxml/health_check_list.fxml"), //
|
HEALTH_CHECK_LIST("/fxml/health_check_list.fxml"), //
|
||||||
HUB_NO_KEYCHAIN("/fxml/hub_no_keychain.fxml"), //
|
HUB_NO_KEYCHAIN("/fxml/hub_no_keychain.fxml"), //
|
||||||
HUB_AUTH_FLOW("/fxml/hub_auth_flow.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_RECEIVE_KEY("/fxml/hub_receive_key.fxml"), //
|
||||||
HUB_REGISTER_DEVICE("/fxml/hub_register_device.fxml"), //
|
HUB_REGISTER_DEVICE("/fxml/hub_register_device.fxml"), //
|
||||||
HUB_REGISTER_SUCCESS("/fxml/hub_register_success.fxml"), //
|
HUB_REGISTER_SUCCESS("/fxml/hub_register_success.fxml"), //
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public enum FontAwesome5Icon {
|
|||||||
PLUS("\uF067"), //
|
PLUS("\uF067"), //
|
||||||
PRINT("\uF02F"), //
|
PRINT("\uF02F"), //
|
||||||
QUESTION("\uF128"), //
|
QUESTION("\uF128"), //
|
||||||
|
QUESTION_CIRCLE("\uf059"), //
|
||||||
REDO("\uF01E"), //
|
REDO("\uF01E"), //
|
||||||
SEARCH("\uF002"), //
|
SEARCH("\uF002"), //
|
||||||
SPINNER("\uF110"), //
|
SPINNER("\uF110"), //
|
||||||
|
|||||||
@@ -102,10 +102,10 @@ public abstract class HubKeyLoadingModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@FxmlScene(FxmlFile.HUB_LICENSE_EXCEEDED)
|
@FxmlScene(FxmlFile.HUB_INVALID_LICENSE)
|
||||||
@KeyLoadingScoped
|
@KeyLoadingScoped
|
||||||
static Scene provideLicenseExceededScene(@KeyLoading FxmlLoaderFactory fxmlLoaders) {
|
static Scene provideInvalidLicenseScene(@KeyLoading FxmlLoaderFactory fxmlLoaders) {
|
||||||
return fxmlLoaders.createScene(FxmlFile.HUB_LICENSE_EXCEEDED);
|
return fxmlLoaders.createScene(FxmlFile.HUB_INVALID_LICENSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -162,8 +162,8 @@ public abstract class HubKeyLoadingModule {
|
|||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
@IntoMap
|
@IntoMap
|
||||||
@FxControllerKey(LicenseExceededController.class)
|
@FxControllerKey(InvalidLicenseController.class)
|
||||||
abstract FxController bindLicenseExceededController(LicenseExceededController controller);
|
abstract FxController bindInvalidLicenseController(InvalidLicenseController controller);
|
||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
@IntoMap
|
@IntoMap
|
||||||
|
|||||||
+2
-2
@@ -7,12 +7,12 @@ import javax.inject.Inject;
|
|||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.stage.Stage;
|
import javafx.stage.Stage;
|
||||||
|
|
||||||
public class LicenseExceededController implements FxController {
|
public class InvalidLicenseController implements FxController {
|
||||||
|
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public LicenseExceededController(@KeyLoading Stage window) {
|
public InvalidLicenseController(@KeyLoading Stage window) {
|
||||||
this.window = window;
|
this.window = window;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,11 +42,11 @@ public class ReceiveKeyController implements FxController {
|
|||||||
private final Lazy<Scene> registerDeviceScene;
|
private final Lazy<Scene> registerDeviceScene;
|
||||||
private final Lazy<Scene> unauthorizedScene;
|
private final Lazy<Scene> unauthorizedScene;
|
||||||
private final URI vaultBaseUri;
|
private final URI vaultBaseUri;
|
||||||
private final Lazy<Scene> licenseExceededScene;
|
private final Lazy<Scene> invalidLicenseScene;
|
||||||
private final HttpClient httpClient;
|
private final HttpClient httpClient;
|
||||||
|
|
||||||
@Inject
|
@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.window = window;
|
||||||
this.deviceId = deviceId;
|
this.deviceId = deviceId;
|
||||||
this.bearerToken = Objects.requireNonNull(tokenRef.get());
|
this.bearerToken = Objects.requireNonNull(tokenRef.get());
|
||||||
@@ -54,7 +54,7 @@ public class ReceiveKeyController implements FxController {
|
|||||||
this.registerDeviceScene = registerDeviceScene;
|
this.registerDeviceScene = registerDeviceScene;
|
||||||
this.unauthorizedScene = unauthorizedScene;
|
this.unauthorizedScene = unauthorizedScene;
|
||||||
this.vaultBaseUri = getVaultBaseUri(vault);
|
this.vaultBaseUri = getVaultBaseUri(vault);
|
||||||
this.licenseExceededScene = licenseExceededScene;
|
this.invalidLicenseScene = invalidLicenseScene;
|
||||||
this.window.addEventHandler(WindowEvent.WINDOW_HIDING, this::windowClosed);
|
this.window.addEventHandler(WindowEvent.WINDOW_HIDING, this::windowClosed);
|
||||||
this.httpClient = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).executor(executor).build();
|
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() {
|
private void licenseExceeded() {
|
||||||
window.setScene(licenseExceededScene.get());
|
window.setScene(invalidLicenseScene.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void needsDeviceRegistration() {
|
private void needsDeviceRegistration() {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.google.common.cache.CacheBuilder;
|
|||||||
import com.google.common.cache.CacheLoader;
|
import com.google.common.cache.CacheLoader;
|
||||||
import com.google.common.cache.LoadingCache;
|
import com.google.common.cache.LoadingCache;
|
||||||
import com.tobiasdiez.easybind.EasyBind;
|
import com.tobiasdiez.easybind.EasyBind;
|
||||||
|
import org.apache.commons.lang3.SystemUtils;
|
||||||
import org.cryptomator.common.vaults.Vault;
|
import org.cryptomator.common.vaults.Vault;
|
||||||
import org.cryptomator.integrations.mount.Mountpoint;
|
import org.cryptomator.integrations.mount.Mountpoint;
|
||||||
import org.cryptomator.integrations.revealpath.RevealFailedException;
|
import org.cryptomator.integrations.revealpath.RevealFailedException;
|
||||||
@@ -54,6 +55,7 @@ public class VaultDetailUnlockedController implements FxController {
|
|||||||
private final VaultService vaultService;
|
private final VaultService vaultService;
|
||||||
private final WrongFileAlertComponent.Builder wrongFileAlert;
|
private final WrongFileAlertComponent.Builder wrongFileAlert;
|
||||||
private final Stage mainWindow;
|
private final Stage mainWindow;
|
||||||
|
private final Optional<RevealPathService> revealPathService;
|
||||||
private final ResourceBundle resourceBundle;
|
private final ResourceBundle resourceBundle;
|
||||||
private final LoadingCache<Vault, VaultStatisticsComponent> vaultStats;
|
private final LoadingCache<Vault, VaultStatisticsComponent> vaultStats;
|
||||||
private final VaultStatisticsComponent.Builder vaultStatsBuilder;
|
private final VaultStatisticsComponent.Builder vaultStatsBuilder;
|
||||||
@@ -67,12 +69,13 @@ public class VaultDetailUnlockedController implements FxController {
|
|||||||
public Button dropZone;
|
public Button dropZone;
|
||||||
|
|
||||||
@Inject
|
@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.vault = vault;
|
||||||
this.appWindows = appWindows;
|
this.appWindows = appWindows;
|
||||||
this.vaultService = vaultService;
|
this.vaultService = vaultService;
|
||||||
this.wrongFileAlert = wrongFileAlert;
|
this.wrongFileAlert = wrongFileAlert;
|
||||||
this.mainWindow = mainWindow;
|
this.mainWindow = mainWindow;
|
||||||
|
this.revealPathService = revealPathService;
|
||||||
this.resourceBundle = resourceBundle;
|
this.resourceBundle = resourceBundle;
|
||||||
this.vaultStats = CacheBuilder.newBuilder().weakValues().build(CacheLoader.from(this::buildVaultStats));
|
this.vaultStats = CacheBuilder.newBuilder().weakValues().build(CacheLoader.from(this::buildVaultStats));
|
||||||
this.vaultStatsBuilder = vaultStatsBuilder;
|
this.vaultStatsBuilder = vaultStatsBuilder;
|
||||||
@@ -99,7 +102,11 @@ public class VaultDetailUnlockedController implements FxController {
|
|||||||
|
|
||||||
private void handleDragEvent(DragEvent event) {
|
private void handleDragEvent(DragEvent event) {
|
||||||
if (DragEvent.DRAG_OVER.equals(event.getEventType()) && event.getGestureSource() == null && event.getDragboard().hasFiles()) {
|
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);
|
draggingOver.set(true);
|
||||||
} else if (DragEvent.DRAG_DROPPED.equals(event.getEventType()) && event.getGestureSource() == null && event.getDragboard().hasFiles()) {
|
} 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();
|
List<Path> ciphertextPaths = event.getDragboard().getFiles().stream().map(File::toPath).map(this::getCiphertextPath).flatMap(Optional::stream).toList();
|
||||||
@@ -164,12 +171,7 @@ public class VaultDetailUnlockedController implements FxController {
|
|||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
var accessPoint = mountPoint.getValue();
|
return Optional.of(vault.get().getCiphertextPath(path));
|
||||||
var cleartextPath = path.toString().substring(accessPoint.length());
|
|
||||||
if (!cleartextPath.startsWith("/")) {
|
|
||||||
cleartextPath = "/" + cleartextPath;
|
|
||||||
}
|
|
||||||
return Optional.of(vault.get().getCiphertextPath(cleartextPath));
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOG.warn("Unable to get ciphertext path from path: {}", path, e);
|
LOG.warn("Unable to get ciphertext path from path: {}", path, e);
|
||||||
return Optional.empty();
|
return Optional.empty();
|
||||||
@@ -177,29 +179,21 @@ public class VaultDetailUnlockedController implements FxController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void revealOrCopyPaths(List<Path> paths) {
|
private void revealOrCopyPaths(List<Path> paths) {
|
||||||
if (!revealPaths(paths)) {
|
revealPathService.ifPresentOrElse(svc -> revealPaths(svc, paths), () -> {
|
||||||
LOG.warn("No service provider to reveal files found.");
|
LOG.warn("No service provider to reveal files found.");
|
||||||
copyPathsToClipboard(paths);
|
copyPathsToClipboard(paths);
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private void revealPaths(RevealPathService service, List<Path> paths) {
|
||||||
* Reveals the paths over the {@link RevealPathService} in the file system
|
paths.forEach(path -> {
|
||||||
*
|
try {
|
||||||
* @param paths List of Paths to reveal
|
LOG.debug("Revealing {}", path);
|
||||||
* @return true, if at least one service provider was present, false otherwise
|
service.reveal(path);
|
||||||
*/
|
} catch (RevealFailedException e) {
|
||||||
private boolean revealPaths(List<Path> paths) {
|
LOG.error("Revealing ciphertext file failed.", e);
|
||||||
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 copyPathsToClipboard(List<Path> paths) {
|
private void copyPathsToClipboard(List<Path> paths) {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import javafx.fxml.FXML;
|
|||||||
public class WelcomeController implements FxController {
|
public class WelcomeController implements FxController {
|
||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(WelcomeController.class);
|
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 Application application;
|
||||||
private final BooleanBinding noVaultPresent;
|
private final BooleanBinding noVaultPresent;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import javafx.stage.Stage;
|
|||||||
|
|
||||||
public class MigrationImpossibleController implements FxController {
|
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 Application application;
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package org.cryptomator.ui.preferences;
|
package org.cryptomator.ui.preferences;
|
||||||
|
|
||||||
|
import dagger.Lazy;
|
||||||
import org.cryptomator.common.ObservableUtil;
|
import org.cryptomator.common.ObservableUtil;
|
||||||
import org.cryptomator.common.settings.Settings;
|
import org.cryptomator.common.settings.Settings;
|
||||||
import org.cryptomator.integrations.mount.MountCapability;
|
import org.cryptomator.integrations.mount.MountCapability;
|
||||||
@@ -7,6 +8,7 @@ import org.cryptomator.integrations.mount.MountService;
|
|||||||
import org.cryptomator.ui.common.FxController;
|
import org.cryptomator.ui.common.FxController;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javafx.application.Application;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.binding.Bindings;
|
||||||
import javafx.beans.binding.BooleanExpression;
|
import javafx.beans.binding.BooleanExpression;
|
||||||
import javafx.beans.value.ObservableValue;
|
import javafx.beans.value.ObservableValue;
|
||||||
@@ -21,6 +23,8 @@ import java.util.ResourceBundle;
|
|||||||
@PreferencesScoped
|
@PreferencesScoped
|
||||||
public class VolumePreferencesController implements FxController {
|
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 Settings settings;
|
||||||
private final ObservableValue<MountService> selectedMountService;
|
private final ObservableValue<MountService> selectedMountService;
|
||||||
private final ResourceBundle resourceBundle;
|
private final ResourceBundle resourceBundle;
|
||||||
@@ -29,14 +33,16 @@ public class VolumePreferencesController implements FxController {
|
|||||||
private final ObservableValue<Boolean> mountToDriveLetterSupported;
|
private final ObservableValue<Boolean> mountToDriveLetterSupported;
|
||||||
private final ObservableValue<Boolean> mountFlagsSupported;
|
private final ObservableValue<Boolean> mountFlagsSupported;
|
||||||
private final ObservableValue<Boolean> readonlySupported;
|
private final ObservableValue<Boolean> readonlySupported;
|
||||||
|
private final Lazy<Application> application;
|
||||||
private final List<MountService> mountProviders;
|
private final List<MountService> mountProviders;
|
||||||
public ChoiceBox<MountService> volumeTypeChoiceBox;
|
public ChoiceBox<MountService> volumeTypeChoiceBox;
|
||||||
public TextField loopbackPortField;
|
public TextField loopbackPortField;
|
||||||
public Button loopbackPortApplyButton;
|
public Button loopbackPortApplyButton;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
VolumePreferencesController(Settings settings, List<MountService> mountProviders, ResourceBundle resourceBundle) {
|
VolumePreferencesController(Settings settings, Lazy<Application> application, List<MountService> mountProviders, ResourceBundle resourceBundle) {
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
|
this.application = application;
|
||||||
this.mountProviders = mountProviders;
|
this.mountProviders = mountProviders;
|
||||||
this.resourceBundle = resourceBundle;
|
this.resourceBundle = resourceBundle;
|
||||||
|
|
||||||
@@ -141,4 +147,8 @@ public class VolumePreferencesController implements FxController {
|
|||||||
throw new UnsupportedOperationException();
|
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 com.google.common.base.Strings;
|
||||||
import dagger.Lazy;
|
import dagger.Lazy;
|
||||||
import org.cryptomator.common.Nullable;
|
import org.cryptomator.common.Nullable;
|
||||||
|
import org.cryptomator.common.ObservableUtil;
|
||||||
import org.cryptomator.common.vaults.Vault;
|
import org.cryptomator.common.vaults.Vault;
|
||||||
import org.cryptomator.cryptofs.VaultConfig;
|
import org.cryptomator.cryptofs.VaultConfig;
|
||||||
import org.cryptomator.cryptofs.VaultConfigLoadException;
|
import org.cryptomator.cryptofs.VaultConfigLoadException;
|
||||||
@@ -15,9 +16,10 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javafx.beans.binding.Bindings;
|
import javafx.beans.property.ObjectProperty;
|
||||||
import javafx.beans.binding.BooleanBinding;
|
import javafx.beans.property.SimpleObjectProperty;
|
||||||
import javafx.beans.property.StringProperty;
|
import javafx.beans.property.StringProperty;
|
||||||
|
import javafx.beans.value.ObservableValue;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.Scene;
|
import javafx.scene.Scene;
|
||||||
import javafx.scene.control.TextArea;
|
import javafx.scene.control.TextArea;
|
||||||
@@ -38,11 +40,16 @@ public class RecoveryKeyRecoverController implements FxController {
|
|||||||
private final Vault vault;
|
private final Vault vault;
|
||||||
private final VaultConfig.UnverifiedVaultConfig unverifiedVaultConfig;
|
private final VaultConfig.UnverifiedVaultConfig unverifiedVaultConfig;
|
||||||
private final StringProperty recoveryKey;
|
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 RecoveryKeyFactory recoveryKeyFactory;
|
||||||
private final BooleanBinding validRecoveryKey;
|
private final ObjectProperty<RecoveryKeyState> recoveryKeyState;
|
||||||
private final Lazy<Scene> resetPasswordScene;
|
private final Lazy<Scene> resetPasswordScene;
|
||||||
private final AutoCompleter autoCompleter;
|
private final AutoCompleter autoCompleter;
|
||||||
|
|
||||||
|
private volatile boolean isWrongKey;
|
||||||
|
|
||||||
public TextArea textarea;
|
public TextArea textarea;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -53,14 +60,18 @@ public class RecoveryKeyRecoverController implements FxController {
|
|||||||
this.unverifiedVaultConfig = unverifiedVaultConfig;
|
this.unverifiedVaultConfig = unverifiedVaultConfig;
|
||||||
this.recoveryKey = recoveryKey;
|
this.recoveryKey = recoveryKey;
|
||||||
this.recoveryKeyFactory = recoveryKeyFactory;
|
this.recoveryKeyFactory = recoveryKeyFactory;
|
||||||
this.validRecoveryKey = Bindings.createBooleanBinding(this::isValidRecoveryKey, recoveryKey);
|
|
||||||
this.resetPasswordScene = resetPasswordScene;
|
this.resetPasswordScene = resetPasswordScene;
|
||||||
this.autoCompleter = new AutoCompleter(recoveryKeyFactory.getDictionary());
|
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
|
@FXML
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
recoveryKey.bind(textarea.textProperty());
|
recoveryKey.bind(textarea.textProperty());
|
||||||
|
textarea.textProperty().addListener(((observable, oldValue, newValue) -> validateRecoveryKey()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private TextFormatter.Change filterTextChange(TextFormatter.Change change) {
|
private TextFormatter.Change filterTextChange(TextFormatter.Change change) {
|
||||||
@@ -107,6 +118,12 @@ public class RecoveryKeyRecoverController implements FxController {
|
|||||||
window.setScene(resetPasswordScene.get());
|
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) {
|
private boolean checkKeyAgainstVaultConfig(byte[] key) {
|
||||||
try {
|
try {
|
||||||
var config = unverifiedVaultConfig.verify(key, unverifiedVaultConfig.allegedVaultVersion());
|
var config = unverifiedVaultConfig.verify(key, unverifiedVaultConfig.allegedVaultVersion());
|
||||||
@@ -114,6 +131,7 @@ public class RecoveryKeyRecoverController implements FxController {
|
|||||||
return true;
|
return true;
|
||||||
} catch (VaultKeyInvalidException e) {
|
} catch (VaultKeyInvalidException e) {
|
||||||
LOG.debug("Provided recovery key does not match vault config signature.");
|
LOG.debug("Provided recovery key does not match vault config signature.");
|
||||||
|
isWrongKey = true;
|
||||||
return false;
|
return false;
|
||||||
} catch (VaultConfigLoadException e) {
|
} catch (VaultConfigLoadException e) {
|
||||||
LOG.error("Failed to parse vault config", 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 */
|
/* Getter/Setter */
|
||||||
|
|
||||||
public Vault getVault() {
|
public Vault getVault() {
|
||||||
return vault;
|
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() {
|
public TextFormatter getRecoveryKeyTextFormatter() {
|
||||||
return new TextFormatter<>(this::filterTextChange);
|
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<String> defaultMountFlags;
|
||||||
private final ObservableValue<Boolean> mountpointDirSupported;
|
private final ObservableValue<Boolean> mountpointDirSupported;
|
||||||
private final ObservableValue<Boolean> mountpointDriveLetterSupported;
|
private final ObservableValue<Boolean> mountpointDriveLetterSupported;
|
||||||
|
private final ObservableValue<Boolean> volumeIdSupported;
|
||||||
private final ObservableValue<Boolean> readOnlySupported;
|
private final ObservableValue<Boolean> readOnlySupported;
|
||||||
private final ObservableValue<Boolean> mountFlagsSupported;
|
private final ObservableValue<Boolean> mountFlagsSupported;
|
||||||
private final ObservableValue<String> directoryPath;
|
private final ObservableValue<String> directoryPath;
|
||||||
@@ -48,6 +49,7 @@ public class MountOptionsController implements FxController {
|
|||||||
|
|
||||||
//-- FXML objects --
|
//-- FXML objects --
|
||||||
public CheckBox readOnlyCheckbox;
|
public CheckBox readOnlyCheckbox;
|
||||||
|
public CheckBox useVaultIdAsVolumeId;
|
||||||
public CheckBox customMountFlagsCheckbox;
|
public CheckBox customMountFlagsCheckbox;
|
||||||
public TextField mountFlagsField;
|
public TextField mountFlagsField;
|
||||||
public ToggleGroup mountPointToggleGroup;
|
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.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.mountpointDriveLetterSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_AS_DRIVE_LETTER));
|
||||||
this.mountFlagsSupported = mountService.map(as -> as.service().hasCapability(MountCapability.MOUNT_FLAGS));
|
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.readOnlySupported = mountService.map(as -> as.service().hasCapability(MountCapability.READ_ONLY));
|
||||||
this.directoryPath = vault.getVaultSettings().mountPoint().map(p -> isDriveLetter(p) ? null : p.toString());
|
this.directoryPath = vault.getVaultSettings().mountPoint().map(p -> isDriveLetter(p) ? null : p.toString());
|
||||||
this.applicationWindows = applicationWindows;
|
this.applicationWindows = applicationWindows;
|
||||||
@@ -83,6 +86,9 @@ public class MountOptionsController implements FxController {
|
|||||||
// readonly:
|
// readonly:
|
||||||
readOnlyCheckbox.selectedProperty().bindBidirectional(vaultSettings.usesReadOnlyMode());
|
readOnlyCheckbox.selectedProperty().bindBidirectional(vaultSettings.usesReadOnlyMode());
|
||||||
|
|
||||||
|
// use volume name as volume id
|
||||||
|
useVaultIdAsVolumeId.selectedProperty().bindBidirectional(vaultSettings.usesVaultIdAsVolumeId());
|
||||||
|
|
||||||
// custom mount flags:
|
// custom mount flags:
|
||||||
mountFlagsField.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
|
mountFlagsField.disableProperty().bind(customMountFlagsCheckbox.selectedProperty().not());
|
||||||
customMountFlagsCheckbox.setSelected(!Strings.isNullOrEmpty(vaultSettings.mountFlags().getValue()));
|
customMountFlagsCheckbox.setSelected(!Strings.isNullOrEmpty(vaultSettings.mountFlags().getValue()));
|
||||||
@@ -267,6 +273,16 @@ public class MountOptionsController implements FxController {
|
|||||||
return readOnlySupported.getValue();
|
return readOnlySupported.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ObservableValue<Boolean> volumeIdSupportedProperty() {
|
||||||
|
return volumeIdSupported;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean getVolumeIdSupported() {
|
||||||
|
return volumeIdSupported.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ObservableValue<String> directoryPathProperty() {
|
public ObservableValue<String> directoryPathProperty() {
|
||||||
return directoryPath;
|
return directoryPath;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import java.io.UncheckedIOException;
|
|||||||
@WrongFileAlertScoped
|
@WrongFileAlertScoped
|
||||||
public class WrongFileAlertController implements FxController {
|
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 Application app;
|
||||||
private final Stage window;
|
private final Stage window;
|
||||||
|
|||||||
+3
-3
@@ -13,7 +13,7 @@
|
|||||||
<?import javafx.scene.shape.Circle?>
|
<?import javafx.scene.shape.Circle?>
|
||||||
<HBox xmlns:fx="http://javafx.com/fxml"
|
<HBox xmlns:fx="http://javafx.com/fxml"
|
||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
fx:controller="org.cryptomator.ui.keyloading.hub.LicenseExceededController"
|
fx:controller="org.cryptomator.ui.keyloading.hub.InvalidLicenseController"
|
||||||
minWidth="400"
|
minWidth="400"
|
||||||
maxWidth="400"
|
maxWidth="400"
|
||||||
minHeight="145"
|
minHeight="145"
|
||||||
@@ -33,12 +33,12 @@
|
|||||||
</StackPane>
|
</StackPane>
|
||||||
</Group>
|
</Group>
|
||||||
<VBox HBox.hgrow="ALWAYS">
|
<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>
|
<padding>
|
||||||
<Insets bottom="6" top="6"/>
|
<Insets bottom="6" top="6"/>
|
||||||
</padding>
|
</padding>
|
||||||
</Label>
|
</Label>
|
||||||
<Label text="%hub.licenseExceeded.description" wrapText="true"/>
|
<Label text="%hub.invalidLicense.description" wrapText="true"/>
|
||||||
|
|
||||||
<Region VBox.vgrow="ALWAYS" minHeight="18"/>
|
<Region VBox.vgrow="ALWAYS" minHeight="18"/>
|
||||||
<ButtonBar buttonMinWidth="120" buttonOrder="+C">
|
<ButtonBar buttonMinWidth="120" buttonOrder="+C">
|
||||||
@@ -5,10 +5,12 @@
|
|||||||
<?import javafx.geometry.Insets?>
|
<?import javafx.geometry.Insets?>
|
||||||
<?import javafx.scene.control.Button?>
|
<?import javafx.scene.control.Button?>
|
||||||
<?import javafx.scene.control.ChoiceBox?>
|
<?import javafx.scene.control.ChoiceBox?>
|
||||||
|
<?import javafx.scene.control.Hyperlink?>
|
||||||
<?import javafx.scene.control.Label?>
|
<?import javafx.scene.control.Label?>
|
||||||
<?import javafx.scene.control.Separator?>
|
<?import javafx.scene.control.Separator?>
|
||||||
<?import javafx.scene.layout.HBox?>
|
<?import javafx.scene.layout.HBox?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.control.Tooltip?>
|
||||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
fx:controller="org.cryptomator.ui.preferences.VolumePreferencesController"
|
fx:controller="org.cryptomator.ui.preferences.VolumePreferencesController"
|
||||||
@@ -20,6 +22,14 @@
|
|||||||
<HBox spacing="12" alignment="CENTER_LEFT">
|
<HBox spacing="12" alignment="CENTER_LEFT">
|
||||||
<Label text="%preferences.volume.type"/>
|
<Label text="%preferences.volume.type"/>
|
||||||
<ChoiceBox fx:id="volumeTypeChoiceBox"/>
|
<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>
|
||||||
|
|
||||||
<HBox spacing="12" alignment="CENTER_LEFT" visible="${controller.loopbackPortSupported}" managed="${controller.loopbackPortSupported}">
|
<HBox spacing="12" alignment="CENTER_LEFT" visible="${controller.loopbackPortSupported}" managed="${controller.loopbackPortSupported}">
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
<?import javafx.scene.control.TextArea?>
|
<?import javafx.scene.control.TextArea?>
|
||||||
<?import javafx.scene.layout.Region?>
|
<?import javafx.scene.layout.Region?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
|
<?import javafx.scene.layout.StackPane?>
|
||||||
|
<?import javafx.scene.Group?>
|
||||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
fx:controller="org.cryptomator.ui.recoverykey.RecoveryKeyRecoverController"
|
fx:controller="org.cryptomator.ui.recoverykey.RecoveryKeyRecoverController"
|
||||||
@@ -25,12 +27,28 @@
|
|||||||
|
|
||||||
<TextArea wrapText="true" prefRowCount="4" fx:id="textarea" textFormatter="${controller.recoveryKeyTextFormatter}" onKeyPressed="#onKeyPressed"/>
|
<TextArea wrapText="true" prefRowCount="4" fx:id="textarea" textFormatter="${controller.recoveryKeyTextFormatter}" onKeyPressed="#onKeyPressed"/>
|
||||||
|
|
||||||
<!-- TODO: add Label when the recovery key is not valid -->
|
<StackPane>
|
||||||
<Label text="%recoveryKey.recover.validKey" graphicTextGap="6" contentDisplay="LEFT" visible="${controller.validRecoveryKey}">
|
<Label text="Just some Filler" visible="false" graphicTextGap="6">
|
||||||
<graphic>
|
<graphic>
|
||||||
<FontAwesome5IconView glyph="CHECK"/>
|
<FontAwesome5IconView glyph="ANCHOR"/>
|
||||||
</graphic>
|
</graphic>
|
||||||
</Label>
|
</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"/>
|
<Region VBox.vgrow="ALWAYS"/>
|
||||||
|
|
||||||
@@ -38,7 +56,7 @@
|
|||||||
<ButtonBar buttonMinWidth="120" buttonOrder="+CX">
|
<ButtonBar buttonMinWidth="120" buttonOrder="+CX">
|
||||||
<buttons>
|
<buttons>
|
||||||
<Button text="%generic.button.cancel" ButtonBar.buttonData="CANCEL_CLOSE" cancelButton="true" onAction="#close"/>
|
<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>
|
</buttons>
|
||||||
</ButtonBar>
|
</ButtonBar>
|
||||||
</VBox>
|
</VBox>
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
<?import javafx.scene.control.ToggleGroup?>
|
<?import javafx.scene.control.ToggleGroup?>
|
||||||
<?import javafx.scene.layout.HBox?>
|
<?import javafx.scene.layout.HBox?>
|
||||||
<?import javafx.scene.layout.VBox?>
|
<?import javafx.scene.layout.VBox?>
|
||||||
<?import javafx.scene.text.Text?>
|
|
||||||
<?import javafx.scene.text.TextFlow?>
|
<?import javafx.scene.text.TextFlow?>
|
||||||
<VBox xmlns:fx="http://javafx.com/fxml"
|
<VBox xmlns:fx="http://javafx.com/fxml"
|
||||||
xmlns="http://javafx.com/javafx"
|
xmlns="http://javafx.com/javafx"
|
||||||
@@ -26,11 +25,12 @@
|
|||||||
</padding>
|
</padding>
|
||||||
<children>
|
<children>
|
||||||
<TextFlow>
|
<TextFlow>
|
||||||
<Text text="%vaultOptions.mount.info" styleClass="label"/>
|
<Label text="%vaultOptions.mount.info"/>
|
||||||
<Text text=" "/>
|
<Label text=" "/>
|
||||||
<Hyperlink styleClass="hyperlink-underline" text="%vaultOptions.mount.linkToPreferences" onAction="#openVolumePreferences" wrapText="true"/>
|
<Hyperlink styleClass="hyperlink-underline" text="%vaultOptions.mount.linkToPreferences" onAction="#openVolumePreferences" wrapText="true"/>
|
||||||
</TextFlow>
|
</TextFlow>
|
||||||
<CheckBox fx:id="readOnlyCheckbox" text="%vaultOptions.mount.readonly" visible="${controller.readOnlySupported}" managed="${controller.readOnlySupported}"/>
|
<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}">
|
<VBox visible="${controller.mountFlagsSupported}" managed="${controller.mountFlagsSupported}">
|
||||||
<CheckBox fx:id="customMountFlagsCheckbox" text="%vaultOptions.mount.customMountFlags" onAction="#toggleUseCustomMountFlags"/>
|
<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.message=Access denied
|
||||||
hub.unauthorized.description=Your device has not yet been authorized to access this vault. Ask the vault owner to authorize it.
|
hub.unauthorized.description=Your device has not yet been authorized to access this vault. Ask the vault owner to authorize it.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=License exceeded
|
hub.invalidLicense.message=Hub License invalid
|
||||||
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.description=Your Cryptomator Hub instance has an invalid license. Please inform a Hub administrator to upgrade or renew the license.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -278,6 +277,7 @@ preferences.interface.showTrayIcon=Show tray icon (requires restart)
|
|||||||
preferences.volume=Virtual Drive
|
preferences.volume=Virtual Drive
|
||||||
preferences.volume.type=Volume Type (requires restart)
|
preferences.volume.type=Volume Type (requires restart)
|
||||||
preferences.volume.type.automatic=Automatic
|
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.tcp.port=TCP Port
|
||||||
preferences.volume.supportedFeatures=The chosen volume type supports the following features:
|
preferences.volume.supportedFeatures=The chosen volume type supports the following features:
|
||||||
preferences.volume.feature.mountAuto=Automatic mount point selection
|
preferences.volume.feature.mountAuto=Automatic mount point selection
|
||||||
@@ -307,27 +307,27 @@ stats.title=Statistics for %s
|
|||||||
stats.cacheHitRate=Cache Hit Rate
|
stats.cacheHitRate=Cache Hit Rate
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Read: idle
|
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.throughput.mibs=Read: %.2f MiB/s
|
||||||
stats.read.total.data.none=Data read: -
|
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.mib=Data read: %.1f MiB
|
||||||
stats.read.total.data.gib=Data read: %.1f GiB
|
stats.read.total.data.gib=Data read: %.1f GiB
|
||||||
stats.decr.total.data.none=Data decrypted: -
|
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.mib=Data decrypted: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data decrypted: %.1f GiB
|
stats.decr.total.data.gib=Data decrypted: %.1f GiB
|
||||||
stats.read.accessCount=Total reads: %d
|
stats.read.accessCount=Total reads: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Write: idle
|
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.throughput.mibs=Write: %.2f MiB/s
|
||||||
stats.write.total.data.none=Data written: -
|
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.mib=Data written: %.1f MiB
|
||||||
stats.write.total.data.gib=Data written: %.1f GiB
|
stats.write.total.data.gib=Data written: %.1f GiB
|
||||||
stats.encr.total.data.none=Data encrypted: -
|
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.mib=Data encrypted: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data encrypted: %.1f GiB
|
stats.encr.total.data.gib=Data encrypted: %.1f GiB
|
||||||
stats.write.accessCount=Total writes: %d
|
stats.write.accessCount=Total writes: %d
|
||||||
@@ -370,7 +370,7 @@ main.vaultDetail.lockBtn=Lock
|
|||||||
main.vaultDetail.bytesPerSecondRead=Read:
|
main.vaultDetail.bytesPerSecondRead=Read:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Write:
|
main.vaultDetail.bytesPerSecondWritten=Write:
|
||||||
main.vaultDetail.throughput.idle=idle
|
main.vaultDetail.throughput.idle=idle
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Vault Statistics
|
main.vaultDetail.stats=Vault Statistics
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Locate Encrypted File
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Reset Password
|
recoveryKey.recover.title=Reset Password
|
||||||
recoveryKey.recover.prompt=Enter your recovery key for "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator Recovery Key\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Reset
|
recoveryKey.recover.resetBtn=Reset
|
||||||
|
|||||||
@@ -113,7 +113,6 @@ hub.register.registerBtn=تأكيد
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.description=تم حظر قفل "%s" بواسطة العمليات المعلقة أو الملفات المفتوحة. يمكنك فرض قفل هذا المخزن، ولكن مقاطعة عمليات الادخال والاخراج I/O قد تؤدي لفقدان البيانات غير المحفوظة.
|
lock.forced.description=تم حظر قفل "%s" بواسطة العمليات المعلقة أو الملفات المفتوحة. يمكنك فرض قفل هذا المخزن، ولكن مقاطعة عمليات الادخال والاخراج I/O قد تؤدي لفقدان البيانات غير المحفوظة.
|
||||||
@@ -234,7 +233,6 @@ main.vaultDetail.lockBtn=قفل
|
|||||||
main.vaultDetail.bytesPerSecondRead=قراءة:
|
main.vaultDetail.bytesPerSecondRead=قراءة:
|
||||||
main.vaultDetail.bytesPerSecondWritten=كتابة:
|
main.vaultDetail.bytesPerSecondWritten=كتابة:
|
||||||
main.vaultDetail.throughput.idle=خمول
|
main.vaultDetail.throughput.idle=خمول
|
||||||
main.vaultDetail.throughput.kbps=%.1f كيلوبايت/ث
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث
|
main.vaultDetail.throughput.mbps=%.1f ميجابايت/ث
|
||||||
main.vaultDetail.stats=إحصائيات الخزنة
|
main.vaultDetail.stats=إحصائيات الخزنة
|
||||||
main.vaultDetail.locateEncryptedFileBtn=تحديد موقع الملف المشفر
|
main.vaultDetail.locateEncryptedFileBtn=تحديد موقع الملف المشفر
|
||||||
@@ -296,7 +294,7 @@ recoveryKey.display.StorageHints=حافظ عليه في مكان ما آمن ج
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=أدخل مفتاح الاسترداد الخاص لـ "%s":
|
recoveryKey.recover.prompt=أدخل مفتاح الاسترداد الخاص لـ "%s":
|
||||||
recoveryKey.recover.validKey=هذا مفتاح استرداد صالح
|
recoveryKey.recover.correctKey=هذا مفتاح استرداد صالح
|
||||||
recoveryKey.printout.heading=مفتاح استرداد Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=مفتاح استرداد Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -123,7 +123,14 @@ unlock.success.description=Змест скарбніцы "%s" цяпер дас
|
|||||||
unlock.success.rememberChoice=Запомні мой выбар і больш не пытай
|
unlock.success.rememberChoice=Запомні мой выбар і больш не пытай
|
||||||
unlock.success.revealBtn=Паказаць дыск
|
unlock.success.revealBtn=Паказаць дыск
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=Не магчыма змантажаваць скарбніцу да карыстальніцкай сцежкі
|
||||||
|
unlock.error.customPath.description.notSupported=Калі ты надалей жадаеш карыстацца адмысловаю сцежкаю, калі ласка, пайдзі ў налады ды абары там тып тому, які падтрымлівае яе. У іншым выпадку пайдзі ў опцыі скарбніцы ды абяры там пункт мантажавання, які падтрымліваецца.
|
||||||
|
unlock.error.customPath.description.notExists=Адмысловая сцежка мантажавання не існуе. Ствары яе ў сваёй файлавай сістэме, альбо змяні яе ў опцыях скарбніцы.
|
||||||
|
unlock.error.customPath.description.generic=Ты абраў адмысловую сцежку мантажавання для гэтай скарбніцы, але скарыстацца ёю не ўдалося. Вось паведамленне пра памылку: %s
|
||||||
## Hub
|
## Hub
|
||||||
|
hub.noKeychain.message=Няма доступу да ключа прылады
|
||||||
|
hub.noKeychain.description=Каб разамкнуць скарбніцы Hub, патрэбны ключ прылады, які захаваны ў звязку ключоў. Каб працягнуць, уключы "%s" ды абяры звязак ключоў у наладах.
|
||||||
|
hub.noKeychain.openBtn=Адчыніць налады
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=Чаканне спраўджання…
|
hub.auth.message=Чаканне спраўджання…
|
||||||
hub.auth.description=Ты мусіш аўтаматычна перанакіравацца на старонку ўваходу.
|
hub.auth.description=Ты мусіш аўтаматычна перанакіравацца на старонку ўваходу.
|
||||||
@@ -147,8 +154,8 @@ hub.registerFailed.description=Падчас прысваення імя адбы
|
|||||||
hub.unauthorized.message=Адмова ў доступе
|
hub.unauthorized.message=Адмова ў доступе
|
||||||
hub.unauthorized.description=Тваёй прыладзе ў дадзены момант не дазволена мець доступ да гэтай скрабніцы. Запытайся ўладальніка скрабніцы за дазволам.
|
hub.unauthorized.description=Тваёй прыладзе ў дадзены момант не дазволена мець доступ да гэтай скрабніцы. Запытайся ўладальніка скрабніцы за дазволам.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Ліцэнзія пратэрмінаваная
|
hub.invalidLicense.message=Несапраўдная ліцэнзія Hub
|
||||||
|
hub.invalidLicense.description=Твая інстанцыя Cryptomator Hub мае некарэктную ліцэнзію. Калі ласка, паведамі адміністратару Hub пра гэта, каб абнавіць альбо аднавіць ліцэнзію.
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -164,6 +171,12 @@ lock.fail.description=Скарбніцу "%s" не мажліва замкнуц
|
|||||||
migration.title=Абнавіць скарбніцу
|
migration.title=Абнавіць скарбніцу
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=Абнавіць скарбніцу
|
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
|
## Run
|
||||||
migration.run.enterPassword=Увядзіце пароль да "%s"
|
migration.run.enterPassword=Увядзіце пароль да "%s"
|
||||||
migration.run.startMigrationBtn=Перамясціць скарбніцу
|
migration.run.startMigrationBtn=Перамясціць скарбніцу
|
||||||
@@ -185,17 +198,47 @@ migration.impossible.heading=Не мажліва перанесці скарбн
|
|||||||
## Start
|
## Start
|
||||||
health.title=Тэст на цэласнасць для "%s"
|
health.title=Тэст на цэласнасць для "%s"
|
||||||
health.intro.header=Тэст на цэласнасць
|
health.intro.header=Тэст на цэласнасць
|
||||||
|
health.intro.remarkFix=Ня ўсе хібы могуць быць выпраўленыя.
|
||||||
health.intro.remarkBackup=Калі даныя пашкоджаныя, дапаможа толькі рэзервовая копія.
|
health.intro.remarkBackup=Калі даныя пашкоджаныя, дапаможа толькі рэзервовая копія.
|
||||||
|
health.intro.affirmation=Я прачытала і зразумела інфармацыю зверху
|
||||||
## Start Failure
|
## Start Failure
|
||||||
|
health.fail.header=Падчас загрузкі налад скарбніцы адбылася памылка
|
||||||
|
health.fail.ioError=Здарылася памылка падчас спробы прачытаць канфіґурацыйны файл.
|
||||||
|
health.fail.parseError=Здарылася памылка падчас ператварэння канфіґурацыі скарбніцы.
|
||||||
health.fail.moreInfo=Падрабязней
|
health.fail.moreInfo=Падрабязней
|
||||||
## Check Selection
|
## Check Selection
|
||||||
|
health.checkList.description=Абяры тэсты ў левым спісе альбо скарыстайся кнопкамі ўнізе.
|
||||||
health.checkList.selectAllButton=Вылучыць усе элементы
|
health.checkList.selectAllButton=Вылучыць усе элементы
|
||||||
health.checkList.deselectAllButton=Адрабіць вылучэнне ўсіх элементаў
|
health.checkList.deselectAllButton=Адрабіць вылучэнне ўсіх элементаў
|
||||||
health.check.runBatchBtn=Выканаць вылучаныя элементы
|
health.check.runBatchBtn=Выканаць вылучаныя элементы
|
||||||
## Detail view
|
## 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.checkCancelled=Праверка была скасавана.
|
||||||
|
health.check.detail.listFilters.label=Фільтр
|
||||||
|
health.check.detail.fixAllSpecificBtn=Адрамантаваць усё гэтага тыпу
|
||||||
health.check.exportBtn=Экспартаваць справаздачу
|
health.check.exportBtn=Экспартаваць справаздачу
|
||||||
## Result view
|
## 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
|
## Fix Application
|
||||||
health.fix.fixBtn=Выправіць
|
health.fix.fixBtn=Выправіць
|
||||||
health.fix.successTip=Паспяхова выпраўлена
|
health.fix.successTip=Паспяхова выпраўлена
|
||||||
@@ -227,7 +270,16 @@ preferences.interface.showMinimizeButton=Паказаць кнопку згор
|
|||||||
preferences.interface.showTrayIcon=Паказваць іконку на інфармацыйнай панэлі (спатрэбіцца перазапуск)
|
preferences.interface.showTrayIcon=Паказваць іконку на інфармацыйнай панэлі (спатрэбіцца перазапуск)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Віртуальны дыск
|
preferences.volume=Віртуальны дыск
|
||||||
|
preferences.volume.type=Тып тому (спатрэбіцца перазапуск)
|
||||||
preferences.volume.type.automatic=Аўтаматычна
|
preferences.volume.type.automatic=Аўтаматычна
|
||||||
|
preferences.volume.docsTooltip=Адчыні дакумэнтацыю, каб даведацца больш пра розныя тыпы тому.
|
||||||
|
preferences.volume.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
|
## Updates
|
||||||
preferences.updates=Абнаўленні
|
preferences.updates=Абнаўленні
|
||||||
preferences.updates.currentVersion=Бягучая версія: %s
|
preferences.updates.currentVersion=Бягучая версія: %s
|
||||||
@@ -236,7 +288,10 @@ preferences.updates.checkNowBtn=Праверыць зараз
|
|||||||
preferences.updates.updateAvailable=Даступна абнаўленне да версіі %s
|
preferences.updates.updateAvailable=Даступна абнаўленне да версіі %s
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=Падтрымай нас
|
preferences.contribute=Падтрымай нас
|
||||||
|
preferences.contribute.registeredFor=Сэртыфікат ахвяравальніка зарэгістраваны на %s
|
||||||
|
preferences.contribute.noCertificate=Ахвяруй на Cryptomator ды атрымай сэртыфікат ахвяравальніка. Гэта штось падобнае на ліцэнзійны ключ, але для цудоўных людзей, якія карыстаюцца бясплатнай праграмай. ;-)
|
||||||
preferences.contribute.getCertificate=Яшчэ ня маеш такога? Даведайся, як атрымаць.
|
preferences.contribute.getCertificate=Яшчэ ня маеш такога? Даведайся, як атрымаць.
|
||||||
|
preferences.contribute.promptText=Устаў код сэртыфікату ахвяравальніка сюды
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -244,9 +299,10 @@ preferences.about=Пра нас
|
|||||||
|
|
||||||
# Vault Statistics
|
# Vault Statistics
|
||||||
stats.title=Статыстыкі для %s
|
stats.title=Статыстыкі для %s
|
||||||
|
stats.cacheHitRate=Трапнасць кэшу
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Чытанне: -
|
stats.read.throughput.idle=Чытанне: нічога
|
||||||
stats.read.throughput.kibs=Чытанне: %.2f КіБ/с
|
stats.read.throughput.kibs=Чытанне: %.2f KiB/s
|
||||||
stats.read.throughput.mibs=Чытанне: %.2f МіБ/с
|
stats.read.throughput.mibs=Чытанне: %.2f МіБ/с
|
||||||
stats.read.total.data.none=Прачытана: -
|
stats.read.total.data.none=Прачытана: -
|
||||||
stats.read.total.data.kib=Прачытана: %.1f КіБ
|
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.kib=Расшыфравана: %.1f КіБ
|
||||||
stats.decr.total.data.mib=Расшыфравана: %.1f МіБ
|
stats.decr.total.data.mib=Расшыфравана: %.1f МіБ
|
||||||
stats.decr.total.data.gib=Расшыфравана: %.1f ҐіБ
|
stats.decr.total.data.gib=Расшыфравана: %.1f ҐіБ
|
||||||
stats.read.accessCount=Агульная колькасць чытанняў: %d
|
stats.read.accessCount=Прачытана агулам: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Чытанне: -
|
stats.write.throughput.idle=Пісанне: нічога
|
||||||
stats.write.throughput.kibs=Пісанне: %.2f КіБ/с
|
stats.write.throughput.kibs=Пісанне: %.2f КіБ/с
|
||||||
stats.write.throughput.mibs=Пісанне: %.2f МіБ/с
|
stats.write.throughput.mibs=Пісанне: %.2f МіБ/с
|
||||||
stats.write.total.data.none=Напісана: -
|
stats.write.total.data.none=Напісана: -
|
||||||
@@ -269,9 +325,11 @@ stats.encr.total.data.none=Зашыфравана: -
|
|||||||
stats.encr.total.data.kib=Зашыфравана: %.1f КіБ
|
stats.encr.total.data.kib=Зашыфравана: %.1f КіБ
|
||||||
stats.encr.total.data.mib=Зашыфравана: %.1f МіБ
|
stats.encr.total.data.mib=Зашыфравана: %.1f МіБ
|
||||||
stats.encr.total.data.gib=Зашыфравана: %.1f ҐіБ
|
stats.encr.total.data.gib=Зашыфравана: %.1f ҐіБ
|
||||||
stats.write.accessCount=Агульная колькасць запісаў: %d
|
stats.write.accessCount=Запісана агулам: %d
|
||||||
|
|
||||||
## Accesses
|
## Accesses
|
||||||
|
stats.access.current=Доступ: %d
|
||||||
|
stats.access.total=Доступы агулам: %d
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
@@ -301,6 +359,7 @@ main.vaultDetail.passwordSavedInKeychain=Пароль захаваны
|
|||||||
main.vaultDetail.unlockedStatus=РАЗАМКНЁНА
|
main.vaultDetail.unlockedStatus=РАЗАМКНЁНА
|
||||||
main.vaultDetail.accessLocation=Змест тваёй скарбніцы даступны тут:
|
main.vaultDetail.accessLocation=Змест тваёй скарбніцы даступны тут:
|
||||||
main.vaultDetail.revealBtn=Паказаць дыск
|
main.vaultDetail.revealBtn=Паказаць дыск
|
||||||
|
main.vaultDetail.copyUri=Скапіяваць URI
|
||||||
main.vaultDetail.lockBtn=Замкнуць
|
main.vaultDetail.lockBtn=Замкнуць
|
||||||
main.vaultDetail.bytesPerSecondRead=Чытанне:
|
main.vaultDetail.bytesPerSecondRead=Чытанне:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Пісанне:
|
main.vaultDetail.bytesPerSecondWritten=Пісанне:
|
||||||
@@ -308,6 +367,10 @@ main.vaultDetail.throughput.idle=бяздзейны
|
|||||||
main.vaultDetail.throughput.kbps=%.1f КіБ/с
|
main.vaultDetail.throughput.kbps=%.1f КіБ/с
|
||||||
main.vaultDetail.throughput.mbps=%.1f МіБ/с
|
main.vaultDetail.throughput.mbps=%.1f МіБ/с
|
||||||
main.vaultDetail.stats=Статыстыка скарбніцы
|
main.vaultDetail.stats=Статыстыка скарбніцы
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn=Знайсці зашыфраваны файл
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=Абяры файл у тваёй скрабніцы, каб знайсці ягоны зашыфраваны адпаведнік
|
||||||
|
main.vaultDetail.encryptedPathsCopied=Шлях скапіяваны ў буфер абмену!
|
||||||
|
main.vaultDetail.filePickerTitle=Абраць файл унутры скарбніцы
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator ня змог знайсці скарбніцу па гэтай сцежцы.
|
main.vaultDetail.missing.info=Cryptomator ня змог знайсці скарбніцу па гэтай сцежцы.
|
||||||
main.vaultDetail.missing.recheck=Пераправерыць
|
main.vaultDetail.missing.recheck=Пераправерыць
|
||||||
@@ -341,20 +404,26 @@ vaultOptions.general.actionAfterUnlock=Пасля паспяховага раз
|
|||||||
vaultOptions.general.actionAfterUnlock.ignore=Нічога не рабі
|
vaultOptions.general.actionAfterUnlock.ignore=Нічога не рабі
|
||||||
vaultOptions.general.actionAfterUnlock.reveal=Паказаць дыск
|
vaultOptions.general.actionAfterUnlock.reveal=Паказаць дыск
|
||||||
vaultOptions.general.actionAfterUnlock.ask=Запытацца
|
vaultOptions.general.actionAfterUnlock.ask=Запытацца
|
||||||
|
vaultOptions.general.startHealthCheckBtn=Пачаць тэст на цэласнасць
|
||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Мантажаванне
|
vaultOptions.mount=Мантажаванне
|
||||||
|
vaultOptions.mount.info=Опцыі залежаць ад абранага тыпу тому.
|
||||||
|
vaultOptions.mount.linkToPreferences=Адчыніць налады віртуальнага дыску
|
||||||
vaultOptions.mount.readonly=Толькі для чытання
|
vaultOptions.mount.readonly=Толькі для чытання
|
||||||
vaultOptions.mount.customMountFlags=Карыстальніцкія опцыі мантажавання
|
vaultOptions.mount.customMountFlags=Карыстальніцкія опцыі мантажавання
|
||||||
vaultOptions.mount.winDriveLetterOccupied=занята
|
vaultOptions.mount.winDriveLetterOccupied=занята
|
||||||
vaultOptions.mount.mountPoint=Пункт мантажавання
|
vaultOptions.mount.mountPoint=Пункт мантажавання
|
||||||
vaultOptions.mount.mountPoint.auto=Аўтаматычны выбар пасуючага месцазнаходжання
|
vaultOptions.mount.mountPoint.auto=Аўтаматычны выбар пасуючага месцазнаходжання
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Назначыць літару для дыску
|
vaultOptions.mount.mountPoint.driveLetter=Назначыць літару для дыску
|
||||||
|
vaultOptions.mount.mountPoint.custom=Выкарыстаць абраную тэчку
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Абраць…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Абраць…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Абраць тэчку
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Пароль
|
vaultOptions.masterkey=Пароль
|
||||||
vaultOptions.masterkey.changePasswordBtn=Змяніць пароль
|
vaultOptions.masterkey.changePasswordBtn=Змяніць пароль
|
||||||
vaultOptions.masterkey.forgetSavedPasswordBtn=Забыцца на захаваны пароль
|
vaultOptions.masterkey.forgetSavedPasswordBtn=Забыцца на захаваны пароль
|
||||||
|
vaultOptions.masterkey.recoveryKeyExplanation=Ключ аднаўлення – гэта адзіная мажлівасць аднавіць доступ да тваёй скарбніцы, калі ты згубіш пароль.
|
||||||
vaultOptions.masterkey.showRecoveryKeyBtn=Паказаць ключ аднаўлення
|
vaultOptions.masterkey.showRecoveryKeyBtn=Паказаць ключ аднаўлення
|
||||||
vaultOptions.masterkey.recoverPasswordBtn=Скінуць пароль
|
vaultOptions.masterkey.recoverPasswordBtn=Скінуць пароль
|
||||||
|
|
||||||
@@ -370,7 +439,9 @@ recoveryKey.display.StorageHints=Захоўвай іх у бяспечным м
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Скінуць пароль
|
recoveryKey.recover.title=Скінуць пароль
|
||||||
recoveryKey.recover.prompt=Увядзі свой ключ аднаўлення для "%s":
|
recoveryKey.recover.prompt=Увядзі свой ключ аднаўлення для "%s":
|
||||||
recoveryKey.recover.validKey=Гэта валідны ключ аднаўлення
|
recoveryKey.recover.correctKey=Гэта валідны ключ аднаўлення
|
||||||
|
recoveryKey.recover.wrongKey=Гэты ключ аднаўлення належыць іншай скарбніцы
|
||||||
|
recoveryKey.recover.invalidKey=Несапраўдны ключ аднаўлення
|
||||||
recoveryKey.printout.heading=Ключ аднаўлення Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Ключ аднаўлення Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Скінуць
|
recoveryKey.recover.resetBtn=Скінуць
|
||||||
@@ -398,4 +469,5 @@ quit.lockAndQuitBtn=Замкнуць ды вайсці
|
|||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
quit.forced.message=Некаторыя скарбніцы не магчыма замкнуць
|
quit.forced.message=Некаторыя скарбніцы не магчыма замкнуць
|
||||||
|
quit.forced.description=Замыканне скарбніц было заблакавана праз дзеючыя аперацыі альбо праз адчыненыя файлы. Ты можаш прымусова замкнуць скарбніцы, але гэта можа прывесці да страты незахаваных даных.
|
||||||
quit.forced.forceAndQuitBtn=Прымусіць і выйсці
|
quit.forced.forceAndQuitBtn=Прымусіць і выйсці
|
||||||
@@ -97,7 +97,6 @@ hub.register.registerBtn=নিশ্চিত করুন
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
lock.forced.retryBtn=পুনরায় চেষ্টা করুন
|
||||||
|
|||||||
@@ -113,7 +113,6 @@ hub.register.registerBtn=Potvrdi
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## 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.
|
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
|
stats.cacheHitRate=Brzina učitavanja u predmemoriju
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čitaj: U pripravnosti
|
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.throughput.mibs=Čitanje: %.2f MiB/s
|
||||||
stats.read.total.data.none=Pročitano podataka: -
|
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.mib=Pročitano podataka: %.1f MiB
|
||||||
stats.read.total.data.gib=Pročitano podataka: %.1f GiB
|
stats.read.total.data.gib=Pročitano podataka: %.1f GiB
|
||||||
stats.decr.total.data.none=Otključani podaci: -
|
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.mib=Otključano podataka: %.1f MiB
|
||||||
stats.decr.total.data.gib=Otključano podataka: %.1f GiB
|
stats.decr.total.data.gib=Otključano podataka: %.1f GiB
|
||||||
stats.read.accessCount=Ukupno pročitano: %d
|
stats.read.accessCount=Ukupno pročitano: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Pisanje: U pripravnosti
|
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.throughput.mibs=Upisano: %.2f MiB/s
|
||||||
stats.write.total.data.none=Podaci su upisani:-
|
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.mib=Upisano podataka: %.1f MiB
|
||||||
stats.write.total.data.gib=Upisano podataka: %.1f GiB
|
stats.write.total.data.gib=Upisano podataka: %.1f GiB
|
||||||
stats.encr.total.data.none=Otključano podataka: -
|
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.mib=Otključano podataka: %.1f MiB
|
||||||
stats.encr.total.data.gib=Otključano podataka: %.1f GiB
|
stats.encr.total.data.gib=Otključano podataka: %.1f GiB
|
||||||
stats.write.accessCount=Ukupno upisano: %d
|
stats.write.accessCount=Ukupno upisano: %d
|
||||||
@@ -243,7 +236,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
|||||||
main.vaultDetail.bytesPerSecondRead=Čitaj:
|
main.vaultDetail.bytesPerSecondRead=Čitaj:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Piši:
|
main.vaultDetail.bytesPerSecondWritten=Piši:
|
||||||
main.vaultDetail.throughput.idle=u stanju mirovanja
|
main.vaultDetail.throughput.idle=u stanju mirovanja
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistika sefa
|
main.vaultDetail.stats=Statistika sefa
|
||||||
### Missing
|
### Missing
|
||||||
@@ -301,7 +293,7 @@ recoveryKey.display.StorageHints=Pohranite ga negdje vrlo sigurno, npr.:\n • S
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator Ključ za oporavak za \n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=S'ha produït un error en el procés de nomenamen
|
|||||||
hub.unauthorized.message=Accés denegat
|
hub.unauthorized.message=Accés denegat
|
||||||
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
hub.unauthorized.description=El vostre dispositiu no ha estat encara autoritzat a accedir a aquesta caixa forta. Demaneu autorització al propietari.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Llicència caducada
|
hub.invalidLicense.message=La llicència del Hub no és vàlida
|
||||||
hub.licenseExceeded.description=Cryptomator Hub ha donat accés a més usuaris dels permesos en la llicència. Si us plau contacteu amb l'administrador del Hub per actualitzar la llicència o amb l'administrador de la caixa forta per treure usuaris.
|
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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Mostra la icona en la barra (cal reiniciar)
|
|||||||
preferences.volume=Unitat virtual
|
preferences.volume=Unitat virtual
|
||||||
preferences.volume.type=Tipus de volum (requereix reiniciar)
|
preferences.volume.type=Tipus de volum (requereix reiniciar)
|
||||||
preferences.volume.type.automatic=Automàtic
|
preferences.volume.type.automatic=Automàtic
|
||||||
|
preferences.volume.docsTooltip=Obre la documentació per aprendre més sobre els diferents tipus de volums.
|
||||||
preferences.volume.tcp.port=Port TCP
|
preferences.volume.tcp.port=Port TCP
|
||||||
preferences.volume.supportedFeatures=El tipus de volum escollit suporta les següents característiques:
|
preferences.volume.supportedFeatures=El tipus de volum escollit suporta les següents característiques:
|
||||||
preferences.volume.feature.mountAuto=Selecció automàtica del punt de muntatge
|
preferences.volume.feature.mountAuto=Selecció automàtica del punt de muntatge
|
||||||
@@ -306,27 +306,27 @@ stats.title=Estadístiques per a %s
|
|||||||
stats.cacheHitRate=Relació d'encerts de la memòria cau
|
stats.cacheHitRate=Relació d'encerts de la memòria cau
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Llegit: inactiu
|
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.throughput.mibs=Llegit: %.2f MiB/s
|
||||||
stats.read.total.data.none=Dades llegides: -
|
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.mib=Dades llegides: %.1f MiB
|
||||||
stats.read.total.data.gib=Dades llegides: %.1f GiB
|
stats.read.total.data.gib=Dades llegides: %.1f GiB
|
||||||
stats.decr.total.data.none=Dades desxifrades: -
|
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.mib=Dades desxifrades: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dades desxifrades: %.1f GiB
|
stats.decr.total.data.gib=Dades desxifrades: %.1f GiB
|
||||||
stats.read.accessCount=Lectures en total: %d
|
stats.read.accessCount=Lectures en total: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Escriu: inactiu
|
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.throughput.mibs=Escriu: %.2f MiB/s
|
||||||
stats.write.total.data.none=Dades escrites
|
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.mib=Dades escrites: %.1f MiB
|
||||||
stats.write.total.data.gib=Dades escrites: %.1f GiB
|
stats.write.total.data.gib=Dades escrites: %.1f GiB
|
||||||
stats.encr.total.data.none=Dades xifrades: -
|
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.mib=Dades xifrades: %.1f MiB
|
||||||
stats.encr.total.data.gib=Dades xifrades: %.1f GiB
|
stats.encr.total.data.gib=Dades xifrades: %.1f GiB
|
||||||
stats.write.accessCount=Total escrits: %d
|
stats.write.accessCount=Total escrits: %d
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Bloqueja
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lectura:
|
main.vaultDetail.bytesPerSecondRead=Lectura:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Escriu:
|
main.vaultDetail.bytesPerSecondWritten=Escriu:
|
||||||
main.vaultDetail.throughput.idle=inactiu
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Estadístiques de la caixa forta
|
main.vaultDetail.stats=Estadístiques de la caixa forta
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Trobar fitxer xifrat
|
main.vaultDetail.locateEncryptedFileBtn=Trobar fitxer xifrat
|
||||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Conserveu-la en un lloc molt segur. P. ex.:\n
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Canviar contrasenya
|
recoveryKey.recover.title=Canviar contrasenya
|
||||||
recoveryKey.recover.prompt=Introduïu la vostra clau de recuperació de "%s":
|
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
|
recoveryKey.printout.heading=Clau de recuperació de Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Reinicia
|
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.message=Přístup odepřen
|
||||||
hub.unauthorized.description=Vaše zařízení dosud nebylo oprávněno k přístupu k tomuto trezoru. Požádejte vlastníka trezoru, aby jej autorizoval.
|
hub.unauthorized.description=Vaše zařízení dosud nebylo oprávněno k přístupu k tomuto trezoru. Požádejte vlastníka trezoru, aby jej autorizoval.
|
||||||
### License Exceeded
|
### 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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -275,27 +272,21 @@ stats.title=Statistika pro %s
|
|||||||
stats.cacheHitRate=Rychlost dosažené mezipaměti
|
stats.cacheHitRate=Rychlost dosažené mezipaměti
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čtení: nečinné
|
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.throughput.mibs=Čtení: %.2f MiB/s
|
||||||
stats.read.total.data.none=Přečteno: -
|
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.mib=Přečteno: %.1f MiB
|
||||||
stats.read.total.data.gib=Přečteno: %.1f GiB
|
stats.read.total.data.gib=Přečteno: %.1f GiB
|
||||||
stats.decr.total.data.none=Dešifrováno: -
|
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.mib=Dešifrováno: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dešifrováno: %.1f GiB
|
stats.decr.total.data.gib=Dešifrováno: %.1f GiB
|
||||||
stats.read.accessCount=Celkem přečteno: %d
|
stats.read.accessCount=Celkem přečteno: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Zápis: nečinný
|
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.throughput.mibs=Zápis: %.2f MiB/s
|
||||||
stats.write.total.data.none=Zapsaná data: -
|
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.mib=Zapsáno: %.1f MiB
|
||||||
stats.write.total.data.gib=Zapsáno: %.1f GiB
|
stats.write.total.data.gib=Zapsáno: %.1f GiB
|
||||||
stats.encr.total.data.none=Zašifrováno: -
|
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.mib=Zašifrováno: %.1f MiB
|
||||||
stats.encr.total.data.gib=Zašifrováno: %.1f GiB
|
stats.encr.total.data.gib=Zašifrováno: %.1f GiB
|
||||||
stats.write.accessCount=Celkem zapsáno: %d
|
stats.write.accessCount=Celkem zapsáno: %d
|
||||||
@@ -337,7 +328,6 @@ main.vaultDetail.lockBtn=Zamknout
|
|||||||
main.vaultDetail.bytesPerSecondRead=Přečteno:
|
main.vaultDetail.bytesPerSecondRead=Přečteno:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Zapsáno:
|
main.vaultDetail.bytesPerSecondWritten=Zapsáno:
|
||||||
main.vaultDetail.throughput.idle=nečinný
|
main.vaultDetail.throughput.idle=nečinný
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistiky trezoru
|
main.vaultDetail.stats=Statistiky trezoru
|
||||||
### Missing
|
### Missing
|
||||||
@@ -405,7 +395,7 @@ recoveryKey.display.StorageHints=Uchovejte ho někde velmi bezpečně, např.\n
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Resetovat heslo
|
recoveryKey.recover.title=Resetovat heslo
|
||||||
recoveryKey.recover.prompt=Zadejte váš obnovovací klíč pro "%s":
|
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
|
recoveryKey.printout.heading=Obnovovací klíč Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetovat
|
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.rememberChoice=Husk mit valg. Spørg ikke igen
|
||||||
unlock.success.revealBtn=Vis drev
|
unlock.success.revealBtn=Vis drev
|
||||||
## Failure
|
## 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
|
||||||
hub.noKeychain.message=Kan ikke tilgå enhedsnøgle
|
hub.noKeychain.message=Kan ikke tilgå enhedsnøgle
|
||||||
hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne.
|
hub.noKeychain.description=En enhedsnøgle er påkrævet for at låse Hub bokse op. Enhedsnøglen er sikret i en nøglering. For at fortsætte, aktivér “%s” og vælg en nøglering i indstillingerne.
|
||||||
@@ -150,9 +154,6 @@ hub.registerFailed.description=Der opstod en fejl i navngivnings-processen. Kig
|
|||||||
hub.unauthorized.message=Adgang nægtet
|
hub.unauthorized.message=Adgang nægtet
|
||||||
hub.unauthorized.description=Din enhed er endnu ikke blevet godkendt til at få adgang til denne boks. Spørg boks-ejeren om godkendelse.
|
hub.unauthorized.description=Din enhed er endnu ikke blevet godkendt til at få adgang til denne boks. Spørg boks-ejeren om godkendelse.
|
||||||
### License Exceeded
|
### 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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -251,7 +252,7 @@ preferences.title=Præferencer
|
|||||||
preferences.general=Generelt
|
preferences.general=Generelt
|
||||||
preferences.general.startHidden=Skjul vinduet når Cryptomator starter
|
preferences.general.startHidden=Skjul vinduet når Cryptomator starter
|
||||||
preferences.general.autoCloseVaults=Lås åbne bokse automatisk, når programmet afsluttes
|
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.debugDirectory=Vis logfiler
|
||||||
preferences.general.autoStart=Start Cryptomator automatisk ved opstart
|
preferences.general.autoStart=Start Cryptomator automatisk ved opstart
|
||||||
preferences.general.keychainBackend=Gem adgangskoder med
|
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)
|
preferences.interface.showTrayIcon=Vis ikon i system-bakken (kræver genstart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuelt drev
|
preferences.volume=Virtuelt drev
|
||||||
|
preferences.volume.type=Drev type (kræver genstart)
|
||||||
preferences.volume.type.automatic=Automatisk
|
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
|
## Updates
|
||||||
preferences.updates=Opdateringer
|
preferences.updates=Opdateringer
|
||||||
preferences.updates.currentVersion=Nuværende version: %s
|
preferences.updates.currentVersion=Nuværende version: %s
|
||||||
@@ -294,27 +303,21 @@ stats.title=Statistik for %s
|
|||||||
stats.cacheHitRate=Cache effektivitet
|
stats.cacheHitRate=Cache effektivitet
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Læser: afventer
|
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.throughput.mibs=Læser: %.2f MiB/s
|
||||||
stats.read.total.data.none=Data læst: -
|
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.mib=Data læst: %.1f MiB
|
||||||
stats.read.total.data.gib=Data læst: %.1f GiB
|
stats.read.total.data.gib=Data læst: %.1f GiB
|
||||||
stats.decr.total.data.none=Data dekrypteret: -
|
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.mib=Data dekrypteret: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data dekrypteret: %.1f GiB
|
stats.decr.total.data.gib=Data dekrypteret: %.1f GiB
|
||||||
stats.read.accessCount=Totalt antal læsninger: %d
|
stats.read.accessCount=Totalt antal læsninger: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Skriver: afventer
|
stats.write.throughput.idle=Skriver: afventer
|
||||||
stats.write.throughput.kibs=Skriver: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Skriver: %.2f MiB/s
|
stats.write.throughput.mibs=Skriver: %.2f MiB/s
|
||||||
stats.write.total.data.none=Data skrevet: -
|
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.mib=Data skrevet: %.1f MiB
|
||||||
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
||||||
stats.encr.total.data.none=Data krypteret: -
|
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.mib=Data krypteret: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data krypteret: %.1f GiB
|
stats.encr.total.data.gib=Data krypteret: %.1f GiB
|
||||||
stats.write.accessCount=Totalt antal skrivninger: %d
|
stats.write.accessCount=Totalt antal skrivninger: %d
|
||||||
@@ -352,13 +355,17 @@ main.vaultDetail.passwordSavedInKeychain=Adgangskode gemt
|
|||||||
main.vaultDetail.unlockedStatus=LÅST OP
|
main.vaultDetail.unlockedStatus=LÅST OP
|
||||||
main.vaultDetail.accessLocation=Boksens indhold er tilgængeligt her:
|
main.vaultDetail.accessLocation=Boksens indhold er tilgængeligt her:
|
||||||
main.vaultDetail.revealBtn=Vis drev
|
main.vaultDetail.revealBtn=Vis drev
|
||||||
|
main.vaultDetail.copyUri=Kopiér URI
|
||||||
main.vaultDetail.lockBtn=Lås
|
main.vaultDetail.lockBtn=Lås
|
||||||
main.vaultDetail.bytesPerSecondRead=Læser:
|
main.vaultDetail.bytesPerSecondRead=Læser:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Skriver:
|
main.vaultDetail.bytesPerSecondWritten=Skriver:
|
||||||
main.vaultDetail.throughput.idle=afventer
|
main.vaultDetail.throughput.idle=afventer
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Boks statistik
|
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
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator kunne ikke finde en boks på denne sti.
|
main.vaultDetail.missing.info=Cryptomator kunne ikke finde en boks på denne sti.
|
||||||
main.vaultDetail.missing.recheck=Kontrollér igen
|
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
|
main.vaultDetail.error.windowTitle=Fejl ved indlæsning af boks
|
||||||
|
|
||||||
# Wrong File Alert
|
# 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.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.description=Til dette formål opretter Cryptomator et drev i din filhåndtering.
|
||||||
wrongFileAlert.instruction.0=For at kryptere filer, gør følgende:
|
wrongFileAlert.instruction.0=Følg disse trin for at kryptere filer:
|
||||||
wrongFileAlert.instruction.1=1. Lås din boks op.
|
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.2=2. Klik på "Vis drev" for at åbne drevet i din stifinder.
|
||||||
wrongFileAlert.instruction.3=3. Tilføj filer til drevet.
|
wrongFileAlert.instruction.3=3. Tilføj filer til drevet.
|
||||||
@@ -397,13 +404,17 @@ vaultOptions.general.startHealthCheckBtn=Start sunhedstjek
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Montering
|
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.readonly=Skrivebeskyttet
|
||||||
vaultOptions.mount.customMountFlags=Brugerdefinerede monterings-flag
|
vaultOptions.mount.customMountFlags=Brugerdefinerede monterings-flag
|
||||||
vaultOptions.mount.winDriveLetterOccupied=optaget
|
vaultOptions.mount.winDriveLetterOccupied=optaget
|
||||||
vaultOptions.mount.mountPoint=Monterings-sted
|
vaultOptions.mount.mountPoint=Monterings-sted
|
||||||
vaultOptions.mount.mountPoint.auto=Vælg automatisk en passende placering
|
vaultOptions.mount.mountPoint.auto=Vælg automatisk en passende placering
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Brug et ledigt drevbogstav
|
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.directoryPickerButton=Vælg…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Vælg en mappe
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Adgangskode
|
vaultOptions.masterkey=Adgangskode
|
||||||
vaultOptions.masterkey.changePasswordBtn=Skift 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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Nulstil adgangskode
|
recoveryKey.recover.title=Nulstil adgangskode
|
||||||
recoveryKey.recover.prompt=Indtast din gendannelsesnøgle for "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator gendannelsesnøgle\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Nulstil
|
recoveryKey.recover.resetBtn=Nulstil
|
||||||
@@ -437,11 +448,11 @@ newPassword.promptText=Skriv en ny adgangskode
|
|||||||
newPassword.reenterPassword=Bekræft ny adgangskode
|
newPassword.reenterPassword=Bekræft ny adgangskode
|
||||||
newPassword.passwordsMatch=Adgangskoderne er ens!
|
newPassword.passwordsMatch=Adgangskoderne er ens!
|
||||||
newPassword.passwordsDoNotMatch=Adgangskoder stemmer ikke overens
|
newPassword.passwordsDoNotMatch=Adgangskoder stemmer ikke overens
|
||||||
passwordStrength.messageLabel.tooShort=Angiv mindst %d tegn
|
passwordStrength.messageLabel.tooShort=Brug mindst %d tegn
|
||||||
passwordStrength.messageLabel.0=Meget dårlig
|
passwordStrength.messageLabel.0=Meget svag
|
||||||
passwordStrength.messageLabel.1=Dårlig
|
passwordStrength.messageLabel.1=Svag
|
||||||
passwordStrength.messageLabel.2=Rimelig
|
passwordStrength.messageLabel.2=Rimelig
|
||||||
passwordStrength.messageLabel.3=God
|
passwordStrength.messageLabel.3=Stærk
|
||||||
passwordStrength.messageLabel.4=Meget god
|
passwordStrength.messageLabel.4=Meget god
|
||||||
|
|
||||||
# Quit
|
# 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.rememberChoice=Auswahl merken und nicht mehr fragen
|
||||||
unlock.success.revealBtn=Laufwerk anzeigen
|
unlock.success.revealBtn=Laufwerk anzeigen
|
||||||
## Failure
|
## 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
|
||||||
hub.noKeychain.message=Zugriff auf Geräteschlüssel nicht möglich
|
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
|
hub.noKeychain.openBtn=Einstellungen öffnen
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=Warten auf Authentifizierung …
|
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.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.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Lizenz überschritten
|
hub.invalidLicense.message=Hub-Lizenz ungültig
|
||||||
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.description=Die Lizenz deiner Cryptomator-Hub-Instanz ist ungültig. Bitte informiere deinen Hub-Administrator, um die Lizenz zu aktualisieren oder zu erneuern.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -241,8 +244,8 @@ health.result.fixStateFilter.fixing=Wird repariert …
|
|||||||
health.result.fixStateFilter.fixed=Repariert
|
health.result.fixStateFilter.fixed=Repariert
|
||||||
health.result.fixStateFilter.fixFailed=Reparatur gescheitert
|
health.result.fixStateFilter.fixFailed=Reparatur gescheitert
|
||||||
## Fix Application
|
## Fix Application
|
||||||
health.fix.fixBtn=Beheben
|
health.fix.fixBtn=Reparieren
|
||||||
health.fix.successTip=Fehlerbehebung erfolgreich
|
health.fix.successTip=Reparatur erfolgreich
|
||||||
health.fix.failTip=Reparatur fehlgeschlagen, siehe Protokoll für Details
|
health.fix.failTip=Reparatur fehlgeschlagen, siehe Protokoll für Details
|
||||||
|
|
||||||
# Preferences
|
# Preferences
|
||||||
@@ -270,8 +273,17 @@ preferences.interface.interfaceOrientation.rtl=Von rechts nach links
|
|||||||
preferences.interface.showMinimizeButton=Schaltfläche zum Minimieren anzeigen
|
preferences.interface.showMinimizeButton=Schaltfläche zum Minimieren anzeigen
|
||||||
preferences.interface.showTrayIcon=Symbol im Infobereich anzeigen (Neustart erforderlich)
|
preferences.interface.showTrayIcon=Symbol im Infobereich anzeigen (Neustart erforderlich)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Tresorlaufwerk
|
preferences.volume=Virtuelles Laufwerk
|
||||||
|
preferences.volume.type=Laufwerkstyp (Neustart erforderlich)
|
||||||
preferences.volume.type.automatic=Automatisch
|
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
|
## Updates
|
||||||
preferences.updates=Updates
|
preferences.updates=Updates
|
||||||
preferences.updates.currentVersion=Aktuelle Version: %s
|
preferences.updates.currentVersion=Aktuelle Version: %s
|
||||||
@@ -294,27 +306,27 @@ stats.title=Statistiken für %s
|
|||||||
stats.cacheHitRate=Cache-Trefferrate
|
stats.cacheHitRate=Cache-Trefferrate
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Leserate: inaktiv
|
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.throughput.mibs=Leserate: %.2f MiB/s
|
||||||
stats.read.total.data.none=Gelesen: -
|
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.mib=Gelesen: %.1f MiB
|
||||||
stats.read.total.data.gib=Gelesen: %.1f GiB
|
stats.read.total.data.gib=Gelesen: %.1f GiB
|
||||||
stats.decr.total.data.none=Entschlüsselt: -
|
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.mib=Entschlüsselt: %.1f MiB
|
||||||
stats.decr.total.data.gib=Entschlüsselt: %.1f GiB
|
stats.decr.total.data.gib=Entschlüsselt: %.1f GiB
|
||||||
stats.read.accessCount=Lesezugriffe: %d
|
stats.read.accessCount=Lesezugriffe: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Schreibrate: inaktiv
|
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.throughput.mibs=Schreibrate: %.2f MiB/s
|
||||||
stats.write.total.data.none=Geschrieben: -
|
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.mib=Geschrieben: %.1f MiB
|
||||||
stats.write.total.data.gib=Geschrieben: %.1f GiB
|
stats.write.total.data.gib=Geschrieben: %.1f GiB
|
||||||
stats.encr.total.data.none=Verschlüsselt: -
|
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.mib=Verschlüsselt: %.1f MiB
|
||||||
stats.encr.total.data.gib=Verschlüsselt: %.1f GiB
|
stats.encr.total.data.gib=Verschlüsselt: %.1f GiB
|
||||||
stats.write.accessCount=Schreibzugriffe: %d
|
stats.write.accessCount=Schreibzugriffe: %d
|
||||||
@@ -352,13 +364,18 @@ main.vaultDetail.passwordSavedInKeychain=Passwort gespeichert
|
|||||||
main.vaultDetail.unlockedStatus=ENTSPERRT
|
main.vaultDetail.unlockedStatus=ENTSPERRT
|
||||||
main.vaultDetail.accessLocation=Deine Tresorinhalte sind hier erreichbar:
|
main.vaultDetail.accessLocation=Deine Tresorinhalte sind hier erreichbar:
|
||||||
main.vaultDetail.revealBtn=Laufwerk anzeigen
|
main.vaultDetail.revealBtn=Laufwerk anzeigen
|
||||||
|
main.vaultDetail.copyUri=URI kopieren
|
||||||
main.vaultDetail.lockBtn=Sperren
|
main.vaultDetail.lockBtn=Sperren
|
||||||
main.vaultDetail.bytesPerSecondRead=Leserate:
|
main.vaultDetail.bytesPerSecondRead=Leserate:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Schreibrate:
|
main.vaultDetail.bytesPerSecondWritten=Schreibrate:
|
||||||
main.vaultDetail.throughput.idle=inaktiv
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Tresorstatistik
|
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
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator konnte keinen Tresor mit diesem Pfad finden.
|
main.vaultDetail.missing.info=Cryptomator konnte keinen Tresor mit diesem Pfad finden.
|
||||||
main.vaultDetail.missing.recheck=Erneut prüfen
|
main.vaultDetail.missing.recheck=Erneut prüfen
|
||||||
@@ -397,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Integritätsprüfung starten
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Laufwerk
|
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.readonly=Schreibgeschützt
|
||||||
vaultOptions.mount.customMountFlags=Benutzerdefinierte Einhänge-Optionen
|
vaultOptions.mount.customMountFlags=Benutzerdefinierte Einhänge-Optionen
|
||||||
vaultOptions.mount.winDriveLetterOccupied=belegt
|
vaultOptions.mount.winDriveLetterOccupied=belegt
|
||||||
vaultOptions.mount.mountPoint=Einhängepunkt
|
vaultOptions.mount.mountPoint=Einhängepunkt
|
||||||
vaultOptions.mount.mountPoint.auto=Automatisch einen geeigneten Ort auswählen
|
vaultOptions.mount.mountPoint.auto=Automatisch einen geeigneten Ort auswählen
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Laufwerksbuchstaben zuweisen
|
vaultOptions.mount.mountPoint.driveLetter=Laufwerksbuchstaben zuweisen
|
||||||
|
vaultOptions.mount.mountPoint.custom=Ausgewähltes Verzeichnis verwenden
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Durchsuchen …
|
vaultOptions.mount.mountPoint.directoryPickerButton=Durchsuchen …
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Verzeichnis wählen
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Passwort
|
vaultOptions.masterkey=Passwort
|
||||||
vaultOptions.masterkey.changePasswordBtn=Passwort ändern
|
vaultOptions.masterkey.changePasswordBtn=Passwort ändern
|
||||||
@@ -424,7 +445,9 @@ recoveryKey.display.StorageHints=Bewahre ihn möglichst sicher auf, z. B.\n •
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Passwort zurücksetzen
|
recoveryKey.recover.title=Passwort zurücksetzen
|
||||||
recoveryKey.recover.prompt=Gib deinen Wiederherstellungsschlüssel für „%s“ ein:
|
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
|
recoveryKey.printout.heading=Cryptomator-Wiederherstellungsschlüssel\n„%s“\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Zurücksetzen
|
recoveryKey.recover.resetBtn=Zurücksetzen
|
||||||
|
|||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Παρουσιάστηκε σφάλμα στη δ
|
|||||||
hub.unauthorized.message=Δεν επιτρέπεται η πρόσβαση
|
hub.unauthorized.message=Δεν επιτρέπεται η πρόσβαση
|
||||||
hub.unauthorized.description=Η συσκευή σας δεν έχει ακόμη εξουσιοδοτηθεί να έχει πρόσβαση σε αυτή την κρύπτη. Ζητήστε από τον κάτοχο της κρύπτης να την εξουσιοδοτήσει.
|
hub.unauthorized.description=Η συσκευή σας δεν έχει ακόμη εξουσιοδοτηθεί να έχει πρόσβαση σε αυτή την κρύπτη. Ζητήστε από τον κάτοχο της κρύπτης να την εξουσιοδοτήσει.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Υπέρβαση άδειας
|
hub.invalidLicense.message=Μη έγκυρη Άδεια Hub
|
||||||
hub.licenseExceeded.description=Το Cryptomator Hub έχει δώσει πρόσβαση σε περισσότερους χρήστες από ότι επιτρέπει η άδειά του. Παρακαλούμε επικοινωνήστε με το Hub admin για να αναβαθμίσετε την άδεια ή έναν διαχειριστή κρύπτης για να αφαιρέσετε τους χρήστες από τις κρύπτες.
|
hub.invalidLicense.description=Η συνεδρία σας στο Cryptomator Hub έχει μη έγκυρη άδεια χρήσης. Ενημερώστε έναν διαχειριστή του Hub για να αναβαθμίσει ή να ανανεώσει την άδεια χρήσης.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Εμφάνιση εικονιδίου tray (
|
|||||||
preferences.volume=Εικονικός δίσκος
|
preferences.volume=Εικονικός δίσκος
|
||||||
preferences.volume.type=Τύπος Τόμου (απαιτείται επανεκκίνηση)
|
preferences.volume.type=Τύπος Τόμου (απαιτείται επανεκκίνηση)
|
||||||
preferences.volume.type.automatic=Αυτόματα
|
preferences.volume.type.automatic=Αυτόματα
|
||||||
|
preferences.volume.docsTooltip=Ανοίξτε τις οδηγίες για να μάθετε περισσότερα σχετικά με τους διαφορετικούς τύπους τόμων.
|
||||||
preferences.volume.tcp.port=Θύρα TCP
|
preferences.volume.tcp.port=Θύρα TCP
|
||||||
preferences.volume.supportedFeatures=Ο επιλεγμένος τύπος τόμου υποστηρίζει τις ακόλουθες δυνατότητες:
|
preferences.volume.supportedFeatures=Ο επιλεγμένος τύπος τόμου υποστηρίζει τις ακόλουθες δυνατότητες:
|
||||||
preferences.volume.feature.mountAuto=Αυτόματη επιλογή σημείου προσάρτησης
|
preferences.volume.feature.mountAuto=Αυτόματη επιλογή σημείου προσάρτησης
|
||||||
@@ -306,27 +306,27 @@ stats.title=Στατιστικά για %s
|
|||||||
stats.cacheHitRate=Ποσοστό χρήσης cache
|
stats.cacheHitRate=Ποσοστό χρήσης cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Ανάγνωση: ηρεμία
|
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.throughput.mibs=Ανάγνωση: %.2f MiB/s
|
||||||
stats.read.total.data.none=Ανάγνωση δεδομένων: -
|
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.mib=Ανάγνωση δεδομένων: %.1f MiB
|
||||||
stats.read.total.data.gib=Ανάγνωση δεδομένων: %.1f GiB
|
stats.read.total.data.gib=Ανάγνωση δεδομένων: %.1f GiB
|
||||||
stats.decr.total.data.none=Δεδομένα που αποκρυπτογραφήθηκαν: -
|
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.mib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f MiB
|
||||||
stats.decr.total.data.gib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f GiB
|
stats.decr.total.data.gib=Δεδομένα που αποκρυπτογραφήθηκαν: %.1f GiB
|
||||||
stats.read.accessCount=Συνολικές αναγνώσεις: %d
|
stats.read.accessCount=Συνολικές αναγνώσεις: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Εγγραφή: ηρεμία
|
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.throughput.mibs=Εγγραφή: %.2f MiB/s
|
||||||
stats.write.total.data.none=Δεδομένα που γράφηκαν: -
|
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.mib=Δεδομένα που γράφτηκαν: %.1f MiB
|
||||||
stats.write.total.data.gib=Δεδομένα που γράφτηκαν: %.1f GiB
|
stats.write.total.data.gib=Δεδομένα που γράφτηκαν: %.1f GiB
|
||||||
stats.encr.total.data.none=Δεδομένα που κρυπτογραφήθηκαν: -
|
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.mib=Δεδομένα που κρυπτογραφήθηκαν: %.1f MiB
|
||||||
stats.encr.total.data.gib=Δεδομένα που κρυπτογραφήθηκαν: %.1f GiB
|
stats.encr.total.data.gib=Δεδομένα που κρυπτογραφήθηκαν: %.1f GiB
|
||||||
stats.write.accessCount=Συνολικές εγγραφές: %d
|
stats.write.accessCount=Συνολικές εγγραφές: %d
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Κλείδωμα
|
|||||||
main.vaultDetail.bytesPerSecondRead=Ανάγνωση:
|
main.vaultDetail.bytesPerSecondRead=Ανάγνωση:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Εγγραφή:
|
main.vaultDetail.bytesPerSecondWritten=Εγγραφή:
|
||||||
main.vaultDetail.throughput.idle=σε αδράνεια
|
main.vaultDetail.throughput.idle=σε αδράνεια
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Στατιστικά Vault
|
main.vaultDetail.stats=Στατιστικά Vault
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Εντοπισμός Κρυπτογραφημένου Αρχείου
|
main.vaultDetail.locateEncryptedFileBtn=Εντοπισμός Κρυπτογραφημένου Αρχείου
|
||||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Φυλάξτε κάπου που θα είνα
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Επαναφορά Κωδικού Πρόσβασης
|
recoveryKey.recover.title=Επαναφορά Κωδικού Πρόσβασης
|
||||||
recoveryKey.recover.prompt=Εισάγετε το κλειδί ανάκτησης για "%s":
|
recoveryKey.recover.prompt=Εισάγετε το κλειδί ανάκτησης για "%s":
|
||||||
recoveryKey.recover.validKey=Αυτό είναι ένα έγκυρο κλειδί ανάκτησης
|
recoveryKey.recover.correctKey=Αυτό το κλειδί ανάκτησης είναι έγκυρο
|
||||||
|
recoveryKey.recover.wrongKey=Αυτό το κλειδί ανάκτησης ανήκει σε διαφορετική κρύπτη
|
||||||
|
recoveryKey.recover.invalidKey=Αυτό το κλειδί ανάκτησης δεν είναι έγκυρο
|
||||||
recoveryKey.printout.heading=Κλειδί ανάκτησης Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Κλειδί ανάκτησης Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Επαναφορά
|
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.message=Acceso denegado
|
||||||
hub.unauthorized.description=Su dispositivo aún no ha sido autorizado para acceder a esta bóveda. Pídale al propietario de la bóveda que lo autorice.
|
hub.unauthorized.description=Su dispositivo aún no ha sido autorizado para acceder a esta bóveda. Pídale al propietario de la bóveda que lo autorice.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licencia excedida
|
hub.invalidLicense.message=Licencia del Hub inválida
|
||||||
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.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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Mostrar ícono de bandeja (requiere reiniciar
|
|||||||
preferences.volume=Unidad virtual
|
preferences.volume=Unidad virtual
|
||||||
preferences.volume.type=Tipo de volumen (requiere reiniciar)
|
preferences.volume.type=Tipo de volumen (requiere reiniciar)
|
||||||
preferences.volume.type.automatic=Automático
|
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.tcp.port=Puerto TCP
|
||||||
preferences.volume.supportedFeatures=El tipo de volumen elegido admite las siguientes funciones:
|
preferences.volume.supportedFeatures=El tipo de volumen elegido admite las siguientes funciones:
|
||||||
preferences.volume.feature.mountAuto=Selección automática del punto de montaje
|
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
|
stats.cacheHitRate=La caché alcanzó la tasa
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Lectura: inactivo
|
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.throughput.mibs=Lectura: %.2f MiB/s
|
||||||
stats.read.total.data.none=Datos leídos: -
|
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.mib=Datos leídos: %.1f MiB
|
||||||
stats.read.total.data.gib=Datos leídos: %.1f GiB
|
stats.read.total.data.gib=Datos leídos: %.1f GiB
|
||||||
stats.decr.total.data.none=Datos descifrados: -
|
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.mib=Datos descifrados: %.1f MiB
|
||||||
stats.decr.total.data.gib=Datos descifrados: %.1f GiB
|
stats.decr.total.data.gib=Datos descifrados: %.1f GiB
|
||||||
stats.read.accessCount=Total leídos: %d
|
stats.read.accessCount=Total leídos: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Escritura: inactivo
|
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.throughput.mibs=Escritura: %.2f MiB/s
|
||||||
stats.write.total.data.none=Datos escritos: -
|
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.mib=Datos escritos: %.1f MiB
|
||||||
stats.write.total.data.gib=Datos escritos: %.1f GiB
|
stats.write.total.data.gib=Datos escritos: %.1f GiB
|
||||||
stats.encr.total.data.none=Datos cifrados: -
|
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.mib=Datos cifrados: %.1f MiB
|
||||||
stats.encr.total.data.gib=Datos cifrados: %.1f GiB
|
stats.encr.total.data.gib=Datos cifrados: %.1f GiB
|
||||||
stats.write.accessCount=Total de escrituras: %d
|
stats.write.accessCount=Total de escrituras: %d
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Bloquear
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lectura:
|
main.vaultDetail.bytesPerSecondRead=Lectura:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Escritura:
|
main.vaultDetail.bytesPerSecondWritten=Escritura:
|
||||||
main.vaultDetail.throughput.idle=inactivo
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Estadísticas de la bóveda
|
main.vaultDetail.stats=Estadísticas de la bóveda
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Ubicar archivo cifrado
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Restablecer contraseña
|
recoveryKey.recover.title=Restablecer contraseña
|
||||||
recoveryKey.recover.prompt=Ingresar la clave de recuperación para "%s":
|
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
|
recoveryKey.printout.heading=Clave de recuperación de Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=## Reiniciar contraseña\nrecoveryKey.recover.resetBtn
|
recoveryKey.recover.resetBtn=## Reiniciar contraseña\nrecoveryKey.recover.resetBtn
|
||||||
|
|||||||
@@ -69,7 +69,6 @@ unlock.unlockBtn=بازکردن قفل
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=تلاش مجدد
|
lock.forced.retryBtn=تلاش مجدد
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ unlock.unlockBtn=I-unlock
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=Subukan muli
|
lock.forced.retryBtn=Subukan muli
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ addvaultwizard.new.generateRecoveryKeyChoice.no=Non merci, je n'oublierai pas mo
|
|||||||
### Information
|
### Information
|
||||||
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
addvault.new.readme.storageLocation.fileName=IMPORTANT.rtf
|
||||||
addvault.new.readme.storageLocation.1=Fichiers de coffre-fort
|
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.3=NE PAS
|
||||||
addvault.new.readme.storageLocation.4=• modifier les fichiers dans ce répertoire ni
|
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.
|
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
|
unlock.success.revealBtn=Révéler le lecteur
|
||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Impossible de monter le coffre vers le chemin personnalisé
|
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.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.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
|
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
|
||||||
hub.noKeychain.message=Impossible d'accéder à la clé du périphérique
|
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.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.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licence dépassée
|
hub.invalidLicense.message=Licence de Hub invalide
|
||||||
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.description=Votre instance Cryptomator Hub a une licence invalide. Veuillez informer un administrateur Hub pour la mettre à niveau ou la renouveler.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## 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)
|
preferences.interface.showTrayIcon=Montrer l'icône de service (redémarrage nécessaire)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Disque virtuel
|
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.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.tcp.port=Port TCP
|
||||||
preferences.volume.supportedFeatures=Le type de volume choisi prend en charge les fonctionnalités suivantes :
|
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.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.mountFlags=Options de montage personnalisées
|
||||||
preferences.volume.feature.readOnly=Montage en lecture seule
|
preferences.volume.feature.readOnly=Montage en lecture seule
|
||||||
## Updates
|
## Updates
|
||||||
@@ -306,27 +306,27 @@ stats.title=Statistiques sur %s
|
|||||||
stats.cacheHitRate=Taux de réussite du cache
|
stats.cacheHitRate=Taux de réussite du cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Lecture : inactif
|
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.throughput.mibs=Lecture : %.2f Mo/s
|
||||||
stats.read.total.data.none=Lecture des données : -
|
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.mib=Lecture des données : %.1f MiO
|
||||||
stats.read.total.data.gib=Lecture des données : %.1f GiO
|
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.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.mib=Données déchiffrées: %.1f MiO
|
||||||
stats.decr.total.data.gib=Données déchiffrées: %.1f GiO
|
stats.decr.total.data.gib=Données déchiffrées: %.1f GiO
|
||||||
stats.read.accessCount=Total des lectures: %d
|
stats.read.accessCount=Total des lectures: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Écriture : inactif
|
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.throughput.mibs=Écriture : %.2f Mo/s
|
||||||
stats.write.total.data.none=Données écrites : -
|
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.mib=Données écrites : %.1f MiO
|
||||||
stats.write.total.data.gib=Données écrites : %.1f GiO
|
stats.write.total.data.gib=Données écrites : %.1f GiO
|
||||||
stats.encr.total.data.none=Données chiffrées : -
|
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.mib=Données chiffrées: %.1f MiO
|
||||||
stats.encr.total.data.gib=Données chiffrées: %.1f GiO
|
stats.encr.total.data.gib=Données chiffrées: %.1f GiO
|
||||||
stats.write.accessCount=Total des écritures: %d
|
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é
|
main.vaultlist.addVaultBtn=Ajouter un volume chiffré
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### 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
|
### Locked
|
||||||
main.vaultDetail.lockedStatus=VERROUILLÉ
|
main.vaultDetail.lockedStatus=VERROUILLÉ
|
||||||
main.vaultDetail.unlockBtn=Déverrouiller…
|
main.vaultDetail.unlockBtn=Déverrouiller…
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Verrouiller
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lecture :
|
main.vaultDetail.bytesPerSecondRead=Lecture :
|
||||||
main.vaultDetail.bytesPerSecondWritten=Écriture:
|
main.vaultDetail.bytesPerSecondWritten=Écriture:
|
||||||
main.vaultDetail.throughput.idle=inactif
|
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.throughput.mbps=%.1f Mo/s
|
||||||
main.vaultDetail.stats=Statistiques du volume chiffré
|
main.vaultDetail.stats=Statistiques du volume chiffré
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Localiser le fichier 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.driveLetter=Utiliser la lettre du lecteur assignée
|
||||||
vaultOptions.mount.mountPoint.custom=Utiliser le répertoire choisi
|
vaultOptions.mount.mountPoint.custom=Utiliser le répertoire choisi
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Choisir...
|
vaultOptions.mount.mountPoint.directoryPickerButton=Choisir...
|
||||||
vaultOptions.mount.mountPoint.directoryPickerTitle=Choisissez un dossier
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Choisissez un répertoire
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Mot de passe
|
vaultOptions.masterkey=Mot de passe
|
||||||
vaultOptions.masterkey.changePasswordBtn=Modifier le 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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Réinitialiser le mot de passe
|
recoveryKey.recover.title=Réinitialiser le mot de passe
|
||||||
recoveryKey.recover.prompt=Entrez votre clé de récupération pour "%s":
|
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
|
recoveryKey.printout.heading=Clé de récupération Cryptomator "%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Réinitialiser
|
recoveryKey.recover.resetBtn=Réinitialiser
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ error.message=Produciuse un erro
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=Tentar de novo
|
lock.forced.retryBtn=Tentar de novo
|
||||||
|
|||||||
@@ -123,37 +123,60 @@ unlock.success.description=הנעילה ל-"%s" בוטלה בהצלחה! הכס
|
|||||||
unlock.success.rememberChoice=זכור בחירה, אל תראה שוב
|
unlock.success.rememberChoice=זכור בחירה, אל תראה שוב
|
||||||
unlock.success.revealBtn=חשוף את הכונן
|
unlock.success.revealBtn=חשוף את הכונן
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=כשלון בקישור הכספת לנתיב הידני שהוגדר
|
||||||
|
unlock.error.customPath.description.notSupported=אם ברצונך להשתמש בנתיב ידני, אנא גש להעדפות ובחר סוג volume שתומך בכך. אחרת, לך לאפשרויות הכספת ובחר אפשרות יעד קישור נתמך.
|
||||||
|
unlock.error.customPath.description.notExists=יעד הקישור הידני לא קיים. או שתיצור אותו במערכת הקבצים המקומית או שנה אותו באפשרויות הכספת.
|
||||||
|
unlock.error.customPath.description.generic=אתה בחרת באפשרות יעד קישור ידני לכספת זו, אבל השימוש בו נכשל עם ההודעה: %s
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=לא ניתן לגשת למפתח המכשיר
|
hub.noKeychain.message=לא ניתן לגשת למפתח המכשיר
|
||||||
|
hub.noKeychain.description=כדאי לשחרר כספות האב נדרש מפתח מכשיר שיאובטח בצרור מפתחות. כדאי להמשיך, אפשר ״%s״ ובחר את צרור המפתחות בהעדפות.
|
||||||
|
hub.noKeychain.openBtn=פתח העדפות
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=ממתין לאימות…
|
hub.auth.message=ממתין לאימות…
|
||||||
|
hub.auth.description=אתה אמור להיות מופנה אוטומטית למסך ההזדהות.
|
||||||
|
hub.auth.loginLink=לא הופנת? לחצן כאן לפתיחה.
|
||||||
### Receive Key
|
### Receive Key
|
||||||
|
hub.receive.message=מעבד תשובה…
|
||||||
|
hub.receive.description=Cryptomator מקבל ומעבד את התשובה מה- האב. אנא המתן.
|
||||||
### Register Device
|
### Register Device
|
||||||
|
hub.register.message=שם המכשיר נדרש
|
||||||
|
hub.register.description=נראה שזו הגישה הראשונה ל- האב ממכשיר זה. כדי לזהות אותך למתן הרשאות, עליך לתת שם למכשיר זה.
|
||||||
hub.register.nameLabel=שם מכשיר
|
hub.register.nameLabel=שם מכשיר
|
||||||
hub.register.occupiedMsg=שם זה נמצא כבר בשימוש
|
hub.register.occupiedMsg=שם זה נמצא כבר בשימוש
|
||||||
hub.register.registerBtn=אישור
|
hub.register.registerBtn=אישור
|
||||||
### Registration Success
|
### Registration Success
|
||||||
hub.registerSuccess.message=שם המכשיר
|
hub.registerSuccess.message=שם המכשיר
|
||||||
|
hub.registerSuccess.description=כדי לגשת לכספת, המכשיר שלך צריך לקבל הרשאה על ידי בעלי הכספת.
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
hub.registerFailed.message=הגדרת שם למכשיר נכשלה
|
hub.registerFailed.message=הגדרת שם למכשיר נכשלה
|
||||||
|
hub.registerFailed.description=ארעה שגיאה בתהליך עם השם. לפרטים נוספים הסתכל בלוג האפליקציה.
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=הגישה נדחתה
|
hub.unauthorized.message=הגישה נדחתה
|
||||||
hub.unauthorized.description=המכשיר שלך טרם אושר לגשת לכספת הזאת. יש לבקש אישור גישה מבעל הכספת.
|
hub.unauthorized.description=המכשיר שלך טרם אושר לגשת לכספת הזאת. יש לבקש אישור גישה מבעל הכספת.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
hub.invalidLicense.message=רישיון האב לא תקף
|
||||||
|
hub.invalidLicense.description=הרישיון שמותקן במופע ה- Cryptomator האב שלך אינו תקף. אנא ידע את מנהל ההאב שלך לשדרג או לחדש את הרישיון.
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=הנעילה נכשלה
|
lock.forced.message=הנעילה נכשלה
|
||||||
|
lock.forced.description=נעילת ״%s״ נחסמה על ידי פעולות ממתינות או קבצים פתוחים. אתה יכול לנעול את הכספת בכוח, אולם הפרעה לפעולת קריאה וכתיבה עשויה לגרום לאובדן מידע לא שמור.
|
||||||
lock.forced.retryBtn=נסה שנית
|
lock.forced.retryBtn=נסה שנית
|
||||||
lock.forced.forceBtn=הכרח נעילה
|
lock.forced.forceBtn=הכרח נעילה
|
||||||
## Failure
|
## Failure
|
||||||
lock.fail.message=נעילת הכספת נשכלה.
|
lock.fail.message=נעילת הכספת נשכלה.
|
||||||
|
lock.fail.description=לא ניתן היה לנעול את הכספת ״%s״. וודא שכל העבודה הלא שמורה נשמרת במקום אחר ושפעולות קריאה/כתיבה חשובות מסתיימות. כדי לסגור את הכספת, הרוג את התהליך של Cryptomator.
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
migration.title=שדרג הכספת
|
migration.title=שדרג הכספת
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=שדרג הכספת
|
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
|
## Run
|
||||||
migration.run.enterPassword=הכנס/י סיסמה עבור "%s"
|
migration.run.enterPassword=הכנס/י סיסמה עבור "%s"
|
||||||
migration.run.startMigrationBtn=העבר הכספת
|
migration.run.startMigrationBtn=העבר הכספת
|
||||||
@@ -170,22 +193,60 @@ migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=מערכת הק
|
|||||||
migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=מערכת הקבצים אינה מאפשרת את הכתיבה אליה.
|
migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=מערכת הקבצים אינה מאפשרת את הכתיבה אליה.
|
||||||
## Impossible
|
## Impossible
|
||||||
migration.impossible.heading=לא יכול להעביר את הכספת
|
migration.impossible.heading=לא יכול להעביר את הכספת
|
||||||
|
migration.impossible.reason=לא ניתן לבצע מיגרציה אוטומטית של הכספת כי יעד האחסון או הקישור אינם תואמים.
|
||||||
|
migration.impossible.moreInfo=ניתן עדיין לפתוח את כספת זו עם גרסה ישנה יותר. להנחיות כיצד לבצע מיגרציה ידנית של הכספת בקר ב-
|
||||||
|
|
||||||
# Health Check
|
# Health Check
|
||||||
## Start
|
## Start
|
||||||
|
health.title=בדיקת בריאות של ״%s״
|
||||||
health.intro.header=בדיקת תקינות
|
health.intro.header=בדיקת תקינות
|
||||||
|
health.intro.text=בדיקת בריאות היא אוסף בדיקות לאיתור, ואולי תיקון, של בעיות במבנה הפנימי של הכספת. שים לב ש:
|
||||||
|
health.intro.remarkSync=ודא שכל המכשירים מסונכרנים באופן מלא, זה פותר את רוב הבעיות.
|
||||||
|
health.intro.remarkFix=לא ניתן לפתור את כל הבעיות.
|
||||||
|
health.intro.remarkBackup=עם המידע משובש, רק גיבוי יכול לעזור.
|
||||||
|
health.intro.affirmation=קראתי והבנתי את המידע לעיל
|
||||||
## Start Failure
|
## Start Failure
|
||||||
|
health.fail.header=שגיאה בהעלאת הגדרות הכספת
|
||||||
|
health.fail.ioError=ארעה שגיאה במהלך הגישה והקריאה של קובץ ההגדרות.
|
||||||
|
health.fail.parseError=ארעה שגיאה בעת עיבוד קובץ הגדרות הכספת.
|
||||||
health.fail.moreInfo=מידע נוסף
|
health.fail.moreInfo=מידע נוסף
|
||||||
## Check Selection
|
## Check Selection
|
||||||
|
health.checkList.description=בחר בדיקות ברשימה בצד שמאל או השתמש בלחצנים מטה.
|
||||||
|
health.checkList.selectAllButton=בחירת כל הבדיקות
|
||||||
|
health.checkList.deselectAllButton=הסר בחירה של כל הבדיקות
|
||||||
|
health.check.runBatchBtn=הרץ את הבדיקות הנבחרות
|
||||||
## Detail view
|
## 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.checkFinished=הבדיקה הסתיימה בהצלחה.
|
||||||
health.check.detail.checkFinishedAndFound=הבדיקה הסתיימה. ניתן לבחון את התוצאות.
|
health.check.detail.checkFinishedAndFound=הבדיקה הסתיימה. ניתן לבחון את התוצאות.
|
||||||
health.check.detail.checkFailed=הבדיקה נכשלה בשל שגיאה.
|
health.check.detail.checkFailed=הבדיקה נכשלה בשל שגיאה.
|
||||||
health.check.detail.checkCancelled=הבדיקה בוטלה.
|
health.check.detail.checkCancelled=הבדיקה בוטלה.
|
||||||
|
health.check.detail.listFilters.label=סנן
|
||||||
|
health.check.detail.fixAllSpecificBtn=תקן הכל מסוג
|
||||||
health.check.exportBtn=יצוא דוחות
|
health.check.exportBtn=יצוא דוחות
|
||||||
## Result view
|
## 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
|
## Fix Application
|
||||||
health.fix.fixBtn=תיקון
|
health.fix.fixBtn=תיקון
|
||||||
|
health.fix.successTip=התיקון הצליח
|
||||||
|
health.fix.failTip=התיקון כשל, ראה את הלוג לפרטים
|
||||||
|
|
||||||
# Preferences
|
# Preferences
|
||||||
preferences.title=העדפות
|
preferences.title=העדפות
|
||||||
@@ -210,16 +271,31 @@ preferences.interface.interfaceOrientation=כיוון ממשק
|
|||||||
preferences.interface.interfaceOrientation.ltr=משמאל לימין
|
preferences.interface.interfaceOrientation.ltr=משמאל לימין
|
||||||
preferences.interface.interfaceOrientation.rtl=מימין לשמאל
|
preferences.interface.interfaceOrientation.rtl=מימין לשמאל
|
||||||
preferences.interface.showMinimizeButton=הצג כפתור מזעור
|
preferences.interface.showMinimizeButton=הצג כפתור מזעור
|
||||||
|
preferences.interface.showTrayIcon=הצג צלמית בשורה מטה (דורש הפעלה מחדש)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=כונן וירטואלי
|
preferences.volume=כונן וירטואלי
|
||||||
|
preferences.volume.type=סוג volume (דורש הפעלה מחדש)
|
||||||
preferences.volume.type.automatic=אוטומטי
|
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
|
## Updates
|
||||||
preferences.updates=עדכונים
|
preferences.updates=עדכונים
|
||||||
|
preferences.updates.currentVersion=הגרסה הנוכחית: %s
|
||||||
|
preferences.updates.autoUpdateCheck=בצע בדיקת עדכונים אוטומטית
|
||||||
|
preferences.updates.checkNowBtn=בדוק כעת
|
||||||
|
preferences.updates.updateAvailable=שדרוג לגרסה %s זמין.
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=תמוך בנו
|
preferences.contribute=תמוך בנו
|
||||||
preferences.contribute.registeredFor=אישור על תמיכה על שם %s
|
preferences.contribute.registeredFor=אישור על תמיכה על שם %s
|
||||||
preferences.contribute.noCertificate=תמכו ב-Cryptomator וקבלו תעודת תמיכה. זה כמו מפתח רישוי רק לאנשים מדהימים שמשתמשים בתוכנה חופשית. ;-)
|
preferences.contribute.noCertificate=תמכו ב-Cryptomator וקבלו תעודת תמיכה. זה כמו מפתח רישוי רק לאנשים מדהימים שמשתמשים בתוכנה חופשית. ;-)
|
||||||
preferences.contribute.getCertificate=עדיין אין לכם אחד? לימדו כיצד אתם יכולים להשיג אותו.
|
preferences.contribute.getCertificate=עדיין אין לכם אחד? לימדו כיצד אתם יכולים להשיג אותו.
|
||||||
|
preferences.contribute.promptText=הדבק את קוד תעודת התומך כאן
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
|
|
||||||
## About
|
## About
|
||||||
@@ -230,44 +306,98 @@ stats.title=סטטיסטיקה עבור %s
|
|||||||
stats.cacheHitRate=אחוז שימוש במטמון
|
stats.cacheHitRate=אחוז שימוש במטמון
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=קריאה: ללא פעילות
|
stats.read.throughput.idle=קריאה: ללא פעילות
|
||||||
stats.read.throughput.kibs=קריאה: %.2f kiB/s
|
stats.read.throughput.kibs=נקרא: %.2f קילובייט/שניה
|
||||||
stats.read.throughput.mibs=קריאה: %.2f MiB/s
|
stats.read.throughput.mibs=קריאה: %.2f MiB/s
|
||||||
stats.read.total.data.none=מידע שנקרא: -
|
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
|
## 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
|
## Accesses
|
||||||
|
stats.access.current=גישה: %d
|
||||||
|
stats.access.total=מספר גישות כולל: %d
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
main.closeBtn.tooltip=סגור
|
main.closeBtn.tooltip=סגור
|
||||||
|
main.minimizeBtn.tooltip=מזער
|
||||||
main.preferencesBtn.tooltip=העדפות
|
main.preferencesBtn.tooltip=העדפות
|
||||||
|
main.debugModeEnabled.tooltip=מצב דיבאג מופעל
|
||||||
main.supporterCertificateMissing.tooltip=תרומתך תתקבל בברכה
|
main.supporterCertificateMissing.tooltip=תרומתך תתקבל בברכה
|
||||||
## Vault List
|
## Vault List
|
||||||
|
main.vaultlist.emptyList.onboardingInstruction=לחץ כאן להוספת כספת
|
||||||
|
main.vaultlist.contextMenu.remove=הסר…
|
||||||
main.vaultlist.contextMenu.lock=נעילה
|
main.vaultlist.contextMenu.lock=נעילה
|
||||||
|
main.vaultlist.contextMenu.unlock=שחרר נעילה…
|
||||||
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
|
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
|
||||||
|
main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת
|
||||||
main.vaultlist.contextMenu.reveal=חשוף את הכונן
|
main.vaultlist.contextMenu.reveal=חשוף את הכונן
|
||||||
main.vaultlist.addVaultBtn=יצירת כספת
|
main.vaultlist.addVaultBtn=יצירת כספת
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
|
main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו:
|
||||||
### Locked
|
### Locked
|
||||||
|
main.vaultDetail.lockedStatus=נעול
|
||||||
|
main.vaultDetail.unlockBtn=שחרר נעילה…
|
||||||
main.vaultDetail.unlockNowBtn=בטל נעילה כעת
|
main.vaultDetail.unlockNowBtn=בטל נעילה כעת
|
||||||
|
main.vaultDetail.optionsBtn=אפשרויות הכספת
|
||||||
|
main.vaultDetail.passwordSavedInKeychain=הסיסמה נשמרה
|
||||||
### Unlocked
|
### Unlocked
|
||||||
|
main.vaultDetail.unlockedStatus=לא נעול
|
||||||
|
main.vaultDetail.accessLocation=תוכן הכספת שלך נגיש כאן:
|
||||||
main.vaultDetail.revealBtn=חשוף את הכונן
|
main.vaultDetail.revealBtn=חשוף את הכונן
|
||||||
|
main.vaultDetail.copyUri=העתק קישור כתובת
|
||||||
main.vaultDetail.lockBtn=נעילה
|
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=מצא קבצים מוצפנים
|
||||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=בחר קובץ מהכספת שלך על מנת לאתר את הקובץ התואם המוצפן
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=בחר קובץ מהכספת שלך על מנת לאתר את הקובץ התואם המוצפן
|
||||||
main.vaultDetail.encryptedPathsCopied=הנתיבים הועתקו ללוח!
|
main.vaultDetail.encryptedPathsCopied=הנתיבים הועתקו ללוח!
|
||||||
main.vaultDetail.filePickerTitle=בחר קובץ בתוך הכספת
|
main.vaultDetail.filePickerTitle=בחר קובץ בתוך הכספת
|
||||||
### Missing
|
### Missing
|
||||||
|
main.vaultDetail.missing.info=Cryptomator לא הצליח למצוא כספת בנתיב זה.
|
||||||
|
main.vaultDetail.missing.recheck=בדיקה נוספת
|
||||||
|
main.vaultDetail.missing.remove=הסר מרשימה הכספות…
|
||||||
|
main.vaultDetail.missing.changeLocation=שנה את מיקום הכספת…
|
||||||
### Needs Migration
|
### Needs Migration
|
||||||
main.vaultDetail.migrateButton=שדרג הכספת
|
main.vaultDetail.migrateButton=שדרג הכספת
|
||||||
|
main.vaultDetail.migratePrompt=צריך לשדרג את הכספת שלך לגרסה חדשה לפני שניתן לגשת אליה
|
||||||
### Error
|
### Error
|
||||||
|
main.vaultDetail.error.info=ארעה שגיאה בהעלאת הכספת מהדיסק.
|
||||||
main.vaultDetail.error.reload=ריענון
|
main.vaultDetail.error.reload=ריענון
|
||||||
main.vaultDetail.error.windowTitle=שגיאה בטעינת הכספת
|
main.vaultDetail.error.windowTitle=שגיאה בטעינת הכספת
|
||||||
|
|
||||||
# Wrong File Alert
|
# Wrong File Alert
|
||||||
|
wrongFileAlert.title=איך להצפין קבצים
|
||||||
wrongFileAlert.message=האם ניסית להצפין את הקבצים האלו?
|
wrongFileAlert.message=האם ניסית להצפין את הקבצים האלו?
|
||||||
|
wrongFileAlert.description=לצורך כך, Cryptomator מספקת volume במנהל הקבצים של המערכת.
|
||||||
|
wrongFileAlert.instruction.0=כדי להצפין את הקבצים, בצע את השלבים הבאים:
|
||||||
wrongFileAlert.instruction.1=1. פתחו את הכספת.
|
wrongFileAlert.instruction.1=1. פתחו את הכספת.
|
||||||
|
wrongFileAlert.instruction.2=2. לחץ על ״הצג״ לפתיחת ה- volume במנהל הקבצים.
|
||||||
|
wrongFileAlert.instruction.3=3. הוסף את הקבצים שלך ל- volume הזה.
|
||||||
|
wrongFileAlert.link=לסיוע נוסף, בקר ב-
|
||||||
|
|
||||||
# Vault Options
|
# Vault Options
|
||||||
## General
|
## General
|
||||||
@@ -275,17 +405,32 @@ vaultOptions.general=כללי
|
|||||||
vaultOptions.general.vaultName=שם הכספת
|
vaultOptions.general.vaultName=שם הכספת
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart1=נעילה לאחר חוסר שימוש של
|
vaultOptions.general.autoLock.lockAfterTimePart1=נעילה לאחר חוסר שימוש של
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart2=דקות
|
vaultOptions.general.autoLock.lockAfterTimePart2=דקות
|
||||||
|
vaultOptions.general.unlockAfterStartup=פתח את הכספת בהפעלה של Cryptomator
|
||||||
|
vaultOptions.general.actionAfterUnlock=לאחר שחרור נעילה מוצלח
|
||||||
|
vaultOptions.general.actionAfterUnlock.ignore=אל תעשה דבר
|
||||||
vaultOptions.general.actionAfterUnlock.reveal=חשוף את הכונן
|
vaultOptions.general.actionAfterUnlock.reveal=חשוף את הכונן
|
||||||
|
vaultOptions.general.actionAfterUnlock.ask=שאל
|
||||||
|
vaultOptions.general.startHealthCheckBtn=התחל בדיקת בריאות
|
||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
|
vaultOptions.mount=קישור
|
||||||
|
vaultOptions.mount.info=האפשרויות תלויות בסוג ה- volume הנבחר.
|
||||||
|
vaultOptions.mount.linkToPreferences=פתח את העדפות הכונן הוירטואלי
|
||||||
vaultOptions.mount.readonly=קריאה בלבד
|
vaultOptions.mount.readonly=קריאה בלבד
|
||||||
|
vaultOptions.mount.customMountFlags=דגלים ידנים לקישור
|
||||||
vaultOptions.mount.winDriveLetterOccupied=בשימוש
|
vaultOptions.mount.winDriveLetterOccupied=בשימוש
|
||||||
vaultOptions.mount.mountPoint=נקודת עיגון
|
vaultOptions.mount.mountPoint=נקודת עיגון
|
||||||
|
vaultOptions.mount.mountPoint.auto=בחר אוטומטית מיקום מתאים
|
||||||
|
vaultOptions.mount.mountPoint.driveLetter=השתמש באות הכונן המוקצאת
|
||||||
|
vaultOptions.mount.mountPoint.custom=השתמש בתיקיה שנבחרה
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=בחר...
|
vaultOptions.mount.mountPoint.directoryPickerButton=בחר...
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=בחר תיקיה
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=סיסמה
|
vaultOptions.masterkey=סיסמה
|
||||||
vaultOptions.masterkey.changePasswordBtn=שנה סיסמה
|
vaultOptions.masterkey.changePasswordBtn=שנה סיסמה
|
||||||
vaultOptions.masterkey.forgetSavedPasswordBtn=שכח סיסמה שמורה
|
vaultOptions.masterkey.forgetSavedPasswordBtn=שכח סיסמה שמורה
|
||||||
|
vaultOptions.masterkey.recoveryKeyExplanation=מפתח שחזור הינו הדרך היחידה לשחזור הגישה לכספת אם תאבד את הסיסמה.
|
||||||
|
vaultOptions.masterkey.showRecoveryKeyBtn=הצג את מפתח השחזור
|
||||||
vaultOptions.masterkey.recoverPasswordBtn=איפוס סיסמה
|
vaultOptions.masterkey.recoverPasswordBtn=איפוס סיסמה
|
||||||
|
|
||||||
|
|
||||||
@@ -295,9 +440,14 @@ recoveryKey.display.title=הצגת מפתח השחזור
|
|||||||
recoveryKey.create.message=דרושה סיסמה
|
recoveryKey.create.message=דרושה סיסמה
|
||||||
recoveryKey.create.description=נא להזין את הססמא ל "%s" בכדי להציג את מפתח השחזור.
|
recoveryKey.create.description=נא להזין את הססמא ל "%s" בכדי להציג את מפתח השחזור.
|
||||||
recoveryKey.display.description=המפתח שחזור שלהלן ניתן לשימוש בכדי לשחזר גישה ל "%s":
|
recoveryKey.display.description=המפתח שחזור שלהלן ניתן לשימוש בכדי לשחזר גישה ל "%s":
|
||||||
|
recoveryKey.display.StorageHints=שמור אותו במקום מאוד בטוח, לדוגמה:\n • שמור אותו במנהל סיסמאות\n • שמור אותו בדיסק און קי\n • הדפס אותו על נייר
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=איפוס סיסמה
|
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
|
recoveryKey.printout.heading=מפתח שחזור של Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=איפוס
|
recoveryKey.recover.resetBtn=איפוס
|
||||||
@@ -306,6 +456,11 @@ recoveryKey.recover.resetSuccess.message=איפוס סיסמה הצליח
|
|||||||
recoveryKey.recover.resetSuccess.description=ניתן לפתוח את הכספת עם הסיסמה החדשה.
|
recoveryKey.recover.resetSuccess.description=ניתן לפתוח את הכספת עם הסיסמה החדשה.
|
||||||
|
|
||||||
# New Password
|
# New Password
|
||||||
|
newPassword.promptText=הקש סיסמה חדשה
|
||||||
|
newPassword.reenterPassword=לאימות, הקש שוב את הסיסמא החדשה
|
||||||
|
newPassword.passwordsMatch=הסיסמאות תואמות!
|
||||||
|
newPassword.passwordsDoNotMatch=הסיסמאות אינם תואמות
|
||||||
|
passwordStrength.messageLabel.tooShort=השתמש בלפחות %d תווים
|
||||||
passwordStrength.messageLabel.0=חלשה מאוד
|
passwordStrength.messageLabel.0=חלשה מאוד
|
||||||
passwordStrength.messageLabel.1=חלשה
|
passwordStrength.messageLabel.1=חלשה
|
||||||
passwordStrength.messageLabel.2=סבירה
|
passwordStrength.messageLabel.2=סבירה
|
||||||
@@ -315,8 +470,10 @@ passwordStrength.messageLabel.4=חזקה מאוד
|
|||||||
# Quit
|
# Quit
|
||||||
quit.title=יציאה
|
quit.title=יציאה
|
||||||
quit.message=קיימים vaults פתוחים
|
quit.message=קיימים vaults פתוחים
|
||||||
|
quit.description=נא אשר שאתה רוצה לצאת. Cryptomator יבצע נעילה מסודרת של כל הכספות הפתוחות למניעת אובדן מידע.
|
||||||
quit.lockAndQuitBtn=נעילה ויציאה
|
quit.lockAndQuitBtn=נעילה ויציאה
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
quit.forced.message=חלק מה vaults לא היו ניתנים לנעילה
|
quit.forced.message=חלק מה vaults לא היו ניתנים לנעילה
|
||||||
|
quit.forced.description=נעילה כספות נחסמה על ידי תהליכים ממתינים או קבצים פתוחים. אתה יכול לנעול את הכספת בכוח, אולם הפרעה לפעולת קריאה וכתיבה עשויה לגרום לאובדן מידע לא שמור.
|
||||||
quit.forced.forceAndQuitBtn=נעילה בכח ויציאה
|
quit.forced.forceAndQuitBtn=נעילה בכח ויציאה
|
||||||
@@ -128,7 +128,6 @@ hub.register.registerBtn=पुष्टि करें
|
|||||||
hub.unauthorized.message=प्रवेश अस्वीकृत
|
hub.unauthorized.message=प्रवेश अस्वीकृत
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=लॉक करना विफल हुआ
|
lock.forced.message=लॉक करना विफल हुआ
|
||||||
|
|||||||
@@ -123,7 +123,6 @@ hub.register.registerBtn=Potvrdi
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=Zaključavanje neuspješno
|
lock.forced.message=Zaključavanje neuspješno
|
||||||
@@ -241,27 +240,21 @@ stats.title=Statistika za %s
|
|||||||
stats.cacheHitRate=Stopa pogodaka predmemorije
|
stats.cacheHitRate=Stopa pogodaka predmemorije
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čitanje: mirovanje
|
stats.read.throughput.idle=Čitanje: mirovanje
|
||||||
stats.read.throughput.kibs=Čitanje: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
stats.read.throughput.mibs=Čitanje: %.2f MiB/s
|
||||||
stats.read.total.data.none=Podataka pročitano: -
|
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.mib=Podataka pročitano: %.1f MiB
|
||||||
stats.read.total.data.gib=Podataka pročitano: %.1f GiB
|
stats.read.total.data.gib=Podataka pročitano: %.1f GiB
|
||||||
stats.decr.total.data.none=Podataka dešifrirano: -
|
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.mib=Podataka dešifrirano: %.1f MiB
|
||||||
stats.decr.total.data.gib=Podataka dešifrirano: %.1f GiB
|
stats.decr.total.data.gib=Podataka dešifrirano: %.1f GiB
|
||||||
stats.read.accessCount=Ukupno čitanja: %d
|
stats.read.accessCount=Ukupno čitanja: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Pisanje: mirovanje
|
stats.write.throughput.idle=Pisanje: mirovanje
|
||||||
stats.write.throughput.kibs=Pisanje: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Pisanje: %.2f MiB/s
|
stats.write.throughput.mibs=Pisanje: %.2f MiB/s
|
||||||
stats.write.total.data.none=Podataka zapisano: -
|
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.mib=Podataka zapisano: %.1f MiB
|
||||||
stats.write.total.data.gib=Podataka zapisano: %.1f GiB
|
stats.write.total.data.gib=Podataka zapisano: %.1f GiB
|
||||||
stats.encr.total.data.none=Podataka šifrirano: -
|
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.mib=Podataka šifrirano: %.1f MiB
|
||||||
stats.encr.total.data.gib=Podataka šifrirano: %.1f GiB
|
stats.encr.total.data.gib=Podataka šifrirano: %.1f GiB
|
||||||
stats.write.accessCount=Ukupno pisanja: %d
|
stats.write.accessCount=Ukupno pisanja: %d
|
||||||
@@ -301,7 +294,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
|||||||
main.vaultDetail.bytesPerSecondRead=Čitanje:
|
main.vaultDetail.bytesPerSecondRead=Čitanje:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Pisanje:
|
main.vaultDetail.bytesPerSecondWritten=Pisanje:
|
||||||
main.vaultDetail.throughput.idle=neaktivan
|
main.vaultDetail.throughput.idle=neaktivan
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistika trezora
|
main.vaultDetail.stats=Statistika trezora
|
||||||
### Missing
|
### Missing
|
||||||
@@ -365,7 +357,7 @@ recoveryKey.display.StorageHints=Držite ga na sigurnom mjestu, npr.:\n • Pohr
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Unesite ključ za oporavak za "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator-ov ključ za oporavak\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ unlock.savePassword=Jelszó megjegyzése
|
|||||||
unlock.unlockBtn=Feloldás
|
unlock.unlockBtn=Feloldás
|
||||||
## Select
|
## 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.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
|
## Success
|
||||||
unlock.success.description="%s" sikreresen feloldásra került! Mostmár hozzáférhet a virtuális trezorhoz.
|
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
|
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
|
### Waiting
|
||||||
### Receive Key
|
### Receive Key
|
||||||
### Register Device
|
### Register Device
|
||||||
|
hub.register.occupiedMsg=Ez a név már használatban van
|
||||||
|
hub.register.registerBtn=Megerősítés
|
||||||
### Registration Success
|
### Registration Success
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=A lezárás sikertelen volt
|
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
|
stats.cacheHitRate=Gyorsítótár találati arány
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Olvasás: tétlen
|
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.throughput.mibs=Olvasás: %.2f MiB/s
|
||||||
stats.read.total.data.none=Olvasott adat: -
|
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.mib=Olvasott adat: %.1f MiB
|
||||||
stats.read.total.data.gib=Olvasott adat: %.1f GiB
|
stats.read.total.data.gib=Olvasott adat: %.1f GiB
|
||||||
stats.decr.total.data.none=Dekódolt adat: -
|
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.mib=Dekódolt adat: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dekódolt adat: %.1f GiB
|
stats.decr.total.data.gib=Dekódolt adat: %.1f GiB
|
||||||
stats.read.accessCount=Összes olvasás: %d
|
stats.read.accessCount=Összes olvasás: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Írás: tétlen
|
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.throughput.mibs=Írás: %.2f MiB/s
|
||||||
stats.write.total.data.none=Írva: -
|
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.mib=Írott adat: %.1f MiB
|
||||||
stats.write.total.data.gib=Írott adat: %.1f GiB
|
stats.write.total.data.gib=Írott adat: %.1f GiB
|
||||||
stats.encr.total.data.none=Titkosított adat: -
|
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.mib=Titkosított adat: %.1f MiB
|
||||||
stats.encr.total.data.gib=Titkosított adat: %.1f GiB
|
stats.encr.total.data.gib=Titkosított adat: %.1f GiB
|
||||||
stats.write.accessCount=Összes írás: %d
|
stats.write.accessCount=Összes írás: %d
|
||||||
@@ -298,7 +293,6 @@ main.vaultDetail.lockBtn=Zárolás
|
|||||||
main.vaultDetail.bytesPerSecondRead=Olvasás:
|
main.vaultDetail.bytesPerSecondRead=Olvasás:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Írás:
|
main.vaultDetail.bytesPerSecondWritten=Írás:
|
||||||
main.vaultDetail.throughput.idle=tétlen
|
main.vaultDetail.throughput.idle=tétlen
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Széf statisztika
|
main.vaultDetail.stats=Széf statisztika
|
||||||
### Missing
|
### Missing
|
||||||
@@ -362,7 +356,9 @@ recoveryKey.display.StorageHints=Tartsa nagyon biztonságos helyen. pl.:\n •T
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Írja be a visszaállítási kulcsát a következőhöz "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator visszaállítási kulcs\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -123,7 +123,6 @@ hub.register.registerBtn=Konfirmasi
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=Gagal mengunci
|
lock.forced.message=Gagal mengunci
|
||||||
@@ -241,27 +240,21 @@ stats.title=Statistik untuk %s
|
|||||||
stats.cacheHitRate=Tingkat Hit Cache
|
stats.cacheHitRate=Tingkat Hit Cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Baca: diam
|
stats.read.throughput.idle=Baca: diam
|
||||||
stats.read.throughput.kibs=Baca: %.2f kiB/detik
|
|
||||||
stats.read.throughput.mibs=Baca: %.2f MiB/detik
|
stats.read.throughput.mibs=Baca: %.2f MiB/detik
|
||||||
stats.read.total.data.none=Data dibaca: -
|
stats.read.total.data.none=Data dibaca: -
|
||||||
stats.read.total.data.kib=Data dibaca: %.1f kiB
|
|
||||||
stats.read.total.data.mib=Data dibaca: %.1f MiB
|
stats.read.total.data.mib=Data dibaca: %.1f MiB
|
||||||
stats.read.total.data.gib=Data dibaca: %.1f GiB
|
stats.read.total.data.gib=Data dibaca: %.1f GiB
|
||||||
stats.decr.total.data.none=Data terdekripsi: -
|
stats.decr.total.data.none=Data terdekripsi: -
|
||||||
stats.decr.total.data.kib=Data terdekripsi: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB
|
stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB
|
stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB
|
||||||
stats.read.accessCount=Total dibaca: %d
|
stats.read.accessCount=Total dibaca: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Tulis: diam
|
stats.write.throughput.idle=Tulis: diam
|
||||||
stats.write.throughput.kibs=Tulis: %.2f kiB/detik
|
|
||||||
stats.write.throughput.mibs=Tulis: %.2f MiB/detik
|
stats.write.throughput.mibs=Tulis: %.2f MiB/detik
|
||||||
stats.write.total.data.none=Data tertulis: -
|
stats.write.total.data.none=Data tertulis: -
|
||||||
stats.write.total.data.kib=Data tertulis: %.1f kiB
|
|
||||||
stats.write.total.data.mib=Data tertulis: %.1f MiB
|
stats.write.total.data.mib=Data tertulis: %.1f MiB
|
||||||
stats.write.total.data.gib=Data tertulis: %.1f GiB
|
stats.write.total.data.gib=Data tertulis: %.1f GiB
|
||||||
stats.encr.total.data.none=Data terenkripsi: -
|
stats.encr.total.data.none=Data terenkripsi: -
|
||||||
stats.encr.total.data.kib=Data terenkripsi: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=Data terenkripsi: %.1f MiB
|
stats.encr.total.data.mib=Data terenkripsi: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data terenkripsi: %.1f GiB
|
stats.encr.total.data.gib=Data terenkripsi: %.1f GiB
|
||||||
stats.write.accessCount=Total ditulis: %d
|
stats.write.accessCount=Total ditulis: %d
|
||||||
@@ -301,7 +294,6 @@ main.vaultDetail.lockBtn=Gembok
|
|||||||
main.vaultDetail.bytesPerSecondRead=Read:
|
main.vaultDetail.bytesPerSecondRead=Read:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Write:
|
main.vaultDetail.bytesPerSecondWritten=Write:
|
||||||
main.vaultDetail.throughput.idle=idle
|
main.vaultDetail.throughput.idle=idle
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/detik
|
main.vaultDetail.throughput.mbps=%.1f MiB/detik
|
||||||
main.vaultDetail.stats=Statistik Vault
|
main.vaultDetail.stats=Statistik Vault
|
||||||
### Missing
|
### Missing
|
||||||
@@ -365,7 +357,7 @@ recoveryKey.display.StorageHints=Simpan di tempat yang sangat aman, misal.:\n
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Masukkan kunci pemulihan untuk "%s":
|
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
|
recoveryKey.printout.heading=Kunci Pemulihan Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -154,9 +154,6 @@ hub.registerFailed.description=Si è verificato un errore nel processo di nomina
|
|||||||
hub.unauthorized.message=Accesso negato
|
hub.unauthorized.message=Accesso negato
|
||||||
hub.unauthorized.description=Il tuo dispositivo non è ancora stato autorizzato ad accedere a questa cassaforte. Chiedi al proprietario della cassaforte di autorizzarlo.
|
hub.unauthorized.description=Il tuo dispositivo non è ancora stato autorizzato ad accedere a questa cassaforte. Chiedi al proprietario della cassaforte di autorizzarlo.
|
||||||
### License Exceeded
|
### 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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -306,27 +303,27 @@ stats.title=Statistiche per %s
|
|||||||
stats.cacheHitRate=Frequenza di Raggiungimento della Cache
|
stats.cacheHitRate=Frequenza di Raggiungimento della Cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Lettura: inattivo
|
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.throughput.mibs=Lettura: %.2f MiB/s
|
||||||
stats.read.total.data.none=Dati letti: -
|
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.mib=Dati letti: %.1f MiB
|
||||||
stats.read.total.data.gib=Dati letti: %.1f GiB
|
stats.read.total.data.gib=Dati letti: %.1f GiB
|
||||||
stats.decr.total.data.none=Dati decrittografati: -
|
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.mib=Dati decrittografati: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dati decrittografati: %.1f GiB
|
stats.decr.total.data.gib=Dati decrittografati: %.1f GiB
|
||||||
stats.read.accessCount=Letture totali: %d
|
stats.read.accessCount=Letture totali: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Scrittura: inattivo
|
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.throughput.mibs=Scrittura: %.2f MiB/s
|
||||||
stats.write.total.data.none=Dati scritti: -
|
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.mib=Dati scritti: %.1f MiB
|
||||||
stats.write.total.data.gib=Dati scritti: %.1f GiB
|
stats.write.total.data.gib=Dati scritti: %.1f GiB
|
||||||
stats.encr.total.data.none=Dati crittografati: -
|
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.mib=Dati crittografati: %.1f MiB
|
||||||
stats.encr.total.data.gib=Dati crittografati: %.1f GiB
|
stats.encr.total.data.gib=Dati crittografati: %.1f GiB
|
||||||
stats.write.accessCount=Scritture totali: %d
|
stats.write.accessCount=Scritture totali: %d
|
||||||
@@ -369,7 +366,7 @@ main.vaultDetail.lockBtn=Blocca
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lettura:
|
main.vaultDetail.bytesPerSecondRead=Lettura:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Scrittura:
|
main.vaultDetail.bytesPerSecondWritten=Scrittura:
|
||||||
main.vaultDetail.throughput.idle=inattivo
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistiche della Cassaforte
|
main.vaultDetail.stats=Statistiche della Cassaforte
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Individua File Crittografato
|
main.vaultDetail.locateEncryptedFileBtn=Individua File Crittografato
|
||||||
@@ -445,7 +442,7 @@ recoveryKey.display.StorageHints=Mantienilo da qualche parte molto sicuro, ad es
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Reimposta Password
|
recoveryKey.recover.title=Reimposta Password
|
||||||
recoveryKey.recover.prompt=Inserisci la tua chiave di recupero per "%s":
|
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
|
recoveryKey.printout.heading=Chiave di recupero Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Reimposta
|
recoveryKey.recover.resetBtn=Reimposta
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ unlock.success.revealBtn=ドライブを表示
|
|||||||
unlock.error.customPath.message=カスタム パスに金庫をマウントできません
|
unlock.error.customPath.message=カスタム パスに金庫をマウントできません
|
||||||
unlock.error.customPath.description.notSupported=カスタム パスを使い続けたい場合、環境設定に移動してサポートしているボリューム タイプを選択してください。もしくは、金庫のオプションに移動してサポートされるマウント ポイントを選択してください。
|
unlock.error.customPath.description.notSupported=カスタム パスを使い続けたい場合、環境設定に移動してサポートしているボリューム タイプを選択してください。もしくは、金庫のオプションに移動してサポートされるマウント ポイントを選択してください。
|
||||||
unlock.error.customPath.description.notExists=カスタム マウント パスが存在していません。ローカル ファイルシステムで作成するか、金庫のオプションで変更を加えてください。
|
unlock.error.customPath.description.notExists=カスタム マウント パスが存在していません。ローカル ファイルシステムで作成するか、金庫のオプションで変更を加えてください。
|
||||||
|
unlock.error.customPath.description.generic=この金庫のカスタム・マウント・パスを選択しましたが、その使用は次のメッセージで失敗しました: %s
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=デバイス キーにアクセスできません
|
hub.noKeychain.message=デバイス キーにアクセスできません
|
||||||
hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。
|
hub.noKeychain.description=ハブ金庫を解錠するには、キーチェーンが保護するデバイス キーが必要です。続行するには、"%s" を有効にし環境設定からキーチェーンを選択します。
|
||||||
@@ -153,9 +154,8 @@ hub.registerFailed.description=デバイス名登録中にエラーが発生し
|
|||||||
hub.unauthorized.message=アクセスが拒否されました
|
hub.unauthorized.message=アクセスが拒否されました
|
||||||
hub.unauthorized.description=お使いのデバイスはまだこの金庫にアクセスする権限がありません。金庫のオーナーに権限を与えてもらってください。
|
hub.unauthorized.description=お使いのデバイスはまだこの金庫にアクセスする権限がありません。金庫のオーナーに権限を与えてもらってください。
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=ライセンス数が不足しています
|
hub.invalidLicense.message=ハブライセンスが無効です
|
||||||
hub.licenseExceeded.description=Cryptomator Hubがライセンスの許可よりも多くのユーザーにアクセス権を与えています。ハブ管理者にライセンスをアップグレードするよう連絡するか,金庫の管理者に金庫からユーザーを削除するよう連絡してください。
|
hub.invalidLicense.description=Cryptomator ハブインスタンスに無効なライセンスがあります。ライセンスをアップグレードまたは更新するには、ハブ管理者に連絡してください。
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -171,8 +171,11 @@ lock.fail.description=金庫 "%s" を施錠できませんでした。保存さ
|
|||||||
migration.title=金庫をアップグレード
|
migration.title=金庫をアップグレード
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=金庫をアップグレード
|
migration.start.header=金庫をアップグレード
|
||||||
|
migration.start.text=Cryptomatorのこの新しいバージョンであなたの金庫「%s」を開くには、金庫を新しい形式にアップグレードする必要があります。これを行う前に、次のことを知っておく必要があります:
|
||||||
migration.start.remarkUndone=このアップグレードは取り消すことができません。
|
migration.start.remarkUndone=このアップグレードは取り消すことができません。
|
||||||
migration.start.remarkVersions=古い Cryptomator では、アップグレードされた金庫を開くことができなくなります。
|
migration.start.remarkVersions=古い Cryptomator では、アップグレードされた金庫を開くことができなくなります。
|
||||||
|
migration.start.remarkCanRun=あなたが金庫にアクセスするすべてのデバイスは、Cryptomatorのこのバージョンを実行できることを確認する必要があります。
|
||||||
|
migration.start.remarkSynced=アップグレードする前に、このデバイスと他のデバイスで、金庫が完全に同期されていることを確認する必要があります。
|
||||||
migration.start.confirm=上記の情報を理解しました。
|
migration.start.confirm=上記の情報を理解しました。
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword="%s" のパスワードを入力してください
|
migration.run.enterPassword="%s" のパスワードを入力してください
|
||||||
@@ -273,7 +276,12 @@ preferences.interface.showTrayIcon=トレイアイコンを表示 (再起動が
|
|||||||
preferences.volume=仮想ドライブ
|
preferences.volume=仮想ドライブ
|
||||||
preferences.volume.type=ボリューム タイプ (再起動が必要)
|
preferences.volume.type=ボリューム タイプ (再起動が必要)
|
||||||
preferences.volume.type.automatic=自動
|
preferences.volume.type.automatic=自動
|
||||||
|
preferences.volume.docsTooltip=異なるボリュームタイプの詳細については、ドキュメントを確認してください。
|
||||||
preferences.volume.tcp.port=TCP ポート
|
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=読み取り専用マウント
|
preferences.volume.feature.readOnly=読み取り専用マウント
|
||||||
## Updates
|
## Updates
|
||||||
@@ -298,27 +306,21 @@ stats.title=%s の統計情報
|
|||||||
stats.cacheHitRate=キャッシュ ヒット率
|
stats.cacheHitRate=キャッシュ ヒット率
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=読み取り: アイドル状態
|
stats.read.throughput.idle=読み取り: アイドル状態
|
||||||
stats.read.throughput.kibs=読み取り: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=読み取り: %.2f MiB/s
|
stats.read.throughput.mibs=読み取り: %.2f MiB/s
|
||||||
stats.read.total.data.none=データ読み取り: -
|
stats.read.total.data.none=データ読み取り: -
|
||||||
stats.read.total.data.kib=データ読み取り: %.1f kiB
|
|
||||||
stats.read.total.data.mib=データ読み取り: %.1f MiB
|
stats.read.total.data.mib=データ読み取り: %.1f MiB
|
||||||
stats.read.total.data.gib=データ読み取り: %.1f GiB
|
stats.read.total.data.gib=データ読み取り: %.1f GiB
|
||||||
stats.decr.total.data.none=復号済みデータ: -
|
stats.decr.total.data.none=復号済みデータ: -
|
||||||
stats.decr.total.data.kib=復号済みデータ: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=復号済みデータ: %.1f MiB
|
stats.decr.total.data.mib=復号済みデータ: %.1f MiB
|
||||||
stats.decr.total.data.gib=復号済みデータ: %.1f GiB
|
stats.decr.total.data.gib=復号済みデータ: %.1f GiB
|
||||||
stats.read.accessCount=合計読み取り: %d
|
stats.read.accessCount=合計読み取り: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=書き込み: アイドル状態
|
stats.write.throughput.idle=書き込み: アイドル状態
|
||||||
stats.write.throughput.kibs=書き込み: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=書き込み: %.2f MiB/s
|
stats.write.throughput.mibs=書き込み: %.2f MiB/s
|
||||||
stats.write.total.data.none=書き込み済みデータ: -
|
stats.write.total.data.none=書き込み済みデータ: -
|
||||||
stats.write.total.data.kib=書き込み済みデータ: %.1f kiB
|
|
||||||
stats.write.total.data.mib=書き込み済みデータ: %.1f MiB
|
stats.write.total.data.mib=書き込み済みデータ: %.1f MiB
|
||||||
stats.write.total.data.gib=書き込み済みデータ: %.1f GiB
|
stats.write.total.data.gib=書き込み済みデータ: %.1f GiB
|
||||||
stats.encr.total.data.none=暗号化済みデータ: -
|
stats.encr.total.data.none=暗号化済みデータ: -
|
||||||
stats.encr.total.data.kib=暗号化済みデータ: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=暗号化済みデータ: %.1f MiB
|
stats.encr.total.data.mib=暗号化済みデータ: %.1f MiB
|
||||||
stats.encr.total.data.gib=暗号化済みデータ: %.1f GiB
|
stats.encr.total.data.gib=暗号化済みデータ: %.1f GiB
|
||||||
stats.write.accessCount=合計書き込み: %d
|
stats.write.accessCount=合計書き込み: %d
|
||||||
@@ -361,12 +363,12 @@ main.vaultDetail.lockBtn=施錠
|
|||||||
main.vaultDetail.bytesPerSecondRead=読み取り:
|
main.vaultDetail.bytesPerSecondRead=読み取り:
|
||||||
main.vaultDetail.bytesPerSecondWritten=書き込み:
|
main.vaultDetail.bytesPerSecondWritten=書き込み:
|
||||||
main.vaultDetail.throughput.idle=アイドル
|
main.vaultDetail.throughput.idle=アイドル
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=金庫の統計情報
|
main.vaultDetail.stats=金庫の統計情報
|
||||||
main.vaultDetail.locateEncryptedFileBtn=暗号化されたファイルの場所
|
main.vaultDetail.locateEncryptedFileBtn=暗号化されたファイルの場所
|
||||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=暗号化された金庫のファイルを選択してください
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=暗号化された金庫のファイルを選択してください
|
||||||
main.vaultDetail.encryptedPathsCopied=パスをクリップボードにコピーしました!
|
main.vaultDetail.encryptedPathsCopied=パスをクリップボードにコピーしました!
|
||||||
|
main.vaultDetail.filePickerTitle=金庫内のファイルを選択
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator はこの場所に金庫を見つけることができませんでした。
|
main.vaultDetail.missing.info=Cryptomator はこの場所に金庫を見つけることができませんでした。
|
||||||
main.vaultDetail.missing.recheck=再確認
|
main.vaultDetail.missing.recheck=再確認
|
||||||
@@ -405,6 +407,7 @@ vaultOptions.general.startHealthCheckBtn=正常性チェックを開始
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=マウント
|
vaultOptions.mount=マウント
|
||||||
|
vaultOptions.mount.info=オプションは、選択されたボリュームタイプによって異なります。
|
||||||
vaultOptions.mount.linkToPreferences=仮想ドライブの環境設定を開く
|
vaultOptions.mount.linkToPreferences=仮想ドライブの環境設定を開く
|
||||||
vaultOptions.mount.readonly=読み取り専用
|
vaultOptions.mount.readonly=読み取り専用
|
||||||
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
vaultOptions.mount.customMountFlags=カスタム マウント フラグ
|
||||||
@@ -435,7 +438,9 @@ recoveryKey.display.StorageHints=十分に安全な場所に保存してくだ
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=パスワードをリセット
|
recoveryKey.recover.title=パスワードをリセット
|
||||||
recoveryKey.recover.prompt="%s" の回復キーを入力してください:
|
recoveryKey.recover.prompt="%s" の回復キーを入力してください:
|
||||||
recoveryKey.recover.validKey=有効な回復キー
|
recoveryKey.recover.correctKey=有効な回復キー
|
||||||
|
recoveryKey.recover.wrongKey=この回復キーは別の金庫に属しています
|
||||||
|
recoveryKey.recover.invalidKey=この回復キーは有効ではありません
|
||||||
recoveryKey.printout.heading=Cryptomator 回復キー\n"%s"\n
|
recoveryKey.printout.heading=Cryptomator 回復キー\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=リセット
|
recoveryKey.recover.resetBtn=リセット
|
||||||
|
|||||||
@@ -121,7 +121,6 @@ hub.register.registerBtn=확인
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.description=대기 중인 작동이나 파일이 열려있어 "%s"를 잠그는데 실패하였습니다. 이 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다.
|
lock.forced.description=대기 중인 작동이나 파일이 열려있어 "%s"를 잠그는데 실패하였습니다. 이 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다.
|
||||||
@@ -231,27 +230,21 @@ stats.title=%s에 대한 통계
|
|||||||
stats.cacheHitRate=캐시 히트율
|
stats.cacheHitRate=캐시 히트율
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=읽기: 대기중
|
stats.read.throughput.idle=읽기: 대기중
|
||||||
stats.read.throughput.kibs=읽기: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=읽기: %.2f MiB/s
|
stats.read.throughput.mibs=읽기: %.2f MiB/s
|
||||||
stats.read.total.data.none=데이터 읽기: -
|
stats.read.total.data.none=데이터 읽기: -
|
||||||
stats.read.total.data.kib=데이터 읽기: %.1f kiB
|
|
||||||
stats.read.total.data.mib=데이터 읽기: %.1f MiB
|
stats.read.total.data.mib=데이터 읽기: %.1f MiB
|
||||||
stats.read.total.data.gib=데이터 읽기: %.1f GiB
|
stats.read.total.data.gib=데이터 읽기: %.1f GiB
|
||||||
stats.decr.total.data.none=데이터 복호화: -
|
stats.decr.total.data.none=데이터 복호화: -
|
||||||
stats.decr.total.data.kib=데이터 복호화: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=데이터 복호화: %.1f MiB
|
stats.decr.total.data.mib=데이터 복호화: %.1f MiB
|
||||||
stats.decr.total.data.gib=데이터 복호화: %.1f GiB
|
stats.decr.total.data.gib=데이터 복호화: %.1f GiB
|
||||||
stats.read.accessCount=총 읽기 횟수: %d
|
stats.read.accessCount=총 읽기 횟수: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=쓰기: 대기중
|
stats.write.throughput.idle=쓰기: 대기중
|
||||||
stats.write.throughput.kibs=쓰기: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=쓰기: %.2f MiB/s
|
stats.write.throughput.mibs=쓰기: %.2f MiB/s
|
||||||
stats.write.total.data.none=데이터 기록됨: -
|
stats.write.total.data.none=데이터 기록됨: -
|
||||||
stats.write.total.data.kib=데이터 쓰기: %.1f kiB
|
|
||||||
stats.write.total.data.mib=데이터 쓰기: %.1f MiB
|
stats.write.total.data.mib=데이터 쓰기: %.1f MiB
|
||||||
stats.write.total.data.gib=데이터 쓰기: %.1f GiB
|
stats.write.total.data.gib=데이터 쓰기: %.1f GiB
|
||||||
stats.encr.total.data.none=데이터 암호화: -
|
stats.encr.total.data.none=데이터 암호화: -
|
||||||
stats.encr.total.data.kib=데이터 암호화: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=데이터 암호화: %.1f MiB
|
stats.encr.total.data.mib=데이터 암호화: %.1f MiB
|
||||||
stats.encr.total.data.gib=데이터 암호화: %.1f GiB
|
stats.encr.total.data.gib=데이터 암호화: %.1f GiB
|
||||||
stats.write.accessCount=총 쓰기 횟수: %d
|
stats.write.accessCount=총 쓰기 횟수: %d
|
||||||
@@ -291,7 +284,6 @@ main.vaultDetail.lockBtn=잠금
|
|||||||
main.vaultDetail.bytesPerSecondRead=읽기:
|
main.vaultDetail.bytesPerSecondRead=읽기:
|
||||||
main.vaultDetail.bytesPerSecondWritten=쓰기:
|
main.vaultDetail.bytesPerSecondWritten=쓰기:
|
||||||
main.vaultDetail.throughput.idle=대기
|
main.vaultDetail.throughput.idle=대기
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Vault 통계
|
main.vaultDetail.stats=Vault 통계
|
||||||
### Missing
|
### Missing
|
||||||
@@ -352,7 +344,7 @@ recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요:
|
recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요:
|
||||||
recoveryKey.recover.validKey=올바른 복구 키 입니다
|
recoveryKey.recover.correctKey=올바른 복구 키 입니다
|
||||||
recoveryKey.printout.heading=Cryptomator 복구 키\n"%s"\n
|
recoveryKey.printout.heading=Cryptomator 복구 키\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -117,7 +117,6 @@ hub.register.registerBtn=Apstiprināt
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## Failure
|
||||||
@@ -205,7 +204,6 @@ main.vaultDetail.revealBtn=Atklāt disku
|
|||||||
main.vaultDetail.lockBtn=Aizslēgt
|
main.vaultDetail.lockBtn=Aizslēgt
|
||||||
main.vaultDetail.bytesPerSecondRead=Nolasīts:
|
main.vaultDetail.bytesPerSecondRead=Nolasīts:
|
||||||
main.vaultDetail.throughput.idle=dīkstāvē
|
main.vaultDetail.throughput.idle=dīkstāvē
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator šajā ceļā nevarēja atrast glabātuvi.
|
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
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Ievadiet "%s" atjaunošanas atslēgu:
|
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
|
recoveryKey.printout.heading=Cryptomator atjaunošanas atslēga\n"%s" \n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Atiestatīt
|
recoveryKey.recover.resetBtn=Atiestatīt
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ hub.register.registerBtn=Потврди
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## Failure
|
||||||
|
|||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Under navngivingsprosessen oppsto det en feilmeld
|
|||||||
hub.unauthorized.message=Ingen tilgang
|
hub.unauthorized.message=Ingen tilgang
|
||||||
hub.unauthorized.description=Enheten din har ikke blitt autorisert til å få tilgang til dette hvelvet ennå. Spør hvelveieren om å tillate det.
|
hub.unauthorized.description=Enheten din har ikke blitt autorisert til å få tilgang til dette hvelvet ennå. Spør hvelveieren om å tillate det.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Lisensen overskredet
|
hub.invalidLicense.message=Hub-lisens er ugyldig
|
||||||
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.description=Cryptomator Hub instansen din har en ugyldig lisens. Vennligst informer en Hub-administrator om å oppgradere eller fornye lisensen.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Vis verktøykasseikon (krever omstart)
|
|||||||
preferences.volume=Virtuell enhet
|
preferences.volume=Virtuell enhet
|
||||||
preferences.volume.type=Volumtype (krever omstart)
|
preferences.volume.type=Volumtype (krever omstart)
|
||||||
preferences.volume.type.automatic=Automatisk
|
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.tcp.port=TCP Port
|
||||||
preferences.volume.supportedFeatures=Valgt volumtype støtter følgende funksjoner:
|
preferences.volume.supportedFeatures=Valgt volumtype støtter følgende funksjoner:
|
||||||
preferences.volume.feature.mountAuto=Valg av automatisk monteringspunkt
|
preferences.volume.feature.mountAuto=Valg av automatisk monteringspunkt
|
||||||
@@ -306,27 +306,27 @@ stats.title=Statistikk for %s
|
|||||||
stats.cacheHitRate=Treffrate på hurtigminnet
|
stats.cacheHitRate=Treffrate på hurtigminnet
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Les: inaktiv
|
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.throughput.mibs=Lest: %.2f MiB/s
|
||||||
stats.read.total.data.none=Data lest: -
|
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.mib=Data lest: %.1f MiB
|
||||||
stats.read.total.data.gib=Data lest: %.1f GiB
|
stats.read.total.data.gib=Data lest: %.1f GiB
|
||||||
stats.decr.total.data.none=Data dekryptert: -
|
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.mib=Data dekryptert: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data dekryptert: %.1f GiB
|
stats.decr.total.data.gib=Data dekryptert: %.1f GiB
|
||||||
stats.read.accessCount=Lesninger totalt: %d
|
stats.read.accessCount=Lesninger totalt: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Skrive: inaktiv
|
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.throughput.mibs=Skriver: %.2f MiB/s
|
||||||
stats.write.total.data.none=Data skrevet: -
|
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.mib=Data skrevet: %.1f MiB
|
||||||
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
stats.write.total.data.gib=Data skrevet: %.1f GiB
|
||||||
stats.encr.total.data.none=Data kryptert: -
|
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.mib=Data kryptert: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data kryptert: %.1f GiB
|
stats.encr.total.data.gib=Data kryptert: %.1f GiB
|
||||||
stats.write.accessCount=Skrivninger totalt: %d
|
stats.write.accessCount=Skrivninger totalt: %d
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Lås
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lesehastighet:
|
main.vaultDetail.bytesPerSecondRead=Lesehastighet:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
||||||
main.vaultDetail.throughput.idle=inaktiv
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Hvelvstatistikk
|
main.vaultDetail.stats=Hvelvstatistikk
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Finn kryptert fil
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Nullstill passordet
|
recoveryKey.recover.title=Nullstill passordet
|
||||||
recoveryKey.recover.prompt=Skriv inn gjenopprettingsnøkkelen for "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator-gjenopprettingsnøkkel\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Nullstill
|
recoveryKey.recover.resetBtn=Nullstill
|
||||||
|
|||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Er is een fout in het naamproces geworpen. Kijk i
|
|||||||
hub.unauthorized.message=Toegang geweigerd
|
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.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licentie vervallen
|
hub.invalidLicense.message=Hub Licentie ongeldig
|
||||||
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.description=Uw Cryptomator Hub installatie heeft een ongeldige licentie. Informeer een Hub administrator om de licentie te upgraden of te verlengen.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Pictogram in systeemvak weergeven (herstart v
|
|||||||
preferences.volume=Virtuele schijf
|
preferences.volume=Virtuele schijf
|
||||||
preferences.volume.type=Type Volume (herstart vereist)
|
preferences.volume.type=Type Volume (herstart vereist)
|
||||||
preferences.volume.type.automatic=Automatisch
|
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.tcp.port=TCP-poort
|
||||||
preferences.volume.supportedFeatures=Het gekozen volume type ondersteunt de volgende functies:
|
preferences.volume.supportedFeatures=Het gekozen volume type ondersteunt de volgende functies:
|
||||||
preferences.volume.feature.mountAuto=Automatische koppelpunt selectie
|
preferences.volume.feature.mountAuto=Automatische koppelpunt selectie
|
||||||
@@ -306,27 +306,27 @@ stats.title=Statistieken voor %s
|
|||||||
stats.cacheHitRate=Succespercentage van cache
|
stats.cacheHitRate=Succespercentage van cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Lezen: inactief
|
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.throughput.mibs=Lezen: %.2f MiB/s
|
||||||
stats.read.total.data.none=Gegevens gelezen: -
|
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.mib=Gegevens gelezen: %.1f MiB
|
||||||
stats.read.total.data.gib=Gegevens gelezen: %.1f GiB
|
stats.read.total.data.gib=Gegevens gelezen: %.1f GiB
|
||||||
stats.decr.total.data.none=Gegevens ontsleuteld: -
|
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.mib=Gegevens ontsleuteld: %.1f MiB
|
||||||
stats.decr.total.data.gib=Gegevens ontsleuteld: %.1f GiB
|
stats.decr.total.data.gib=Gegevens ontsleuteld: %.1f GiB
|
||||||
stats.read.accessCount=Totaal gelezen: %d
|
stats.read.accessCount=Totaal gelezen: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Schrijven: inactief
|
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.throughput.mibs=Schrijven: %.2f MiB/s
|
||||||
stats.write.total.data.none=Gegevens geschreven: -
|
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.mib=Gegevens geschreven: %.1f MiB
|
||||||
stats.write.total.data.gib=Gegevens geschreven: %.1f GiB
|
stats.write.total.data.gib=Gegevens geschreven: %.1f GiB
|
||||||
stats.encr.total.data.none=Gegevens versleuteld: -
|
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.mib=Gegevens versleuteld: %.1f MiB
|
||||||
stats.encr.total.data.gib=Gegevens versleuteld: %.1f GiB
|
stats.encr.total.data.gib=Gegevens versleuteld: %.1f GiB
|
||||||
stats.write.accessCount=Totaal geschreven: %d
|
stats.write.accessCount=Totaal geschreven: %d
|
||||||
@@ -369,7 +369,7 @@ main.vaultDetail.lockBtn=Vergrendel
|
|||||||
main.vaultDetail.bytesPerSecondRead=Lezen:
|
main.vaultDetail.bytesPerSecondRead=Lezen:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Schrijven:
|
main.vaultDetail.bytesPerSecondWritten=Schrijven:
|
||||||
main.vaultDetail.throughput.idle=inactief
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Kluisstatistieken
|
main.vaultDetail.stats=Kluisstatistieken
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Zoek versleuteld bestand
|
main.vaultDetail.locateEncryptedFileBtn=Zoek versleuteld bestand
|
||||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Bewaar het op een veilige plek, bv:\n • Bewaa
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Wachtwoord resetten
|
recoveryKey.recover.title=Wachtwoord resetten
|
||||||
recoveryKey.recover.prompt=Voer uw herstelsleutel in voor "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator herstelsleutel\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetten
|
recoveryKey.recover.resetBtn=Resetten
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ unlock.success.revealBtn=Gjer eininga synleg
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## Failure
|
||||||
@@ -200,7 +199,6 @@ main.vaultDetail.revealBtn=Gjer eininga synleg
|
|||||||
main.vaultDetail.lockBtn=Lås
|
main.vaultDetail.lockBtn=Lås
|
||||||
main.vaultDetail.bytesPerSecondRead=Lesafart:
|
main.vaultDetail.bytesPerSecondRead=Lesafart:
|
||||||
main.vaultDetail.throughput.idle=inaktiv
|
main.vaultDetail.throughput.idle=inaktiv
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator kunne ikkje finna ein kvelv på denne søkastien.
|
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
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Skriv inn gjenopprettingsnøkkelen for "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator-gjenopprettingsnøkkel\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ unlock.success.revealBtn=ਡਰਾਇਵ ਦਿਖਾਓ
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.description=ਬਾਕੀ ਰਹਿੰਦੀਆਂ ਕਾਰਵਾਈਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਖੁੱਲ੍ਹਣ ਕਰਕੇ "%s" ਲਾਕ ਕਰਨ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਇਸ ਵਾਲਟ ਨੂੰ ਧੱਕੇ ਨਾਲ ਲਾਕ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ I/O ਵਿੱਚ ਰੁਕਾਵਟ ਪਾਉਣ ਨਾਲ ਨਾ-ਸੰਭਾਲਿਆ ਡਾਟਾ ਖਤਮ ਹੋ ਜਾ ਸਕਦਾ ਹੈ।
|
lock.forced.description=ਬਾਕੀ ਰਹਿੰਦੀਆਂ ਕਾਰਵਾਈਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਖੁੱਲ੍ਹਣ ਕਰਕੇ "%s" ਲਾਕ ਕਰਨ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ। ਤੁਸੀਂ ਇਸ ਵਾਲਟ ਨੂੰ ਧੱਕੇ ਨਾਲ ਲਾਕ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ I/O ਵਿੱਚ ਰੁਕਾਵਟ ਪਾਉਣ ਨਾਲ ਨਾ-ਸੰਭਾਲਿਆ ਡਾਟਾ ਖਤਮ ਹੋ ਜਾ ਸਕਦਾ ਹੈ।
|
||||||
@@ -176,27 +175,21 @@ stats.title=%s ਲਈ ਅੰਕੜੇ
|
|||||||
stats.cacheHitRate=ਕੈਸ਼ ਹਿੱਟ ਦਰ
|
stats.cacheHitRate=ਕੈਸ਼ ਹਿੱਟ ਦਰ
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=ਪੜ੍ਹਨ: ਵੇਹਲਾ
|
stats.read.throughput.idle=ਪੜ੍ਹਨ: ਵੇਹਲਾ
|
||||||
stats.read.throughput.kibs=ਪੜ੍ਹਨ: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=ਪੜ੍ਹਨ: %.2f MiB/s
|
stats.read.throughput.mibs=ਪੜ੍ਹਨ: %.2f MiB/s
|
||||||
stats.read.total.data.none=ਡਾਟਾ ਪੜ੍ਹਨ: -
|
stats.read.total.data.none=ਡਾਟਾ ਪੜ੍ਹਨ: -
|
||||||
stats.read.total.data.kib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f kiB
|
|
||||||
stats.read.total.data.mib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f MiB
|
stats.read.total.data.mib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f MiB
|
||||||
stats.read.total.data.gib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f GiB
|
stats.read.total.data.gib=ਡਾਟਾ ਪੜ੍ਹਨ: %.1f GiB
|
||||||
stats.decr.total.data.none=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
stats.decr.total.data.none=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
||||||
stats.decr.total.data.kib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
stats.decr.total.data.mib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
||||||
stats.decr.total.data.gib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
stats.decr.total.data.gib=ਡਾਟਾ ਡਿ-ਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
||||||
stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d
|
stats.read.accessCount=ਕੁੱਲ ਪੜ੍ਹੇ: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ
|
stats.write.throughput.idle=ਲਿਖੇ: ਵੇਹਲ
|
||||||
stats.write.throughput.kibs=ਲਿਖੇ: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s
|
stats.write.throughput.mibs=ਲਿਖੇ: %.2f MiB/s
|
||||||
stats.write.total.data.none=ਲਿਖਿਆ ਡਾਟਾ: -
|
stats.write.total.data.none=ਲਿਖਿਆ ਡਾਟਾ: -
|
||||||
stats.write.total.data.kib=ਡਾਟਾ ਲਿਖਿਆ: %.1f kiB
|
|
||||||
stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB
|
stats.write.total.data.mib=ਡਾਟਾ ਲਿਖਿਆ: %.1f MiB
|
||||||
stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB
|
stats.write.total.data.gib=ਡਾਟਾ ਲਿਖਿਆ: %.1f GiB
|
||||||
stats.encr.total.data.none=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
stats.encr.total.data.none=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: -
|
||||||
stats.encr.total.data.kib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
stats.encr.total.data.mib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f MiB
|
||||||
stats.encr.total.data.gib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
stats.encr.total.data.gib=ਡਾਟਾ ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ: %.1f GiB
|
||||||
stats.write.accessCount=ਕੁੱਲ ਲਿਖੇ: %d
|
stats.write.accessCount=ਕੁੱਲ ਲਿਖੇ: %d
|
||||||
@@ -234,7 +227,6 @@ main.vaultDetail.lockBtn=ਲਾਕ ਕਰੋ
|
|||||||
main.vaultDetail.bytesPerSecondRead=ਪੜ੍ਹਨ:
|
main.vaultDetail.bytesPerSecondRead=ਪੜ੍ਹਨ:
|
||||||
main.vaultDetail.bytesPerSecondWritten=ਲਿਖਣ:
|
main.vaultDetail.bytesPerSecondWritten=ਲਿਖਣ:
|
||||||
main.vaultDetail.throughput.idle=ਵੇਹਲਾ
|
main.vaultDetail.throughput.idle=ਵੇਹਲਾ
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=ਵਾਲਟ ਅੰਕੜੇ
|
main.vaultDetail.stats=ਵਾਲਟ ਅੰਕੜੇ
|
||||||
### Missing
|
### Missing
|
||||||
@@ -292,7 +284,7 @@ recoveryKey.display.StorageHints=ਇਸ ਨੂੰ ਕਿਸੇ ਥਾਂ ਬਹ
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt='%s" ਲਈ ਆਪਣਾ ਰਿਕਵਰੀ ਕੁੰਜੀ ਦਿਓ:
|
recoveryKey.recover.prompt='%s" ਲਈ ਆਪਣਾ ਰਿਕਵਰੀ ਕੁੰਜੀ ਦਿਓ:
|
||||||
recoveryKey.recover.validKey=ਇਹ ਜਾਇਜ਼ ਰਿਕਰਵੀ ਕੁੰਜੀ ਹੈ
|
recoveryKey.recover.correctKey=ਇਹ ਜਾਇਜ਼ ਰਿਕਰਵੀ ਕੁੰਜੀ ਹੈ
|
||||||
recoveryKey.printout.heading=Cryptomator ਰਿਕਵਰੀ ਕੁੰਜੀ\n"%s"\n
|
recoveryKey.printout.heading=Cryptomator ਰਿਕਵਰੀ ਕੁੰਜੀ\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ unlock.success.rememberChoice=Zapamiętaj wybór, nie pokazuj tego ponownie
|
|||||||
unlock.success.revealBtn=Pokaż Dysk
|
unlock.success.revealBtn=Pokaż Dysk
|
||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Nie można zamontować sejfu na niestandardowej ścieżce
|
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 woluminu, który ją obsługuje. W przeciwnym razie przejdź do opcji sejfu i wybierz obsługiwany punkt montowania.
|
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.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
|
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
|
||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Wystąpił błąd podczas ustawiania nazwy. Aby u
|
|||||||
hub.unauthorized.message=Brak dostępu
|
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ę.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Przekroczono licencję
|
hub.invalidLicense.message=Nieważna licencja Huba
|
||||||
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.description=Twoja instancja Hub ma nieprawidłową licencję. Poproś administratora Hub o uaktualnienie lub odnowienie licencji.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -275,10 +274,11 @@ preferences.interface.showMinimizeButton=Pokaż przycisk minimalizacji
|
|||||||
preferences.interface.showTrayIcon=Pokaż ikonę zasobnika (wymaga restartu)
|
preferences.interface.showTrayIcon=Pokaż ikonę zasobnika (wymaga restartu)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Dysk wirtualny
|
preferences.volume=Dysk wirtualny
|
||||||
preferences.volume.type=Typ woluminu (wymaga ponownego uruchomienia)
|
preferences.volume.type=Typ udziału (wymaga ponownego uruchomienia)
|
||||||
preferences.volume.type.automatic=Automatyczny
|
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.tcp.port=Port TCP
|
||||||
preferences.volume.supportedFeatures=Wybrany typ woluminu obsługuje następujące funkcje:
|
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.mountAuto=Automatyczny wybór punktu montowania
|
||||||
preferences.volume.feature.mountToDir=Niestandardowy katalog jako punkt montowania
|
preferences.volume.feature.mountToDir=Niestandardowy katalog jako punkt montowania
|
||||||
preferences.volume.feature.mountToDriveLetter=Litera dysku jako punkt montowania
|
preferences.volume.feature.mountToDriveLetter=Litera dysku jako punkt montowania
|
||||||
@@ -306,27 +306,21 @@ stats.title=Statystyki dla %s
|
|||||||
stats.cacheHitRate=Trafność cache
|
stats.cacheHitRate=Trafność cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Odczyt: bezczynny
|
stats.read.throughput.idle=Odczyt: bezczynny
|
||||||
stats.read.throughput.kibs=Odczyt: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=Odczyt: %.2f kiB/s
|
stats.read.throughput.mibs=Odczyt: %.2f kiB/s
|
||||||
stats.read.total.data.none=Dane odczytywane: -
|
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.mib=Odczyt danych: %.1f kiB
|
||||||
stats.read.total.data.gib=Odczyt danych: %.1f kiB
|
stats.read.total.data.gib=Odczyt danych: %.1f kiB
|
||||||
stats.decr.total.data.none=Dane odszyfrowane: -
|
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.mib=Dane odszyfrowane: %.1f kiB
|
||||||
stats.decr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
stats.decr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
||||||
stats.read.accessCount=Całkowite odczyty: %d
|
stats.read.accessCount=Całkowite odczyty: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Zapis: bezczynny
|
stats.write.throughput.idle=Zapis: bezczynny
|
||||||
stats.write.throughput.kibs=Zapis: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Zapis: %.2f kiB/s
|
stats.write.throughput.mibs=Zapis: %.2f kiB/s
|
||||||
stats.write.total.data.none=Zapisane dane: -
|
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.mib=Zapisane dane: %.1f MiB
|
||||||
stats.write.total.data.gib=Zapisane dane: %.1f kiB
|
stats.write.total.data.gib=Zapisane dane: %.1f kiB
|
||||||
stats.encr.total.data.none=Dane odszyfrowane: -
|
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.mib=Dane odszyfrowane: %.1f kiB
|
||||||
stats.encr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
stats.encr.total.data.gib=Dane odszyfrowane: %.1f kiB
|
||||||
stats.write.accessCount=Całkowity zapis: %d
|
stats.write.accessCount=Całkowity zapis: %d
|
||||||
@@ -369,9 +363,12 @@ main.vaultDetail.lockBtn=Blokuj
|
|||||||
main.vaultDetail.bytesPerSecondRead=Odczyt:
|
main.vaultDetail.bytesPerSecondRead=Odczyt:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Zapisz:
|
main.vaultDetail.bytesPerSecondWritten=Zapisz:
|
||||||
main.vaultDetail.throughput.idle=bezczynny
|
main.vaultDetail.throughput.idle=bezczynny
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statystyki sejfu
|
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
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator nie mógł znaleźć sejfu w tej lokalizacji.
|
main.vaultDetail.missing.info=Cryptomator nie mógł znaleźć sejfu w tej lokalizacji.
|
||||||
main.vaultDetail.missing.recheck=Ponów próbę
|
main.vaultDetail.missing.recheck=Ponów próbę
|
||||||
@@ -410,7 +407,7 @@ vaultOptions.general.startHealthCheckBtn=Rozpocznij Test Spójności
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Montowanie
|
vaultOptions.mount=Montowanie
|
||||||
vaultOptions.mount.info=Opcje zależą od wybranego typu woluminu.
|
vaultOptions.mount.info=Opcje zależą od wybranego typu udziału.
|
||||||
vaultOptions.mount.linkToPreferences=Otwórz ustawienia dysku wirtualnego
|
vaultOptions.mount.linkToPreferences=Otwórz ustawienia dysku wirtualnego
|
||||||
vaultOptions.mount.readonly=Tylko do odczytu
|
vaultOptions.mount.readonly=Tylko do odczytu
|
||||||
vaultOptions.mount.customMountFlags=Własne flagi montowania udziału
|
vaultOptions.mount.customMountFlags=Własne flagi montowania udziału
|
||||||
@@ -441,7 +438,9 @@ recoveryKey.display.StorageHints=Trzymaj go w bezpiecznym miejscu, np.\n • Prz
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Resetuj hasło
|
recoveryKey.recover.title=Resetuj hasło
|
||||||
recoveryKey.recover.prompt=Wprowadź swój klucz odzyskiwania dla "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator - Klucz odzyskiwania "%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetuj
|
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.rememberChoice=Lembrar escolha, não mostrar isto novamente
|
||||||
unlock.success.revealBtn=Revelar unidade
|
unlock.success.revealBtn=Revelar unidade
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=Não é possível montar o cofre no caminho personalizado
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=Não foi possível aceder à chave do dispositivo
|
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.
|
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.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.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licença excedida
|
hub.invalidLicense.message=Licença Hub inválida
|
||||||
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.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
|
# Lock
|
||||||
## Force
|
## 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.revealBtn=Revelar unidade
|
||||||
main.vaultDetail.lockBtn=Trancar
|
main.vaultDetail.lockBtn=Trancar
|
||||||
main.vaultDetail.throughput.idle=inativo
|
main.vaultDetail.throughput.idle=inativo
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Localizar Ficheiro Encriptado
|
main.vaultDetail.locateEncryptedFileBtn=Localizar Ficheiro Encriptado
|
||||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=Escolha um ficheiro do seu cofre para localizar a sua contraparte encriptada
|
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.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.
|
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
|
### 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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -306,27 +303,21 @@ stats.title=Estatísticas para %s
|
|||||||
stats.cacheHitRate=Taxa de Utilização do Cache
|
stats.cacheHitRate=Taxa de Utilização do Cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Leitura: ociosa
|
stats.read.throughput.idle=Leitura: ociosa
|
||||||
stats.read.throughput.kibs=Leitura: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=Leitura: %.2f MiB/s
|
stats.read.throughput.mibs=Leitura: %.2f MiB/s
|
||||||
stats.read.total.data.none=Dados lidos: -
|
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.mib=Dados lidos: %.1f MiB
|
||||||
stats.read.total.data.gib=Dados lidos: %.1f GiB
|
stats.read.total.data.gib=Dados lidos: %.1f GiB
|
||||||
stats.decr.total.data.none=Dados descriptografados: -
|
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.mib=Dados descriptografados: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dados descriptografados: %.1f GiB
|
stats.decr.total.data.gib=Dados descriptografados: %.1f GiB
|
||||||
stats.read.accessCount=Total de leituras: %d
|
stats.read.accessCount=Total de leituras: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Escrita: ociosa
|
stats.write.throughput.idle=Escrita: ociosa
|
||||||
stats.write.throughput.kibs=Escrita: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Escrita: %.2f MiB/s
|
stats.write.throughput.mibs=Escrita: %.2f MiB/s
|
||||||
stats.write.total.data.none=Dados gravados: -
|
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.mib=Dados gravados: %.1f MiB
|
||||||
stats.write.total.data.gib=Dados gravados: %.1f GiB
|
stats.write.total.data.gib=Dados gravados: %.1f GiB
|
||||||
stats.encr.total.data.none=Dados criptografados: -
|
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.mib=Dados criptografados: %.1f MiB
|
||||||
stats.encr.total.data.gib=Dados criptografados: %.1f GiB
|
stats.encr.total.data.gib=Dados criptografados: %.1f GiB
|
||||||
stats.write.accessCount=Total gravado: %d
|
stats.write.accessCount=Total gravado: %d
|
||||||
@@ -369,7 +360,6 @@ main.vaultDetail.lockBtn=Bloquear
|
|||||||
main.vaultDetail.bytesPerSecondRead=Leitura:
|
main.vaultDetail.bytesPerSecondRead=Leitura:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Escrita:
|
main.vaultDetail.bytesPerSecondWritten=Escrita:
|
||||||
main.vaultDetail.throughput.idle=ocioso
|
main.vaultDetail.throughput.idle=ocioso
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Estatísticas do Cofre
|
main.vaultDetail.stats=Estatísticas do Cofre
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Localizar Arquivo Criptografado
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Redefinir Senha
|
recoveryKey.recover.title=Redefinir Senha
|
||||||
recoveryKey.recover.prompt=Digite sua chave de recuperação para "%s":
|
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
|
recoveryKey.printout.heading=Chave de Recuperação do Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Redefinir
|
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.rememberChoice=Ține minte alegerea, nu mai arăta asta din nou
|
||||||
unlock.success.revealBtn=Dezvăluie partiția
|
unlock.success.revealBtn=Dezvăluie partiția
|
||||||
## Failure
|
## 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
|
||||||
hub.noKeychain.message=Cheia dispozitivului nu a putut fi accesată
|
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.
|
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.message=Acces respins
|
||||||
hub.unauthorized.description=Dispozitivul dvs. nu a fost autorizat să acceseze acest seif. Solicitați proprietarului seifului să va autorizeze accesul.
|
hub.unauthorized.description=Dispozitivul dvs. nu a fost autorizat să acceseze acest seif. Solicitați proprietarului seifului să va autorizeze accesul.
|
||||||
### License Exceeded
|
### 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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -271,7 +272,10 @@ preferences.interface.showMinimizeButton=Arată butonul de minimizare
|
|||||||
preferences.interface.showTrayIcon=Arată tray icon (necesită repornire)
|
preferences.interface.showTrayIcon=Arată tray icon (necesită repornire)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Unitate virtuală
|
preferences.volume=Unitate virtuală
|
||||||
|
preferences.volume.type=Tip unitate de stocare (necesită repornire)
|
||||||
preferences.volume.type.automatic=Automat
|
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
|
## Updates
|
||||||
preferences.updates=Actualizări
|
preferences.updates=Actualizări
|
||||||
preferences.updates.currentVersion=Versiunea actuală: %s
|
preferences.updates.currentVersion=Versiunea actuală: %s
|
||||||
@@ -294,27 +298,21 @@ stats.title=Statistici pentru %s
|
|||||||
stats.cacheHitRate=Rata de control cache
|
stats.cacheHitRate=Rata de control cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Citire: inactiv
|
stats.read.throughput.idle=Citire: inactiv
|
||||||
stats.read.throughput.kibs=Citire: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=Citire: %.2f MiB/s
|
stats.read.throughput.mibs=Citire: %.2f MiB/s
|
||||||
stats.read.total.data.none=Date citite: -
|
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.mib=Date citite: %.1f MiB
|
||||||
stats.read.total.data.gib=Date citite: %.1f GiB
|
stats.read.total.data.gib=Date citite: %.1f GiB
|
||||||
stats.decr.total.data.none=Date decriptate: -
|
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.mib=Date decriptate: %.1f MiB
|
||||||
stats.decr.total.data.gib=Date decriptate: %.1f GiB
|
stats.decr.total.data.gib=Date decriptate: %.1f GiB
|
||||||
stats.read.accessCount=Total citit: %d
|
stats.read.accessCount=Total citit: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Scriere: inactiv
|
stats.write.throughput.idle=Scriere: inactiv
|
||||||
stats.write.throughput.kibs=Scrie: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Scrie: %.2f MiB/s
|
stats.write.throughput.mibs=Scrie: %.2f MiB/s
|
||||||
stats.write.total.data.none=Date scrise: -
|
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.mib=Date scrise: %.1f MiB
|
||||||
stats.write.total.data.gib=Date scrise: %.1f GiB
|
stats.write.total.data.gib=Date scrise: %.1f GiB
|
||||||
stats.encr.total.data.none=Date criptate: -
|
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.mib=Date criptate: %.1f MiB
|
||||||
stats.encr.total.data.gib=Date criptate: %.1f GiB
|
stats.encr.total.data.gib=Date criptate: %.1f GiB
|
||||||
stats.write.accessCount=Total scrieri: %d
|
stats.write.accessCount=Total scrieri: %d
|
||||||
@@ -356,7 +354,6 @@ main.vaultDetail.lockBtn=Blocaţi
|
|||||||
main.vaultDetail.bytesPerSecondRead=Citire:
|
main.vaultDetail.bytesPerSecondRead=Citire:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Scriere:
|
main.vaultDetail.bytesPerSecondWritten=Scriere:
|
||||||
main.vaultDetail.throughput.idle=inactiv
|
main.vaultDetail.throughput.idle=inactiv
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Statistici de seif
|
main.vaultDetail.stats=Statistici de seif
|
||||||
### Missing
|
### Missing
|
||||||
@@ -424,7 +421,9 @@ recoveryKey.display.StorageHints=Păstrați cheia de recuperare undeva foarte si
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Resetează Parola
|
recoveryKey.recover.title=Resetează Parola
|
||||||
recoveryKey.recover.prompt=Introduceți cheia de recuperare pentru "%s:
|
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
|
recoveryKey.printout.heading=Cheia de recuperare Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetează
|
recoveryKey.recover.resetBtn=Resetează
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ unlock.success.description=Разблокировка "%s" успешно вып
|
|||||||
unlock.success.rememberChoice=Запомнить выбор и больше не спрашивать
|
unlock.success.rememberChoice=Запомнить выбор и больше не спрашивать
|
||||||
unlock.success.revealBtn=Показать диск
|
unlock.success.revealBtn=Показать диск
|
||||||
## Failure
|
## Failure
|
||||||
unlock.error.customPath.message=Невозможно смонтировать хранилище на указанный путь
|
unlock.error.customPath.message=Невозможно смонтировать хранилище по указанному пути
|
||||||
unlock.error.customPath.description.notSupported=Если вы хотите продолжить использование пользовательского пути, перейдите в настройки и выберите тип тома, который его поддерживает. В противном случае, перейдите в настройки хранилища и выберите поддерживаемую точку монтирования.
|
unlock.error.customPath.description.notSupported=Если вы хотите продолжить использование пользовательского пути, перейдите в настройки и выберите тип тома, который его поддерживает. В противном случае, перейдите в настройки хранилища и выберите поддерживаемую точку монтирования.
|
||||||
unlock.error.customPath.description.notExists=Пользовательский путь монтирования не существует. Либо создайте его в локальной файловой системе, либо измените в параметрах хранилища.
|
unlock.error.customPath.description.notExists=Пользовательский путь монтирования не существует. Либо создайте его в локальной файловой системе, либо измените в параметрах хранилища.
|
||||||
unlock.error.customPath.description.generic=Вы выбрали свой путь монтирования этого хранилища, но его нельзя использовать: %s
|
unlock.error.customPath.description.generic=Вы выбрали свой путь монтирования этого хранилища, но его нельзя использовать: %s
|
||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Ошибка присвоения имени. Б
|
|||||||
hub.unauthorized.message=Нет доступа
|
hub.unauthorized.message=Нет доступа
|
||||||
hub.unauthorized.description=Устройство ещё не авторизовано для доступа к этому хранилищу. Попросите владельца хранилища разрешить его.
|
hub.unauthorized.description=Устройство ещё не авторизовано для доступа к этому хранилищу. Попросите владельца хранилища разрешить его.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Срок действия лицензии истёк
|
hub.invalidLicense.message=Лицензия хаба недействительна
|
||||||
hub.licenseExceeded.description=Cryptomator Hub предоставил доступ большему количеству пользователей, чем разрешено лицензией. Обратитесь к администратору Hub для обновления лицензии или администратора хранилища, чтобы удалить пользователей из хранилищ.
|
hub.invalidLicense.description=У вашего хаба Cryptomator неверная лицензия. Попросите администратора хаба обновить или продлить лицензию.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,12 +276,13 @@ preferences.interface.showTrayIcon=Показывать значок в пане
|
|||||||
preferences.volume=Виртуальный диск
|
preferences.volume=Виртуальный диск
|
||||||
preferences.volume.type=Тип тома (требуется перезапуск)
|
preferences.volume.type=Тип тома (требуется перезапуск)
|
||||||
preferences.volume.type.automatic=Автоматически
|
preferences.volume.type.automatic=Автоматически
|
||||||
|
preferences.volume.docsTooltip=Откройте документацию, чтобы узнать больше о различных типах томов.
|
||||||
preferences.volume.tcp.port=Порт TCP
|
preferences.volume.tcp.port=Порт TCP
|
||||||
preferences.volume.supportedFeatures=Выбранный тип тома поддерживает следующие функции:
|
preferences.volume.supportedFeatures=Выбранный тип тома поддерживает следующие функции:
|
||||||
preferences.volume.feature.mountAuto=Выбор точки автомонтирования
|
preferences.volume.feature.mountAuto=Выбор точки автомонтирования
|
||||||
preferences.volume.feature.mountToDir=Своя папка как точка монтирования
|
preferences.volume.feature.mountToDir=Своя папка как точка монтирования
|
||||||
preferences.volume.feature.mountToDriveLetter=Буква диска как точка монтирования
|
preferences.volume.feature.mountToDriveLetter=Буква диска как точка монтирования
|
||||||
preferences.volume.feature.mountFlags=Настройки монтирования
|
preferences.volume.feature.mountFlags=Параметры монтирования
|
||||||
preferences.volume.feature.readOnly=Монтирование только для чтения
|
preferences.volume.feature.readOnly=Монтирование только для чтения
|
||||||
## Updates
|
## Updates
|
||||||
preferences.updates=Обновления
|
preferences.updates=Обновления
|
||||||
@@ -445,7 +445,9 @@ recoveryKey.display.StorageHints=Храните его в надёжном ме
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Сброс пароля
|
recoveryKey.recover.title=Сброс пароля
|
||||||
recoveryKey.recover.prompt=Введите ключ восстановления для "%s":
|
recoveryKey.recover.prompt=Введите ключ восстановления для "%s":
|
||||||
recoveryKey.recover.validKey=Это действительный ключ восстановления
|
recoveryKey.recover.correctKey=Это действительный ключ восстановления
|
||||||
|
recoveryKey.recover.wrongKey=Этот ключ восстановления от другого хранилища
|
||||||
|
recoveryKey.recover.invalidKey=Этот ключ восстановления недействителен
|
||||||
recoveryKey.printout.heading=Ключ восстановления Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Ключ восстановления Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Сброс
|
recoveryKey.recover.resetBtn=Сброс
|
||||||
@@ -468,7 +470,7 @@ passwordStrength.messageLabel.4=Очень сильный
|
|||||||
# Quit
|
# Quit
|
||||||
quit.title=Выйти из приложения
|
quit.title=Выйти из приложения
|
||||||
quit.message=Есть открытые хранилища
|
quit.message=Есть открытые хранилища
|
||||||
quit.description=Пожалуйста, подтвердите, что вы хотите выйти. Криптоматор корректно заблокирует все разблокированные хранилища для предотвращения потери данных.
|
quit.description=Подтвердите, что вы хотите выйти. Cryptomator корректно заблокирует все разблокированные хранилища для предотвращения потери данных.
|
||||||
quit.lockAndQuitBtn=Заблокировать и выйти
|
quit.lockAndQuitBtn=Заблокировать и выйти
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ unlock.unlockBtn=අගුළුහරින්න
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## 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.rememberChoice=Zapamätať voľbu, už viac nezobrazovať
|
||||||
unlock.success.revealBtn=Odkryť disk
|
unlock.success.revealBtn=Odkryť disk
|
||||||
## Failure
|
## 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
|
||||||
hub.noKeychain.message=Nemôžem pristúpiť ku kľúču zariadenia
|
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.
|
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.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.
|
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
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licencia prekročená
|
hub.invalidLicense.message=Neplatná licencia Hub-u
|
||||||
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.description=Vaša inštancia Cryptomator Hub-u má neplatnú licenciu. Prosím informujte Hub administrátora pre aktualizáciu alebo obnovenie licencie.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -271,8 +272,14 @@ preferences.interface.showMinimizeButton=Ukáž minimalizačné tlačidlo
|
|||||||
preferences.interface.showTrayIcon=Ukázať ikonu na sytémovej lište (vyžaduje reštart)
|
preferences.interface.showTrayIcon=Ukázať ikonu na sytémovej lište (vyžaduje reštart)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Virtuálny disk
|
preferences.volume=Virtuálny disk
|
||||||
|
preferences.volume.type=Typ oddielu (vyžaduje reštart)
|
||||||
preferences.volume.type.automatic=Automaticky
|
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.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.mountFlags=Vlastné parametre mapovania
|
||||||
preferences.volume.feature.readOnly=Mapovanie len na čítanie
|
preferences.volume.feature.readOnly=Mapovanie len na čítanie
|
||||||
## Updates
|
## Updates
|
||||||
@@ -297,14 +304,14 @@ stats.title=Štatistiky pre %s
|
|||||||
stats.cacheHitRate=Pomer nakešovaných záznamov
|
stats.cacheHitRate=Pomer nakešovaných záznamov
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čítanie: nečinnosť
|
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.throughput.mibs=Čítanie: %.2f MiB/s
|
||||||
stats.read.total.data.none=Čítanie dát: -
|
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.mib=Čítanie dát: %.1f MiB
|
||||||
stats.read.total.data.gib=Čítanie dát: %.1f GiB
|
stats.read.total.data.gib=Čítanie dát: %.1f GiB
|
||||||
stats.decr.total.data.none=Odkódované dáta: -
|
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.mib=Odkódované dáta: %.1f MiB
|
||||||
stats.decr.total.data.gib=Odkódované dáta: %.1f GiB
|
stats.decr.total.data.gib=Odkódované dáta: %.1f GiB
|
||||||
stats.read.accessCount=Spolu načítané: %d
|
stats.read.accessCount=Spolu načítané: %d
|
||||||
@@ -313,11 +320,11 @@ stats.write.throughput.idle=Zápis: nečinnosť
|
|||||||
stats.write.throughput.kibs=Zápis: %.2f KiB/s
|
stats.write.throughput.kibs=Zápis: %.2f KiB/s
|
||||||
stats.write.throughput.mibs=Zápis: %.2f MiB/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.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.mib=Zapísaných dát: %.1f MiB
|
||||||
stats.write.total.data.gib=Zapísaných dát: %.1f GiB
|
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.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.mib=Odkódovaných dát: %.1f MiB
|
||||||
stats.encr.total.data.gib=Odkódovaných dát: %.1f GiB
|
stats.encr.total.data.gib=Odkódovaných dát: %.1f GiB
|
||||||
stats.write.accessCount=Suma zápisov: %d
|
stats.write.accessCount=Suma zápisov: %d
|
||||||
@@ -360,7 +367,7 @@ main.vaultDetail.lockBtn=Uzamknúť
|
|||||||
main.vaultDetail.bytesPerSecondRead=Čítanie:
|
main.vaultDetail.bytesPerSecondRead=Čítanie:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Zápis:
|
main.vaultDetail.bytesPerSecondWritten=Zápis:
|
||||||
main.vaultDetail.throughput.idle=nečinný
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Štatistiky trezora
|
main.vaultDetail.stats=Štatistiky trezora
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Lokalizujte zašifrovaný súbor
|
main.vaultDetail.locateEncryptedFileBtn=Lokalizujte zašifrovaný súbor
|
||||||
@@ -436,7 +443,9 @@ recoveryKey.display.StorageHints=Uchovávajte ho na bezpečnom mieste, ako napr.
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Resetovanie hesla
|
recoveryKey.recover.title=Resetovanie hesla
|
||||||
recoveryKey.recover.prompt=Zadajte Váš kľúč obnovy pre "%s":
|
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
|
recoveryKey.printout.heading=Kľúč obnovy Cryptomator-a\n "%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Resetovať
|
recoveryKey.recover.resetBtn=Resetovať
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ error.technicalDetails=Podrobnosti:
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=Poizkusi znova
|
lock.forced.retryBtn=Poizkusi znova
|
||||||
@@ -79,6 +78,7 @@ lock.forced.retryBtn=Poizkusi znova
|
|||||||
## General
|
## General
|
||||||
## Interface
|
## Interface
|
||||||
## Volume
|
## Volume
|
||||||
|
preferences.volume.docsTooltip=Informacije o različnih podatkovnih nosilcih najdete v navodilih.
|
||||||
## Updates
|
## Updates
|
||||||
## Contribution
|
## Contribution
|
||||||
#<-- Add entries for donations and code/translation/documentation contribution -->
|
#<-- Add entries for donations and code/translation/documentation contribution -->
|
||||||
@@ -117,6 +117,9 @@ main.vaultDetail.locateEncryptedFileBtn=Poišči šifrirano datoteko
|
|||||||
## Display Recovery Key
|
## Display Recovery Key
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### 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
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ unlock.success.revealBtn=Otvori disk
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## 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.
|
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
|
stats.cacheHitRate=Frekventnost keš memorije
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čitanje: u pripravnosti
|
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.throughput.mibs=Čitanje: %.2f MiB/s
|
||||||
stats.read.total.data.none=Učitano podataka: -
|
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.mib=Učitano podataka: %.1f MiB
|
||||||
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
||||||
stats.decr.total.data.none=Dešifrovano podataka: -
|
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.mib=Dešifrovano podataka: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
||||||
stats.read.accessCount=Укупно учитано: %d
|
stats.read.accessCount=Укупно учитано: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Писање: у приправности
|
stats.write.throughput.idle=Писање: у приправности
|
||||||
stats.write.throughput.kibs=Писање: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Писање: %.2f MiB/s
|
stats.write.throughput.mibs=Писање: %.2f MiB/s
|
||||||
stats.write.total.data.none=Уписано података: -
|
stats.write.total.data.none=Уписано података: -
|
||||||
stats.write.total.data.kib=Уписано података: %.1f kiB
|
|
||||||
stats.write.total.data.mib=Уписано података: %.1f MiB
|
stats.write.total.data.mib=Уписано података: %.1f MiB
|
||||||
stats.write.total.data.gib=Уписано података: %.1f GiB
|
stats.write.total.data.gib=Уписано података: %.1f GiB
|
||||||
stats.encr.total.data.none=Шифровано података: -
|
stats.encr.total.data.none=Шифровано података: -
|
||||||
stats.encr.total.data.kib=Шифровано података: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=Шифровано података: %.1f MiB
|
stats.encr.total.data.mib=Шифровано података: %.1f MiB
|
||||||
stats.encr.total.data.gib=Шифровано података: %.1f GiB
|
stats.encr.total.data.gib=Шифровано података: %.1f GiB
|
||||||
stats.write.accessCount=Укупно уписано: %d
|
stats.write.accessCount=Укупно уписано: %d
|
||||||
@@ -246,7 +239,6 @@ main.vaultDetail.lockBtn=Zaključaj
|
|||||||
main.vaultDetail.bytesPerSecondRead=Читање:
|
main.vaultDetail.bytesPerSecondRead=Читање:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Писање:
|
main.vaultDetail.bytesPerSecondWritten=Писање:
|
||||||
main.vaultDetail.throughput.idle=у стању мировања
|
main.vaultDetail.throughput.idle=у стању мировања
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Статистика сефа
|
main.vaultDetail.stats=Статистика сефа
|
||||||
### Missing
|
### Missing
|
||||||
@@ -304,7 +296,7 @@ recoveryKey.display.StorageHints=Чувајте га на веома сигур
|
|||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.prompt=Унесите резервни кључ за "%s":
|
recoveryKey.recover.prompt=Унесите резервни кључ за "%s":
|
||||||
recoveryKey.recover.validKey=Ово је исправан резервни кључ
|
recoveryKey.recover.correctKey=Ово је исправан резервни кључ
|
||||||
recoveryKey.printout.heading=Cryptomator Резервни Кључ\n"%s"\n
|
recoveryKey.printout.heading=Cryptomator Резервни Кључ\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ unlock.success.revealBtn=Otvori disk
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## Failure
|
||||||
@@ -176,14 +175,11 @@ stats.title=Statistika za %s
|
|||||||
stats.cacheHitRate=Frekventnost keš memorije
|
stats.cacheHitRate=Frekventnost keš memorije
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Čitanje: u pripravnosti
|
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.throughput.mibs=Čitanje: %.2f MiB/s
|
||||||
stats.read.total.data.none=Učitano podataka: -
|
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.mib=Učitano podataka: %.1f MiB
|
||||||
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
stats.read.total.data.gib=Učitano podataka: %.1f GiB
|
||||||
stats.decr.total.data.none=Dešifrovano podataka: -
|
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.mib=Dešifrovano podataka: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
stats.decr.total.data.gib=Dešifrovano podataka: %.1f GiB
|
||||||
## Write
|
## Write
|
||||||
|
|||||||
@@ -154,9 +154,8 @@ hub.registerFailed.description=Ett fel uppstod i namngivningsprocessen. För mer
|
|||||||
hub.unauthorized.message=Åtkomst nekad
|
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.
|
hub.unauthorized.description=Din enhet har ännu inte behörighet att komma åt detta valv. Be valvägaren att godkänna det.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Licensen överskriden
|
hub.invalidLicense.message=Din Hub-licens är ogiltig
|
||||||
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.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
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -277,6 +276,7 @@ preferences.interface.showTrayIcon=Visa ikon i aktivitetsfältet (kräver omstar
|
|||||||
preferences.volume=Virtuell enhet
|
preferences.volume=Virtuell enhet
|
||||||
preferences.volume.type=Volymtyp (kräver omstart)
|
preferences.volume.type=Volymtyp (kräver omstart)
|
||||||
preferences.volume.type.automatic=Automatiskt
|
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.tcp.port=TCP-port
|
||||||
preferences.volume.supportedFeatures=Den valda volymtypen stöder följande funktioner:
|
preferences.volume.supportedFeatures=Den valda volymtypen stöder följande funktioner:
|
||||||
preferences.volume.feature.mountAuto=Automatiskt val av monteringspunkt
|
preferences.volume.feature.mountAuto=Automatiskt val av monteringspunkt
|
||||||
@@ -303,27 +303,27 @@ stats.title=Statistik för %s
|
|||||||
stats.cacheHitRate=Cache frekvens
|
stats.cacheHitRate=Cache frekvens
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Läs: inaktiv
|
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.throughput.mibs=Läs: %.2f kiB/s
|
||||||
stats.read.total.data.none=Data läst: -
|
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.mib=Data läst: %.1f kiB
|
||||||
stats.read.total.data.gib=Data läst: %.1f GiB
|
stats.read.total.data.gib=Data läst: %.1f GiB
|
||||||
stats.decr.total.data.none=Data dekrypterad: -
|
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.mib=Data dekrypterad: %.1f MiB
|
||||||
stats.decr.total.data.gib=Data dekrypterad: %.1f GiB
|
stats.decr.total.data.gib=Data dekrypterad: %.1f GiB
|
||||||
stats.read.accessCount=Totalt läst: %d
|
stats.read.accessCount=Totalt läst: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Skriv: inaktiv
|
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.throughput.mibs=Skriv: %.2f MiB/s
|
||||||
stats.write.total.data.none=Data skrivet: -
|
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.mib=Data skrivet: %.1f MiB
|
||||||
stats.write.total.data.gib=Data skrivet: %.1f GiB
|
stats.write.total.data.gib=Data skrivet: %.1f GiB
|
||||||
stats.encr.total.data.none=Data krypterad: -
|
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.mib=Data krypterad: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data krypterad: %.1f GiB
|
stats.encr.total.data.gib=Data krypterad: %.1f GiB
|
||||||
stats.write.accessCount=Totalt skrivet: %d
|
stats.write.accessCount=Totalt skrivet: %d
|
||||||
@@ -365,7 +365,7 @@ main.vaultDetail.lockBtn=Lås
|
|||||||
main.vaultDetail.bytesPerSecondRead=Läs:
|
main.vaultDetail.bytesPerSecondRead=Läs:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
main.vaultDetail.bytesPerSecondWritten=Skriv:
|
||||||
main.vaultDetail.throughput.idle=inaktiv
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Valv Statistik
|
main.vaultDetail.stats=Valv Statistik
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Leta upp krypterad fil
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Återställ lösenord
|
recoveryKey.recover.title=Återställ lösenord
|
||||||
recoveryKey.recover.prompt=Ange din återställningsnyckel för "%s":
|
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
|
recoveryKey.printout.heading=Cryptomator återställningsnyckel\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Återställ
|
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.rememberChoice=Kumbuka chaguo, usionyeshe hii tena
|
||||||
unlock.success.revealBtn=Fichua Kiendeshaji
|
unlock.success.revealBtn=Fichua Kiendeshaji
|
||||||
## Failure
|
## 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
|
||||||
|
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
|
### Waiting
|
||||||
hub.auth.message=Inasubiri uthibitishaji…
|
hub.auth.message=Inasubiri uthibitishaji…
|
||||||
hub.auth.description=Unapaswa kuelekezwa upya kiotomatiki kwa ukurasa wa kuingia.
|
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.message=Ufikiaji umekataliwa
|
||||||
hub.unauthorized.description=Kifaa chako bado hakijaidhinishwa kufikia kuba hii. Uliza mwenye kuba aidhinishe.
|
hub.unauthorized.description=Kifaa chako bado hakijaidhinishwa kufikia kuba hii. Uliza mwenye kuba aidhinishe.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Leseni imepitwa
|
hub.invalidLicense.message=Leseni ya Hub ni batili
|
||||||
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.description=Mfano wako wa Cryptomator Hub una leseni batili. Tafadhali mjulishe msimamizi wa Hub ili kuboresha au kusasisha leseni.
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -165,6 +171,11 @@ lock.fail.description=Kuba "%s" haikuweza kufungwa. Hakikisha kazi isiyohifadhiw
|
|||||||
migration.title=Pandisha daraja Kuba
|
migration.title=Pandisha daraja Kuba
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=Pandisha daraja Kuba
|
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
|
migration.start.confirm=Nimesoma na kuelewa habari hapo juu
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword=Ingiza neno la siri ya "%s"
|
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.checkFinishedAndFound=Ukaguzi ulimaliza kukimbia. Tafadhali angalia matokeo.
|
||||||
health.check.detail.checkFailed=Ukaguzi ulitoka kwa sababu ya kosa.
|
health.check.detail.checkFailed=Ukaguzi ulitoka kwa sababu ya kosa.
|
||||||
health.check.detail.checkCancelled=Ukaguzi ulikatishwa.
|
health.check.detail.checkCancelled=Ukaguzi ulikatishwa.
|
||||||
|
health.check.detail.listFilters.label=Chuja
|
||||||
|
health.check.detail.fixAllSpecificBtn=Rekebisha aina zote
|
||||||
health.check.exportBtn=Hamisha Ripoti
|
health.check.exportBtn=Hamisha Ripoti
|
||||||
## Result view
|
## 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
|
## Fix Application
|
||||||
health.fix.fixBtn=Kurekebisha
|
health.fix.fixBtn=Kurekebisha
|
||||||
health.fix.successTip=Rekebisha imefanikiwa
|
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)
|
preferences.interface.showTrayIcon=Onyesha ikoni ya trei (inahitaji kuanzisha upya)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Kiendeshi pepe
|
preferences.volume=Kiendeshi pepe
|
||||||
|
preferences.volume.type=Aina ya Sauti (inahitaji kuanzishwa upya)
|
||||||
preferences.volume.type.automatic=Otomatiki
|
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
|
## Updates
|
||||||
preferences.updates=Sasishi
|
preferences.updates=Sasishi
|
||||||
preferences.updates.currentVersion=Toleo la Sasa: %s
|
preferences.updates.currentVersion=Toleo la Sasa: %s
|
||||||
@@ -269,32 +305,34 @@ stats.title=Takwimu za %s
|
|||||||
stats.cacheHitRate=Kiwango cha Hit ya Akiba
|
stats.cacheHitRate=Kiwango cha Hit ya Akiba
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Soma: bila kazi
|
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.throughput.mibs=Soma:%.2fMiB/s
|
||||||
stats.read.total.data.none=Data soma: -
|
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.mib=Data soma: %.1f MiB
|
||||||
stats.read.total.data.gib=Data soma: %.1f GiB
|
stats.read.total.data.gib=Data soma: %.1f GiB
|
||||||
stats.decr.total.data.none=Data iliyosimbwa kwa njia fiche: -
|
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.mib=Data iliyosimbwa kwa njia fiche: %.1fMiB
|
||||||
stats.decr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
stats.decr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
||||||
stats.read.accessCount=Jumla ya kusoma: %d
|
stats.read.accessCount=Jumla ya kusoma: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Andika: bila kazi
|
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.throughput.mibs=Andika: %.2f MiB/s
|
||||||
stats.write.total.data.none=Data iliyoandikwa: -
|
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.mib=Data iliyoandikwa: %.1f MiB
|
||||||
stats.write.total.data.gib=Data iliyoandikwa: %.1f GiB
|
stats.write.total.data.gib=Data iliyoandikwa: %.1f GiB
|
||||||
stats.encr.total.data.none=Data iliyosimbwa kwa njia fiche: -
|
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.mib=Data iliyosimbwa kwa njia fiche: %.1f MiB
|
||||||
stats.encr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
stats.encr.total.data.gib=Data iliyosimbwa kwa njia fiche: %.1f GiB
|
||||||
stats.write.accessCount=Jumla ya maandishi anaandika: %d
|
stats.write.accessCount=Jumla ya maandishi anaandika: %d
|
||||||
|
|
||||||
## Accesses
|
## Accesses
|
||||||
|
stats.access.current=Ufikiaji: %d
|
||||||
|
stats.access.total=Jumla ya ufikiaji: %d
|
||||||
|
|
||||||
|
|
||||||
# Main Window
|
# Main Window
|
||||||
@@ -325,13 +363,18 @@ main.vaultDetail.passwordSavedInKeychain=Neno la siri limehifadhiwa
|
|||||||
main.vaultDetail.unlockedStatus=IMEFUNGULIWA
|
main.vaultDetail.unlockedStatus=IMEFUNGULIWA
|
||||||
main.vaultDetail.accessLocation=Yaliyomo kwenye kuba yako yanapatikana hapa:
|
main.vaultDetail.accessLocation=Yaliyomo kwenye kuba yako yanapatikana hapa:
|
||||||
main.vaultDetail.revealBtn=Fichua Kiendeshaji
|
main.vaultDetail.revealBtn=Fichua Kiendeshaji
|
||||||
|
main.vaultDetail.copyUri=Nakili URI
|
||||||
main.vaultDetail.lockBtn=Funga
|
main.vaultDetail.lockBtn=Funga
|
||||||
main.vaultDetail.bytesPerSecondRead=Soma:
|
main.vaultDetail.bytesPerSecondRead=Soma:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Andika:
|
main.vaultDetail.bytesPerSecondWritten=Andika:
|
||||||
main.vaultDetail.throughput.idle=imezubaa
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Takwimu za Kuba
|
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
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator haikuweza kupata kuba katika njia hii.
|
main.vaultDetail.missing.info=Cryptomator haikuweza kupata kuba katika njia hii.
|
||||||
main.vaultDetail.missing.recheck=Kagua upya
|
main.vaultDetail.missing.recheck=Kagua upya
|
||||||
@@ -370,13 +413,17 @@ vaultOptions.general.startHealthCheckBtn=Anza Ukaguzi wa Afya
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Kuweka
|
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.readonly=Soma-Tu
|
||||||
vaultOptions.mount.customMountFlags=Vipepea Vya Mlima Maalum
|
vaultOptions.mount.customMountFlags=Vipepea Vya Mlima Maalum
|
||||||
vaultOptions.mount.winDriveLetterOccupied=ulichukua
|
vaultOptions.mount.winDriveLetterOccupied=ulichukua
|
||||||
vaultOptions.mount.mountPoint=Pointi ya kuweka
|
vaultOptions.mount.mountPoint=Pointi ya kuweka
|
||||||
vaultOptions.mount.mountPoint.auto=Chagua otomatiki mahali panapofaa
|
vaultOptions.mount.mountPoint.auto=Chagua otomatiki mahali panapofaa
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Tumia barua kiendeshi kilichopangiwa
|
vaultOptions.mount.mountPoint.driveLetter=Tumia barua kiendeshi kilichopangiwa
|
||||||
|
vaultOptions.mount.mountPoint.custom=Tumia saraka iliyochaguliwa
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=Chagua…
|
vaultOptions.mount.mountPoint.directoryPickerButton=Chagua…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Chagua saraka
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Neno la siri
|
vaultOptions.masterkey=Neno la siri
|
||||||
vaultOptions.masterkey.changePasswordBtn=Badilisha 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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Fufua Neno la siri
|
recoveryKey.recover.title=Fufua Neno la siri
|
||||||
recoveryKey.recover.prompt=Ingiza ufunguo wako wa kurejesha kwa "%s":
|
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
|
recoveryKey.printout.heading=Ufunguo wa Urejeshaji wa Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Weka upya
|
recoveryKey.recover.resetBtn=Weka upya
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ unlock.success.revealBtn=இயக்ககத்தை வெளிப்பட
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=பூட்டுதல் தோல்வியடைந்தது
|
lock.forced.message=பூட்டுதல் தோல்வியடைந்தது
|
||||||
@@ -197,27 +196,21 @@ stats.title=%s க்கான புள்ளிவிவரங்கள்
|
|||||||
stats.cacheHitRate=தற்காலிக சேமிப்பு வீதம்
|
stats.cacheHitRate=தற்காலிக சேமிப்பு வீதம்
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=படிக்கப்பட்டது: செயலற்றது
|
stats.read.throughput.idle=படிக்கப்பட்டது: செயலற்றது
|
||||||
stats.read.throughput.kibs=படிக்கப்பட்டது: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=படிக்கப்பட்டது: %.2f MiB/s
|
stats.read.throughput.mibs=படிக்கப்பட்டது: %.2f MiB/s
|
||||||
stats.read.total.data.none=படிக்கப்பட்ட தரவு: -
|
stats.read.total.data.none=படிக்கப்பட்ட தரவு: -
|
||||||
stats.read.total.data.kib=படிக்கப்பட்ட தரவு: %.1f kiB
|
|
||||||
stats.read.total.data.mib=படிக்கப்பட்ட தரவு: %.1f MiB
|
stats.read.total.data.mib=படிக்கப்பட்ட தரவு: %.1f MiB
|
||||||
stats.read.total.data.gib=படிக்கப்பட்ட தரவு: %.1f GiB
|
stats.read.total.data.gib=படிக்கப்பட்ட தரவு: %.1f GiB
|
||||||
stats.decr.total.data.none=மறைகுறிநீக்கப்பட்ட தரவு: -
|
stats.decr.total.data.none=மறைகுறிநீக்கப்பட்ட தரவு: -
|
||||||
stats.decr.total.data.kib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f MiB
|
stats.decr.total.data.mib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f MiB
|
||||||
stats.decr.total.data.gib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f GiB
|
stats.decr.total.data.gib=மறைகுறிநீக்கப்பட்ட தரவு: %.1f GiB
|
||||||
stats.read.accessCount=மொத்த வாசிப்புகள்: %d
|
stats.read.accessCount=மொத்த வாசிப்புகள்: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=எழுதப்பட்டது: செயலற்ற நிலையில்
|
stats.write.throughput.idle=எழுதப்பட்டது: செயலற்ற நிலையில்
|
||||||
stats.write.throughput.kibs=எழுதப்பட்டது: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=எழுதப்பட்டது: %.2f MiB/s
|
stats.write.throughput.mibs=எழுதப்பட்டது: %.2f MiB/s
|
||||||
stats.write.total.data.none=எழுதப்பட்ட தரவு: -
|
stats.write.total.data.none=எழுதப்பட்ட தரவு: -
|
||||||
stats.write.total.data.kib=எழுதப்பட்ட தரவு: %.1f kiB
|
|
||||||
stats.write.total.data.mib=எழுதப்பட்ட தரவு: %.1f MiB
|
stats.write.total.data.mib=எழுதப்பட்ட தரவு: %.1f MiB
|
||||||
stats.write.total.data.gib=எழுதப்பட்ட தரவு: %.1f GiB
|
stats.write.total.data.gib=எழுதப்பட்ட தரவு: %.1f GiB
|
||||||
stats.encr.total.data.none=குறியாக்கம் செய்யப்பட்ட தரவு: -
|
stats.encr.total.data.none=குறியாக்கம் செய்யப்பட்ட தரவு: -
|
||||||
stats.encr.total.data.kib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f MiB
|
stats.encr.total.data.mib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f MiB
|
||||||
stats.encr.total.data.gib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f GiB
|
stats.encr.total.data.gib=குறியாக்கம் செய்யப்பட்ட தரவு: %.1f GiB
|
||||||
stats.write.accessCount=மொத்த எழுதப்பட்டது: %d
|
stats.write.accessCount=மொத்த எழுதப்பட்டது: %d
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.retryBtn=మళ్ళీ చేయండి
|
lock.forced.retryBtn=మళ్ళీ చేయండి
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ unlock.unlockBtn=ปลดล็อก
|
|||||||
### Unauthorized
|
### Unauthorized
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
## Failure
|
## 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.rememberChoice=Seçimi hatırla, bunu bir daha gösterme
|
||||||
unlock.success.revealBtn=Sürücüyü Göster
|
unlock.success.revealBtn=Sürücüyü Göster
|
||||||
## Failure
|
## 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
|
||||||
hub.noKeychain.message=Cihaz anahtarına erişilemiyor
|
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.
|
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.message=Erişim engellendi
|
||||||
hub.unauthorized.description=Cihazınıza henüz bu kasaya erişim yetkisi verilmedi. Kasa sahibinden yetkilendirmesini isteyin.
|
hub.unauthorized.description=Cihazınıza henüz bu kasaya erişim yetkisi verilmedi. Kasa sahibinden yetkilendirmesini isteyin.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Lisans aşıldı
|
hub.invalidLicense.message=Hub Lisansı geçersiz
|
||||||
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.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
|
# Lock
|
||||||
## Force
|
## 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)
|
preferences.interface.showTrayIcon=Sistem tepsisi simgesini göster (Yeniden başlatma gerekir)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=Sanal Sürücü
|
preferences.volume=Sanal Sürücü
|
||||||
|
preferences.volume.type=Birim Türü (yeniden başlatma gerektirir)
|
||||||
preferences.volume.type.automatic=Otomatik
|
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
|
## Updates
|
||||||
preferences.updates=Güncellemeler
|
preferences.updates=Güncellemeler
|
||||||
preferences.updates.currentVersion=Mevcut Sürüm: %s
|
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.unlockedStatus=KİLİDİ AÇIK
|
||||||
main.vaultDetail.accessLocation=Kasa içeriğinize buradan erişilebilir:
|
main.vaultDetail.accessLocation=Kasa içeriğinize buradan erişilebilir:
|
||||||
main.vaultDetail.revealBtn=Sürücüyü Göster
|
main.vaultDetail.revealBtn=Sürücüyü Göster
|
||||||
|
main.vaultDetail.copyUri=Linki kopyala
|
||||||
main.vaultDetail.lockBtn=Kilitle
|
main.vaultDetail.lockBtn=Kilitle
|
||||||
main.vaultDetail.bytesPerSecondRead=Okuma:
|
main.vaultDetail.bytesPerSecondRead=Okuma:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Yazma:
|
main.vaultDetail.bytesPerSecondWritten=Yazma:
|
||||||
main.vaultDetail.throughput.idle=boşta
|
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.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Kasa İstatistikleri
|
main.vaultDetail.stats=Kasa İstatistikleri
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Şifrelenmiş Dosyayı Bul
|
main.vaultDetail.locateEncryptedFileBtn=Şifrelenmiş Dosyayı Bul
|
||||||
@@ -401,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=Sağlık Kontrolünü Başlat
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=Bağlantı
|
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.readonly=Salt-Okunur
|
||||||
vaultOptions.mount.customMountFlags=Özel Bağlantı Parametreleri
|
vaultOptions.mount.customMountFlags=Özel Bağlantı Parametreleri
|
||||||
vaultOptions.mount.winDriveLetterOccupied=meşgul
|
vaultOptions.mount.winDriveLetterOccupied=meşgul
|
||||||
vaultOptions.mount.mountPoint=Bağlantı Noktası
|
vaultOptions.mount.mountPoint=Bağlantı Noktası
|
||||||
vaultOptions.mount.mountPoint.auto=Otomatik uygun yer bul
|
vaultOptions.mount.mountPoint.auto=Otomatik uygun yer bul
|
||||||
vaultOptions.mount.mountPoint.driveLetter=Bir sürücü harfi kullan
|
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.directoryPickerButton=Seç…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=Dizin seçin
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=Şifre
|
vaultOptions.masterkey=Şifre
|
||||||
vaultOptions.masterkey.changePasswordBtn=Şifreyi Değiştir
|
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
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Şifreyi Sıfırla
|
recoveryKey.recover.title=Şifreyi Sıfırla
|
||||||
recoveryKey.recover.prompt="%s" için kurtarma anahtarınızı girin:
|
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
|
recoveryKey.printout.heading=Cryptomator Kurtarma Anahtarı\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Sıfırla
|
recoveryKey.recover.resetBtn=Sıfırla
|
||||||
|
|||||||
@@ -146,9 +146,6 @@ hub.registerFailed.description=Виникла помилка у процесі
|
|||||||
hub.unauthorized.message=У доступі відмовлено
|
hub.unauthorized.message=У доступі відмовлено
|
||||||
hub.unauthorized.description=Ваш пристрій ще не має прав доступу до цього vault. Попросіть власника vault надати їх.
|
hub.unauthorized.description=Ваш пристрій ще не має прав доступу до цього vault. Попросіть власника vault надати їх.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=Кількість користувачів перевищено
|
|
||||||
hub.licenseExceeded.description=Cryptomator Hub надав доступ більшій кількості користувачів, ніж дозволяє ліцензія. Будь ласка, зверніться до адміністратора вашого Hub, щоб покращити ліцензію або адміністратора vault, щоб видалити користувачів з vaults.
|
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -268,7 +265,6 @@ main.vaultDetail.lockBtn=Заблокувати
|
|||||||
main.vaultDetail.bytesPerSecondRead=Зчитування:
|
main.vaultDetail.bytesPerSecondRead=Зчитування:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Запис:
|
main.vaultDetail.bytesPerSecondWritten=Запис:
|
||||||
main.vaultDetail.throughput.idle=простій
|
main.vaultDetail.throughput.idle=простій
|
||||||
main.vaultDetail.throughput.kbps=%.1f КіБ/c
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f МіБ/c
|
main.vaultDetail.throughput.mbps=%.1f МіБ/c
|
||||||
main.vaultDetail.stats=Статистика Vault
|
main.vaultDetail.stats=Статистика Vault
|
||||||
main.vaultDetail.locateEncryptedFileBtn=Знайти Зашифрований Файл
|
main.vaultDetail.locateEncryptedFileBtn=Знайти Зашифрований Файл
|
||||||
|
|||||||
@@ -145,7 +145,6 @@ hub.unauthorized.message=Truy cập bị từ chối
|
|||||||
hub.unauthorized.description=Thiết bị của bạn chưa được phép truy cập vault này. Yêu cầu chủ sở hữu cấp phép.
|
hub.unauthorized.description=Thiết bị của bạn chưa được phép truy cập vault này. Yêu cầu chủ sở hữu cấp phép.
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=Khóa thất bại
|
lock.forced.message=Khóa thất bại
|
||||||
@@ -250,27 +249,21 @@ stats.title=Thống kê về %s
|
|||||||
stats.cacheHitRate=Tỷ lệ truy cập bộ nhớ cache
|
stats.cacheHitRate=Tỷ lệ truy cập bộ nhớ cache
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=Đọc: không có
|
stats.read.throughput.idle=Đọc: không có
|
||||||
stats.read.throughput.kibs=Đọc: %.2f kiB/s
|
|
||||||
stats.read.throughput.mibs=Đọc: %.2f MiB/s
|
stats.read.throughput.mibs=Đọc: %.2f MiB/s
|
||||||
stats.read.total.data.none=Dữ liệu đã đọc: -
|
stats.read.total.data.none=Dữ liệu đã đọc: -
|
||||||
stats.read.total.data.kib=Dữ liệu đã đọc: %.1f kiB
|
|
||||||
stats.read.total.data.mib=Dữ liệu đã đọc: %.1f MiB
|
stats.read.total.data.mib=Dữ liệu đã đọc: %.1f MiB
|
||||||
stats.read.total.data.gib=Dữ liệu đã đọc: %.1f GiB
|
stats.read.total.data.gib=Dữ liệu đã đọc: %.1f GiB
|
||||||
stats.decr.total.data.none=Dữ liệu được giải mã: -
|
stats.decr.total.data.none=Dữ liệu được giải mã: -
|
||||||
stats.decr.total.data.kib=Dữ liệu được giải mã: %.1f kiB
|
|
||||||
stats.decr.total.data.mib=Dữ liệu được giải mã: %.1f MiB
|
stats.decr.total.data.mib=Dữ liệu được giải mã: %.1f MiB
|
||||||
stats.decr.total.data.gib=Dữ liệu được giải mã: %.1f GiB
|
stats.decr.total.data.gib=Dữ liệu được giải mã: %.1f GiB
|
||||||
stats.read.accessCount=Tổng đọc: %d
|
stats.read.accessCount=Tổng đọc: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=Ghi: tạm ngưng
|
stats.write.throughput.idle=Ghi: tạm ngưng
|
||||||
stats.write.throughput.kibs=Ghi: %.2f kiB/s
|
|
||||||
stats.write.throughput.mibs=Ghi: %.2f MiB/s
|
stats.write.throughput.mibs=Ghi: %.2f MiB/s
|
||||||
stats.write.total.data.none=Dữ liệu đã ghi: -
|
stats.write.total.data.none=Dữ liệu đã ghi: -
|
||||||
stats.write.total.data.kib=Dữ liệu đã ghi: %.1f kiB
|
|
||||||
stats.write.total.data.mib=Dữ liệu đã ghi: %.1f MiB
|
stats.write.total.data.mib=Dữ liệu đã ghi: %.1f MiB
|
||||||
stats.write.total.data.gib=Dữ liệu đã ghi: %.1f GiB
|
stats.write.total.data.gib=Dữ liệu đã ghi: %.1f GiB
|
||||||
stats.encr.total.data.none=Dữ liệu được mã hóa: -
|
stats.encr.total.data.none=Dữ liệu được mã hóa: -
|
||||||
stats.encr.total.data.kib=Dữ liệu được mã hóa: %.1f kiB
|
|
||||||
stats.encr.total.data.mib=Dữ liệu được mã hóa: %.1f MiB
|
stats.encr.total.data.mib=Dữ liệu được mã hóa: %.1f MiB
|
||||||
stats.encr.total.data.gib=Dữ liệu được mã hóa: %.1f GiB
|
stats.encr.total.data.gib=Dữ liệu được mã hóa: %.1f GiB
|
||||||
stats.write.accessCount=Tổng ghi: %d
|
stats.write.accessCount=Tổng ghi: %d
|
||||||
@@ -310,7 +303,6 @@ main.vaultDetail.lockBtn=Khoá
|
|||||||
main.vaultDetail.bytesPerSecondRead=Đọc:
|
main.vaultDetail.bytesPerSecondRead=Đọc:
|
||||||
main.vaultDetail.bytesPerSecondWritten=Ghi:
|
main.vaultDetail.bytesPerSecondWritten=Ghi:
|
||||||
main.vaultDetail.throughput.idle=chờ
|
main.vaultDetail.throughput.idle=chờ
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=Thống kê Vault
|
main.vaultDetail.stats=Thống kê Vault
|
||||||
### Missing
|
### Missing
|
||||||
@@ -375,7 +367,7 @@ recoveryKey.display.StorageHints=Giữ ở một nơi rất an toàn, ví dụ:\
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=Đặt lại Mật khẩu
|
recoveryKey.recover.title=Đặt lại Mật khẩu
|
||||||
recoveryKey.recover.prompt=Nhập khóa khôi phục của bạn cho "%s":
|
recoveryKey.recover.prompt=Nhập khóa khôi phục của bạn cho "%s":
|
||||||
recoveryKey.recover.validKey=Đây là khóa khôi phục hợp lệ
|
recoveryKey.recover.correctKey=Đây là khóa khôi phục hợp lệ
|
||||||
recoveryKey.printout.heading=Khóa Khôi phục Cryptomator\n"%s"\n
|
recoveryKey.printout.heading=Khóa Khôi phục Cryptomator\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=Đặt lại
|
recoveryKey.recover.resetBtn=Đặt lại
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ generic.button.next=下一步
|
|||||||
generic.button.print=打印
|
generic.button.print=打印
|
||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=错误 %s
|
error.message=发生错误
|
||||||
error.description=糟糕!Cryptomator 未料到会发生这种情况。您可以查找该错误的现有解决方案;或者,如果是新错误,请随时向我们报告。
|
error.description=糟糕!Cryptomator 未料到会发生这种情况。您可以查找该错误的现有解决方案;或者,如果是新错误,请随时向我们报告。
|
||||||
error.hyperlink.lookup=查找该错误
|
error.hyperlink.lookup=查找该错误
|
||||||
error.hyperlink.report=报告该错误
|
error.hyperlink.report=报告该错误
|
||||||
@@ -61,7 +61,7 @@ addvaultwizard.new.validCharacters.numbers=位数
|
|||||||
addvaultwizard.new.validCharacters.dashes=连字符 (%s) 或下划线 (%s)
|
addvaultwizard.new.validCharacters.dashes=连字符 (%s) 或下划线 (%s)
|
||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=创建保险库
|
addvaultwizard.new.createVaultBtn=创建保险库
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice=如果没有密码,您将无法访问您的数据。您想要一个恢复密钥来以防您丢失密码吗?
|
addvaultwizard.new.generateRecoveryKeyChoice=如果丢失密码,您将无法访问您的数据。您想要创建一个恢复密钥以防您丢失密码吗?
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=好的,有备无患
|
addvaultwizard.new.generateRecoveryKeyChoice.yes=好的,有备无患
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.no=不,谢谢。我不会丢失密码的
|
addvaultwizard.new.generateRecoveryKeyChoice.no=不,谢谢。我不会丢失密码的
|
||||||
### Information
|
### Information
|
||||||
@@ -72,9 +72,9 @@ addvault.new.readme.storageLocation.3=请勿
|
|||||||
addvault.new.readme.storageLocation.4=• 更改此目录内的任何文件或者
|
addvault.new.readme.storageLocation.4=• 更改此目录内的任何文件或者
|
||||||
addvault.new.readme.storageLocation.5=• 将任何文件粘贴到此目录内以进行加密
|
addvault.new.readme.storageLocation.5=• 将任何文件粘贴到此目录内以进行加密
|
||||||
addvault.new.readme.storageLocation.6=如果你想要加密文件并查看保险库的内容,请执行以下操作:
|
addvault.new.readme.storageLocation.6=如果你想要加密文件并查看保险库的内容,请执行以下操作:
|
||||||
addvault.new.readme.storageLocation.7=1. 将此保险库添加到Cryptomator
|
addvault.new.readme.storageLocation.7=1. 将此保险库添加到Cryptomator;
|
||||||
addvault.new.readme.storageLocation.8=2. 在Cryptomator中解锁保险库
|
addvault.new.readme.storageLocation.8=2. 在Cryptomator中解锁保险库;
|
||||||
addvault.new.readme.storageLocation.9=3. 通过点击“显示”按钮打开访问路径
|
addvault.new.readme.storageLocation.9=3. 通过点击“显示”按钮打开访问路径。
|
||||||
addvault.new.readme.storageLocation.10=如果您需要帮助,请阅读文档: %s
|
addvault.new.readme.storageLocation.10=如果您需要帮助,请阅读文档: %s
|
||||||
addvault.new.readme.accessLocation.fileName=欢迎.rtf
|
addvault.new.readme.accessLocation.fileName=欢迎.rtf
|
||||||
addvault.new.readme.accessLocation.1=🔐️ 加密卷 🔐️
|
addvault.new.readme.accessLocation.1=🔐️ 加密卷 🔐️
|
||||||
@@ -140,33 +140,32 @@ hub.receive.message=正在处理响应…
|
|||||||
hub.receive.description=Cryptomator 正在接收和处理来自 Hub 的响应,请稍等
|
hub.receive.description=Cryptomator 正在接收和处理来自 Hub 的响应,请稍等
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=设备名称(必填)
|
hub.register.message=设备名称(必填)
|
||||||
hub.register.description=这似乎是设备的首次 Hub 访问。为了识别它以进行访问授权,您需要命名此设备
|
hub.register.description=这似乎是设备的首次 Hub 访问。为了识别它以进行访问授权,您需要命名此设备。
|
||||||
hub.register.nameLabel=设备名称
|
hub.register.nameLabel=设备名称
|
||||||
hub.register.occupiedMsg=名称已被占用
|
hub.register.occupiedMsg=名称已被占用
|
||||||
hub.register.registerBtn=确认
|
hub.register.registerBtn=确定
|
||||||
### Registration Success
|
### Registration Success
|
||||||
hub.registerSuccess.message=设备命名成功
|
hub.registerSuccess.message=设备命名成功
|
||||||
hub.registerSuccess.description=要访问保险库,设备需得到保险库所有者的授权
|
hub.registerSuccess.description=要访问保险库,设备需得到保险库所有者的授权。
|
||||||
### Registration Failed
|
### Registration Failed
|
||||||
hub.registerFailed.message=设备命名失败
|
hub.registerFailed.message=设备命名失败
|
||||||
hub.registerFailed.description=命名过程中出现错误,详情请查看应用程序日志
|
hub.registerFailed.description=命名过程中出现错误,详情请查看应用程序日志。
|
||||||
### Unauthorized
|
### Unauthorized
|
||||||
hub.unauthorized.message=拒绝访问
|
hub.unauthorized.message=拒绝访问
|
||||||
hub.unauthorized.description=您的设备尚未授权访问此保险库,请联系保险库所有者
|
hub.unauthorized.description=您的设备尚未授权访问此保险库,请联系保险库所有者,
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=许可证已逾期
|
hub.invalidLicense.message=Hub 许可证无效
|
||||||
hub.licenseExceeded.description=Cryptomator Hub 允许访问的用户数量超过其许可证允许的数量,请联系您的 Hub 管理员升级许可证或联系保险库管理员删除用户
|
hub.invalidLicense.description=此 Cryptomator Hub 实例许可证无效,请联系Hub管理员升级或者续订许可证。
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
lock.forced.message=锁定失败
|
lock.forced.message=锁定失败
|
||||||
lock.forced.description=锁定 "%s" 被挂起的操作或使用中的文件中断。您可以强制锁定此保险库,不过请注意打断 I/O 可能导致未保存的数据丢失
|
lock.forced.description=锁定 "%s" 因进行中的操作或已打开的文件而被阻止。您可以强制锁定此保险库,不过请注意中断读写可能导致未保存的数据丢失
|
||||||
lock.forced.retryBtn=重试
|
lock.forced.retryBtn=重试
|
||||||
lock.forced.forceBtn=强制锁定
|
lock.forced.forceBtn=强制锁定
|
||||||
## Failure
|
## Failure
|
||||||
lock.fail.message=锁定保险库失败
|
lock.fail.message=锁定保险库失败
|
||||||
lock.fail.description=保险库 "%s" 无法锁定。请确保在其他地方保存未保存的工作,以及重要的 "读/写" 操作已完成。为了顺利关闭保险库,请查杀 Cryptomator 进程
|
lock.fail.description=保险库 "%s" 无法锁定。请确保已经保存其他地方未保存的工作,以及重要的读写操作已完成。为了顺利关闭保险库,请终止 Cryptomator 进程。
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
migration.title=升级保险库
|
migration.title=升级保险库
|
||||||
@@ -266,17 +265,18 @@ preferences.interface.theme.automatic=自动
|
|||||||
preferences.interface.theme.dark=深色
|
preferences.interface.theme.dark=深色
|
||||||
preferences.interface.theme.light=浅色
|
preferences.interface.theme.light=浅色
|
||||||
preferences.interface.unlockThemes=解锁暗黑模式
|
preferences.interface.unlockThemes=解锁暗黑模式
|
||||||
preferences.interface.language=语言 (需重启)
|
preferences.interface.language=语言(需重启)
|
||||||
preferences.interface.language.auto=系统默认
|
preferences.interface.language.auto=系统默认
|
||||||
preferences.interface.interfaceOrientation=界面方向
|
preferences.interface.interfaceOrientation=界面方向
|
||||||
preferences.interface.interfaceOrientation.ltr=从左到右
|
preferences.interface.interfaceOrientation.ltr=从左到右
|
||||||
preferences.interface.interfaceOrientation.rtl=从右到左
|
preferences.interface.interfaceOrientation.rtl=从右到左
|
||||||
preferences.interface.showMinimizeButton=显示最小化按钮
|
preferences.interface.showMinimizeButton=显示最小化按钮
|
||||||
preferences.interface.showTrayIcon=显示托盘图标 (需重启)
|
preferences.interface.showTrayIcon=显示托盘图标(需重启)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=虚拟磁盘
|
preferences.volume=虚拟磁盘
|
||||||
preferences.volume.type=卷类型(需重启)
|
preferences.volume.type=卷类型(需重启)
|
||||||
preferences.volume.type.automatic=自动
|
preferences.volume.type.automatic=自动
|
||||||
|
preferences.volume.docsTooltip=打开文档以了解有关不同卷类型的更多信息
|
||||||
preferences.volume.tcp.port=TCP 端口
|
preferences.volume.tcp.port=TCP 端口
|
||||||
preferences.volume.supportedFeatures=选定的卷类型支持以下功能:
|
preferences.volume.supportedFeatures=选定的卷类型支持以下功能:
|
||||||
preferences.volume.feature.mountAuto=自动选择挂载点
|
preferences.volume.feature.mountAuto=自动选择挂载点
|
||||||
@@ -292,7 +292,7 @@ preferences.updates.checkNowBtn=立即检查
|
|||||||
preferences.updates.updateAvailable=可更新到版本 %s
|
preferences.updates.updateAvailable=可更新到版本 %s
|
||||||
## Contribution
|
## Contribution
|
||||||
preferences.contribute=支持我们
|
preferences.contribute=支持我们
|
||||||
preferences.contribute.registeredFor=已注册署名 %s 的赞助者证书
|
preferences.contribute.registeredFor=已为 %s 注册支持者证书
|
||||||
preferences.contribute.noCertificate=支持 Cryptomator 并获得一份支持者证书。它类似于许可证密钥,特别之处是提供给使用免费软件的牛人的 ;-)
|
preferences.contribute.noCertificate=支持 Cryptomator 并获得一份支持者证书。它类似于许可证密钥,特别之处是提供给使用免费软件的牛人的 ;-)
|
||||||
preferences.contribute.getCertificate=还没有该证书吗?了解您如何获取
|
preferences.contribute.getCertificate=还没有该证书吗?了解您如何获取
|
||||||
preferences.contribute.promptText=在这里粘贴赞助者证书码
|
preferences.contribute.promptText=在这里粘贴赞助者证书码
|
||||||
@@ -306,27 +306,27 @@ stats.title=%s 统计信息
|
|||||||
stats.cacheHitRate=缓存命中率
|
stats.cacheHitRate=缓存命中率
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=读取:空闲
|
stats.read.throughput.idle=读取:空闲
|
||||||
stats.read.throughput.kibs=读取:%.2f kiB/s
|
stats.read.throughput.kibs=读取:%.2f KiB/s
|
||||||
stats.read.throughput.mibs=读取:%.2f MiB/s
|
stats.read.throughput.mibs=读取:%.2f MiB/秒
|
||||||
stats.read.total.data.none=已读取数据:-
|
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.mib=已读取数据:%.1f MiB
|
||||||
stats.read.total.data.gib=已读取数据:%.1f GiB
|
stats.read.total.data.gib=已读取数据:%.1f GiB
|
||||||
stats.decr.total.data.none=已解密数据:-
|
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.mib=已解密数据:%.1f MiB
|
||||||
stats.decr.total.data.gib=已解密数据:%.1f GiB
|
stats.decr.total.data.gib=已解密数据:%.1f GiB
|
||||||
stats.read.accessCount=读取总数:%d
|
stats.read.accessCount=读取总数:%d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=写入:空闲
|
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.throughput.mibs=写入:%.2f MiB/秒
|
||||||
stats.write.total.data.none=已写入数据: -
|
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.mib=已写入数据:%.1f MiB
|
||||||
stats.write.total.data.gib=已写入数据:%.1f GiB
|
stats.write.total.data.gib=已写入数据:%.1f GiB
|
||||||
stats.encr.total.data.none=已加密数据:-
|
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.mib=已加密数据:%.1f MiB
|
||||||
stats.encr.total.data.gib=已加密数据:%.1f GiB
|
stats.encr.total.data.gib=已加密数据:%.1f GiB
|
||||||
stats.write.accessCount=写入总数:%d
|
stats.write.accessCount=写入总数:%d
|
||||||
@@ -353,7 +353,7 @@ main.vaultlist.contextMenu.reveal=显示驱动器
|
|||||||
main.vaultlist.addVaultBtn=添加保险库
|
main.vaultlist.addVaultBtn=添加保险库
|
||||||
## Vault Detail
|
## Vault Detail
|
||||||
### Welcome
|
### Welcome
|
||||||
main.vaultDetail.welcomeOnboarding=感谢您使用 Cryptomator 来保护您的文件。如果您需要任何帮助,请查看正显示的快速开始指南:
|
main.vaultDetail.welcomeOnboarding=感谢您使用 Cryptomator 来保护您的文件。如果您需要任何帮助,请查看我们的快速开始指南:
|
||||||
### Locked
|
### Locked
|
||||||
main.vaultDetail.lockedStatus=已锁定
|
main.vaultDetail.lockedStatus=已锁定
|
||||||
main.vaultDetail.unlockBtn=解锁…
|
main.vaultDetail.unlockBtn=解锁…
|
||||||
@@ -369,8 +369,8 @@ main.vaultDetail.lockBtn=锁定
|
|||||||
main.vaultDetail.bytesPerSecondRead=读取:
|
main.vaultDetail.bytesPerSecondRead=读取:
|
||||||
main.vaultDetail.bytesPerSecondWritten=写入:
|
main.vaultDetail.bytesPerSecondWritten=写入:
|
||||||
main.vaultDetail.throughput.idle=空闲
|
main.vaultDetail.throughput.idle=空闲
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/秒
|
||||||
main.vaultDetail.stats=保险库统计
|
main.vaultDetail.stats=保险库统计
|
||||||
main.vaultDetail.locateEncryptedFileBtn=找出加密后文件
|
main.vaultDetail.locateEncryptedFileBtn=找出加密后文件
|
||||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=选择保险库中的一个文件来找出已加密文件的位置
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=选择保险库中的一个文件来找出已加密文件的位置
|
||||||
@@ -391,7 +391,7 @@ main.vaultDetail.error.windowTitle=加载保险库时出错
|
|||||||
|
|
||||||
# Wrong File Alert
|
# Wrong File Alert
|
||||||
wrongFileAlert.title=如何加密文件
|
wrongFileAlert.title=如何加密文件
|
||||||
wrongFileAlert.message=您试图要加密这些文件吗?
|
wrongFileAlert.message=您想要加密这些文件吗?
|
||||||
wrongFileAlert.description=为了实现加密,Cryptomator 在系统文件管理器中提供一个卷
|
wrongFileAlert.description=为了实现加密,Cryptomator 在系统文件管理器中提供一个卷
|
||||||
wrongFileAlert.instruction.0=要加密文件,请遵循以下步骤:
|
wrongFileAlert.instruction.0=要加密文件,请遵循以下步骤:
|
||||||
wrongFileAlert.instruction.1=1. 解锁您的保险库;
|
wrongFileAlert.instruction.1=1. 解锁您的保险库;
|
||||||
@@ -405,7 +405,7 @@ vaultOptions.general=常规
|
|||||||
vaultOptions.general.vaultName=保险库名称
|
vaultOptions.general.vaultName=保险库名称
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart1=空闲超时
|
vaultOptions.general.autoLock.lockAfterTimePart1=空闲超时
|
||||||
vaultOptions.general.autoLock.lockAfterTimePart2=分钟后自动锁定
|
vaultOptions.general.autoLock.lockAfterTimePart2=分钟后自动锁定
|
||||||
vaultOptions.general.unlockAfterStartup=启动 Cryptomator 时解锁保险库 (此功能需先勾选保存密码)
|
vaultOptions.general.unlockAfterStartup=启动 Cryptomator 时解锁保险库(此功能需先勾选保存密码)
|
||||||
vaultOptions.general.actionAfterUnlock=解锁成功后的操作
|
vaultOptions.general.actionAfterUnlock=解锁成功后的操作
|
||||||
vaultOptions.general.actionAfterUnlock.ignore=什么也不做
|
vaultOptions.general.actionAfterUnlock.ignore=什么也不做
|
||||||
vaultOptions.general.actionAfterUnlock.reveal=显示驱动器
|
vaultOptions.general.actionAfterUnlock.reveal=显示驱动器
|
||||||
@@ -429,7 +429,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=选择目录
|
|||||||
vaultOptions.masterkey=密码
|
vaultOptions.masterkey=密码
|
||||||
vaultOptions.masterkey.changePasswordBtn=更改密码
|
vaultOptions.masterkey.changePasswordBtn=更改密码
|
||||||
vaultOptions.masterkey.forgetSavedPasswordBtn=忘记保存的密码
|
vaultOptions.masterkey.forgetSavedPasswordBtn=忘记保存的密码
|
||||||
vaultOptions.masterkey.recoveryKeyExplanation=忘记密码时,恢复密钥是你恢复保险库访问权限的唯一方式!!!
|
vaultOptions.masterkey.recoveryKeyExplanation=忘记密码时,恢复密钥是你恢复保险库访问权限的唯一方式!
|
||||||
vaultOptions.masterkey.showRecoveryKeyBtn=显示恢复密钥
|
vaultOptions.masterkey.showRecoveryKeyBtn=显示恢复密钥
|
||||||
vaultOptions.masterkey.recoverPasswordBtn=重置密码
|
vaultOptions.masterkey.recoverPasswordBtn=重置密码
|
||||||
|
|
||||||
@@ -440,12 +440,14 @@ recoveryKey.display.title=显示恢复密钥
|
|||||||
recoveryKey.create.message=密码是必填的
|
recoveryKey.create.message=密码是必填的
|
||||||
recoveryKey.create.description=输入您的密码以显示"%s"的恢复密钥:
|
recoveryKey.create.description=输入您的密码以显示"%s"的恢复密钥:
|
||||||
recoveryKey.display.description=下面的恢复密钥可用于恢复对"%s"的访问:
|
recoveryKey.display.description=下面的恢复密钥可用于恢复对"%s"的访问:
|
||||||
recoveryKey.display.StorageHints=保存它到非常安全的某处,例如:\n • 使用密码管理器来保存\n • 将其保存在USB闪存盘\n • 打印在纸上
|
recoveryKey.display.StorageHints=将它保存到非常安全的地方,例如:\n • 使用密码管理器来保存\n • 将其保存在U盘上\n • 在纸上打印
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=重置密码
|
recoveryKey.recover.title=重置密码
|
||||||
recoveryKey.recover.prompt=输入 "%s" 的恢复密钥:
|
recoveryKey.recover.prompt=输入 "%s" 的恢复密钥:
|
||||||
recoveryKey.recover.validKey=这是一个有效的恢复密钥
|
recoveryKey.recover.correctKey=这是正确的恢复密钥
|
||||||
|
recoveryKey.recover.wrongKey=此恢复密钥属于另一个保管库
|
||||||
|
recoveryKey.recover.invalidKey=此恢复密钥无效
|
||||||
recoveryKey.printout.heading=Cryptomator 恢复密钥\n"%s"\n
|
recoveryKey.printout.heading=Cryptomator 恢复密钥\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=重置
|
recoveryKey.recover.resetBtn=重置
|
||||||
@@ -468,10 +470,10 @@ passwordStrength.messageLabel.4=非常强
|
|||||||
# Quit
|
# Quit
|
||||||
quit.title=退出程序
|
quit.title=退出程序
|
||||||
quit.message=存在已解锁的保险库
|
quit.message=存在已解锁的保险库
|
||||||
quit.description=请确认退出动作,Cryptomator 将会温和地锁定所有已解锁的保险库,以防止数据丢失
|
quit.description=请确认退出动作,Cryptomator 将会适时地锁定所有已解锁的保险库,以防止数据丢失
|
||||||
quit.lockAndQuitBtn=锁定并退出
|
quit.lockAndQuitBtn=锁定并退出
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
quit.forced.message=无法锁定某些保险库
|
quit.forced.message=无法锁定某些保险库
|
||||||
quit.forced.description=锁定保险库被挂起的操作或使用中的文件中断。您可以强制锁定剩余的保险库,不过请注意打断 I/O 可能导致未保存的数据丢失
|
quit.forced.description=锁定保险库因进行中的操作或已打开的文件被阻止。您可以强制锁定剩余的保险库,不过请注意中断读写可能导致未保存的数据丢失
|
||||||
quit.forced.forceAndQuitBtn=强制并退出
|
quit.forced.forceAndQuitBtn=强制并退出
|
||||||
@@ -123,7 +123,14 @@ unlock.success.description=成功解鎖「%s」!現在可以存取你的加密
|
|||||||
unlock.success.rememberChoice=記得這個決定,不要再詢問
|
unlock.success.rememberChoice=記得這個決定,不要再詢問
|
||||||
unlock.success.revealBtn=展示磁碟
|
unlock.success.revealBtn=展示磁碟
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=無法掛載加密庫於此自定路徑
|
||||||
|
unlock.error.customPath.description.notSupported=若要繼續使用自定路徑,請在設定選取支援此自定路徑的空間/加密空間類型;或者,在加密庫選項中選擇一個受支援的掛載點。
|
||||||
|
unlock.error.customPath.description.notExists=自定路徑不存在。請在本機文件系統指定另一路徑或在加密庫選項中變更。
|
||||||
|
unlock.error.customPath.description.generic=已為加密庫設定了自定路徑,但是運作時出現錯誤:%s
|
||||||
## Hub
|
## Hub
|
||||||
|
hub.noKeychain.message=無法訪問設備密鑰
|
||||||
|
hub.noKeychain.description=為了解鎖 Hub 加密檔案庫需要一個裝置密鑰,該密鑰已被安全地保管在鑰匙串中。為了繼續進行,請啟用「%s」並在偏好設定中選擇一個鑰匙串。
|
||||||
|
hub.noKeychain.openBtn=開啟偏好設定
|
||||||
### Waiting
|
### Waiting
|
||||||
hub.auth.message=等待認證中…
|
hub.auth.message=等待認證中…
|
||||||
hub.auth.description=您將被自動傳送到登入頁面。
|
hub.auth.description=您將被自動傳送到登入頁面。
|
||||||
@@ -147,9 +154,8 @@ hub.registerFailed.description=命名過程中引發錯誤。有關詳細信息
|
|||||||
hub.unauthorized.message=拒絕存取
|
hub.unauthorized.message=拒絕存取
|
||||||
hub.unauthorized.description=您的設備權限尚未允許存取加密庫,請聯絡加密庫擁有者
|
hub.unauthorized.description=您的設備權限尚未允許存取加密庫,請聯絡加密庫擁有者
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=软件許可已滿額
|
hub.invalidLicense.message=Hub 授權無效
|
||||||
hub.licenseExceeded.description=Cryptomator Hub 的被授予授權的使用者的數量,多於許可證容許的使用者數量。 請聯絡 Cryptomator Hub 管理員升級授權,或聯絡加密庫管理員從加密庫移除使用者。
|
hub.invalidLicense.description=此 Cryptomator Hub 實例授權無效,請聯繫管理員升級或續訂授權。
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -165,6 +171,11 @@ lock.fail.description=加密庫「%s」無法被鎖定。請確保未存檔的
|
|||||||
migration.title=升級加密庫
|
migration.title=升級加密庫
|
||||||
## Start
|
## Start
|
||||||
migration.start.header=升級加密庫
|
migration.start.header=升級加密庫
|
||||||
|
migration.start.text=若要開啟%s加密庫,需要將加密庫升級至新的格式。在此之前,您需要先了解以下的事項:
|
||||||
|
migration.start.remarkUndone=此升級操作無法撤銷或回復。
|
||||||
|
migration.start.remarkVersions=舊版 Cryptomator 將無法開啟已升級的加密庫。
|
||||||
|
migration.start.remarkCanRun=請確認所有可存取此加密檔案庫的裝置都可以運行這個版本的Cryptomator。
|
||||||
|
migration.start.remarkSynced=您必須確保您的檔案庫在升級之前已經完整地同步到此設備及您的其他設備。
|
||||||
migration.start.confirm=我已閱讀並理解上述資訊
|
migration.start.confirm=我已閱讀並理解上述資訊
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword=輸入「%s」的密碼
|
migration.run.enterPassword=輸入「%s」的密碼
|
||||||
@@ -213,6 +224,8 @@ health.check.detail.checkFinished=檢查順利完成。
|
|||||||
health.check.detail.checkFinishedAndFound=檢查結束,請查看結果。
|
health.check.detail.checkFinishedAndFound=檢查結束,請查看結果。
|
||||||
health.check.detail.checkFailed=檢查發生錯誤並意外退出。
|
health.check.detail.checkFailed=檢查發生錯誤並意外退出。
|
||||||
health.check.detail.checkCancelled=檢查被取消。
|
health.check.detail.checkCancelled=檢查被取消。
|
||||||
|
health.check.detail.listFilters.label=過濾
|
||||||
|
health.check.detail.fixAllSpecificBtn=修復所有類型
|
||||||
health.check.exportBtn=匯出報告
|
health.check.exportBtn=匯出報告
|
||||||
## Result view
|
## Result view
|
||||||
health.result.severityFilter.all=危良程度 - 全部
|
health.result.severityFilter.all=危良程度 - 全部
|
||||||
@@ -261,7 +274,16 @@ preferences.interface.showMinimizeButton=顯示最小化按鈕
|
|||||||
preferences.interface.showTrayIcon=顯示系統工作列圖示 (需重新啟動)
|
preferences.interface.showTrayIcon=顯示系統工作列圖示 (需重新啟動)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=虛擬磁碟
|
preferences.volume=虛擬磁碟
|
||||||
|
preferences.volume.type=磁區類別(須重啟)
|
||||||
preferences.volume.type.automatic=自動
|
preferences.volume.type.automatic=自動
|
||||||
|
preferences.volume.docsTooltip=閱讀文檔以了解各加密空間類型。
|
||||||
|
preferences.volume.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
|
## Updates
|
||||||
preferences.updates=更新
|
preferences.updates=更新
|
||||||
preferences.updates.currentVersion=目前版本:%s
|
preferences.updates.currentVersion=目前版本:%s
|
||||||
@@ -284,27 +306,27 @@ stats.title=%s 的統計數據
|
|||||||
stats.cacheHitRate=快取命中率
|
stats.cacheHitRate=快取命中率
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=讀取:閒置
|
stats.read.throughput.idle=讀取:閒置
|
||||||
stats.read.throughput.kibs=讀取: %.2f kiB/s
|
stats.read.throughput.kibs=讀取: %.2f KiB/s
|
||||||
stats.read.throughput.mibs=讀取: %.2f MiB/s
|
stats.read.throughput.mibs=讀取: %.2f MiB/s
|
||||||
stats.read.total.data.none=資料讀取: -
|
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.mib=資料讀取: %.1f MiB
|
||||||
stats.read.total.data.gib=資料讀取: %.1f GiB
|
stats.read.total.data.gib=資料讀取: %.1f GiB
|
||||||
stats.decr.total.data.none=資料解密: -
|
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.mib=資料解密: %.1f MiB
|
||||||
stats.decr.total.data.gib=資料解密: %.1f GiB
|
stats.decr.total.data.gib=資料解密: %.1f GiB
|
||||||
stats.read.accessCount=總讀取: %d
|
stats.read.accessCount=總讀取: %d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=寫入:閒置
|
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.throughput.mibs=寫入:%.2f MiB/s
|
||||||
stats.write.total.data.none=資料寫入:-
|
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.mib=資料寫入:%.1f MiB
|
||||||
stats.write.total.data.gib=資料寫入:%.1f GiB
|
stats.write.total.data.gib=資料寫入:%.1f GiB
|
||||||
stats.encr.total.data.none=資料加密: -
|
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.mib=資料加密: %.1f MiB
|
||||||
stats.encr.total.data.gib=資料加密: %.1f GiB
|
stats.encr.total.data.gib=資料加密: %.1f GiB
|
||||||
stats.write.accessCount=總寫入: %d
|
stats.write.accessCount=總寫入: %d
|
||||||
@@ -342,13 +364,18 @@ main.vaultDetail.passwordSavedInKeychain=密碼已儲存
|
|||||||
main.vaultDetail.unlockedStatus=已解鎖
|
main.vaultDetail.unlockedStatus=已解鎖
|
||||||
main.vaultDetail.accessLocation=加密庫的內容可以在這裏存取
|
main.vaultDetail.accessLocation=加密庫的內容可以在這裏存取
|
||||||
main.vaultDetail.revealBtn=展示磁碟
|
main.vaultDetail.revealBtn=展示磁碟
|
||||||
|
main.vaultDetail.copyUri=複製 URI
|
||||||
main.vaultDetail.lockBtn=鎖定
|
main.vaultDetail.lockBtn=鎖定
|
||||||
main.vaultDetail.bytesPerSecondRead=讀取:
|
main.vaultDetail.bytesPerSecondRead=讀取:
|
||||||
main.vaultDetail.bytesPerSecondWritten=寫入:
|
main.vaultDetail.bytesPerSecondWritten=寫入:
|
||||||
main.vaultDetail.throughput.idle=閒置
|
main.vaultDetail.throughput.idle=閒置
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=加密庫統計數據
|
main.vaultDetail.stats=加密庫統計數據
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn=顯示加密檔案路徑
|
||||||
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=選擇要顯示對應加密檔案路徑的加密檔案庫檔案
|
||||||
|
main.vaultDetail.encryptedPathsCopied=路徑已複製到剪貼簿
|
||||||
|
main.vaultDetail.filePickerTitle=從加密檔案庫中選擇檔案
|
||||||
### Missing
|
### Missing
|
||||||
main.vaultDetail.missing.info=Cryptomator 無法在指定位置找到加密庫。
|
main.vaultDetail.missing.info=Cryptomator 無法在指定位置找到加密庫。
|
||||||
main.vaultDetail.missing.recheck=重新檢查
|
main.vaultDetail.missing.recheck=重新檢查
|
||||||
@@ -387,13 +414,17 @@ vaultOptions.general.startHealthCheckBtn=開始狀態檢查
|
|||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=掛載
|
vaultOptions.mount=掛載
|
||||||
|
vaultOptions.mount.info=選項會依據掛載磁區類別而變更。
|
||||||
|
vaultOptions.mount.linkToPreferences=打開虛擬磁碟偏好設定
|
||||||
vaultOptions.mount.readonly=唯讀
|
vaultOptions.mount.readonly=唯讀
|
||||||
vaultOptions.mount.customMountFlags=自訂掛載參數
|
vaultOptions.mount.customMountFlags=自訂掛載參數
|
||||||
vaultOptions.mount.winDriveLetterOccupied=已使用
|
vaultOptions.mount.winDriveLetterOccupied=已使用
|
||||||
vaultOptions.mount.mountPoint=掛載點
|
vaultOptions.mount.mountPoint=掛載點
|
||||||
vaultOptions.mount.mountPoint.auto=自動選取合適的位置
|
vaultOptions.mount.mountPoint.auto=自動選取合適的位置
|
||||||
vaultOptions.mount.mountPoint.driveLetter=使用指定的磁碟代號
|
vaultOptions.mount.mountPoint.driveLetter=使用指定的磁碟代號
|
||||||
|
vaultOptions.mount.mountPoint.custom=使用選擇的路徑
|
||||||
vaultOptions.mount.mountPoint.directoryPickerButton=選取…
|
vaultOptions.mount.mountPoint.directoryPickerButton=選取…
|
||||||
|
vaultOptions.mount.mountPoint.directoryPickerTitle=選擇一個路徑
|
||||||
## Master Key
|
## Master Key
|
||||||
vaultOptions.masterkey=密碼
|
vaultOptions.masterkey=密碼
|
||||||
vaultOptions.masterkey.changePasswordBtn=更改密碼
|
vaultOptions.masterkey.changePasswordBtn=更改密碼
|
||||||
@@ -414,7 +445,9 @@ recoveryKey.display.StorageHints=請把它保存在非常安全的地方,例
|
|||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=重設密碼
|
recoveryKey.recover.title=重設密碼
|
||||||
recoveryKey.recover.prompt=輸入「%s」的復原金鑰:
|
recoveryKey.recover.prompt=輸入「%s」的復原金鑰:
|
||||||
recoveryKey.recover.validKey=這是有效的復原金鑰
|
recoveryKey.recover.correctKey=這是有效的復原金鑰
|
||||||
|
recoveryKey.recover.wrongKey=此復原金鑰屬於另一個加密庫
|
||||||
|
recoveryKey.recover.invalidKey=此復原金鑰無效
|
||||||
recoveryKey.printout.heading=Cryptomator 復原金鑰\n「%s」\n
|
recoveryKey.printout.heading=Cryptomator 復原金鑰\n「%s」\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=重設
|
recoveryKey.recover.resetBtn=重設
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ generic.button.apply=套用
|
|||||||
generic.button.back=上一頁
|
generic.button.back=上一頁
|
||||||
generic.button.cancel=取消
|
generic.button.cancel=取消
|
||||||
generic.button.change=修改
|
generic.button.change=修改
|
||||||
generic.button.choose=選取…
|
generic.button.choose=选择...
|
||||||
generic.button.close=關閉
|
generic.button.close=關閉
|
||||||
generic.button.copy=複製
|
generic.button.copy=複製
|
||||||
generic.button.copied=已複製!
|
generic.button.copied=已複製!
|
||||||
@@ -15,9 +15,9 @@ generic.button.next=繼續
|
|||||||
generic.button.print=列印
|
generic.button.print=列印
|
||||||
|
|
||||||
# Error
|
# Error
|
||||||
error.message=錯誤:%s
|
error.message=出現錯誤
|
||||||
error.description=糟糕!Cryptomator 發生了預期外的錯誤。您可以嘗試查找該錯誤的現有解決方案,如果是新錯誤,請隨時向我們報告。
|
error.description=糟糕!Cryptomator 發生了預期外的錯誤。您可以嘗試查找該錯誤的現有解決方案,如果是新錯誤,請隨時向我們報告。
|
||||||
error.hyperlink.lookup=查找該錯誤
|
error.hyperlink.lookup=查找錯誤
|
||||||
error.hyperlink.report=回報錯誤
|
error.hyperlink.report=回報錯誤
|
||||||
error.technicalDetails=詳情:
|
error.technicalDetails=詳情:
|
||||||
|
|
||||||
@@ -62,11 +62,11 @@ addvaultwizard.new.validCharacters.dashes=連字符 (%s) 或下劃線 (%s)
|
|||||||
### Password
|
### Password
|
||||||
addvaultwizard.new.createVaultBtn=新建加密檔案庫
|
addvaultwizard.new.createVaultBtn=新建加密檔案庫
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice=若您遺失密碼將無法存取您的資料。您是否希望建立一組在您遺失密碼時可供復原的金鑰?
|
addvaultwizard.new.generateRecoveryKeyChoice=若您遺失密碼將無法存取您的資料。您是否希望建立一組在您遺失密碼時可供復原的金鑰?
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.yes=是,做好安全措施,以免後悔莫及。
|
addvaultwizard.new.generateRecoveryKeyChoice.yes=好的,有備無患
|
||||||
addvaultwizard.new.generateRecoveryKeyChoice.no=否,不用,我不會丟失密碼
|
addvaultwizard.new.generateRecoveryKeyChoice.no=否,謝謝,我不會丟失密碼
|
||||||
### Information
|
### Information
|
||||||
addvault.new.readme.storageLocation.fileName=重要.rtf
|
addvault.new.readme.storageLocation.fileName=重要.rtf
|
||||||
addvault.new.readme.storageLocation.1=⚠️ 加密檔案庫的檔案 ⚠️
|
addvault.new.readme.storageLocation.1=⚠️ 加密檔案庫文件 ⚠️
|
||||||
addvault.new.readme.storageLocation.2=這是您加密檔案庫儲存的位置。
|
addvault.new.readme.storageLocation.2=這是您加密檔案庫儲存的位置。
|
||||||
addvault.new.readme.storageLocation.3=不要
|
addvault.new.readme.storageLocation.3=不要
|
||||||
addvault.new.readme.storageLocation.4=• 修改這個資料夾中的任何檔案或是
|
addvault.new.readme.storageLocation.4=• 修改這個資料夾中的任何檔案或是
|
||||||
@@ -85,9 +85,9 @@ addvault.new.readme.accessLocation.4=您可以放心移除這個檔案。
|
|||||||
addvaultwizard.existing.instruction=請選擇現有加密檔案庫中名為「vault.cryptomator」的檔案。如果只有一個名為「masterkey.cryptomator」的檔案,則選擇該檔案。
|
addvaultwizard.existing.instruction=請選擇現有加密檔案庫中名為「vault.cryptomator」的檔案。如果只有一個名為「masterkey.cryptomator」的檔案,則選擇該檔案。
|
||||||
addvaultwizard.existing.chooseBtn=選取…
|
addvaultwizard.existing.chooseBtn=選取…
|
||||||
addvaultwizard.existing.filePickerTitle=選取加密檔案庫的檔案
|
addvaultwizard.existing.filePickerTitle=選取加密檔案庫的檔案
|
||||||
addvaultwizard.existing.filePickerMimeDesc=Cryptomator 加密庫
|
addvaultwizard.existing.filePickerMimeDesc=Cryptomator 加密檔案庫
|
||||||
## Success
|
## Success
|
||||||
addvaultwizard.success.nextStepsInstructions=已加入加密檔案庫「%s」。您需要將這個加密檔案庫解鎖以存取內容,或是您也可以之後再解鎖。
|
addvaultwizard.success.nextStepsInstructions=已加入加密檔案庫 "%s"。您需要將這個加密檔案庫解鎖以存取內容,或是您也可以之後再解鎖。
|
||||||
addvaultwizard.success.unlockNow=立即解鎖
|
addvaultwizard.success.unlockNow=立即解鎖
|
||||||
|
|
||||||
# Remove Vault
|
# Remove Vault
|
||||||
@@ -98,7 +98,7 @@ removeVault.confirmBtn=移除加密檔案庫
|
|||||||
|
|
||||||
# Change Password
|
# Change Password
|
||||||
changepassword.title=變更密碼
|
changepassword.title=變更密碼
|
||||||
changepassword.enterOldPassword=輸入「%s」目前的密碼
|
changepassword.enterOldPassword=輸入 "%s" 目前的密碼
|
||||||
changepassword.finalConfirmation=我明白如果忘記密碼將無法存取資料
|
changepassword.finalConfirmation=我明白如果忘記密碼將無法存取資料
|
||||||
|
|
||||||
# Forget Password
|
# Forget Password
|
||||||
@@ -109,13 +109,13 @@ forgetPassword.confirmBtn=忘記密碼
|
|||||||
|
|
||||||
# Unlock
|
# Unlock
|
||||||
unlock.title=解鎖 %s
|
unlock.title=解鎖 %s
|
||||||
unlock.passwordPrompt=輸入「%s」的密碼:
|
unlock.passwordPrompt=輸入 "%s" 的密碼:
|
||||||
unlock.savePassword=記住密碼
|
unlock.savePassword=記住密碼
|
||||||
unlock.unlockBtn=解鎖
|
unlock.unlockBtn=解鎖
|
||||||
## Select
|
## Select
|
||||||
unlock.chooseMasterkey.message=未找到Masterkey檔案
|
unlock.chooseMasterkey.message=未找到主金鑰文件
|
||||||
unlock.chooseMasterkey.description=無法在其預期位置找到此加密檔案庫的主密鑰檔案。請手動選擇密鑰文件。
|
unlock.chooseMasterkey.description=無法在其預期位置找到此加密檔案庫的主密鑰檔案。請手動選擇密鑰文件。
|
||||||
unlock.chooseMasterkey.filePickerTitle=選擇主金鑰檔案
|
unlock.chooseMasterkey.filePickerTitle=选择主金鑰文件
|
||||||
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 主密鑰
|
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator 主密鑰
|
||||||
## Success
|
## Success
|
||||||
unlock.success.message=解鎖成功
|
unlock.success.message=解鎖成功
|
||||||
@@ -123,6 +123,10 @@ unlock.success.description=成功解鎖「%s」!您現在可以存取您的加
|
|||||||
unlock.success.rememberChoice=記得這個決定,不要再顯示
|
unlock.success.rememberChoice=記得這個決定,不要再顯示
|
||||||
unlock.success.revealBtn=顯示磁碟
|
unlock.success.revealBtn=顯示磁碟
|
||||||
## Failure
|
## Failure
|
||||||
|
unlock.error.customPath.message=無法將檔案庫掛載至自訂路徑
|
||||||
|
unlock.error.customPath.description.notSupported=如果要繼續使用自訂的掛載路徑,必須變更成支援的磁區空間類型,不然就必須使用不同的掛載路徑
|
||||||
|
unlock.error.customPath.description.notExists=自訂的掛載路徑並不存在‧ 請在本機創立該路徑,或者在加密庫選項中更改
|
||||||
|
unlock.error.customPath.description.generic=你選擇使用自訂的路徑來掛載此加密庫,但是掛載失敗,原因: %s
|
||||||
## Hub
|
## Hub
|
||||||
hub.noKeychain.message=無法讀取裝置金鑰
|
hub.noKeychain.message=無法讀取裝置金鑰
|
||||||
hub.noKeychain.description=需要由鑰匙圈保護的裝置金鑰才能解鎖Hub加密檔案庫。請先至偏好設定中啟用「%s」並選擇一組鑰匙圈。
|
hub.noKeychain.description=需要由鑰匙圈保護的裝置金鑰才能解鎖Hub加密檔案庫。請先至偏好設定中啟用「%s」並選擇一組鑰匙圈。
|
||||||
@@ -133,10 +137,10 @@ hub.auth.description=您將自動傳送到登入頁面。
|
|||||||
hub.auth.loginLink=未轉送?點擊這裡打開
|
hub.auth.loginLink=未轉送?點擊這裡打開
|
||||||
### Receive Key
|
### Receive Key
|
||||||
hub.receive.message=處理著回應…
|
hub.receive.message=處理著回應…
|
||||||
hub.receive.description=Cryptomator正在接收並處理來自Hub的回應。 請等待。
|
hub.receive.description=Cryptomator 正在接收並處理來自 Hub 的回應, 請等待。
|
||||||
### Register Device
|
### Register Device
|
||||||
hub.register.message=需要設備名稱
|
hub.register.message=需要設備名稱
|
||||||
hub.register.description=似乎這是第一次Hub訪問此設備。為了識別它以授權讀取,您需要命名此設備。
|
hub.register.description=似乎這是第一次 Hub 訪問此設備。為了辨識它以授權訪問,您需要命名此設備。
|
||||||
hub.register.nameLabel=設備名稱
|
hub.register.nameLabel=設備名稱
|
||||||
hub.register.occupiedMsg=名稱已被使用
|
hub.register.occupiedMsg=名稱已被使用
|
||||||
hub.register.registerBtn=確認
|
hub.register.registerBtn=確認
|
||||||
@@ -150,9 +154,8 @@ hub.registerFailed.description=命名過程中出現錯誤。更多詳情,請
|
|||||||
hub.unauthorized.message=拒絕存取
|
hub.unauthorized.message=拒絕存取
|
||||||
hub.unauthorized.description=您的設備權限尚未允許存取檔案庫,請聯絡檔案庫擁有者
|
hub.unauthorized.description=您的設備權限尚未允許存取檔案庫,請聯絡檔案庫擁有者
|
||||||
### License Exceeded
|
### License Exceeded
|
||||||
hub.licenseExceeded.message=软件許可已滿額
|
hub.invalidLicense.message=Hub 授權無效
|
||||||
hub.licenseExceeded.description=Cryptomator Hub已授權的使用者已超過軟件許可的數量。請聯絡您的Hub管理員升級許可證或聯絡檔案庫管理員移除用戶。
|
hub.invalidLicense.description=此 Cryptomator Hub 實例授權無效,請聯繫管理員升級或續訂授權。
|
||||||
|
|
||||||
|
|
||||||
# Lock
|
# Lock
|
||||||
## Force
|
## Force
|
||||||
@@ -161,7 +164,7 @@ lock.forced.description=仍有未完成的操作或開啟中的檔案以致無
|
|||||||
lock.forced.retryBtn=重試
|
lock.forced.retryBtn=重試
|
||||||
lock.forced.forceBtn=強制鎖定
|
lock.forced.forceBtn=強制鎖定
|
||||||
## Failure
|
## Failure
|
||||||
lock.fail.message=鎖定加密檔案庫失敗。
|
lock.fail.message=鎖定加密檔案庫失敗
|
||||||
lock.fail.description=加密檔案庫 "%s" 無法被鎖定。請確保未存檔的工作已儲存在別的地方以及重要的讀寫工作都已經完成。請強制結束 Cryptomator 以關閉加密檔案庫。
|
lock.fail.description=加密檔案庫 "%s" 無法被鎖定。請確保未存檔的工作已儲存在別的地方以及重要的讀寫工作都已經完成。請強制結束 Cryptomator 以關閉加密檔案庫。
|
||||||
|
|
||||||
# Migration
|
# Migration
|
||||||
@@ -171,11 +174,12 @@ migration.start.header=升級加密檔案庫
|
|||||||
migration.start.text=為了在此新版的Cryptomator裡打開"%s"檔案庫,該檔案庫需要升級到新的格式。在此操作之前,您需要知道以下事項:
|
migration.start.text=為了在此新版的Cryptomator裡打開"%s"檔案庫,該檔案庫需要升級到新的格式。在此操作之前,您需要知道以下事項:
|
||||||
migration.start.remarkUndone=此項升級無法還原。
|
migration.start.remarkUndone=此項升級無法還原。
|
||||||
migration.start.remarkVersions=舊版的Cryptomator無法打開升級後的文库。
|
migration.start.remarkVersions=舊版的Cryptomator無法打開升級後的文库。
|
||||||
|
migration.start.remarkCanRun=請確認所有可存取此加密庫的裝置都可以運行這個版本的Cryptomator.
|
||||||
migration.start.remarkSynced=您必須確保您的檔案庫在升級之前已經完整地同步到此設備及您的其他設備。
|
migration.start.remarkSynced=您必須確保您的檔案庫在升級之前已經完整地同步到此設備及您的其他設備。
|
||||||
migration.start.confirm=我已閱讀並理解上述資訊
|
migration.start.confirm=我已閱讀並理解上述資訊
|
||||||
## Run
|
## Run
|
||||||
migration.run.enterPassword=輸入 "%s" 的密碼
|
migration.run.enterPassword=輸入 "%s" 的密碼
|
||||||
migration.run.startMigrationBtn=升級加密檔案庫
|
migration.run.startMigrationBtn=迁移加密檔案庫
|
||||||
migration.run.progressHint=這可能需要一點時間…
|
migration.run.progressHint=這可能需要一點時間…
|
||||||
## Success
|
## Success
|
||||||
migration.success.nextStepsInstructions=已成功升級 "%s"。\n您現在可以解鎖您的加密檔案庫了。
|
migration.success.nextStepsInstructions=已成功升級 "%s"。\n您現在可以解鎖您的加密檔案庫了。
|
||||||
@@ -196,7 +200,7 @@ migration.impossible.moreInfo=此加密檔案庫仍可被舊版本開啟。如
|
|||||||
## Start
|
## Start
|
||||||
health.title=對於"%s"的健康檢查
|
health.title=對於"%s"的健康檢查
|
||||||
health.intro.header=健康檢查
|
health.intro.header=健康檢查
|
||||||
health.intro.text=運行狀況檢查用於檢測並修復加密檔案庫內部結構中的問題。請記住:
|
health.intro.text=運行狀況檢查包含一系列用於檢測並修復加密檔案庫內部結構中的問題的檢查。請記住:
|
||||||
health.intro.remarkSync=確保所有設備完全同步,這可以解決大部分問題。
|
health.intro.remarkSync=確保所有設備完全同步,這可以解決大部分問題。
|
||||||
health.intro.remarkFix=並非所有問題都可以解決。
|
health.intro.remarkFix=並非所有問題都可以解決。
|
||||||
health.intro.remarkBackup=如果數據已損壞,則只有備份才有幫助。
|
health.intro.remarkBackup=如果數據已損壞,則只有備份才有幫助。
|
||||||
@@ -224,11 +228,16 @@ health.check.detail.listFilters.label=過濾
|
|||||||
health.check.detail.fixAllSpecificBtn=解決全部問題
|
health.check.detail.fixAllSpecificBtn=解決全部問題
|
||||||
health.check.exportBtn=匯出報告
|
health.check.exportBtn=匯出報告
|
||||||
## Result view
|
## Result view
|
||||||
|
health.result.severityFilter.all=過濾等級 - 所有
|
||||||
|
health.result.severityFilter.good=良好
|
||||||
|
health.result.severityFilter.info=訊息
|
||||||
health.result.severityFilter.warn=警告
|
health.result.severityFilter.warn=警告
|
||||||
health.result.severityFilter.crit=狀態嚴重
|
health.result.severityFilter.crit=危急
|
||||||
|
health.result.severityTip.good=程度: 良好\n加密庫結構完整
|
||||||
|
health.result.severityTip.info=程度: 詳細\n加密庫結構完整,建議修復。
|
||||||
health.result.severityTip.warn=嚴重性:警告\n檔案庫結構被破壞,強烈建議修復。
|
health.result.severityTip.warn=嚴重性:警告\n檔案庫結構被破壞,強烈建議修復。
|
||||||
health.result.severityTip.crit=嚴重性:嚴重\n檔案庫結構被破壞,數據已經丟失。
|
health.result.severityTip.crit=嚴重性:嚴重\n檔案庫結構被破壞,數據已經丟失。
|
||||||
health.result.fixStateFilter.all=修復狀態:全部
|
health.result.fixStateFilter.all=修復狀態 - 全部
|
||||||
health.result.fixStateFilter.fixable=可修復
|
health.result.fixStateFilter.fixable=可修復
|
||||||
health.result.fixStateFilter.notFixable=無法修復
|
health.result.fixStateFilter.notFixable=無法修復
|
||||||
health.result.fixStateFilter.fixing=修復中…
|
health.result.fixStateFilter.fixing=修復中…
|
||||||
@@ -258,14 +267,23 @@ preferences.interface.theme.light=亮色
|
|||||||
preferences.interface.unlockThemes=解鎖暗色模式
|
preferences.interface.unlockThemes=解鎖暗色模式
|
||||||
preferences.interface.language=語言 (需要重新啟動)
|
preferences.interface.language=語言 (需要重新啟動)
|
||||||
preferences.interface.language.auto=系統預設
|
preferences.interface.language.auto=系統預設
|
||||||
preferences.interface.interfaceOrientation=界面排版方向
|
preferences.interface.interfaceOrientation=界面方向
|
||||||
preferences.interface.interfaceOrientation.ltr=由左至右
|
preferences.interface.interfaceOrientation.ltr=由左至右
|
||||||
preferences.interface.interfaceOrientation.rtl=由右至左
|
preferences.interface.interfaceOrientation.rtl=由右至左
|
||||||
preferences.interface.showMinimizeButton=顯示最小化按鈕
|
preferences.interface.showMinimizeButton=顯示最小化按鈕
|
||||||
preferences.interface.showTrayIcon=顯示系統工作列圖示 (需要重新啟動)
|
preferences.interface.showTrayIcon=顯示系統工作列圖示 (需要重新啟動)
|
||||||
## Volume
|
## Volume
|
||||||
preferences.volume=虛擬磁碟
|
preferences.volume=虛擬磁碟
|
||||||
preferences.volume.type.automatic=自動
|
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
|
## Updates
|
||||||
preferences.updates=更新
|
preferences.updates=更新
|
||||||
preferences.updates.currentVersion=目前版本:%s
|
preferences.updates.currentVersion=目前版本:%s
|
||||||
@@ -288,27 +306,27 @@ stats.title=%s 統計數據
|
|||||||
stats.cacheHitRate=快取命中率
|
stats.cacheHitRate=快取命中率
|
||||||
## Read
|
## Read
|
||||||
stats.read.throughput.idle=讀取:閒置
|
stats.read.throughput.idle=讀取:閒置
|
||||||
stats.read.throughput.kibs=讀取:%.2f kiB/s
|
stats.read.throughput.kibs=讀取: %.2f KiB/s
|
||||||
stats.read.throughput.mibs=讀取:%.2f MiB/s
|
stats.read.throughput.mibs=讀取:%.2f MiB/s
|
||||||
stats.read.total.data.none=資料讀取:無
|
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.mib=資料讀取:%.1f MiB
|
||||||
stats.read.total.data.gib=資料讀取:%.1f GiB
|
stats.read.total.data.gib=資料讀取:%.1f GiB
|
||||||
stats.decr.total.data.none=資料解密:無
|
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.mib=資料解密:%.1f MiB
|
||||||
stats.decr.total.data.gib=資料解密:%.1f GiB
|
stats.decr.total.data.gib=資料解密:%.1f GiB
|
||||||
stats.read.accessCount=總讀取:%d
|
stats.read.accessCount=總讀取:%d
|
||||||
## Write
|
## Write
|
||||||
stats.write.throughput.idle=寫入:閒置
|
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.throughput.mibs=寫入:%.2f MiB/s
|
||||||
stats.write.total.data.none=已寫入資料:-
|
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.mib=資料寫入:%.1f MiB
|
||||||
stats.write.total.data.gib=資料寫入:%.1f GiB
|
stats.write.total.data.gib=資料寫入:%.1f GiB
|
||||||
stats.encr.total.data.none=資料加密:無
|
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.mib=資料加密:%.1f MiB
|
||||||
stats.encr.total.data.gib=資料加密:%.1f GiB
|
stats.encr.total.data.gib=資料加密:%.1f GiB
|
||||||
stats.write.accessCount=總寫入:%d
|
stats.write.accessCount=總寫入:%d
|
||||||
@@ -351,11 +369,11 @@ main.vaultDetail.lockBtn=鎖定
|
|||||||
main.vaultDetail.bytesPerSecondRead=讀取:
|
main.vaultDetail.bytesPerSecondRead=讀取:
|
||||||
main.vaultDetail.bytesPerSecondWritten=寫入:
|
main.vaultDetail.bytesPerSecondWritten=寫入:
|
||||||
main.vaultDetail.throughput.idle=閒置
|
main.vaultDetail.throughput.idle=閒置
|
||||||
main.vaultDetail.throughput.kbps=%.1f kiB/s
|
main.vaultDetail.throughput.kbps=%.1f KiB/s
|
||||||
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
main.vaultDetail.throughput.mbps=%.1f MiB/s
|
||||||
main.vaultDetail.stats=加密檔案庫統計數據
|
main.vaultDetail.stats=加密檔案庫統計
|
||||||
main.vaultDetail.locateEncryptedFileBtn=顯示加密檔案路徑
|
main.vaultDetail.locateEncryptedFileBtn=顯示加密檔案路徑
|
||||||
main.vaultDetail.locateEncryptedFileBtn.tooltip=從加密檔案庫中選擇一個檔案來顯示相對應的加密檔案路徑
|
main.vaultDetail.locateEncryptedFileBtn.tooltip=選擇要顯示對應加密檔案路徑的加密檔案庫檔案
|
||||||
main.vaultDetail.encryptedPathsCopied=路徑已複製到剪貼簿
|
main.vaultDetail.encryptedPathsCopied=路徑已複製到剪貼簿
|
||||||
main.vaultDetail.filePickerTitle=從加密檔案庫中選擇檔案
|
main.vaultDetail.filePickerTitle=從加密檔案庫中選擇檔案
|
||||||
### Missing
|
### Missing
|
||||||
@@ -374,7 +392,7 @@ main.vaultDetail.error.windowTitle=載入加密檔案庫時出錯
|
|||||||
# Wrong File Alert
|
# Wrong File Alert
|
||||||
wrongFileAlert.title=如何加密檔案
|
wrongFileAlert.title=如何加密檔案
|
||||||
wrongFileAlert.message=您試著加密這些檔案嗎?
|
wrongFileAlert.message=您試著加密這些檔案嗎?
|
||||||
wrongFileAlert.description=如果是這樣,Cryptomator 可以在您的檔案總管裡產生一個磁區。
|
wrongFileAlert.description=为此,Cryptomator 在您的檔案管裡器產生一個磁區。
|
||||||
wrongFileAlert.instruction.0=請依下列步驟加密檔案:
|
wrongFileAlert.instruction.0=請依下列步驟加密檔案:
|
||||||
wrongFileAlert.instruction.1=1. 解鎖您的加密檔案庫。
|
wrongFileAlert.instruction.1=1. 解鎖您的加密檔案庫。
|
||||||
wrongFileAlert.instruction.2=2. 點擊「顯示」可在檔案總管中檢視磁區。
|
wrongFileAlert.instruction.2=2. 點擊「顯示」可在檔案總管中檢視磁區。
|
||||||
@@ -389,13 +407,15 @@ vaultOptions.general.autoLock.lockAfterTimePart1=空閒時鎖定
|
|||||||
vaultOptions.general.autoLock.lockAfterTimePart2=分鐘
|
vaultOptions.general.autoLock.lockAfterTimePart2=分鐘
|
||||||
vaultOptions.general.unlockAfterStartup=啟動 Cryptomator 時解鎖加密檔案庫
|
vaultOptions.general.unlockAfterStartup=啟動 Cryptomator 時解鎖加密檔案庫
|
||||||
vaultOptions.general.actionAfterUnlock=成功解鎖後
|
vaultOptions.general.actionAfterUnlock=成功解鎖後
|
||||||
vaultOptions.general.actionAfterUnlock.ignore=不執行任何動作
|
vaultOptions.general.actionAfterUnlock.ignore=無動作
|
||||||
vaultOptions.general.actionAfterUnlock.reveal=顯示磁碟
|
vaultOptions.general.actionAfterUnlock.reveal=顯示磁碟
|
||||||
vaultOptions.general.actionAfterUnlock.ask=詢問
|
vaultOptions.general.actionAfterUnlock.ask=詢問
|
||||||
vaultOptions.general.startHealthCheckBtn=開始健康檢查
|
vaultOptions.general.startHealthCheckBtn=開始健康檢查
|
||||||
|
|
||||||
## Mount
|
## Mount
|
||||||
vaultOptions.mount=掛載
|
vaultOptions.mount=掛載
|
||||||
|
vaultOptions.mount.info=選項會依據掛載磁區類別而變更
|
||||||
|
vaultOptions.mount.linkToPreferences=打開虛擬磁碟偏好設定
|
||||||
vaultOptions.mount.readonly=唯讀
|
vaultOptions.mount.readonly=唯讀
|
||||||
vaultOptions.mount.customMountFlags=自訂掛載參數
|
vaultOptions.mount.customMountFlags=自訂掛載參數
|
||||||
vaultOptions.mount.winDriveLetterOccupied=已使用
|
vaultOptions.mount.winDriveLetterOccupied=已使用
|
||||||
@@ -409,7 +429,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=選擇一個路徑
|
|||||||
vaultOptions.masterkey=密碼
|
vaultOptions.masterkey=密碼
|
||||||
vaultOptions.masterkey.changePasswordBtn=變更密碼
|
vaultOptions.masterkey.changePasswordBtn=變更密碼
|
||||||
vaultOptions.masterkey.forgetSavedPasswordBtn=清除已存密碼
|
vaultOptions.masterkey.forgetSavedPasswordBtn=清除已存密碼
|
||||||
vaultOptions.masterkey.recoveryKeyExplanation=在您遺失密碼時,僅能以復原金鑰恢復存取。
|
vaultOptions.masterkey.recoveryKeyExplanation=如果您遺失密碼,恢復金鑰是您唯一恢復對保險箱存取權限的方法。
|
||||||
vaultOptions.masterkey.showRecoveryKeyBtn=顯示復原金鑰
|
vaultOptions.masterkey.showRecoveryKeyBtn=顯示復原金鑰
|
||||||
vaultOptions.masterkey.recoverPasswordBtn=重設密碼
|
vaultOptions.masterkey.recoverPasswordBtn=重設密碼
|
||||||
|
|
||||||
@@ -417,16 +437,18 @@ vaultOptions.masterkey.recoverPasswordBtn=重設密碼
|
|||||||
# Recovery Key
|
# Recovery Key
|
||||||
## Display Recovery Key
|
## Display Recovery Key
|
||||||
recoveryKey.display.title=顯示恢復金鑰
|
recoveryKey.display.title=顯示恢復金鑰
|
||||||
recoveryKey.create.message=需要密碼
|
recoveryKey.create.message=需要填寫密碼
|
||||||
recoveryKey.create.description=請輸入您的密碼以顯示 "%s" 的復原金鑰:
|
recoveryKey.create.description=請輸入您的密碼以顯示 "%s" 的恢復金鑰:
|
||||||
recoveryKey.display.description=下方的復原金鑰可用來恢復 "%s" 的存取能力:
|
recoveryKey.display.description=下方的恢復金鑰可用來恢復 "%s" 的存取能力:
|
||||||
recoveryKey.display.StorageHints=請把它保存在非常安全的地方,例如:\n • 使用密碼管理器保管\n • 存在 USB 隨身碟裡\n • 印在紙上
|
recoveryKey.display.StorageHints=請把它保存在安全的地方,例如:\n • 使用密碼管理器保管\n • 存在 USB 隨身碟裡\n • 列印在紙上
|
||||||
## Reset Password
|
## Reset Password
|
||||||
### Enter Recovery Key
|
### Enter Recovery Key
|
||||||
recoveryKey.recover.title=重設密碼
|
recoveryKey.recover.title=重設密碼
|
||||||
recoveryKey.recover.prompt=輸入 "%s" 的復原金鑰:
|
recoveryKey.recover.prompt=輸入 "%s" 的恢復金鑰:
|
||||||
recoveryKey.recover.validKey=這是有效的復原金鑰
|
recoveryKey.recover.correctKey=這是一個正確的恢復金鑰
|
||||||
recoveryKey.printout.heading=Cryptomator 復原金鑰\n"%s"\n
|
recoveryKey.recover.wrongKey=此恢復金鑰屬於不同的加密檔案庫
|
||||||
|
recoveryKey.recover.invalidKey=這是一個無效的恢復金鑰
|
||||||
|
recoveryKey.printout.heading=Cryptomator 恢復金鑰\n"%s"\n
|
||||||
### Reset Password
|
### Reset Password
|
||||||
recoveryKey.recover.resetBtn=重設
|
recoveryKey.recover.resetBtn=重設
|
||||||
### Recovery Key Password Reset Success
|
### Recovery Key Password Reset Success
|
||||||
@@ -437,7 +459,7 @@ recoveryKey.recover.resetSuccess.description=您可以用新設的密碼解鎖
|
|||||||
newPassword.promptText=輸入新密碼
|
newPassword.promptText=輸入新密碼
|
||||||
newPassword.reenterPassword=確認新密碼
|
newPassword.reenterPassword=確認新密碼
|
||||||
newPassword.passwordsMatch=密碼相符!
|
newPassword.passwordsMatch=密碼相符!
|
||||||
newPassword.passwordsDoNotMatch=密碼不符
|
newPassword.passwordsDoNotMatch=密碼不符!
|
||||||
passwordStrength.messageLabel.tooShort=密碼長度至少需 %d 個字元
|
passwordStrength.messageLabel.tooShort=密碼長度至少需 %d 個字元
|
||||||
passwordStrength.messageLabel.0=非常弱
|
passwordStrength.messageLabel.0=非常弱
|
||||||
passwordStrength.messageLabel.1=弱
|
passwordStrength.messageLabel.1=弱
|
||||||
@@ -446,12 +468,12 @@ passwordStrength.messageLabel.3=強
|
|||||||
passwordStrength.messageLabel.4=非常強
|
passwordStrength.messageLabel.4=非常強
|
||||||
|
|
||||||
# Quit
|
# Quit
|
||||||
quit.title=結束應用程式
|
quit.title=結束程式
|
||||||
quit.message=仍有已啟用的檔案庫
|
quit.message=仍有已解鎖的檔案庫
|
||||||
quit.description=請確認結束動作。Cryptomator將會鎖定所有已開啟的檔案庫以防止資料流失。
|
quit.description=請確認結束動作。Cryptomator將會適時地鎖定所有已解鎖的檔案庫以防止資料流失。
|
||||||
quit.lockAndQuitBtn=鎖定並離開
|
quit.lockAndQuitBtn=鎖定並離開
|
||||||
|
|
||||||
# Forced Quit
|
# Forced Quit
|
||||||
quit.forced.message=某些檔案庫無法鎖定
|
quit.forced.message=某些檔案庫無法鎖定
|
||||||
quit.forced.description=仍有未完成的作業或開啟中的檔案以致無法鎖定。您可以強制鎖定這個檔案庫,不過中斷讀寫可能會導致資料遺失或未被儲存。
|
quit.forced.description=因為進行中的操作或已經打開的檔案被阻止,無法鎖定加密檔案庫。您可以強制鎖定其餘的加密檔案庫,但請注意,中斷讀寫可能導致未保存的數據丟失。
|
||||||
quit.forced.forceAndQuitBtn=強制並結束
|
quit.forced.forceAndQuitBtn=強制並結束
|
||||||
+19
-1
@@ -38,7 +38,7 @@
|
|||||||
<!-- Apache Commons-cli false positives below -->
|
<!-- Apache Commons-cli false positives below -->
|
||||||
<suppress>
|
<suppress>
|
||||||
<notes><![CDATA[
|
<notes><![CDATA[
|
||||||
False positive for commons-cli due, see https://github.com/jeremylong/DependencyCheck/pull/4148
|
False positive for commons-cli due, see https://github.com/jeremylong/DependencyCheck/pull/4148
|
||||||
]]></notes>
|
]]></notes>
|
||||||
<gav regex="true">^commons\-cli:commons\-cli:.*$</gav>
|
<gav regex="true">^commons\-cli:commons\-cli:.*$</gav>
|
||||||
<cpe>cpe:/a:apache:james</cpe>
|
<cpe>cpe:/a:apache:james</cpe>
|
||||||
@@ -46,4 +46,22 @@
|
|||||||
<cpe>cpe:/a:spirit-project:spirit</cpe>
|
<cpe>cpe:/a:spirit-project:spirit</cpe>
|
||||||
<cpe>cpe:/a:apache:commons_net</cpe>
|
<cpe>cpe:/a:apache:commons_net</cpe>
|
||||||
</suppress>
|
</suppress>
|
||||||
|
|
||||||
|
<suppress>
|
||||||
|
<notes><![CDATA[
|
||||||
|
False positive for jackson-core-2.13.4.jar, see https://github.com/jeremylong/DependencyCheck/issues/5502
|
||||||
|
]]></notes>
|
||||||
|
<packageUrl regex="true">^pkg:maven/com\.fasterxml\.jackson\.core/jackson\-core@.*$</packageUrl>
|
||||||
|
<cve>CVE-2022-45688</cve>
|
||||||
|
</suppress>
|
||||||
|
|
||||||
|
<suppress>
|
||||||
|
<notes><![CDATA[
|
||||||
|
Suppress false positive, because com.google.common.io.Files.getTempDir() is not used
|
||||||
|
]]></notes>
|
||||||
|
<packageUrl regex="true">^pkg:maven/com\.google\.guava/guava@.*$</packageUrl>
|
||||||
|
<vulnerabilityName>CVE-2020-8908</vulnerabilityName>
|
||||||
|
<cve>CVE-2020-8908</cve>
|
||||||
|
</suppress>
|
||||||
|
|
||||||
</suppressions>
|
</suppressions>
|
||||||
Reference in New Issue
Block a user