M main/buildkit/pom.xml => main/buildkit/pom.xml +1 -1
@@ 4,7 4,7 @@
<parent>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
</parent>
<artifactId>buildkit</artifactId>
<packaging>pom</packaging>
M main/commons/pom.xml => main/commons/pom.xml +1 -1
@@ 4,7 4,7 @@
<parent>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
</parent>
<artifactId>commons</artifactId>
<name>Cryptomator Commons</name>
M main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java => main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java +10 -5
@@ 34,9 34,10 @@ public class VaultSettings {
public static final boolean DEFAULT_USES_INDIVIDUAL_MOUNTPATH = false;
public static final boolean DEFAULT_USES_READONLY_MODE = false;
public static final String DEFAULT_MOUNT_FLAGS = "";
+ public static final String DEFAULT_MOUNT_NAME = "Vault";
public static final int DEFAULT_FILENAME_LENGTH_LIMIT = -1;
public static final WhenUnlocked DEFAULT_ACTION_AFTER_UNLOCK = WhenUnlocked.ASK;
-
+
private static final Random RNG = new Random();
private final String id;
@@ 55,16 56,20 @@ public class VaultSettings {
public VaultSettings(String id) {
this.id = Objects.requireNonNull(id);
- EasyBind.subscribe(path, this::deriveMountNameFromPath);
+ EasyBind.subscribe(path, this::deriveMountNameFromPathOrUseDefault);
}
Observable[] observables() {
return new Observable[]{path, mountName, winDriveLetter, unlockAfterStartup, revealAfterMount, useCustomMountPath, customMountPath, usesReadOnlyMode, mountFlags, filenameLengthLimit, actionAfterUnlock};
}
- private void deriveMountNameFromPath(Path path) {
- if (path != null && StringUtils.isBlank(mountName.get())) {
- mountName.set(normalizeMountName(path.getFileName().toString()));
+ private void deriveMountNameFromPathOrUseDefault(Path path) {
+ if (StringUtils.isBlank(mountName.get())) {
+ if (path != null && path.getFileName() != null) {
+ mountName.set(normalizeMountName(path.getFileName().toString()));
+ } else {
+ mountName.set(DEFAULT_MOUNT_NAME);
+ }
}
}
M main/keychain/pom.xml => main/keychain/pom.xml +1 -1
@@ 4,7 4,7 @@
<parent>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
</parent>
<artifactId>keychain</artifactId>
<name>System Keychain Access</name>
M main/launcher/pom.xml => main/launcher/pom.xml +1 -1
@@ 4,7 4,7 @@
<parent>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
</parent>
<artifactId>launcher</artifactId>
<name>Cryptomator Launcher</name>
A main/launcher/src/main/java/org/cryptomator/logging/LaunchAndSizeBasedTriggerinPolicy.java => main/launcher/src/main/java/org/cryptomator/logging/LaunchAndSizeBasedTriggerinPolicy.java +30 -0
@@ 0,0 1,30 @@
+package org.cryptomator.logging;
+
+import ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy;
+import ch.qos.logback.core.rolling.TriggeringPolicyBase;
+import ch.qos.logback.core.util.FileSize;
+
+import java.io.File;
+
+/**
+ * Triggers a roll-over either on the first log event or if watched log file reaches a certain size
+ *
+ * @param <E> Event type the policy possibly reacts to
+ */
+public class LaunchAndSizeBasedTriggerinPolicy<E> extends TriggeringPolicyBase<E> {
+
+ LaunchBasedTriggeringPolicy<E> launchBasedTriggeringPolicy;
+ SizeBasedTriggeringPolicy<E> sizeBasedTriggeringPolicy;
+
+ public LaunchAndSizeBasedTriggerinPolicy(FileSize threshold) {
+ this.launchBasedTriggeringPolicy = new LaunchBasedTriggeringPolicy<>();
+ this.sizeBasedTriggeringPolicy = new SizeBasedTriggeringPolicy<>();
+ sizeBasedTriggeringPolicy.setMaxFileSize(threshold);
+ }
+
+ @Override
+ public boolean isTriggeringEvent(File activeFile, E event) {
+ return launchBasedTriggeringPolicy.isTriggeringEvent(activeFile, event) || sizeBasedTriggeringPolicy.isTriggeringEvent(activeFile, event);
+ }
+
+}
M main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java => main/launcher/src/main/java/org/cryptomator/logging/LoggerModule.java +4 -3
@@ 9,10 9,9 @@ import ch.qos.logback.core.Appender;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.FileAppender;
import ch.qos.logback.core.helpers.NOPAppender;
-import ch.qos.logback.core.hook.DelayingShutdownHook;
import ch.qos.logback.core.rolling.FixedWindowRollingPolicy;
import ch.qos.logback.core.rolling.RollingFileAppender;
-import ch.qos.logback.core.util.Duration;
+import ch.qos.logback.core.util.FileSize;
import dagger.Module;
import dagger.Provides;
import org.cryptomator.common.Environment;
@@ 33,6 32,8 @@ public class LoggerModule {
private static final int LOGFILE_ROLLING_MIN = 1;
private static final int LOGFILE_ROLLING_MAX = 9;
private static final String LOG_PATTERN = "%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n";
+ private static final String LOG_MAX_SIZE = "100mb";
+
static final Map<String, Level> DEFAULT_LOG_LEVELS = Map.of( //
Logger.ROOT_LOGGER_NAME, Level.INFO, //
"org.cryptomator", Level.INFO //
@@ 84,7 85,7 @@ public class LoggerModule {
appender.setContext(context);
appender.setFile(logDir.resolve(LOGFILE_NAME).toString());
appender.setEncoder(encoder);
- LaunchBasedTriggeringPolicy triggeringPolicy = new LaunchBasedTriggeringPolicy();
+ LaunchAndSizeBasedTriggerinPolicy triggeringPolicy = new LaunchAndSizeBasedTriggerinPolicy(FileSize.valueOf(LOG_MAX_SIZE));
triggeringPolicy.setContext(context);
triggeringPolicy.start();
appender.setTriggeringPolicy(triggeringPolicy);
M main/pom.xml => main/pom.xml +7 -7
@@ 3,7 3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
<packaging>pom</packaging>
<name>Cryptomator</name>
@@ 24,7 24,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- cryptomator dependencies -->
- <cryptomator.cryptofs.version>1.9.11</cryptomator.cryptofs.version>
+ <cryptomator.cryptofs.version>1.9.12</cryptomator.cryptofs.version>
<cryptomator.jni.version>2.2.2</cryptomator.jni.version>
<cryptomator.fuse.version>1.2.3</cryptomator.fuse.version>
<cryptomator.dokany.version>1.1.15</cryptomator.dokany.version>
@@ 32,18 32,18 @@
<!-- 3rd party dependencies -->
<javafx.version>14</javafx.version>
- <commons-lang3.version>3.9</commons-lang3.version>
+ <commons-lang3.version>3.10</commons-lang3.version>
<secret-service.version>1.0.0</secret-service.version>
- <jwt.version>3.10.2</jwt.version>
+ <jwt.version>3.10.3</jwt.version>
<easybind.version>1.0.3</easybind.version>
- <guava.version>28.2-jre</guava.version>
- <dagger.version>2.27</dagger.version>
+ <guava.version>29.0-jre</guava.version>
+ <dagger.version>2.22</dagger.version>
<gson.version>2.8.6</gson.version>
<slf4j.version>1.7.30</slf4j.version>
<logback.version>1.2.3</logback.version>
<!-- test dependencies -->
- <junit.jupiter.version>5.6.1</junit.jupiter.version>
+ <junit.jupiter.version>5.6.2</junit.jupiter.version>
<mockito.version>3.3.3</mockito.version>
<hamcrest.version>2.2</hamcrest.version>
</properties>
M main/ui/pom.xml => main/ui/pom.xml +1 -1
@@ 4,7 4,7 @@
<parent>
<groupId>org.cryptomator</groupId>
<artifactId>main</artifactId>
- <version>1.5.5</version>
+ <version>1.5.6</version>
</parent>
<artifactId>ui</artifactId>
<name>Cryptomator GUI</name>
A main/ui/src/main/java/org/cryptomator/ui/common/WeakBindings.java => main/ui/src/main/java/org/cryptomator/ui/common/WeakBindings.java +32 -0
@@ 0,0 1,32 @@
+package org.cryptomator.ui.common;
+
+import javafx.beans.binding.StringBinding;
+import javafx.beans.value.ObservableObjectValue;
+
+
+/**
+ * Contains a variety of method to create {@link java.util.function.Function#identity() identity}-bindings
+ * to facilitate the Weak References used internally in JavaFX's Bindings.
+ */
+public final class WeakBindings {
+
+ /**
+ * Create a new StringBinding that listens to changes from the given observable without being strongly referenced by it.
+ *
+ * @param observable The observable
+ * @return a StringBinding weakly referenced from the given observable
+ */
+ public static StringBinding bindString(ObservableObjectValue<String> observable) {
+ return new StringBinding() {
+ {
+ bind(observable);
+ }
+
+ @Override
+ protected String computeValue() {
+ return observable.get();
+ }
+ };
+ }
+
+}
M main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockController.java => main/ui/src/main/java/org/cryptomator/ui/unlock/UnlockController.java +11 -3
@@ 8,6 8,7 @@ import javafx.animation.Timeline;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.binding.ObjectBinding;
+import javafx.beans.binding.StringBinding;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ReadOnlyBooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
@@ 23,6 24,7 @@ import org.cryptomator.common.vaults.Vault;
import org.cryptomator.keychain.KeychainManager;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.common.UserInteractionLock;
+import org.cryptomator.ui.common.WeakBindings;
import org.cryptomator.ui.controls.NiceSecurePasswordField;
import org.cryptomator.ui.forgetPassword.ForgetPasswordComponent;
import org.slf4j.Logger;
@@ 51,7 53,8 @@ public class UnlockController implements FxController {
private final ObjectBinding<ContentDisplay> unlockButtonContentDisplay;
private final BooleanBinding userInteractionDisabled;
private final BooleanProperty unlockButtonDisabled;
-
+ private final StringBinding vaultName;
+
public NiceSecurePasswordField passwordField;
public CheckBox savePasswordCheckbox;
public ImageView face;
@@ 74,6 77,7 @@ public class UnlockController implements FxController {
this.unlockButtonContentDisplay = Bindings.createObjectBinding(this::getUnlockButtonContentDisplay, passwordEntryLock.awaitingInteraction());
this.userInteractionDisabled = passwordEntryLock.awaitingInteraction().not();
this.unlockButtonDisabled = new SimpleBooleanProperty();
+ this.vaultName = WeakBindings.bindString(vault.displayableNameProperty());
this.window.setOnCloseRequest(windowEvent -> cancel());
}
@@ 177,8 181,12 @@ public class UnlockController implements FxController {
/* Getter/Setter */
- public Vault getVault() {
- return vault;
+ public String getVaultName() {
+ return vaultName.get();
+ }
+
+ public StringBinding vaultNameProperty() {
+ return vaultName;
}
public ObjectBinding<ContentDisplay> unlockButtonContentDisplayProperty() {
M main/ui/src/main/resources/fxml/unlock.fxml => main/ui/src/main/resources/fxml/unlock.fxml +1 -1
@@ 46,7 46,7 @@
</ImageView>
</StackPane>
<VBox spacing="6" HBox.hgrow="ALWAYS">
- <FormattedLabel format="%unlock.passwordPrompt" arg1="${controller.vault.displayableName}" wrapText="true"/>
+ <FormattedLabel format="%unlock.passwordPrompt" arg1="${controller.vaultName}" wrapText="true"/>
<NiceSecurePasswordField fx:id="passwordField" disable="${controller.userInteractionDisabled}"/>
<CheckBox fx:id="savePasswordCheckbox" text="%unlock.savePassword" onAction="#didClickSavePasswordCheckbox" disable="${controller.userInteractionDisabled}" visible="${controller.keychainAccessAvailable}"/>
</VBox>
M main/ui/src/main/resources/i18n/strings_el.properties => main/ui/src/main/resources/i18n/strings_el.properties +196 -0
@@ 2,63 2,259 @@
# Generics
## Button
+generic.button.apply=Εφαρμογή
+generic.button.back=Πίσω
+generic.button.cancel=Ακύρωση
+generic.button.change=Αλλαγή
+generic.button.close=Κλείσιμο
+generic.button.copy=Αντιγραφή
+generic.button.copied=Αντιγράφηκε!
+generic.button.done=Κλείσιμο
+generic.button.next=Επόμενο
+generic.button.print=Εκτύπωση
## Error
+generic.error.title=Παρουσιάστηκε ένα απροσδόκητο σφάλμα
+generic.error.instruction=Αυτό δεν έπρεπε να συμβεί. Παρακαλώ αντιγράψτε το κείμενο του σφάλματος και επισυνάψτε μια περιγραφή των βημάτων που οδήγησαν σε αυτό το σφάλμα.
# Tray Menu
+traymenu.showMainWindow=Εμφάνιση
+traymenu.showPreferencesWindow=Προτιμήσεις
+traymenu.lockAllVaults=Κλείδωμα όλων
+traymenu.quitApplication=Έξοδος
+traymenu.vault.unlock=Ξεκλείδωμα
+traymenu.vault.lock=Κλείδωμα
+traymenu.vault.reveal=Αποκάλυψη
# Add Vault Wizard
+addvaultwizard.title=Προσθήκη Vault
## Welcome
+addvaultwizard.welcome.newButton=Δημιουργία νέου Vault
+addvaultwizard.welcome.existingButton=Άνοιγμα υπάρχοντος Vault
## New
### Name
+addvaultwizard.new.nameInstruction=Διαλέξτε ένα όνομα για το vault
+addvaultwizard.new.namePrompt=Όνομα Vault
### Location
+addvaultwizard.new.locationInstruction=Που θα αποθηκεύσει το Cryptomator τα κωδικοποιημένα αρχεία του vault σου;
+addvaultwizard.new.locationLabel=Θέση αποθήκευσης
+addvaultwizard.new.locationPrompt=…
+addvaultwizard.new.directoryPickerLabel=Προσαρμοσμένη τοποθεσία
+addvaultwizard.new.directoryPickerButton=Επιλογή
+addvaultwizard.new.directoryPickerTitle=Επιλογή φακέλου
+addvaultwizard.new.fileAlreadyExists=Το vault δεν μπορεί να δημιουργηθεί σε αυτό το μονοπάτι καθώς κάποια αντικείμενα υπάρχουν ήδη.
+addvaultwizard.new.locationDoesNotExist=Το vault δεν μπορεί να δημιουργηθεί σε αυτό το μονοπάτι καθώς τουλάχιστον ένα στοιχείο του μονοπατιού δεν υπάρχει.
+addvaultwizard.new.invalidName=Λάθος όνομα vault. Παρακαλώ χρησιμοποιείστε ένα κανονικό όνομα φακέλου.
### Password
+addvaultwizard.new.createVaultBtn=Δημιουργία Vault
+addvaultwizard.new.generateRecoveryKeyChoice=Δεν θα μπορείτε να έχετε πρόσβαση στα δεδομένα σας χωρίς τον κωδικό σας. Θέλετε να δημιουργηθεί ένα κλειδί ανάκτησης στην περίπτωση που χάσετε τον κωδικό σας;
+addvaultwizard.new.generateRecoveryKeyChoice.yes=Ναι παρακαλώ, καλύτερα ασφαλής παρά λυπημένος
+addvaultwizard.new.generateRecoveryKeyChoice.no=Όχι ευχαριστώ, δεν θα χάσω τον κωδικό μου
### Information
+addvault.new.readme.storageLocation.fileName=ΣΗΜΑΝΤΙΚΟ.rtf
+addvault.new.readme.storageLocation.1=ΑΡΧΕΙΑ VAULT
+addvault.new.readme.storageLocation.2=Αυτή είναι η τοποθεσία του vault σας.
+addvault.new.readme.storageLocation.3=ΜΗΝ
+addvault.new.readme.storageLocation.4=αλλάξετε οποιοδήποτε αρχείο σε αυτό το φάκελο ή
+addvault.new.readme.storageLocation.5=επικολλήσετε οποιοδήποτε αρχείο για κωδικοποίηση σε αυτό το φάκελο.
+addvault.new.readme.storageLocation.6=Αν επιθυμείτε να κωδικοποιήσετε αρχεία και να δείτε το περιεχόμενο του vault, κάντε τα παρακάτω:
+addvault.new.readme.storageLocation.7=1. Προσθέστε αυτό το vault στο Cryptomator.
+addvault.new.readme.storageLocation.8=2. Ξεκλειδώστε το vault στο Cryptomator.
+addvault.new.readme.storageLocation.9=3. Ανοίξτε την τοποθεσία κάνοντας κλικ στο κουμπί "Αποκάλυψη".
+addvault.new.readme.storageLocation.10=Αν χρειάζεστε βοήθεια, συμβουλευτείτε το εγχειρίδιο: %s
+addvault.new.readme.accessLocation.fileName=ΚΑΛΩΣΗΡΘΑΤΕ.rtf
+addvault.new.readme.accessLocation.1=ΚΩΔΙΚΟΠΟΙΗΜΕΝΟΣ ΤΟΜΟΣ
+addvault.new.readme.accessLocation.2=Αυτή είναι η τοποθεσία του vault σας.
+addvault.new.readme.accessLocation.3=Κάθε αρχείο που θα προστεθεί σε αυτό τον τόμο θα κωδικοποιηθεί από το Cryptomator. Μπορείτε να το επεξεργαστείτε όπως θα κάνατε σε κάθε δίσκο/φάκελο. Αυτή είναι μόνο για αποκρυπτογραφημένη μορφή των περιεχομένων του, τα αρχεία σας μένουν κωδικοποιημένα στον σκληρό σας δίσκο συνέχεια.
+addvault.new.readme.accessLocation.4=Μπορείτε ελεύθερα να αφαιρέσετε το αρχείο.
## Existing
+addvaultwizard.existing.instruction=Επιλέξτε το αρχείο "masterkey.cryptomator" του υπάρχοντος vault σας.
+addvaultwizard.existing.chooseBtn=Επιλογή
+addvaultwizard.existing.filePickerTitle=Επιλέξτε το αρχείο Masterkey
## Success
+addvaultwizard.success.nextStepsInstructions=Προστέθηκε το vault "%s".\nΠρέπει να ξεκλειδώσετε αυτό το vault για να έχετε πρόσβαση ή να προσθέσετε περιεχόμενο. Εναλλακτικά μπορείτε να το ξεκλειδώσετε κάποια άλλη στιγμή.
+addvaultwizard.success.unlockNow=Ξεκλείδωμα τώρα
# Remove Vault
+removeVault.title=Διαγραφή Vault
+removeVault.information=Το Cryptomator θα ξεχάσει αυτό το vault. Μπορείτε να το προσθέσετε ξανά αργότερα. Δεν θα διαγραφούν τα κωδικοποιημένα αρχεία σας από τον σκληρό σας δίσκο.
+removeVault.confirmBtn=Διαγραφή Vault
# Change Password
+changepassword.title=Αλλαγή κωδικού πρόσβασης
+changepassword.enterOldPassword=Εισάγετε τον τωρινό κωδικό για "%s"
+changepassword.finalConfirmation=Κατανοώ πως δεν θα μπορώ να έχω πρόσβαση στα δεδομένα μου αν ξεχάσω τον κωδικό μου
# Forget Password
+forgetPassword.title=Ξέχασα τον κωδικό πρόσβασης
+forgetPassword.information=Ο αποθηκευμένος κωδικός αυτού του vault θα διαγραφεί από το σύστημα σας.
+forgetPassword.confirmBtn=Ξέχασα τον κωδικό πρόσβασης
# Unlock
+unlock.title=Ξεκλείδωμα Vault
+unlock.passwordPrompt=Εισάγετε τον κωδικό για "%s":
+unlock.savePassword=Αποθήκευση κωδικού
+unlock.unlockBtn=Ξεκλείδωμα
## Success
+unlock.success.message="%s" ξεκλειδώθηκε επιτυχώς! Το vault σας είναι διαθέσιμο.
+unlock.success.rememberChoice=Απομνημόνευση επιλογής, μην ρωτήσεις ξανά
+unlock.success.revealBtn=Αποκάλυψη Vault
## Invalid Mount Point
+unlock.error.invalidMountPoint=Το σημείο προσάρτησης δεν είναι κενός φάκελος: %s
# Migration
+migration.title=Αναβάθμιση Vault
## Start
+migration.start.prompt=Το vault "%s" πρέπει να αναβαθμιστεί σε νεότερο format. Προτού προχωρήσετε, σιγουρευτείτε πως δεν εκτελούνται εργασίες συγχρονισμού που μπορεί να επηρεάσουν το vault.
+migration.start.confirm=Ναι, το vault μου είναι πλήρως συγχρονισμένο
## Run
+migration.run.enterPassword=Εισάγετε τον κωδικό για "%s"
+migration.run.startMigrationBtn=Ενσωμάτωση Vault
+migration.run.progressHint=Αυτό θα πάρει αρκετό χρόνο…
## Sucess
+migration.success.nextStepsInstructions="%s" συγχωνεύτηκε επιτυχώς.\nΜπορείτε να ξεκλειδώσετε το vault σας.
+migration.success.unlockNow=Ξεκλείδωμα τώρα
## Missing file system capabilities
+migration.error.missingFileSystemCapabilities.title=Μη υποστηριζόμενο σύστημα αρχείων
+migration.error.missingFileSystemCapabilities.description=Η ενσωμάτωση δεν ξεκίνησε, γιατί το vault σας βρίσκετε σε σύστημα αρχείων που δεν υποστηρίζεται.
+migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Το σύστημα αρχείων δεν υποστηρίζει μεγάλα ονόματα αρχείων.
+migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Το σύστημα αρχείων δεν υποστηρίζει μεγάλες διαδρομές φακέλων.
+migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Το σύστημα αρχείων δεν δίνει πρόσβαση ανάγνωσης.
+migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Το σύστημα αρχείων δεν δίνει πρόσβαση εγγραφής.
## Impossible
+migration.impossible.heading=Αδυναμία συγχώνευσης vault
+migration.impossible.reason=Το vault δεν μπορεί να συγχωνευθεί αυτόματα επειδή η τοποθεσία που είναι αποθηκευμένο ή το σημείο προσάρτησης δεν είναι συμβατό.
+migration.impossible.moreInfo=Το vault μπορεί να ανοιχθεί με παλαιότερη έκδοση. Για οδηγίες χειροκίνητης συγχώνευσης του vault, επισκεφτείτε
# Preferences
+preferences.title=Προτιμήσεις
## General
+preferences.general=Γενικά
+preferences.general.theme=Εμφάνιση
+preferences.general.theme.light=Ανοιχτό
+preferences.general.theme.dark=Σκούρο
+preferences.general.unlockThemes=Ξεκλείδωσε το σκούρο θέμα
+preferences.general.startHidden=Απόκρυψη παραθύρου όταν ξεκινά το Cryptomator
+preferences.general.debugLogging=Ενεργοποίηση καταγραφής σφαλμάτων
+preferences.general.debugDirectory=Αποκάλυψη αρχείων καταγραφής
+preferences.general.autoStart=Εκκίνηση Cryptomator στην εκκίνηση του συστήματος
+preferences.general.interfaceOrientation=Προσανατολισμός εφαρμογής
+preferences.general.interfaceOrientation.ltr=Αριστερά προς δεξιά
+preferences.general.interfaceOrientation.rtl=Δεξιά προς αριστερά
## Volume
+preferences.volume=Εικονικός δίσκος
+preferences.volume.type=Τύπος τόμου
+preferences.volume.webdav.port=Θύρα WebDAV
+preferences.volume.webdav.scheme=Σχήμα WebDAV
## Updates
+preferences.updates=Ενημερώσεις
+preferences.updates.currentVersion=Τρέχουσα έκδοση: %s
+preferences.updates.autoUpdateCheck=Αυτόματος έλεγχος για ενημερώσεις
+preferences.updates.checkNowBtn=Έλεγχος τώρα
+preferences.updates.updateAvailable=Η ενημέρωση για την έκδοση %s είναι διαθέσιμη.
## Donation Key
+preferences.donationKey=Δωρεά
+preferences.donationKey.registeredFor=Καταχωρημένο σε %s
+preferences.donationKey.noDonationKey=Δεν βρέθηκε ενεργό κλειδί δωρεάς. Είναι σαν κλειδί αγοράς αλλά για απίθανους ανθρώπους που χρησιμοποιούν δωρεάν λογισμικό. ;-)
+preferences.donationKey.getDonationKey=Πάρε ένα κλειδί δωρεάς
## About
+preferences.about=Σχετικά με
# Main Window
+main.closeBtn.tooltip=Κλείσιμο
+main.minimizeBtn.tooltip=Ελαχιστοποίηση
+main.preferencesBtn.tooltip=Προτιμήσεις
+main.donationKeyMissing.tooltip=Παρακαλώ σκεφτείτε τη δωρεά
## Drag 'n' Drop
+main.dropZone.dropVault=Προσθήκη vault
+main.dropZone.unknownDragboardContent=Αν θέλετε να προσθέσετε ένα vault, σύρτε το σε αυτό το παράθυρο
## Vault List
+main.vaultlist.emptyList.onboardingInstruction=Κάντε κλικ εδώ για να προσθέσετε ένα vault
+main.vaultlist.contextMenu.remove=Διαγραφή Vault
+main.vaultlist.addVaultBtn=Προσθήκη Vault
## Vault Detail
### Welcome
+main.vaultDetail.welcomeOnboarding=Ευχαριστούμε που επιλέξατε το Cryptomator για να προστατεύσετε τα αρχεία σας. Αν χρειάζεστε οποιαδήποτε βοήθεια, ελέγξτε τους οδηγούς για αρχάριους:
### Locked
+main.vaultDetail.lockedStatus=ΚΛΕΙΔΩΜΕΝΟ
+main.vaultDetail.unlockBtn=Ξεκλείδωμα…
+main.vaultDetail.unlockNowBtn=Ξεκλείδωμα τώρα
+main.vaultDetail.optionsBtn=Επιλογές vault
+main.vaultDetail.passwordSavedInKeychain=Ο κωδικός αποθηκεύτηκε
### Unlocked
+main.vaultDetail.unlockedStatus=ΞΕΚΛΕΙΔΩΜΕΝΟ
+main.vaultDetail.accessLocation=Τα δεδομένα του vault σας είναι διαθέσιμα εδώ:
+main.vaultDetail.revealBtn=Αποκάλυψη εικονικού δίσκου
+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
### Missing
+main.vaultDetail.missing.info=Cryptomator δεν βρήκε vault σε αυτόν τον κατάλογο.
### Needs Migration
+main.vaultDetail.migrateButton=Αναβάθμιση Vault
+main.vaultDetail.migratePrompt=Το vault σας πρέπει να αναβαθμιστεί σε νέα μορφή, προτού να έχετε πρόσβαση σε αυτό
# Wrong File Alert
+wrongFileAlert.title=Πως να κωδικοποιήσετε αρχεία
+wrongFileAlert.header.title=Προσπαθήσατε να κωδικοποιήσετε αυτά τα αρχεία;
+wrongFileAlert.header.lead=Για αυτό τον λόγο, το Cryptomator παρέχει ένα εικονικό δίσκο στην εξερεύνηση των αρχείων σας.
+wrongFileAlert.instruction.0=Για να κωδικοποιήσετε τα αρχεία, ακολουθείστε αυτά τα βήματα:
+wrongFileAlert.instruction.1=1. Ξεκλειδώστε το vault σας.
+wrongFileAlert.instruction.2=2. Κάντε κλικ στο "Αποκάλυψη" για να ανοίξετε τον εικονικό δίσκο στην εξερεύνηση αρχείων.
+wrongFileAlert.instruction.3=3. Προσθέστε τα αρχεία σας σε αυτό τον δίσκο.
+wrongFileAlert.link=Για παραπάνω βοήθεια, επισκεφτείτε
# Vault Options
## General
+vaultOptions.general=Γενικά
+vaultOptions.general.unlockAfterStartup=Ξεκλείδωμα vault όταν ξεκινά το Cryptomator
+vaultOptions.general.actionAfterUnlock=Μετά το επιτυχές ξεκλείδωμα
+vaultOptions.general.actionAfterUnlock.ignore=Να μην γίνει τίποτα
+vaultOptions.general.actionAfterUnlock.reveal=Αποκάλυψη Εικονικού Δίσκου
+vaultOptions.general.actionAfterUnlock.ask=Ρώτα
## Mount
+vaultOptions.mount=Προσάρτηση
+vaultOptions.mount.readonly=Μόνο για ανάγνωση
+vaultOptions.mount.driveName=Όνομα Δίσκου
+vaultOptions.mount.customMountFlags=Προσαρμοσμένες ετικέτες προσάρτησης
+vaultOptions.mount.winDriveLetterOccupied=κατειλημμένο
+vaultOptions.mount.mountPoint=Σημείο προσάρτησης
+vaultOptions.mount.mountPoint.auto=Επιλογή κατάλληλης τοποθεσίας αυτόματα
+vaultOptions.mount.mountPoint.driveLetter=Χρήση επιλεγμένου γράμματος δίσκου
+vaultOptions.mount.mountPoint.custom=Προσαρμοσμένη διαδρομή
+vaultOptions.mount.mountPoint.directoryPickerButton=Επιλογή
+vaultOptions.mount.mountPoint.directoryPickerTitle=Επιλέξτε ένα άδειο φάκελο
## Master Key
+vaultOptions.masterkey=Κωδικός πρόσβασης
+vaultOptions.masterkey.changePasswordBtn=Αλλαγή κωδικού πρόσβασης
+vaultOptions.masterkey.forgetSavedPasswordBtn=Διαγραφή αποθηκευμένου κωδικού
+vaultOptions.masterkey.recoveryKeyExpanation=Το κλειδί ασφαλείας είναι ο μόνος τρόπος ανάκτησης πρόσβασης στο vault αν χάσετε τον κωδικό σας.
+vaultOptions.masterkey.showRecoveryKeyBtn=Προβολή κλειδιού ανάκτησης
+vaultOptions.masterkey.recoverPasswordBtn=Ανάκτηση κωδικού
# Recovery Key
+recoveryKey.title=Κλειδί Ανάκτησης
+recoveryKey.enterPassword.prompt=Εισάγετε τον κωδικό σας για να δείτε το κλειδί ανάκτησης για "%s":
+recoveryKey.display.message=Το παρακάτω κλειδί ανάκτησης μπορεί να χρησιμοποιηθεί για επαναφορά πρόσβασης στο "%s":
+recoveryKey.display.StorageHints=Φυλάξτε κάπου που θα είναι ασφαλές, π.χ.:\nΑποθήκευση σε πρόγραμμα διαχείρισης κωδικών\nΑποθήκευση σε USB δίσκο\nΤυπώστε το σε χαρτί
+recoveryKey.recover.prompt=Εισάγετε το κλειδί ανάκτησης για "%s":
+recoveryKey.recover.validKey=Αυτό είναι ένα έγκυρο κλειδί ανάκτησης
+recoveryKey.printout.heading=Κλειδί ανάκτησης Cryptomator\n"%s"\n
# New Password
+newPassword.promptText=Εισάγετε ένα νέο κωδικό
+newPassword.reenterPassword=Επιβεβαιώστε το νέο κωδικό
+newPassword.passwordsMatch=Οι κωδικοί ταιριάζουν!
+newPassword.passwordsDoNotMatch=Οι κωδικοί δεν ταιριάζουν
+passwordStrength.messageLabel.tooShort=Χρησιμοποιείστε τουλάχιστον %d χαρακτήρες
+passwordStrength.messageLabel.0=Πολύ αδύναμος
+passwordStrength.messageLabel.1=Αδύναμος
+passwordStrength.messageLabel.2=Μέτριος
+passwordStrength.messageLabel.3=Δυνατός
+passwordStrength.messageLabel.4=Πολύ δυνατός
# Quit
+quit.prompt=Κλείσιμο εφαρμογής; Υπάρχουν ξεκλείδωτα vault.
+quit.lockAndQuit=Κλείδωμα και Έξοδος
M main/ui/src/main/resources/i18n/strings_hi.properties => main/ui/src/main/resources/i18n/strings_hi.properties +5 -0
@@ 14,6 14,7 @@ generic.button.next=अगला
generic.button.print=प्रिंट करें
## Error
generic.error.title=कोई अनपेक्षित त्रुटि हो गई है
+generic.error.instruction=ऐसा नहीं होना चाहिए था। कृपया नीचे त्रुटि पाठ की रिपोर्ट करें और इस त्रुटि के लिए क्या कदम उठाए, इसका विवरण शामिल करें।
# Tray Menu
traymenu.showMainWindow=दिखाएँ
@@ 49,6 50,7 @@ addvaultwizard.existing.chooseBtn=चुनें…
# Remove Vault
# Change Password
+changepassword.title=पासवर्ड बदलें
# Forget Password
@@ 107,10 109,13 @@ vaultOptions.mount.mountPoint.directoryPickerButton=चुनें…
vaultOptions.mount.mountPoint.directoryPickerTitle=कोई खाली जगह चुने
## Master Key
vaultOptions.masterkey=पासवर्ड
+vaultOptions.masterkey.changePasswordBtn=पासवर्ड बदलें
# Recovery Key
# New Password
+newPassword.promptText=नया पासवर्ड दर्ज करें
+newPassword.reenterPassword=नए पासवर्ड की पुष्टि करें
passwordStrength.messageLabel.0=बहुत कमज़ोर
passwordStrength.messageLabel.1=कमजोर
passwordStrength.messageLabel.2=बढ़िया
M main/ui/src/main/resources/i18n/strings_ko.properties => main/ui/src/main/resources/i18n/strings_ko.properties +2 -0
@@ 42,6 42,7 @@ addvaultwizard.new.directoryPickerLabel=사용자 지정 위치
addvaultwizard.new.directoryPickerButton=선택
addvaultwizard.new.directoryPickerTitle=디렉터리 선택
addvaultwizard.new.fileAlreadyExists=이미 다른 객체가 존재하고 있어 해당 경로에 Vault를 생성할 수 없습니다.
+addvaultwizard.new.locationDoesNotExist=하나 이상의 경로 구성 요소가 없기 때문에 이 경로에 Vault가 생성 될 수 없습니다.
addvaultwizard.new.invalidName=유효하지 않은 Vault 이름입니다. 일반적인 디렉터리 이름으로 지정해주십시요.
### Password
addvaultwizard.new.createVaultBtn=Vault 생성
@@ 228,6 229,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=빈 디렉터리를 선택
## Master Key
vaultOptions.masterkey=비밀번호
vaultOptions.masterkey.changePasswordBtn=비밀번호 변경
+vaultOptions.masterkey.forgetSavedPasswordBtn=저장된 비밀번호 삭제
vaultOptions.masterkey.recoveryKeyExpanation=복구 키는 비밀번호를 잊어버렸을 때, Vault의 접근을 복원 할 수 있는 유일한 방법입니다.
vaultOptions.masterkey.showRecoveryKeyBtn=복구 키 표시
vaultOptions.masterkey.recoverPasswordBtn=비밀번호 복구
M main/ui/src/main/resources/i18n/strings_nb.properties => main/ui/src/main/resources/i18n/strings_nb.properties +4 -0
@@ 42,6 42,7 @@ addvaultwizard.new.directoryPickerLabel=Tilpasset lagringssted
addvaultwizard.new.directoryPickerButton=Velg…
addvaultwizard.new.directoryPickerTitle=Velg mappe
addvaultwizard.new.fileAlreadyExists=Hvelvet kan ikke opprettes på denne søkestien fordi et objekt allerede eksisterer.
+addvaultwizard.new.locationDoesNotExist=Hvelvet kan ikke opprettes på denne søkestien fordi minst én søkestikomponent ikke finnes.
addvaultwizard.new.invalidName=Ugyldig navn på hvelvet. Vennligst vurder et vanlig mappenavn.
### Password
addvaultwizard.new.createVaultBtn=Opprett hvelv
@@ 175,8 176,10 @@ main.vaultlist.addVaultBtn=Legg til hvelv
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:
### Locked
main.vaultDetail.lockedStatus=LÅST
+main.vaultDetail.unlockBtn=Lås opp…
main.vaultDetail.unlockNowBtn=Lås opp nå
main.vaultDetail.optionsBtn=Alternativer for hvelvet
+main.vaultDetail.passwordSavedInKeychain=Passordet er lagret
### Unlocked
main.vaultDetail.unlockedStatus=ULÅST
main.vaultDetail.accessLocation=Innholdet i hvelvet ditt er tilgjengelig her:
@@ 226,6 229,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=Velg en tom mappe
## Master Key
vaultOptions.masterkey=Passord
vaultOptions.masterkey.changePasswordBtn=Endre passord
+vaultOptions.masterkey.forgetSavedPasswordBtn=Glem passord
vaultOptions.masterkey.recoveryKeyExpanation=En gjenopprettingsnøkkel er den eneste måten å gjenopprette tilgangen til et hvelv på hvis du mister passordet.
vaultOptions.masterkey.showRecoveryKeyBtn=Vis gjenopprettingsnøkkelen
vaultOptions.masterkey.recoverPasswordBtn=Gjenopprett passord
M main/ui/src/main/resources/i18n/strings_nn.properties => main/ui/src/main/resources/i18n/strings_nn.properties +4 -0
@@ 42,6 42,7 @@ addvaultwizard.new.directoryPickerLabel=Tilpassa lagringsstad
addvaultwizard.new.directoryPickerButton=Vel…
addvaultwizard.new.directoryPickerTitle=Vel mappe
addvaultwizard.new.fileAlreadyExists=Kvelven kan ikkje opprettast på denne søkestien fordi eit objekt allereie eksisterer her.
+addvaultwizard.new.locationDoesNotExist=Kvelven kan ikkje opprettast på denne søkjestien fordi minst éin søkjestikomponent ikkje finst.
addvaultwizard.new.invalidName=Ugyldig namn på kvelven. Ver vennleg og vurder eit vanleg mappenamn.
### Password
addvaultwizard.new.createVaultBtn=Opprett kvelven
@@ 175,8 176,10 @@ main.vaultlist.addVaultBtn=Legg til kvelv
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:
### Locked
main.vaultDetail.lockedStatus=LÅST
+main.vaultDetail.unlockBtn=Lås opp…
main.vaultDetail.unlockNowBtn=Lås opp no
main.vaultDetail.optionsBtn=Alternativ for kvelven
+main.vaultDetail.passwordSavedInKeychain=Passordet er lagra
### Unlocked
main.vaultDetail.unlockedStatus=ULÅST
main.vaultDetail.accessLocation=Innhaldet i kvelven din er tilgjengeleg her:
@@ 226,6 229,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=Vel ei tom mappe
## Master Key
vaultOptions.masterkey=Passord
vaultOptions.masterkey.changePasswordBtn=Byt passord
+vaultOptions.masterkey.forgetSavedPasswordBtn=Gløym passord
vaultOptions.masterkey.recoveryKeyExpanation=Ein "retta opp igjen"-nøkkel er den einaste måten å retta opp igjen tilgangen til ein kvelv på viss du mistar passordet.
vaultOptions.masterkey.showRecoveryKeyBtn=Vis 'Retta opp igjen'-nøkkelen
vaultOptions.masterkey.recoverPasswordBtn=Rett opp igjen passord
M main/ui/src/main/resources/i18n/strings_pl.properties => main/ui/src/main/resources/i18n/strings_pl.properties +88 -2
@@ 62,7 62,7 @@ addvault.new.readme.storageLocation.8=2. Odblokuj sejf w programie Cryptomator.
addvault.new.readme.storageLocation.9=3. Otwórz miejsce z odszyfrowanymi plikami, klikając przycisk "Pokaż".
addvault.new.readme.storageLocation.10=Jeśli potrzebujesz pomocy, sprawdź dokumentację: %s
addvault.new.readme.accessLocation.fileName=WELCOME.rtf
-addvault.new.readme.accessLocation.1=🔐 ZASZYFROWANY DYSK 🔐
+addvault.new.readme.accessLocation.1=🔐 ZASZYFROWANY UDZIAŁ 🔐
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.
@@ 96,7 96,7 @@ unlock.savePassword=Zapamiętaj hasło
unlock.unlockBtn=Odblokuj
## Success
unlock.success.message="%s" został odblokowany! Twój sejf jest teraz dostępny.
-unlock.success.rememberChoice=Zapamiętaj wybór i nie pokazuj ponownie tego okna
+unlock.success.rememberChoice=Zapamiętaj wybór, nie pokazuj tego ponownie
unlock.success.revealBtn=Otwórz sejf
## Invalid Mount Point
unlock.error.invalidMountPoint=Punkt montowania nie jest pustym katalogiem: %s
@@ 135,40 135,126 @@ preferences.general.theme.dark=Ciemny
preferences.general.unlockThemes=Odblokuj tryb ciemny
preferences.general.startHidden=Ukryj okno podczas uruchamiania programu Cryptomator
preferences.general.debugLogging=Włącz logowanie w trybie debug
+preferences.general.debugDirectory=Pokaż pliki logowania
+preferences.general.autoStart=Uruchom Cryptomator po uruchomieniu systemu
+preferences.general.interfaceOrientation=Układ interfejsu
+preferences.general.interfaceOrientation.ltr=Od lewej do prawej
+preferences.general.interfaceOrientation.rtl=Od prawej do lewej
## Volume
+preferences.volume=Dysk wirtualny
+preferences.volume.type=Typ udziału
+preferences.volume.webdav.port=WebDAV Port
+preferences.volume.webdav.scheme=WebDAV Scheme
## Updates
+preferences.updates=Aktualizacje
+preferences.updates.currentVersion=Obecna wersja: %s
+preferences.updates.autoUpdateCheck=Automatycznie sprawdzaj aktualizacje
+preferences.updates.checkNowBtn=Sprawdź teraz
+preferences.updates.updateAvailable=Dostępna jest aktualizacja do wersji %s.
## Donation Key
+preferences.donationKey=Dotacja
+preferences.donationKey.registeredFor=Zarejestrowano dla %s
+preferences.donationKey.noDonationKey=Nie znaleziono aktualnego klucza dotacji. To taki klucz licencyjny, ale dla niesamowitych ludzi używających darmowego oprogramowania. ;-)
+preferences.donationKey.getDonationKey=Zdobądź klucz dotacji
## About
+preferences.about=O programie
# Main Window
main.closeBtn.tooltip=Zamknij
+main.minimizeBtn.tooltip=Minimalizuj
main.preferencesBtn.tooltip=Ustawienia
+main.donationKeyMissing.tooltip=Rozważ przekazanie dotacji
## Drag 'n' Drop
+main.dropZone.dropVault=Dodaj ten sejf
+main.dropZone.unknownDragboardContent=Jeśli chcesz dodać sejf, przeciągnij go do tego okna
## Vault List
+main.vaultlist.emptyList.onboardingInstruction=Kliknij tutaj, aby dodać sejf
main.vaultlist.contextMenu.remove=Usuń sejf
main.vaultlist.addVaultBtn=Dodaj sejf
## Vault Detail
### Welcome
+main.vaultDetail.welcomeOnboarding=Dziękujemy za wybranie programu Cryptomator do ochrony plików. Jeśli potrzebujesz pomocy, sprawdź nasze przewodniki:
### Locked
+main.vaultDetail.lockedStatus=ZABLOKOWANY
+main.vaultDetail.unlockBtn=Odblokuj…
main.vaultDetail.unlockNowBtn=Odblokuj teraz
+main.vaultDetail.optionsBtn=Ustawienia sejfu
+main.vaultDetail.passwordSavedInKeychain=Hasło zapisane
### Unlocked
+main.vaultDetail.unlockedStatus=ODBLOKOWANE
+main.vaultDetail.accessLocation=Zawartość Twojego sejfu dostępna jest tutaj:
+main.vaultDetail.revealBtn=Otwórz lokalizację
main.vaultDetail.lockBtn=Blokuj
+main.vaultDetail.bytesPerSecondRead=odczyt:
+main.vaultDetail.bytesPerSecondWritten=zapis:
+main.vaultDetail.throughput.idle=bezczynny
+main.vaultDetail.throughput.kbps=%.1f kiB/s
+main.vaultDetail.throughput.mbps=%.1f MiB/s
### Missing
+main.vaultDetail.missing.info=Cryptomator nie mógł znaleźć sejfu w tej lokalizacji.
### Needs Migration
main.vaultDetail.migrateButton=Aktualizuj sejf
+main.vaultDetail.migratePrompt=Twój sejf musi zostać zaktualizowany do nowego formatu, zanim będziesz mógł go używać
# Wrong File Alert
+wrongFileAlert.title=Jak szyfrować pliki
+wrongFileAlert.header.title=Czy chciałeś zaszyfrować te pliki?
+wrongFileAlert.header.lead=W tym celu Cryptomator zapewnia udział dostępny w menedżerze plików.
+wrongFileAlert.instruction.0=Aby zaszyfrować pliki, wykonaj następujące kroki:
+wrongFileAlert.instruction.1=1. Odblokuj swój sejf.
+wrongFileAlert.instruction.2=2. Kliknij na "Otwórz lokalizację", aby otworzyć udział w menedżerze plików.
+wrongFileAlert.instruction.3=3. Dodaj pliki do tego udziału.
+wrongFileAlert.link=Aby uzyskać pomoc, wejdź na
# Vault Options
## General
vaultOptions.general=Ogólne
+vaultOptions.general.unlockAfterStartup=Odblokuj sejf podczas uruchamiania programu Cryptomator
+vaultOptions.general.actionAfterUnlock=Po udanym odblokowaniu
+vaultOptions.general.actionAfterUnlock.ignore=Nic nie rób
+vaultOptions.general.actionAfterUnlock.reveal=Otwórz lokalizację
+vaultOptions.general.actionAfterUnlock.ask=Zapytaj
## Mount
+vaultOptions.mount=Montowanie
+vaultOptions.mount.readonly=Tylko do odczytu
+vaultOptions.mount.driveName=Nazwa udziału
+vaultOptions.mount.customMountFlags=Własne flagi montowania udziału
+vaultOptions.mount.winDriveLetterOccupied=zajęty
+vaultOptions.mount.mountPoint=Punkt montowania
+vaultOptions.mount.mountPoint.auto=Automatycznie wybierz odpowiednią lokalizację
+vaultOptions.mount.mountPoint.driveLetter=Użyj przypisanej litery dysku
+vaultOptions.mount.mountPoint.custom=Własna ścieżka
vaultOptions.mount.mountPoint.directoryPickerButton=Wybierz…
+vaultOptions.mount.mountPoint.directoryPickerTitle=Wybierz pusty katalog
## Master Key
+vaultOptions.masterkey=Hasło
vaultOptions.masterkey.changePasswordBtn=Zmiana Hasła
+vaultOptions.masterkey.forgetSavedPasswordBtn=Zapomnij zapamiętane hasło
+vaultOptions.masterkey.recoveryKeyExpanation=Klucz odzyskiwania jest twoim jedynym sposobem przywrócenia dostępu do sejfu w przypadku utraty hasła.
+vaultOptions.masterkey.showRecoveryKeyBtn=Wyświetl klucz odzyskiwania
+vaultOptions.masterkey.recoverPasswordBtn=Odzyskaj hasło
# Recovery Key
+recoveryKey.title=Klucz odzyskiwania
+recoveryKey.enterPassword.prompt=Wprowadź hasło, aby pokazać klucz odzyskiwania dla "%s":
+recoveryKey.display.message=Poniższy klucz odzyskiwania służy do przywrócenia dostępu do "%s":
+recoveryKey.display.StorageHints=Trzymaj go w bezpiecznym miejscu, np.\n • Przechowuj go za pomocą menedżera haseł\n • Zapisz go na przenośnej pamięci USB\n • Wydrukuj na papierze
+recoveryKey.recover.prompt=Wprowadź swój klucz odzyskiwania dla "%s":
+recoveryKey.recover.validKey=To jest prawidłowy klucz odzyskiwania
+recoveryKey.printout.heading=Cryptomator - Klucz odzyskiwania "%s"\n
# New Password
+newPassword.promptText=Wprowadź nowe hasło
+newPassword.reenterPassword=Potwierdź nowe hasło
+newPassword.passwordsMatch=Hasła identyczne!
+newPassword.passwordsDoNotMatch=Różne hasła
+passwordStrength.messageLabel.tooShort=Użyj co najmniej %d znaków
+passwordStrength.messageLabel.0=Bardzo słabe
+passwordStrength.messageLabel.1=Słabe
+passwordStrength.messageLabel.2=Średnie
+passwordStrength.messageLabel.3=Silne
+passwordStrength.messageLabel.4=Bardzo silne
# Quit
+quit.prompt=Zamknąć aplikację? Niektore sejfy są odblokowane.
+quit.lockAndQuit=Zablokuj i wyjdź
M main/ui/src/main/resources/i18n/strings_pt.properties => main/ui/src/main/resources/i18n/strings_pt.properties +115 -0
@@ 2,62 2,177 @@
# Generics
## Button
+generic.button.apply=Aplicar
+generic.button.back=Anterior
+generic.button.cancel=Cancelar
+generic.button.change=Alterar
+generic.button.close=Fechar
+generic.button.copy=Copiar
+generic.button.copied=Copiado!
+generic.button.done=Ok
+generic.button.next=Seguinte
+generic.button.print=Imprimir
## Error
+generic.error.title=Ocorreu um erro inesperado
+generic.error.instruction=Isto não devia ter acontecido. Por favor reporte o texto do erro abaixo e descreva os passos que levaram a este problema.
# Tray Menu
+traymenu.showMainWindow=Mostrar
+traymenu.showPreferencesWindow=Preferências
+traymenu.lockAllVaults=Bloquear Todos
+traymenu.quitApplication=Fechar
+traymenu.vault.unlock=Destrancar
+traymenu.vault.lock=Trancar
+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
+addvaultwizard.new.namePrompt=Nome do Cofre
### Location
+addvaultwizard.new.locationInstruction=Onde deve o Cryptomator armazenar os arquivos criptografados do cofre?
+addvaultwizard.new.locationLabel=Local de armazenamento
+addvaultwizard.new.locationPrompt=…
+addvaultwizard.new.directoryPickerLabel=Outro Local
+addvaultwizard.new.directoryPickerButton=Escolher…
+addvaultwizard.new.directoryPickerTitle=Selecionar diretório
+addvaultwizard.new.fileAlreadyExists=O cofre não pode ser criado neste diretório porque algum objeto já existe.
+addvaultwizard.new.locationDoesNotExist=O cofre não pode ser criado neste diretório porque pelo menos um componente de diretório não existe.
+addvaultwizard.new.invalidName=Nome de cofre inválido. Por favor considere um nome de diretório regular.
### Password
+addvaultwizard.new.createVaultBtn=Criar Cofre
+addvaultwizard.new.generateRecoveryKeyChoice=Não será capaz de aceder aos seus dados sem a sua senha. Você quer uma chave de recuperação para caso perca a sua senha?
+addvaultwizard.new.generateRecoveryKeyChoice.yes=Sim por favor, melhor prevenir do que remediar
+addvaultwizard.new.generateRecoveryKeyChoice.no=Não obrigado, não vou perder a minha senha
### Information
+addvault.new.readme.storageLocation.fileName=IMPORTANTE.rtf
+addvault.new.readme.storageLocation.1=⚠ ARQUIVOS DO COFRE ⚠
+addvault.new.readme.storageLocation.2=Este é o local de armazenamento do seu cofre.
+addvault.new.readme.storageLocation.6=Se deseja criptografar arquivos e visualizar o conteúdo do cofre, faça o seguinte:
+addvault.new.readme.storageLocation.7=1. Adicione este cofre ao Cryptomator.
+addvault.new.readme.storageLocation.8=2. Desbloqueie o cofre no Cryptomator.
+addvault.new.readme.storageLocation.9=3. Abra o local de acesso clicando no botão "Revelar".
+addvault.new.readme.storageLocation.10=Se precisar de ajuda, visite a documentação: %s
+addvault.new.readme.accessLocation.fileName=BEM-VINDO.rtf
+addvault.new.readme.accessLocation.1=🔐 VOLUME CRIPTOGRAFADO 🔐
+addvault.new.readme.accessLocation.4=Sinta-se livre para remover este ficheiro.
## Existing
+addvaultwizard.existing.chooseBtn=Escolher…
+addvaultwizard.existing.filePickerTitle=Selecionar ficheiro MasterKey
## Success
+addvaultwizard.success.nextStepsInstructions=Adicionado cofre "%s".\nPrecisa de destrancar este cofre para aceder ou adicionar conteúdo. Como alternativa, pode destrancá-lo a qualquer momento mais tarde.
+addvaultwizard.success.unlockNow=Destrancar agora
# Remove Vault
+removeVault.confirmBtn=Remover Cofre
# Change Password
+changepassword.title=Alterar Senha
+changepassword.enterOldPassword=Digite a senha atual para "%s"
+changepassword.finalConfirmation=Eu entendo que não poderei aceder aos meus dados se esquecer a minha senha
# Forget Password
+forgetPassword.title=Esqueci a Senha
+forgetPassword.confirmBtn=Esqueci a Senha
# Unlock
+unlock.title=Destrancar Cofre
+unlock.passwordPrompt=Insira a senha para "%s":
+unlock.savePassword=Lembrar Senha
+unlock.unlockBtn=Destrancar
## Success
+unlock.success.message=Desbloqueado "%s" com sucesso! O seu cofre está agora acessível.
+unlock.success.rememberChoice=Lembrar escolha, não mostrar isto novamente
+unlock.success.revealBtn=Revelar Cofre
## Invalid Mount Point
# Migration
+migration.title=Atualizar Cofre
## Start
## Run
+migration.run.startMigrationBtn=Migrar Cofre
+migration.run.progressHint=Isso pode levar algum tempo…
## Sucess
+migration.success.unlockNow=Destrancar agora
## Missing file system capabilities
## Impossible
# Preferences
+preferences.title=Preferências
## General
+preferences.general=Geral
## Volume
+preferences.volume.webdav.port=Porta WebDAV
+preferences.volume.webdav.scheme=WebDAV Scheme
## Updates
+preferences.updates=Atualizações
+preferences.updates.currentVersion=Versão atual: %s
+preferences.updates.autoUpdateCheck=Verificar automaticamente por atualizações
+preferences.updates.checkNowBtn=Verificar Agora
+preferences.updates.updateAvailable=Atualização para a versão %s disponível.
## Donation Key
+preferences.donationKey=Doação
+preferences.donationKey.registeredFor=Registado para %s
+preferences.donationKey.noDonationKey=Não foi encontrada uma chave de doação válida. É como uma chave de licença, mas para pessoas incríveis que usam software livre. ;-)
+preferences.donationKey.getDonationKey=Obter chave de doação
## About
+preferences.about=Sobre
# Main Window
+main.closeBtn.tooltip=Fechar
+main.minimizeBtn.tooltip=Minimizar
+main.preferencesBtn.tooltip=Preferências
## Drag 'n' Drop
## Vault List
+main.vaultlist.addVaultBtn=Adicionar Cofre
## Vault Detail
### Welcome
### Locked
+main.vaultDetail.unlockNowBtn=Destrancar agora
### Unlocked
+main.vaultDetail.lockBtn=Trancar
+main.vaultDetail.bytesPerSecondWritten=escrito:
+main.vaultDetail.throughput.idle=inativo
+main.vaultDetail.throughput.kbps=%.1f kiB/s
+main.vaultDetail.throughput.mbps=%.1f MiB/s
### Missing
+main.vaultDetail.missing.info=O Cryptomator não conseguiu encontrar um cofre neste diretório.
### Needs Migration
+main.vaultDetail.migrateButton=Atualizar Cofre
+main.vaultDetail.migratePrompt=O cofre precisa de ser atualizado para um novo formato, antes que possa acessá-lo
# Wrong File Alert
+wrongFileAlert.title=Como criptografar arquivos
+wrongFileAlert.header.title=Você tentou criptografar esses arquivos?
+wrongFileAlert.instruction.1=1. Desbloqueie o seu cofre.
+wrongFileAlert.instruction.3=3. Adicione ficheiros a este volume.
+wrongFileAlert.link=Para obter assistência, visite
# Vault Options
## General
+vaultOptions.general=Geral
+vaultOptions.general.unlockAfterStartup=Destrancar o cofre ao iniciar o Cryptomator
+vaultOptions.general.actionAfterUnlock=Após destrancar com sucesso
+vaultOptions.general.actionAfterUnlock.ask=Perguntar
## Mount
+vaultOptions.mount.readonly=Somente leitura
+vaultOptions.mount.driveName=Nome da unidade
+vaultOptions.mount.mountPoint.directoryPickerButton=Escolher…
## Master Key
+vaultOptions.masterkey=Senha
+vaultOptions.masterkey.changePasswordBtn=Alterar Senha
+vaultOptions.masterkey.forgetSavedPasswordBtn=Esqueça a senha salva
+vaultOptions.masterkey.recoveryKeyExpanation=Uma chave de recuperação é a única forma de restaurar o acesso a um cofre se perder a senha.
+vaultOptions.masterkey.showRecoveryKeyBtn=Exibir Chave de Recuperação
+vaultOptions.masterkey.recoverPasswordBtn=Recuperar Senha
# Recovery Key
+recoveryKey.title=Chave de Recuperação
# New Password