From 4bd4cd671bdff22e410ae2e2a8eda5f154bf7ac8 Mon Sep 17 00:00:00 2001 From: Tobias Hagemann Date: Mon, 21 Feb 2022 14:24:04 +0100 Subject: [PATCH 01/40] removed unnecessary entitlement in mac build (cherry picked from commit 3e8690ca119104487b072835218d0a03645b456a) --- dist/mac/Cryptomator.entitlements | 2 -- 1 file changed, 2 deletions(-) diff --git a/dist/mac/Cryptomator.entitlements b/dist/mac/Cryptomator.entitlements index 00f46d649..16890d644 100644 --- a/dist/mac/Cryptomator.entitlements +++ b/dist/mac/Cryptomator.entitlements @@ -2,8 +2,6 @@ - com.apple.security.cs.allow-dyld-environment-variables - com.apple.security.cs.allow-jit com.apple.security.cs.allow-unsigned-executable-memory From ee68f9d47b41457155a121339714f164aee9d41a Mon Sep 17 00:00:00 2001 From: Tobias Hagemann Date: Mon, 21 Feb 2022 14:45:01 +0100 Subject: [PATCH 02/40] preparing 1.6.6 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 39008b723..14287a907 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.cryptomator cryptomator - 1.6.5 + 1.6.6 Cryptomator Desktop App From 156e7bbb91de96eca019ab2d112bbd444b449ff1 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 23 Mar 2022 11:03:59 +0100 Subject: [PATCH 03/40] also run PR tests in virtual x environment (allowing UI tests) --- .github/workflows/pullrequest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index c529ca09b..79a0d5a21 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -23,4 +23,4 @@ jobs: java-version: ${{ env.JAVA_VERSION }} cache: 'maven' - name: Build and Test - run: mvn -B clean install jacoco:report -Pcoverage,dependency-check \ No newline at end of file + run: xvfb-run mvn -B clean install jacoco:report -Pcoverage,dependency-check \ No newline at end of file From b1931f2c13e4a226775d0f4927d1862c6720bf32 Mon Sep 17 00:00:00 2001 From: Cryptobot Date: Wed, 23 Mar 2022 14:40:21 +0100 Subject: [PATCH 04/40] New Crowdin updates (#1966) --- src/main/resources/i18n/strings_ar.properties | 3 +- src/main/resources/i18n/strings_bn.properties | 143 ++++++++++++ src/main/resources/i18n/strings_bs.properties | 3 +- src/main/resources/i18n/strings_ca.properties | 3 +- src/main/resources/i18n/strings_cs.properties | 6 +- src/main/resources/i18n/strings_de.properties | 61 +++--- src/main/resources/i18n/strings_el.properties | 5 +- src/main/resources/i18n/strings_es.properties | 47 ++-- .../resources/i18n/strings_fil.properties | 3 +- src/main/resources/i18n/strings_fr.properties | 9 +- src/main/resources/i18n/strings_gl.properties | 89 ++++++++ src/main/resources/i18n/strings_he.properties | 58 ++++- src/main/resources/i18n/strings_hi.properties | 7 +- src/main/resources/i18n/strings_hr.properties | 2 +- src/main/resources/i18n/strings_hu.properties | 3 +- src/main/resources/i18n/strings_id.properties | 207 +++++++++--------- src/main/resources/i18n/strings_it.properties | 7 +- src/main/resources/i18n/strings_ja.properties | 37 ++-- src/main/resources/i18n/strings_ko.properties | 3 +- src/main/resources/i18n/strings_lv.properties | 3 +- src/main/resources/i18n/strings_mk.properties | 2 +- src/main/resources/i18n/strings_nb.properties | 36 ++- src/main/resources/i18n/strings_nl.properties | 5 +- src/main/resources/i18n/strings_nn.properties | 3 +- src/main/resources/i18n/strings_pa.properties | 3 +- src/main/resources/i18n/strings_pl.properties | 5 +- src/main/resources/i18n/strings_pt.properties | 5 +- .../resources/i18n/strings_pt_BR.properties | 5 +- src/main/resources/i18n/strings_ro.properties | 3 +- src/main/resources/i18n/strings_ru.properties | 9 +- src/main/resources/i18n/strings_sk.properties | 5 +- src/main/resources/i18n/strings_sr.properties | 3 +- .../resources/i18n/strings_sr_Latn.properties | 3 +- src/main/resources/i18n/strings_sv.properties | 7 +- src/main/resources/i18n/strings_ta.properties | 2 +- src/main/resources/i18n/strings_te.properties | 2 +- src/main/resources/i18n/strings_th.properties | 70 +++++- src/main/resources/i18n/strings_tr.properties | 5 +- src/main/resources/i18n/strings_uk.properties | 3 +- src/main/resources/i18n/strings_zh.properties | 11 +- .../resources/i18n/strings_zh_HK.properties | 88 ++++++++ .../resources/i18n/strings_zh_TW.properties | 4 +- 42 files changed, 752 insertions(+), 226 deletions(-) create mode 100644 src/main/resources/i18n/strings_bn.properties create mode 100644 src/main/resources/i18n/strings_gl.properties create mode 100644 src/main/resources/i18n/strings_zh_HK.properties diff --git a/src/main/resources/i18n/strings_ar.properties b/src/main/resources/i18n/strings_ar.properties index a10658b48..740555d11 100644 --- a/src/main/resources/i18n/strings_ar.properties +++ b/src/main/resources/i18n/strings_ar.properties @@ -94,7 +94,8 @@ forgetPassword.confirmBtn=نسيت كلمة المرور unlock.passwordPrompt=‮أدخل كلمة السر لـ "‪%s‬": unlock.savePassword=تذكر كلمة المرور unlock.unlockBtn=افتح -## +## Select +unlock.chooseMasterkey.chooseBtn=اختر… unlock.chooseMasterkey.filePickerTitle=اختر ملف الـ Masterkey ## Success unlock.success.message=تم فتح "%s" بنجاح! يمكنك الآن الوصول لمخزنك عن طريق القرص الافتراضي الخاص به. diff --git a/src/main/resources/i18n/strings_bn.properties b/src/main/resources/i18n/strings_bn.properties new file mode 100644 index 000000000..12101cf31 --- /dev/null +++ b/src/main/resources/i18n/strings_bn.properties @@ -0,0 +1,143 @@ +# Locale Specific CSS files such as CJK, RTL,... + +# 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=ত্রুটি %s +generic.error.instruction=ওহো! ক্রিপ্টোমেটর এটা যে হবে তা আশা করেনি. আপনি এই ত্রুটির সমাধানটি খুঁজে দেখুন. ত্রুটিটি সম্পর্কে যদি বিবরণ না পান, আপনি সেটি রিপোর্ট করতে পারেন. +generic.error.hyperlink.lookup=ত্রুটিটি খুঁজে দেখুন +generic.error.hyperlink.report=ত্রুটিটি রিপোর্ট করুন +generic.error.technicalDetails=বিস্তারিত: + +# Defaults +defaults.vault.vaultName=ভোল্ট + +# Tray Menu +traymenu.showMainWindow=দেখান +traymenu.lockAllVaults=সব লক করুন +traymenu.quitApplication=বের হোন +traymenu.vault.unlock=আনলক করুন +traymenu.vault.lock=লক করুন + +# Add Vault Wizard +addvaultwizard.title=ভোল্ট যুক্ত করুন +## Welcome +addvaultwizard.welcome.newButton=নতুন ভোল্ট তৈরি করুন +addvaultwizard.welcome.existingButton=বিদ্যমান কোনো ভোল্ট খুলুন +## New +### Name +addvaultwizard.new.nameInstruction=ভোল্ট এর একটি নাম দেন +addvaultwizard.new.namePrompt=ভোল্ট এর নাম +### Location +addvaultwizard.new.locationInstruction=ভোল্ট এর এনক্রিপ্টেড ফাইলগুলো ক্রিপ্টোমেটর কোথায় সংরক্ষণ করবে? +addvaultwizard.new.locationLabel=স্টোরেজ লোকেশন +addvaultwizard.new.locationPrompt=… +addvaultwizard.new.directoryPickerButton=নির্বাচন করুন… +addvaultwizard.new.directoryPickerTitle=ডিরেক্টরি নির্বাচন +addvaultwizard.new.locationDoesNotExist=নিদিষ্ট করা পথে একটি ডিরেক্টরি বিদ্যমান নয় অথবা প্রবেশ করা যাচ্ছে না +addvaultwizard.new.locationIsNotWritable=নিদিষ্ট করা পথে কোনো কিছু পরিবর্তন করার অনুমতি নেই +addvaultwizard.new.locationIsOk=আপনার ভোল্টের জন্য উপযুক্ত ঠিকানা +addvaultwizard.new.invalidName=ভোল্টের নাম অনুপযুক্ত. অনুগ্রহ করে ভোল্টের জন্য একটি সাধারণ নাম ব্যবহার করুন. +### Password +addvaultwizard.new.createVaultBtn=ভোল্ট তৈরি করুন +addvaultwizard.new.generateRecoveryKeyChoice=পাসওয়ার্ড ছাড়া আপনি আপনার তথ্যগুলো ব্যবহার করতে পারবেন না. তাই আপনি কি একটি পুনরুদ্ধার চাবি চান যদি আপনি পাসওয়ার্ড হারিয়ে ফেলেন? +addvaultwizard.new.generateRecoveryKeyChoice.yes=হ্যাঁ অবশ্যই, দুঃখিত হওয়ার চেয়ে নিরাপদ থাকাই ভালো +addvaultwizard.new.generateRecoveryKeyChoice.no=না ধন্যবাদ, আমি আমার পাসওয়ার্ড হারাবো না +### Information +addvault.new.readme.storageLocation.fileName=গুরুত্বপূর্ণ.rtf +addvault.new.readme.storageLocation.1=⚠️ ভোল্ট ফাইলস ⚠️ +addvault.new.readme.storageLocation.2=এটি হচ্ছে আপনার ভোল্টের স্টোরেজ ঠিকানা. +addvault.new.readme.storageLocation.3=যা করবেন না +addvault.new.readme.storageLocation.4=• কোন ফাইলে কোন ধরনের পরিবর্তন +addvault.new.readme.storageLocation.5=• এনক্রিপশনের জন্য কোন ফাইল এই ডিরেক্টরিতে পেশ করা. +## Existing +addvaultwizard.existing.chooseBtn=নির্বাচন করুন… +## Success + +# Remove Vault + +# Change Password + +# Forget Password + +# Unlock +unlock.unlockBtn=আনলক করুন +## Select +unlock.chooseMasterkey.chooseBtn=নির্বাচন করুন… +## Success +## Failure +### Invalid Mount Point + +# Lock +## Force +lock.forced.retryBtn=পুনরায় চেষ্টা করুন +## Failure + +# Migration +## Start +## Run +## Success +## Missing file system capabilities +## Impossible + +# Health Check +## Start +## Start Failure +## Check Selection +## Detail view +## Fix Application + +# Preferences +## General +## Volume +## Updates +## Contribution +#<-- Add entries for donations and code/translation/documentation contribution --> + +## About + +# Vault Statistics +## Read +## Write + +# Main Window +main.closeBtn.tooltip=বন্ধ করুন +## Drag 'n' Drop +## Vault List +main.vaultlist.contextMenu.lock=লক করুন +main.vaultlist.addVaultBtn=ভোল্ট যুক্ত করুন +## Vault Detail +### Welcome +### Locked +### Unlocked +main.vaultDetail.lockBtn=লক করুন +### Missing +### Needs Migration +### Error + +# Wrong File Alert + +# Vault Options +## General +vaultOptions.general.vaultName=ভোল্ট এর নাম + +## Mount +vaultOptions.mount.mountPoint.directoryPickerButton=নির্বাচন করুন… +## Master Key + + +# Recovery Key + +# New Password + +# Quit diff --git a/src/main/resources/i18n/strings_bs.properties b/src/main/resources/i18n/strings_bs.properties index e336ff9d3..0b8d45a40 100644 --- a/src/main/resources/i18n/strings_bs.properties +++ b/src/main/resources/i18n/strings_bs.properties @@ -94,7 +94,8 @@ forgetPassword.confirmBtn=Zaboravili ste šifru unlock.passwordPrompt=Unesite lozinku za "%s": unlock.savePassword=Zapamti šifru unlock.unlockBtn=Otključaj -## +## Select +unlock.chooseMasterkey.chooseBtn=Odaberi… unlock.chooseMasterkey.filePickerTitle=Odaberite Masterkey Datoteku ## Success unlock.success.message=Uspješno ste otključali "%s"! Vaš sef je sada dostupan putem svog virtualnog diska. diff --git a/src/main/resources/i18n/strings_ca.properties b/src/main/resources/i18n/strings_ca.properties index 520b7d073..afefc7b44 100644 --- a/src/main/resources/i18n/strings_ca.properties +++ b/src/main/resources/i18n/strings_ca.properties @@ -102,8 +102,9 @@ unlock.title=Desbloca "%s" unlock.passwordPrompt=Introduïu la contrasenya de "%s": unlock.savePassword=Recorda la contrasenya unlock.unlockBtn=Desbloqueja -## +## Select unlock.chooseMasterkey.prompt=No es pot trobar el fitxer de clau mestra per aquesta bòveda a la ubicació esperada. Escull el fixer manualment. +unlock.chooseMasterkey.chooseBtn=Trieu… unlock.chooseMasterkey.filePickerTitle=Seleccioneu el fitxer de Clau Mestra ## Success unlock.success.message=S'ha desblocat %s correctament! Podeu accedir a la vostra caixa forta a través de la unitat virtual. diff --git a/src/main/resources/i18n/strings_cs.properties b/src/main/resources/i18n/strings_cs.properties index 5bac326e1..34a7e185f 100644 --- a/src/main/resources/i18n/strings_cs.properties +++ b/src/main/resources/i18n/strings_cs.properties @@ -102,8 +102,10 @@ unlock.title=Odemknout "%s" unlock.passwordPrompt=Zadejte heslo pro "%s": unlock.savePassword=Zapamatovat heslo unlock.unlockBtn=Odemknout -## +## Select +unlock.chooseMasterkey.title=Vyberte soubor s hlavním klíčem "%s" unlock.chooseMasterkey.prompt=Nepodařilo se najít soubor hlavního klíče pro tento trezor v očekávaném umístění. Vyberte prosím soubor klíče ručně. +unlock.chooseMasterkey.chooseBtn=Vybrat... unlock.chooseMasterkey.filePickerTitle=Vyberte soubor s hlavním klíčem ## Success unlock.success.message=Trezor "%s" byl úspěšně odemčen a nyní je dostupný jako virtuální jednotka. @@ -114,6 +116,7 @@ unlock.error.heading=Nelze odemknout trezor ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Připojovací bod %s není složkou, není prázdný nebo neexistuje. unlock.error.invalidMountPoint.existing=Připojovací bod %s již existuje nebo nadřazená složka chybí. +unlock.error.invalidMountPoint.driveLetterOccupied=Písmeno „%s“ už je používáno pro jiný disk. # Lock ## Force @@ -301,6 +304,7 @@ main.vaultDetail.missing.changeLocation=Změnit umístění trezoru… main.vaultDetail.migrateButton=Upgrade trezoru main.vaultDetail.migratePrompt=Váš trezor musí být aktualizován na nový formát, než k němu budete mít přístup ### Error +main.vaultDetail.error.info=Došlo k chybě při načítání trezoru z disku. main.vaultDetail.error.reload=Obnovit main.vaultDetail.error.windowTitle=Chyba při načítání trezoru diff --git a/src/main/resources/i18n/strings_de.properties b/src/main/resources/i18n/strings_de.properties index fa5551619..c7a4a6ea1 100644 --- a/src/main/resources/i18n/strings_de.properties +++ b/src/main/resources/i18n/strings_de.properties @@ -44,7 +44,7 @@ addvaultwizard.new.namePrompt=Tresorname addvaultwizard.new.locationInstruction=Wo soll Cryptomator die verschlüsselten Dateien deines Tresors ablegen? addvaultwizard.new.locationLabel=Speicherort addvaultwizard.new.locationPrompt=… -addvaultwizard.new.directoryPickerLabel=Eigener Ort +addvaultwizard.new.directoryPickerLabel=Benutzerdefinierter Ort addvaultwizard.new.directoryPickerButton=Durchsuchen … addvaultwizard.new.directoryPickerTitle=Verzeichnis auswählen addvaultwizard.new.fileAlreadyExists=Eine Datei oder ein Ordner mit diesem Namen ist bereits vorhanden @@ -72,14 +72,14 @@ addvault.new.readme.storageLocation.10=Falls Du Hilfe brauchst, lies die Dokumen addvault.new.readme.accessLocation.fileName=WILLKOMMEN.rtf addvault.new.readme.accessLocation.1=🔐️ VERSCHLÜSSELTES LAUFWERK 🔐️ 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=Diese Datei kannst du löschen. +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.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=Tresor Datei auswählen +addvaultwizard.existing.chooseBtn=Durchsuchen … +addvaultwizard.existing.filePickerTitle=Tresor-Datei auswählen ## Success -addvaultwizard.success.nextStepsInstructions=Tresor „%s“ hinzugefügt.\nUm auf Inhalte zuzugreifen oder welche hinzuzufügen, musst du den Tresor entsperren. Du kannst ihn aber auch zu jedem späteren Zeitpunkt entsperren. +addvaultwizard.success.nextStepsInstructions=Tresor „%s“ hinzugefügt.\nUm auf Inhalte zuzugreifen oder welche hinzuzufügen, musst Du den Tresor entsperren. Du kannst ihn aber auch zu jedem späteren Zeitpunkt entsperren. addvaultwizard.success.unlockNow=Jetzt entsperren # Remove Vault @@ -94,7 +94,7 @@ changepassword.finalConfirmation=Mir ist bewusst, dass ich bei Verlust meines Pa # Forget Password forgetPassword.title=Passwort vergessen -forgetPassword.information=Dies löscht das gespeicherte Passwort dieses Tresors aus dem Schlüsselbund deines Betriebssystems. +forgetPassword.information=Dies löscht das gespeicherte Passwort dieses Tresors aus dem Schlüsselbund Deines Betriebssystems. forgetPassword.confirmBtn=Passwort vergessen # Unlock @@ -102,18 +102,21 @@ unlock.title="%s" entsperren unlock.passwordPrompt=Gib das Passwort für „%s“ ein: unlock.savePassword=Passwort merken unlock.unlockBtn=Entsperren -## +## Select +unlock.chooseMasterkey.title=Masterkey von „%s“ auswählen unlock.chooseMasterkey.prompt=Die Masterkey-Datei dieses Tresors konnte nicht gefunden werden. Bitte wähle die Masterkey-Datei manuell aus. +unlock.chooseMasterkey.chooseBtn=Durchsuchen… unlock.chooseMasterkey.filePickerTitle=Masterkey-Datei auswählen ## Success -unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst du über das virtuelle Laufwerk auf deinen Tresor zugreifen. +unlock.success.message=„%s“ erfolgreich entsperrt! Nun kannst Du über das virtuelle Laufwerk auf Deinen Tresor zugreifen. unlock.success.rememberChoice=Auswahl speichern und nicht mehr anzeigen unlock.success.revealBtn=Laufwerk anzeigen ## Failure unlock.error.heading=Tresor konnte nicht entsperrt werden ### Invalid Mount Point -unlock.error.invalidMountPoint.notExisting=Einhängepunkt ist kein leeres Verzeichnis oder existiert nicht: %s +unlock.error.invalidMountPoint.notExisting=Einhängepunkt %s ist kein leeres Verzeichnis oder existiert nicht. unlock.error.invalidMountPoint.existing=Einhängepunkt/Ordner bereits vorhanden oder übergeordneter Ordner fehlt: %s. +unlock.error.invalidMountPoint.driveLetterOccupied=Laufwerksbuchstabe "%s" wird bereits verwendet. # Lock ## Force @@ -123,7 +126,7 @@ lock.forced.retryBtn=Wiederholen lock.forced.forceBtn=Sperren erzwingen ## Failure lock.fail.heading=Tresor konnte nicht gesperrt werden. -lock.fail.message=Der Tresor „%s“ konnte nicht gesperrt werden. Stelle sicher, dass du deine ungespeicherte Arbeit an anderer Stelle speicherst und wichtige Lese-/Schreibvorgänge abgeschlossen sind. Um den Tresor zu schließen, beende den Cryptomator-Prozess. +lock.fail.message=Der Tresor „%s“ konnte nicht gesperrt werden. Stelle sicher, dass Du Deine ungespeicherte Arbeit an anderer Stelle speicherst und wichtige Lese-/Schreibvorgänge abgeschlossen sind. Um den Tresor zu schließen, beende den Cryptomator-Prozess. # Migration migration.title=Tresor aktualisieren @@ -139,7 +142,7 @@ migration.success.nextStepsInstructions=„%s“ erfolgreich migriert.\nDu kanns migration.success.unlockNow=Jetzt entsperren ## Missing file system capabilities migration.error.missingFileSystemCapabilities.title=Nicht unterstütztes Dateisystem -migration.error.missingFileSystemCapabilities.description=Die Migration wurde nicht gestartet, da sich dein Tresor auf einem ungeeigneten Dateisystem befindet. +migration.error.missingFileSystemCapabilities.description=Die Migration wurde nicht gestartet, da sich Dein Tresor auf einem ungeeigneten Dateisystem befindet. migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Das Dateisystem unterstützt keine langen Dateinamen. migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Das Dateisystem unterstützt keine langen Pfadnamen. migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Das Dateisystem lässt keine Lesevorgänge zu. @@ -147,15 +150,15 @@ migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Das Dateisyste ## Impossible migration.impossible.heading=Tresor kann nicht migriert werden migration.impossible.reason=Der Tresor kann nicht automatisch migriert werden, da sein Speicherort oder Zugangspunkt nicht kompatibel ist. -migration.impossible.moreInfo=Der Tresor kann auch jetzt noch mit einer älteren Version geöffnet werden. Eine Anleitung zum manuellen Migrieren eines Tresors findest du unter +migration.impossible.moreInfo=Der Tresor kann auch jetzt noch mit einer älteren Version geöffnet werden. Eine Anleitung zum manuellen Migrieren eines Tresors findest Du unter # Health Check ## Start -health.title=Integritätstest von "%s" -health.intro.header=Zustandsprüfung -health.intro.text=Der Zustandscheck ist eine Sammlung von Tests, um Probleme mit der internen Struktur deines Tresores zu finden und möglicherweise zu reparieren. Bitte bedenke: +health.title=Integritätsprüfung von "%s" +health.intro.header=Integritätsprüfung +health.intro.text=Die Integritätsprüfung ist eine Sammlung von Tests, um Probleme mit der internen Struktur deines Tresors zu finden und möglicherweise zu reparieren. Bitte bedenke: health.intro.remarkSync=Stelle sicher, dass alle Geräte vollständig synchronisiert sind. Dies löst die meisten Probleme. -health.intro.remarkFix=Nicht alle Probleme können gelöst werden. +health.intro.remarkFix=Nicht alle Probleme können behoben werden. health.intro.remarkBackup=Wenn Daten beschädigt sind, kann nur ein Backup helfen. health.intro.affirmation=Ich habe die obenstehende Information gelesen und verstanden ## Start Failure @@ -164,24 +167,24 @@ health.fail.ioError=Beim Lesezugriff auf die Konfigurationsdatei ist ein Fehler health.fail.parseError=Beim Parsen der Tresor-Konfiguration ist ein Fehler aufgetreten. health.fail.moreInfo=Weitere Informationen ## Check Selection -health.checkList.description=Markiere Prüfungen in der linken Liste oder benutze die Knöpfe darunter. +health.checkList.description=Markiere Prüfungen in der linken Liste oder benutze die Schaltflächen darunter. health.checkList.selectAllButton=Alle Prüfungen auswählen health.checkList.deselectAllButton=Alle Prüfungen abwählen health.check.runBatchBtn=Ausgewählte Prüfungen ausführen ## Detail view -health.check.detail.noSelectedCheck=Wähle für die Ergebnisse eine abgeschlossene Integritätsprüfung in der Liste links aus. +health.check.detail.noSelectedCheck=Wähle für die Ergebnisse eine abgeschlossene Intregritätsprüfung in der Liste links aus. health.check.detail.checkScheduled=Die Prüfung ist geplant. -health.check.detail.checkRunning=Prüfung läuft… +health.check.detail.checkRunning=Die Prüfung läuft derzeit … health.check.detail.checkSkipped=Die Prüfung wurde nicht zur Ausführung ausgewählt. health.check.detail.checkFinished=Die Prüfung wurde erfolgreich abgeschlossen. -health.check.detail.checkFinishedAndFound=Die Überprüfung wurde beendet. Bitte sichte die Ergebnisse. -health.check.detail.checkFailed=Die Prüfung wurde wegen eines Fehlers beendet. +health.check.detail.checkFinishedAndFound=Die Prüfung wurde beendet. Bitte überprüfe die Ergebnisse. +health.check.detail.checkFailed=Die Prüfung wurde wegen eines Fehlers abgebrochen. health.check.detail.checkCancelled=Die Prüfung wurde abgebrochen. health.check.exportBtn=Bericht exportieren ## Fix Application health.fix.fixBtn=Beheben health.fix.successTip=Fehlerbehebung erfolgreich -health.fix.failTip=Reparatur fehlgeschlagen, siehe Log für Details +health.fix.failTip=Reparatur fehlgeschlagen, siehe Protokoll für Details # Preferences preferences.title=Einstellungen @@ -216,8 +219,8 @@ preferences.updates.updateAvailable=Update auf Version %s verfügbar. ## Contribution preferences.contribute=Unterstütze uns preferences.contribute.registeredFor=Supporter-Zertifikat registriert für %s -preferences.contribute.noCertificate=Unterstütze Cryptomator und erhalte ein Supporter-Zertifikat. Es ist wie ein Lizenzschlüssel, aber für großartige Menschen, die freie Software verwenden. ;-) -preferences.contribute.getCertificate=Du hast noch keines? Erfahre, wie du es erhalten kannst. +preferences.contribute.noCertificate=Unterstütze Cryptomator und erhalte ein Supporter-Zertifikat. Es ist eine Art Lizenzschlüssel, aber für großartige Menschen, die freie Software verwenden. ;-) +preferences.contribute.getCertificate=Du hast noch keins? Erfahre, wie Du es erhalten kannst. preferences.contribute.promptText=Code des Supporter-Zertifikats hier einfügen #<-- Add entries for donations and code/translation/documentation contribution --> @@ -262,10 +265,10 @@ main.debugModeEnabled.tooltip=Diagnosemodus ist aktiviert main.donationKeyMissing.tooltip=Zieh bitte eine Spende in Betracht ## Drag 'n' Drop main.dropZone.dropVault=Diesen Tresor hinzufügen -main.dropZone.unknownDragboardContent=Falls du einen Tresor hinzufügen möchtest, zieh ihn in dieses Fenster +main.dropZone.unknownDragboardContent=Falls Du einen Tresor hinzufügen möchtest, zieh ihn in dieses Fenster ## Vault List main.vaultlist.emptyList.onboardingInstruction=Klicke hier, um einen Tresor hinzuzufügen -main.vaultlist.contextMenu.remove=Entfernen … +main.vaultlist.contextMenu.remove=Entfernen… main.vaultlist.contextMenu.lock=Sperren main.vaultlist.contextMenu.unlock=Entsperren … main.vaultlist.contextMenu.unlockNow=Jetzt entsperren @@ -274,7 +277,7 @@ main.vaultlist.contextMenu.reveal=Laufwerk anzeigen main.vaultlist.addVaultBtn=Tresor hinzufügen ## 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: +main.vaultDetail.welcomeOnboarding=Danke, dass Du zum Schutz Deiner Dateien Cryptomator gewählt hast. Falls du Hilfe brauchst, schau Dir unsere Anleitungen an: ### Locked main.vaultDetail.lockedStatus=GESPERRT main.vaultDetail.unlockBtn=Entsperren … @@ -334,7 +337,7 @@ vaultOptions.mount.readonly=Schreibgeschützt vaultOptions.mount.customMountFlags=Benutzerdefinierte Einhänge-Optionen vaultOptions.mount.winDriveLetterOccupied=belegt vaultOptions.mount.mountPoint=Einhängepunkt -vaultOptions.mount.mountPoint.auto=Wähle automatisch einen geeigneten Ort aus +vaultOptions.mount.mountPoint.auto=Automatisch einen geeigneten Ort auswählen vaultOptions.mount.mountPoint.driveLetter=Laufwerksbuchstaben zuweisen vaultOptions.mount.mountPoint.custom=Eigener Pfad vaultOptions.mount.mountPoint.directoryPickerButton=Durchsuchen … diff --git a/src/main/resources/i18n/strings_el.properties b/src/main/resources/i18n/strings_el.properties index 756530597..2b4db00b1 100644 --- a/src/main/resources/i18n/strings_el.properties +++ b/src/main/resources/i18n/strings_el.properties @@ -102,8 +102,10 @@ unlock.title=Ξεκλειδώστε "%s" unlock.passwordPrompt=Εισάγετε τον κωδικό για "%s": unlock.savePassword=Απομνημόνευση κωδικού πρόσβασης unlock.unlockBtn=Ξεκλείδωμα -## +## Select +unlock.chooseMasterkey.title=Επιλέξτε το Masterkey του "%s" unlock.chooseMasterkey.prompt=Αδυναμία εύρεσης του αρχείου masterkey για αυτό το vault στην αναμενόμενη τοποθεσία. Παρακαλώ επιλέξτε το αρχείο χειροκίνητα. +unlock.chooseMasterkey.chooseBtn=Επιλογή… unlock.chooseMasterkey.filePickerTitle=Επιλέξτε το αρχείο Masterkey ## Success unlock.success.message=Ξεκλειδώθηκε "%s" επιτυχώς! Το vault σας είναι διαθέσιμο μέσω του εικονικού δίσκου του. @@ -114,6 +116,7 @@ unlock.error.heading=Αδυναμία ξεκλειδώματος vault ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Το σημείο προσάρτησης δεν είναι κενός φάκελος ή δεν υπάρχει: %s unlock.error.invalidMountPoint.existing=Το σημείο/φάκελος προσάρτησης υπάρχει ήδη ή ο γονικός φάκελος λείπει: %s +unlock.error.invalidMountPoint.driveLetterOccupied=Το Γράμμα Δίσκου "%s" χρησιμοποιείται ήδη. # Lock ## Force diff --git a/src/main/resources/i18n/strings_es.properties b/src/main/resources/i18n/strings_es.properties index cb3d9d3e7..ddc7e79e3 100644 --- a/src/main/resources/i18n/strings_es.properties +++ b/src/main/resources/i18n/strings_es.properties @@ -68,7 +68,7 @@ addvault.new.readme.storageLocation.6=Cuando se quiere cifrar archivos y ver el addvault.new.readme.storageLocation.7=1. Agregar esta bóveda a Cryptomator. addvault.new.readme.storageLocation.8=2. Desbloquear la bóveda en Cryptomator. addvault.new.readme.storageLocation.9=3. Abrir el lugar de acceso haciendo clic en el botón "Revelar". -addvault.new.readme.storageLocation.10=Si se necesita ayuda, visitar la documentación: %s +addvault.new.readme.storageLocation.10=Si necesita ayuda, visite la documentación: %s addvault.new.readme.accessLocation.fileName=BIENVENIDA.rtf addvault.new.readme.accessLocation.1=🔐️ VOLUMEN CIFRADO 🔐️ addvault.new.readme.accessLocation.2=Este es el lugar de acceso de la bóveda. @@ -102,8 +102,10 @@ unlock.title=Desbloquear "%s" unlock.passwordPrompt=Ingresar contraseña para "%s": unlock.savePassword=Recordar contraseña unlock.unlockBtn=Desbloquear -## +## Select +unlock.chooseMasterkey.title=Seleccionar clave maestra de "%s" unlock.chooseMasterkey.prompt=No se pudo encontrar el archivo de la clave maestra de esta bóveda en la ubicación esperada. Por favor, elija manualmente el archivo de la clave. +unlock.chooseMasterkey.chooseBtn=Elegir… unlock.chooseMasterkey.filePickerTitle=Seleccione el archivo de la clave maestra ## Success unlock.success.message=¡Desbloqueo de "%s" exitoso! Su bóveda ahora es accesible a través de su unidad virtual. @@ -112,8 +114,9 @@ unlock.success.revealBtn=Revelar unidad ## Failure unlock.error.heading=No se puede desbloquear la bóveda ### Invalid Mount Point -unlock.error.invalidMountPoint.notExisting=El punto de montaje no es un directorio vacío o no existe: %s -unlock.error.invalidMountPoint.existing=El punto de montaje/carpeta ya existe o falta la carpeta padre: %s +unlock.error.invalidMountPoint.notExisting=El punto de montaje "%s"no es un directorio, no está vacío o no existe. +unlock.error.invalidMountPoint.existing=El punto de montaje "%s" ya existe o falta la carpeta padre. +unlock.error.invalidMountPoint.driveLetterOccupied=La letra de unidad "%s" ya está en uso. # Lock ## Force @@ -122,7 +125,7 @@ lock.forced.message=El bloqueo de "%s" fue bloqueado por operaciones pendientes lock.forced.retryBtn=Reintentar lock.forced.forceBtn=Forzar bloqueo ## Failure -lock.fail.heading=Falló al bloquear la bóveda. +lock.fail.heading=Error al bloquear la bóveda. lock.fail.message=No se pudo bloquear la bóveda "%s". Asegúrese de que el trabajo no guardado se ha guardado en otro lugar y las operaciones de lectura/escritura importantes han finalizado. Para cerrar la bóveda termine el proceso de Cryptomator. # Migration @@ -169,7 +172,7 @@ health.checkList.selectAllButton=Seleccionar todas las comprobaciones health.checkList.deselectAllButton=Deseleccionar todas las comprobaciones health.check.runBatchBtn=Ejecutar las comprobaciones seleccionadas ## Detail view -health.check.detail.noSelectedCheck=Para los resultados seleccione una comprobación del estado en la lista de la izquierda +health.check.detail.noSelectedCheck=Para los resultados seleccione una comprobación del estado finalizada en la lista de la izquierda. health.check.detail.checkScheduled=La comprobación está programada. health.check.detail.checkRunning=La comprobación se está ejecutando… health.check.detail.checkSkipped=No se ha seleccionado la comprobación para ejecutarse. @@ -217,7 +220,7 @@ preferences.updates.updateAvailable=Actualización a la versión %s disponible. preferences.contribute=Apóyenos preferences.contribute.registeredFor=Certificado de soporte registrado para %s preferences.contribute.noCertificate=Apoye a Cryptomator y reciba un certificado de seguidor. Es como una clave de licencia, pero para gente asombrosa usando software libre. ;-) -preferences.contribute.getCertificate=¿Aún no tiene una? Aprenda cómo puede obtenerlo. +preferences.contribute.getCertificate=¿Aún no tiene uno? Aprenda cómo puede obtenerlo. preferences.contribute.promptText=Pegue aquí el código de certificado de seguidor #<-- Add entries for donations and code/translation/documentation contribution --> @@ -244,7 +247,7 @@ stats.read.accessCount=Total leídos: %d stats.write.throughput.idle=Escritura: inactivo stats.write.throughput.kibs=Escritura: %.2f kiB/s stats.write.throughput.mibs=Escritura: %.2f MiB/s -stats.write.total.data.none=Datos escritos:- +stats.write.total.data.none=Datos escritos: - stats.write.total.data.kib=Datos escritos: %.1f kiB stats.write.total.data.mib=Datos escritos: %.1f MiB stats.write.total.data.gib=Datos escritos: %.1f GiB @@ -259,12 +262,12 @@ main.closeBtn.tooltip=Cerrar main.minimizeBtn.tooltip=Minimizar main.preferencesBtn.tooltip=Preferencias main.debugModeEnabled.tooltip=Modo de depuración activado -main.donationKeyMissing.tooltip=Por favor, considera donar +main.donationKeyMissing.tooltip=Por favor, considere donar ## Drag 'n' Drop main.dropZone.dropVault=Añadir esta bóveda main.dropZone.unknownDragboardContent=Si desea añadir una bóveda, arrástrela a esta ventana ## Vault List -main.vaultlist.emptyList.onboardingInstruction=Hacer clic aquí para añadir una bóveda +main.vaultlist.emptyList.onboardingInstruction=Haga clic aquí para añadir una bóveda main.vaultlist.contextMenu.remove=Eliminar… main.vaultlist.contextMenu.lock=Bloquear main.vaultlist.contextMenu.unlock=Desbloquear… @@ -274,9 +277,9 @@ main.vaultlist.contextMenu.reveal=Revelar unidad main.vaultlist.addVaultBtn=Añadir bóveda ## Vault Detail ### Welcome -main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger los archivos. En caso de necesitar ayuda, revisar nuestras guías: +main.vaultDetail.welcomeOnboarding=Gracias por elegir Cryptomator para proteger sus archivos. En caso de necesitar ayuda, revise nuestras guías: ### Locked -main.vaultDetail.lockedStatus=BLOQUEADO +main.vaultDetail.lockedStatus=BLOQUEADA main.vaultDetail.unlockBtn=Desbloquear… main.vaultDetail.unlockNowBtn=Desbloquear ahora main.vaultDetail.optionsBtn=Opciones de la bóveda @@ -286,7 +289,7 @@ main.vaultDetail.unlockedStatus=DESBLOQUEADO main.vaultDetail.accessLocation=El contenido de la bóveda es accesible aquí: main.vaultDetail.revealBtn=Revelar unidad main.vaultDetail.lockBtn=Bloquear -main.vaultDetail.bytesPerSecondRead=Leído: +main.vaultDetail.bytesPerSecondRead=Lectura: main.vaultDetail.bytesPerSecondWritten=Escritura: main.vaultDetail.throughput.idle=inactivo main.vaultDetail.throughput.kbps=%.1f kiB/s @@ -298,7 +301,7 @@ main.vaultDetail.missing.recheck=Volver a comprobar main.vaultDetail.missing.remove=Eliminar de la lista de bóveda… main.vaultDetail.missing.changeLocation=Cambiar ubicación de la bóveda… ### Needs Migration -main.vaultDetail.migrateButton=Mejorar bóveda +main.vaultDetail.migrateButton=Actualizar bóveda main.vaultDetail.migratePrompt=Su bóveda necesita ser actualizada a un formato nuevo antes de poder acceder a ella ### Error main.vaultDetail.error.info=Se produjo un error al cargar la bóveda del disco. @@ -306,13 +309,13 @@ main.vaultDetail.error.reload=Recargar main.vaultDetail.error.windowTitle=Error al cargar la bóveda # Wrong File Alert -wrongFileAlert.title=Cómo encriptar archivos -wrongFileAlert.header.title=¿Se intentan cifrar estos archivos? +wrongFileAlert.title=Cómo cifrar archivos +wrongFileAlert.header.title=¿Intenta cifrar estos archivos? wrongFileAlert.header.lead=Para este propósito, Cryptomator proporciona un volumen en su administrador de archivos del sistema. -wrongFileAlert.instruction.0=Para cifrar archivos, seguir estos pasos: -wrongFileAlert.instruction.1=1. Desbloquear la bóveda. -wrongFileAlert.instruction.2=2. Hacer clic en "Revelar" para abrir el volumen en el administrador de archivos. -wrongFileAlert.instruction.3=3. Añadir los archivos a este volumen. +wrongFileAlert.instruction.0=Para cifrar archivos, siga estos pasos: +wrongFileAlert.instruction.1=1. Desbloquee su bóveda. +wrongFileAlert.instruction.2=2. Haga clic en "Revelar" para abrir el volumen en el administrador de archivos. +wrongFileAlert.instruction.3=3. Añada los archivos a este volumen. wrongFileAlert.link=Para más ayuda, visite # Vault Options @@ -322,7 +325,7 @@ vaultOptions.general.vaultName=Nombre de la bóveda vaultOptions.general.autoLock.lockAfterTimePart1=Bloquear después de vaultOptions.general.autoLock.lockAfterTimePart2=minutos vaultOptions.general.unlockAfterStartup=Desbloquear bóveda al iniciar Cryptomator -vaultOptions.general.actionAfterUnlock=Después de desbloquear exitosamente +vaultOptions.general.actionAfterUnlock=Después de desbloquear con éxito vaultOptions.general.actionAfterUnlock.ignore=No hacer nada vaultOptions.general.actionAfterUnlock.reveal=Revelar unidad vaultOptions.general.actionAfterUnlock.ask=Preguntar @@ -362,7 +365,7 @@ newPassword.promptText=Ingrese una contraseña nueva newPassword.reenterPassword=Confirme la contraseña nueva newPassword.passwordsMatch=¡Las contraseñas coinciden! newPassword.passwordsDoNotMatch=Las contraseñas no coinciden -passwordStrength.messageLabel.tooShort=Usar al menos %d caracteres +passwordStrength.messageLabel.tooShort=Use al menos %d caracteres passwordStrength.messageLabel.0=Muy débil passwordStrength.messageLabel.1=Débil passwordStrength.messageLabel.2=Aceptable diff --git a/src/main/resources/i18n/strings_fil.properties b/src/main/resources/i18n/strings_fil.properties index 9f2a7767f..83c92ce90 100644 --- a/src/main/resources/i18n/strings_fil.properties +++ b/src/main/resources/i18n/strings_fil.properties @@ -61,7 +61,8 @@ addvaultwizard.existing.chooseBtn=Mamili… # Unlock unlock.unlockBtn=I-unlock -## +## Select +unlock.chooseMasterkey.chooseBtn=Mamili… ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_fr.properties b/src/main/resources/i18n/strings_fr.properties index 6a6a4d90d..17372d6a3 100644 --- a/src/main/resources/i18n/strings_fr.properties +++ b/src/main/resources/i18n/strings_fr.properties @@ -63,7 +63,7 @@ addvault.new.readme.storageLocation.1=Fichiers de coffre-fort addvault.new.readme.storageLocation.2=Ceci est le chemin de votre coffre-fort. addvault.new.readme.storageLocation.3=NE PAS addvault.new.readme.storageLocation.4=Modifier n'importe quel fichier dans ce répertoire ou -addvault.new.readme.storageLocation.5=Collez n'importe quel fichier à chiffrer dans ce répertoire. +addvault.new.readme.storageLocation.5=• coller de fichier à chiffrer dans ce répertoire. addvault.new.readme.storageLocation.6=Si vous voulez chiffrer les fichiers et afficher le contenu du coffre, faites ce qui suit : addvault.new.readme.storageLocation.7=1. Ajouter ce coffre à Cryptomator. addvault.new.readme.storageLocation.8=2. Déverrouillez le coffre-fort dans Cryptomator. @@ -102,8 +102,10 @@ unlock.title=Déverrouiller %s unlock.passwordPrompt=Entrez le mot de passe pour “%s” : unlock.savePassword=Mémoriser le mot de passe unlock.unlockBtn=Déverrouiller -## +## Select +unlock.chooseMasterkey.title=Sélectionner la clé principale de "%s" unlock.chooseMasterkey.prompt=Impossible de trouver le fichier clef à l'adresse attendue pour ce coffre. Veuillez sélectionner le fichier clef manuellement. +unlock.chooseMasterkey.chooseBtn=Choisir... unlock.chooseMasterkey.filePickerTitle=Sélectionner le fichier clef ## Success unlock.success.message=“%s” déverrouillé ! Le contenu de votre coffre est maintenant accessible par son lecteur virtuel. @@ -114,6 +116,7 @@ unlock.error.heading=Impossible de déverrouiller le coffre ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Le point de montage «%s» n'est pas un répertoire, n'est pas vide ou n'existe pas. unlock.error.invalidMountPoint.existing=Le point de montage/le répertoire existe déjà ou le répertoire parent est manquant: %s +unlock.error.invalidMountPoint.driveLetterOccupied=Le lecteur "%s" est en déjà utilisé. # Lock ## Force @@ -318,7 +321,7 @@ wrongFileAlert.link=Pour toute aide supplémentaire, visitez # Vault Options ## General vaultOptions.general=Général -vaultOptions.general.vaultName=Nom de voûte +vaultOptions.general.vaultName=Nom du coffre-fort vaultOptions.general.autoLock.lockAfterTimePart1=Verrouiler en cas d'inactivité pendant vaultOptions.general.autoLock.lockAfterTimePart2=minutes vaultOptions.general.unlockAfterStartup=Déverrouiller le coffre au démarrage diff --git a/src/main/resources/i18n/strings_gl.properties b/src/main/resources/i18n/strings_gl.properties new file mode 100644 index 000000000..88e7c506a --- /dev/null +++ b/src/main/resources/i18n/strings_gl.properties @@ -0,0 +1,89 @@ +# Locale Specific CSS files such as CJK, RTL,... + +# Generics +## Button +## Error + +# Defaults + +# Tray Menu + +# Add Vault Wizard +## Welcome +## New +### Name +### Location +### Password +### Information +## Existing +## Success + +# Remove Vault + +# Change Password + +# Forget Password + +# Unlock +## Select +## Success +## Failure +### Invalid Mount Point + +# Lock +## Force +lock.forced.retryBtn=Tentar de novo +## Failure + +# Migration +## Start +## Run +## Success +## Missing file system capabilities +## Impossible + +# Health Check +## Start +## Start Failure +## Check Selection +## Detail view +## Fix Application + +# Preferences +## General +## Volume +## Updates +## Contribution +#<-- Add entries for donations and code/translation/documentation contribution --> + +## About + +# Vault Statistics +## Read +## Write + +# Main Window +## Drag 'n' Drop +## Vault List +## Vault Detail +### Welcome +### Locked +### Unlocked +### Missing +### Needs Migration +### Error + +# Wrong File Alert + +# Vault Options +## General + +## Mount +## Master Key + + +# Recovery Key + +# New Password + +# Quit diff --git a/src/main/resources/i18n/strings_he.properties b/src/main/resources/i18n/strings_he.properties index 2a4d51e6c..e5086ac5e 100644 --- a/src/main/resources/i18n/strings_he.properties +++ b/src/main/resources/i18n/strings_he.properties @@ -32,7 +32,7 @@ traymenu.vault.lock=נעילה traymenu.vault.reveal=חשוף # Add Vault Wizard -addvaultwizard.title=הוסף כספת +addvaultwizard.title=יצירת כספת ## Welcome addvaultwizard.welcome.newButton=צור כספת חדשה addvaultwizard.welcome.existingButton=פתח כספת קיימת @@ -43,9 +43,10 @@ addvaultwizard.new.namePrompt=שם הכספת ### Location addvaultwizard.new.locationInstruction=היכן Cryptomator צריך לשמור את הקבצים המוצפנים של הכספת שלך? addvaultwizard.new.locationLabel=מיקום אחסון +addvaultwizard.new.locationPrompt=… addvaultwizard.new.directoryPickerLabel=מיקום מותאם אישית addvaultwizard.new.directoryPickerButton=בחר... -addvaultwizard.new.directoryPickerTitle=בחירת ספרייה +addvaultwizard.new.directoryPickerTitle=בחירת תיקייה addvaultwizard.new.fileAlreadyExists=שם הקובץ או שם התיקייה עם שם הכספת כבר קיים addvaultwizard.new.locationDoesNotExist=מחיצה בנתיב הנקוב לא קיימת או אין אפשרות לקבל אליה גישה addvaultwizard.new.locationIsNotWritable=אין הרשאת כתיבה בנתיב הנקוב @@ -74,32 +75,74 @@ addvault.new.readme.accessLocation.2=זהו מיקום גישה לכספת של addvault.new.readme.accessLocation.3=כל קובץ אשר יצורף לספרייה זו יעבור הצפנה באמצעות Cryptomator. את/ה תוכל/י לעבוד עליו כמו עם כל קבוץ/מחיצה רגילים. זהו מצב הצגה מפוענח של התוכן, הקבצים שלך נשארים מוצפנים על הדיסק הקשיח שלך בכל רגע. addvault.new.readme.accessLocation.4=תרגיש/י בנוח להסיר את הקובץ הזה. ## Existing +addvaultwizard.existing.instruction=בחר את קובץ "vault.cryptomator" של כספת קיימת. אם קיים קובץ בשם "masterkey.cryptomator" בלבד, בחר/י אותו במקום. addvaultwizard.existing.chooseBtn=בחר... +addvaultwizard.existing.filePickerTitle=בחר קובץ כספת ## Success +addvaultwizard.success.nextStepsInstructions=נוספה כספת "%s".\nהנך צריך/ה לבטל נעילת כספת זו בכדי לקבל גישה או להוסיף קבצים. לחילופין תוכל/י לבטל נעילה בכל נקודת זמן מאוחרת יותר. +addvaultwizard.success.unlockNow=בטל נעילה כעת # Remove Vault +removeVault.title=הסר כספת +removeVault.information=זה יגרום ל-Cryptomator לשכוח מהכספת הזו. תוכל/י להוסיף אותה שוב מאוחר יותר. קבצים מוצפנים לא ימחקו מהכונן שלך. +removeVault.confirmBtn=הסר כספת # Change Password +changepassword.title=שנה סיסמה +changepassword.enterOldPassword=הקש את הסיסמה הנוכחית ל-"%s" +changepassword.finalConfirmation=אני מבין/ה שלא אוכל לגשת למידע שלי במקרה ואשכח את הסיסמה שלי # Forget Password +forgetPassword.title=שכח סיסמה +forgetPassword.information=זה ימחק את הסיסמה השמורה של הכספת הזו ממחזיק מפתחות המערכת. +forgetPassword.confirmBtn=שכח סיסמה # Unlock +unlock.title=בטל/י נעילה ל-"%s" +unlock.passwordPrompt=הכנס/י סיסמה ל-"%s": +unlock.savePassword=זכור סיסמה unlock.unlockBtn=בטל נעילה -## +## Select +unlock.chooseMasterkey.title=בחר/י מפתח מאסטר של "%s" +unlock.chooseMasterkey.prompt=מפתח מאסטר של כספת זו לא נמצא במיקום הצפוי. בחר/י בבקשה את המפתח באופן ידני. +unlock.chooseMasterkey.chooseBtn=בחר... +unlock.chooseMasterkey.filePickerTitle=בחר/י קובץ מפתח מאסטר ## Success +unlock.success.message=הנעילה ל-"%s" בוטלה בהצלחה! הכספת שלך נגישה כעת דרך כונן ווירטואלי. +unlock.success.rememberChoice=זכור בחירה, אל תראה שוב +unlock.success.revealBtn=חשוף את הכונן ## Failure +unlock.error.heading=לא מתאפשר לבטל נעילת הכספת ### Invalid Mount Point # Lock ## Force +lock.forced.heading=הנעילה נכשלה +lock.forced.retryBtn=נסה שנית +lock.forced.forceBtn=הכרח נעילה ## Failure +lock.fail.heading=נעילת הכספת נשכלה. # Migration +migration.title=שדרג הכספת ## Start +migration.start.confirm=כן, הכספת שלי מסונכרנת במלואה ## Run +migration.run.enterPassword=הכנס/י סיסמה עבור "%s" +migration.run.startMigrationBtn=העבר הכספת +migration.run.progressHint=הדבר יקח זמן מה… ## Success +migration.success.nextStepsInstructions="%s" הועברה בהצלחה.\nהנך יכול/ה לפתוח את הכספת שלך. +migration.success.unlockNow=בטל נעילה כעת ## Missing file system capabilities +migration.error.missingFileSystemCapabilities.title=מערכת קבצים אינה נתמכת +migration.error.missingFileSystemCapabilities.description=העברה לא החלה, כיוון שהכספת שלך נמצאת במערכת קבצים לא מתאימה. +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=לא יכול להעביר את הכספת # Health Check ## Start @@ -128,14 +171,19 @@ main.preferencesBtn.tooltip=העדפות ## Drag 'n' Drop ## Vault List main.vaultlist.contextMenu.lock=נעילה -main.vaultlist.addVaultBtn=הוסף כספת +main.vaultlist.contextMenu.unlockNow=בטל נעילה כעת +main.vaultlist.contextMenu.reveal=חשוף את הכונן +main.vaultlist.addVaultBtn=יצירת כספת ## Vault Detail ### Welcome ### Locked +main.vaultDetail.unlockNowBtn=בטל נעילה כעת ### Unlocked +main.vaultDetail.revealBtn=חשוף את הכונן main.vaultDetail.lockBtn=נעילה ### Missing ### Needs Migration +main.vaultDetail.migrateButton=שדרג הכספת ### Error # Wrong File Alert @@ -143,10 +191,12 @@ main.vaultDetail.lockBtn=נעילה # Vault Options ## General vaultOptions.general.vaultName=שם הכספת +vaultOptions.general.actionAfterUnlock.reveal=חשוף את הכונן ## Mount vaultOptions.mount.mountPoint.directoryPickerButton=בחר... ## Master Key +vaultOptions.masterkey.changePasswordBtn=שנה סיסמה # Recovery Key diff --git a/src/main/resources/i18n/strings_hi.properties b/src/main/resources/i18n/strings_hi.properties index 26fe68bda..44988d255 100644 --- a/src/main/resources/i18n/strings_hi.properties +++ b/src/main/resources/i18n/strings_hi.properties @@ -58,6 +58,7 @@ addvault.new.readme.storageLocation.5=• • इस डायरेक्ट ## Existing addvaultwizard.existing.chooseBtn=चुनें… ## Success +addvaultwizard.success.unlockNow=अब अनलॉक करें # Remove Vault @@ -68,7 +69,8 @@ changepassword.title=पासवर्ड बदलें # Unlock unlock.unlockBtn=अनलॉक करें -## +## Select +unlock.chooseMasterkey.chooseBtn=चुनें… ## Success ## Failure ### Invalid Mount Point @@ -83,6 +85,7 @@ migration.title=वाउल्ट को अपग्रेड करें ## Start ## Run ## Success +migration.success.unlockNow=अब अनलॉक करें ## Missing file system capabilities ## Impossible @@ -114,10 +117,12 @@ main.preferencesBtn.tooltip=प्राथमिकताएं ## Drag 'n' Drop ## Vault List main.vaultlist.contextMenu.lock=लॉक करें +main.vaultlist.contextMenu.unlockNow=अब अनलॉक करें main.vaultlist.addVaultBtn=वाउल्ट डालें ## Vault Detail ### Welcome ### Locked +main.vaultDetail.unlockNowBtn=अब अनलॉक करें main.vaultDetail.optionsBtn=वॉल्ट के विकल्प ### Unlocked main.vaultDetail.accessLocation=आपके वॉल्ट की चीजें यहाँ एक्सेस कर सकतें हैं: diff --git a/src/main/resources/i18n/strings_hr.properties b/src/main/resources/i18n/strings_hr.properties index 1b7af9c4d..ca14a896f 100644 --- a/src/main/resources/i18n/strings_hr.properties +++ b/src/main/resources/i18n/strings_hr.properties @@ -25,7 +25,7 @@ # Forget Password # Unlock -## +## Select ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_hu.properties b/src/main/resources/i18n/strings_hu.properties index ff18ab346..8ade80875 100644 --- a/src/main/resources/i18n/strings_hu.properties +++ b/src/main/resources/i18n/strings_hu.properties @@ -102,8 +102,9 @@ unlock.title="%s" feloldása unlock.passwordPrompt=Írja be a jelszavát a következő széfhez "%s": unlock.savePassword=Jelszó megjegyzése unlock.unlockBtn=Feloldás -## +## Select unlock.chooseMasterkey.prompt=Nem található a tároló kulcsfájlja a várt helyen. Kérjük válassza ki a kulcsfájlt manuálisan. +unlock.chooseMasterkey.chooseBtn=Választás… unlock.chooseMasterkey.filePickerTitle=Mesterkulcs fájl kiválasztása ## Success unlock.success.message="%s" sikreresen feloldásra került! Mostmár hozzáférhet a virtuális trezorhoz. diff --git a/src/main/resources/i18n/strings_id.properties b/src/main/resources/i18n/strings_id.properties index 8b4d9e8df..0b2bbbb1d 100644 --- a/src/main/resources/i18n/strings_id.properties +++ b/src/main/resources/i18n/strings_id.properties @@ -13,66 +13,66 @@ generic.button.done=Selesai generic.button.next=Lanjut generic.button.print=Cetak ## Error -generic.error.title=Kesalahan %s -generic.error.instruction=Ups! Cryptomator tidak mengharapkan ini terjadi. Anda dapat mencari solusi yang ada untuk kesalahan ini. Atau jika belum dilaporkan, jangan ragu untuk melakukannya. -generic.error.hyperlink.lookup=Cari kesalahan -generic.error.hyperlink.report=Laporkan kesalahan +generic.error.title=Error %s +generic.error.instruction=Ups! Cryptomator tidak menyangka hal ini terjadi. Anda dapat mencari solusi yang tersedia untuk error ini. Atau jika error ini belum pernah dilaporkan, tidak perlu sungkan untuk melaporkannya. +generic.error.hyperlink.lookup=Cari error berikut +generic.error.hyperlink.report=Laporkan error berikut generic.error.technicalDetails=Rincian: # Defaults -defaults.vault.vaultName=Brankas +defaults.vault.vaultName=Vault # Tray Menu traymenu.showMainWindow=Tampilkan traymenu.showPreferencesWindow=Preferensi -traymenu.lockAllVaults=Gembok Semua +traymenu.lockAllVaults=Kunci Semua traymenu.quitApplication=Keluar -traymenu.vault.unlock=Buka Gembok -traymenu.vault.lock=Gembok +traymenu.vault.unlock=Buka Kunci +traymenu.vault.lock=Kunci traymenu.vault.reveal=Perlihatkan # Add Vault Wizard -addvaultwizard.title=Tambah Brankas +addvaultwizard.title=Tambah Vault ## Welcome -addvaultwizard.welcome.newButton=Buat Brankas Baru -addvaultwizard.welcome.existingButton=Buka Brankas yg Sudah Ada +addvaultwizard.welcome.newButton=Buat Vault Baru +addvaultwizard.welcome.existingButton=Buka Vault yang Tersedia ## New ### Name -addvaultwizard.new.nameInstruction=Buat sebuah nama untuk brankas -addvaultwizard.new.namePrompt=Nama Brankas +addvaultwizard.new.nameInstruction=Beri nama untuk vault berikut +addvaultwizard.new.namePrompt=Nama Vault ### Location -addvaultwizard.new.locationInstruction=Dimana Cryptomator seharusnya menyimpan brankas berkas terenkripsi kamu? +addvaultwizard.new.locationInstruction=Dimana Cryptomator seharusnya menyimpan vault berisi file enkripsi Anda? addvaultwizard.new.locationLabel=Lokasi penyimpanan addvaultwizard.new.locationPrompt=… -addvaultwizard.new.directoryPickerLabel=Sesuaikan Lokasi +addvaultwizard.new.directoryPickerLabel=Lokasi khusus addvaultwizard.new.directoryPickerButton=Pilih… -addvaultwizard.new.directoryPickerTitle=Pilih Folder -addvaultwizard.new.fileAlreadyExists=Sudah ada file atau direktori dengan nama yang sama -addvaultwizard.new.locationDoesNotExist=Direktori pada path yang dipilih tidak ada atau tidak dapat diakses +addvaultwizard.new.directoryPickerTitle=Pilih Direktori +addvaultwizard.new.fileAlreadyExists=Sudah ada file atau direktori dengan nama vault tersebut +addvaultwizard.new.locationDoesNotExist=Direktori pada path yang dipilih tidak tersedia atau tidak dapat diakses addvaultwizard.new.locationIsNotWritable=Anda tidak memiliki hak akses untuk menulis pada path yang dipilih addvaultwizard.new.locationIsOk=Lokasi yang sesuai dengan vault Anda -addvaultwizard.new.invalidName=Nama brankas salah. Harap pilih nama folder yang umum. +addvaultwizard.new.invalidName=Nama vault tidak sesuai. Harap pilih nama direktori yang umum digunakan. ### Password -addvaultwizard.new.createVaultBtn=Buat Brankas -addvaultwizard.new.generateRecoveryKeyChoice=Kamu tidak dapat mengakses data tanpa kata sandi kamu. Apa kamu ingin sebuah kunci pemulihan buat jaga-jaga? -addvaultwizard.new.generateRecoveryKeyChoice.yes=Ya, sedia payung sebelum hujan -addvaultwizard.new.generateRecoveryKeyChoice.no=Tidak, terima kasih, Saya tidak akan kehilangan kata sandi saya +addvaultwizard.new.createVaultBtn=Buat Vault +addvaultwizard.new.generateRecoveryKeyChoice=Anda tidak dapat mengakses data tanpa kata sandi yang Anda miliki. Apa Anda ingin sebuah kunci pemulihan untuk berjaga-jaga jika seandainya Anda kehilangan kata sandi? +addvaultwizard.new.generateRecoveryKeyChoice.yes=Ya tolong, Lebih baik aman daripada menyesal +addvaultwizard.new.generateRecoveryKeyChoice.no=Tidak terima kasih, Saya tidak akan kehilangan kata sandi saya ### Information addvault.new.readme.storageLocation.fileName=PENTING.rtf -addvault.new.readme.storageLocation.1=⚠️ BERKAS BRANKAS ⚠️ -addvault.new.readme.storageLocation.2=Ini adalah lokasi penyimpanan brankas kamu. -addvault.new.readme.storageLocation.3=JANGAN -addvault.new.readme.storageLocation.4=• mengubah file dalam direktori ini, atau -addvault.new.readme.storageLocation.5=• menempelkan file untuk dienkripsi ke dalam direktori ini. -addvault.new.readme.storageLocation.6=Jika kamu ingin mengenkripsi berkas dan melihat isi brankas, lakukan hal berikut: -addvault.new.readme.storageLocation.7=1. Tambahkan brankas ini ke Cryptomator. -addvault.new.readme.storageLocation.8=2. Buka gembok brankas di Cryptomator. -addvault.new.readme.storageLocation.9=3. Buka akses lokasi dengan mengklik tombol "Perlihatkan". -addvault.new.readme.storageLocation.10=Jika kamu butuh bantuan, kunjungi dokumentasi: %s -addvault.new.readme.accessLocation.fileName=SELAMAT_DATANG.rtf -addvault.new.readme.accessLocation.1=🔐️ ISI TERENKRIPSI 🔐️ -addvault.new.readme.accessLocation.2=Ini adalah lokasi akses brankas kamu. -addvault.new.readme.accessLocation.3=File yang ditambahkan ke volume ini akan dienkripsi oleh Cryptomator. Anda dapat mempergunakan isi vault seperti dalam folder lain. Saat ini Anda sedang mengakses tampilan versi dekripsi, file Anda selalu terenkripsi di dalam cakram keras Anda. +addvault.new.readme.storageLocation.1=⚠️ FILE VAULT ⚠️ +addvault.new.readme.storageLocation.2=Ini adalah lokasi penyimpanan vault Anda. +addvault.new.readme.storageLocation.3=DILARANG +addvault.new.readme.storageLocation.4=• mengubah file apapun di direktori ini, atau +addvault.new.readme.storageLocation.5=• menyalin file untuk dienkripsi ke dalam direktori ini. +addvault.new.readme.storageLocation.6=Jika Anda ingin mengenkripsi file dan melihat isi konten dari vault, lakukan hal berikut: +addvault.new.readme.storageLocation.7=1. Tambahkan vault ini ke Cryptomator. +addvault.new.readme.storageLocation.8=2. Buka vault melalui Cryptomator. +addvault.new.readme.storageLocation.9=3. Buka lokasi akses dengan mengklik tombol "Perlihatkan". +addvault.new.readme.storageLocation.10=Jika Anda butuh bantuan, kunjungi dokumentasi: %s +addvault.new.readme.accessLocation.fileName=SELAMAT DATANG.rtf +addvault.new.readme.accessLocation.1=🔐️ VOLUME TERENKRIPSI 🔐️ +addvault.new.readme.accessLocation.2=Ini adalah lokasi akses dari vault Anda. +addvault.new.readme.accessLocation.3=Seluruh file yang ditambahkan ke volume ini akan dienkripsi oleh Cryptomator. Anda dapat mempergunakan isi vault seperti dalam folder/drive lain pada umumnya. Tampilan yang saat ini Anda lihat adalah tampilan dalam bentuk terdekripsi, yang sebenarnya terjadi adalah file-file Anda selalu dalam kondisi terenkripsi di dalam hard drive Anda. addvault.new.readme.accessLocation.4=Anda dapat menghapus file ini. ## Existing addvaultwizard.existing.instruction=Pilih file "vault.cryptomator" Anda dari vault yang ada. Jika hanya ada file bernama "masterkey.cryptomator", pilih file tersebut. @@ -84,46 +84,49 @@ addvaultwizard.success.unlockNow=Buka Kunci Sekarang # Remove Vault removeVault.title=Hapus Vault -removeVault.information=Cryptomator hanya akan melupakan vault ini. Anda dapat menambahkan vault ini lagi nantinya. File yang telah dienkripsi tidak akan dihapus dari cakram keras Anda. +removeVault.information=Tindakan ini hanya akan membuat Cryptomator melupakan vault ini. Anda dapat menambahkan vault ini lagi nanti. File yang telah dienkripsi tidak akan dihapus dari hard drive Anda. removeVault.confirmBtn=Hapus Vault # Change Password changepassword.title=Ubah Kata Sandi -changepassword.enterOldPassword=Masukkan kata sandi untuk "%s" saat ini +changepassword.enterOldPassword=Masukkan kata sandi "%s" saat ini changepassword.finalConfirmation=Saya mengerti bahwa saya tidak akan dapat mengakses data saya apabila saya lupa kata sandi saya # Forget Password forgetPassword.title=Lupa Kata Sandi -forgetPassword.information=Kata sandi vault yang tersimpan akan dihapus dari keychain. +forgetPassword.information=Tindakan ini akan menghapus kata sandi vault berikut yang tersimpan dari sistem keychain Anda. forgetPassword.confirmBtn=Lupa Kata Sandi # Unlock -unlock.title=Membuka "%s" -unlock.passwordPrompt=Masukkan kata sandi untuk "%s": -unlock.savePassword=Simpan Kata Sandi -unlock.unlockBtn=Buka Gembok -## +unlock.title=Buka Kunci "%s" +unlock.passwordPrompt=Masukkan kata sandi "%s": +unlock.savePassword=Ingat Kata Sandi +unlock.unlockBtn=Buka Kunci +## Select +unlock.chooseMasterkey.title=Pilih Masterkey of "%s" unlock.chooseMasterkey.prompt=Tidak dapat menemukan file masterkey untuk vault ini pada lokasi yang dicari. Mohon pilih file kunci secara manual. -unlock.chooseMasterkey.filePickerTitle=Pilih File Kunci Induk +unlock.chooseMasterkey.chooseBtn=Pilih… +unlock.chooseMasterkey.filePickerTitle=Pilih File Masterkey ## Success -unlock.success.message="%s" telat terbuka! Vault Anda sekarang dapat diakses melalui drive virtual. +unlock.success.message="%s" berhasil dibuka! Vault Anda sekarang dapat diakses melalui drive virtual. unlock.success.rememberChoice=Ingat pilihan saya, jangan perlihatkan lagi -unlock.success.revealBtn=Buka Drive +unlock.success.revealBtn=Tampilkan Drive ## Failure unlock.error.heading=Tidak dapat membuka vault ### Invalid Mount Point -unlock.error.invalidMountPoint.notExisting=Poin mount "%s" bukan direktori, dan tidak kosong atau tidak ada. -unlock.error.invalidMountPoint.existing=Poin mount "%s" sudah ada atau folder induknya tidak ada. +unlock.error.invalidMountPoint.notExisting=Mount point "%s" bukanlah sebuah direktori, tidak sedang kosong, atau bahkan tidak ada sama sekali. +unlock.error.invalidMountPoint.existing=Mount point "%s" sudah ada atau folder induknya tidak ditemukan. +unlock.error.invalidMountPoint.driveLetterOccupied=Drive Letter "%s" sedang digunakan. # Lock ## Force lock.forced.heading=Gagal mengunci -lock.forced.message=Penguncian "%s" terblokir oleh operasi yang sedang berjalan atau file yang masih terbuka. Anda dapat mengunci paksa vault ini, namun ada kemungkinan mengganggu I/O akan menghilangkan data yang belum disimpan. +lock.forced.message=Penguncian "%s" terblokir oleh operasi yang sedang berjalan atau file yang masih terbuka. Anda dapat mengunci paksa vault ini, namun ada kemungkinan mengganggu I/O yang berakibat kehilangan data yang belum disimpan. lock.forced.retryBtn=Coba lagi -lock.forced.forceBtn=Kunci Paksa +lock.forced.forceBtn=Paksa Kunci ## Failure lock.fail.heading=Gagal mengunci vault. -lock.fail.message=Vault "%s" tidak dapat dikunci. Pastikan bahwa file yang belum tersimpan telah disimpan di lokasi lain, dan operasi Baca/Tulis yang penting telah selesai. Untuk menutup vault ini, matikan proses Cryptomator. +lock.fail.message=Vault "%s" tidak dapat dikunci. Pastikan bahwa file yang belum tersimpan telah disimpan di lokasi lain, dan operasi Baca/Tulis telah selesai dilakukan. Untuk menutup vault ini, matikan proses Cryptomator. # Migration migration.title=Tingkatkan Vault @@ -146,17 +149,17 @@ migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Sistem file tid migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Sistem file tidak mengizinkan untuk ditulis. ## Impossible migration.impossible.heading=Tidak dapat memindahkan vault -migration.impossible.reason=Vault tidak dapat dipindahkan secara otomatis karena lokasi penyimpanan atau poin akses tidak sesuai. -migration.impossible.moreInfo=Vault dapat dibuka dengan program versi lebih lama. Apabila Anda ingin memindahkan vault secara manual, silahkan buka +migration.impossible.reason=Vault tidak dapat dipindahkan secara otomatis karena lokasi penyimpanan atau access point tidak sesuai. +migration.impossible.moreInfo=Vault masih bisa dibuka dengan aplikasi versi terdahulu. Untuk panduan memindahkan vault secara manual, silahkan buka # Health Check ## Start health.title=Pemeriksaan Kesehatan "%s" health.intro.header=Pemeriksaan Kesehatan -health.intro.text=Pemeriksaan Kesehatan adalah kumpulan pemeriksaan untuk mendeteksi dan mungkin memperbaiki masalah dalam struktur internal brankas Anda. Harap diingat: -health.intro.remarkSync=Pastikan semua perangkat disinkronkan sepenuhnya, ini menyelesaikan sebagian besar masalah. +health.intro.text=Pemeriksaan Kesehatan adalah kumpulan pemeriksaan untuk mendeteksi dan memperbaiki masalah di dalam struktur internal vault Anda. Perlu diperhatikan: +health.intro.remarkSync=Pastikan semua perangkat tersinkronisasi sepenuhnya, sebagian besar masalah teratasi dengan cara ini. health.intro.remarkFix=Tidak semua masalah bisa diperbaiki. -health.intro.remarkBackup=Jika data rusak, hanya cadangan yang dapat membantu. +health.intro.remarkBackup=Jika data rusak, hanya cadangan yang dapat memulihkannya. health.intro.affirmation=Saya telah membaca dan memahami informasi di atas ## Start Failure health.fail.header=Kesalahan saat memuat Konfigurasi Vault @@ -167,14 +170,14 @@ health.fail.moreInfo=Info Selengkapnya health.checkList.description=Centang daftar di bagian kiri atau gunakan tombol di bawah. health.checkList.selectAllButton=Centang Semua health.checkList.deselectAllButton=Jangan Centang Semua -health.check.runBatchBtn=Cek Jalankan yang dipilih +health.check.runBatchBtn=Jalankan Centang yang Terpilih ## Detail view -health.check.detail.noSelectedCheck=Untuk hasil, pilih pemeriksaan kesehatan yang sudah selesai di sebelah kiri. -health.check.detail.checkScheduled=Pemeriksaan dijadwalkan. +health.check.detail.noSelectedCheck=Pilih pemeriksaan kesehatan yang sudah selesai di sebelah kiri untuk melihat hasilnya. +health.check.detail.checkScheduled=Pemeriksaan telah terjadwal. health.check.detail.checkRunning=Saat ini pemeriksaan sedang berjalan… -health.check.detail.checkSkipped=Pemeriksaan tidak dipilih untuk dijalankan. -health.check.detail.checkFinished=Pemeriksaan berhasil diselesaikan. -health.check.detail.checkFinishedAndFound=Pemeriksaan selesai berjalan. Harap tinjau hasilnya. +health.check.detail.checkSkipped=Pemeriksaan tidak dajalankan karena tidak dipilih. +health.check.detail.checkFinished=Pemeriksaan berhasil dilakukan. +health.check.detail.checkFinishedAndFound=Pemeriksaan selesai. Silahkan tinjau hasilnya. health.check.detail.checkFailed=Pemeriksaan terhenti karena terjadi kesalahan. health.check.detail.checkCancelled=Pemeriksaan dibatalkan. health.check.exportBtn=Ekspor Laporan @@ -187,17 +190,17 @@ health.fix.failTip=Perbaikan gagal, lihat log untuk detailnya preferences.title=Preferensi ## General preferences.general=Umum -preferences.general.theme=Lihat dan rasakan +preferences.general.theme=Tampilan & Suasana preferences.general.theme.automatic=Otomatis preferences.general.theme.light=Terang preferences.general.theme.dark=Gelap preferences.general.unlockThemes=Buka mode gelap -preferences.general.showMinimizeButton=Perkecil tampilan tombol -preferences.general.showTrayIcon=\nTampilkan ikon baki (memerlukan mulai ulang) -preferences.general.startHidden=Sembunyikan halaman saat memulai Cryptomator +preferences.general.showMinimizeButton=Tampilkan tombol perkecil +preferences.general.showTrayIcon=Tampilkan tray icon (diperlukan muat ulang) +preferences.general.startHidden=Sembunyikan jendela saat memulai Cryptomator preferences.general.debugLogging=Aktifkan pencatatan debug -preferences.general.debugDirectory=Buka file log -preferences.general.autoStart=Luncurkan Cryptomator pada awal sistem +preferences.general.debugDirectory=Perlihatkan file log +preferences.general.autoStart=Jalankan Cryptomator saat sistem dimulai preferences.general.keychainBackend=Simpan kata sandi dengan preferences.general.interfaceOrientation=Orientasi Antarmuka preferences.general.interfaceOrientation.ltr=Kiri ke kanan @@ -205,20 +208,20 @@ preferences.general.interfaceOrientation.rtl=Kanan ke kiri ## Volume preferences.volume=Drive Virtual preferences.volume.type=Jenis Volume -preferences.volume.webdav.port=Kabel WebDAV +preferences.volume.webdav.port=Port WebDAV preferences.volume.webdav.scheme=Skema WebDAV ## Updates preferences.updates=Pembaharuan -preferences.updates.currentVersion=Versi Sekarang: %s -preferences.updates.autoUpdateCheck=Periksa untuk update otomatis +preferences.updates.currentVersion=Versi Saat Ini: %s +preferences.updates.autoUpdateCheck=Otomatis periksa update preferences.updates.checkNowBtn=Periksa Sekarang preferences.updates.updateAvailable=Pembaharuan ke versi %s tersedia. ## Contribution preferences.contribute=Dukung Kami -preferences.contribute.registeredFor=Sertifikat pendukung terdaftar untuk %s -preferences.contribute.noCertificate=Dukung Cryptomator dan terima sertifikat pendukung. Ini seperti kunci lisensi tetapi untuk orang-orang hebat yang menggunakan perangkat lunak gratis. ;-) +preferences.contribute.registeredFor=Sertifikat supporter terdaftar atas nama %s +preferences.contribute.noCertificate=Dukung Cryptomator dan terima sebuah sertifikat supporter. Sertifikat ini layaknya kunci lisensi, tetapi hanya untuk orang-orang hebat yang menggunakan aplikasi versi gratis. ;-) preferences.contribute.getCertificate=Belum punya? Pelajari bagaimana Anda bisa mendapatkannya. -preferences.contribute.promptText=Tempel kode sertifikat pendukung di sini +preferences.contribute.promptText=Tempel kode sertifikat supporter di sini #<-- Add entries for donations and code/translation/documentation contribution --> ## About @@ -228,22 +231,22 @@ preferences.about=Tentang stats.title=Statistik untuk %s stats.cacheHitRate=Tingkat Hit Cache ## Read -stats.read.throughput.idle=Read: idle -stats.read.throughput.kibs=Read: %.2f kiB/s -stats.read.throughput.mibs=Read: %.2f MiB/s -stats.read.total.data.none=Data read: - -stats.read.total.data.kib=Data read: %.1f kiB -stats.read.total.data.mib=Data read: %.1f MiB -stats.read.total.data.gib=Data read: %.1f GiB -stats.decr.total.data.none=Data decrypted: - -stats.decr.total.data.kib=Data decrypted: %.1f kiB -stats.decr.total.data.mib=Data decrypted: %.1f MiB -stats.decr.total.data.gib=Data decrypted: %.1f GiB -stats.read.accessCount=Total reads: %d +stats.read.throughput.idle=Baca: diam +stats.read.throughput.kibs=Baca: %.2f kiB/detik +stats.read.throughput.mibs=Baca: %.2f MiB/detik +stats.read.total.data.none=Data dibaca: - +stats.read.total.data.kib=Data dibaca: %.1f kiB +stats.read.total.data.mib=Data dibaca: %.1f MiB +stats.read.total.data.gib=Data dibaca: %.1f GiB +stats.decr.total.data.none=Data terdekripsi: - +stats.decr.total.data.kib=Data terdekripsi: %.1f kiB +stats.decr.total.data.mib=Data terdeksripsi: %.1f MiB +stats.decr.total.data.gib=Data terdeksripsi: %.1f GiB +stats.read.accessCount=Total dibaca: %d ## Write -stats.write.throughput.idle=Write: idle -stats.write.throughput.kibs=Write: %.2f kiB/s -stats.write.throughput.mibs=Write: %.2f MiB/s +stats.write.throughput.idle=Tulis: diam +stats.write.throughput.kibs=Tulis: %.2f kiB/detik +stats.write.throughput.mibs=Tulis: %.2f MiB/detik stats.write.total.data.none=Data tertulis: - stats.write.total.data.kib=Data tertulis: %.1f kiB stats.write.total.data.mib=Data tertulis: %.1f MiB @@ -252,22 +255,22 @@ stats.encr.total.data.none=Data terenkripsi: - stats.encr.total.data.kib=Data terenkripsi: %.1f kiB stats.encr.total.data.mib=Data terenkripsi: %.1f MiB stats.encr.total.data.gib=Data terenkripsi: %.1f GiB -stats.write.accessCount=Total menulis: %d +stats.write.accessCount=Total ditulis: %d # Main Window main.closeBtn.tooltip=Tutup -main.minimizeBtn.tooltip=Minimalkan +main.minimizeBtn.tooltip=Perkecil main.preferencesBtn.tooltip=Preferensi main.debugModeEnabled.tooltip=Mode Debug diaktifkan -main.donationKeyMissing.tooltip=Pertimbangjan untuk donasi +main.donationKeyMissing.tooltip=Tolong pertimbangkan untuk melakukan donasi ## Drag 'n' Drop main.dropZone.dropVault=Tambah vault ini main.dropZone.unknownDragboardContent=Jika Anda ingin menambahkan vault, seret ke jendela ini ## Vault List -main.vaultlist.emptyList.onboardingInstruction=Klik untuk tambah vault +main.vaultlist.emptyList.onboardingInstruction=Klik di sini untuk menambahkan vault main.vaultlist.contextMenu.remove=Hapus… -main.vaultlist.contextMenu.lock=Gembok -main.vaultlist.contextMenu.unlock=Membuka… +main.vaultlist.contextMenu.lock=Kunci +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 @@ -277,7 +280,7 @@ main.vaultlist.addVaultBtn=Tambah Brankas main.vaultDetail.welcomeOnboarding=Terima kasih telah memilih Cryptomator untuk melindungi file Anda. Jika Anda memerlukan bantuan, lihat panduan awal kami: ### Locked main.vaultDetail.lockedStatus=TERKUNCI -main.vaultDetail.unlockBtn=Membuka… +main.vaultDetail.unlockBtn=Buka Kunci… main.vaultDetail.unlockNowBtn=Buka Kunci Sekarang main.vaultDetail.optionsBtn=Opsi Vault main.vaultDetail.passwordSavedInKeychain=Kata Sandi tersimpan @@ -332,10 +335,10 @@ vaultOptions.general.startHealthCheckBtn=Mulai Pemeriksaan Kesehatan vaultOptions.mount=Pemasangan vaultOptions.mount.readonly=Read-Only vaultOptions.mount.customMountFlags=Custom Mount Flags -vaultOptions.mount.winDriveLetterOccupied=terisi +vaultOptions.mount.winDriveLetterOccupied=terpakai vaultOptions.mount.mountPoint=Titik Pasang vaultOptions.mount.mountPoint.auto=Secara otomatis memilih lokasi yang sesuai -vaultOptions.mount.mountPoint.driveLetter=Gunakan huruf drive yang ditetapkan +vaultOptions.mount.mountPoint.driveLetter=Gunakan drive letter yang sudah ditetapkan vaultOptions.mount.mountPoint.custom=Path khusus vaultOptions.mount.mountPoint.directoryPickerButton=Pilih… vaultOptions.mount.mountPoint.directoryPickerTitle=Pilih direktori kosong @@ -370,5 +373,5 @@ passwordStrength.messageLabel.3=Kuat passwordStrength.messageLabel.4=Sangat kuat # Quit -quit.prompt=Keluar aplikasi? Terdapat brankas yg belum digembok. -quit.lockAndQuit=Gembok dan Keluar +quit.prompt=Keluar aplikasi? Masih ada vault yg belum dikunci. +quit.lockAndQuit=Kunci dan Keluar diff --git a/src/main/resources/i18n/strings_it.properties b/src/main/resources/i18n/strings_it.properties index 51adc6e18..c2aebe911 100644 --- a/src/main/resources/i18n/strings_it.properties +++ b/src/main/resources/i18n/strings_it.properties @@ -102,8 +102,10 @@ unlock.title=Sblocca "%s" unlock.passwordPrompt=Inserisci la password per "%s": unlock.savePassword=Ricorda la Password unlock.unlockBtn=Sblocca -## +## Select +unlock.chooseMasterkey.title=Seleziona Masterkey di "%s" unlock.chooseMasterkey.prompt=Impossibile trovare il file Masterkey per questa cassaforte alla sua posizione prevista. Sei pregato di sceglierlo manualmente. +unlock.chooseMasterkey.chooseBtn=Scegli… unlock.chooseMasterkey.filePickerTitle=Seleziona il File Masterkey ## Success unlock.success.message="%s" sbloccato correttamente! La tua cassaforte è ora accessibile tramite la sua unità virtuale. @@ -114,11 +116,14 @@ unlock.error.heading=Impossibile sbloccare la cassaforte ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Il punto di montaggio "%s" non è una cartella, non è vuoto o non esiste. unlock.error.invalidMountPoint.existing=Il punto di montaggio "%s" esiste già o la cartella madre è mancante. +unlock.error.invalidMountPoint.driveLetterOccupied=La lettera di unità "%s" è già in uso. # Lock ## Force +lock.forced.heading=Blocco non riuscito lock.forced.message=Il bloccaggio di "%s" è stato impedito dalle operazioni in sospeso o dai file aperti. Puoi forzare il blocco di questa cassaforte, tuttavia, interrompere I/O potrebbe risultare nella perdita dei dati non salvati. lock.forced.retryBtn=Riprova +lock.forced.forceBtn=Forza Blocco ## Failure lock.fail.heading=Blocco della cassaforte fallito. lock.fail.message=Impossibile bloccare la cassaforte "%s". Assicurati che il lavoro non salvato sia salvato altrove e che le importanti operazioni di Lettura/Scrittura siano terminate. Per chiudere la cassaforte, termina il processo di Cryptomator. diff --git a/src/main/resources/i18n/strings_ja.properties b/src/main/resources/i18n/strings_ja.properties index dfda53a95..944d05701 100644 --- a/src/main/resources/i18n/strings_ja.properties +++ b/src/main/resources/i18n/strings_ja.properties @@ -35,7 +35,7 @@ traymenu.vault.reveal=表示 addvaultwizard.title=金庫を追加 ## Welcome addvaultwizard.welcome.newButton=新しい金庫を作成 -addvaultwizard.welcome.existingButton=すでにある金庫を開く +addvaultwizard.welcome.existingButton=既存の金庫を開く ## New ### Name addvaultwizard.new.nameInstruction=金庫の名前を入力してください @@ -51,7 +51,7 @@ addvaultwizard.new.fileAlreadyExists=金庫名と同じ名前のファイルま addvaultwizard.new.locationDoesNotExist=指定されたパスのディレクトリが存在しないかアクセスできません addvaultwizard.new.locationIsNotWritable=指定されたパスに書き込み権限がありません addvaultwizard.new.locationIsOk=金庫に適した場所 -addvaultwizard.new.invalidName=無効な金庫の名前です。一般的なディレクトリの名前を検討してください。 +addvaultwizard.new.invalidName=使用できない金庫の名前です。一般的なディレクトリの名前にしてください。 ### Password addvaultwizard.new.createVaultBtn=金庫を作成 addvaultwizard.new.generateRecoveryKeyChoice=データにアクセスするにはパスワードが必須です。パスワードを紛失したときのためにリカバリーキーは必要ですか? @@ -102,18 +102,21 @@ unlock.title="%s" を解錠 unlock.passwordPrompt="%s" のパスワードを入力してください: unlock.savePassword=パスワードを記憶させる unlock.unlockBtn=解錠 -## +## Select +unlock.chooseMasterkey.title="%s" の Masterkey ファイルを選択 unlock.chooseMasterkey.prompt=必要な場所にこの金庫の masterkey ファイルがありませんでした。ファイルを手動で選択してください。 +unlock.chooseMasterkey.chooseBtn=選択... unlock.chooseMasterkey.filePickerTitle=Masterkey ファイルを選択 ## Success unlock.success.message="%s" の解錠に成功しました! 仮想ドライブから金庫にアクセス可能です。 unlock.success.rememberChoice=選択を記憶させて、再度表示しない -unlock.success.revealBtn=ドライブを表示 +unlock.success.revealBtn=金庫内を表示 ## Failure unlock.error.heading=金庫の解錠に失敗 ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=マウントポイントが空のディレクトリか存在していません: %s unlock.error.invalidMountPoint.existing=マウント ポイント "%s" が既に存在するか、親フォルダーがありません。 +unlock.error.invalidMountPoint.driveLetterOccupied=ドライブレター「%s」は既に使用されています。 # Lock ## Force @@ -187,21 +190,21 @@ health.fix.failTip=修正に失敗しました。詳細はログを参照して preferences.title=設定 ## General preferences.general=基本設定 -preferences.general.theme=外見 & 操作性 +preferences.general.theme=外見と操作性 preferences.general.theme.automatic=自動 preferences.general.theme.light=ライト preferences.general.theme.dark=ダーク -preferences.general.unlockThemes=ダークモードの解錠 +preferences.general.unlockThemes=ダークモードを解除 preferences.general.showMinimizeButton=最小化ボタンを表示 preferences.general.showTrayIcon=トレイアイコンを表示 (再起動が必要) preferences.general.startHidden=Cryptomator を開始したときウィンドウを隠す preferences.general.debugLogging=ログを有効にする -preferences.general.debugDirectory=ログ ファイルを表示 +preferences.general.debugDirectory=ログファイルを表示 preferences.general.autoStart=システム開始時にCryptomatorを起動する preferences.general.keychainBackend=次を利用してパスワードを保存する preferences.general.interfaceOrientation=インターフェイスの向き -preferences.general.interfaceOrientation.ltr=左から右 -preferences.general.interfaceOrientation.rtl=右から左 +preferences.general.interfaceOrientation.ltr=左横書き +preferences.general.interfaceOrientation.rtl=右横書き ## Volume preferences.volume=仮想ドライブ preferences.volume.type=マウント方法 @@ -214,11 +217,11 @@ preferences.updates.autoUpdateCheck=自動的に更新を確認する preferences.updates.checkNowBtn=今すぐ確認 preferences.updates.updateAvailable=利用可能なバージョン %s に更新します。 ## Contribution -preferences.contribute=サポートする +preferences.contribute=支援する preferences.contribute.registeredFor=サポーター証明書が %s に登録されました -preferences.contribute.noCertificate=Cryptomator を支援し、サポーター証明書を受け取りましょう。ライセンスキーに似ていますがフリーソフトを使う寄付者向けのキーです。 ;-) +preferences.contribute.noCertificate=Cryptomator を支援し、サポーター証明書を受け取りましょう。ライセンスキーに似ていますが自由ソフトウェアを使う寄付者向けのキーです。 ;-) preferences.contribute.getCertificate=まだ証明書を手に入れていませんか? 詳細はこちらから確認できます。 -preferences.contribute.promptText=サポーター証明書をここに張り付けてください +preferences.contribute.promptText=サポーター証明書をここに貼り付け #<-- Add entries for donations and code/translation/documentation contribution --> ## About @@ -274,7 +277,7 @@ main.vaultlist.contextMenu.reveal=ドライブを表示 main.vaultlist.addVaultBtn=金庫を追加 ## Vault Detail ### Welcome -main.vaultDetail.welcomeOnboarding=ファイル保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください: +main.vaultDetail.welcomeOnboarding=ファイルを保護するために Cryptomator を選んでいただきありがとうございます。ヘルプが必要であれば、スタートガイドをご覧ください: ### Locked main.vaultDetail.lockedStatus=施錠済み main.vaultDetail.unlockBtn=解錠... @@ -293,7 +296,7 @@ main.vaultDetail.throughput.kbps=%.1f kiB/s main.vaultDetail.throughput.mbps=%.1f MiB/s main.vaultDetail.stats=金庫の統計情報 ### Missing -main.vaultDetail.missing.info=Cryptomator はこのパスの金庫を見つけることができませんでした。 +main.vaultDetail.missing.info=Cryptomator はこの場所に金庫を見つけることができませんでした。 main.vaultDetail.missing.recheck=再確認 main.vaultDetail.missing.remove=金庫のリストから削除... main.vaultDetail.missing.changeLocation=金庫の場所を変更... @@ -343,7 +346,7 @@ vaultOptions.mount.mountPoint.directoryPickerTitle=空のディレクトリを vaultOptions.masterkey=パスワード vaultOptions.masterkey.changePasswordBtn=パスワードの変更 vaultOptions.masterkey.forgetSavedPasswordBtn=保存したパスワードを削除する -vaultOptions.masterkey.recoveryKeyExplanation=回復キーはパスワードを忘れてしまった場合でも、金庫へのアクセスを回復する唯一の手段です。 +vaultOptions.masterkey.recoveryKeyExplanation=回復キーはパスワードを忘れてしまった場合に、金庫へのアクセスを回復する唯一の手段です。 vaultOptions.masterkey.showRecoveryKeyBtn=回復キーを表示 vaultOptions.masterkey.recoverPasswordBtn=パスワードの回復 @@ -351,8 +354,8 @@ vaultOptions.masterkey.recoverPasswordBtn=パスワードの回復 # Recovery Key recoveryKey.title=回復キー recoveryKey.enterPassword.prompt="%s" の回復キーを表示するためのパスワードを入力してください: -recoveryKey.display.message="%s" へのアクセス権限を復元するリカバリーキー: -recoveryKey.display.StorageHints=とても安全な場所に保存してください、例えば:\n • パスワード管理ソフトに保存\n • USB フラッシュドライブに保存\n • 紙に印刷 +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 diff --git a/src/main/resources/i18n/strings_ko.properties b/src/main/resources/i18n/strings_ko.properties index 63b1d9111..fd89b1e99 100644 --- a/src/main/resources/i18n/strings_ko.properties +++ b/src/main/resources/i18n/strings_ko.properties @@ -98,8 +98,9 @@ unlock.title="%s" 잠금 해제 unlock.passwordPrompt="%s"의 비밀번호를 입력하십시요. unlock.savePassword=비밀번호 기억 unlock.unlockBtn=잠금해제 -## +## Select unlock.chooseMasterkey.prompt=추정되는 위치에서 이 Vault의 마스터 키를 찾지 못했습니다. 마스터 키 위치를 수동으로 선택하여 주십시요. +unlock.chooseMasterkey.chooseBtn=선택 unlock.chooseMasterkey.filePickerTitle=마스터키 파일 선택 ## Success unlock.success.message="%s"이(가) 성공적으로 잠금해제되었습니다. 이제 이 Vault를 가상드라이브로 접근할 수 있습니다. diff --git a/src/main/resources/i18n/strings_lv.properties b/src/main/resources/i18n/strings_lv.properties index 3025ea909..a08a92433 100644 --- a/src/main/resources/i18n/strings_lv.properties +++ b/src/main/resources/i18n/strings_lv.properties @@ -88,7 +88,8 @@ forgetPassword.confirmBtn=Aizmirst paroli # Unlock unlock.passwordPrompt=Ievadiet "%s" paroli: unlock.unlockBtn=Atslēgt -## +## Select +unlock.chooseMasterkey.chooseBtn=Izvēlies... unlock.chooseMasterkey.filePickerTitle=Atlasīt galveno atslēgas datni ## Success unlock.success.revealBtn=Atklāt disku diff --git a/src/main/resources/i18n/strings_mk.properties b/src/main/resources/i18n/strings_mk.properties index 1b7af9c4d..ca14a896f 100644 --- a/src/main/resources/i18n/strings_mk.properties +++ b/src/main/resources/i18n/strings_mk.properties @@ -25,7 +25,7 @@ # Forget Password # Unlock -## +## Select ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_nb.properties b/src/main/resources/i18n/strings_nb.properties index 9a3fb5fe5..150733868 100644 --- a/src/main/resources/i18n/strings_nb.properties +++ b/src/main/resources/i18n/strings_nb.properties @@ -13,6 +13,11 @@ generic.button.done=Ferdig generic.button.next=Neste generic.button.print=Skriv ut ## Error +generic.error.title=Feilkode %s +generic.error.instruction=Oops! Cryptomator forventet ikke at dette skulle skje. Du kan slå opp mulige løsninger for denne feilen. Hvis feilen ikke er rapportert så kan du gjerne gjøre det. +generic.error.hyperlink.lookup=Slå opp denne feilen +generic.error.hyperlink.report=Rapporter denne feilen +generic.error.technicalDetails=Detaljer: # Defaults defaults.vault.vaultName=Hvelv @@ -33,7 +38,7 @@ addvaultwizard.welcome.newButton=Lag et nytt hvelv addvaultwizard.welcome.existingButton=Åpne et eksisterende hvelv ## New ### Name -addvaultwizard.new.nameInstruction=Velg et navn på hvelvet +addvaultwizard.new.nameInstruction=Navngi hvelvet addvaultwizard.new.namePrompt=Navn på hvelvet ### Location addvaultwizard.new.locationInstruction=Hvor skal Cryptomator lagre de krypterte filene dine? @@ -43,6 +48,8 @@ addvaultwizard.new.directoryPickerLabel=Tilpasset lagringssted addvaultwizard.new.directoryPickerButton=Velg… addvaultwizard.new.directoryPickerTitle=Velg mappe addvaultwizard.new.fileAlreadyExists=En fil eller mappe med det hvelvnavnet finnes allerede +addvaultwizard.new.locationDoesNotExist=En mappe i den angitte stien finnes ikke eller kan ikke nås +addvaultwizard.new.locationIsNotWritable=Ingen skrivetilgang på den angitte stien addvaultwizard.new.locationIsOk=Egnet sted for hvelvet ditt addvaultwizard.new.invalidName=Ugyldig navn på hvelvet. Vennligst vurder et vanlig mappenavn. ### Password @@ -55,13 +62,13 @@ addvault.new.readme.storageLocation.fileName=VIKTIG.rtf addvault.new.readme.storageLocation.1=⚠️ HVELVFILER ⚠️ addvault.new.readme.storageLocation.2=Dette er hvelvets lagringssted. addvault.new.readme.storageLocation.3=IKKE -addvault.new.readme.storageLocation.4=• endre hvilke filer som helst i denne mappen eller -addvault.new.readme.storageLocation.5=• i denne mappen limer du inn alle filer du ønsker skal krypteres. +addvault.new.readme.storageLocation.4=• endre noen filer i denne mappen eller +addvault.new.readme.storageLocation.5=• lim inn filer du ønsker skal krypteres. addvault.new.readme.storageLocation.6=Hvis du vil kryptere filer og se innholdet i hvelvet, gjør du følgende: addvault.new.readme.storageLocation.7=1. Legg til dette hvelvet i Cryptomator. addvault.new.readme.storageLocation.8=2. Lås opp hvelvet i Cryptomator. addvault.new.readme.storageLocation.9=3. Åpne tilgangspunktet ved å klikke på "Gjør synlig" -knappen. -addvault.new.readme.storageLocation.10=Hvis du trenger hjelp, kan du gå til dokumentasjonen: %s +addvault.new.readme.storageLocation.10=Hvis du trenger hjelp, kan du se på dokumentasjonen: %s addvault.new.readme.accessLocation.fileName=VELKOMMEN.rtf addvault.new.readme.accessLocation.1=🔐️ KRYPTERT VOLUM 🔐️ addvault.new.readme.accessLocation.2=Dette er hvelvets lagringssted. @@ -69,6 +76,7 @@ addvault.new.readme.accessLocation.3=Alle filer som er lagt til i dette volumet, addvault.new.readme.accessLocation.4=Denne filen kan fjernes hvis ønskelig. ## Existing addvaultwizard.existing.chooseBtn=Velg… +addvaultwizard.existing.filePickerTitle=Velg hvelvfil ## Success addvaultwizard.success.nextStepsInstructions=Lagt til hvelvet "%s".\nDu må låse opp dette hvelvet for å få tilgang til eller legge til innhold. Alternativt kan du låse det opp på et hvilket som helst senere tidspunkt. addvaultwizard.success.unlockNow=Lås opp nå @@ -93,7 +101,8 @@ unlock.title=Lås opp "%s" unlock.passwordPrompt=Skriv inn passordet for "%s": unlock.savePassword=Husk passord unlock.unlockBtn=Lås opp -## +## Select +unlock.chooseMasterkey.chooseBtn=Velg… unlock.chooseMasterkey.filePickerTitle=Velg hovednøkkelfil ## Success unlock.success.rememberChoice=Husk valget - ikke vis dette igjen @@ -106,8 +115,10 @@ unlock.error.invalidMountPoint.existing=Monteringspunktet "%s" finnes enten alle # Lock ## Force +lock.forced.heading=Låsing mislyktes lock.forced.message=Låsing "%s" ble blokkert av ventende operasjoner eller åpne filer. Du kan tvinge låsing av dette hvelvet, men avbrytelse av I/O kan føre til tap av ulagrede data. lock.forced.retryBtn=Prøv igjen +lock.forced.forceBtn=Tving låsing ## Failure lock.fail.heading=Låsing av hvelvet mislyktes. lock.fail.message=Hvelvet "%s" kunne ikke låses. Forsikre deg om at ulagrede arbeider lagres andre steder, og at viktige lese/skrive-operasjoner er fullført. For å lukke hvelvet må du avbryte Cryptomatorprosessen. @@ -119,22 +130,22 @@ migration.start.prompt=Hvelvet ditt "%s" må oppdateres til et nyere format. Fø migration.start.confirm=Ja, hvelvet mitt er fullstendig synkronisert ## Run migration.run.enterPassword=Skriv inn passordet for "%s" -migration.run.startMigrationBtn=Overfør hvelv +migration.run.startMigrationBtn=Oppgrader hvelv migration.run.progressHint=Dette kan ta litt tid… ## Success -migration.success.nextStepsInstructions=Vellykket overføring av "%s".\nDu kan nå låse opp hvelvet ditt. +migration.success.nextStepsInstructions=Vellykket oppgradering av "%s".\nDu kan nå låse opp hvelvet ditt. migration.success.unlockNow=Lås opp nå ## Missing file system capabilities migration.error.missingFileSystemCapabilities.title=Filsystemet er ikke støttet -migration.error.missingFileSystemCapabilities.description=Overføringen ble ikke startet fordi hvelvet ditt ligger i et mangelfullt filsystem. +migration.error.missingFileSystemCapabilities.description=Oppgraderingen ble ikke startet fordi hvelvet ditt ligger i et mangelfullt filsystem. migration.error.missingFileSystemCapabilities.reason.LONG_FILENAMES=Filsystemet støtter ikke lange filnavn. migration.error.missingFileSystemCapabilities.reason.LONG_PATHS=Filsystemet støtter ikke lange søkestier. migration.error.missingFileSystemCapabilities.reason.READ_ACCESS=Filsystemet tillater ikke lesing. migration.error.missingFileSystemCapabilities.reason.WRITE_ACCESS=Filsystemet tillater ikke å bli skrevet på. ## Impossible -migration.impossible.heading=Kunne ikke overføre hvelvet +migration.impossible.heading=Kunne ikke oppgradere hvelvet migration.impossible.reason=Hvelvet kan ikke overføres automatisk fordi lagringsstedet eller tilgangspunkt ikke er kompatibelt. -migration.impossible.moreInfo=Hvelvet kan fortsatt åpnes hvis du bruker en eldre versjon. For instruksjoner om hvordan man overfører et hvelv, besøk +migration.impossible.moreInfo=Hvelvet kan fortsatt åpnes hvis du bruker en eldre versjon. For veiledning om hvordan man oppgraderer et hvelv, besøk # Health Check ## Start @@ -143,6 +154,7 @@ health.intro.remarkFix=Ikke alle problemer kan løses. health.fail.moreInfo=Mer informasjon ## Check Selection ## Detail view +health.check.exportBtn=Eksporter rapport ## Fix Application health.fix.fixBtn=Reparer health.fix.successTip=Vellykket reparering @@ -175,7 +187,7 @@ preferences.volume.webdav.scheme=WebDAV-ordning ## Updates preferences.updates=Oppdateringer preferences.updates.currentVersion=Gjeldende versjon: %s -preferences.updates.autoUpdateCheck=Se etter oppdateringer automatisk +preferences.updates.autoUpdateCheck=Se automatisk etter oppdateringer preferences.updates.checkNowBtn=Sjekk nå preferences.updates.updateAvailable=Oppdatering til versjon %s er tilgjengelig. ## Contribution @@ -220,7 +232,7 @@ main.closeBtn.tooltip=Lukk main.minimizeBtn.tooltip=Minimer main.preferencesBtn.tooltip=Innstillinger main.debugModeEnabled.tooltip=Feilsøkingsmodus er aktivert -main.donationKeyMissing.tooltip=Vennligst vurder å donere +main.donationKeyMissing.tooltip=Gjerne vurdér en donasjon ## Drag 'n' Drop main.dropZone.dropVault=Legg til dette hvelvet main.dropZone.unknownDragboardContent=Hvis du vil legge til et hvelv, kan du dra det til dette vinduet diff --git a/src/main/resources/i18n/strings_nl.properties b/src/main/resources/i18n/strings_nl.properties index 0f95c1619..72d7400f4 100644 --- a/src/main/resources/i18n/strings_nl.properties +++ b/src/main/resources/i18n/strings_nl.properties @@ -102,8 +102,10 @@ unlock.title=Ontgrendel "%s" unlock.passwordPrompt=Voer wachtwoord voor "%s" in: unlock.savePassword=Wachtwoord Onthouden unlock.unlockBtn=Ontgrendel -## +## Select +unlock.chooseMasterkey.title=Selecteer Masterkey van "%s" unlock.chooseMasterkey.prompt=Kon het sleutelbestand voor deze kluis niet vinden op de gewenste locatie. Kies het sleutelbestand handmatig. +unlock.chooseMasterkey.chooseBtn=Kies… unlock.chooseMasterkey.filePickerTitle=Selecteer het Masterkey-bestand ## Success unlock.success.message="%s" is met succes ontgrendeld! Uw kluis is nu toegankelijk via zijn virtuele schijf. @@ -114,6 +116,7 @@ unlock.error.heading=Kan kluis niet ontgrendelen ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Koppelpunt "%s" is geen map, is niet leeg of bestaat niet. unlock.error.invalidMountPoint.existing=Koppelpunt "%s" bestaat reeds of de bovenliggende map ontbreekt. +unlock.error.invalidMountPoint.driveLetterOccupied=Schijf "%s" is al in gebruik. # Lock ## Force diff --git a/src/main/resources/i18n/strings_nn.properties b/src/main/resources/i18n/strings_nn.properties index f1ae4c1a2..f37e4e92e 100644 --- a/src/main/resources/i18n/strings_nn.properties +++ b/src/main/resources/i18n/strings_nn.properties @@ -88,7 +88,8 @@ forgetPassword.confirmBtn=Gløym passord # Unlock unlock.passwordPrompt=Skriv inn passordet for "%s": unlock.unlockBtn=Låse opp -## +## Select +unlock.chooseMasterkey.chooseBtn=Vel… unlock.chooseMasterkey.filePickerTitle=Vel hovudnøkkelfil ## Success unlock.success.rememberChoice=Hugs valet - ikkje vis dette igjen diff --git a/src/main/resources/i18n/strings_pa.properties b/src/main/resources/i18n/strings_pa.properties index 394ab7355..1c7400930 100644 --- a/src/main/resources/i18n/strings_pa.properties +++ b/src/main/resources/i18n/strings_pa.properties @@ -90,7 +90,8 @@ forgetPassword.confirmBtn=ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ unlock.passwordPrompt="%s" ਲਈ ਪਾਸਵਰਡ ਦਿਓ: unlock.savePassword=ਪਾਸਵਰਡ ਯਾਦ ਰੱਖੋ unlock.unlockBtn=ਅਣ-ਲਾਕ ਕਰੋ -## +## Select +unlock.chooseMasterkey.chooseBtn=…ਚੁਣੋ unlock.chooseMasterkey.filePickerTitle=ਮਾਸਟਰ-ਕੁੰਜੀ ਫਾਇਲ ਚੁਣੋ ## Success unlock.success.rememberChoice=ਚੋਣਾਂ ਯਾਦ ਰੱਖੋ, ਇਹ ਮੁੜ ਕੇ ਨਾ ਵੇਖਾਓ diff --git a/src/main/resources/i18n/strings_pl.properties b/src/main/resources/i18n/strings_pl.properties index e823d166f..8d6eafbec 100644 --- a/src/main/resources/i18n/strings_pl.properties +++ b/src/main/resources/i18n/strings_pl.properties @@ -102,8 +102,10 @@ unlock.title=Odblokuj "%s" unlock.passwordPrompt=Wprowadź hasło dla "%s": unlock.savePassword=Zapamiętaj hasło unlock.unlockBtn=Odblokuj -## +## Select +unlock.chooseMasterkey.title=Wybierz Masterkey z "%s" unlock.chooseMasterkey.prompt=Brak pliku Masterkey dla tego sejfu w oczekiwanej lokalizacji. Proszę wybrać plik klucza ręcznie. +unlock.chooseMasterkey.chooseBtn=Wybierz… unlock.chooseMasterkey.filePickerTitle=Wybierz plik Masterkey ## Success unlock.success.message=Odblokowano "%s" pomyślnie! Twój sejf jest teraz dostępny za pomocą dysku wirtualnego. @@ -114,6 +116,7 @@ unlock.error.heading=Nie można odblokować sejfu ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Punkt montowania nie jest pustym katalogiem lub nie istnieje: %s unlock.error.invalidMountPoint.existing=Punkt montowania już istnieje lub brakuje katalogu nadrzędnego: %s +unlock.error.invalidMountPoint.driveLetterOccupied=Litera dysku "%s" jest już w użyciu. # Lock ## Force diff --git a/src/main/resources/i18n/strings_pt.properties b/src/main/resources/i18n/strings_pt.properties index 5f60e7025..5436a0b67 100644 --- a/src/main/resources/i18n/strings_pt.properties +++ b/src/main/resources/i18n/strings_pt.properties @@ -95,12 +95,15 @@ forgetPassword.confirmBtn=Esqueci a Senha # Unlock unlock.passwordPrompt=Insira a senha para "%s": unlock.unlockBtn=Destrancar -## +## Select +unlock.chooseMasterkey.title=Selecione a Masterkey de "%s" +unlock.chooseMasterkey.chooseBtn=Escolher… unlock.chooseMasterkey.filePickerTitle=Selecionar ficheiro MasterKey ## Success unlock.success.rememberChoice=Lembrar escolha, não mostrar isto novamente ## Failure ### Invalid Mount Point +unlock.error.invalidMountPoint.driveLetterOccupied=A letra de unidade "%s" já está sendo usada. # Lock ## Force diff --git a/src/main/resources/i18n/strings_pt_BR.properties b/src/main/resources/i18n/strings_pt_BR.properties index bd19fa5bf..350bc5e39 100644 --- a/src/main/resources/i18n/strings_pt_BR.properties +++ b/src/main/resources/i18n/strings_pt_BR.properties @@ -102,8 +102,10 @@ unlock.title=Desbloquear "%s" unlock.passwordPrompt=Digite a senha para "%s": unlock.savePassword=Lembrar Senha unlock.unlockBtn=Desbloquear -## +## Select +unlock.chooseMasterkey.title=Selecione o Masterkey de "%s" unlock.chooseMasterkey.prompt=Não foi possível encontrar o arquivo Masterkey deste cofre no local esperado. Por favor selecione o arquivo chave manualmente. +unlock.chooseMasterkey.chooseBtn=Escolher… unlock.chooseMasterkey.filePickerTitle=Selecionar Arquivo Masterkey ## Success unlock.success.message="%s" desbloqueado com êxito! Seu cofre agora está acessível na unidade virtual. @@ -114,6 +116,7 @@ unlock.error.heading=Não foi possível desbloquear o cofre ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=O ponto de montagem não é um diretório vazio ou não existe: %s unlock.error.invalidMountPoint.existing=Ponto de montagem/pasta já existe ou a pasta pai está faltando: %s +unlock.error.invalidMountPoint.driveLetterOccupied=Letra de unidade "%s" já está em uso. # Lock ## Force diff --git a/src/main/resources/i18n/strings_ro.properties b/src/main/resources/i18n/strings_ro.properties index 2663460b0..d319b87d1 100644 --- a/src/main/resources/i18n/strings_ro.properties +++ b/src/main/resources/i18n/strings_ro.properties @@ -95,8 +95,9 @@ unlock.title=Deblocare "%s" unlock.passwordPrompt=Introduceți parola pentru "%s": unlock.savePassword=Memorează parola unlock.unlockBtn=Deblocați -## +## Select unlock.chooseMasterkey.prompt=Nu s-a putut găsi fișierul masterkey pentru acest seif la locația așteptată. Vă rugăm să alegeți manual fișierul cheie. +unlock.chooseMasterkey.chooseBtn=Alege… unlock.chooseMasterkey.filePickerTitle=Selectaţi fişierul Masterkey ## Success unlock.success.message=Deblocat "%s" cu succes! Seiful dvs. este acum accesibil prin unitatea sa virtuală. diff --git a/src/main/resources/i18n/strings_ru.properties b/src/main/resources/i18n/strings_ru.properties index 22b529478..992e96f5f 100644 --- a/src/main/resources/i18n/strings_ru.properties +++ b/src/main/resources/i18n/strings_ru.properties @@ -14,7 +14,7 @@ generic.button.next=Далее generic.button.print=Печать ## Error generic.error.title=Ошибка: %s -generic.error.instruction=Ой! Криптоматор не ожидал, что так произойдет. Вы можете поискать существующие решения этой ошибки. Или если об этом еще не сообщалось, не стесняйтесь сделать это. +generic.error.instruction=Произошла непредвиденная ситуация. Попробуйте найти уже имеющиеся решения этой ошибки. Если об этой ошибке ещё не сообщали, то сделайте это. generic.error.hyperlink.lookup=Искать ошибку generic.error.hyperlink.report=Сообщить об ошибке generic.error.technicalDetails=Подробности: @@ -95,15 +95,17 @@ changepassword.finalConfirmation=Я понимаю, что не смогу по # Forget Password forgetPassword.title=Не помню пароль forgetPassword.information=Сохранённый пароль от этого хранилища будет удалён из вашей связки ключей. -forgetPassword.confirmBtn=Забыть сохранённый пароль +forgetPassword.confirmBtn=Забыть пароль # Unlock unlock.title=Разблокировать "%s" unlock.passwordPrompt=Введите пароль для "%s" unlock.savePassword=Запомнить пароль unlock.unlockBtn=Разблокировать -## +## Select +unlock.chooseMasterkey.title=Выберите файл MasterKey для "%s" unlock.chooseMasterkey.prompt=Не удалось найти файл MasterKey для этого хранилища в ожидаемом месте. Выберите ключевой файл вручную. +unlock.chooseMasterkey.chooseBtn=Выбрать… unlock.chooseMasterkey.filePickerTitle=Выберите файл MasterKey ## Success unlock.success.message=Разблокировка "%s" успешно выполнена! Доступ в хранилище открыт через его виртуальный диск. @@ -114,6 +116,7 @@ unlock.error.heading=Невозможно разблокировать хран ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Точка монтирования %s - не папка, не пуста или не существует. unlock.error.invalidMountPoint.existing=Точка монтирования %s уже существует, либо отсутствует родительская папка. +unlock.error.invalidMountPoint.driveLetterOccupied=Буква диска "%s" уже используется. # Lock ## Force diff --git a/src/main/resources/i18n/strings_sk.properties b/src/main/resources/i18n/strings_sk.properties index ac52f4a22..f948d4f0e 100644 --- a/src/main/resources/i18n/strings_sk.properties +++ b/src/main/resources/i18n/strings_sk.properties @@ -102,8 +102,10 @@ unlock.title=Odomknúť "%s" unlock.passwordPrompt=Zadajte heslo pre "%s": unlock.savePassword=Odomknúť.uložiťHeslo unlock.unlockBtn=Odomknúť -## +## Select +unlock.chooseMasterkey.title=Vyberte súbor s hlavným kľúčom "%s" unlock.chooseMasterkey.prompt=Nemožno nájsť hlavný kľúčový súbor pre tento trezor na jeho očakávanom mieste. Prosím zvoľte kľúčový súbor manuálne. +unlock.chooseMasterkey.chooseBtn=Vybrať… unlock.chooseMasterkey.filePickerTitle=Zvoľte hlavný kľúčový súbor ## Success unlock.success.message=Odomknutie "%s" úspešné! Váš trezor je už prístupný cez jeho virtuálny disk. @@ -114,6 +116,7 @@ unlock.error.heading=Nie je možné odomknúť trezor ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Bod pripojenia "%s" nie je adresár, nie je prázdny alebo neexistuje. unlock.error.invalidMountPoint.existing=Bod pripojenia "%s" už existuje alebo chýba nadradený adresár. +unlock.error.invalidMountPoint.driveLetterOccupied=Písmeno disku %s sa už používa. # Lock ## Force diff --git a/src/main/resources/i18n/strings_sr.properties b/src/main/resources/i18n/strings_sr.properties index f01d76a67..fad56439c 100644 --- a/src/main/resources/i18n/strings_sr.properties +++ b/src/main/resources/i18n/strings_sr.properties @@ -94,7 +94,8 @@ forgetPassword.confirmBtn=Заборави лозинку unlock.passwordPrompt=Унесите лозинку за "%s": unlock.savePassword=Запамти лозинку unlock.unlockBtn=Откључај -## +## Select +unlock.chooseMasterkey.chooseBtn=Изабери… unlock.chooseMasterkey.filePickerTitle=Изабери "Masterkey" датотеку ## Success unlock.success.message=Успешно сте откључали "%s"! Ваш сеф је сада доступан путем свог виртуелног диска. diff --git a/src/main/resources/i18n/strings_sr_Latn.properties b/src/main/resources/i18n/strings_sr_Latn.properties index 83b9161a9..5cf642d42 100644 --- a/src/main/resources/i18n/strings_sr_Latn.properties +++ b/src/main/resources/i18n/strings_sr_Latn.properties @@ -94,7 +94,8 @@ forgetPassword.confirmBtn=Zaboravi lozinku unlock.passwordPrompt=Unesite lozinku za "%s": unlock.savePassword=Zapamti lozinku unlock.unlockBtn=Otključaj -## +## Select +unlock.chooseMasterkey.chooseBtn=Izaberi… unlock.chooseMasterkey.filePickerTitle=Izaberi "Masterkey" datoteku ## Success unlock.success.message=Uspešno ste otključali "%s"! Vaš sef je sada dostupan putem ovog virtuelnog diska. diff --git a/src/main/resources/i18n/strings_sv.properties b/src/main/resources/i18n/strings_sv.properties index 547a8b8fa..3c872c488 100644 --- a/src/main/resources/i18n/strings_sv.properties +++ b/src/main/resources/i18n/strings_sv.properties @@ -102,8 +102,10 @@ unlock.title=Lås upp "%s" unlock.passwordPrompt=Ange lösenord för "%s": unlock.savePassword=Kom ihåg lösenord unlock.unlockBtn=Lås upp -## +## Select +unlock.chooseMasterkey.title=Välj Masterkey för "%s" unlock.chooseMasterkey.prompt=Kunde inte hitta Masterkey-filen för detta valv på förväntad plats. Välj filen manuellt. +unlock.chooseMasterkey.chooseBtn=Välj… unlock.chooseMasterkey.filePickerTitle=Välj Masterkey-fil ## Success unlock.success.message="%s" upplåst! Ditt valv är nu åtkomligt från den virtuella enheten. @@ -114,11 +116,14 @@ unlock.error.heading=Kan inte låsa upp valvet ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Monteringspunkten "%s" saknas eller är inte tom. unlock.error.invalidMountPoint.existing=Monteringspunkten "%s" finns redan eller så saknas överordnad mapp. +unlock.error.invalidMountPoint.driveLetterOccupied=Enhetsbokstav "%s" används redan. # Lock ## Force +lock.forced.heading=Kunde inte låsa lock.forced.message=Låsning av "%s" förhindras av pågående operationer eller öppna filer. Du kan tvinga låsning av detta valv, men det kan resultera i förlust av osparade data. lock.forced.retryBtn=Försök igen +lock.forced.forceBtn=Tvinga låsning ## Failure lock.fail.heading=Låsning av valv misslyckades. lock.fail.message=Valvet "%s" kunde inte låsas. Se till att osparat arbete sparas någon annanstans och viktiga läs- och skrivfunktioner är klara. För att stänga valvet, avsluta Cryptomator-processen. diff --git a/src/main/resources/i18n/strings_ta.properties b/src/main/resources/i18n/strings_ta.properties index 6b5ea4bc9..c6a85fe76 100644 --- a/src/main/resources/i18n/strings_ta.properties +++ b/src/main/resources/i18n/strings_ta.properties @@ -25,7 +25,7 @@ # Forget Password # Unlock -## +## Select ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_te.properties b/src/main/resources/i18n/strings_te.properties index e2ce80d76..8dc7b6511 100644 --- a/src/main/resources/i18n/strings_te.properties +++ b/src/main/resources/i18n/strings_te.properties @@ -25,7 +25,7 @@ # Forget Password # Unlock -## +## Select ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_th.properties b/src/main/resources/i18n/strings_th.properties index 1b7af9c4d..9240aa470 100644 --- a/src/main/resources/i18n/strings_th.properties +++ b/src/main/resources/i18n/strings_th.properties @@ -2,20 +2,78 @@ # 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=ข้อผิดพลาด: %s +generic.error.instruction=ไม่นะ! Cryptomator ไม่ได้ต้องการให้สิ่งนี้เกิดขึ้น คุณสามารถค้นหาข้อผิดพลาดนี้ได้ หากค้นหาไม่เจอ โปรดรายงาน +generic.error.hyperlink.lookup=ค้นหาข้อผิดพลาดนี้ +generic.error.hyperlink.report=รายงานข้อผิดพลาดนี้ +generic.error.technicalDetails=ราย​ละเอียด: # Defaults +defaults.vault.vaultName=Vault # 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 ควรเก็บไฟล์ของคุณไว้ที่ไหน? +addvaultwizard.new.locationLabel=ที่จัดเก็บข้อมูล +addvaultwizard.new.locationPrompt=… +addvaultwizard.new.directoryPickerLabel=ตำแหน่งที่กำหนดเอง +addvaultwizard.new.directoryPickerButton=เลือก... +addvaultwizard.new.directoryPickerTitle=เลือกไดเรกทอรี +addvaultwizard.new.fileAlreadyExists=คำเตือน: มีชื่อแฟ้มหรือไดเรกทอรีนี้อยู่แล้ว +addvaultwizard.new.locationDoesNotExist=ไม่มีไดเรกทอรีในตำแหน่งที่คุณเลือก หรือไม่สามารถเข้าถึงได้ +addvaultwizard.new.locationIsNotWritable=ไม่มีสิทธิ์ในการเขียนตำแหน่งที่คุณเลือก +addvaultwizard.new.locationIsOk=ตำแหน่งนี้เหมาะสมสำหรับ Vault ของคุณ +addvaultwizard.new.invalidName=ไม่สามารถใช้ชื่อนี้ได้ ### 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 +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 ของคุณ ## Existing +addvaultwizard.existing.chooseBtn=เลือก... ## Success # Remove Vault @@ -25,7 +83,9 @@ # Forget Password # Unlock -## +unlock.unlockBtn=ปลดล็อก +## Select +unlock.chooseMasterkey.chooseBtn=เลือก... ## Success ## Failure ### Invalid Mount Point @@ -49,6 +109,7 @@ ## Fix Application # Preferences +preferences.title=การตั้งค่า ## General ## Volume ## Updates @@ -62,12 +123,17 @@ ## Write # Main Window +main.closeBtn.tooltip=ปิด +main.preferencesBtn.tooltip=การตั้งค่า ## Drag 'n' Drop ## Vault List +main.vaultlist.contextMenu.lock=ล็อก +main.vaultlist.addVaultBtn=เพิ่ม Vault ## Vault Detail ### Welcome ### Locked ### Unlocked +main.vaultDetail.lockBtn=ล็อก ### Missing ### Needs Migration ### Error @@ -76,8 +142,10 @@ # Vault Options ## General +vaultOptions.general.vaultName=ชื่อ Vault ## Mount +vaultOptions.mount.mountPoint.directoryPickerButton=เลือก... ## Master Key diff --git a/src/main/resources/i18n/strings_tr.properties b/src/main/resources/i18n/strings_tr.properties index ecb4fff5f..d0a16c69b 100644 --- a/src/main/resources/i18n/strings_tr.properties +++ b/src/main/resources/i18n/strings_tr.properties @@ -102,8 +102,10 @@ unlock.title="%s" kilidini aç unlock.passwordPrompt="%s" için şifre girin: unlock.savePassword=Şifreyi Hatırla unlock.unlockBtn=Kilidi Aç -## +## Select +unlock.chooseMasterkey.title="%s" ait Ana anahtarı seçin unlock.chooseMasterkey.prompt=Bu kasa için masterkey dosyası beklenen konumda bulunamadı. Lütfen anahtar dosyasını manuel olarak seçin. +unlock.chooseMasterkey.chooseBtn=Seç… unlock.chooseMasterkey.filePickerTitle=Masterkey Dosyasını Seç ## Success unlock.success.message="%s" 'nin kilidi başarıyla açıldı! Kasanız şimdi sanal sürücüsü ile erişilebilir durumda. @@ -114,6 +116,7 @@ unlock.error.heading=Kasanın kilidi açılamıyor ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=Bağlantı noktası boş bir dizin değil veya mevcut değil: %s unlock.error.invalidMountPoint.existing=Bağlama noktası / klasör zaten var veya ana klasör eksik: %s +unlock.error.invalidMountPoint.driveLetterOccupied="%s" sürücü adı zaten kullanılıyor. # Lock ## Force diff --git a/src/main/resources/i18n/strings_uk.properties b/src/main/resources/i18n/strings_uk.properties index ff6e674e8..101eb5763 100644 --- a/src/main/resources/i18n/strings_uk.properties +++ b/src/main/resources/i18n/strings_uk.properties @@ -62,7 +62,8 @@ addvaultwizard.existing.chooseBtn=Обрати… # Unlock unlock.unlockBtn=Розблокувати -## +## Select +unlock.chooseMasterkey.chooseBtn=Обрати… ## Success ## Failure ### Invalid Mount Point diff --git a/src/main/resources/i18n/strings_zh.properties b/src/main/resources/i18n/strings_zh.properties index fbd2fa861..0b32a9665 100644 --- a/src/main/resources/i18n/strings_zh.properties +++ b/src/main/resources/i18n/strings_zh.properties @@ -55,7 +55,7 @@ addvaultwizard.new.invalidName=无效的保险库名称,请考虑一个常规 ### Password addvaultwizard.new.createVaultBtn=创建保险库 addvaultwizard.new.generateRecoveryKeyChoice=如果没有密码,您将无法访问您的数据。您想要一个恢复密钥来以防您丢失密码吗? -addvaultwizard.new.generateRecoveryKeyChoice.yes=是的请,有备无患 +addvaultwizard.new.generateRecoveryKeyChoice.yes=好的,有备无患 addvaultwizard.new.generateRecoveryKeyChoice.no=不,谢谢。我不会丢失密码的 ### Information addvault.new.readme.storageLocation.fileName=重要.rtf @@ -102,8 +102,10 @@ unlock.title=解锁 "%s" unlock.passwordPrompt=输入 "%s" 的密码 unlock.savePassword=记住密码 unlock.unlockBtn=解锁 -## +## Select +unlock.chooseMasterkey.title=选择 %s 的 Masterkey 文件 unlock.chooseMasterkey.prompt=在指定路径找不到该保险库的 masterkey 文件,请手动选择密钥文件 +unlock.chooseMasterkey.chooseBtn=选择... unlock.chooseMasterkey.filePickerTitle=选择 Masterkey 文件 ## Success unlock.success.message=已成功解锁 "%s"! 您现在可以通过其虚拟驱动器访问它 @@ -114,6 +116,7 @@ unlock.error.heading=无法解锁保险库 ### Invalid Mount Point unlock.error.invalidMountPoint.notExisting=挂载点 "%s" 不是目录、非空或不存在 unlock.error.invalidMountPoint.existing=挂载点 "%s" 已存在或缺少父文件夹 +unlock.error.invalidMountPoint.driveLetterOccupied=驱动器号 %s 已被占用。 # Lock ## Force @@ -215,10 +218,10 @@ preferences.updates.checkNowBtn=立即检查 preferences.updates.updateAvailable=可更新到版本 %s ## Contribution preferences.contribute=支持我们 -preferences.contribute.registeredFor=已为 %s 注册支持者证书 +preferences.contribute.registeredFor=已注册署名 %s 的赞助者证书 preferences.contribute.noCertificate=支持 Cryptomator 并获得一份支持者证书。它类似于许可证密钥,特别之处是提供给使用免费软件的牛人的 ;-) preferences.contribute.getCertificate=还没有该证书吗?了解您如何获取 -preferences.contribute.promptText=请在此粘贴支持者证书代码 +preferences.contribute.promptText=在这里粘贴赞助者证书码 #<-- Add entries for donations and code/translation/documentation contribution --> ## About diff --git a/src/main/resources/i18n/strings_zh_HK.properties b/src/main/resources/i18n/strings_zh_HK.properties new file mode 100644 index 000000000..ca14a896f --- /dev/null +++ b/src/main/resources/i18n/strings_zh_HK.properties @@ -0,0 +1,88 @@ +# Locale Specific CSS files such as CJK, RTL,... + +# Generics +## Button +## Error + +# Defaults + +# Tray Menu + +# Add Vault Wizard +## Welcome +## New +### Name +### Location +### Password +### Information +## Existing +## Success + +# Remove Vault + +# Change Password + +# Forget Password + +# Unlock +## Select +## Success +## Failure +### Invalid Mount Point + +# Lock +## Force +## Failure + +# Migration +## Start +## Run +## Success +## Missing file system capabilities +## Impossible + +# Health Check +## Start +## Start Failure +## Check Selection +## Detail view +## Fix Application + +# Preferences +## General +## Volume +## Updates +## Contribution +#<-- Add entries for donations and code/translation/documentation contribution --> + +## About + +# Vault Statistics +## Read +## Write + +# Main Window +## Drag 'n' Drop +## Vault List +## Vault Detail +### Welcome +### Locked +### Unlocked +### Missing +### Needs Migration +### Error + +# Wrong File Alert + +# Vault Options +## General + +## Mount +## Master Key + + +# Recovery Key + +# New Password + +# Quit diff --git a/src/main/resources/i18n/strings_zh_TW.properties b/src/main/resources/i18n/strings_zh_TW.properties index cf77ffbbe..7b488f003 100644 --- a/src/main/resources/i18n/strings_zh_TW.properties +++ b/src/main/resources/i18n/strings_zh_TW.properties @@ -102,8 +102,10 @@ unlock.title=解鎖 %s unlock.passwordPrompt=輸入 "%s" 的密碼: unlock.savePassword=記住密碼 unlock.unlockBtn=解鎖 -## +## Select +unlock.chooseMasterkey.title=选择“%s"的主密钥 unlock.chooseMasterkey.prompt=無法在其預期位置找到此保管庫的主密鑰文件。請手動選擇密鑰文件。 +unlock.chooseMasterkey.chooseBtn=選取 unlock.chooseMasterkey.filePickerTitle=選擇主金鑰檔案 ## Success unlock.success.message=成功解鎖 "%s"!您現在可以存存取您的加密檔案庫。 From 957f067e9be0153a0f69f463e3358a0087b06639 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 23 Mar 2022 14:41:29 +0100 Subject: [PATCH 05/40] update license info [ci skip] --- src/main/resources/license/THIRD-PARTY.txt | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/resources/license/THIRD-PARTY.txt b/src/main/resources/license/THIRD-PARTY.txt index fb8e73f69..839562428 100644 --- a/src/main/resources/license/THIRD-PARTY.txt +++ b/src/main/resources/license/THIRD-PARTY.txt @@ -25,12 +25,12 @@ Cryptomator uses 40 third-party dependencies under the following licenses: - Apache Commons Lang (org.apache.commons:commons-lang3:3.12.0 - https://commons.apache.org/proper/commons-lang/) - Apache HttpCore (org.apache.httpcomponents:httpcore:4.4.14 - http://hc.apache.org/httpcomponents-core-ga) - Jackrabbit WebDAV Library (org.apache.jackrabbit:jackrabbit-webdav:2.21.5 - http://jackrabbit.apache.org/jackrabbit-webdav/) - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.6 - https://eclipse.org/jetty/jetty-http) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.6 - https://eclipse.org/jetty/jetty-io) - - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.6 - https://eclipse.org/jetty/jetty-security) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.6 - https://eclipse.org/jetty/jetty-server) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.6 - https://eclipse.org/jetty/jetty-servlet) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.6 - https://eclipse.org/jetty/jetty-util) + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.8 - https://eclipse.org/jetty/jetty-http) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.8 - https://eclipse.org/jetty/jetty-io) + - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.8 - https://eclipse.org/jetty/jetty-security) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.8 - https://eclipse.org/jetty/jetty-server) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.8 - https://eclipse.org/jetty/jetty-servlet) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.8 - https://eclipse.org/jetty/jetty-util) - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) Apache-2.0: - Gson (com.google.code.gson:gson:2.9.0 - https://github.com/google/gson/gson) @@ -45,12 +45,12 @@ Cryptomator uses 40 third-party dependencies under the following licenses: Eclipse Public License - Version 1.0: - Jetty :: Servlet API and Schemas for JPMS and OSGi (org.eclipse.jetty.toolchain:jetty-servlet-api:4.0.6 - https://eclipse.org/jetty/jetty-servlet-api) Eclipse Public License - Version 2.0: - - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.6 - https://eclipse.org/jetty/jetty-http) - - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.6 - https://eclipse.org/jetty/jetty-io) - - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.6 - https://eclipse.org/jetty/jetty-security) - - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.6 - https://eclipse.org/jetty/jetty-server) - - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.6 - https://eclipse.org/jetty/jetty-servlet) - - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.6 - https://eclipse.org/jetty/jetty-util) + - Jetty :: Http Utility (org.eclipse.jetty:jetty-http:10.0.8 - https://eclipse.org/jetty/jetty-http) + - Jetty :: IO Utility (org.eclipse.jetty:jetty-io:10.0.8 - https://eclipse.org/jetty/jetty-io) + - Jetty :: Security (org.eclipse.jetty:jetty-security:10.0.8 - https://eclipse.org/jetty/jetty-security) + - Jetty :: Server Core (org.eclipse.jetty:jetty-server:10.0.8 - https://eclipse.org/jetty/jetty-server) + - Jetty :: Servlet Handling (org.eclipse.jetty:jetty-servlet:10.0.8 - https://eclipse.org/jetty/jetty-servlet) + - Jetty :: Utilities (org.eclipse.jetty:jetty-util:10.0.8 - https://eclipse.org/jetty/jetty-util) Eclipse Public License - v 1.0: - Logback Classic Module (ch.qos.logback:logback-classic:1.2.11 - http://logback.qos.ch/logback-classic) - Logback Core Module (ch.qos.logback:logback-core:1.2.11 - http://logback.qos.ch/logback-core) From 874f0ee6113ea3fbe6360cba96884f06da5d0d62 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Wed, 23 Mar 2022 15:19:11 +0100 Subject: [PATCH 06/40] preparing 1.6.7 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 880c07f73..b304a8bbe 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.cryptomator cryptomator - 1.7.0-SNAPSHOT + 1.6.7 Cryptomator Desktop App From 1f0c12ef7a01e1cdd807a319058676486e2b96f5 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 24 Mar 2022 12:27:38 +0100 Subject: [PATCH 07/40] Fix wrong debug message --- .../masterkeyfile/PassphraseEntryController.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/PassphraseEntryController.java b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/PassphraseEntryController.java index 35b1b1903..24afab78a 100644 --- a/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/PassphraseEntryController.java +++ b/src/main/java/org/cryptomator/ui/keyloading/masterkeyfile/PassphraseEntryController.java @@ -129,8 +129,11 @@ public class PassphraseEntryController implements FxController { } private void windowClosed(WindowEvent windowEvent) { - LOG.debug("Unlock canceled by user."); - result.cancel(true); + if(!result.isDone()) { + result.cancel(true); + LOG.debug("Unlock canceled by user."); + } + } @FXML From 983c35eb379975cc616823755d26f269ffaee833 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 24 Mar 2022 17:35:36 +0100 Subject: [PATCH 08/40] Remove Codacy badge and ci action --- .github/workflows/build.yml | 7 ------- README.md | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 97d46ae9e..f56e590c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -43,13 +43,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - name: Upload code coverage report - id: codacyCoverageReporter - if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'pr:safe')" - run: bash <(curl -Ls https://coverage.codacy.com/get.sh) - env: - CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} - continue-on-error: true - name: Draft a release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 diff --git a/README.md b/README.md index 7ffb1fba1..ded200883 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build](https://github.com/cryptomator/cryptomator/workflows/Build/badge.svg)](https://github.com/cryptomator/cryptomator/actions?query=workflow%3ABuild) [![Known Vulnerabilities](https://snyk.io/test/github/cryptomator/cryptomator/badge.svg)](https://snyk.io/test/github/cryptomator/cryptomator) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/2a0adf3cec6a4143b91035d3924178f1)](https://www.codacy.com/gh/cryptomator/cryptomator/dashboard) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=cryptomator_cryptomator&metric=alert_status)](https://sonarcloud.io/dashboard?id=cryptomator_cryptomator) [![Twitter](https://img.shields.io/badge/twitter-@Cryptomator-blue.svg?style=flat)](http://twitter.com/Cryptomator) [![Crowdin](https://badges.crowdin.net/cryptomator/localized.svg)](https://translate.cryptomator.org/) [![Latest Release](https://img.shields.io/github/release/cryptomator/cryptomator.svg)](https://github.com/cryptomator/cryptomator/releases/latest) From 49e90515a1c5467e9e525531d819b5748f9f5b6e Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Thu, 24 Mar 2022 17:49:12 +0100 Subject: [PATCH 09/40] Fixes #2125 --- .github/workflows/win-exe.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 25a0575fb..61b5c9809 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -80,6 +80,7 @@ jobs: --app-version "${{ steps.versions.outputs.semVerNum }}.${{ steps.versions.outputs.revNum }}" --java-options "-Xss5m" --java-options "-Xmx256m" + --java-options "-Dcryptomator.appVersion=\"${{ steps.versions.outputs.semVerStr }}\"" --java-options "-Dfile.encoding=\"utf-8\"" --java-options "-Dcryptomator.logDir=\"~/AppData/Roaming/Cryptomator\"" --java-options "-Dcryptomator.pluginDir=\"~/AppData/Roaming/Cryptomator/Plugins\"" From 6da8fc1f704a01808f27e60071a8581d7dd14d4f Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 25 Mar 2022 08:20:18 +0100 Subject: [PATCH 10/40] optionally specify version in manually dispatched builds --- .github/workflows/appimage.yml | 7 +++++++ .github/workflows/debian.yml | 6 ++++++ .github/workflows/mac-dmg.yml | 7 +++++++ .github/workflows/win-exe.yml | 7 +++++++ 4 files changed, 27 insertions(+) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index aab954476..ce23bac60 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -4,6 +4,10 @@ on: release: types: [published] workflow_dispatch: + inputs: + version: + description: 'Version' + required: false env: JAVA_VERSION: 17 @@ -28,6 +32,9 @@ jobs: if [[ $GITHUB_REF =~ refs/tags/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then SEM_VER_STR=${GITHUB_REF##*/} mvn versions:set -DnewVersion=${SEM_VER_STR} + elif [[ "${{ github.event.inputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR="${{ github.event.inputs.version }}" + mvn versions:set -DnewVersion=${SEM_VER_STR} else SEM_VER_STR=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` fi diff --git a/.github/workflows/debian.yml b/.github/workflows/debian.yml index f7893bbaa..fb8b3a423 100644 --- a/.github/workflows/debian.yml +++ b/.github/workflows/debian.yml @@ -10,6 +10,9 @@ on: required: true default: false type: boolean + version: + description: 'Version' + required: false env: JAVA_VERSION: 17 @@ -38,6 +41,9 @@ jobs: if [[ $GITHUB_REF =~ refs/tags/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then SEM_VER_STR=${GITHUB_REF##*/} mvn versions:set -DnewVersion=${SEM_VER_STR} + elif [[ "${{ github.event.inputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR="${{ github.event.inputs.version }}" + mvn versions:set -DnewVersion=${SEM_VER_STR} else SEM_VER_STR=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` fi diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml index 66af92d6d..3e1e6ceac 100644 --- a/.github/workflows/mac-dmg.yml +++ b/.github/workflows/mac-dmg.yml @@ -4,6 +4,10 @@ on: release: types: [published] workflow_dispatch: + inputs: + version: + description: 'Version' + required: false env: JAVA_VERSION: 17 @@ -28,6 +32,9 @@ jobs: if [[ $GITHUB_REF =~ refs/tags/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then SEM_VER_STR=${GITHUB_REF##*/} mvn versions:set -DnewVersion=${SEM_VER_STR} + elif [[ "${{ github.event.inputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR="${{ github.event.inputs.version }}" + mvn versions:set -DnewVersion=${SEM_VER_STR} else SEM_VER_STR=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` fi diff --git a/.github/workflows/win-exe.yml b/.github/workflows/win-exe.yml index 61b5c9809..ec5b60ed4 100644 --- a/.github/workflows/win-exe.yml +++ b/.github/workflows/win-exe.yml @@ -4,6 +4,10 @@ on: release: types: [published] workflow_dispatch: + inputs: + version: + description: 'Version' + required: false env: JAVA_VERSION: 17 @@ -33,6 +37,9 @@ jobs: if [[ $GITHUB_REF =~ refs/tags/[0-9]+\.[0-9]+\.[0-9]+.* ]]; then SEM_VER_STR=${GITHUB_REF##*/} mvn versions:set -DnewVersion=${SEM_VER_STR} + elif [[ "${{ github.event.inputs.version }}" =~ [0-9]+\.[0-9]+\.[0-9]+.* ]]; then + SEM_VER_STR="${{ github.event.inputs.version }}" + mvn versions:set -DnewVersion=${SEM_VER_STR} else SEM_VER_STR=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` fi From 73bbcdcca12c444cf51f018a5440f6dedcc4ce3e Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Mon, 28 Mar 2022 17:52:39 +0200 Subject: [PATCH 11/40] start javafx via `Application.launch(...)` again --- src/main/java/module-info.java | 1 + .../cryptomator/ui/fxapp/FxApplication.java | 7 +-- .../ui/fxapp/FxApplicationComponent.java | 11 ++++ .../ui/fxapp/FxApplicationModule.java | 7 --- .../ui/launcher/FxApplicationStarter.java | 51 +++++++++++++------ .../ui/launcher/UiLauncherModule.java | 6 --- .../ui/mainwindow/MainWindowModule.java | 11 ---- .../ui/mainwindow/VaultDetailController.java | 5 +- .../MigrationImpossibleController.java | 9 ++-- 9 files changed, 57 insertions(+), 51 deletions(-) diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index f13308be5..7441a629d 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -47,6 +47,7 @@ module org.cryptomator.desktop { opens org.cryptomator.ui.health to javafx.fxml; opens org.cryptomator.ui.keyloading.masterkeyfile to javafx.fxml; opens org.cryptomator.ui.lock to javafx.fxml; + opens org.cryptomator.ui.launcher to javafx.graphics; opens org.cryptomator.ui.mainwindow to javafx.fxml; opens org.cryptomator.ui.migration to javafx.fxml; opens org.cryptomator.ui.preferences to javafx.fxml; diff --git a/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java b/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java index 1812d38bd..d2b11147a 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java +++ b/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java @@ -41,7 +41,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @FxApplicationScoped -public class FxApplication extends Application { +public class FxApplication { private static final Logger LOG = LoggerFactory.getLogger(FxApplication.class); @@ -87,11 +87,6 @@ public class FxApplication extends Application { loadSelectedStyleSheet(settings.theme().get()); } - @Override - public void start(Stage stage) { - throw new UnsupportedOperationException("Use start() instead."); - } - private void hasVisibleStagesChanged(@SuppressWarnings("unused") ObservableValue observableValue, @SuppressWarnings("unused") boolean oldValue, boolean newValue) { LOG.debug("has visible stages: {}", newValue); if (newValue) { diff --git a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationComponent.java b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationComponent.java index 7d5fd55bf..de4134ddb 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationComponent.java +++ b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationComponent.java @@ -5,7 +5,12 @@ *******************************************************************************/ package org.cryptomator.ui.fxapp; +import dagger.BindsInstance; import dagger.Subcomponent; +import org.cryptomator.ui.mainwindow.MainWindow; + +import javafx.application.Application; +import javafx.stage.Stage; @FxApplicationScoped @Subcomponent(modules = FxApplicationModule.class) @@ -16,6 +21,12 @@ public interface FxApplicationComponent { @Subcomponent.Builder interface Builder { + @BindsInstance + Builder fxApplication(Application application); + + @BindsInstance + Builder mainWindow(@MainWindow Stage mainWindow); + FxApplicationComponent build(); } diff --git a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationModule.java b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationModule.java index 74c201372..737ddb7cd 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationModule.java +++ b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationModule.java @@ -5,7 +5,6 @@ *******************************************************************************/ package org.cryptomator.ui.fxapp; -import dagger.Binds; import dagger.Module; import dagger.Provides; import org.apache.commons.lang3.SystemUtils; @@ -18,10 +17,7 @@ import org.cryptomator.ui.quit.QuitComponent; import org.cryptomator.ui.unlock.UnlockComponent; import javax.inject.Named; -import javafx.application.Application; -import javafx.collections.ObservableSet; import javafx.scene.image.Image; -import javafx.stage.Stage; import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; @@ -62,9 +58,6 @@ abstract class FxApplicationModule { } } - @Binds - abstract Application bindApplication(FxApplication application); - @Provides static MainWindowComponent provideMainWindowComponent(MainWindowComponent.Builder builder) { return builder.build(); diff --git a/src/main/java/org/cryptomator/ui/launcher/FxApplicationStarter.java b/src/main/java/org/cryptomator/ui/launcher/FxApplicationStarter.java index 1799a9700..32f41185b 100644 --- a/src/main/java/org/cryptomator/ui/launcher/FxApplicationStarter.java +++ b/src/main/java/org/cryptomator/ui/launcher/FxApplicationStarter.java @@ -1,6 +1,6 @@ package org.cryptomator.ui.launcher; -import dagger.Lazy; +import com.google.common.base.Preconditions; import org.cryptomator.ui.fxapp.FxApplication; import org.cryptomator.ui.fxapp.FxApplicationComponent; import org.slf4j.Logger; @@ -8,47 +8,68 @@ import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Singleton; -import javafx.application.Platform; +import javafx.application.Application; +import javafx.stage.Stage; +import javafx.stage.StageStyle; +import java.lang.ref.WeakReference; +import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletionStage; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; @Singleton public class FxApplicationStarter { private static final Logger LOG = LoggerFactory.getLogger(FxApplicationStarter.class); + private static final AtomicReference FX_APP_COMP_BUILDER = new AtomicReference<>(); + private static final CompletableFuture FUTURE = new CompletableFuture<>(); - private final Lazy fxAppComponent; private final ExecutorService executor; private final AtomicBoolean started; - private final CompletableFuture future; @Inject - public FxApplicationStarter(Lazy fxAppComponent, ExecutorService executor) { - this.fxAppComponent = fxAppComponent; + public FxApplicationStarter(FxApplicationComponent.Builder fxAppCompBuilder, ExecutorService executor) { + FX_APP_COMP_BUILDER.set(fxAppCompBuilder); this.executor = executor; this.started = new AtomicBoolean(); - this.future = new CompletableFuture<>(); } public CompletionStage get() { if (!started.getAndSet(true)) { start(); } - return future; + return FUTURE; } private void start() { executor.submit(() -> { LOG.debug("Starting JavaFX runtime..."); - Platform.startup(() -> { - assert Platform.isFxApplicationThread(); - LOG.info("JavaFX Runtime started."); - FxApplication app = fxAppComponent.get().application(); - app.start(); - future.complete(app); - }); + Application.launch(CryptomatorGui.class); }); } + + public static class CryptomatorGui extends Application { + + @Override + public void start(Stage primaryStage) throws Exception { + var builder = Objects.requireNonNull(FX_APP_COMP_BUILDER.get()); // TODO add message? + + // set defaults for primary stage: + // TODO: invoke StageFactory stuff... + primaryStage.setTitle("Cryptomator"); + primaryStage.initStyle(StageStyle.UNDECORATED); + primaryStage.setMinWidth(650); + primaryStage.setMinHeight(440); + + // build subcomponent + var comp = builder.mainWindow(primaryStage).fxApplication(this).build(); + + // call delegate + var app = comp.application(); + app.start(); + FUTURE.complete(app); + } + } } diff --git a/src/main/java/org/cryptomator/ui/launcher/UiLauncherModule.java b/src/main/java/org/cryptomator/ui/launcher/UiLauncherModule.java index c30efa30e..fa4631af4 100644 --- a/src/main/java/org/cryptomator/ui/launcher/UiLauncherModule.java +++ b/src/main/java/org/cryptomator/ui/launcher/UiLauncherModule.java @@ -26,12 +26,6 @@ public abstract class UiLauncherModule { return builder.build(); } - @Provides - @Singleton - static FxApplicationComponent provideFxApplicationComponent(FxApplicationComponent.Builder builder) { - return builder.build(); - } - @Provides @Singleton static Optional provideAppearanceProvider(PluginClassLoader classLoader) { diff --git a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java index 6f63db888..f9372ba08 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/MainWindowModule.java @@ -47,17 +47,6 @@ abstract class MainWindowModule { return new FxmlLoaderFactory(factories, sceneFactory, resourceBundle); } - @Provides - @MainWindow - @MainWindowScoped - static Stage provideStage(StageFactory factory) { - Stage stage = factory.create(StageStyle.UNDECORATED); - stage.setMinWidth(650); - stage.setMinHeight(440); - stage.setTitle("Cryptomator"); - return stage; - } - @Provides @MainWindowScoped @Named("errorWindow") diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java index 87a419a94..cf585de39 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java @@ -12,6 +12,7 @@ import org.cryptomator.ui.controls.FontAwesome5IconView; import org.cryptomator.ui.fxapp.FxApplication; import javax.inject.Inject; +import javafx.application.Application; import javafx.beans.binding.Binding; import javafx.beans.binding.BooleanBinding; import javafx.beans.property.ObjectProperty; @@ -22,7 +23,7 @@ import javafx.fxml.FXML; public class VaultDetailController implements FxController { private final ReadOnlyObjectProperty vault; - private final FxApplication application; + private final Application application; private final Binding glyph; private final BooleanBinding anyVaultSelected; @@ -33,7 +34,7 @@ public class VaultDetailController implements FxController { @Inject - VaultDetailController(ObjectProperty vault, FxApplication application) { + VaultDetailController(ObjectProperty vault, Application application) { this.vault = vault; this.application = application; this.glyph = EasyBind.select(vault) // diff --git a/src/main/java/org/cryptomator/ui/migration/MigrationImpossibleController.java b/src/main/java/org/cryptomator/ui/migration/MigrationImpossibleController.java index 191fc7a8f..e861d6438 100644 --- a/src/main/java/org/cryptomator/ui/migration/MigrationImpossibleController.java +++ b/src/main/java/org/cryptomator/ui/migration/MigrationImpossibleController.java @@ -5,6 +5,7 @@ import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.fxapp.FxApplication; import javax.inject.Inject; +import javafx.application.Application; import javafx.fxml.FXML; import javafx.stage.Stage; @@ -12,13 +13,13 @@ public class MigrationImpossibleController implements FxController { private static final String HELP_URI = "https://docs.cryptomator.org/en/1.5/help/manual-migration/"; - private final FxApplication fxApplication; + private final Application application; private final Stage window; private final Vault vault; @Inject - MigrationImpossibleController(FxApplication fxApplication, @MigrationWindow Stage window, @MigrationWindow Vault vault) { - this.fxApplication = fxApplication; + MigrationImpossibleController(Application application, @MigrationWindow Stage window, @MigrationWindow Vault vault) { + this.application = application; this.window = window; this.vault = vault; } @@ -30,7 +31,7 @@ public class MigrationImpossibleController implements FxController { @FXML public void getMigrationHelp() { - fxApplication.getHostServices().showDocument(HELP_URI); + application.getHostServices().showDocument(HELP_URI); } /* Getter/Setters */ From ef6f87bb1922ba99edeb4f82f0a8a1087db0d4b0 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 29 Mar 2022 12:34:01 +0200 Subject: [PATCH 12/40] Fixes #2126 Remove deprecated env variable --- .idea/runConfigurations/Cryptomator_Windows_Dev.xml | 2 +- src/main/java/org/cryptomator/common/Environment.java | 5 ----- .../common/mountpoint/CustomMountPointChooser.java | 7 +++---- .../common/mountpoint/CustomMountPointChooserTest.java | 2 +- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/.idea/runConfigurations/Cryptomator_Windows_Dev.xml b/.idea/runConfigurations/Cryptomator_Windows_Dev.xml index 62ab38666..b4b844cae 100644 --- a/.idea/runConfigurations/Cryptomator_Windows_Dev.xml +++ b/.idea/runConfigurations/Cryptomator_Windows_Dev.xml @@ -2,7 +2,7 @@