Merge branch 'develop' into feature/simplify-out-of-bounds

This commit is contained in:
Sebastian Stenzel
2023-09-18 19:33:25 +02:00
88 changed files with 557 additions and 484 deletions

View File

@@ -43,6 +43,7 @@ body:
- WinFsp (Local Drive)
- FUSE-T
- macFUSE
- FUSE
- WebDAV (Windows Explorer)
- WebDAV (AppleScript)
- WebDAV (gio)
@@ -95,4 +96,4 @@ body:
id: further-info
attributes:
label: Anything else?
description: Links? References? Screenshots? Configurations? Any data that might be necessary to reproduce the issue?
description: Links? References? Screenshots? Configurations? Any data that might be necessary to reproduce the issue?

View File

@@ -8,7 +8,7 @@ updates:
time: "06:00"
timezone: "UTC"
groups:
all: # one PR for all dependencies
maven-dependencies:
patterns:
- "*"
@@ -17,7 +17,7 @@ updates:
schedule:
interval: "monthly"
groups:
all: # one PR for all actions
github-actions:
patterns:
- "*"
labels:

View File

@@ -10,6 +10,7 @@ on:
required: false
env:
JAVA_DIST: 'temurin'
JAVA_VERSION: 20
jobs:
@@ -20,27 +21,50 @@ jobs:
build:
name: Build AppImage
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}
needs: [get-version]
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
appimage-suffix: x86_64
openjfx-url: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-x64_bin-jmods.zip'
openjfx-sha: 'f522ac2ae4bdd61f0219b7b8d2058ff72a22f36a44378453bcfdcd82f8f5e08c'
- os: [self-hosted, Linux, ARM64]
appimage-suffix: aarch64
openjfx-url: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-aarch64_bin-jmods.zip'
openjfx-sha: 'c0d80ebbe0aab404ef9ad8b46c05bf533a1e40b39b2720eebd9238d81f6326ca'
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
java-package: 'jdk+fx'
check-latest: true
cache: 'maven'
- name: Ensure major jfx version in pom equals in jdk
shell: pwsh
- name: Download OpenJFX jmods
id: download-jmods
run: |
$jfxPomVersion = (&mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout) -split "\."
$jfxJdkVersion = ((Get-Content -path "${env:JAVA_HOME}/lib/javafx.properties" | Where-Object {$_ -like 'javafx.version=*' }) -replace '.*=','') -split "\."
if ($jfxPomVersion[0] -ne $jfxJdkVersion[0]) {
Write-Error "Major part of JavaFX version in pom($($jfxPomVersion[0])) does not match the version in JDK($($jfxJdkVersion[0])) "
curl -L ${{ matrix.openjfx-url }} -o openjfx-jmods.zip
echo "${{ matrix.openjfx-sha }} openjfx-jmods.zip" | shasum -a256 --check
mkdir -p openjfx-jmods
unzip -j openjfx-jmods.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d openjfx-jmods
- name: Ensure major jfx version in pom and in jmods is the same
run: |
JMOD_VERSION=$(jmod describe openjfx-jmods/javafx.base.jmod | head -1)
JMOD_VERSION=${JMOD_VERSION#*@}
JMOD_VERSION=${JMOD_VERSION%%.*}
POM_JFX_VERSION=$(mvn help:evaluate "-Dexpression=javafx.version" -q -DforceStdout)
POM_JFX_VERSION=${POM_JFX_VERSION#*@}
POM_JFX_VERSION=${POM_JFX_VERSION%%.*}
if [ $POM_JFX_VERSION -ne $JMOD_VERSION_AMD64 ]; then
>&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != amd64 jmod version (${JMOD_VERSION})"
exit 1
}
fi
- name: Set version
run : mvn versions:set -DnewVersion=${{ needs.get-version.outputs.semVerStr }}
- name: Run maven
@@ -54,7 +78,7 @@ jobs:
${JAVA_HOME}/bin/jlink
--verbose
--output runtime
--module-path "${JAVA_HOME}/jmods"
--module-path "${JAVA_HOME}/jmods:openjfx-jmods"
--add-modules java.base,java.desktop,java.instrument,java.logging,java.naming,java.net.http,java.scripting,java.sql,java.xml,javafx.base,javafx.graphics,javafx.controls,javafx.fxml,jdk.unsupported,jdk.crypto.ec,jdk.security.auth,jdk.accessibility,jdk.management.jfr,jdk.net
--strip-native-commands
--no-header-files
@@ -119,7 +143,7 @@ jobs:
ln -s bin/cryptomator.sh Cryptomator.AppDir/AppRun
- name: Download AppImageKit
run: |
curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage -o appimagetool.AppImage
curl -L https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-${{ matrix.appimage-suffix }}.AppImage -o appimagetool.AppImage
chmod +x appimagetool.AppImage
./appimagetool.AppImage --appimage-extract
- name: Prepare GPG-Agent for signing with key 615D449FE6E6A235
@@ -131,8 +155,8 @@ jobs:
GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
- name: Build AppImage
run: >
./squashfs-root/AppRun Cryptomator.AppDir cryptomator-${{ needs.get-version.outputs.semVerStr }}-x86_64.AppImage
-u 'gh-releases-zsync|cryptomator|cryptomator|latest|cryptomator-*-x86_64.AppImage.zsync'
./squashfs-root/AppRun Cryptomator.AppDir cryptomator-${{ needs.get-version.outputs.semVerStr }}-${{ matrix.appimage-suffix }}.AppImage
-u 'gh-releases-zsync|cryptomator|cryptomator|latest|cryptomator-*-${{ matrix.appimage-suffix }}.AppImage.zsync'
--sign --sign-key=615D449FE6E6A235 --sign-args="--batch --pinentry-mode loopback"
- name: Create detached GPG signatures
run: |
@@ -141,7 +165,7 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: appimage
name: appimage-${{ matrix.appimage-suffix }}
path: |
cryptomator-*.AppImage
cryptomator-*.AppImage.zsync

View File

@@ -6,6 +6,7 @@ on:
types: [labeled]
env:
JAVA_DIST: 'temurin'
JAVA_VERSION: 20
defaults:
@@ -20,7 +21,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
- name: Cache SonarCloud packages

View File

@@ -16,9 +16,12 @@ on:
type: boolean
env:
JAVA_DIST: 'temurin'
JAVA_VERSION: 20
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-x64_bin-jmods.zip'
OPENJFX_JMODS_AMD64_HASH: 'f522ac2ae4bdd61f0219b7b8d2058ff72a22f36a44378453bcfdcd82f8f5e08c'
OPENJFX_JMODS_AARCH64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_linux-aarch64_bin-jmods.zip'
OPENJFX_JMODS_AARCH64_HASH: 'c0d80ebbe0aab404ef9ad8b46c05bf533a1e40b39b2720eebd9238d81f6326ca'
jobs:
build:
@@ -43,7 +46,7 @@ jobs:
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'zulu'
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
check-latest: true
cache: 'maven'
@@ -53,9 +56,11 @@ jobs:
id: download-jmods
run: |
curl -L ${{ env.OPENJFX_JMODS_AMD64 }} -o openjfx-amd64.zip
echo "${{ env.OPENJFX_JMODS_AMD64_HASH }} openjfx-amd64.zip" | shasum -a256 --check
mkdir -p jmods/amd64
unzip -j openjfx-amd64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/amd64
curl -L ${{ env.OPENJFX_JMODS_AARCH64 }} -o openjfx-aarch64.zip
echo "${{ env.OPENJFX_JMODS_AARCH64_HASH }} openjfx-aarch64.zip" | shasum -a256 --check
mkdir -p jmods/aarch64
unzip -j openjfx-aarch64.zip \*/javafx.base.jmod \*/javafx.controls.jmod \*/javafx.fxml.jmod \*/javafx.graphics.jmod -d jmods/aarch64
- name: Ensure major jfx version in pom and in jmods is the same

View File

@@ -22,9 +22,8 @@ on:
value: ${{ jobs.determine-version.outputs.type }}
env:
JAVA_VERSION: 20
JAVA_DIST: 'temurin'
JAVA_CACHE: 'maven'
JAVA_VERSION: 20
jobs:
determine-version:
@@ -44,7 +43,7 @@ jobs:
with:
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
cache: ${{ env.JAVA_CACHE }}
cache: 'maven'
- id: versions
name: Get version information
run: |

View File

@@ -15,6 +15,7 @@ on:
type: boolean
env:
JAVA_DIST: 'temurin'
JAVA_VERSION: 20
jobs:
@@ -36,23 +37,22 @@ jobs:
output-suffix: x64
xcode-path: '/Applications/Xcode_13.2.1.app'
fuse-lib: macFUSE
openjfx-url: https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-x64_bin-jmods.zip
openjfx-sha: 55b8ff7453d59c89ae129f6c9c5ad7b09a5d359568811b376ac1766c14d6a17c
openjfx-url: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-x64_bin-jmods.zip'
openjfx-sha: '55b8ff7453d59c89ae129f6c9c5ad7b09a5d359568811b376ac1766c14d6a17c'
- os: [self-hosted, macOS, ARM64]
architecture: aarch64
output-suffix: arm64
xcode-path: '/Applications/Xcode_13.2.1.app'
fuse-lib: FUSE-T
openjfx-url: https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-aarch64_bin-jmods.zip
openjfx-sha: c60f5f19aa847e0e620e0b011e5de68f2c6755641c2141cec27a0b89f612beaf
openjfx-url: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_osx-aarch64_bin-jmods.zip'
openjfx-sha: 'c60f5f19aa847e0e620e0b011e5de68f2c6755641c2141cec27a0b89f612beaf'
steps:
- uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
java-package: 'jdk'
architecture: ${{ matrix.architecture }}
check-latest: true
cache: 'maven'
@@ -73,7 +73,7 @@ jobs:
POM_JFX_VERSION=${POM_JFX_VERSION%%.*}
if [ $POM_JFX_VERSION -ne $JMOD_VERSION ]; then
>&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != jmod version (${JMOD_VERSION_AMD64})"
>&2 echo "Major JavaFX version in pom.xml (${POM_JFX_VERSION}) != jmod version (${JMOD_VERSION})"
exit 1
fi
- name: Set version

View File

@@ -4,6 +4,7 @@ on:
pull_request:
env:
JAVA_DIST: 'temurin'
JAVA_VERSION: 20
defaults:
@@ -19,7 +20,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
cache: 'maven'
- name: Build and Test

View File

@@ -6,9 +6,6 @@ on:
- 'release/**'
- 'hotfix/**'
env:
JAVA_VERSION: 20
defaults:
run:
shell: bash

View File

@@ -14,11 +14,10 @@ on:
env:
JAVA_VERSION: 20
JAVA_DIST: 'temurin'
JAVA_CACHE: 'maven'
JFX_JMODS_URL: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_windows-x64_bin-jmods.zip'
JFX_JMODS_HASH: '18625bbc13c57dbf802486564247a8d8cab72ec558c240a401bf6440384ebd77'
JAVA_VERSION: 20
OPENJFX_JMODS_AMD64: 'https://download2.gluonhq.com/openjfx/20.0.2/openjfx-20.0.2_windows-x64_bin-jmods.zip'
OPENJFX_JMODS_AMD64_HASH: '18625bbc13c57dbf802486564247a8d8cab72ec558c240a401bf6440384ebd77'
defaults:
run:
@@ -44,15 +43,14 @@ jobs:
with:
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
java-package: 'jdk'
check-latest: true
cache: ${{ env.JAVA_CACHE }}
cache: 'maven'
- name: Download and extract JavaFX jmods from Gluon
#In the last step we move all jmods files a dir level up because jmods are placed inside a directory in the zip
run: |
curl --output jfxjmods.zip -L "${{ env.JFX_JMODS_URL }}"
if(!(Get-FileHash -Path jfxjmods.zip -Algorithm SHA256).Hash.ToLower().equals("${{ env.JFX_JMODS_HASH }}")) {
throw "Wrong checksum of JMOD archive downloaded from ${{ env.JFX_JMODS_URL }}.";
curl --output jfxjmods.zip -L "${{ env.OPENJFX_JMODS_AMD64 }}"
if(!(Get-FileHash -Path jfxjmods.zip -Algorithm SHA256).Hash.ToLower().equals("${{ env.OPENJFX_JMODS_AMD64_HASH }}")) {
throw "Wrong checksum of JMOD archive downloaded from ${{ env.OPENJFX_JMODS_AMD64 }}.";
}
Expand-Archive -Path jfxjmods.zip -DestinationPath jfxjmods
Get-ChildItem -Path jfxjmods -Recurse -Filter "*.jmod" | ForEach-Object { Move-Item -Path $_ -Destination $_.Directory.Parent}
@@ -249,7 +247,7 @@ jobs:
distribution: ${{ env.JAVA_DIST }}
java-version: ${{ env.JAVA_VERSION }}
check-latest: true
cache: ${{ env.JAVA_CACHE }}
cache: 'maven'
- name: Generate license for exe
run: >
mvn -B license:add-third-party

View File

@@ -66,6 +66,7 @@
</content_rating>
<releases>
<release date="2023-09-11" version="1.10.0"/>
<release date="2023-08-11" version="1.9.4"/>
<release date="2023-08-07" version="1.9.3"/>
<release date="2023-07-24" version="1.9.2"/>

4
dist/win/build.ps1 vendored
View File

@@ -65,8 +65,8 @@ if( $jmodsChecksumActual -ne $jfxJmodsChecksum ) {
Write-Error "Checksum mismatch for jfxJmods.zip. Expected: $jfxJmodsChecksum, actual: $jmodsChecksumActual"
exit 1;
}
Expand-Archive -Force -Path $jfxJmodsZip -DestinationPath ".\resources\"
Move-Item -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop
Expand-Archive -Path $jfxJmodsZip -DestinationPath ".\resources\"
Move-Item -Force -Path ".\resources\javafx-jmods-*" -Destination ".\resources\javafx-jmods" -ErrorAction Stop
& "$Env:JAVA_HOME\bin\jlink" `

10
pom.xml
View File

@@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.cryptomator</groupId>
<artifactId>cryptomator</artifactId>
<version>1.10.0-SNAPSHOT</version>
<version>1.11.0-SNAPSHOT</version>
<name>Cryptomator Desktop App</name>
<organization>
@@ -40,11 +40,11 @@
<cryptomator.integrations.linux.version>1.3.0-beta6</cryptomator.integrations.linux.version>
<cryptomator.fuse.version>3.0.0</cryptomator.fuse.version>
<cryptomator.dokany.version>2.0.0</cryptomator.dokany.version>
<cryptomator.webdav.version>2.0.3</cryptomator.webdav.version>
<cryptomator.webdav.version>2.0.4</cryptomator.webdav.version>
<!-- 3rd party dependencies -->
<commons-lang3.version>3.13.0</commons-lang3.version>
<dagger.version>2.47</dagger.version>
<dagger.version>2.48</dagger.version>
<easybind.version>2.2</easybind.version>
<guava.version>32.1.2-jre</guava.version>
<jackson.version>2.15.2</jackson.version>
@@ -52,13 +52,13 @@
<jwt.version>4.4.0</jwt.version>
<nimbus-jose.version>9.31</nimbus-jose.version>
<logback.version>1.4.11</logback.version>
<slf4j.version>2.0.7</slf4j.version>
<slf4j.version>2.0.9</slf4j.version>
<tinyoauth2.version>0.6.0</tinyoauth2.version>
<zxcvbn.version>1.8.2</zxcvbn.version>
<!-- test dependencies -->
<junit.jupiter.version>5.10.0</junit.jupiter.version>
<mockito.version>5.4.0</mockito.version>
<mockito.version>5.5.0</mockito.version>
<hamcrest.version>2.2</hamcrest.version>
<!-- build-time dependencies -->

View File

@@ -2,6 +2,7 @@ package org.cryptomator.common;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import org.jetbrains.annotations.VisibleForTesting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,15 +44,15 @@ public class Environment {
logCryptomatorSystemProperty(SETTINGS_PATH_PROP_NAME);
logCryptomatorSystemProperty(IPC_SOCKET_PATH_PROP_NAME);
logCryptomatorSystemProperty(KEYCHAIN_PATHS_PROP_NAME);
logCryptomatorSystemProperty(P12_PATH_PROP_NAME);
logCryptomatorSystemProperty(LOG_DIR_PROP_NAME);
logCryptomatorSystemProperty(LOOPBACK_ALIAS_PROP_NAME);
logCryptomatorSystemProperty(PLUGIN_DIR_PROP_NAME);
logCryptomatorSystemProperty(MOUNTPOINT_DIR_PROP_NAME);
logCryptomatorSystemProperty(MIN_PW_LENGTH_PROP_NAME);
logCryptomatorSystemProperty(APP_VERSION_PROP_NAME);
logCryptomatorSystemProperty(BUILD_NUMBER_PROP_NAME);
logCryptomatorSystemProperty(PLUGIN_DIR_PROP_NAME);
logCryptomatorSystemProperty(TRAY_ICON_PROP_NAME);
logCryptomatorSystemProperty(P12_PATH_PROP_NAME);
}
public static Environment getInstance() {
@@ -74,10 +75,6 @@ public class Environment {
return getPaths(SETTINGS_PATH_PROP_NAME);
}
public Stream<Path> getP12Path() {
return getPaths(P12_PATH_PROP_NAME);
}
public Stream<Path> getIpcSocketPath() {
return getPaths(IPC_SOCKET_PATH_PROP_NAME);
}
@@ -86,6 +83,10 @@ public class Environment {
return getPaths(KEYCHAIN_PATHS_PROP_NAME);
}
public Stream<Path> getP12Path() {
return getPaths(P12_PATH_PROP_NAME);
}
public Optional<Path> getLogDir() {
return getPath(LOG_DIR_PROP_NAME);
}
@@ -94,14 +95,14 @@ public class Environment {
return Optional.ofNullable(System.getProperty(LOOPBACK_ALIAS_PROP_NAME));
}
public Optional<Path> getPluginDir() {
return getPath(PLUGIN_DIR_PROP_NAME);
}
public Optional<Path> getMountPointsDir() {
return getPath(MOUNTPOINT_DIR_PROP_NAME);
}
public int getMinPwLength() {
return Integer.getInteger(MIN_PW_LENGTH_PROP_NAME, DEFAULT_MIN_PW_LENGTH);
}
/**
* Returns the app version defined in the {@value APP_VERSION_PROP_NAME} property or returns "SNAPSHOT".
*
@@ -115,8 +116,8 @@ public class Environment {
return Optional.ofNullable(System.getProperty(BUILD_NUMBER_PROP_NAME));
}
public int getMinPwLength() {
return Integer.getInteger(MIN_PW_LENGTH_PROP_NAME, DEFAULT_MIN_PW_LENGTH);
public Optional<Path> getPluginDir() {
return getPath(PLUGIN_DIR_PROP_NAME);
}
public boolean showTrayIcon() {
@@ -128,7 +129,7 @@ public class Environment {
return Optional.ofNullable(value).map(Paths::get);
}
// visible for testing
@VisibleForTesting
Stream<Path> getPaths(String propertyName) {
Stream<String> rawSettingsPaths = getRawList(propertyName, System.getProperty("path.separator").charAt(0));
return rawSettingsPaths.filter(Predicate.not(Strings::isNullOrEmpty)).map(Path::of);

View File

@@ -3,6 +3,7 @@ package org.cryptomator.common;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
import com.google.common.base.Throwables;
import org.jetbrains.annotations.VisibleForTesting;
import java.util.Locale;
import java.util.Objects;
@@ -114,7 +115,7 @@ public class ErrorCode {
* @param bottomFrames Other stack frames, potentially forming the bottom of the stack of <code>allFrames</code>
* @return The number of additional frames in <code>allFrames</code>. In most cases this should be equal to the difference in size.
*/
// visible for testing
@VisibleForTesting
static int countTopmostFrames(StackTraceElement[] allFrames, StackTraceElement[] bottomFrames) {
if (allFrames.length < bottomFrames.length) {
// if frames had been stacked on top of bottomFrames, allFrames would be larger
@@ -124,7 +125,7 @@ public class ErrorCode {
}
}
// visible for testing
@VisibleForTesting
static <T> int commonSuffixLength(T[] set, T[] subset) {
Preconditions.checkArgument(set.length >= subset.length);
// iterate items backwards as long as they are identical

View File

@@ -1,6 +1,7 @@
package org.cryptomator.common.mount;
import org.apache.commons.lang3.SystemUtils;
import org.jetbrains.annotations.VisibleForTesting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,7 +67,7 @@ public final class MountWithinParentUtil {
}
}
//visible for testing
@VisibleForTesting
static MountPointState getMountPointState(Path path) throws IOException, IllegalMountPointException {
if (Files.notExists(path, LinkOption.NOFOLLOW_LINKS)) {
return MountPointState.NOT_EXISTING;
@@ -82,7 +83,7 @@ public final class MountWithinParentUtil {
return MountPointState.BROKEN_JUNCTION;
}
//visible for testing
@VisibleForTesting
enum MountPointState {
NOT_EXISTING,
@@ -93,7 +94,7 @@ public final class MountWithinParentUtil {
}
//visible for testing
@VisibleForTesting
static void removeResidualHideaway(Path mountPoint, Path hideaway) throws IOException {
checkIsHideawayDirectory(mountPoint, hideaway);
Files.delete(hideaway); //Fails if not empty
@@ -155,7 +156,7 @@ public final class MountWithinParentUtil {
}
}
//visible for testing
@VisibleForTesting
static Path getHideaway(Path mountPoint) {
return mountPoint.resolveSibling(HIDEAWAY_PREFIX + mountPoint.getFileName().toString() + HIDEAWAY_SUFFIX);
}

View File

@@ -9,6 +9,7 @@ import com.google.common.base.CharMatcher;
import com.google.common.base.Strings;
import com.google.common.io.BaseEncoding;
import org.apache.commons.lang3.SystemUtils;
import org.jetbrains.annotations.VisibleForTesting;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
@@ -126,7 +127,7 @@ public class VaultSettings {
return json;
}
//visible for testing
@VisibleForTesting
static String normalizeDisplayName(String original) {
if (original.isBlank() || ".".equals(original) || "..".equals(original)) {
return "_";

View File

@@ -6,6 +6,7 @@
*******************************************************************************/
package org.cryptomator.launcher;
import org.jetbrains.annotations.VisibleForTesting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,7 +49,7 @@ class FileOpenRequestHandler {
handleLaunchArgs(FileSystems.getDefault(), args);
}
// visible for testing
@VisibleForTesting
void handleLaunchArgs(FileSystem fs, List<String> args) {
Collection<Path> pathsToOpen = args.stream().map(str -> {
try {

View File

@@ -45,9 +45,8 @@ public abstract class AddVaultModule {
@Provides
@AddVaultWizardWindow
@AddVaultWizardScoped
static Stage provideStage(StageFactory factory, @PrimaryStage Stage primaryStage, ResourceBundle resourceBundle) {
static Stage provideStage(StageFactory factory, @PrimaryStage Stage primaryStage) {
Stage stage = factory.create();
stage.setTitle(resourceBundle.getString("addvaultwizard.title"));
stage.setResizable(false);
stage.initModality(Modality.WINDOW_MODAL);
stage.initOwner(primaryStage);
@@ -90,13 +89,6 @@ public abstract class AddVaultModule {
// ------------------
@Provides
@FxmlScene(FxmlFile.ADDVAULT_WELCOME)
@AddVaultWizardScoped
static Scene provideWelcomeScene(@AddVaultWizardWindow FxmlLoaderFactory fxmlLoaders) {
return fxmlLoaders.createScene(FxmlFile.ADDVAULT_WELCOME);
}
@Provides
@FxmlScene(FxmlFile.ADDVAULT_EXISTING)
@AddVaultWizardScoped
@@ -148,11 +140,6 @@ public abstract class AddVaultModule {
// ------------------
@Binds
@IntoMap
@FxControllerKey(AddVaultWelcomeController.class)
abstract FxController bindWelcomeController(AddVaultWelcomeController controller);
@Binds
@IntoMap
@FxControllerKey(ChooseExistingVaultController.class)

View File

@@ -1,38 +0,0 @@
package org.cryptomator.ui.addvaultwizard;
import dagger.Lazy;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.common.FxmlFile;
import org.cryptomator.ui.common.FxmlScene;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javafx.scene.Scene;
import javafx.stage.Stage;
@AddVaultWizardScoped
public class AddVaultWelcomeController implements FxController {
private static final Logger LOG = LoggerFactory.getLogger(AddVaultWelcomeController.class);
private final Stage window;
private final Lazy<Scene> chooseExistingVaultScene;
private final Lazy<Scene> createNewVaultScene;
@Inject
AddVaultWelcomeController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_EXISTING) Lazy<Scene> chooseExistingVaultScene, @FxmlScene(FxmlFile.ADDVAULT_NEW_NAME) Lazy<Scene> createNewVaultScene) {
this.window = window;
this.chooseExistingVaultScene = chooseExistingVaultScene;
this.createNewVaultScene = createNewVaultScene;
}
public void createNewVault() {
LOG.debug("AddVaultWelcomeController.createNewVault()");
window.setScene(createNewVaultScene.get());
}
public void chooseExistingVault() {
LOG.debug("AddVaultWelcomeController.chooseExistingVault()");
window.setScene(chooseExistingVaultScene.get());
}
}

View File

@@ -12,6 +12,7 @@ import org.cryptomator.ui.common.FxmlScene;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.util.ResourceBundle;
@AddVaultWizardScoped
@Subcomponent(modules = {AddVaultModule.class})
@@ -20,12 +21,23 @@ public interface AddVaultWizardComponent {
@AddVaultWizardWindow
Stage window();
@FxmlScene(FxmlFile.ADDVAULT_WELCOME)
Lazy<Scene> scene();
@FxmlScene(FxmlFile.ADDVAULT_NEW_NAME)
Lazy<Scene> sceneNew();
@FxmlScene(FxmlFile.ADDVAULT_EXISTING)
Lazy<Scene> sceneExisting();
default void showAddVaultWizard() {
default void showAddNewVaultWizard(ResourceBundle resourceBundle) {
Stage stage = window();
stage.setScene(scene().get());
stage.setScene(sceneNew().get());
stage.setTitle(resourceBundle.getString("addvaultwizard.new.title"));
stage.sizeToScene();
stage.show();
}
default void showAddExistingVaultWizard(ResourceBundle resourceBundle) {
Stage stage = window();
stage.setScene(sceneExisting().get());
stage.setTitle(resourceBundle.getString("addvaultwizard.existing.title"));
stage.sizeToScene();
stage.show();
}

View File

@@ -35,7 +35,6 @@ public class ChooseExistingVaultController implements FxController {
private static final Logger LOG = LoggerFactory.getLogger(ChooseExistingVaultController.class);
private final Stage window;
private final Lazy<Scene> welcomeScene;
private final Lazy<Scene> successScene;
private final FxApplicationWindows appWindows;
private final ObjectProperty<Path> vaultPath;
@@ -45,9 +44,15 @@ public class ChooseExistingVaultController implements FxController {
private final ObservableValue<Image> screenshot;
@Inject
ChooseExistingVaultController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_WELCOME) Lazy<Scene> welcomeScene, @FxmlScene(FxmlFile.ADDVAULT_SUCCESS) Lazy<Scene> successScene, FxApplicationWindows appWindows, ObjectProperty<Path> vaultPath, @AddVaultWizardWindow ObjectProperty<Vault> vault, VaultListManager vaultListManager, ResourceBundle resourceBundle, FxApplicationStyle applicationStyle) {
ChooseExistingVaultController(@AddVaultWizardWindow Stage window, //
@FxmlScene(FxmlFile.ADDVAULT_SUCCESS) Lazy<Scene> successScene, //
FxApplicationWindows appWindows, //
ObjectProperty<Path> vaultPath, //
@AddVaultWizardWindow ObjectProperty<Vault> vault, //
VaultListManager vaultListManager, //
ResourceBundle resourceBundle, //
FxApplicationStyle applicationStyle) {
this.window = window;
this.welcomeScene = welcomeScene;
this.successScene = successScene;
this.appWindows = appWindows;
this.vaultPath = vaultPath;
@@ -70,11 +75,6 @@ public class ChooseExistingVaultController implements FxController {
return new Image((Objects.requireNonNull(getClass().getResource(imageResourcePath)).toString()));
}
@FXML
public void back() {
window.setScene(welcomeScene.get());
}
@FXML
public void chooseFileAndNext() {
FileChooser fileChooser = new FileChooser();

View File

@@ -17,7 +17,6 @@ import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
import java.nio.file.Path;
import java.util.ResourceBundle;
import java.util.regex.Pattern;
@AddVaultWizardScoped
@@ -27,16 +26,17 @@ public class CreateNewVaultNameController implements FxController {
public TextField textField;
private final Stage window;
private final Lazy<Scene> welcomeScene;
private final Lazy<Scene> chooseLocationScene;
private final ObjectProperty<Path> vaultPath;
private final StringProperty vaultName;
private final BooleanBinding validVaultName;
@Inject
CreateNewVaultNameController(@AddVaultWizardWindow Stage window, @FxmlScene(FxmlFile.ADDVAULT_WELCOME) Lazy<Scene> welcomeScene, @FxmlScene(FxmlFile.ADDVAULT_NEW_LOCATION) Lazy<Scene> chooseLocationScene, ObjectProperty<Path> vaultPath, @Named("vaultName") StringProperty vaultName, ResourceBundle resourceBundle) {
CreateNewVaultNameController(@AddVaultWizardWindow Stage window, //
@FxmlScene(FxmlFile.ADDVAULT_NEW_LOCATION) Lazy<Scene> chooseLocationScene, //
ObjectProperty<Path> vaultPath, //
@Named("vaultName") StringProperty vaultName) {
this.window = window;
this.welcomeScene = welcomeScene;
this.chooseLocationScene = chooseLocationScene;
this.vaultPath = vaultPath;
this.vaultName = vaultName;
@@ -58,11 +58,6 @@ public class CreateNewVaultNameController implements FxController {
}
}
@FXML
public void back() {
window.setScene(welcomeScene.get());
}
@FXML
public void next() {
window.setScene(chooseLocationScene.get());

View File

@@ -1,5 +1,7 @@
package org.cryptomator.ui.addvaultwizard;
import org.jetbrains.annotations.VisibleForTesting;
import javax.inject.Inject;
import java.util.List;
import java.util.ResourceBundle;
@@ -51,7 +53,7 @@ public class ReadmeGenerator {
resourceBundle.getString("addvault.new.readme.accessLocation.4")));
}
// visible for testing
@VisibleForTesting
String createDocument(Iterable<String> paragraphs) {
StringBuilder sb = new StringBuilder(RTF_HEADER);
for (String p : paragraphs) {
@@ -63,7 +65,7 @@ public class ReadmeGenerator {
return sb.toString();
}
// visible for testing
@VisibleForTesting
String escapeNonAsciiChars(CharSequence input) {
StringBuilder sb = new StringBuilder();
appendEscaped(sb, input);

View File

@@ -8,7 +8,6 @@ public enum FxmlFile {
ADDVAULT_NEW_PASSWORD("/fxml/addvault_new_password.fxml"), //
ADDVAULT_NEW_RECOVERYKEY("/fxml/addvault_new_recoverykey.fxml"), //
ADDVAULT_SUCCESS("/fxml/addvault_success.fxml"), //
ADDVAULT_WELCOME("/fxml/addvault_welcome.fxml"), //
CHANGEPASSWORD("/fxml/changepassword.fxml"), //
CONVERTVAULT_HUBTOPASSWORD_START("/fxml/convertvault_hubtopassword_start.fxml"), //
CONVERTVAULT_HUBTOPASSWORD_CONVERT("/fxml/convertvault_hubtopassword_convert.fxml"), //

View File

@@ -16,6 +16,7 @@ import org.cryptomator.ui.common.FxmlFile;
import org.cryptomator.ui.common.FxmlScene;
import org.cryptomator.ui.fxapp.FxApplicationWindows;
import org.cryptomator.ui.recoverykey.RecoveryKeyFactory;
import org.jetbrains.annotations.VisibleForTesting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -116,7 +117,7 @@ public class HubToPasswordConvertController implements FxController {
}, Platform::runLater); //
}
//visible for testing
@VisibleForTesting
void convertInternal() throws CompletionException, IllegalArgumentException {
var passphrase = newPasswordController.getNewPassword();
var vaultPath = vault.getPath();
@@ -141,7 +142,7 @@ public class HubToPasswordConvertController implements FxController {
}
}
//visible for testing
@VisibleForTesting
void backupHubConfig(Path hubConfigPath) throws IOException {
byte[] hubConfigBytes = Files.readAllBytes(hubConfigPath);
Path backupPath = hubConfigPath.resolveSibling(VAULTCONFIG_FILENAME + BackupHelper.generateFileIdSuffix(hubConfigBytes) + MASTERKEY_BACKUP_SUFFIX);
@@ -149,7 +150,7 @@ public class HubToPasswordConvertController implements FxController {
LOG.debug("Successfully created hub config backup {}", backupPath.getFileName());
}
//visible for testing
@VisibleForTesting
Path createPasswordConfig(Path passwordConfigPath, Path masterkeyFile, Passphrase passphrase) throws IOException, MasterkeyLoadingFailedException {
var unverifiedVaultConfig = vault.getVaultConfigCache().get();
try (var masterkey = masterkeyFileAccess.load(masterkeyFile, passphrase)) {

View File

@@ -26,6 +26,7 @@ public interface MainWindowComponent {
default Stage showMainWindow() {
Stage stage = window();
stage.setScene(scene().get());
stage.setIconified(false);
stage.show();
stage.toFront();
stage.requestFocus();

View File

@@ -16,6 +16,7 @@ import javafx.stage.Stage;
public class MainWindowSceneFactory extends DefaultSceneFactory {
protected static final KeyCodeCombination SHORTCUT_N = new KeyCodeCombination(KeyCode.N, KeyCombination.SHORTCUT_DOWN);
protected static final KeyCodeCombination SHORTCUT_O = new KeyCodeCombination(KeyCode.O, KeyCombination.SHORTCUT_DOWN);
private final Lazy<MainWindowTitleController> mainWindowTitleController;
private final Lazy<VaultListController> vaultListController;
@@ -34,6 +35,7 @@ public class MainWindowSceneFactory extends DefaultSceneFactory {
} else {
scene.getAccelerators().put(SHORTCUT_W, mainWindowTitleController.get()::close);
}
scene.getAccelerators().put(SHORTCUT_N, vaultListController.get()::didClickAddVault);
scene.getAccelerators().put(SHORTCUT_N, vaultListController.get()::didClickAddNewVault);
scene.getAccelerators().put(SHORTCUT_O, vaultListController.get()::didClickAddExistingVault);
}
}

View File

@@ -20,7 +20,9 @@ import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
import javafx.scene.input.ContextMenuEvent;
import javafx.scene.input.DragEvent;
@@ -34,6 +36,7 @@ import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.EnumSet;
import java.util.ResourceBundle;
import java.util.Set;
import java.util.stream.Collectors;
@@ -59,12 +62,21 @@ public class VaultListController implements FxController {
private final RemoveVaultComponent.Builder removeVaultDialogue;
private final VaultListManager vaultListManager;
private final BooleanProperty draggingVaultOver = new SimpleBooleanProperty();
private final ResourceBundle resourceBundle;
public ListView<Vault> vaultList;
public StackPane root;
public Button addVaultBtn;
@Inject
VaultListController(@MainWindow Stage mainWindow, ObservableList<Vault> vaults, ObjectProperty<Vault> selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVaultDialogue, VaultListManager vaultListManager) {
VaultListController(@MainWindow Stage mainWindow, //
ObservableList<Vault> vaults, //
ObjectProperty<Vault> selectedVault, //
VaultListCellFactory cellFactory, //
AddVaultWizardComponent.Builder addVaultWizard, //
RemoveVaultComponent.Builder removeVaultDialogue, //
VaultListManager vaultListManager, //
ResourceBundle resourceBundle) {
this.mainWindow = mainWindow;
this.vaults = vaults;
this.selectedVault = selectedVault;
@@ -72,6 +84,7 @@ public class VaultListController implements FxController {
this.addVaultWizard = addVaultWizard;
this.removeVaultDialogue = removeVaultDialogue;
this.vaultListManager = vaultListManager;
this.resourceBundle = resourceBundle;
this.emptyVaultList = Bindings.isEmpty(vaults);
@@ -127,6 +140,15 @@ public class VaultListController implements FxController {
root.setOnDragOver(this::handleDragEvent);
root.setOnDragDropped(this::handleDragEvent);
root.setOnDragExited(this::handleDragEvent);
addVaultBtn.addEventFilter(ContextMenuEvent.CONTEXT_MENU_REQUESTED, Event::consume);
}
@FXML
private void showMenu() {
double screenX = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMinX();
double screenY = addVaultBtn.localToScreen(addVaultBtn.getBoundsInLocal()).getMaxY();
addVaultBtn.getContextMenu().show(addVaultBtn, screenX, screenY);
}
private void deselect(MouseEvent released) {
@@ -144,8 +166,13 @@ public class VaultListController implements FxController {
}
@FXML
public void didClickAddVault() {
addVaultWizard.build().showAddVaultWizard();
public void didClickAddNewVault() {
addVaultWizard.build().showAddNewVaultWizard(resourceBundle);
}
@FXML
public void didClickAddExistingVault() {
addVaultWizard.build().showAddExistingVaultWizard(resourceBundle);
}
private void pressedShortcutToRemoveVault() {

View File

@@ -8,6 +8,7 @@ import org.cryptomator.cryptolib.api.InvalidPassphraseException;
import org.cryptomator.cryptolib.api.Masterkey;
import org.cryptomator.cryptolib.common.MasterkeyFileAccess;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.VisibleForTesting;
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -58,7 +59,7 @@ public class RecoveryKeyFactory {
}
}
// visible for testing
@VisibleForTesting
String createRecoveryKey(byte[] rawKey) {
Preconditions.checkArgument(rawKey.length == 64, "key should be 64 bytes");
byte[] paddedKey = Arrays.copyOf(rawKey, 66);

View File

@@ -795,6 +795,16 @@
-fx-scale-shape: false;
}
/*******************************************************************************
* *
* Add Vault - MenuItem *
* *
******************************************************************************/
.add-vault-menu-item {
-fx-padding: 4px 8px;
}
/*******************************************************************************
* *
* ProgressBar *

View File

@@ -794,6 +794,16 @@
-fx-scale-shape: false;
}
/*******************************************************************************
* *
* Add Vault - MenuItem *
* *
******************************************************************************/
.add-vault-menu-item {
-fx-padding: 4px 8px;
}
/*******************************************************************************
* *
* ProgressBar *

View File

@@ -24,9 +24,8 @@
<Region VBox.vgrow="ALWAYS"/>
<ButtonBar buttonMinWidth="120" buttonOrder="B+X">
<ButtonBar buttonMinWidth="120" buttonOrder="+X">
<buttons>
<Button text="%generic.button.back" ButtonBar.buttonData="BACK_PREVIOUS" onAction="#back"/>
<Button fx:id="finishButton" text="%addvaultwizard.existing.chooseBtn" ButtonBar.buttonData="NEXT_FORWARD" onAction="#chooseFileAndNext" defaultButton="true"/>
</buttons>
</ButtonBar>

View File

@@ -68,9 +68,8 @@
<Region VBox.vgrow="ALWAYS"/>
<ButtonBar buttonMinWidth="120" buttonOrder="B+X">
<ButtonBar buttonMinWidth="120" buttonOrder="+X">
<buttons>
<Button text="%generic.button.back" ButtonBar.buttonData="BACK_PREVIOUS" onAction="#back"/>
<Button text="%generic.button.next" ButtonBar.buttonData="NEXT_FORWARD" onAction="#next" defaultButton="true" disable="${!controller.validVaultName}"/>
</buttons>
</ButtonBar>

View File

@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import org.cryptomator.ui.controls.FontAwesome5IconView?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.Region?>
<?import javafx.scene.layout.VBox?>
<VBox xmlns:fx="http://javafx.com/fxml"
xmlns="http://javafx.com/javafx"
fx:controller="org.cryptomator.ui.addvaultwizard.AddVaultWelcomeController"
prefWidth="450"
prefHeight="450"
spacing="12"
alignment="TOP_CENTER">
<padding>
<Insets topRightBottomLeft="24"/>
</padding>
<children>
<Region VBox.vgrow="ALWAYS"/>
<ImageView VBox.vgrow="ALWAYS" fitHeight="128" preserveRatio="true" smooth="true" cache="true">
<Image url="@../img/logo.png"/>
</ImageView>
<Region VBox.vgrow="ALWAYS"/>
<VBox alignment="CENTER" spacing="9">
<Button styleClass="button-large" text="%addvaultwizard.welcome.newButton" onAction="#createNewVault" prefWidth="Infinity">
<graphic>
<FontAwesome5IconView glyph="MAGIC" glyphSize="15"/>
</graphic>
</Button>
<Button styleClass="button-large" text="%addvaultwizard.welcome.existingButton" onAction="#chooseExistingVault" prefWidth="Infinity">
<graphic>
<FontAwesome5IconView glyph="FOLDER_OPEN" glyphSize="15"/>
</graphic>
</Button>
</VBox>
<Region VBox.vgrow="ALWAYS"/>
</children>
</VBox>

View File

@@ -8,6 +8,8 @@
<?import javafx.scene.layout.StackPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.shape.Arc?>
<?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.control.MenuItem?>
<StackPane xmlns:fx="http://javafx.com/fxml"
xmlns="http://javafx.com/javafx"
fx:id="root"
@@ -26,10 +28,26 @@
<Arc VBox.vgrow="NEVER" styleClass="onboarding-overlay-arc" type="OPEN" centerX="50" centerY="0" radiusY="100" radiusX="50" startAngle="0" length="-60" strokeWidth="1"/>
</VBox>
</StackPane>
<Button styleClass="toolbar-button" text="%main.vaultlist.addVaultBtn" onAction="#didClickAddVault" alignment="BASELINE_CENTER" maxWidth="Infinity">
<Button fx:id="addVaultBtn" onAction="#showMenu" styleClass="toolbar-button" text="%main.vaultlist.addVaultBtn" alignment="BASELINE_CENTER" maxWidth="Infinity" contentDisplay="RIGHT">
<graphic>
<FontAwesome5IconView glyph="PLUS"/>
<FontAwesome5IconView glyph="CARET_DOWN"/>
</graphic>
<contextMenu>
<ContextMenu>
<items>
<MenuItem styleClass="add-vault-menu-item" text="%main.vaultlist.addVaultBtn.menuItemNew" onAction="#didClickAddNewVault" >
<graphic>
<FontAwesome5IconView glyph="PLUS" textAlignment="CENTER" wrappingWidth="14" />
</graphic>
</MenuItem>
<MenuItem styleClass="add-vault-menu-item" text="%main.vaultlist.addVaultBtn.menuItemExisting" onAction="#didClickAddExistingVault" >
<graphic>
<FontAwesome5IconView glyph="FOLDER_OPEN" textAlignment="CENTER" wrappingWidth="14" />
</graphic>
</MenuItem>
</items>
</ContextMenu>
</contextMenu>
</Button>
</VBox>
<Region styleClass="drag-n-drop-border" visible="${controller.draggingVaultOver}"/>

View File

@@ -41,10 +41,8 @@ traymenu.vault.reveal=Reveal
# Add Vault Wizard
addvaultwizard.title=Add Vault
## Welcome
addvaultwizard.welcome.newButton=Create New Vault
addvaultwizard.welcome.existingButton=Open Existing Vault
## New
addvaultwizard.new.title=Add New Vault
### Name
addvaultwizard.new.nameInstruction=Choose a name for the vault
addvaultwizard.new.namePrompt=Vault Name
@@ -94,6 +92,7 @@ addvault.new.readme.accessLocation.2=This is your vault's access location.
addvault.new.readme.accessLocation.3=Any files added to this volume will be encrypted by Cryptomator. You can work on it like on any other drive/folder. This is only a decrypted view of its content, your files stay encrypted on your hard drive all the time.
addvault.new.readme.accessLocation.4=Feel free to remove this file.
## Existing
addvaultwizard.existing.title=Add Existing Vault
addvaultwizard.existing.instruction=Choose the "vault.cryptomator" file of your existing vault. If only a file named "masterkey.cryptomator" exists, select that instead.
addvaultwizard.existing.chooseBtn=Choose…
addvaultwizard.existing.filePickerTitle=Select Vault File
@@ -367,7 +366,9 @@ main.vaultlist.contextMenu.unlock=Unlock…
main.vaultlist.contextMenu.unlockNow=Unlock Now
main.vaultlist.contextMenu.vaultoptions=Show Vault Options
main.vaultlist.contextMenu.reveal=Reveal Drive
main.vaultlist.addVaultBtn=Add Vault
main.vaultlist.addVaultBtn=Add
main.vaultlist.addVaultBtn.menuItemNew=New Vault...
main.vaultlist.addVaultBtn.menuItemExisting=Existing Vault...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Thanks for choosing Cryptomator to protect your files. If you need any assistance, check out our getting started guides:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=إظهار
# Add Vault Wizard
addvaultwizard.title=أضِف مخزنًا
## Welcome
addvaultwizard.welcome.newButton=إنشاء مخزن جديد
addvaultwizard.welcome.existingButton=افتح مخزن موجود
## New
addvaultwizard.new.title=إضافة مخزن جديد
### Name
addvaultwizard.new.nameInstruction=اختر اسم للمخزن
addvaultwizard.new.namePrompt=اسم الخزينة
@@ -88,11 +86,12 @@ addvault.new.readme.storageLocation.8=2. فتح المخزن باستخدام Cr
addvault.new.readme.storageLocation.9=3. افتح موقع الوصول بالنقر على زر "إظهار".
addvault.new.readme.storageLocation.10=إذا كنت بحاجة إلى المساعدة، قم بالاطلاع على كتيب الوثائق: %s
addvault.new.readme.accessLocation.fileName=مرحبا.rtf
addvault.new.readme.accessLocation.1=🔐️ المجلدات المشفرة 🔐️
addvault.new.readme.accessLocation.1=🔐️ وحدة التخزين مشفرة 🔐️
addvault.new.readme.accessLocation.2=هذا هو موقع الوصول للخرنة الخاص بك.
addvault.new.readme.accessLocation.3=سيتم تشفير أي ملفات تضاف إلى هذا المجلد من قبل Cryptomator. يمكنك العمل عليه كأي مجلد آخر. هذه فقط طريقة عرض غير مشفرة لمحتوياتها، ملفاتك تبقى مشفرة على القرص الصلب الخاص بك طوال الوقت.
addvault.new.readme.accessLocation.4=لا تتردد في إزالة هذا الملف.
## Existing
addvaultwizard.existing.title=أضِف مخزن موجود
addvaultwizard.existing.instruction=اختر ملف "vault.cryptomator" من خزينتك الحالية. إذا كان يوجد فقط ملف اسمه "masterkey.cryptomator"، اختره عوضاً عنه.
addvaultwizard.existing.chooseBtn=اختر…
addvaultwizard.existing.filePickerTitle=حدد مِلَفّ المخزن
@@ -135,10 +134,10 @@ unlock.success.rememberChoice=تذكر اختياري ولا تظهر هذا م
unlock.success.revealBtn=اظهار القرص
## Failure
unlock.error.customPath.message=غير قادر على تركيب المخزن إلى المسار المخصص
unlock.error.customPath.description.notSupported=إذا كنت ترغب في الاستمرار في استخدام المسار المخصص، يرجى الذَّهاب إلى التفضيلات وتحديد نوع واسطة التخزين الذي يدعمها. خلاف ذلك، انتقل إلى خيارات المخزن واختر نقطة تركيب مدعومة.
unlock.error.customPath.description.notSupported=إذا كنت ترغب في الاستمرار في استخدام المسار المخصص، يرجى الذَّهاب إلى التفضيلات وتحديد نوع وحدة التخزين\n الذي يدعمها. خلاف ذلك، انتقل إلى خيارات المخزن واختر نقطة تركيب مدعومة.
unlock.error.customPath.description.notExists=مسار التركيب المخصص غير موجود. قم بإنشائه في نظام الملفات المحلي الخاص بك أو اختر غيره في خيارات الخزانة.
unlock.error.customPath.description.inUse=حرف القرص أو مسار التركيب المخصص "%s" قيد الاستخدام بالفعل.
unlock.error.customPath.description.hideawayNotDir=لا يمكن إزالة الملف المؤقت المخفي "%3$s" المستخدم للفتح. الرجاء التحقق من الملف ثم حذفه يدوياً.
unlock.error.customPath.description.hideawayNotDir=لا يمكن إزالة المِلَفّ المؤقت المخفي "%3$s" المستخدم لفتح القُفْل. الرجاء التحقق من المِلَفّ ثم حذفه يدوياً.
unlock.error.customPath.description.couldNotBeCleaned=لا يمكن تركيب خزانتك على المسار "%s". الرجاء المحاولة مرة أخرى أو اختيار مسار مختلف.
unlock.error.customPath.description.notEmptyDir=مسار التركيب المخصص "%s" ليس مجلد فارغ. الرجاء اختيار مجلد فارغ وحاول مرة أخرى.
unlock.error.customPath.description.generic=لقد اخترت مسار تركيب مخصص لهذه الخزانة، ولكن استخدامه فشل مع الرسالة: %2$s
@@ -249,22 +248,52 @@ health.result.severityFilter.info=معلومات
health.result.severityFilter.warn=تحذير
health.result.severityFilter.crit=حرج
health.result.severityTip.good=الخطورة: جيد\nبنية المخزن عادية.
health.result.severityTip.info=الخطورة: معلومات\nبنية المخزن سليمة، إصلاح المقترح.
health.result.severityTip.warn=الخطورة: تحذير\nبنية المخزن تالفة، ننصح لإصلاح.
health.result.severityTip.crit=الخطورة: حرجة\nبنية المخزن تالفة، وتم تحديد فقدان البيانات.
health.result.fixStateFilter.all=حالة لإصلاح - الكل
health.result.fixStateFilter.fixable=قابلة للإصلاح
health.result.fixStateFilter.notFixable=غير قابل للإصلاح
health.result.fixStateFilter.fixing=يتم الإصلاح…
health.result.fixStateFilter.fixed=تم الإصلاح
health.result.fixStateFilter.fixFailed=فشل الإصلاح
## Fix Application
health.fix.fixBtn=إصلاح
health.fix.successTip=تم الإصلاح بنجاح
health.fix.failTip=فشل الإصلاح، راجع السجل للحصول على التفاصيل
# Preferences
preferences.title=تفضيلات
## General
preferences.general=عام
preferences.general.startHidden=إخفاء النافذة عند بدء تشغيل Cryptomator
preferences.general.autoCloseVaults=اقفل الخزانات المفتوحة تلقائياً عند الإقلاع عن التطبيق
preferences.general.debugLogging=تمكين سجلات التصحيح
preferences.general.debugDirectory=عرض ملفات السجل
preferences.general.autoStart=تشغيل Cryptomator عند بدء تشغيل النظام
preferences.general.keychainBackend=تخزين كلمات المرور مع
## Interface
preferences.interface=الواجهة
preferences.interface.theme=الشكل والمظهر
preferences.interface.theme.automatic=تلقائي
preferences.interface.theme.dark=مظلم (أسود)
preferences.interface.theme.light=فاتح (أبيض)
preferences.interface.unlockThemes=تفعيل الوضع الداكن
preferences.interface.language=اللغة (يتطلب إعادة التشغيل)
preferences.interface.language.auto=النظام الافتراضي
preferences.interface.interfaceOrientation=اتجاه الواجهة
preferences.interface.interfaceOrientation.ltr=من اليسار إلى اليمين
preferences.interface.interfaceOrientation.rtl=من اليمين إلى اليسار
preferences.interface.showMinimizeButton=إظهار زر التصغير
preferences.interface.showTrayIcon=إظهار أيقونة اللوحة (يتطلب إعادة تشغيل)
## Volume
preferences.volume=القرص الإفتراضي
preferences.volume.type=‮نوع وحدة التخزين
preferences.volume.type.automatic=تلقائي
preferences.volume.docsTooltip=افتح الوثائق لمعرفة المزيد عن مختلف أنواع وحدة التخزين.
preferences.volume.fuseRestartRequired=لتطبيق التغييرات، يحتاج Cryptomator إلى إعادة التشغيل.
preferences.volume.tcp.port=منفذ TCP
preferences.volume.supportedFeatures=يدعم نوع وحدة تخزين المختار الميزات التالية:
## Updates
preferences.updates=تحديثات
preferences.updates.currentVersion=الإصدار الحالي: %s
@@ -310,7 +339,7 @@ main.vaultlist.contextMenu.unlock=فتح…
main.vaultlist.contextMenu.unlockNow=افتح الان
main.vaultlist.contextMenu.vaultoptions=إظهار خيارات المخزن
main.vaultlist.contextMenu.reveal=اظهار القرص
main.vaultlist.addVaultBtn=أضِف مخزنًا
main.vaultlist.addVaultBtn=إضافة
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=شكرا لاختيار Cryptomator لحماية ملفاتك. إذا كنت بحاجة إلى أية مساعدة، تحقق من دليل وتعليمات الإستخدام:
@@ -350,8 +379,8 @@ wrongFileAlert.message=هل حاولت تشفير هذه الملفات؟
wrongFileAlert.description=لهذا الغرض، بوفر Cryptomator مجلداً في مدير ملفات النظام الخاص بك.
wrongFileAlert.instruction.0=لتشفير الملفات، قم باتباع الخطوات التالية:
wrongFileAlert.instruction.1=1. فتح المخزن الخاص بك.
wrongFileAlert.instruction.2=2. انقر على "إظهار" لفتح المجلد في مدير الملفات الخاص بك.
wrongFileAlert.instruction.3=3. أضف ملفاتك إلى هذا المجلد.
wrongFileAlert.instruction.2=2. انقر على "إظهار" لفتح وحدة التخزين في مدير ملفاتك.
wrongFileAlert.instruction.3=3. أضِف ملفاتك إلى هذه وحدة التخزين.
wrongFileAlert.link=لمزيد من المساعدة، قم بزيارة
# Vault Options

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Паказаць
# Add Vault Wizard
addvaultwizard.title=Дадаць скарбніцу
## Welcome
addvaultwizard.welcome.newButton=Стварыць новую скарбніцу
addvaultwizard.welcome.existingButton=Адчыніць існуючую скарбніцу
## New
### Name
addvaultwizard.new.nameInstruction=Абраць назву для скарбніцы
@@ -353,7 +350,7 @@ main.vaultlist.contextMenu.unlock=Адамкнуць…
main.vaultlist.contextMenu.unlockNow=Разамкнуць зараз
main.vaultlist.contextMenu.vaultoptions=Паказаць параметры скарбніцы
main.vaultlist.contextMenu.reveal=Паказаць дыск
main.vaultlist.addVaultBtn=Дадаць скарбніцу
main.vaultlist.addVaultBtn=Дадаць
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Дзякуй, што ты абраў Cryptomator для абароны тваіх файлаў. Калі табе патрэбна дапамога, калі ласка, паглядзі нашы інструкцыі:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=Разкриване
# Add Vault Wizard
addvaultwizard.title=Добавяне на хранилище
## Welcome
addvaultwizard.welcome.newButton=Ново хранилище
addvaultwizard.welcome.existingButton=Отваряне на хранилище
## New
### Name
addvaultwizard.new.nameInstruction=Изберете име на хранилището
@@ -216,7 +213,6 @@ main.vaultlist.contextMenu.unlock=Отключване…
main.vaultlist.contextMenu.unlockNow=Отключване сега
main.vaultlist.contextMenu.vaultoptions=Настройки на хранилището
main.vaultlist.contextMenu.reveal=Разкриване на диска
main.vaultlist.addVaultBtn=Добавяне на хранилище
## Vault Detail
### Welcome
### Locked

View File

@@ -33,9 +33,6 @@ traymenu.vault.lock=লক করুন
# Add Vault Wizard
addvaultwizard.title=ভোল্ট যুক্ত করুন
## Welcome
addvaultwizard.welcome.newButton=নতুন ভোল্ট তৈরি করুন
addvaultwizard.welcome.existingButton=বিদ্যমান কোনো ভোল্ট খুলুন
## New
### Name
addvaultwizard.new.nameInstruction=ভোল্ট এর একটি নাম দেন
@@ -139,7 +136,6 @@ lock.forced.retryBtn=পুনরায় চেষ্টা করুন
main.closeBtn.tooltip=বন্ধ করুন
## Vault List
main.vaultlist.contextMenu.lock=লক করুন
main.vaultlist.addVaultBtn=ভোল্ট যুক্ত করুন
## Vault Detail
### Welcome
### Locked

View File

@@ -31,9 +31,6 @@ traymenu.vault.reveal=Otkrij
# Add Vault Wizard
addvaultwizard.title=Dodaj sef
## Welcome
addvaultwizard.welcome.newButton=Kreiraj novi sef
addvaultwizard.welcome.existingButton=Otvori postojeći sef
## New
### Name
addvaultwizard.new.nameInstruction=Izaberi naziv za sef
@@ -219,7 +216,6 @@ main.vaultlist.contextMenu.unlock=Otključaj…
main.vaultlist.contextMenu.unlockNow=Otključaj sada
main.vaultlist.contextMenu.vaultoptions=Pokaži opcije sefa
main.vaultlist.contextMenu.reveal=Otkrij pogon
main.vaultlist.addVaultBtn=Dodaj sef
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Hvala što ste izabrali Cryptomator za zaštitu podataka. Ako vam je potrebna pomoć, pogledajte naše vodiče za početak:

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Mostra
# Add Vault Wizard
addvaultwizard.title=Afegir una caixa forta
## Welcome
addvaultwizard.welcome.newButton=Crea una caixa forta nova
addvaultwizard.welcome.existingButton=Obri una caixa forta existent
## New
### Name
addvaultwizard.new.nameInstruction=Introduiu el nom de la caixa forta
@@ -351,7 +348,7 @@ main.vaultlist.contextMenu.unlock=Desbloca…
main.vaultlist.contextMenu.unlockNow=Desbloqueja ara
main.vaultlist.contextMenu.vaultoptions=Opcions de la caixa forta
main.vaultlist.contextMenu.reveal=Mostra la unitat
main.vaultlist.addVaultBtn=Afegir una caixa forta
main.vaultlist.addVaultBtn=Afegir
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Gràcies per escollir Cryptomator per protegir els vostres fitxers. Si vos cal ajuda, llegiu les nostres guies per donar els Primers passos:

View File

@@ -38,9 +38,6 @@ traymenu.vault.reveal=Zobrazit
# Add Vault Wizard
addvaultwizard.title=Přidat trezor
## Welcome
addvaultwizard.welcome.newButton=Vytvořit nový trezor
addvaultwizard.welcome.existingButton=Otevřít existující trezor
## New
### Name
addvaultwizard.new.nameInstruction=Zvolte jméno trezoru
@@ -341,7 +338,7 @@ main.vaultlist.contextMenu.unlock=Odemknout…
main.vaultlist.contextMenu.unlockNow=Odemknout nyní
main.vaultlist.contextMenu.vaultoptions=Zobrazit možnosti trezoru
main.vaultlist.contextMenu.reveal=Zobrazit jednotku
main.vaultlist.addVaultBtn=Přidat trezor
main.vaultlist.addVaultBtn=Přidat
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Děkujeme, že jste si vybrali Cryptomator pro ochranu vašich souborů. Pokud potřebujete pomoc, podívejte se na naše návody:

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Vis
# Add Vault Wizard
addvaultwizard.title=Tilføj boks
## Welcome
addvaultwizard.welcome.newButton=Opret ny boks
addvaultwizard.welcome.existingButton=Open eksisterende boks
## New
### Name
addvaultwizard.new.nameInstruction=Vælg et navn til boksen
@@ -358,7 +355,7 @@ main.vaultlist.contextMenu.unlock=Lås op…
main.vaultlist.contextMenu.unlockNow=Lås op nu
main.vaultlist.contextMenu.vaultoptions=Vis boksindstillinger
main.vaultlist.contextMenu.reveal=Vis drev
main.vaultlist.addVaultBtn=Tilføj boks
main.vaultlist.addVaultBtn=Tilføj
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Tak fordi du valgte Cryptomator til at beskytte dine filer. Hvis du har brug for hjælp, så tjek vores guider for at komme i gang:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Anzeigen
# Add Vault Wizard
addvaultwizard.title=Tresor hinzufügen
## Welcome
addvaultwizard.welcome.newButton=Neuen Tresor erstellen
addvaultwizard.welcome.existingButton=Bestehenden Tresor öffnen
## New
addvaultwizard.new.title=Neuen Tresor hinzufügen
### Name
addvaultwizard.new.nameInstruction=Wähle einen Namen für den Tresor
addvaultwizard.new.namePrompt=Tresorname
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Dies ist der Zugangsort deines Tresors.
addvault.new.readme.accessLocation.3=Alle zu diesem Laufwerk hinzugefügten Dateien werden von Cryptomator verschlüsselt. Du kannst mit diesem arbeiten wie mit jedem anderen Laufwerk bzw. Ordner. Dies ist lediglich eine unverschlüsselte Ansicht des Laufwerkinhalts; auf deiner Festplatte bleiben deine Dateien weiterhin verschlüsselt.
addvault.new.readme.accessLocation.4=Du kannst diese Datei löschen.
## Existing
addvaultwizard.existing.title=Bestehenden Tresor hinzufügen
addvaultwizard.existing.instruction=Wähle die Datei „vault.cryptomator“ deines bestehenden Tresors aus. Falls nur eine Datei mit der Bezeichnung „masterkey.cryptomator“ vorhanden ist, nutze stattdessen diese.
addvaultwizard.existing.chooseBtn=Durchsuchen 
addvaultwizard.existing.filePickerTitle=Tresordatei auswählen
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Tresor kann nicht in benutzerdefinierten Pfad ei
unlock.error.customPath.description.notSupported=Wenn du weiterhin den benutzerdefinierten Pfad verwenden möchtest, öffne die allgemeinen Einstellungen und wähle einen unterstützten Laufwerkstyp. Andernfalls gehe zu den Tresor-Optionen und wähle einen unterstützten Einhängepunkt.
unlock.error.customPath.description.notExists=Der benutzerdefinierte Einhängepunkt existiert nicht. Erstelle ihn in deinem lokalen Dateisystem oder ändere ihn in den Tresor-Optionen.
unlock.error.customPath.description.inUse=Der Laufwerksbuchstabe oder benutzerdefinierte Einhängepunkt „%s“ wird bereits verwendet.
unlock.error.customPath.description.hideawayNotDir=Die temporäre, versteckte Datei "%3$s", die für das Entsperren verwendet wurde, konnte nicht entfernt werden. Bitte überprüfe die Datei und lösche sie manuell.
unlock.error.customPath.description.hideawayNotDir=Die temporäre, versteckte Datei %3$s, die für das Entsperren verwendet wurde, konnte nicht entfernt werden. Bitte überprüfe die Datei und lösche sie manuell.
unlock.error.customPath.description.couldNotBeCleaned=Dein Tresor konnte nicht in den Pfad „%s“ eingehängt werden. Bitte versuche es erneut oder wähle einen anderen Pfad aus.
unlock.error.customPath.description.notEmptyDir=Der benutzerdefinierte Einhängepunkt "%s" ist kein leerer Ordner. Bitte wähle einen leeren Ordner und versuche es erneut.
unlock.error.customPath.description.generic=Du hast für diesen Tresor einen benutzerdefinierten Einhängepunkt ausgewählt, aber dessen Verwendung ist mit folgender Meldung fehlgeschlagen: %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Entsperren …
main.vaultlist.contextMenu.unlockNow=Jetzt entsperren
main.vaultlist.contextMenu.vaultoptions=Tresoroptionen anzeigen
main.vaultlist.contextMenu.reveal=Laufwerk anzeigen
main.vaultlist.addVaultBtn=Tresor hinzufügen
main.vaultlist.addVaultBtn=Hinzufügen
main.vaultlist.addVaultBtn.menuItemNew=Neuer Tresor …
main.vaultlist.addVaultBtn.menuItemExisting=Bestehender Tresor …
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Danke, dass du zum Schutz deiner Dateien Cryptomator gewählt hast. Falls du Hilfe brauchst, schau dir unsere Anleitungen an:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Αποκάλυψη
# Add Vault Wizard
addvaultwizard.title=Προσθήκη Κρύπτης
## Welcome
addvaultwizard.welcome.newButton=Δημιουργία Νέας Κρύπτης
addvaultwizard.welcome.existingButton=Άνοιγμα Υπάρχοντος Κρύπτης
## New
addvaultwizard.new.title=Προσθήκη Νέας Κρύπτης
### Name
addvaultwizard.new.nameInstruction=Διαλέξτε ένα όνομα για την κρύπτη
addvaultwizard.new.namePrompt=Όνομα Κρύπτης
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Αυτή είναι η τοποθεσία
addvault.new.readme.accessLocation.3=Κάθε αρχείο που θα προστεθεί σε αυτό τον τόμο θα κωδικοποιηθεί από το Cryptomator. Μπορείτε να το επεξεργαστείτε όπως θα κάνατε σε κάθε δίσκο/φάκελο. Αυτή είναι μόνο για αποκρυπτογραφημένη μορφή των περιεχομένων του, τα αρχεία σας μένουν κωδικοποιημένα στον σκληρό σας δίσκο συνέχεια.
addvault.new.readme.accessLocation.4=Μπορείτε ελεύθερα να αφαιρέσετε το αρχείο.
## Existing
addvaultwizard.existing.title=Προσθήκη Υπάρχοντος Κρύπτης
addvaultwizard.existing.instruction=Επιλέξτε το αρχείο "vault.cryptomator" της υπάρχοντος κρύπτης. Αν υπάρχει μόνο ένα αρχείο με όνομα "masterkey.cryptomator", επιλέξτε αυτό.
addvaultwizard.existing.chooseBtn=Επιλογή…
addvaultwizard.existing.filePickerTitle=Επιλέξτε Αρχείο Κρύπτης
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Αδυναμία προσάρτησης της
unlock.error.customPath.description.notSupported=Εάν θέλετε να συνεχίσετε να χρησιμοποιείτε την προσαρμοσμένη διαδρομή, μεταβείτε στις προτιμήσεις και επιλέξτε έναν τύπο τόμου που την υποστηρίζει. Διαφορετικά, μεταβείτε στις επιλογές της κρύπτης και επιλέξτε ένα υποστηριζόμενο σημείο προσάρτησης.
unlock.error.customPath.description.notExists=Η προσαρμοσμένη διαδρομή προσάρτησης δεν υπάρχει. Είτε δημιουργήστε την στο τοπικό σύστημα αρχείων σας είτε αλλάξτε την στις επιλογές κρύπτης.
unlock.error.customPath.description.inUse=Το γράμμα μονάδας δίσκου ή προσαρμοσμένη διαδρομή προσάρτησης "%s" είναι ήδη σε χρήση.
unlock.error.customPath.description.hideawayNotDir=Το προσωρινό, κρυφό αρχείο "%3$s" που χρησιμοποιείται για το ξεκλείδωμα δεν μπορεί να αφαιρεθεί. Παρακαλώ ελέγξτε το αρχείο και στη συνέχεια διαγράψτε το χειροκίνητα.
unlock.error.customPath.description.hideawayNotDir=Το προσωρινό, κρυφό αρχείο "%3$s" που χρησιμοποιείται για το ξεκλείδωμα δεν μπορεί να αφαιρεθεί. Παρακαλούμε ελέγξτε το αρχείο και στη συνέχεια διαγράψτε το χειροκίνητα.
unlock.error.customPath.description.couldNotBeCleaned=Η κρύπτη σας δεν μπορεί να τοποθετηθεί στη διαδρομή "%s". Παρακαλώ δοκιμάστε ξανά ή επιλέξτε διαφορετική διαδρομή.
unlock.error.customPath.description.notEmptyDir=Η προσαρμοσμένη διαδρομή προσάρτησης "%s" δεν είναι ένας άδειος φάκελος. Παρακαλώ επιλέξτε έναν άδειο φάκελο και προσπαθήστε ξανά.
unlock.error.customPath.description.generic=Έχετε επιλέξει μια προσαρμοσμένη διαδρομή προσάρτησης για αυτή την κρύπτη, αλλά η χρήση της απέτυχε με το μήνυμα: %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Ξεκλείδωμα…
main.vaultlist.contextMenu.unlockNow=Ξεκλείδωμα τώρα
main.vaultlist.contextMenu.vaultoptions=Εμφάνιση επιλογών Vault
main.vaultlist.contextMenu.reveal=Αποκάλυψη εικονικού δίσκου
main.vaultlist.addVaultBtn=Προσθήκη Κρύπτης
main.vaultlist.addVaultBtn=Προσθήκη
main.vaultlist.addVaultBtn.menuItemNew=Νέα Κρύπτη...
main.vaultlist.addVaultBtn.menuItemExisting=Υπάρχουσα Κρύπτη...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Revelar
# Add Vault Wizard
addvaultwizard.title=Añadir bóveda
## Welcome
addvaultwizard.welcome.newButton=Crear bóveda nueva
addvaultwizard.welcome.existingButton=Abrir bóveda existente
## New
addvaultwizard.new.title=Añadir nueva bóveda
### Name
addvaultwizard.new.nameInstruction=Elegir un nombre para la bóveda
addvaultwizard.new.namePrompt=Nombre de la bóveda
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Este es el lugar de acceso de la bóveda.
addvault.new.readme.accessLocation.3=Los archivos agregados a este volumen serán cifrados por Cryptomator. Se puede trabajar con ellos como en cualquier otra unidad/carpeta. Esta es sólo una vista descifrada del contenido, sus archivos permanecen cifrados en el disco duro todo el tiempo.
addvault.new.readme.accessLocation.4=No dude en eliminar este archivo.
## Existing
addvaultwizard.existing.title=Añadir bóveda existente
addvaultwizard.existing.instruction=Elija el archivo "vault.cryptomator" de su bóveda existente. Si solo existe un archivo llamado "masterkey.cryptomator", selecciónelo en su lugar.
addvaultwizard.existing.chooseBtn=Elegir…
addvaultwizard.existing.filePickerTitle=Seleccionar archivo de bóveda
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Desbloquear…
main.vaultlist.contextMenu.unlockNow=Desbloquear ahora
main.vaultlist.contextMenu.vaultoptions=Mostrar opciones de la bóveda
main.vaultlist.contextMenu.reveal=Revelar unidad
main.vaultlist.addVaultBtn=Añadir bóveda
main.vaultlist.addVaultBtn=Añadir
main.vaultlist.addVaultBtn.menuItemNew=Nueva bóveda...
main.vaultlist.addVaultBtn.menuItemExisting=Bóveda existente...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger sus archivos. En caso de necesitar ayuda, revise nuestras guías:

View File

@@ -30,9 +30,6 @@ traymenu.vault.reveal=ظاهر
# Add Vault Wizard
addvaultwizard.title=اضافه کردن گاوصندوق
## Welcome
addvaultwizard.welcome.newButton=ساخت گاوصندوق جدید
addvaultwizard.welcome.existingButton=باز کردن گاوصندوق موجود
## New
### Name
addvaultwizard.new.nameInstruction=یک نام برای گاوصندوق انتخاب کنید
@@ -112,7 +109,6 @@ main.closeBtn.tooltip=ببند
main.supporterCertificateMissing.tooltip=لطفا کمک مالی در نظر بگیرند
## Vault List
main.vaultlist.contextMenu.lock=قفل
main.vaultlist.addVaultBtn=اضافه کردن گاوصندوق
## Vault Detail
### Welcome
### Locked

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Paljasta
# Add Vault Wizard
addvaultwizard.title=Lisää Vault
## Welcome
addvaultwizard.welcome.newButton=Luo Uusi Vault
addvaultwizard.welcome.existingButton=Avaa Olemassaoleva Vault
## New
### Name
addvaultwizard.new.nameInstruction=Anna uusi nimi Vaultille
@@ -233,7 +230,6 @@ main.preferencesBtn.tooltip=Asetukset
main.vaultlist.contextMenu.lock=Lukitse
main.vaultlist.contextMenu.unlockNow=Avaa Nyt
main.vaultlist.contextMenu.reveal=Paljasta Asema
main.vaultlist.addVaultBtn=Lisää Vault
## Vault Detail
### Welcome
### Locked

View File

@@ -20,6 +20,10 @@ error.description=Oops! Hindi inaasahan ng Cryptomator na ito'y mangyari. Maaari
error.hyperlink.lookup=Hanapin ang solusyon
error.hyperlink.report=I-report ang problema
error.technicalDetails=Mga detalye:
error.existingSolutionDescription=Hindi inaasahan ng Cryptomator na mangyayari ito. Ngunit nakakita kami ng kasalukuyang solusyon para sa error na ito. Mangyaring tingnan ang sumusunod na link.
error.hyperlink.solution=Hanapin ang solusyon
error.lookupPermissionMessage=Maaaring maghanap ng solusyon ang Cryptomator para sa problemang ito online. Magpapadala ito ng kahilingan sa aming database ng problema mula sa iyong IP address.
error.dismiss=I-dismiss
error.lookUpSolution=Itignan ang solusyon
# Defaults
@@ -36,10 +40,8 @@ traymenu.vault.reveal=Ipakita
# Add Vault Wizard
addvaultwizard.title=Magdagdag ng Vault
## Welcome
addvaultwizard.welcome.newButton=Gumawa ng Bagong Vault
addvaultwizard.welcome.existingButton=Magbukas ng Umiiral na Vault
## New
addvaultwizard.new.title=Magdagdag ng Bagong Vault
### Name
addvaultwizard.new.nameInstruction=Pangalanan ang vault
addvaultwizard.new.namePrompt=Pangalan ng Vault
@@ -50,34 +52,78 @@ addvaultwizard.new.locationPrompt=…
addvaultwizard.new.directoryPickerLabel=Custom Location
addvaultwizard.new.directoryPickerButton=Mamili…
addvaultwizard.new.directoryPickerTitle=Pumili ng Direktoryo
addvaultwizard.new.fileAlreadyExists=Mayroon nang file o direktoryo na may pangalan ng vault
addvaultwizard.new.locationDoesNotExist=Ang isang direktoryo sa tinukoy na landas ay hindi umiiral o hindi ma-access
addvaultwizard.new.locationIsNotWritable=Walang access sa pagsulat sa tinukoy na landas
addvaultwizard.new.locationIsOk=Angkop na lokasyon para sa iyong vault
addvaultwizard.new.invalidName=Di-wastong pangalan ng vault
addvaultwizard.new.validName=Wastong pangalan ng vault
addvaultwizard.new.validCharacters.message=Maaaring naglalaman ang pangalan ng vault ng mga sumusunod na character:
addvaultwizard.new.validCharacters.chars=Mga character ng salita (hal. a, ж o 수)
addvaultwizard.new.validCharacters.numbers=Numero
addvaultwizard.new.validCharacters.dashes=Hyphen (%s) o underscore (%s)
### Expert Settings
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Paganahin ang mga setting ng eksperto
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Maglagay ng value sa pagitan ng 36 at 220 (default 220)
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Ibukas ang dokumentasyon para matuto pa.
addvaultwizard.new.expertSettings.shorteningThreshold.title=Pinakamataas na haba ng mga naka-encrypt na pangalan ng file
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Wasto
### Password
addvaultwizard.new.createVaultBtn=Gumawa ng bagong Vault
addvaultwizard.new.generateRecoveryKeyChoice=Hindi mo maa-access ang iyong data nang wala ang iyong password. Gusto mo ba ng recovery key para sa kaso na nawala mo ang iyong password?
addvaultwizard.new.generateRecoveryKeyChoice.yes=Oo pakiusap, mas ligtas kaysa sorry
addvaultwizard.new.generateRecoveryKeyChoice.no=Hindi, salamat, hindi ko mawawala ang aking password
### Information
addvault.new.readme.storageLocation.fileName=MAHALAGA.rtf
addvault.new.readme.storageLocation.1=⚠️ VAULT FILES ⚠️
addvault.new.readme.storageLocation.2=Ito ang lokasyon ng iyong vault na imbakan.
addvault.new.readme.storageLocation.3=HUWAG
addvault.new.readme.storageLocation.4=• baguhin ang anumang mga file sa loob ng direktoryong ito o
addvault.new.readme.storageLocation.5=• i-paste ang anumang mga file para sa pag-encrypt sa direktoryong ito.
addvault.new.readme.storageLocation.6=Kung gusto mo i-encrypt ang mga files at makita nang nilalaman ng vault, gawin ang nakasabi:
addvault.new.readme.storageLocation.7=1. Idagdag ang vault na ito sa Cryptomator.
addvault.new.readme.storageLocation.8=2. I-unlock ang vault sa Cryptomator.
addvault.new.readme.storageLocation.9=3. Buksan ang lokasyon ng pag-access sa pamamagitan ng pag-click sa pindutang "Ibunyag".
addvault.new.readme.storageLocation.10=Kung kailangan mo ng tulong, bisitahin ang dokumentasyon: %s
addvault.new.readme.accessLocation.fileName=WELCOME.rtf
addvault.new.readme.accessLocation.1=🔐️ Naka-encrypt na VOLUME 🔐️
addvault.new.readme.accessLocation.2=Ito ang lokasyon ng iyong vault.
addvault.new.readme.accessLocation.3=Ang anumang mga file na idinagdag sa volume na ito ay ie-encrypt ng Cryptomator. Maaari mong gawin ito tulad ng sa anumang iba pang drive/folder. Ito ay isang decrypted view lamang ng nilalaman nito, ang iyong mga file ay mananatiling naka-encrypt sa iyong hard drive sa lahat ng oras.
addvault.new.readme.accessLocation.4=Huwag mag-atubiling tanggalin ang file na ito.
## Existing
addvaultwizard.existing.title=Magdagdag ng Umiiral na Vault
addvaultwizard.existing.instruction=Piliin ang "vault.cryptomator" file ng iyong kasalukuyang vault. Kung mayroon lamang file na may pangalang "masterkey.cryptomator," piliin iyon sa halip.
addvaultwizard.existing.chooseBtn=Mamili…
addvaultwizard.existing.filePickerTitle=Piliin ang Vault File
addvaultwizard.existing.filePickerMimeDesc=Cryptomator Vault
## Success
addvaultwizard.success.nextStepsInstructions=Idinagdag ang vault na "%s".\nKailangan mong i-unlock ang vault na ito para ma-access o magdagdag ng mga content. Bilang kahalili, maaari mo itong i-unlock sa anumang susunod na oras.
addvaultwizard.success.unlockNow=I-unlock Ngayon
# Remove Vault
removeVault.title=Tanggalin %s
removeVault.message=Itangal ang vault?
removeVault.description=Makakalimutan lang nito ang Cryptomator tungkol sa vault na ito. Maaari mo itong idagdag muli. Walang matatanggal na mga naka-encrypt na file mula sa iyong hard drive.
removeVault.confirmBtn=Itangal ang vault
# Change Password
changepassword.title=Palitan ANG password
changepassword.enterOldPassword=Ilagay ang kasalukuyang password para sa "%s"
changepassword.finalConfirmation=Naiintindihan ko na hindi ko maa-access ang aking data kung nakalimutan ko ang aking password
# Forget Password
forgetPassword.title=Kalimutan ang Password
forgetPassword.message=Nakalimutan ang iyong password?
forgetPassword.description=Tatanggalin nito ang naka-save na password ng vault na ito mula sa keychain ng iyong system.
forgetPassword.confirmBtn=Kalimutan ang Password
# Unlock
unlock.title=I-unlock ang "%s"
unlock.passwordPrompt=Ipasok ang password para sa "%s":
unlock.savePassword=Maalala ang password
unlock.unlockBtn=I-unlock
## Select
unlock.chooseMasterkey.message=Hindi nahanap ang masterkey file
unlock.chooseMasterkey.filePickerTitle=Piliin ang masterkey file
unlock.chooseMasterkey.filePickerMimeDesc=Cryptomator Masterkey
## Success
@@ -103,6 +149,7 @@ lock.forced.retryBtn=Subukan muli
## Start
## Run
## Success
migration.success.unlockNow=I-unlock Ngayon
## Missing file system capabilities
## Impossible
@@ -139,10 +186,12 @@ main.closeBtn.tooltip=Isara
main.preferencesBtn.tooltip=Mga Kagustuhan
## Vault List
main.vaultlist.contextMenu.lock=I-lock
main.vaultlist.addVaultBtn=Magdagdag ng Vault
main.vaultlist.contextMenu.unlockNow=I-unlock Ngayon
main.vaultlist.addVaultBtn=Idagdag
## Vault Detail
### Welcome
### Locked
main.vaultDetail.unlockNowBtn=I-unlock Ngayon
### Unlocked
main.vaultDetail.lockBtn=I-lock
### Missing
@@ -158,6 +207,7 @@ vaultOptions.general.vaultName=Pangalan ng Vault
## Mount
vaultOptions.mount.mountPoint.directoryPickerButton=Mamili…
## Master Key
vaultOptions.masterkey.changePasswordBtn=Palitan ANG password
## Hub
# Recovery Key

View File

@@ -22,9 +22,9 @@ error.hyperlink.report=Signaler cette erreur
error.technicalDetails=Détails :
error.existingSolutionDescription=Cryptomator ne s'attendait pas à ce que cela se produise. Mais nous avons trouvé une solution existante pour cette erreur. Veuillez consulter le lien suivant.
error.hyperlink.solution=Rechercher la solution
error.lookupPermissionMessage=Cryptomator peut rechercher une solution en ligne. Une requête sera envoyée à notre base de données de problèmes à partir de votre adresse IP.
error.lookupPermissionMessage=Cryptomator peut trouver une solution à ce problème en ligne. Cela enverra une requête à notre base de données de problèmes à partir de votre adresse IP.
error.dismiss=Ignorer
error.lookUpSolution=Rechercher une solution
error.lookUpSolution=Rechercher la solution
# Defaults
defaults.vault.vaultName=Coffre
@@ -40,10 +40,8 @@ traymenu.vault.reveal=Révéler
# Add Vault Wizard
addvaultwizard.title=Ajouter un coffre
## Welcome
addvaultwizard.welcome.newButton=Créer un nouveau coffre
addvaultwizard.welcome.existingButton=Ouvrir un coffre existant
## New
addvaultwizard.new.title=Ajouter un nouveau coffre
### Name
addvaultwizard.new.nameInstruction=Choisir un nom pour le coffre
addvaultwizard.new.namePrompt=Nom du coffre
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Ceci est le chemin d'accès de votre coffre
addvault.new.readme.accessLocation.3=Tous les fichiers ajoutés à ce volume seront chiffrés par Cryptomator. Vous pouvez l'utiliser comme n'importe quel lecteur/répertoire. Ceci est seulement une vue déchiffrée de son contenu, vos fichiers restent chiffrés dans votre disque dur en permanence.
addvault.new.readme.accessLocation.4=Vous pouvez supprimer ce fichier.
## Existing
addvaultwizard.existing.title=Ajouter un coffre existant
addvaultwizard.existing.instruction=Choisissez le fichier « vault.cryptomator » de votre volume existant. Si seul le fichier « masterkey.cryptomator » est présent, sélectionnez celui-là.
addvaultwizard.existing.chooseBtn=Choisir...
addvaultwizard.existing.filePickerTitle=Sélectionnez le fichier correspondant au volume chiffré
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Impossible de monter le coffre vers le chemin pe
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.inUse=La lettre de lecteur ou le point de montage personnalisé «%s» est déjà utilisé.
unlock.error.customPath.description.hideawayNotDir=Le fichier temporaire et caché « %3$s » utilisé pour le déverrouillage na pas pu être supprimé. Veuillez vérifier le fichier puis le supprimer manuellement.
unlock.error.customPath.description.hideawayNotDir=Le fichier temporaire et caché «%3$s» utilisé pour déverrouiller n'a pas pu être supprimé. Veuillez vérifier le fichier puis le supprimer manuellement.
unlock.error.customPath.description.couldNotBeCleaned=Votre coffre n'a pas pu être monté au point "%s". Veuillez réessayer ou choisissez un autre point.
unlock.error.customPath.description.notEmptyDir=Le chemin de montage personnalisé "%s" n'est pas un dossier vide. Veuillez choisir un dossier vide et réessayez.
unlock.error.customPath.description.generic=Vous avez sélectionné un point de montage personnalisé pour ce coffre, mais son utilisation a échoué avec le message : %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Déverrouiller…
main.vaultlist.contextMenu.unlockNow=Déverrouiller maintenant
main.vaultlist.contextMenu.vaultoptions=Afficher les options du volume chiffré
main.vaultlist.contextMenu.reveal=Afficher le lecteur
main.vaultlist.addVaultBtn=Ajouter un volume chiffré
main.vaultlist.addVaultBtn=Ajouter
main.vaultlist.addVaultBtn.menuItemNew=Nouveau coffre...
main.vaultlist.addVaultBtn.menuItemExisting=Coffre existant...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Merci d'avoir choisi Cryptomator pour protéger vos fichiers. Si vous avez besoin d'aide, consultez nos guides de démarrage :

View File

@@ -22,7 +22,6 @@ error.message=Produciuse un erro
# Tray Menu
# Add Vault Wizard
## Welcome
## New
### Name
### Location

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=חשוף
# Add Vault Wizard
addvaultwizard.title=הוספת כספת
## Welcome
addvaultwizard.welcome.newButton=צור כספת חדשה
addvaultwizard.welcome.existingButton=פתיחת כספת קיימת
## New
### Name
addvaultwizard.new.nameInstruction=בחירת שם עבור הכספת
@@ -127,6 +124,7 @@ unlock.success.revealBtn=חשוף את הכונן
unlock.error.customPath.message=כשלון בקישור הכספת לנתיב הידני שהוגדר
unlock.error.customPath.description.notSupported=אם ברצונך להשתמש בנתיב ידני, אנא גש להעדפות ובחר סוג volume שתומך בכך. אחרת, לך לאפשרויות הכספת ובחר אפשרות יעד קישור נתמך.
unlock.error.customPath.description.notExists=יעד הקישור הידני לא קיים. או שתיצור אותו במערכת הקבצים המקומית או שנה אותו באפשרויות הכספת.
unlock.error.customPath.description.hideawayNotDir=הקובץ הזמני, הנסתר %3$s עבור פתיחה לא ניתן להסרה. יש לבדוק את הקובץ ולמחוק אותו ידנית.
## Hub
hub.noKeychain.message=לא ניתן לגשת למפתח המכשיר
hub.noKeychain.description=כדאי לשחרר כספות האב נדרש מפתח מכשיר שיאובטח בצרור מפתחות. כדאי להמשיך, אפשר ״%s״ ובחר את צרור המפתחות בהעדפות.
@@ -351,7 +349,7 @@ main.vaultlist.contextMenu.unlock=שחרר נעילה…
main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת
main.vaultlist.contextMenu.vaultoptions=הצג את אפשרויות הכספת
main.vaultlist.contextMenu.reveal=חשוף את הכונן
main.vaultlist.addVaultBtn=יצירת כספת
main.vaultlist.addVaultBtn=הוספה
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=תודה שבחרת ב- Cryptomator להגן על הקבצים שלך. אם אתה זקוק לסיוע, אנא עיין במדריכים שלנו:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=प्रत्यक्ष करें
# Add Vault Wizard
addvaultwizard.title=वाउल्ट डालें
## Welcome
addvaultwizard.welcome.newButton=नया वाउल्ट बनाएं
addvaultwizard.welcome.existingButton=मौजूदा वाउल्ट खोलें
## New
### Name
addvaultwizard.new.nameInstruction=वाउल्ट के लिए नाम चुनें
@@ -212,7 +209,6 @@ main.vaultlist.contextMenu.unlock=अनलॉक करें...
main.vaultlist.contextMenu.unlockNow=अब अनलॉक करें
main.vaultlist.contextMenu.vaultoptions=वॉल्ट के विकल्प दिखाए
main.vaultlist.contextMenu.reveal=फोल्डर खोलें
main.vaultlist.addVaultBtn=वाउल्ट डालें
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Cryptomator को अपनी फाइल्स सिराक्षित रखने को चुनने के लिए धन्यवाद। अगर आपको सहायता चाइये, तो हमारी गेटिंग स्टार्टेड गाइगाइड्स देखिये:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=Otkrij
# Add Vault Wizard
addvaultwizard.title=Dodaj trezor
## Welcome
addvaultwizard.welcome.newButton=Izradi novi trezor
addvaultwizard.welcome.existingButton=Otvori postojeći trezor
## New
### Name
addvaultwizard.new.nameInstruction=Odaberi ime za trezor
@@ -277,7 +274,7 @@ main.vaultlist.contextMenu.unlock=Otključaj…
main.vaultlist.contextMenu.unlockNow=Otključaj sada
main.vaultlist.contextMenu.vaultoptions=Prikaži opcije trezora
main.vaultlist.contextMenu.reveal=Otkrij pogon
main.vaultlist.addVaultBtn=Dodaj trezor
main.vaultlist.addVaultBtn=Dodaj
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Hvala što ste odabrali Cryptomator za zaštitu Vaših datoteka. Ukoliko trebate pomoć, provjerite naše vodiče za početak rada:

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Megmutatás
# Add Vault Wizard
addvaultwizard.title=Széf hozzáadása
## Welcome
addvaultwizard.welcome.newButton=Új széf létrehozása
addvaultwizard.welcome.existingButton=Meglévő széf megnyitása
## New
### Name
addvaultwizard.new.nameInstruction=Válasszon egy nevet az új széf számára
@@ -135,7 +132,6 @@ unlock.error.customPath.message=Nem lehet csatolni a széfet az egyéni útvonal
unlock.error.customPath.description.notSupported=Ha szeretné továbbra is az egyéni útvonalat használni, kérem, menjen a beállításokba és válasszon egy kötet típust, amely támogatja azt. Máskülönben, menjen a széf opciókhoz és válasszon egy támogatott csatoláspontot.
unlock.error.customPath.description.notExists=Az egyéni csatolás útvonal nem létezik. Hozza létre a helyi fájlrendszerében vagy változtassa meg a széf opciókban.
unlock.error.customPath.description.inUse=A meghajtó betűjele vagy a csatolási útvonal: "%s" már foglalt.
unlock.error.customPath.description.hideawayNotDir=A feloldáshoz használt, "%3$s" nevű ideiglenes, rejtett fájlt nem lehet eltávolítani. Kérjük, ellenőrizze a fájlt, majd törölje manuálisan.
unlock.error.customPath.description.couldNotBeCleaned=A széfet nem lehetett a "%s" elérési útvonalra csatlakoztatni. Kérjük, próbálja meg újra, vagy válasszon másik elérési útvonalat.
unlock.error.customPath.description.notEmptyDir=A megadott "%s" elérési útvonal nem egy üres mappa. Kérjük, válasszon egy üres mappát, és próbálja meg újra.
unlock.error.customPath.description.generic=Egyéni csatolási útvonalat választott ehhez a széfhez, de használatakor ez a hibaüzenet érkezett: %2$s
@@ -363,7 +359,7 @@ main.vaultlist.contextMenu.unlock=Feloldás…
main.vaultlist.contextMenu.unlockNow=Azonnali feloldás
main.vaultlist.contextMenu.vaultoptions=Széf beállítások
main.vaultlist.contextMenu.reveal=Széf megjelenítése
main.vaultlist.addVaultBtn=Széf hozzáadása
main.vaultlist.addVaultBtn=Hozzáadás
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Köszönjük, hogy a Cryptomator programot választotta a fájlai védelmére. Ha segítségre van szüksége, akkor olvassa el a kezdő útmutatónk lépéseit:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=Perlihatkan
# Add Vault Wizard
addvaultwizard.title=Tambah Vault
## Welcome
addvaultwizard.welcome.newButton=Buat Vault Baru
addvaultwizard.welcome.existingButton=Buka Vault yang Tersedia
## New
### Name
addvaultwizard.new.nameInstruction=Beri nama untuk vault berikut
@@ -277,7 +274,6 @@ main.vaultlist.contextMenu.unlock=Buka Kunci…
main.vaultlist.contextMenu.unlockNow=Buka Kunci Sekarang
main.vaultlist.contextMenu.vaultoptions=Tampilkan Opsi Vault
main.vaultlist.contextMenu.reveal=Buka Drive
main.vaultlist.addVaultBtn=Tambah Vault
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Mostra
# Add Vault Wizard
addvaultwizard.title=Aggiungi Cassaforte
## Welcome
addvaultwizard.welcome.newButton=Crea Nuova Cassaforte
addvaultwizard.welcome.existingButton=Apri Cassaforte Esistente
## New
addvaultwizard.new.title=Aggiungi una Nuova Cassaforte
### Name
addvaultwizard.new.nameInstruction=Scegli un nome per la cassaforte
addvaultwizard.new.namePrompt=Nome della Cassaforte
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Questa è la posizione d'accesso della tua
addvault.new.readme.accessLocation.3=Ogni file aggiunto a questo volume sarà crittografato da Cryptomator. Puoi lavorarci come su ogni altra unità/cartella. Questa è solo una vista decrittografata del suo contenuto, i tuoi file restano sempre crittografati sul tuo disco rigido.
addvault.new.readme.accessLocation.4=Sentiti libero di rimuovere questo file.
## Existing
addvaultwizard.existing.title=Aggiungi una Cassaforte Esistente
addvaultwizard.existing.instruction=Scegliere il file "vault.cryptomator" della tua cassaforte. Se esiste solo un file chiamato "masterkey.cryptomator", allora scegli quello.
addvaultwizard.existing.chooseBtn=Scegli…
addvaultwizard.existing.filePickerTitle=Seleziona file cassaforte
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Impossibile montare la cassaforte sul percorso p
unlock.error.customPath.description.notSupported=Se desideri continuare a utilizzare il percorso personalizzato, vai alle preferenze e seleziona un tipo di volume che lo supporta. Altrimenti, vai alle opzioni della cassaforte e scegli un punto di montaggio supportato.
unlock.error.customPath.description.notExists=Il percorso di mount personalizzato non esiste. Crealo nel tuo file system locale o cambialo nelle opzioni della cassaforte.
unlock.error.customPath.description.inUse=La lettera di unità o il percorso di montaggio selezionato "%s" è già in uso.
unlock.error.customPath.description.hideawayNotDir=Il file provvisorio nascosto "%3$s" utilizzato per sbloccare non può essere rimosso. Controlla il file ed eliminalo manualmente.
unlock.error.customPath.description.hideawayNotDir=Impossibile rimuovere il file temporaneo nascosto "%3$s" utilizzato per lo sblocco. Controllare il file e quindi eliminarlo manualmente.
unlock.error.customPath.description.couldNotBeCleaned=La tua cassaforte non può essere montata sul percorso "%s". Riprova o scegli un percorso diverso.
unlock.error.customPath.description.notEmptyDir=Il percorso di montaggio selezionato "%s" non è una cartella vuota. Scegli una cartella vuota e riprova.
unlock.error.customPath.description.generic=Hai selezionato un percorso di montaggio personalizzato per questa cassaforte, ma il suo utilizzo non è riuscito con il messaggio: %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Sblocca…
main.vaultlist.contextMenu.unlockNow=Sblocca Ora
main.vaultlist.contextMenu.vaultoptions=Mostra le Opzioni della Cassaforte
main.vaultlist.contextMenu.reveal=Rivela Unità
main.vaultlist.addVaultBtn=Aggiungi Cassaforte
main.vaultlist.addVaultBtn=Aggiungi
main.vaultlist.addVaultBtn.menuItemNew=Nuova Cassaforte...
main.vaultlist.addVaultBtn.menuItemExisting=Cassaforte esistente...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Grazie per aver scelto Cryptomator per proteggere i tuoi file. Se necessiti d'assistenza, dai un'occhiata alle nostre guide per iniziare:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=表示
# Add Vault Wizard
addvaultwizard.title=金庫を追加
## Welcome
addvaultwizard.welcome.newButton=新しい金庫を作成
addvaultwizard.welcome.existingButton=すでにある金庫を開く
## New
addvaultwizard.new.title=新しい金庫を追加
### Name
addvaultwizard.new.nameInstruction=金庫の名前を入力してください
addvaultwizard.new.namePrompt=金庫の名前
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=ここは金庫のアクセス先です。
addvault.new.readme.accessLocation.3=このボリュームに追加したファイルは Cryptomator によって暗号化されます。一般的なドライブ/フォルダー上のように作業することができます。ここでは復号したコンテンツのビューにすぎず、ファイルは常にハードドライブ上で暗号化されています。
addvault.new.readme.accessLocation.4=このファイルはいつでも削除できます。
## Existing
addvaultwizard.existing.title=既存の金庫を追加
addvaultwizard.existing.instruction=すでにある金庫の "vault.cryptomator" ファイルを選択してください。"masterkey.cryptomator" という名前のファイルだけが存在する場合は、このファイルを代わりに選択してください。
addvaultwizard.existing.chooseBtn=選択...
addvaultwizard.existing.filePickerTitle=金庫のファイルを選択
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=解錠...
main.vaultlist.contextMenu.unlockNow=今すぐ解錠
main.vaultlist.contextMenu.vaultoptions=金庫のオプションを表示
main.vaultlist.contextMenu.reveal=ドライブを表示
main.vaultlist.addVaultBtn=金庫を追加
main.vaultlist.addVaultBtn=追加
main.vaultlist.addVaultBtn.menuItemNew=新しい金庫...
main.vaultlist.addVaultBtn.menuItemExisting=既存の金庫...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=ファイルを保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=표시
# Add Vault Wizard
addvaultwizard.title=Vault 추가
## Welcome
addvaultwizard.welcome.newButton=새 Vault 생성
addvaultwizard.welcome.existingButton=기존 Vault 열기
## New
### Name
addvaultwizard.new.nameInstruction=새 Vault의 이름을 입력하십시요
@@ -134,10 +131,15 @@ hub.register.registerBtn=확인
### Registration Success
### Registration Failed
### Unauthorized
hub.unauthorized.message=액세스 거부
hub.unauthorized.description=귀하의 기기는 아직 이 저장소에 액세스할 수 있는 권한이 없습니다. Vault 소유자에게 승인을 요청하세요.
### License Exceeded
hub.invalidLicense.message=Hub 라이선스가 잘못되었습니다.
hub.invalidLicense.description=Cryptomator Hub 인스턴스에 잘못된 라이선스가 있습니다. 라이센스를 업그레이드하거나 갱신하려면 허브 관리자에게 알리십시오.
# Lock
## Force
lock.forced.message=잠금 실패
lock.forced.description=대기 중인 작동이나 파일이 열려있어 "%s"를 잠그는데 실패하였습니다. 이 Vault를 강제로 잠글 수 있으나, 입/출력의 중단은 저장되지 않은 데이터의 유실을 초래할 수 있습니다.
lock.forced.retryBtn=재시도
lock.forced.forceBtn=강제 잠금
@@ -178,6 +180,7 @@ migration.impossible.moreInfo=Vault를 이전 버전으로 계속 열수 있습
health.title="%s"의 상태 검사
health.intro.header=상태 검사
health.intro.text=상태 검사는 Vault의 내부 구조의 문제점을 점검하고 해결할 수 있는 기능입니다. 다음 사항을 유의하시기 바랍니다:
health.intro.remarkFix=모든 문제를 해결할 수 있는 것은 아닙니다.
health.intro.remarkBackup=데이터가 손상된 경우 백업만이 유일한 해결책입니다.
health.intro.affirmation=나는 위 정보를 읽고 정말 이해했습니다.
## Start Failure
@@ -186,6 +189,7 @@ health.fail.ioError=설정 파일에 접근하는 중 에러가 발생했습니
health.fail.parseError=Vault 설정을 파싱하는 중 에러가 발생했습니다.
health.fail.moreInfo=더 많은 정보
## Check Selection
health.checkList.description=검사할 항목을 왼쪽 목록에서 선택하거나 아래 버튼을 사용하세요.
health.checkList.selectAllButton=모든 항목 선택
health.checkList.deselectAllButton=모든 항목 선택 해제
health.check.runBatchBtn=선택된 검사항목 실행
@@ -195,6 +199,8 @@ health.check.detail.checkScheduled=검사가 예약되었습니다.
health.check.detail.checkRunning=검사가 현재 실행중입니다...
health.check.detail.checkSkipped=선택된 검사항목이 없습니다.
health.check.detail.checkFinished=검사가 성공적으로 완료되었습니다.
health.check.detail.checkFinishedAndFound=검사가 완료되었습니다. 검사 결과를 확인해주세요.
health.check.detail.checkCancelled=검사가 취소되었습니다
health.check.detail.listFilters.label=필터
health.check.exportBtn=보고서 내보내기
## Result view
@@ -228,9 +234,12 @@ preferences.interface.showMinimizeButton=최소화 버튼 표시
preferences.interface.showTrayIcon=트레이 아이콘 보기 (재시작 필요)
## Volume
preferences.volume=가상 드라이브
preferences.volume.type=볼륨 유형
preferences.volume.type.automatic=자동
preferences.volume.tcp.port=TCP 포트
preferences.volume.supportedFeatures=현재 선택한 볼륨 타입은 다음과 같은 기능들을 지원합니다:
preferences.volume.feature.mountFlags=사용자 정의 마운트 설정
preferences.volume.feature.readOnly=읽기 전용 마운트
## Updates
preferences.updates=업데이트
preferences.updates.currentVersion=현재 버전: %s
@@ -265,9 +274,11 @@ stats.read.accessCount=총 읽기 횟수: %d
stats.write.throughput.idle=쓰기: 대기중
stats.write.throughput.mibs=쓰기: %.2f MiB/s
stats.write.total.data.none=데이터 기록됨: -
stats.write.total.data.kib=데이터 쓰기: %.1f KiB
stats.write.total.data.mib=데이터 쓰기: %.1f MiB
stats.write.total.data.gib=데이터 쓰기: %.1f GiB
stats.encr.total.data.none=데이터 암호화: -
stats.encr.total.data.kib=데이터 암호화: %.1f KiB
stats.encr.total.data.mib=데이터 암호화: %.1f MiB
stats.encr.total.data.gib=데이터 암호화: %.1f GiB
stats.write.accessCount=총 쓰기 횟수: %d
@@ -289,7 +300,7 @@ main.vaultlist.contextMenu.unlock=잠금해제...
main.vaultlist.contextMenu.unlockNow=지금 잠금해제
main.vaultlist.contextMenu.vaultoptions=Vault 옵션 보기
main.vaultlist.contextMenu.reveal=드라이브 표시
main.vaultlist.addVaultBtn=Vault 추가
main.vaultlist.addVaultBtn=추가
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=파일을 보호하기 위해 Cryptomator를 선택해주셔서 감사합니다. 만약 다른 도움이 필요하시면, 시작안내서를 참조하시기 바랍니다.
@@ -303,10 +314,12 @@ main.vaultDetail.passwordSavedInKeychain=비밀번호 저장됨
main.vaultDetail.unlockedStatus=잠금해제됨
main.vaultDetail.accessLocation=이 Vault의 내용은 다음의 경로에서 접근할 수 있습니다:
main.vaultDetail.revealBtn=드라이브 표시
main.vaultDetail.copyUri=URI 복사
main.vaultDetail.lockBtn=잠금
main.vaultDetail.bytesPerSecondRead=읽기:
main.vaultDetail.bytesPerSecondWritten=쓰기:
main.vaultDetail.throughput.idle=대기
main.vaultDetail.throughput.kbps=%.1f KiB/s
main.vaultDetail.throughput.mbps=%.1f MiB/s
main.vaultDetail.stats=Vault 통계
### Missing
@@ -363,6 +376,7 @@ vaultOptions.masterkey.recoveryKeyExplanation=복구 키는 비밀번호를 잊
vaultOptions.masterkey.showRecoveryKeyBtn=복구 키 표시
vaultOptions.masterkey.recoverPasswordBtn=비밀번호 재설정
## Hub
vaultOptions.hub=복구
# Recovery Key
## Display Recovery Key
@@ -374,6 +388,7 @@ recoveryKey.display.StorageHints=매우 안전한곳에 보관하십시요. 예
## Reset Password
### Enter Recovery Key
recoveryKey.recover.title=비밀번호 바꾸기
recoveryKey.recover.prompt="%s"의 복구키를 입력하십시요:
recoveryKey.recover.correctKey=올바른 복구 키 입니다
recoveryKey.recover.wrongKey=이 복구 키는 다른 vault의 키입니다
recoveryKey.recover.invalidKey=해당 복구 키는 유효하지 않습니다
@@ -404,5 +419,6 @@ quit.message=잠금 해제된 vault들이 존재합니다
quit.lockAndQuitBtn=Vault 잠금 후 종료하기
# Forced Quit
quit.forced.forceAndQuitBtn=Vault 강제 잠금 후 종료하기
# Update Reminder

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=Atklāt
# Add Vault Wizard
addvaultwizard.title=Pievienot glabātuvi
## Welcome
addvaultwizard.welcome.newButton=Izveidot jaunu glabātuvi
addvaultwizard.welcome.existingButton=Atvērt esošu glabātuvi
## New
### Name
addvaultwizard.new.nameInstruction=Izvēlies glabātuves nosaukumu
@@ -190,7 +187,6 @@ main.vaultlist.emptyList.onboardingInstruction=Spied šeit, lai pievienotu glab
main.vaultlist.contextMenu.lock=Aizslēgt
main.vaultlist.contextMenu.unlockNow=Atslēgt tagad
main.vaultlist.contextMenu.reveal=Atklāt disku
main.vaultlist.addVaultBtn=Pievienot glabātuvi
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Paldies, ka izvēlējāties Cryptomator lai aizsargātu jūsu datus. Ja jums nepieciešama palīdzība, iepazīstieties ar mūsu darba sākšanas ceļvežiem:

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Откриј
# Add Vault Wizard
addvaultwizard.title=Додај сеф
## Welcome
addvaultwizard.welcome.newButton=Додај нов сеф
addvaultwizard.welcome.existingButton=Отвори постоечки сеф
## New
### Name
addvaultwizard.new.nameInstruction=Одберете име за сефот
@@ -124,7 +121,6 @@ main.closeBtn.tooltip=Затвори
main.preferencesBtn.tooltip=Поставки
## Vault List
main.vaultlist.contextMenu.lock=Заклучи
main.vaultlist.addVaultBtn=Додај сеф
## Vault Detail
### Welcome
### Locked

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Rapporter denne feilen
error.technicalDetails=Detaljer:
error.existingSolutionDescription=Cryptomator forventet ikke at dette skulle skje. Men vi fant en eksisterende løsning for denne feilen. Ta en titt ved å følge lenken.
error.hyperlink.solution=Slå opp løsningen
error.lookupPermissionMessage=Cryptomator kan finne en løsning for problemet på nettet. Dette vil sende en forespørsel til problemdatabasen vår fra IP-adressen din.
error.dismiss=Avvis
error.lookUpSolution=Finn løsning
# Defaults
defaults.vault.vaultName=Hvelv
@@ -37,10 +40,8 @@ traymenu.vault.reveal=Gjør synlig
# Add Vault Wizard
addvaultwizard.title=Legg til hvelv
## Welcome
addvaultwizard.welcome.newButton=Opprett et nytt hvelv
addvaultwizard.welcome.existingButton=Åpne et eksisterende hvelv
## New
addvaultwizard.new.title=Legg til nytt hvelv
### Name
addvaultwizard.new.nameInstruction=Navngi hvelvet
addvaultwizard.new.namePrompt=Navn på hvelvet
@@ -62,6 +63,11 @@ addvaultwizard.new.validCharacters.chars=Ordtegn (eks. a, ж or 수)
addvaultwizard.new.validCharacters.numbers=Tall
addvaultwizard.new.validCharacters.dashes=Bindestrek (%s) eller understrek (%s)
### Expert Settings
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Aktiver ekspertinnstillinger
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Angi en verdi mellom 36 og 220 (standard 220)
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Åpne dokumentasjonen for å lære mer.
addvaultwizard.new.expertSettings.shorteningThreshold.title=Maksimal lengde på krypterte filnavn
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Gyldig
### Password
addvaultwizard.new.createVaultBtn=Opprett hvelv
addvaultwizard.new.generateRecoveryKeyChoice=Du vil ikke kunne få tilgang til dataene dine uten passordet. Vil du ha en gjenopprettingsnøkkel i tilefelle du mister passordet ditt?
@@ -85,6 +91,7 @@ addvault.new.readme.accessLocation.2=Dette er hvelvets lagringssted.
addvault.new.readme.accessLocation.3=Alle filer som er lagt til i dette volumet, blir kryptert av Cryptomator. Du kan jobbe med dem som på alle andre enheter/mapper. Dette er bare en dekryptert visning av innholdet, filene dine forblir kryptert på harddisken hele tiden.
addvault.new.readme.accessLocation.4=Denne filen kan fjernes hvis ønskelig.
## Existing
addvaultwizard.existing.title=Legg til et eksisterende hvelv
addvaultwizard.existing.instruction=Velg "vault.cryptomator"-filen til ditt eksisterende hvelv. Hvis det kun finnes en fil med navnet "masterkey.cryptomator", så velger du den i stedet.
addvaultwizard.existing.chooseBtn=Velg…
addvaultwizard.existing.filePickerTitle=Velg hvelvfil
@@ -129,6 +136,11 @@ unlock.success.revealBtn=Vis enheten
unlock.error.customPath.message=Kan ikke montere hvelvet til egendefinert sti
unlock.error.customPath.description.notSupported=Hvis du vil fortsette å bruke den egendefinerte stien, gå til innstillingene og velg en enhetstype som støtter den. Gå ellers til hvelvalternativene og velg et støttet monteringspunkt.
unlock.error.customPath.description.notExists=Egendefinert monteringssti eksisterer ikke. Enten opprett den i ditt lokale filsystem eller endre den i hvelvvalgene.
unlock.error.customPath.description.inUse=Stasjonsbokstaven eller egendefinert monteringsbane%s" er allerede i bruk.
unlock.error.customPath.description.hideawayNotDir=Den midlertidige, skjulte filen "%3$ssom brukes til å låse opp kunne ikke fjernes. Kontroller filen og slett den manuelt.
unlock.error.customPath.description.couldNotBeCleaned=Hvelvet ditt kan ikke monteres i banen "%s". Prøv igjen eller velg en annen sti.
unlock.error.customPath.description.notEmptyDir=Tilpasset monterings sti "%s" er ikke en tom mappe. Velg en tom mappe og prøv igjen.
unlock.error.customPath.description.generic=Du har valgt en egendefinert monterings sti for dette hvelvet, men bruk av den mislyktes med meldingen: %2$s
## Hub
hub.noKeychain.message=Får ikke tilgang til enhetsnøkkel
hub.noKeychain.description=For å låse opp Hub-hvelv er det nødvendig med en enhetsnøkkel som er sikret med en nøkkelring. For å fortsette, aktiver "%s" og velg en nøkkelring i innstillingene.
@@ -353,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Lås opp…
main.vaultlist.contextMenu.unlockNow=Lås opp nå
main.vaultlist.contextMenu.vaultoptions=Alternativer for hvelvet
main.vaultlist.contextMenu.reveal=Vis enheten
main.vaultlist.addVaultBtn=Legg til hvelv
main.vaultlist.addVaultBtn=Legg til
main.vaultlist.addVaultBtn.menuItemNew=Nytt hvelv...
main.vaultlist.addVaultBtn.menuItemExisting=Eksisterende hvelv...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Takk for at du valgte Cryptomator for å beskytte filene dine. Hvis du trenger hjelp, sjekk ut våre guider for å komme i gang:
@@ -437,6 +451,7 @@ vaultOptions.masterkey.showRecoveryKeyBtn=Vis gjenopprettingsnøkkelen
vaultOptions.masterkey.recoverPasswordBtn=Nullstill passord
## Hub
vaultOptions.hub=Gjenoppretting
vaultOptions.hub.convertInfo=Du kan bruke gjenopprettingsnøkkelen for å konvertere dette Hub-hvelvet til et passordbasert hvelv i en nødsituasjon.
vaultOptions.hub.convertBtn=Konverter til passordbasert hvelv
# Recovery Key
@@ -465,6 +480,7 @@ convertVault.title=Konverter hvelvet
convertVault.convert.convertBtn.before=Konverter
convertVault.convert.convertBtn.processing=Konverterer…
convertVault.success.message=Konverteringen var vellykket
convertVault.hubToPassword.success.description=Du kan nå låse opp hvelvet med det valgte passordet uten å ha behov for Hub-tilgang.
# New Password
newPassword.promptText=Skriv inn et nytt passord
@@ -489,4 +505,10 @@ quit.forced.message=Noen hvelv kunne ikke låses
quit.forced.description=Låsing av hvelvene ble blokkert av ventende operasjoner eller åpne filer. Du kan tvinge låsing av gjenværende hvelv, men forstyrring av I/O kan resultere i tap av ulagret data.
quit.forced.forceAndQuitBtn=Tvinge og avslutte
# Update Reminder
# Update Reminder
updateReminder.title=Oppdateringssjekk
updateReminder.message=Se etter oppdateringer?
updateReminder.description=Hold deg oppdatert med nye funksjoner, feilrettinger og sikkerhetsforbedringer. Vi anbefaler å se etter oppdateringer automatisk.
updateReminder.notNow=Ikke nå
updateReminder.yesOnce=Ja, en gang
updateReminder.yesAutomatically=Ja, automatisk

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Toon
# Add Vault Wizard
addvaultwizard.title=Kluis toevoegen
## Welcome
addvaultwizard.welcome.newButton=Nieuwe Kluis Aanmaken
addvaultwizard.welcome.existingButton=Open Bestaande Kluis
## New
addvaultwizard.new.title=Nieuwe kluis toevoegen
### Name
addvaultwizard.new.nameInstruction=Kies een naam voor de kluis
addvaultwizard.new.namePrompt=Kluisnaam
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Dit is de opslaglocatie van uw kluis.
addvault.new.readme.accessLocation.3=Alle bestanden die aan dit volume worden toegevoegd zullen worden versleuteld door Cryptomator. U kunt deze bestanden gebruiken zoals in elke andere map/schijf. Dit is alleen een ontsleutelde weergave van de inhoud, uw bestanden blijven ten alle tijden versleuteld op uw harde schijf.
addvault.new.readme.accessLocation.4=Voel je vrij om dit bestand te verwijderen.
## Existing
addvaultwizard.existing.title=Bestaande kluis toevoegen
addvaultwizard.existing.instruction=Kies het "vault.cryptomator"-bestand van uw bestaande kluis. Indien er enkel een bestand genaamd "masterkey.cryptomator" anwezig is, kies deze dan in de plaats.
addvaultwizard.existing.chooseBtn=Kies…
addvaultwizard.existing.filePickerTitle=Kies kluisbestand
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Kan kluis niet aan aangepast pad koppelen
unlock.error.customPath.description.notSupported=Als je het aangepaste pad wilt blijven gebruiken, ga dan naar de voorkeuren en selecteer een volume type dat het ondersteunt. Anders ga je naar de kluis opties en kies je een steunpunt voor het koppelplaten.
unlock.error.customPath.description.notExists=Het aangepaste koppelpad bestaat niet. Maak het aan in uw lokale bestandssysteem of verander het in de kluis opties.
unlock.error.customPath.description.inUse=De schijfletter of aangepaste pad "%s" is al in gebruik.
unlock.error.customPath.description.hideawayNotDir=Het verborgen tijdelijk bestand "%3$s" gebruikt voor ontgrendelen kon niet worden verwijderd. Controleer het bestand en verwijder het handmatig.
unlock.error.customPath.description.hideawayNotDir=Het tijdelijk verborgen bestand "%3$s" gebruikt voor de ontgrendeling kon niet worden verwijderd. Controleer het bestand en verwijder het handmatig.
unlock.error.customPath.description.couldNotBeCleaned=Uw kluis kon niet worden gekoppeld aan het pad "%s". Probeer het opnieuw of kies een ander pad.
unlock.error.customPath.description.notEmptyDir=Het aangepaste pad "%s" is geen lege map. Kies een lege map en probeer het opnieuw.
unlock.error.customPath.description.generic=Je hebt een aangepast koppelpad voor deze kluis geselecteerd, maar gebruik ervan is mislukt met het bericht: %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Ontgrendelen…
main.vaultlist.contextMenu.unlockNow=Nu Ontgrendelen
main.vaultlist.contextMenu.vaultoptions=Laat kluisinstellingen zien
main.vaultlist.contextMenu.reveal=Toon Schijf
main.vaultlist.addVaultBtn=Kluis toevoegen
main.vaultlist.addVaultBtn=Toevoegen
main.vaultlist.addVaultBtn.menuItemNew=Nieuwe kluis...
main.vaultlist.addVaultBtn.menuItemExisting=Bestaande kluis...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Bedankt dat u Cryptomator heeft gekozen om uw bestanden te beschermen. Voor assistentie verwijzen we u naar de starthandleidingen:

View File

@@ -29,9 +29,6 @@ traymenu.vault.reveal=Gjer synleg
# Add Vault Wizard
addvaultwizard.title=Legg til kvelv
## Welcome
addvaultwizard.welcome.newButton=Opprett ein ny kvelv
addvaultwizard.welcome.existingButton=Opn ein eksisterande kvelv
## New
### Name
addvaultwizard.new.nameInstruction=Vel eit namn på kvelven
@@ -183,7 +180,6 @@ main.vaultlist.contextMenu.lock=Lås
main.vaultlist.contextMenu.unlock=Lås opp…
main.vaultlist.contextMenu.unlockNow=Lås opp no
main.vaultlist.contextMenu.reveal=Gjer eininga synleg
main.vaultlist.addVaultBtn=Legg til kvelv
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Takk for at du valde Cryptomator for å verna filene dine. Viss du treng hjelp, sjekk ut guidane våre for å komma i gang:

View File

@@ -30,9 +30,6 @@ traymenu.vault.reveal=ਦਿਖਾਓ
# Add Vault Wizard
addvaultwizard.title=ਵਾਲਟ ਜੋੜੋ
## Welcome
addvaultwizard.welcome.newButton=ਨਵਾਂ ਵਾਲਟ ਬਣਾਓ
addvaultwizard.welcome.existingButton=ਮੌਜੂਦਾ ਵਾਲਟ ਖੋਲ੍ਹੋ
## New
### Name
addvaultwizard.new.nameInstruction=ਵਾਲਟ ਲਈ ਨਾਂ ਚੁਣੋ
@@ -210,7 +207,6 @@ main.vaultlist.contextMenu.lock=ਲਾਕ ਕਰੋ
main.vaultlist.contextMenu.unlock=ਅਣ-ਲਾਕ ਕਰੋ…
main.vaultlist.contextMenu.unlockNow=ਹੁਣੇ ਅਣ-ਲਾਕ ਕਰੋ
main.vaultlist.contextMenu.reveal=ਡਰਾਇਵ ਦਿਖਾਓ
main.vaultlist.addVaultBtn=ਵਾਲਟ ਜੋੜੋ
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=ਆਪਣੀਆਂ ਫਾਇਲਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਲਈ Cryptomator ਚੁਣਨ ਵਾਸਤੇ ਧੰਨਵਾਦ ਹੈ। ਜੇ ਤੁਹਾਨੂੰ ਮਦਦ ਚਾਹੀਦੀ ਹੋਵੇ ਤਾਂ ਸਾਡੀਆਂ ਸ਼ੁਰੂਆਤੀ ਗਾਈਡਾਂ ਵੇਖੋ:

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Zgłoś ten błąd
error.technicalDetails=Szczegóły:
error.existingSolutionDescription=Cryptomator nie spodziewał się, że tak się stanie. Znaleźliśmy jednak istniejące rozwiązanie dla tego błędu. Proszę spojrzeć na poniższy link.
error.hyperlink.solution=Wyszukaj rozwiązanie
error.lookupPermissionMessage=Cryptomator może wyszukać rozwiązanie tego problemu online. To wyśle żądanie do naszej bazy danych problemów z Twojego adresu IP.
error.dismiss=Odrzuć
error.lookUpSolution=Szukaj rozwiązania
# Defaults
defaults.vault.vaultName=Sejf
@@ -37,10 +40,8 @@ traymenu.vault.reveal=Odkryj
# Add Vault Wizard
addvaultwizard.title=Dodaj sejf
## Welcome
addvaultwizard.welcome.newButton=Utwórz nowy sejf
addvaultwizard.welcome.existingButton=Otwórz istniejący sejf
## New
addvaultwizard.new.title=Dodaj nowy sejf
### Name
addvaultwizard.new.nameInstruction=Wybierz nazwę sejfu
addvaultwizard.new.namePrompt=Nazwa sejfu
@@ -90,6 +91,7 @@ addvault.new.readme.accessLocation.2=Tu są przechowywane pliki Twojego sejfu.
addvault.new.readme.accessLocation.3=Wszystkie pliki dodane tutaj zostaną zaszyfrowane przez Cryptomator. Możesz tu wykonywać operacje jak na każdym innym dysku czy katalogu. To jest jedynie odszyfrowany podgląd Twoich plików, wszystkie pozostają cały czas zaszyfrowane na Twoim dysku twardym.
addvault.new.readme.accessLocation.4=Jeśli chcesz możesz spokojnie usunąć ten plik.
## Existing
addvaultwizard.existing.title=Dodaj istniejący sejf
addvaultwizard.existing.instruction=Wybierz plik "vault.cryptomator" w istniejącym sejfie. Jeśli istnieje tylko plik "masterkey.cryptomator", wybierz ten plik.
addvaultwizard.existing.chooseBtn=Wybierz…
addvaultwizard.existing.filePickerTitle=Wybierz plik sejfu
@@ -135,7 +137,7 @@ unlock.error.customPath.message=Nie można zamontować sejfu na niestandardowej
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.inUse=Litera dysku lub podana ścieżka montowania "%s" jest już w użyciu.
unlock.error.customPath.description.hideawayNotDir=Tymczasowy, ukryty plik "%3$s" używany do odblokowywania nie mógł zostać usunięty. Sprawdź plik, a następnie usuń go ręcznie.
unlock.error.customPath.description.hideawayNotDir=Nie można usunąć ukrytego pliku tymczasowego "%3$s", używanego do odblokowywania. Sprawdź plik, po czym usuń go ręcznie.
unlock.error.customPath.description.couldNotBeCleaned=Twój sejf nie mógł być zamontowany do ścieżki "%s". Spróbuj ponownie lub wybierz inną ścieżkę.
unlock.error.customPath.description.notEmptyDir=Wybrana ścieżka montowania "%s" nie jest pustym katalogiem. Wybierz pusty katalog i spróbuj ponownie.
unlock.error.customPath.description.generic=Wybrałeś własną ścieżkę montowania dla tego sejfu, ale użycie jej nie powiodło się. Powód: %2$s
@@ -319,29 +321,29 @@ stats.title=Statystyki dla %s
stats.cacheHitRate=Trafność cache
## Read
stats.read.throughput.idle=Odczyt: bezczynny
stats.read.throughput.kibs=Odczyt: %.2f kiB/s
stats.read.throughput.mibs=Odczyt: %.2f kiB/s
stats.read.throughput.kibs=Odczyt: %.2f KiB/s
stats.read.throughput.mibs=Odczyt: %.2f MiB/s
stats.read.total.data.none=Dane odczytywane: -
stats.read.total.data.kib=Odczyt danych: %.1f KiB
stats.read.total.data.mib=Odczyt danych: %.1f kiB
stats.read.total.data.gib=Odczyt danych: %.1f kiB
stats.read.total.data.mib=Odczyt danych: %.1f MiB
stats.read.total.data.gib=Odczyt danych: %.1f GiB
stats.decr.total.data.none=Dane odszyfrowane: -
stats.decr.total.data.kib=Dane odszyfrowane: %.1f KiB
stats.decr.total.data.mib=Dane odszyfrowane: %.1f kiB
stats.decr.total.data.gib=Dane odszyfrowane: %.1f kiB
stats.decr.total.data.mib=Dane odszyfrowane: %.1f MiB
stats.decr.total.data.gib=Dane odszyfrowane: %.1f GiB
stats.read.accessCount=Całkowite odczyty: %d
## Write
stats.write.throughput.idle=Zapis: bezczynny
stats.write.throughput.kibs=Zapis: %.2f KiB/s
stats.write.throughput.mibs=Zapis: %.2f kiB/s
stats.write.throughput.mibs=Zapis: %.2f MiB/s
stats.write.total.data.none=Zapisane dane: -
stats.write.total.data.kib=Zapis danych: %.1f KiB
stats.write.total.data.mib=Zapisane dane: %.1f MiB
stats.write.total.data.gib=Zapisane dane: %.1f kiB
stats.write.total.data.gib=Zapisane dane: %.1f GiB
stats.encr.total.data.none=Dane odszyfrowane: -
stats.encr.total.data.kib=Dane zaszyfrowane: %.1f KiB
stats.encr.total.data.mib=Dane odszyfrowane: %.1f kiB
stats.encr.total.data.gib=Dane odszyfrowane: %.1f kiB
stats.encr.total.data.mib=Dane odszyfrowane: %.1f MiB
stats.encr.total.data.gib=Dane odszyfrowane: %.1f GiB
stats.write.accessCount=Całkowity zapis: %d
## Accesses
@@ -363,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Odblokuj…
main.vaultlist.contextMenu.unlockNow=Odblokuj teraz
main.vaultlist.contextMenu.vaultoptions=Pokaż opcje sejfu
main.vaultlist.contextMenu.reveal=Otwórz lokalizację
main.vaultlist.addVaultBtn=Dodaj sejf
main.vaultlist.addVaultBtn=Dodaj
main.vaultlist.addVaultBtn.menuItemNew=Nowy sejf...
main.vaultlist.addVaultBtn.menuItemExisting=Istniejący sejf...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Dziękujemy za wybranie programu Cryptomator do ochrony plików. Jeśli potrzebujesz pomocy, sprawdź nasze przewodniki:

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Relatar este erro
error.technicalDetails=Detalhes:
error.existingSolutionDescription=O Cryptomator não esperava que isso acontecesse. Mas encontrámos uma solução existente para esse erro. Por favor, veja o seguinte link.
error.hyperlink.solution=Procure a solução
error.lookupPermissionMessage=O Cryptomator pode procurar uma solução on-line para este problema. Isso enviará uma solicitação do problema à nossa base de dados a partir do seu endereço IP.
error.dismiss=Ignorar
error.lookUpSolution=Procure solução
# Defaults
defaults.vault.vaultName=Cofre
@@ -37,9 +40,6 @@ traymenu.vault.reveal=Revelar
# Add Vault Wizard
addvaultwizard.title=Adicionar Cofre
## Welcome
addvaultwizard.welcome.newButton=Criar Novo Cofre
addvaultwizard.welcome.existingButton=Abrir Cofre Existente
## New
### Name
addvaultwizard.new.nameInstruction=Escolha um nome para o cofre
@@ -134,6 +134,11 @@ unlock.success.revealBtn=Revelar unidade
unlock.error.customPath.message=Não é possível montar o cofre no caminho personalizado
unlock.error.customPath.description.notSupported=Se pretender continuar a utilizar o caminho personalizado, vá às preferências e seleccione um tipo de volume que o suporte. Caso contrário, aceda às opções do vault e escolha um ponto de montagem suportado.
unlock.error.customPath.description.notExists=O caminho de montagem personalizado não existe. Crie-o no seu sistema de ficheiros local ou altere-o nas opções do vault.
unlock.error.customPath.description.inUse=A letra da unidade ou o caminho de montagem personalizado "%s" já está em uso.
unlock.error.customPath.description.hideawayNotDir=O arquivo oculto temporário "%3$s" usado para desbloquear não pôde ser removido. Verifique o arquivo e exclua-o manualmente.
unlock.error.customPath.description.couldNotBeCleaned=Não foi possível montar o seu cofre no caminho "%s". Tente novamente ou escolha um caminho diferente.
unlock.error.customPath.description.notEmptyDir=O caminho de montagem personalizado "%s" não é uma pasta vazia. Escolha uma pasta vazia e tente novamente.
unlock.error.customPath.description.generic=Selecionou um caminho de montagem personalizado para este cofre, mas o seu uso falhou com a mensagem: %2$s
## Hub
hub.noKeychain.message=Não foi possível aceder à chave do dispositivo
hub.noKeychain.description=Para desbloquear os cofres do Hub, é necessária uma chave do dispositivo, que é protegida usando um porta-chaves. Para continuar, ative “%s” e selecione um porta-chaves nas preferências.
@@ -332,7 +337,6 @@ main.vaultlist.contextMenu.unlock=Desbloquear…
main.vaultlist.contextMenu.unlockNow=Desbloquear agora
main.vaultlist.contextMenu.vaultoptions=Mostrar opções do Cofre
main.vaultlist.contextMenu.reveal=Revelar unidade
main.vaultlist.addVaultBtn=Adicionar Cofre
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Obrigado por escolher Cryptomator para proteger os seus ficheiros. Se precisar de alguma ajuda, veja os nossos guias introdutórios:
@@ -462,4 +466,10 @@ quit.forced.message=Alguns cofres não poderam ser fechados
quit.forced.description=Bloquear os cofres foi impossibilitado por operações pendentes ou ficheiros abertos. Poderá forçar o bloqueio dos cofres restantes, sob a possibilidade da perda de dados não guardados.
quit.forced.forceAndQuitBtn=Forçar e Sair
# Update Reminder
# Update Reminder
updateReminder.title=Verificação de Atualização
updateReminder.message=Verificar atualizações?
updateReminder.description=Fique atualizado com novos recursos, correções de erros e melhorias de segurança. Recomendamos verificar automaticamente se há atualizações.
updateReminder.notNow=Agora não
updateReminder.yesOnce=Sim, Uma Vez
updateReminder.yesAutomatically=Sim, Automaticamente

View File

@@ -10,18 +10,21 @@ generic.button.choose=Escolha…
generic.button.close=Fechar
generic.button.copy=Copiar
generic.button.copied=Copiado!
generic.button.done=Pronto
generic.button.done=Concluído
generic.button.next=Próximo
generic.button.print=Imprimir
# Error
error.message=Erro %s
error.description=Oops! Cryptomator não esperava que isso acontecesse. Você pode procurar soluções existentes para este erro. Ou se isso ainda não foi reportado como erro, fique à vontade para fazê-lo.
error.description=O Cryptomator encontrou um erro inesperado. Você pode procurar soluções pré-existentes na internet ou até mesmo reportar como bug.
error.hyperlink.lookup=Procure este erro
error.hyperlink.report=Reportar este erro
error.technicalDetails=Detalhes:
error.existingSolutionDescription=O Cryptomator encontrou um erro inesperado, mas há uma solução pré-existente disponível no seguinte link.
error.hyperlink.solution=Procure a solução
error.lookupPermissionMessage=O Cryptomator pode procurar uma solução online. Isso enviará um pedido ao nosso banco de problemas a partir do seu endereço IP.
error.dismiss=Ignorar
error.lookUpSolution=Procurar solução
# Defaults
defaults.vault.vaultName=Cofre
@@ -37,35 +40,33 @@ traymenu.vault.reveal=Exibir
# Add Vault Wizard
addvaultwizard.title=Adicionar Cofre
## Welcome
addvaultwizard.welcome.newButton=Criar Um Novo Cofre
addvaultwizard.welcome.existingButton=Abrir Cofre Existente
## New
addvaultwizard.new.title=Adicionar Novo Cofre
### Name
addvaultwizard.new.nameInstruction=Escolha um nome para o cofre
addvaultwizard.new.namePrompt=Nome do Cofre
### Location
addvaultwizard.new.locationInstruction=Onde o Cryptomator deve armazenar os arquivos encriptados do seu cofre?
addvaultwizard.new.locationInstruction=Onde o Cryptomator deve armazenar os arquivos criptografados do seu cofre?
addvaultwizard.new.locationLabel=Local de armazenamento
addvaultwizard.new.locationPrompt=
addvaultwizard.new.directoryPickerLabel=Local Personalizado
addvaultwizard.new.directoryPickerButton=Escolher…
addvaultwizard.new.directoryPickerTitle=Selecionar Diretório
addvaultwizard.new.fileAlreadyExists=Um arquivo ou diretório com o nome do cofre já existe
addvaultwizard.new.fileAlreadyExists=Já existe um arquivo ou diretório com esse nome
addvaultwizard.new.locationDoesNotExist=Um diretório no caminho especificado não existe ou não pode ser acessado
addvaultwizard.new.locationIsNotWritable=Sem acesso de escrita no caminho especificado
addvaultwizard.new.locationIsOk=Localização adequada para o seu cofre
addvaultwizard.new.locationIsNotWritable=Não há acesso de escrita nesse caminho
addvaultwizard.new.locationIsOk=Local adequado para o seu cofre
addvaultwizard.new.invalidName=Nome do cofre inválido
addvaultwizard.new.validName=Nome do cofre válido
addvaultwizard.new.validCharacters.message=O nome do cofre pode conter os seguintes caracteres:
addvaultwizard.new.validCharacters.chars=Caracteres de texto (exemplo: a, ж ou 수)
addvaultwizard.new.validCharacters.chars=Caracteres de palavra (por exemplo, a, ж or 수)
addvaultwizard.new.validCharacters.numbers=Números
addvaultwizard.new.validCharacters.dashes=Hífen (%s) ou sublinhado (%s)
### Expert Settings
addvaultwizard.new.expertSettings.enableExpertSettingsCheckbox=Ativar configurações avançadas
addvaultwizard.new.expertSettings.shorteningThreshold.invalid=Digite um valor entre 36 e 220 (padrão 220)
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Abra a documentação para saber mais.
addvaultwizard.new.expertSettings.shorteningThreshold.title=Comprimento máximo dos nomes de arquivos encriptados
addvaultwizard.new.expertSettings.shorteningThreshold.title=Comprimento máximo dos nomes de arquivos criptografados
addvaultwizard.new.expertSettings.shorteningThreshold.valid=Válido
### Password
addvaultwizard.new.createVaultBtn=Criar Cofre
@@ -87,9 +88,10 @@ addvault.new.readme.storageLocation.10=Se precisar de ajuda, visite a documenta
addvault.new.readme.accessLocation.fileName=BEM-VINDO.rtf
addvault.new.readme.accessLocation.1=🔐️ VOLUME ENCRIPTADO 🔐️
addvault.new.readme.accessLocation.2=Este é o local de acesso ao seu cofre.
addvault.new.readme.accessLocation.3=Todos os arquivos adicionados a este volume serão encriptados pelo Cryptomator. Você pode trabalhar nele tal como em qualquer outra unidade/pasta. Esta é apenas uma visão não encriptada do seu conteúdo, seus arquivos permanecem encriptados em seu disco rígido o tempo todo.
addvault.new.readme.accessLocation.3=Todos os arquivos adicionados a este volume serão criptografados de forma transparente pelo Cryptomator. Você pode trabalhar nele como se fosse qualquer unidade/pasta. Esta é apenas uma visão não criptografada do seu conteúdo, mas seus arquivos permanecem criptografados na sua unidade o tempo todo.
addvault.new.readme.accessLocation.4=Fique à vontade para apagar este arquivo.
## Existing
addvaultwizard.existing.title=Adicionar Cofre Existente
addvaultwizard.existing.instruction=Escolha o arquivo "vault.cryptomator" do seu cofre existente. Se existir apenas um arquivo chamado "masterkey.cryptomator", selecione outro.
addvaultwizard.existing.chooseBtn=Selecionar…
addvaultwizard.existing.filePickerTitle=Selecionar arquivo do Cofre
@@ -118,12 +120,12 @@ forgetPassword.confirmBtn=Esquecer Senha
# Unlock
unlock.title=Desbloquear "%s"
unlock.passwordPrompt=Digite a senha para "%s":
unlock.savePassword=Lembrar senha
unlock.savePassword=Lembrar Senha
unlock.unlockBtn=Desbloquear
## Select
unlock.chooseMasterkey.message=Arquivo de chave mestra — “masterkey” — não encontrado
unlock.chooseMasterkey.description=Não foi possível encontrar o arquivo Masterkey deste cofre no local esperado. Por favor selecione manualmente o arquivo contendo a chave.
unlock.chooseMasterkey.filePickerTitle=Selecionar Arquivo Masterkey
unlock.chooseMasterkey.message=Arquivo "masterkey" não encontrado
unlock.chooseMasterkey.description=Não encontrei o arquivo "masterkey" para o cofre "%s". Por favor selecione manualmente o arquivo contendo a chave.
unlock.chooseMasterkey.filePickerTitle=Selecionar arquivo "masterkey"
unlock.chooseMasterkey.filePickerMimeDesc=Chave mestra do Cryptomator
## Success
unlock.success.message=Desbloqueado com sucesso
@@ -135,7 +137,7 @@ unlock.error.customPath.message=Não foi possível iniciar o cofre no caminho pe
unlock.error.customPath.description.notSupported=Se você deseja continuar usando o caminho personalizado, por favor vá para as preferências e selecione um tipo de volume que o suporte. Caso contrário, vá para as opções de cofre e escolha um ponto de montagem suportado.
unlock.error.customPath.description.notExists=O caminho de montagem personalizado não existe. Crie o caminho em seu sistema de arquivos local, ou o altere nas opções de cofre.
unlock.error.customPath.description.inUse=A letra da unidade ou o caminho de montagem "%s" já está em uso.
unlock.error.customPath.description.hideawayNotDir=O arquivo oculto temporário "%3$s" usado para desbloquear não pôde ser removido. Verifique o arquivo e exclua-o manualmente.
unlock.error.customPath.description.hideawayNotDir=O arquivo oculto e temporário "%3$s" usado para desbloquear não pôde ser removido. Exclua-o manualmente.
unlock.error.customPath.description.couldNotBeCleaned=Seu cofre não pôde ser montado no caminho "%s". Tente novamente ou escolha um caminho diferente.
unlock.error.customPath.description.notEmptyDir=O caminho de montagem escolhido "%s" não é uma pasta vazia. Escolha uma pasta vazia e tente novamente.
unlock.error.customPath.description.generic=Você selecionou um caminho de montagem personalizado para este cofre, mas falhou com a mensagem: %2$s
@@ -211,8 +213,8 @@ migration.impossible.moreInfo=O cofre ainda pode ser aberto com uma versão mais
# Health Check
## Start
health.title=Exame de saúde de "%s"
health.intro.header=Status de saúde
health.intro.text=O Health Check é uma coleção de verificações para detectar e possivelmente corrigir problemas na estrutura interna do seu cofre. Lembre-se de:
health.intro.header=Verificação de Saúde
health.intro.text=A Verificação de Saúde é um grupo de verificações que detectam e tentam corrigir problemas na estrutura interna do cofre. Lembre-se de:
health.intro.remarkSync=Certifique-se de que todos os dispositivos estejam completamente sincronizados, isso resolve a maioria dos problemas.
health.intro.remarkFix=Nem todos os problemas podem ser corrigidos.
health.intro.remarkBackup=Se os dados estiverem corrompidos, apenas um backup poderá ajudar.
@@ -226,38 +228,38 @@ health.fail.moreInfo=Mais informações
health.checkList.description=Selecione as verificações na lista esquerda ou use os botões abaixo.
health.checkList.selectAllButton=Selecionar Todas as Verificações
health.checkList.deselectAllButton=Desfazer seleção de todas as planilhas
health.check.runBatchBtn=Executar as Verificações Selecionadas
health.check.runBatchBtn=Executar Verificações
## Detail view
health.check.detail.noSelectedCheck=Para obter os resultados, selecione uma verificação de saúde completada na lista à esquerda.
health.check.detail.noSelectedCheck=Para ver os resultados, selecione uma verificação na lista à esquerda.
health.check.detail.checkScheduled=A verificação está programada.
health.check.detail.checkRunning=A verificação está atualmente em execução…
health.check.detail.checkSkipped=A verificação não foi selecionada para ser executada.
health.check.detail.checkFinished=A verificação foi concluída com sucesso.
health.check.detail.checkFinishedAndFound=A verificação terminou em execução. Por favor, reveja os resultados.
health.check.detail.checkFailed=A verificação foi encerrada devido a um erro.
health.check.detail.checkRunning=A verificação está rodando…
health.check.detail.checkSkipped=A verificação não foi selecionada para execução.
health.check.detail.checkFinished=A verificação terminou com sucesso.
health.check.detail.checkFinishedAndFound=A verificação terminou. Verifique os resultados.
health.check.detail.checkFailed=A verificação encerrou devido a um erro.
health.check.detail.checkCancelled=A verificação foi cancelada.
health.check.detail.listFilters.label=Filtro
health.check.detail.fixAllSpecificBtn=Reparar todo tipo
health.check.detail.fixAllSpecificBtn=Reparar todos deste tipo
health.check.exportBtn=Exportar Relatório
## Result view
health.result.severityFilter.all=Severidade - Todos
health.result.severityFilter.good=Bom
health.result.severityFilter.info=Informação
health.result.severityFilter.all=Gravidade - Todas
health.result.severityFilter.good=Bom estado
health.result.severityFilter.info=Info
health.result.severityFilter.warn=Aviso
health.result.severityFilter.crit=Crítico
health.result.severityTip.good=Gravidade: Boa\nestrutura do cofre normal.
health.result.severityTip.info=Gravidade: Informação\nestrutura de cofre intacta, correção sugerida.
health.result.severityTip.warn=Gravidade: Aviso\nestrutura de cofre corrompida, correção altamente aconselhável.
health.result.severityTip.crit=Gravidade: Estrutura Crítica\ndo cofre corrompida, perda de dados determinada.
health.result.severityTip.info=Gravidade: Info\nEstrutura de cofre intacta, correção sugerida.
health.result.severityTip.warn=Gravidade: Aviso\nEstrutura de cofre corrompida, correção altamente aconselhada.
health.result.severityTip.crit=Gravidade: Crítica\nEstrutura do cofre corrompida, haverá perda de dados.
health.result.fixStateFilter.all=Estado de reparo - Todos
health.result.fixStateFilter.fixable=Corrigível
health.result.fixStateFilter.notFixable=Não corrigível
health.result.fixStateFilter.fixing=Corrigindo…
health.result.fixStateFilter.fixed=Corrigido
health.result.fixStateFilter.fixable=Reparável
health.result.fixStateFilter.notFixable=Não reparável
health.result.fixStateFilter.fixing=Reparando…
health.result.fixStateFilter.fixed=Reparado
health.result.fixStateFilter.fixFailed=Reparo falhou
## Fix Application
health.fix.fixBtn=Corrigir
health.fix.successTip=Consertado com sucesso
health.fix.fixBtn=Reparar
health.fix.successTip=Reparado
health.fix.failTip=Falha na correção, consulte o log para obter detalhes
# Preferences
@@ -268,8 +270,8 @@ preferences.general.startHidden=Ocultar janela ao iniciar o Cryptomator
preferences.general.autoCloseVaults=Bloquear cofres abertos automaticamente ao sair do aplicativo
preferences.general.debugLogging=Ativar log de debug
preferences.general.debugDirectory=Mostrar arquivos de log
preferences.general.autoStart=Iniciar o Cryptomator durante inicialização do sistema
preferences.general.keychainBackend=Armazenar senhas no
preferences.general.autoStart=Iniciar o Cryptomator ao inicializar o sistema
preferences.general.keychainBackend=Armazenar senhas com
## Interface
preferences.interface=Interface
preferences.interface.theme=Aparência
@@ -326,27 +328,27 @@ stats.read.total.data.kib=Dados lidos: %.1f GiB
stats.read.total.data.mib=Dados lidos: %.1f MiB
stats.read.total.data.gib=Dados lidos: %.1f GiB
stats.decr.total.data.none=Dados descriptografados: -
stats.decr.total.data.kib=Dados descriptografados: %.1f GiB
stats.decr.total.data.kib=Dados descriptografados: %.1f KiB
stats.decr.total.data.mib=Dados descriptografados: %.1f MiB
stats.decr.total.data.gib=Dados descriptografados: %.1f GiB
stats.read.accessCount=Total de leituras: %d
stats.read.accessCount=Leituras totais: %d
## Write
stats.write.throughput.idle=Escrita: ociosa
stats.write.throughput.kibs=Escrita: %.2f MiB/s
stats.write.throughput.mibs=Escrita: %.2f MiB/s
stats.write.throughput.idle=Gravação: ociosa
stats.write.throughput.kibs=Gravação: %.2f KiB/s
stats.write.throughput.mibs=Gravação: %.2f MiB/s
stats.write.total.data.none=Dados gravados: -
stats.write.total.data.kib=Dados gravados: %.1f kiB
stats.write.total.data.kib=Dados gravados: %.1f KiB
stats.write.total.data.mib=Dados gravados: %.1f MiB
stats.write.total.data.gib=Dados gravados: %.1f GiB
stats.encr.total.data.none=Dados criptografados: -
stats.encr.total.data.kib=Dados encriptados: %.1f KiB
stats.encr.total.data.kib=Dados criptografados: %.1f KiB
stats.encr.total.data.mib=Dados criptografados: %.1f MiB
stats.encr.total.data.gib=Dados criptografados: %.1f GiB
stats.write.accessCount=Total gravado: %d
stats.write.accessCount=Gravações totais: %d
## Accesses
stats.access.current=Acesso: %d
stats.access.total=Total de acessos: %d
stats.access.total=Acessos totais: %d
# Main Window
@@ -354,7 +356,7 @@ main.closeBtn.tooltip=Fechar
main.minimizeBtn.tooltip=Minimizar
main.preferencesBtn.tooltip=Preferências
main.debugModeEnabled.tooltip=Modo de depuração ativado
main.supporterCertificateMissing.tooltip=Por favor, considere doar para esse projeto
main.supporterCertificateMissing.tooltip=Por favor doe
## Vault List
main.vaultlist.emptyList.onboardingInstruction=Clique aqui para adicionar um cofre
main.vaultlist.contextMenu.remove=Remover…
@@ -363,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Desbloquear…
main.vaultlist.contextMenu.unlockNow=Desbloquear Agora
main.vaultlist.contextMenu.vaultoptions=Exibir Opções de Cofre
main.vaultlist.contextMenu.reveal=Revelar Volume
main.vaultlist.addVaultBtn=Adicionar Cofre
main.vaultlist.addVaultBtn=Adicionar
main.vaultlist.addVaultBtn.menuItemNew=Novo Cofre...
main.vaultlist.addVaultBtn.menuItemExisting=Cofre Existente...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Obrigado por escolher o Cryptomator para proteger seus arquivos. Se precisar de ajuda, confira nossos guias de introdução:
@@ -380,19 +384,19 @@ main.vaultDetail.revealBtn=Revelar Volume
main.vaultDetail.copyUri=Copiar URI
main.vaultDetail.lockBtn=Bloquear
main.vaultDetail.bytesPerSecondRead=Leitura:
main.vaultDetail.bytesPerSecondWritten=Escrita:
main.vaultDetail.bytesPerSecondWritten=Gravação:
main.vaultDetail.throughput.idle=ocioso
main.vaultDetail.throughput.kbps=%.1f KiB/s
main.vaultDetail.throughput.mbps=%.1f MiB/s
main.vaultDetail.stats=Estatísticas do Cofre
main.vaultDetail.locateEncryptedFileBtn=Localizar Arquivo Criptografado
main.vaultDetail.locateEncryptedFileBtn.tooltip=Escolha um arquivo do seu cofre para localizar sua versão criptografada
main.vaultDetail.encryptedPathsCopied=Caminhos copiados para área de transferência!
main.vaultDetail.encryptedPathsCopied=Caminhos copiados para a Área de Transferência!
main.vaultDetail.filePickerTitle=Selecione o Arquivo No Cofre
### Missing
main.vaultDetail.missing.info=O Cryptomator não conseguiu encontrar um cofre neste caminho.
main.vaultDetail.missing.info=O Cryptomator não encontrou um cofre neste caminho.
main.vaultDetail.missing.recheck=Verificar novamente
main.vaultDetail.missing.remove=Remover da lista de Cofres…
main.vaultDetail.missing.remove=Remover da lista de cofres…
main.vaultDetail.missing.changeLocation=Alterar Localização do Cofre…
### Needs Migration
main.vaultDetail.migrateButton=Atualizar Cofre

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Raportează această eroare
error.technicalDetails=Detalii:
error.existingSolutionDescription=Cryptomator nu s-a aşteptat să se întâmple asta. Dar am găsit o soluţie pentru această eroare. Vă rugăm să cititi următorul link.
error.hyperlink.solution=Caută soluția
error.lookupPermissionMessage=Cryptomator poate căuta online o soluție pentru această problemă. O cerere va fi trimisa către baza noastră de date de la adresa ta IP.
error.dismiss=Renunță
error.lookUpSolution=Caută soluția
# Defaults
defaults.vault.vaultName=Seif
@@ -37,9 +40,6 @@ traymenu.vault.reveal=Afişare
# Add Vault Wizard
addvaultwizard.title=Adaugă un seif
## Welcome
addvaultwizard.welcome.newButton=Creează seif nou
addvaultwizard.welcome.existingButton=Deschide un seif existent
## New
### Name
addvaultwizard.new.nameInstruction=Alege un nume pentru seif
@@ -358,7 +358,7 @@ main.vaultlist.contextMenu.unlock=Deblochează…
main.vaultlist.contextMenu.unlockNow=Deblochează acum
main.vaultlist.contextMenu.vaultoptions=Arată opțiunile seifului
main.vaultlist.contextMenu.reveal=Dezvăluie unitatea
main.vaultlist.addVaultBtn=Adaugă un seif
main.vaultlist.addVaultBtn=Adaugă
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Vă mulțumim că ați ales Cryptomator pentru a vă proteja fișierele. Dacă aveți nevoie de asistență, verificați ghidurile noastre de pornire:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Показать
# Add Vault Wizard
addvaultwizard.title=Добавить хранилище
## Welcome
addvaultwizard.welcome.newButton=Создать хранилище
addvaultwizard.welcome.existingButton=Открыть имеющееся хранилище
## New
addvaultwizard.new.title=Добавить новое хранилище
### Name
addvaultwizard.new.nameInstruction=Выберите имя для хранилища
addvaultwizard.new.namePrompt=Имя хранилища
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Это место доступа к ваш
addvault.new.readme.accessLocation.3=Любые файлы, добавленные в этот том, будут зашифрованы Cryptomator. Вы можете работать с ним как с любым другим диском или папкой. Здесь отображается только расшифрованное содержимое тома, ваши файлы остаются зашифрованными на жёстком диске постоянно.
addvault.new.readme.accessLocation.4=Этот файл можно удалить.
## Existing
addvaultwizard.existing.title=Добавить существующее хранилище
addvaultwizard.existing.instruction=Выберите файл "vault.cryptomator" существующего хранилища. Если имеется только файл "masterkey.cryptomator", выберите его.
addvaultwizard.existing.chooseBtn=Выбрать…
addvaultwizard.existing.filePickerTitle=Выберите файл хранилища
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Разблокировать…
main.vaultlist.contextMenu.unlockNow=Разблокировать
main.vaultlist.contextMenu.vaultoptions=Параметры хранилища
main.vaultlist.contextMenu.reveal=Показать диск
main.vaultlist.addVaultBtn=Добавить хранилище
main.vaultlist.addVaultBtn=Добавить
main.vaultlist.addVaultBtn.menuItemNew=Новое хранилище...
main.vaultlist.addVaultBtn.menuItemExisting=Существующее хранилище...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Благодарим за выбор Cryptomator для защиты ваших файлов. Если требуется помощь, ознакомьтесь с документацией по началу работы:

View File

@@ -24,7 +24,6 @@ traymenu.showMainWindow=පෙන්වන්න
traymenu.vault.unlock=අගුළුහරින්න
# Add Vault Wizard
## Welcome
## New
### Name
### Location

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Nahlásiť túto chybu
error.technicalDetails=Podrobnosti:
error.existingSolutionDescription=Cryptomator nečakal, že sa toto stane. Našli sme však existujúce riešenie tejto chyby. Pozrite si prosím nasledujúci odkaz.
error.hyperlink.solution=Vyhľadať riešenie
error.lookupPermissionMessage=Cryptomator vie vyhľadať riešenie tohoto problému online. Toto zašle požiadavku do našej databázy z Vašej IP adresy.
error.dismiss=Zamietnuť
error.lookUpSolution=Vyhľadať riešenie
# Defaults
defaults.vault.vaultName=Trezor
@@ -37,9 +40,6 @@ traymenu.vault.reveal=Odkryť
# Add Vault Wizard
addvaultwizard.title=Pridať trezor
## Welcome
addvaultwizard.welcome.newButton=Vytvoriť nový trezor
addvaultwizard.welcome.existingButton=Otvoriť existujúci trezor
## New
### Name
addvaultwizard.new.nameInstruction=Zvoľte názov pre trezor
@@ -133,6 +133,7 @@ unlock.success.revealBtn=Odkryť disk
## Failure
unlock.error.customPath.message=Nie je možné namapovať trezor na uživateĺskej ceste
unlock.error.customPath.description.notSupported=Ak chcete naďalej používať vlastnú cestu, prejdite do nastavení a vyberte typ zväzku, ktorý ju podporuje. V opačnom prípade prejdite na možnosti trezoru a vyberte podporovaný bod pripojenia.
unlock.error.customPath.description.hideawayNotDir=Dočasne, skrytý súbor "%3$s" použitý pre odomknutie nemôže byť odstránený. Prosím skontrolujte súbor a následne zmažte manuálne.
## Hub
hub.noKeychain.message=Nemôžem pristúpiť ku kľúču zariadenia
hub.noKeychain.description=V poradí odomknutia Hub trezorov, je požadovaný kľúč zariadenia ktorý je zabezpečený použitím keychain. K vykonaniu povoľte "%s" a zvoľte keychain v nastaveniach.
@@ -357,7 +358,7 @@ main.vaultlist.contextMenu.unlock=Odomknúť…
main.vaultlist.contextMenu.unlockNow=Odomknúť teraz
main.vaultlist.contextMenu.vaultoptions=Ukáž možnosti trezora
main.vaultlist.contextMenu.reveal=Odkry disk
main.vaultlist.addVaultBtn=Pridať trezor
main.vaultlist.addVaultBtn=Pridať
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Ďakujeme Vám že ste si zvolili Cryptomator pre ochranu Vaších súborov. Ak potrebujete akúkoľvek pomoc, pozrite si našu príručku ako začať:

View File

@@ -26,7 +26,6 @@ error.technicalDetails=Podrobnosti:
# Tray Menu
# Add Vault Wizard
## Welcome
## New
### Name
### Location
@@ -96,6 +95,7 @@ preferences.volume.docsTooltip=Informacije o različnih podatkovnih nosilcih naj
# Main Window
main.closeBtn.tooltip=Zapri
## Vault List
main.vaultlist.addVaultBtn=Dodaj
## Vault Detail
### Welcome
### Locked

View File

@@ -30,9 +30,6 @@ traymenu.vault.reveal=Otkrij
# Add Vault Wizard
addvaultwizard.title=Dodavanje safa
## Welcome
addvaultwizard.welcome.newButton=Napravi novi sef
addvaultwizard.welcome.existingButton=Otvori postojeći sef
## New
### Name
addvaultwizard.new.nameInstruction=Odaberi naziv za sef
@@ -222,7 +219,6 @@ main.vaultlist.contextMenu.unlock=Откључај…
main.vaultlist.contextMenu.unlockNow=Otključaj sada
main.vaultlist.contextMenu.vaultoptions=Прикажи опције сефа
main.vaultlist.contextMenu.reveal=Otvori disk
main.vaultlist.addVaultBtn=Dodavanje safa
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Хвала вам што сте одабрали Cryptomator за заштиту ваших података. Ако вам је потребна помоћ, прегледајте наше корисничко упутство:

View File

@@ -30,9 +30,6 @@ traymenu.vault.reveal=Otkrij
# Add Vault Wizard
addvaultwizard.title=Dodavanje safa
## Welcome
addvaultwizard.welcome.newButton=Napravi novi sef
addvaultwizard.welcome.existingButton=Otvori postojeći sef
## New
### Name
addvaultwizard.new.nameInstruction=Odaberi naziv za sef
@@ -195,7 +192,6 @@ main.preferencesBtn.tooltip=Podešavanja
main.vaultlist.contextMenu.lock=Zaključaj
main.vaultlist.contextMenu.unlockNow=Otključaj sada
main.vaultlist.contextMenu.reveal=Otvori disk
main.vaultlist.addVaultBtn=Dodavanje safa
## Vault Detail
### Welcome
### Locked

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=Visa
# Add Vault Wizard
addvaultwizard.title=Lägg till valv
## Welcome
addvaultwizard.welcome.newButton=Skapa nytt valv
addvaultwizard.welcome.existingButton=Öppna befintligt valv
## New
addvaultwizard.new.title=Lägg till nytt valv
### Name
addvaultwizard.new.nameInstruction=Ange namn för valvet
addvaultwizard.new.namePrompt=Valvnamn
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=Detta är ditt valvs åtkomstplats.
addvault.new.readme.accessLocation.3=Alla filer som läggs till denna volym kommer att krypteras av Cryptomator. Du kan arbeta med dem som i vilken annan enhet/mapp som helst. Detta är bara en dekrypterad vy av dess innehåll, dina filer förblir krypterade på din hårddisk hela tiden.
addvault.new.readme.accessLocation.4=Du kan ta bort denna fil.
## Existing
addvaultwizard.existing.title=Öppna befintligt valv
addvaultwizard.existing.instruction=Välj filen "vault.cryptomator" i ditt befintliga valv. Om det endast finns en fil som heter "masterkey.cryptomator", välj den istället.
addvaultwizard.existing.chooseBtn=Välj…
addvaultwizard.existing.filePickerTitle=Välj valvfil
@@ -138,7 +137,7 @@ unlock.error.customPath.message=Det går inte att montera valvet på utpekad sö
unlock.error.customPath.description.notSupported=Om du vill fortsätta använda den anpassade sökvägen, gå till inställningarna och välj en volymtyp som stöder den. Annars går du till valvalternativen och väljer en monteringspunkt som stöds.
unlock.error.customPath.description.notExists=Den anpassade monteringssökvägen finns inte. Skapa den antingen i ditt lokala filsystem eller ändra den i valvalternativen.
unlock.error.customPath.description.inUse=Enhetsbokstaven eller anpassad monteringsväg "%s" används redan.
unlock.error.customPath.description.hideawayNotDir=Den temporära, dolda filen "%3$s" som användes för upplåsning kunde inte tas bort. Kontrollera filen och ta sedan bort den manuellt.
unlock.error.customPath.description.hideawayNotDir=Den temporära, dolda filen "%3$s" som användes för upplåsning kunde inte tas bort. Kontrollera filen och radera den manuellt.
unlock.error.customPath.description.couldNotBeCleaned=Ditt valv kunde inte monteras till sökvägen "%s". Försök igen eller välj en annan sökväg.
unlock.error.customPath.description.notEmptyDir=Den anpassade monteringssökvägen "%s" är inte en tom mapp. Välj en tom mapp och försök igen.
unlock.error.customPath.description.generic=Den anpassade monteringssökvägen gick inte att använda. Felmeddelande: %2$s
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Lås upp…
main.vaultlist.contextMenu.unlockNow=Lås upp nu
main.vaultlist.contextMenu.vaultoptions=Visa inställningar för valv
main.vaultlist.contextMenu.reveal=Visa enhet
main.vaultlist.addVaultBtn=Lägg till valv
main.vaultlist.addVaultBtn=Lägg till
main.vaultlist.addVaultBtn.menuItemNew=Nytt valv...
main.vaultlist.addVaultBtn.menuItemExisting=Öppna befintligt valv...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Tack för att du väljer Cryptomator för att skydda dina filer. Om du behöver hjälp kan du kolla in våra guider:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=Kufunua
# Add Vault Wizard
addvaultwizard.title=Ongeza Kuba
## Welcome
addvaultwizard.welcome.newButton=Unda kuba mpya
addvaultwizard.welcome.existingButton=Fungua Kuba iliyopo
## New
### Name
addvaultwizard.new.nameInstruction=Chagua jina la kuba
@@ -349,7 +346,7 @@ main.vaultlist.contextMenu.unlock=Fungua…
main.vaultlist.contextMenu.unlockNow=Fungua Sasa
main.vaultlist.contextMenu.vaultoptions=Onyesha Machaguo ya Kuba
main.vaultlist.contextMenu.reveal=Fichua Kiendeshaji
main.vaultlist.addVaultBtn=Ongeza Kuba
main.vaultlist.addVaultBtn=Ongeza
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Shukrani kwa kuchagua Cryptomator kulinda faili zako. Ikiwa unahitaji msaada wowote, angalia miongozo yetu ya kuanza:

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=தெரியப்படுத்து
# Add Vault Wizard
addvaultwizard.title=பெட்டகத்தைச் சேர்க்கவும்
## Welcome
addvaultwizard.welcome.newButton=புதிய பெட்டகத்தை உருவாக்கவும்
addvaultwizard.welcome.existingButton=இருக்கும் பெட்டகத்தைத் திறக்கவும்
## New
### Name
addvaultwizard.new.nameInstruction=பெட்டகத்திற்கு ஒரு பெயரைத் தேர்ந்தெடுக்கவும்
@@ -233,7 +230,6 @@ main.vaultlist.contextMenu.unlock=பூட்டுநீக்கு…
main.vaultlist.contextMenu.unlockNow=இப்போது திறக்கவும்
main.vaultlist.contextMenu.vaultoptions=பெட்டக விருப்பங்களைக் காட்டு
main.vaultlist.contextMenu.reveal=இயக்ககத்தை வெளிப்படுத்து
main.vaultlist.addVaultBtn=பெட்டகத்தைச் சேர்க்கவும்
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=உங்கள் கோப்புகளைப் பாதுகாக்க Cryptomator -ஐத் தேர்ந்தெடுத்ததற்கு நன்றி. உங்களுக்கு ஏதேனும் உதவி தேவைப்பட்டால், எங்கள் தொடக்க வழிகாட்டிகளைப் பார்க்கவும்:

View File

@@ -10,7 +10,6 @@
# Tray Menu
# Add Vault Wizard
## Welcome
## New
### Name
### Location

View File

@@ -35,9 +35,6 @@ traymenu.vault.reveal=เปิดเผย
# Add Vault Wizard
addvaultwizard.title=เพิ่ม Vault
## Welcome
addvaultwizard.welcome.newButton=สร้าง Vault ใหม่
addvaultwizard.welcome.existingButton=เปิด Vault
## New
### Name
addvaultwizard.new.nameInstruction=เลือกชื่อให้ Vault
@@ -141,7 +138,6 @@ main.preferencesBtn.tooltip=การตั้งค่า
main.supporterCertificateMissing.tooltip=โปรดพิจารณาเงินบริจาค
## Vault List
main.vaultlist.contextMenu.lock=ล็อก
main.vaultlist.addVaultBtn=เพิ่ม Vault
## Vault Detail
### Welcome
### Locked

View File

@@ -22,6 +22,9 @@ error.hyperlink.report=Bu hatayı bildir
error.technicalDetails=Detaylar:
error.existingSolutionDescription=Cryptomator bunun olmasını beklemiyordu. Ancak bu hata için hali hazırda bir çözüm olduğunu bulduk. Lütfen aşağıdaki bağlantıya göz atın.
error.hyperlink.solution=Çözüme bak
error.lookupPermissionMessage=Cryptomator bu soruna çevrimiçi bir çözüm arayabilir. Bu, sorun veritabanımıza IP adresinizden bir istek gönderecektir.
error.dismiss=Yoksay
error.lookUpSolution=Çözüme Bak
# Defaults
defaults.vault.vaultName=Kasa
@@ -37,10 +40,8 @@ traymenu.vault.reveal=Göster
# Add Vault Wizard
addvaultwizard.title=Kasa Ekle
## Welcome
addvaultwizard.welcome.newButton=Yeni Kasa Oluştur
addvaultwizard.welcome.existingButton=Varolan Kasayı
## New
addvaultwizard.new.title=Yeni Kasa Ekle
### Name
addvaultwizard.new.nameInstruction=Kasa için bir isim seç
addvaultwizard.new.namePrompt=Kasa Adı
@@ -90,6 +91,7 @@ addvault.new.readme.accessLocation.2=Burası kasanızın erişim konumudur.
addvault.new.readme.accessLocation.3=Bu birime eklenen tüm dosyalar Cryptomator tarafından şifrelenecektir. Başka herhangi bir sürücü/klasörde olduğu gibi üzerinde çalışabilirsiniz. Bu sadece içeriğinin şifresi çözülmüş bir görünümüdür, dosyalarınız her zaman sabit sürücünüzde şifrelenmiş halde kalır.
addvault.new.readme.accessLocation.4=Bu dosyayı silmeye çekinmeyin.
## Existing
addvaultwizard.existing.title=Mevcut Kasayı Ekle
addvaultwizard.existing.instruction=Mevcut kasanızın "vault.cryptomator" dosyasını seçin. Yalnızca "masterkey.cryptomator" adlı bir dosya varsa, bunun yerine onu seçin.
addvaultwizard.existing.chooseBtn=Seç…
addvaultwizard.existing.filePickerTitle=Kasa Dosyasını Seçin
@@ -363,7 +365,9 @@ main.vaultlist.contextMenu.unlock=Kilit aç…
main.vaultlist.contextMenu.unlockNow=Kilidi Şimdi Aç
main.vaultlist.contextMenu.vaultoptions=Kasa Ayarları'nı Göster
main.vaultlist.contextMenu.reveal=Sürücüyü Göster
main.vaultlist.addVaultBtn=Kasa Ekle
main.vaultlist.addVaultBtn=Ekle
main.vaultlist.addVaultBtn.menuItemNew=Yeni Kasa...
main.vaultlist.addVaultBtn.menuItemExisting=Mevcut Kasa...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Dosyalarınızı korumak için Cryptomator'u seçtiğiniz için teşekkür ederiz. Yardıma ihtiyacınız olursa başlangıç kılavuzlarımıza bakın:

View File

@@ -20,6 +20,8 @@ error.description=Cryptomator не очікував, що таке трапит
error.hyperlink.lookup=Дізнатися більше про цю помилку
error.hyperlink.report=Повідомити про помилку
error.technicalDetails=Подробиці:
error.hyperlink.solution=Знайдіть рішення
error.dismiss=Відхилити
# Defaults
defaults.vault.vaultName=Сховище
@@ -35,10 +37,8 @@ traymenu.vault.reveal=Показати
# Add Vault Wizard
addvaultwizard.title=Додати сховище
## Welcome
addvaultwizard.welcome.newButton=Створити нове сховище
addvaultwizard.welcome.existingButton=Відкрити сховище
## New
addvaultwizard.new.title=Додайте нове сховище
### Name
addvaultwizard.new.nameInstruction=Оберіть назву для сховища
addvaultwizard.new.namePrompt=Назва сховища
@@ -60,6 +60,7 @@ addvaultwizard.new.validCharacters.chars=Літери (напр. a, ж or 수)
addvaultwizard.new.validCharacters.numbers=Цифри
addvaultwizard.new.validCharacters.dashes=Дефіс (%s) або підкреслення (%s)
### Expert Settings
addvaultwizard.new.expertSettings.shorteningThreshold.tooltip=Відкрийте документацію, щоб дізнатися більше.
### Password
addvaultwizard.new.createVaultBtn=Створити сховище
addvaultwizard.new.generateRecoveryKeyChoice=Ви не зможете отримати доступ до своїх даних, якщо втратите пароль. Хочете створити ключ відновлення на випадок втрати паролю?
@@ -83,6 +84,7 @@ addvault.new.readme.accessLocation.2=Це місце розташування в
addvault.new.readme.accessLocation.3=Будь-які файли, додані до цього тому, будуть зашифровані за допомогою Cryptomator. Ви можете працювати із ним як із будь-якою іншою директорією або накопичувачем. Це лише розшифрований вигляд його вмісту, ваші файли завжди знаходяться в зашифрованому вигляді на диску.
addvault.new.readme.accessLocation.4=Якщо хочете, то можете видалити цей файл.
## Existing
addvaultwizard.existing.title=Додати існуюче сховище
addvaultwizard.existing.instruction=Виберіть файл "vault.cryptomator" у вашому існуючому сховищі. Якщо існує лише файл з назвою "masterkey.cryptomator", виберіть його.
addvaultwizard.existing.chooseBtn=Обрати…
addvaultwizard.existing.filePickerTitle=Виберіть Vault Файл
@@ -182,6 +184,7 @@ migration.error.missingFileSystemCapabilities.title=Непідтримувана
# Health Check
## Start
## Start Failure
health.fail.moreInfo=Більше інформації
## Check Selection
## Detail view
health.check.detail.checkRunning=Перевірка триває…
@@ -262,7 +265,7 @@ main.preferencesBtn.tooltip=Властивості
main.vaultlist.contextMenu.lock=Заблокувати
main.vaultlist.contextMenu.unlockNow=Розблокувати
main.vaultlist.contextMenu.reveal=Розкрити Диск
main.vaultlist.addVaultBtn=Додати сховище
main.vaultlist.addVaultBtn=Додати
## Vault Detail
### Welcome
### Locked

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=Hiển thị
# Add Vault Wizard
addvaultwizard.title=Thêm Vault
## Welcome
addvaultwizard.welcome.newButton=Tạo Vault mới
addvaultwizard.welcome.existingButton=Mở Vault Hiện Có
## New
### Name
addvaultwizard.new.nameInstruction=Chọn tên cho vault
@@ -353,7 +350,7 @@ main.vaultlist.contextMenu.unlock=Mở khoá…
main.vaultlist.contextMenu.unlockNow=Mở khóa bây giờ
main.vaultlist.contextMenu.vaultoptions=Hiện tùy chọn vault
main.vaultlist.contextMenu.reveal=Hiển thị Ổ đĩa
main.vaultlist.addVaultBtn=Thêm Vault
main.vaultlist.addVaultBtn=Thêm
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=Cảm ơn bạn đã chọn Cryptomator để bảo vệ tệp của bạn. Nếu bạn cần bất kỳ hỗ trợ nào, hãy xem hướng dẫn bắt đầu của chúng tôi:

View File

@@ -40,10 +40,8 @@ traymenu.vault.reveal=显示
# Add Vault Wizard
addvaultwizard.title=添加保险库
## Welcome
addvaultwizard.welcome.newButton=创建新的保险库
addvaultwizard.welcome.existingButton=打开现有的保险库
## New
addvaultwizard.new.title=添加新保险库
### Name
addvaultwizard.new.nameInstruction=为保险库创建一个名称
addvaultwizard.new.namePrompt=保险库名称
@@ -93,6 +91,7 @@ addvault.new.readme.accessLocation.2=这是您的保险库的访问路径。
addvault.new.readme.accessLocation.3=任何添加到此卷的文件都将被 Cryptomator 加密。您可以像在一般磁盘/文件夹上那样操作它。 这只是对其内容的解密查看,您的文件会在硬盘上一直保持加密。
addvault.new.readme.accessLocation.4=您可以随时删除此文件。
## Existing
addvaultwizard.existing.title=添加现有保险库
addvaultwizard.existing.instruction=请选择现有保险库中的“vault.cryptomator”文件。如果只有一个名为“masterkey.cryptomator”的文件则改为选择该文件。
addvaultwizard.existing.chooseBtn=选择...
addvaultwizard.existing.filePickerTitle=请选择保险库对应文件
@@ -138,7 +137,7 @@ unlock.error.customPath.message=无法将保险库挂载到自定义路径
unlock.error.customPath.description.notSupported=如果您仍想使用自定义路径,请转至首选项并选择支持它的卷类型。否则,请转至保险库选项并选择受支持的挂载点
unlock.error.customPath.description.notExists=自定义挂载路径不存在,请在您的本地文件系统中创建它或在保险库选项中进行更改
unlock.error.customPath.description.inUse=盘符或自定义挂载路径「%s」已被使用。
unlock.error.customPath.description.hideawayNotDir=无法删除用于解锁的临时隐藏文件 '%3$s'。请检查文件,然后手动删除
unlock.error.customPath.description.hideawayNotDir=用于解锁的临时隐藏文件 "%3$s" 无法被删除。请检查文件手动删除
unlock.error.customPath.description.couldNotBeCleaned=无法将您的保险库挂载到路径 "%s"。请重试或选择其他路径。
unlock.error.customPath.description.notEmptyDir=自定义挂载路径 "%s" 不是一个空文件夹。请选择一个空文件夹并重试。
unlock.error.customPath.description.generic=您为此保险库选择了自定义挂载路径,但使用它时出现了错误信息:%2$s。
@@ -366,7 +365,9 @@ main.vaultlist.contextMenu.unlock=解锁…
main.vaultlist.contextMenu.unlockNow=立即解锁
main.vaultlist.contextMenu.vaultoptions=显示保险库选项
main.vaultlist.contextMenu.reveal=显示驱动器
main.vaultlist.addVaultBtn=添加保险库
main.vaultlist.addVaultBtn=添加
main.vaultlist.addVaultBtn.menuItemNew=新保险库...
main.vaultlist.addVaultBtn.menuItemExisting=现有保险库...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=感谢您使用 Cryptomator 来保护您的文件。如果您需要任何帮助,请查看我们的快速开始指南:

View File

@@ -37,9 +37,6 @@ traymenu.vault.reveal=展示
# Add Vault Wizard
addvaultwizard.title=新增加密庫
## Welcome
addvaultwizard.welcome.newButton=建立新的加密庫
addvaultwizard.welcome.existingButton=開啟現有的加密庫
## New
### Name
addvaultwizard.new.nameInstruction=為加密庫命名
@@ -135,7 +132,6 @@ unlock.error.customPath.message=無法掛載加密庫於此自定路徑
unlock.error.customPath.description.notSupported=若要繼續使用自定路徑,請在設定選取支援此自定路徑的空間/加密空間類型;或者,在加密庫選項中選擇一個受支援的掛載點。
unlock.error.customPath.description.notExists=自定路徑不存在。請在本機文件系統指定另一路徑或在加密庫選項中變更。
unlock.error.customPath.description.inUse=磁碟代號或自訂掛載路徑「%s」已被使用。
unlock.error.customPath.description.hideawayNotDir=無法移除用於解鎖的臨時隱藏檔案「%3$s」。請檢查該檔案然後手動刪除。
unlock.error.customPath.description.couldNotBeCleaned=無法將您的保險庫掛載至路徑「%s」。請再試一次或選擇不同的路徑。
unlock.error.customPath.description.notEmptyDir=自訂掛載路徑「%s」不是一個空資料夾。請選擇一個空資料夾並重試。
unlock.error.customPath.description.generic=您為此保險庫選擇了自訂掛載路徑,但使用時出現了錯誤訊息:%2$s
@@ -363,7 +359,7 @@ main.vaultlist.contextMenu.unlock=解鎖…
main.vaultlist.contextMenu.unlockNow=立即解鎖
main.vaultlist.contextMenu.vaultoptions=顯示加密庫選項
main.vaultlist.contextMenu.reveal=展示磁碟
main.vaultlist.addVaultBtn=增加密庫
main.vaultlist.addVaultBtn=增加
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=感謝選用 Cryptomator 保護你的檔案。如需要任何協助,請參照我們的使用指南:

View File

@@ -37,10 +37,8 @@ traymenu.vault.reveal=顯示
# Add Vault Wizard
addvaultwizard.title=新增加密檔案庫
## Welcome
addvaultwizard.welcome.newButton=新建加密檔案庫
addvaultwizard.welcome.existingButton=開啟現有加密檔案庫
## New
addvaultwizard.new.title=添加加密檔案庫
### Name
addvaultwizard.new.nameInstruction=為加密檔案庫命名
addvaultwizard.new.namePrompt=加密檔案庫名稱
@@ -90,6 +88,7 @@ addvault.new.readme.accessLocation.2=這是您加密檔案庫的存取位置。
addvault.new.readme.accessLocation.3=所有被加進這個磁區的檔案都將被 Cryptomator 加密。你可以把它當做磁碟或資料夾使用。這裡式顯示出解密後內容,您的檔案總是以被加密的狀態儲存在磁碟中。
addvault.new.readme.accessLocation.4=您可以放心移除這個檔案。
## Existing
addvaultwizard.existing.title=添加現有的加密檔案庫
addvaultwizard.existing.instruction=請選擇現有加密檔案庫中名為「vault.cryptomator」的檔案。如果只有一個名為「masterkey.cryptomator」的檔案則選擇該檔案。
addvaultwizard.existing.chooseBtn=選取…
addvaultwizard.existing.filePickerTitle=選取加密檔案庫的檔案
@@ -135,7 +134,6 @@ unlock.error.customPath.message=無法將檔案庫掛載至自訂路徑
unlock.error.customPath.description.notSupported=如果要繼續使用自訂的掛載路徑,必須變更成支援的磁區空間類型,不然就必須使用不同的掛載路徑
unlock.error.customPath.description.notExists=自訂的掛載路徑並不存在‧ 請在本機創立該路徑,或者在加密庫選項中更改
unlock.error.customPath.description.inUse=磁碟代號或自訂掛載路徑「%s」已被使用。
unlock.error.customPath.description.hideawayNotDir=無法移除用於解鎖的臨時隱藏檔案「%3$s」。請檢查該檔案然後手動刪除。
unlock.error.customPath.description.couldNotBeCleaned=無法將您的保險庫掛載至路徑「%s」。請再試一次或選擇不同的路徑。
unlock.error.customPath.description.notEmptyDir=自訂掛載路徑「%s」不是一個空資料夾。請選擇一個空資料夾並重試。
unlock.error.customPath.description.generic=您為此保險庫選擇了自訂掛載路徑,但使用時出現了錯誤訊息:%2$s
@@ -363,7 +361,9 @@ main.vaultlist.contextMenu.unlock=解鎖…
main.vaultlist.contextMenu.unlockNow=立即解鎖
main.vaultlist.contextMenu.vaultoptions=顯示加密檔案庫選項
main.vaultlist.contextMenu.reveal=顯示磁碟
main.vaultlist.addVaultBtn=新增加密檔案庫
main.vaultlist.addVaultBtn=添加
main.vaultlist.addVaultBtn.menuItemNew=開啟新的加密檔案庫...
main.vaultlist.addVaultBtn.menuItemExisting=現有的加密檔案庫...
## Vault Detail
### Welcome
main.vaultDetail.welcomeOnboarding=感謝您選用 Cryptomator 保護您的檔案。如果您需要任何協助,請參照我們的使用指南: