From c5edb3e04edfe8dfb01fe0e2be1bcfce83daf6ee Mon Sep 17 00:00:00 2001 From: Hinton Date: Mon, 14 Dec 2020 22:45:36 +0100 Subject: [PATCH 1/8] Fix autostart in snap --- package.json | 1 + src/main/messaging.main.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 64b8f16281..a1c8228c2c 100644 --- a/package.json +++ b/package.json @@ -221,6 +221,7 @@ "artifactName": "${productName}-${version}-${arch}.${ext}" }, "snap": { + "autoStart": true, "confinement": "strict", "plugs": [ "default", diff --git a/src/main/messaging.main.ts b/src/main/messaging.main.ts index 02981422f4..a6a6079331 100644 --- a/src/main/messaging.main.ts +++ b/src/main/messaging.main.ts @@ -102,13 +102,13 @@ export class MessagingMain { private addOpenAtLogin() { if (process.platform === 'linux') { const data = `[Desktop Entry] - Type=Application - Version=${app.getVersion()} - Name=Bitwarden - Comment=Bitwarden startup script - Exec=${app.getPath('exe')} - StartupNotify=false - Terminal=false`; +Type=Application +Version=${app.getVersion()} +Name=Bitwarden +Comment=Bitwarden startup script +Exec=${app.getPath('exe')} +StartupNotify=false +Terminal=false`; const dir = path.dirname(this.linuxStartupFile()); if (!fs.existsSync(dir)) { From 41e72b22b8340ccc6a54f75ecd2a5f9872e7adb5 Mon Sep 17 00:00:00 2001 From: Hinton Date: Tue, 15 Dec 2020 20:37:30 +0100 Subject: [PATCH 2/8] Prevent disabling enableTray on linux when using other tray settings --- src/app/accounts/settings.component.ts | 27 ++++++++++++++++++++++++++ src/locales/en/messages.json | 6 ++++++ 2 files changed, 33 insertions(+) diff --git a/src/app/accounts/settings.component.ts b/src/app/accounts/settings.component.ts index 396eb8dd7f..eb0b8b259d 100644 --- a/src/app/accounts/settings.component.ts +++ b/src/app/accounts/settings.component.ts @@ -53,6 +53,7 @@ export class SettingsComponent implements OnInit { alwaysShowDock: boolean; showAlwaysShowDock: boolean = false; openAtLogin: boolean; + requireEnableTray: boolean = false; enableTrayText: string; enableTrayDescText: string; @@ -70,6 +71,9 @@ export class SettingsComponent implements OnInit { private userService: UserService, private cryptoService: CryptoService) { const isMac = this.platformUtilsService.getDevice() === DeviceType.MacOsDesktop; + // Workaround to avoid ghosting trays https://github.com/electron/electron/issues/17622 + this.requireEnableTray = this.platformUtilsService.getDevice() === DeviceType.LinuxDesktop; + const trayKey = isMac ? 'enableMenuBar' : 'enableTray'; this.enableTrayText = this.i18nService.t(trayKey); this.enableTrayDescText = this.i18nService.t(trayKey + 'Desc'); @@ -269,17 +273,40 @@ export class SettingsComponent implements OnInit { } async saveCloseToTray() { + if (this.requireEnableTray) { + this.enableTray = true; + } + await this.storageService.save(ElectronConstants.enableCloseToTrayKey, this.enableCloseToTray); this.callAnalytics('CloseToTray', this.enableCloseToTray); } async saveTray() { + if (this.requireEnableTray && !this.enableTray && (this.startToTray || this.enableCloseToTray)) { + const confirm = await this.platformUtilsService.showDialog( + this.i18nService.t('confirmTrayDesc'), this.i18nService.t('confirmTrayTitle'), + this.i18nService.t('yes'), this.i18nService.t('no'), 'warning'); + + if (confirm) { + this.startToTray = false; + this.enableCloseToTray = false; + } else { + this.enableTray = true; + } + + return; + } + await this.storageService.save(ElectronConstants.enableTrayKey, this.enableTray); this.callAnalytics('Tray', this.enableTray); this.messagingService.send(this.enableTray ? 'showTray' : 'removeTray'); } async saveStartToTray() { + if (this.requireEnableTray) { + this.enableTray = true; + } + await this.storageService.save(ElectronConstants.enableStartToTrayKey, this.startToTray); this.callAnalytics('StartToTray', this.startToTray); } diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index 1710af535d..ce9692fa19 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -900,6 +900,12 @@ "alwaysShowDockDesc": { "message": "Show the Bitwarden icon in the Dock even when minimized to the menu bar." }, + "confirmTrayTitle": { + "message": "Confirm disable tray" + }, + "confirmTrayDesc": { + "message": "Disabling this setting will also disable all other tray related settings." + }, "language": { "message": "Language" }, From aa32b772867fcf4f40a12279c702e33cc1ae4d09 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 10 Nov 2020 17:19:57 -0500 Subject: [PATCH 3/8] New Crowdin updates (#584) * New translations messages.json (Romanian) * New translations messages.json (Thai) * New translations messages.json (Turkish) * New translations messages.json (Ukrainian) * New translations messages.json (Chinese Simplified) * New translations messages.json (Chinese Traditional) * New translations messages.json (Vietnamese) * New translations messages.json (Portuguese, Brazilian) * New translations messages.json (Indonesian) * New translations messages.json (Persian) * New translations messages.json (Croatian) * New translations messages.json (Serbian (Cyrillic)) * New translations messages.json (Estonian) * New translations messages.json (Latvian) * New translations messages.json (English, United Kingdom) * New translations messages.json (Esperanto) * New translations messages.json (Malayalam) * New translations messages.json (Sinhala) * New translations messages.json (Norwegian Bokmal) * New translations messages.json (Montenegrin (Latin)) * New translations messages.json (Swedish) * New translations messages.json (Slovak) * New translations messages.json (French) * New translations messages.json (Greek) * New translations messages.json (Spanish) * New translations messages.json (Afrikaans) * New translations messages.json (Belarusian) * New translations messages.json (Bulgarian) * New translations messages.json (Catalan) * New translations messages.json (Czech) * New translations messages.json (Danish) * New translations messages.json (German) * New translations messages.json (Finnish) * New translations messages.json (Russian) * New translations messages.json (Hebrew) * New translations messages.json (Hungarian) * New translations messages.json (Italian) * New translations messages.json (Japanese) * New translations messages.json (Korean) * New translations messages.json (Dutch) * New translations messages.json (Polish) * New translations messages.json (Portuguese) * New translations messages.json (English, India) --- src/locales/af/messages.json | 6 + src/locales/be/messages.json | 54 +- src/locales/bg/messages.json | 6 + src/locales/ca/messages.json | 6 + src/locales/cs/messages.json | 32 +- src/locales/da/messages.json | 6 + src/locales/de/messages.json | 8 +- src/locales/el/messages.json | 6 + src/locales/en/messages.json | 3 + src/locales/en_GB/messages.json | 6 + src/locales/en_IN/messages.json | 6 + src/locales/eo/messages.json | 6 + src/locales/es/messages.json | 18 +- src/locales/et/messages.json | 6 + src/locales/fa/messages.json | 6 + src/locales/fi/messages.json | 6 + src/locales/fr/messages.json | 6 + src/locales/he/messages.json | 20 +- src/locales/hr/messages.json | 6 + src/locales/hu/messages.json | 6 + src/locales/id/messages.json | 6 + src/locales/it/messages.json | 6 + src/locales/ja/messages.json | 6 + src/locales/ko/messages.json | 18 +- src/locales/lv/messages.json | 6 + src/locales/me/messages.json | 6 + src/locales/ml/messages.json | 6 + src/locales/nb/messages.json | 6 + src/locales/nl/messages.json | 6 + src/locales/pl/messages.json | 6 + src/locales/pt_BR/messages.json | 6 + src/locales/pt_PT/messages.json | 6 + src/locales/ro/messages.json | 56 +- src/locales/ru/messages.json | 6 + src/locales/si/messages.json | 6 + src/locales/sk/messages.json | 6 + src/locales/sr/messages.json | 1411 +++++++++++++++++++++++++++++++ src/locales/sv/messages.json | 6 + src/locales/th/messages.json | 6 + src/locales/tr/messages.json | 6 + src/locales/uk/messages.json | 6 + src/locales/vi/messages.json | 6 + src/locales/zh_CN/messages.json | 6 + src/locales/zh_TW/messages.json | 6 + 44 files changed, 1748 insertions(+), 82 deletions(-) create mode 100644 src/locales/sr/messages.json diff --git a/src/locales/af/messages.json b/src/locales/af/messages.json index 34352a2297..231ee53e52 100644 --- a/src/locales/af/messages.json +++ b/src/locales/af/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/be/messages.json b/src/locales/be/messages.json index 27bebb8d4d..f53db2017c 100644 --- a/src/locales/be/messages.json +++ b/src/locales/be/messages.json @@ -461,19 +461,19 @@ "message": "Адправіць" }, "masterPass": { - "message": "Майстар-пароль" + "message": "Асноўны пароль" }, "masterPassDesc": { - "message": "Майстар-пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць майстар-пароль немагчыма." + "message": "Асноўны пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць асноўны пароль немагчыма." }, "masterPassHintDesc": { - "message": "Падказка да майстра-пароля можа дапамагчы вам яго ўспомніць." + "message": "Падказка да асноўнага пароля можа дапамагчы вам яго ўспомніць." }, "reTypeMasterPass": { - "message": "Увядзіце майстар-пароль паўторна" + "message": "Увядзіце асноўны пароль паўторна" }, "masterPassHint": { - "message": "Падказка да майстра-пароля (неабавязкова)" + "message": "Падказка да асноўнага пароля (неабавязкова)" }, "settings": { "message": "Налады" @@ -482,10 +482,10 @@ "message": "Падказка да пароля" }, "enterEmailToGetHint": { - "message": "Увядзіце адрас электроннай пошты ўліковага запісу для атрымання падказкі для пароля." + "message": "Увядзіце адрас электроннай пошты ўліковага запісу для атрымання падказкі для асноўнага пароля." }, "getMasterPasswordHint": { - "message": "Атрымаць падказку для майстра-пароля" + "message": "Атрымаць падказку для асноўнага пароля" }, "emailRequired": { "message": "Патрабуецца адрас электроннай пошты." @@ -494,19 +494,19 @@ "message": "Памылковы адрас электроннай пошты." }, "masterPassRequired": { - "message": "Патрабуецца майстар-пароль." + "message": "Патрабуецца асноўны пароль." }, "masterPassLength": { - "message": "Майстар-пароль павінен быць даўжынёй не менш за 8 сімвалаў." + "message": "Асноўны пароль павінен быць даўжынёй не менш за 8 сімвалаў." }, "masterPassDoesntMatch": { - "message": "Майстры-паролі не супадаюць." + "message": "Асноўныя паролі не супадаюць." }, "newAccountCreated": { "message": "Ваш уліковы запіс створаны! Вы можаце ўвайсці." }, "masterPassSent": { - "message": "Мы адправілі вам на электронную пошту падказку для майстра-пароля." + "message": "Мы адправілі вам на электронную пошту падказку для асноўнага пароля." }, "unexpectedError": { "message": "Адбылася нечаканая памылка." @@ -719,10 +719,10 @@ "message": "Сінхранізаваць сховішча" }, "changeMasterPass": { - "message": "Змяніць майстар-пароль" + "message": "Змяніць асноўны пароль" }, "changeMasterPasswordConfirmation": { - "message": "Вы можаце змяніць свой майстар-пароль на bitwarden.com. Перайсці на сайт зараз?" + "message": "Вы можаце змяніць свой асноўны пароль на bitwarden.com. Перайсці на сайт зараз?" }, "fingerprintPhrase": { "message": "Фраза адбітка пальца", @@ -748,7 +748,7 @@ "message": "Памылка сінхранізацыі" }, "yourVaultIsLocked": { - "message": "Ваша сховішча заблакіравана. Каб працягнуць, увядзіце майстар-пароль." + "message": "Ваша сховішча заблакіравана. Каб працягнуць, увядзіце асноўны пароль." }, "unlock": { "message": "Разблакіраваць" @@ -767,7 +767,7 @@ } }, "invalidMasterPassword": { - "message": "Памылковы майстар-пароль" + "message": "Памылковы асноўны пароль" }, "twoStepLoginConfirmation": { "message": "Двухэтапны ўваход робіць ваш уліковы запіс больш бяспечным, патрабуючы пацвярджэння ўваходу на іншай прыладзе, напрыклад, ключом бяспекі, праграмай для праверкі бяспекі, SMS, тэлефонным выклікам або электроннай поштай. Двухэтапны ўваход уключаецца на bitwarden.com. Перайсці на сайт зараз?" @@ -1186,7 +1186,7 @@ "message": "Экспартуемы файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць ці адпраўляць па небяспечным каналам (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання." }, "exportMasterPassword": { - "message": "Увядзіце ваш майстар-пароль для экспарту даных са сховішча." + "message": "Увядзіце ваш асноўны пароль для экспарту даных са сховішча." }, "noOrganizationsList": { "message": "Вы не з'яўляецеся членам якой-небудзь арганізацыі. Арганізацыі дазваляюць бяспечна абменьвацца элементамі з іншымі карыстальнікамі." @@ -1213,10 +1213,10 @@ "description": "ex. A weak password. Scale: Weak -> Good -> Strong" }, "weakMasterPassword": { - "message": "Слабы майстар-пароль" + "message": "Слабы асноўны пароль" }, "weakMasterPasswordDesc": { - "message": "Майстар-пароль, выбраны вамі, з'яўляецца слабым. Для належнай абароны ўліковага запісу Bitwarden, вам належыць выкарыстоўваць моцны майстар-пароль (або парольную фразу). Вы ўпэўнены, што хочаце выкарыстоўваць гэты майстар-пароль?" + "message": "Асноўны пароль, выбраны вамі, з'яўляецца слабым. Для належнай абароны ўліковага запісу Bitwarden, вы павінны выкарыстоўваць моцны асноўны пароль (або парольную фразу). Вы ўпэўнены, што хочаце выкарыстоўваць гэты асноўны пароль?" }, "pin": { "message": "PIN-код", @@ -1250,7 +1250,7 @@ "message": "Verify for Bitwarden." }, "lockWithMasterPassOnRestart": { - "message": "Блакіраваць майстрам-паролем пры перазапуску" + "message": "Блакіраваць асноўным паролем пры перазапуску" }, "preferences": { "message": "Налады" @@ -1349,19 +1349,19 @@ "message": "Enterprise Single Sign-On" }, "setMasterPassword": { - "message": "Set Master Password" + "message": "Задаць асноўны пароль" }, "ssoCompleteRegistration": { "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." }, "newMasterPass": { - "message": "New Master Password" + "message": "Новы асноўны пароль" }, "confirmNewMasterPass": { - "message": "Confirm New Master Password" + "message": "Пацвердзіць новы асноўны пароль" }, "masterPasswordPolicyInEffect": { - "message": "One or more organization policies require your master password to meet the following requirements:" + "message": "Згодна з адной або некалькімі палітыкамі арганізацыі неабходна, каб ваш асноўны пароль адказваў наступным патрабаванням:" }, "policyInEffectMinComplexity": { "message": "Minimum complexity score of $SCORE$", @@ -1400,6 +1400,12 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Your new master password does not meet the policy requirements." + "message": "Ваш новы асноўны пароль не адпавядае патрабаванням палітыкі арганізацыі." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/bg/messages.json b/src/locales/bg/messages.json index 7709288676..b9a596a049 100644 --- a/src/locales/bg/messages.json +++ b/src/locales/bg/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Паролата ви не отговаря на политиките." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ca/messages.json b/src/locales/ca/messages.json index a04f0c1504..4fb2cd6500 100644 --- a/src/locales/ca/messages.json +++ b/src/locales/ca/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "La nova contrasenya principal no compleix els requisits de la política." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/cs/messages.json b/src/locales/cs/messages.json index a62570bff8..825401f58a 100644 --- a/src/locales/cs/messages.json +++ b/src/locales/cs/messages.json @@ -1346,25 +1346,25 @@ "message": "Potvrzení akce při vypršení časového limitu" }, "enterpriseSingleSignOn": { - "message": "Enterprise Single Sign-On" + "message": "Jednotné podnikové přihlášení" }, "setMasterPassword": { - "message": "Set Master Password" + "message": "Nastavení hlavního hesla" }, "ssoCompleteRegistration": { - "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + "message": "Chcete-li dokončit přihlášení pomocí SSO, nastavte prosím hlavní heslo pro přístup a ochranu vašeho trezoru." }, "newMasterPass": { - "message": "New Master Password" + "message": "Nové hlavní heslo" }, "confirmNewMasterPass": { - "message": "Confirm New Master Password" + "message": "Potvrďte nové heslo" }, "masterPasswordPolicyInEffect": { - "message": "One or more organization policies require your master password to meet the following requirements:" + "message": "Jedna nebo více zásad organizace vyžaduje, aby hlavní heslo splňovalo následující požadavky:" }, "policyInEffectMinComplexity": { - "message": "Minimum complexity score of $SCORE$", + "message": "Minimální skóre složitosti $SCORE$", "placeholders": { "score": { "content": "$1", @@ -1373,7 +1373,7 @@ } }, "policyInEffectMinLength": { - "message": "Minimum length of $LENGTH$", + "message": "Minimální délka $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -1382,16 +1382,16 @@ } }, "policyInEffectUppercase": { - "message": "Contain one or more uppercase characters" + "message": "Obsahuje jedno nebo více velkých písmen" }, "policyInEffectLowercase": { - "message": "Contain one or more lowercase characters" + "message": "Obsahuje jedno nebo více malých písmen" }, "policyInEffectNumbers": { - "message": "Contain one or more numbers" + "message": "Obsahuje jednu nebo více číslic" }, "policyInEffectSpecial": { - "message": "Contain one or more of the following special characters $CHARS$", + "message": "Obsahuje jeden nebo více následujících speciálních znaků: $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1400,6 +1400,12 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Your new master password does not meet the policy requirements." + "message": "Vaše nové hlavní heslo nesplňuje požadavky zásad." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/da/messages.json b/src/locales/da/messages.json index a1f9dc9fb6..a7de8b88d2 100644 --- a/src/locales/da/messages.json +++ b/src/locales/da/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Din nye hovedadgangskode opfylder ikke politikkravene." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/de/messages.json b/src/locales/de/messages.json index 6e360d76b0..eece04a41d 100644 --- a/src/locales/de/messages.json +++ b/src/locales/de/messages.json @@ -343,7 +343,7 @@ "message": "Soll dieser Eintrag wirklich gelöscht werden?" }, "deletedItem": { - "message": "Eintrag gelöscht" + "message": "Eintrag in Papierkorb verschoben" }, "overwritePasswordConfirmation": { "message": "Bist du sicher, dass du das Passwort überschreiben möchtest?" @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Ihr neues Masterpasswort entspricht nicht den Anforderungen der Richtlinie." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/el/messages.json b/src/locales/el/messages.json index f79ae18446..0bf79f1aa6 100644 --- a/src/locales/el/messages.json +++ b/src/locales/el/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/en/messages.json b/src/locales/en/messages.json index ae5684f6d7..af95f1d016 100644 --- a/src/locales/en/messages.json +++ b/src/locales/en/messages.json @@ -1407,5 +1407,8 @@ }, "acceptPoliciesError": { "message": "Terms of Service and Privacy Policy have not been acknowledged." + }, + "hintEqualsPassword": { + "message": "Your password hint cannot be the same as your password." } } diff --git a/src/locales/en_GB/messages.json b/src/locales/en_GB/messages.json index 25f50c09fa..db051b3cef 100644 --- a/src/locales/en_GB/messages.json +++ b/src/locales/en_GB/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/en_IN/messages.json b/src/locales/en_IN/messages.json index 25f50c09fa..db051b3cef 100644 --- a/src/locales/en_IN/messages.json +++ b/src/locales/en_IN/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/eo/messages.json b/src/locales/eo/messages.json index b5e8aea957..1e73b702f9 100644 --- a/src/locales/eo/messages.json +++ b/src/locales/eo/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/es/messages.json b/src/locales/es/messages.json index 95398ad0f8..82a2c7eea9 100644 --- a/src/locales/es/messages.json +++ b/src/locales/es/messages.json @@ -776,10 +776,10 @@ "message": "Autenticación en dos pasos" }, "vaultTimeout": { - "message": "Tiempo de espera de la bóveda" + "message": "Tiempo de espera de la caja fuerte" }, "vaultTimeoutDesc": { - "message": "Elija cuando se agotará el tiempo de espera de su bóveda y se ejecutará la acción seleccionada." + "message": "Elije cuando se agotará el tiempo de espera de tu caja fuerte y se ejecutará la acción seleccionada." }, "immediately": { "message": "Inmediatamente" @@ -975,7 +975,7 @@ "message": "Métodos de autenticación en dos pasos adicionales como YubiKey, FIDO U2F y Duo." }, "premiumSignUpReports": { - "message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener su caja fuerte segura." + "message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener tu caja fuerte segura." }, "premiumSignUpTotp": { "message": "Generación de códigos TOTP (2FA) para registros de tu caja fuerte." @@ -1302,10 +1302,10 @@ "message": "Tiempo de espera de la caja fuerte" }, "vaultTimeoutActionLockDesc": { - "message": "Una bóveda bloqueada requiere que introduzcas de nuevo tu contraseña maestra para acceder nuevamente." + "message": "Una caja fuerte bloqueada requiere que introduzcas de nuevo tu contraseña maestra para acceder nuevamente." }, "vaultTimeoutActionLogOutDesc": { - "message": "Cerrar sesión en la bóveda requiere que vuelvas a autenticarte para acceder nuevamente a ella." + "message": "Cerrar sesión en la caja fuerte requiere que vuelvas a autenticarte para acceder nuevamente a ella." }, "lock": { "message": "Bloquear", @@ -1340,7 +1340,7 @@ "message": "Eliminar de forma permanente" }, "vaultTimeoutLogOutConfirmation": { - "message": "Cerrar sesión eliminará todo el acceso a su bóveda y requiere autenticación en línea después del período de espera. ¿Estás seguro de que quieres usar esta configuración?" + "message": "Si cierras sesión, tu caja fuerte se bloqueará después del tiempo de espera seleccionado hasta que vuelvas a autenticarte. Utiliza esta opción sólo si este es el efecto deseado." }, "vaultTimeoutLogOutConfirmationTitle": { "message": "Confirmación de acción del tiempo de espera de la caja fuerte" @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Su nueva contraseña maestra no cumple con los requisitos de la política." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/et/messages.json b/src/locales/et/messages.json index 2d9dc2f449..56c557b41d 100644 --- a/src/locales/et/messages.json +++ b/src/locales/et/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Uus ülemparool ei vasta eeskirjades väljatoodud tingimustele." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/fa/messages.json b/src/locales/fa/messages.json index 99d26f45ea..ec4a630e76 100644 --- a/src/locales/fa/messages.json +++ b/src/locales/fa/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "کلمه عبور اصلی جدید شما از شرایط سیاست پپیروی نمی کند." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/fi/messages.json b/src/locales/fi/messages.json index ec51cba44a..507bf302d8 100644 --- a/src/locales/fi/messages.json +++ b/src/locales/fi/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Uusi pääsalasanasi ei täytä käytäntövaatimuksia." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/fr/messages.json b/src/locales/fr/messages.json index 294f6cb8bb..ef4bfa7bb0 100644 --- a/src/locales/fr/messages.json +++ b/src/locales/fr/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Votre nouveau mot de passe maître ne répond pas aux exigences de la politique." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/he/messages.json b/src/locales/he/messages.json index 9435b9f98a..e3dabd5ff1 100644 --- a/src/locales/he/messages.json +++ b/src/locales/he/messages.json @@ -1238,7 +1238,7 @@ "message": "הכספת שלך נעולה. הזן את קוד הPIN שלך כדי להמשיך." }, "unlockWithWindowsHello": { - "message": "שחרור הנעילה עם Windows Hello" + "message": "שחרור נעילה עם Windows Hello" }, "windowsHelloConsentMessage": { "message": "אימות עבור Bitwarden." @@ -1364,7 +1364,7 @@ "message": "אחד או יותר מאילוצי המדיניות של הארגון דורשים שהסיסמה הראשית שלך תעמוד בדרישות הבאות:" }, "policyInEffectMinComplexity": { - "message": "ניקוד מורכבות מזערי של $SCORE$", + "message": "ניקוד מורכבות הסיסמה צריך להיות לפחות {0}", "placeholders": { "score": { "content": "$1", @@ -1373,7 +1373,7 @@ } }, "policyInEffectMinLength": { - "message": "אורך מזערי של $LENGTH$", + "message": "אורך מינימלי של $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -1382,16 +1382,16 @@ } }, "policyInEffectUppercase": { - "message": "תכיל אות גדולה אחת או יותר" + "message": "מכילה אות גדולה אחת או יותר" }, "policyInEffectLowercase": { - "message": "תכיל אות קטנה אחת או יותר" + "message": "מכילה אות קטנה אחת או יותר" }, "policyInEffectNumbers": { - "message": "תכיל ספרה אחת או יותר" + "message": "מכילה ספרה אחת או יותר" }, "policyInEffectSpecial": { - "message": "תכיל תו מיוחד אחד או יותר מבין התווים האלו $CHARS$", + "message": "מכילה תו אחד או יותר מהתווים הבאים: {0}", "placeholders": { "chars": { "content": "$1", @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "הסיסמה הראשית החדשה השלך לא עומדת בדרישות המדיניות." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/hr/messages.json b/src/locales/hr/messages.json index 9b3af73e62..a3eef82efd 100644 --- a/src/locales/hr/messages.json +++ b/src/locales/hr/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/hu/messages.json b/src/locales/hu/messages.json index cf3315eae7..62fe4e38dd 100644 --- a/src/locales/hu/messages.json +++ b/src/locales/hu/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Az új mesterjelszó nem felel meg a szabály követelményeknek." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/id/messages.json b/src/locales/id/messages.json index bb6dccdbf8..e0a0576a27 100644 --- a/src/locales/id/messages.json +++ b/src/locales/id/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Kata sandi utama Anda yang baru tidak memenuhi persyaratan kebijakan." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/it/messages.json b/src/locales/it/messages.json index aec9a54129..10a7b8972d 100644 --- a/src/locales/it/messages.json +++ b/src/locales/it/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "La tua nuova password principale non soddisfa i requisiti di sicurezza." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ja/messages.json b/src/locales/ja/messages.json index 660c867b7a..3599259e41 100644 --- a/src/locales/ja/messages.json +++ b/src/locales/ja/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "新しいマスターパスワードは最低要件を満たしていません。" + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ko/messages.json b/src/locales/ko/messages.json index 6a103e191c..bf0a70dfcc 100644 --- a/src/locales/ko/messages.json +++ b/src/locales/ko/messages.json @@ -1241,13 +1241,13 @@ "message": "Windows Hello를 사용하여 잠금 해제" }, "windowsHelloConsentMessage": { - "message": "Verify for Bitwarden." + "message": "Bitwarden에서 인증을 요청합니다." }, "unlockWithTouchId": { "message": "Touch ID를 사용하여 잠금 해제" }, "touchIdConsentMessage": { - "message": "Verify for Bitwarden." + "message": "Bitwarden에서 인증을 요청합니다." }, "lockWithMasterPassOnRestart": { "message": "다시 시작 시 마스터 비밀번호로 잠금" @@ -1346,13 +1346,13 @@ "message": "시간 제한 초과시 동작 확인" }, "enterpriseSingleSignOn": { - "message": "Enterprise Single Sign-On" + "message": "엔터프라이즈 통합 인증 (SSO)" }, "setMasterPassword": { "message": "마스터 비밀번호 설정" }, "ssoCompleteRegistration": { - "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + "message": "SSO 로그인을 하기 위해서 보관함에 접근하고 보호할 수 있도록 마스터 비밀번호를 설정해주세요." }, "newMasterPass": { "message": "새 마스터 비밀번호" @@ -1373,7 +1373,7 @@ } }, "policyInEffectMinLength": { - "message": "Minimum length of $LENGTH$", + "message": "최소 길이 $LENGTH$", "placeholders": { "length": { "content": "$1", @@ -1391,7 +1391,7 @@ "message": "하나 이상의 숫자 포함" }, "policyInEffectSpecial": { - "message": "Contain one or more of the following special characters $CHARS$", + "message": "하나 이상의 다음 특수문자 포함 $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "새 마스터 비밀번호가 정책 요구 사항을 따르지 않습니다." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/lv/messages.json b/src/locales/lv/messages.json index b5e8aea957..1e73b702f9 100644 --- a/src/locales/lv/messages.json +++ b/src/locales/lv/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/me/messages.json b/src/locales/me/messages.json index a278c25d14..f170c9a090 100644 --- a/src/locales/me/messages.json +++ b/src/locales/me/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ml/messages.json b/src/locales/ml/messages.json index 0a200b54fa..d13f5dcf58 100644 --- a/src/locales/ml/messages.json +++ b/src/locales/ml/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "നിങ്ങളുടെ പുതിയ മാസ്റ്റർ പാസ്‌വേഡ് നയ ആവശ്യകതകൾ നിറവേറ്റുന്നില്ല." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/nb/messages.json b/src/locales/nb/messages.json index 74a999d39d..1661c62fee 100644 --- a/src/locales/nb/messages.json +++ b/src/locales/nb/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/nl/messages.json b/src/locales/nl/messages.json index 7c811731ca..cc9cbf4e04 100644 --- a/src/locales/nl/messages.json +++ b/src/locales/nl/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Je nieuwe hoofdwachtwoord voldoet niet aan de beleidseisen." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/pl/messages.json b/src/locales/pl/messages.json index d12a9475ac..dd2413bda9 100644 --- a/src/locales/pl/messages.json +++ b/src/locales/pl/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Nowe hasło główne nie spełnia wymaganych zasad." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/pt_BR/messages.json b/src/locales/pt_BR/messages.json index 3eb106e39f..4b2b8a0f37 100644 --- a/src/locales/pt_BR/messages.json +++ b/src/locales/pt_BR/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "A sua nova senha mestra não cumpre aos requisitos da política." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/pt_PT/messages.json b/src/locales/pt_PT/messages.json index 8ebca2d534..3b40ed7d79 100644 --- a/src/locales/pt_PT/messages.json +++ b/src/locales/pt_PT/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "A sua nova palavra-passe mestra não cumpre os requisitos da política." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ro/messages.json b/src/locales/ro/messages.json index 9609f2c566..f275054c09 100644 --- a/src/locales/ro/messages.json +++ b/src/locales/ro/messages.json @@ -3,7 +3,7 @@ "message": "Bitwarden" }, "filters": { - "message": "Filters" + "message": "Filtre" }, "allItems": { "message": "Toate elementele" @@ -85,7 +85,7 @@ "message": "Parolă" }, "passphrase": { - "message": "Passphrase" + "message": "Frază de acces" }, "editItem": { "message": "Editare articol" @@ -113,10 +113,10 @@ "description": "Copy value to clipboard" }, "minimizeOnCopyToClipboard": { - "message": "Minimize when copying to clipboard" + "message": "Minimizați când copiați în clipboard" }, "minimizeOnCopyToClipboardDesc": { - "message": "Minimize when copying an item's data to the clipboard." + "message": "Minimizați când copiați datele unui articol în clipboard." }, "toggleVisibility": { "message": "Comutare vizibilitate" @@ -377,11 +377,11 @@ "message": "Word Separator" }, "capitalize": { - "message": "Capitalize", + "message": "Majuscule inițiale", "description": "Make the first letter of a work uppercase." }, "includeNumber": { - "message": "Include Number" + "message": "Include cifre" }, "close": { "message": "Închidere" @@ -776,7 +776,7 @@ "message": "Autentificare în două etape" }, "vaultTimeout": { - "message": "Vault Timeout" + "message": "Expirarea seifului" }, "vaultTimeoutDesc": { "message": "Choose when your vault will timeout and perform the selected action." @@ -1165,7 +1165,7 @@ "description": "Application window should always stay on top of other windows" }, "dateUpdated": { - "message": "Updated", + "message": "Actualizat", "description": "ex. Date this item was updated" }, "datePasswordUpdated": { @@ -1179,14 +1179,14 @@ "message": "File Format" }, "warning": { - "message": "WARNING", + "message": "AVERTISMENT", "description": "WARNING (should stay in capitalized letters if the language permits)" }, "exportWarningDesc": { "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." }, "exportMasterPassword": { - "message": "Enter your master password to export your vault data." + "message": "Introduceți parola principală pentru a exporta datele din seif." }, "noOrganizationsList": { "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." @@ -1201,29 +1201,29 @@ "message": "Who owns this item?" }, "strong": { - "message": "Strong", + "message": "Puternic", "description": "ex. A strong password. Scale: Weak -> Good -> Strong" }, "good": { - "message": "Good", + "message": "Bun", "description": "ex. A good password. Scale: Weak -> Good -> Strong" }, "weak": { - "message": "Weak", + "message": "Slab", "description": "ex. A weak password. Scale: Weak -> Good -> Strong" }, "weakMasterPassword": { "message": "Weak Master Password" }, "weakMasterPasswordDesc": { - "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + "message": "Parola principală aleasă este slabă. Ar trebui folosită o parolă principală (sau o frază de access) puternică pentru a vă proteja corect contul Bitwarden. Sunteți sigur că doriți să folosiți această parola principală?" }, "pin": { "message": "PIN", "description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device." }, "unlockWithPin": { - "message": "Unlock with PIN" + "message": "Deblocați cu codul PIN" }, "setYourPinCode": { "message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application." @@ -1232,7 +1232,7 @@ "message": "PIN code is required." }, "invalidPin": { - "message": "Invalid PIN code." + "message": "Cod PIN invalid." }, "yourVaultIsLockedPinCode": { "message": "Your vault is locked. Verify your PIN code to continue." @@ -1253,7 +1253,7 @@ "message": "Lock with master password on restart" }, "preferences": { - "message": "Preferences" + "message": "Preferințe" }, "enableMenuBar": { "message": "Enable Menu Bar Icon" @@ -1262,7 +1262,7 @@ "message": "Always show an icon in the menu bar." }, "hideToMenuBar": { - "message": "Hide to Menu Bar" + "message": "Ascunde în bara de meniu" }, "selectOneCollection": { "message": "You must select at least one collection." @@ -1271,7 +1271,7 @@ "message": "You've upgraded to premium." }, "restore": { - "message": "Restore" + "message": "Restaurați" }, "premiumManageAlertAppStore": { "message": "You can manage your subscription from the App Store. Do you want to visit the App Store now?" @@ -1281,25 +1281,25 @@ "description": "Noun. As in 'legal documents', like our terms of service and privacy policy." }, "termsOfService": { - "message": "Terms of Service" + "message": "Termenii Serviciului" }, "privacyPolicy": { - "message": "Privacy Policy" + "message": "Politica Intimității" }, "unsavedChangesConfirmation": { "message": "Are you sure you want to leave? If you leave now then your current information will not be saved." }, "unsavedChangesTitle": { - "message": "Unsaved Changes" + "message": "Modificări nesalvate" }, "clone": { - "message": "Clone" + "message": "Clonare" }, "passwordGeneratorPolicyInEffect": { "message": "One or more organization policies are affecting your generator settings." }, "vaultTimeoutAction": { - "message": "Vault Timeout Action" + "message": "Acțiune la expirarea seifului" }, "vaultTimeoutActionLockDesc": { "message": "A locked vault requires that you re-enter your master password to access it again." @@ -1308,7 +1308,7 @@ "message": "A logged out vault requires that you re-authenticate to access it again." }, "lock": { - "message": "Lock", + "message": "Blocare", "description": "Verb form: to make secure or inaccesible by" }, "trash": { @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/ru/messages.json b/src/locales/ru/messages.json index 47203856da..173e9da610 100644 --- a/src/locales/ru/messages.json +++ b/src/locales/ru/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Ваш новый мастер-пароль не соответствует требованиям политики." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/si/messages.json b/src/locales/si/messages.json index f8271b1884..3132917e4f 100644 --- a/src/locales/si/messages.json +++ b/src/locales/si/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/sk/messages.json b/src/locales/sk/messages.json index c29141c057..29d91e7a41 100644 --- a/src/locales/sk/messages.json +++ b/src/locales/sk/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Vaše nové hlavné heslo nespĺňa pravidlá." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/sr/messages.json b/src/locales/sr/messages.json new file mode 100644 index 0000000000..bec0cfe1c5 --- /dev/null +++ b/src/locales/sr/messages.json @@ -0,0 +1,1411 @@ +{ + "bitwarden": { + "message": "Bitwarden" + }, + "filters": { + "message": "Филтери" + }, + "allItems": { + "message": "Све ставке" + }, + "favorites": { + "message": "Омиљени" + }, + "types": { + "message": "Врсте" + }, + "typeLogin": { + "message": "Пријава" + }, + "typeCard": { + "message": "Картица" + }, + "typeIdentity": { + "message": "Идентитет" + }, + "typeSecureNote": { + "message": "Сигурносна белешка" + }, + "folders": { + "message": "Фасцикле" + }, + "collections": { + "message": "Колекције" + }, + "searchVault": { + "message": "Претраћи Сеф" + }, + "addItem": { + "message": "Додај ставку" + }, + "shared": { + "message": "Дељено" + }, + "share": { + "message": "Подели" + }, + "shareItem": { + "message": "Поделити ставку" + }, + "sharedItem": { + "message": "Ставка дељена" + }, + "shareDesc": { + "message": "Choose an organization that you wish to share this item with. Sharing transfers ownership of the item to the organization. You will no longer be the direct owner of this item once it has been shared." + }, + "attachments": { + "message": "Прилози" + }, + "viewItem": { + "message": "Види ставку" + }, + "name": { + "message": "Име" + }, + "uri": { + "message": "УРЛ" + }, + "uriPosition": { + "message": "УРЛ $POSITION$", + "description": "A listing of URIs. Ex: URI 1, URI 2, URI 3, etc.", + "placeholders": { + "position": { + "content": "$1", + "example": "2" + } + } + }, + "newUri": { + "message": "Нови УРЛ" + }, + "username": { + "message": "Корисничко име" + }, + "password": { + "message": "Лозинка" + }, + "passphrase": { + "message": "Реченица" + }, + "editItem": { + "message": "Уреди ставку" + }, + "emailAddress": { + "message": "Имејл" + }, + "verificationCodeTotp": { + "message": "Верификациони код (TOTP)" + }, + "website": { + "message": "Веб сајт" + }, + "notes": { + "message": "Белешке" + }, + "customFields": { + "message": "Прилагођена Поља" + }, + "launch": { + "message": "Покрени" + }, + "copyValue": { + "message": "Копирај вредност", + "description": "Copy value to clipboard" + }, + "minimizeOnCopyToClipboard": { + "message": "Минимизирај приликом копирања у клипборду" + }, + "minimizeOnCopyToClipboardDesc": { + "message": "Минимизирај приликом копирања ставке у клипборду." + }, + "toggleVisibility": { + "message": "Пребаци видљивост" + }, + "toggleCollapse": { + "message": "Пребаци проширење", + "description": "Toggling an expand/collapse state." + }, + "cardholderName": { + "message": "Име Власника Картице" + }, + "number": { + "message": "Број" + }, + "brand": { + "message": "Произвођач" + }, + "expiration": { + "message": "Истек" + }, + "securityCode": { + "message": "Сигурносни код" + }, + "identityName": { + "message": "Име идентитета" + }, + "company": { + "message": "Предузеће" + }, + "ssn": { + "message": "Број социјалног осигурања" + }, + "passportNumber": { + "message": "Број пасоша" + }, + "licenseNumber": { + "message": "Број возачке дозволе" + }, + "email": { + "message": "Имејл" + }, + "phone": { + "message": "Телефон" + }, + "address": { + "message": "Адреса" + }, + "premiumRequired": { + "message": "Потребан Премијум" + }, + "premiumRequiredDesc": { + "message": "Премијум је потребно за употребу ове способности." + }, + "errorOccurred": { + "message": "Појавила се грешка." + }, + "error": { + "message": "Грешка" + }, + "january": { + "message": "Јануар" + }, + "february": { + "message": "Фебруар" + }, + "march": { + "message": "Mart" + }, + "april": { + "message": "Април" + }, + "may": { + "message": "Мај" + }, + "june": { + "message": "Јун" + }, + "july": { + "message": "Јул" + }, + "august": { + "message": "Август" + }, + "september": { + "message": "Септембар" + }, + "october": { + "message": "Октобар" + }, + "november": { + "message": "Новембар" + }, + "december": { + "message": "Децембар" + }, + "ex": { + "message": "нпр.", + "description": "Short abbreviation for 'example'." + }, + "title": { + "message": "Наслов" + }, + "mr": { + "message": "Г." + }, + "mrs": { + "message": "Гђц." + }, + "ms": { + "message": "Гђа." + }, + "dr": { + "message": "Др" + }, + "expirationMonth": { + "message": "Месец истека" + }, + "expirationYear": { + "message": "Година истека" + }, + "select": { + "message": "Изабери" + }, + "other": { + "message": "Остало" + }, + "generatePassword": { + "message": "Генерисање лозинке" + }, + "type": { + "message": "Тип" + }, + "firstName": { + "message": "Име" + }, + "middleName": { + "message": "Средње име" + }, + "lastName": { + "message": "Презиме" + }, + "address1": { + "message": "Адреса 1" + }, + "address2": { + "message": "Адреса 2" + }, + "address3": { + "message": "Адреса 3" + }, + "cityTown": { + "message": "Град" + }, + "stateProvince": { + "message": "Држава / покрајина" + }, + "zipPostalCode": { + "message": "Поштански број" + }, + "country": { + "message": "Земља" + }, + "save": { + "message": "Сачувај" + }, + "cancel": { + "message": "Откажи" + }, + "delete": { + "message": "Обриши" + }, + "favorite": { + "message": "Омиљено" + }, + "edit": { + "message": "Уреди" + }, + "authenticatorKeyTotp": { + "message": "Кључ аутентификације (TOTP)" + }, + "folder": { + "message": "Фасцикла" + }, + "newCustomField": { + "message": "Ново прилагођено поље" + }, + "value": { + "message": "Вредност" + }, + "dragToSort": { + "message": "Превуците за сортирање" + }, + "cfTypeText": { + "message": "Текст" + }, + "cfTypeHidden": { + "message": "Сакривено" + }, + "cfTypeBoolean": { + "message": "Булове" + }, + "remove": { + "message": "Уклони" + }, + "nameRequired": { + "message": "Име је неопходно." + }, + "addedItem": { + "message": "Ставка додата" + }, + "editedItem": { + "message": "Ставка уређена" + }, + "deleteItem": { + "message": "Обриши ставку" + }, + "deleteFolder": { + "message": "Избриши фасциклу" + }, + "deleteAttachment": { + "message": "Избриши прилог" + }, + "deleteItemConfirmation": { + "message": "Сигурно избрисати ову ставку?" + }, + "deletedItem": { + "message": "Пошаљи ставку у Ђубре" + }, + "overwritePasswordConfirmation": { + "message": "Сигурно преписати тренутну лозинку?" + }, + "noneFolder": { + "message": "Нема фасцикле", + "description": "This is the folder for uncategorized items" + }, + "addFolder": { + "message": "Додај фасциклу" + }, + "editFolder": { + "message": "Уреди фасциклу" + }, + "regeneratePassword": { + "message": "Поново генериши лозинку" + }, + "copyPassword": { + "message": "Копирај лозинку" + }, + "copyUri": { + "message": "Копирај УРЛ" + }, + "length": { + "message": "Дужина" + }, + "numWords": { + "message": "Број речи" + }, + "wordSeparator": { + "message": "Одвајач речи" + }, + "capitalize": { + "message": "Велика слова", + "description": "Make the first letter of a work uppercase." + }, + "includeNumber": { + "message": "Убаци број" + }, + "close": { + "message": "Затвори" + }, + "minNumbers": { + "message": "Минимално Бројева" + }, + "minSpecial": { + "message": "Минимално Специјално", + "description": "Minimum Special Characters" + }, + "ambiguous": { + "message": "Avoid Ambiguous Characters" + }, + "searchCollection": { + "message": "Претражи колекцију" + }, + "searchFolder": { + "message": "Претражи фасцикли" + }, + "searchFavorites": { + "message": "Претражи омиљене" + }, + "searchType": { + "message": "Претражи тип", + "description": "Search item type" + }, + "newAttachment": { + "message": "Додај нови прилог" + }, + "deletedAttachment": { + "message": "Избрисани прилози" + }, + "deleteAttachmentConfirmation": { + "message": "Сигурно обрисати овај прилог?" + }, + "attachmentSaved": { + "message": "Прилог је сачуван." + }, + "file": { + "message": "Датотека" + }, + "selectFile": { + "message": "Изабери датотеку." + }, + "maxFileSize": { + "message": "Максимална величина је 100МБ." + }, + "updateKey": { + "message": "Не можете да користите ову способност док не промените Ваш кључ за шифровање." + }, + "options": { + "message": "Опције" + }, + "editedFolder": { + "message": "Фасцикла измењена" + }, + "addedFolder": { + "message": "Фасцикла додата" + }, + "deleteFolderConfirmation": { + "message": "Сигурно обрисати ову фасциклу?" + }, + "deletedFolder": { + "message": "Deleted folder" + }, + "loginOrCreateNewAccount": { + "message": "Log in or create a new account to access your secure vault." + }, + "createAccount": { + "message": "Create Account" + }, + "logIn": { + "message": "Log In" + }, + "submit": { + "message": "Submit" + }, + "masterPass": { + "message": "Master Password" + }, + "masterPassDesc": { + "message": "The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it." + }, + "masterPassHintDesc": { + "message": "A master password hint can help you remember your password if you forget it." + }, + "reTypeMasterPass": { + "message": "Re-type Master Password" + }, + "masterPassHint": { + "message": "Master Password Hint (optional)" + }, + "settings": { + "message": "Settings" + }, + "passwordHint": { + "message": "Password Hint" + }, + "enterEmailToGetHint": { + "message": "Enter your account email address to receive your master password hint." + }, + "getMasterPasswordHint": { + "message": "Get master password hint" + }, + "emailRequired": { + "message": "Email address is required." + }, + "invalidEmail": { + "message": "Invalid email address." + }, + "masterPassRequired": { + "message": "Master password is required." + }, + "masterPassLength": { + "message": "Master password must be at least 8 characters long." + }, + "masterPassDoesntMatch": { + "message": "Master password confirmation does not match." + }, + "newAccountCreated": { + "message": "Your new account has been created! You may now log in." + }, + "masterPassSent": { + "message": "We've sent you an email with your master password hint." + }, + "unexpectedError": { + "message": "An unexpected error has occurred." + }, + "itemInformation": { + "message": "Item Information" + }, + "noItemsInList": { + "message": "There are no items to list." + }, + "verificationCode": { + "message": "Verification Code" + }, + "verificationCodeRequired": { + "message": "Verification code is required." + }, + "continue": { + "message": "Continue" + }, + "enterVerificationCodeApp": { + "message": "Enter the 6 digit verification code from your authenticator app." + }, + "enterVerificationCodeEmail": { + "message": "Enter the 6 digit verification code that was emailed to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "verificationCodeEmailSent": { + "message": "Verification email sent to $EMAIL$.", + "placeholders": { + "email": { + "content": "$1", + "example": "example@gmail.com" + } + } + }, + "rememberMe": { + "message": "Remember me" + }, + "sendVerificationCodeEmailAgain": { + "message": "Send verification code email again" + }, + "useAnotherTwoStepMethod": { + "message": "Use another two-step login method" + }, + "insertYubiKey": { + "message": "Insert your YubiKey into your computer's USB port, then touch its button." + }, + "insertU2f": { + "message": "Insert your security key into your computer's USB port. If it has a button, touch it." + }, + "recoveryCodeDesc": { + "message": "Lost access to all of your two-factor providers? Use your recovery code to disable all two-factor providers from your account." + }, + "recoveryCodeTitle": { + "message": "Recovery Code" + }, + "authenticatorAppTitle": { + "message": "Authenticator App" + }, + "authenticatorAppDesc": { + "message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.", + "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." + }, + "yubiKeyTitle": { + "message": "YubiKey OTP Security Key" + }, + "yubiKeyDesc": { + "message": "Use a YubiKey to access your account. Works with YubiKey 4, 4 Nano, 4C, and NEO devices." + }, + "duoDesc": { + "message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "duoOrganizationDesc": { + "message": "Verify with Duo Security for your organization using the Duo Mobile app, SMS, phone call, or U2F security key.", + "description": "'Duo Security' and 'Duo Mobile' are product names and should not be translated." + }, + "u2fDesc": { + "message": "Use any FIDO U2F enabled security key to access your account." + }, + "u2fTitle": { + "message": "FIDO U2F Security Key" + }, + "emailTitle": { + "message": "Email" + }, + "emailDesc": { + "message": "Verification codes will be emailed to you." + }, + "loginUnavailable": { + "message": "Login Unavailable" + }, + "noTwoStepProviders": { + "message": "This account has two-step login enabled, however, none of the configured two-step providers are supported by this device." + }, + "noTwoStepProviders2": { + "message": "Please add additional providers that are better supported across devices (such as an authenticator app)." + }, + "twoStepOptions": { + "message": "Опције дво-коракне пријаве" + }, + "selfHostedEnvironment": { + "message": "Self-hosted Environment" + }, + "selfHostedEnvironmentFooter": { + "message": "Specify the base URL of your on-premises hosted Bitwarden installation." + }, + "customEnvironment": { + "message": "Custom Environment" + }, + "customEnvironmentFooter": { + "message": "For advanced users. You can specify the base URL of each service independently." + }, + "baseUrl": { + "message": "УРЛ Сервера" + }, + "apiUrl": { + "message": "УРЛ АПИ Сервера" + }, + "webVaultUrl": { + "message": "УРЛ сервера Сефа" + }, + "identityUrl": { + "message": "УРЛ сервера идентитета" + }, + "notificationsUrl": { + "message": "УРЛ сервера нотификације" + }, + "iconsUrl": { + "message": "УРЛ сервера иконице" + }, + "environmentSaved": { + "message": "The environment URLs have been saved." + }, + "ok": { + "message": "У реду" + }, + "yes": { + "message": "Да" + }, + "no": { + "message": "Не" + }, + "overwritePassword": { + "message": "Препиши лозинку" + }, + "learnMore": { + "message": "Сазнај више" + }, + "featureUnavailable": { + "message": "Функција је недоступна" + }, + "loggedOut": { + "message": "Одјављено" + }, + "loginExpired": { + "message": "Ваша сесија пријаве је истекла." + }, + "logOutConfirmation": { + "message": "Заиста желите да се одјавите?" + }, + "logOut": { + "message": "Одјави се" + }, + "addNewLogin": { + "message": "Додај Нову Пријаву" + }, + "addNewItem": { + "message": "Додај нову ставку" + }, + "addNewFolder": { + "message": "Додај нову фасциклу" + }, + "view": { + "message": "Приказ" + }, + "account": { + "message": "Налог" + }, + "loading": { + "message": "Учитавање..." + }, + "lockNow": { + "message": "Закључај одмах" + }, + "passwordGenerator": { + "message": "Генератор Лозинке" + }, + "emailUs": { + "message": "Пошаљите нам поруку" + }, + "visitOurWebsite": { + "message": "Посети наш веб-сајт" + }, + "fileBugReport": { + "message": "File a Bug Report" + }, + "blog": { + "message": "Блог" + }, + "followUs": { + "message": "Прати нас" + }, + "syncVault": { + "message": "Синхронизуј сеф" + }, + "changeMasterPass": { + "message": "Промени Главну Лозинку" + }, + "changeMasterPasswordConfirmation": { + "message": "You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "fingerprintPhrase": { + "message": "Фраза отиска прста", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "yourAccountsFingerprint": { + "message": "Ваша фраза отиска прста за налог", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "goToWebVault": { + "message": "Ићи на Сеф" + }, + "getMobileApp": { + "message": "Апликација за телефон" + }, + "getBrowserExtension": { + "message": "Додатак за прегледач" + }, + "syncingComplete": { + "message": "Синхронизација завршена" + }, + "syncingFailed": { + "message": "Синхронизација није успела" + }, + "yourVaultIsLocked": { + "message": "Сеф је блокиран. Проверити главну лозинку за наставак." + }, + "unlock": { + "message": "Откључај" + }, + "loggedInAsOn": { + "message": "Пријављено са $EMAIL$ на $HOSTNAME$.", + "placeholders": { + "email": { + "content": "$1", + "example": "name@example.com" + }, + "hostname": { + "content": "$2", + "example": "bitwarden.com" + } + } + }, + "invalidMasterPassword": { + "message": "Погрешна главна лозинка" + }, + "twoStepLoginConfirmation": { + "message": "Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "twoStepLogin": { + "message": "Дво-коракна лозинка" + }, + "vaultTimeout": { + "message": "Тајмаут сефа" + }, + "vaultTimeoutDesc": { + "message": "Choose when your vault will timeout and perform the selected action." + }, + "immediately": { + "message": "Одмах" + }, + "tenSeconds": { + "message": "10 секунди" + }, + "twentySeconds": { + "message": "20 секунди" + }, + "thirtySeconds": { + "message": "30 секунди" + }, + "oneMinute": { + "message": "1 минут" + }, + "twoMinutes": { + "message": "2 минута" + }, + "fiveMinutes": { + "message": "5 минута" + }, + "fifteenMinutes": { + "message": "15 минута" + }, + "thirtyMinutes": { + "message": "30 минута" + }, + "oneHour": { + "message": "1 сат" + }, + "fourHours": { + "message": "4 сата" + }, + "onIdle": { + "message": "На мировање система" + }, + "onSleep": { + "message": "На успавање система" + }, + "onLocked": { + "message": "На блокирање система" + }, + "onRestart": { + "message": "На поновно покретање" + }, + "never": { + "message": "Никад" + }, + "security": { + "message": "Сигурност" + }, + "clearClipboard": { + "message": "Обриши клипборд", + "description": "Clipboard is the operating system thing where you copy/paste data to on your device." + }, + "clearClipboardDesc": { + "message": "Аутоматски обришите копиране вредности из клипборда.", + "description": "Clipboard is the operating system thing where you copy/paste data to on your device." + }, + "disableFavicon": { + "message": "Угаси иконице сајта" + }, + "disableFaviconDesc": { + "message": "Иконе веб сајта пружају препознатљиву слику поред сваке пријаву у сефу." + }, + "enableMinToTray": { + "message": "Умањи у систем трају" + }, + "enableMinToTrayDesc": { + "message": "When minimizing the window, show an icon in the system tray instead." + }, + "enableCloseToTray": { + "message": "Close to Tray Icon" + }, + "enableCloseToTrayDesc": { + "message": "When closing the window, show an icon in the system tray instead." + }, + "enableTray": { + "message": "Enable Tray Icon" + }, + "enableTrayDesc": { + "message": "Always show an icon in the system tray." + }, + "startToTray": { + "message": "Start To Tray Icon" + }, + "startToTrayDesc": { + "message": "When the application is first started, only show an icon in the system tray." + }, + "language": { + "message": "Језик" + }, + "languageDesc": { + "message": "Change the language used by the application. Restart is required." + }, + "theme": { + "message": "Theme" + }, + "themeDesc": { + "message": "Change the application's color theme." + }, + "dark": { + "message": "Dark", + "description": "Dark color" + }, + "light": { + "message": "Light", + "description": "Light color" + }, + "copy": { + "message": "Copy", + "description": "Copy to clipboard" + }, + "checkForUpdates": { + "message": "Check For Updates" + }, + "version": { + "message": "Version $VERSION_NUM$", + "placeholders": { + "version_num": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "restartToUpdate": { + "message": "Restart To Update" + }, + "restartToUpdateDesc": { + "message": "Version $VERSION_NUM$ is ready to install. You must restart the application to complete the installation. Do you want to restart and update now?", + "placeholders": { + "version_num": { + "content": "$1", + "example": "1.2.3" + } + } + }, + "updateAvailable": { + "message": "Update Available" + }, + "updateAvailableDesc": { + "message": "An update was found. Do you want to download it now?" + }, + "restart": { + "message": "Restart" + }, + "later": { + "message": "Later" + }, + "noUpdatesAvailable": { + "message": "No updates are currently available. You are using the latest version." + }, + "updateError": { + "message": "Update Error" + }, + "unknown": { + "message": "Unknown" + }, + "copyUsername": { + "message": "Copy Username" + }, + "copyNumber": { + "message": "Copy Number", + "description": "Copy credit card number" + }, + "copySecurityCode": { + "message": "Copy Security Code", + "description": "Copy credit card security code (CVV)" + }, + "premiumMembership": { + "message": "Premium Membership" + }, + "premiumManage": { + "message": "Manage Membership" + }, + "premiumManageAlert": { + "message": "You can manage your membership on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "premiumRefresh": { + "message": "Refresh Membership" + }, + "premiumNotCurrentMember": { + "message": "You are not currently a premium member." + }, + "premiumSignUpAndGet": { + "message": "Sign up for a premium membership and get:" + }, + "premiumSignUpStorage": { + "message": "1 GB encrypted storage for file attachments." + }, + "premiumSignUpTwoStep": { + "message": "Additional two-step login options such as YubiKey, FIDO U2F, and Duo." + }, + "premiumSignUpReports": { + "message": "Password hygiene, account health, and data breach reports to keep your vault safe." + }, + "premiumSignUpTotp": { + "message": "TOTP verification code (2FA) generator for logins in your vault." + }, + "premiumSignUpSupport": { + "message": "Priority customer support." + }, + "premiumSignUpFuture": { + "message": "All future premium features. More coming soon!" + }, + "premiumPurchase": { + "message": "Купити премијум" + }, + "premiumPurchaseAlert": { + "message": "You can purchase premium membership on the bitwarden.com web vault. Do you want to visit the website now?" + }, + "premiumCurrentMember": { + "message": "You are a premium member!" + }, + "premiumCurrentMemberThanks": { + "message": "Thank you for supporting Bitwarden." + }, + "premiumPrice": { + "message": "All for just $PRICE$ /year!", + "placeholders": { + "price": { + "content": "$1", + "example": "$10" + } + } + }, + "refreshComplete": { + "message": "Освежавање је завршено" + }, + "passwordHistory": { + "message": "Историја Лозинке" + }, + "clear": { + "message": "Очисти", + "description": "To clear something out. example: To clear browser history." + }, + "noPasswordsInList": { + "message": "Нама лозинке у листи." + }, + "undo": { + "message": "Опозови" + }, + "redo": { + "message": "Понови" + }, + "cut": { + "message": "Исеци", + "description": "Cut to clipboard" + }, + "paste": { + "message": "Залепи", + "description": "Paste from clipboard" + }, + "selectAll": { + "message": "Изабери све" + }, + "zoomIn": { + "message": "Увећање" + }, + "zoomOut": { + "message": "Умањење" + }, + "resetZoom": { + "message": "Ресетуј зумирање" + }, + "toggleFullScreen": { + "message": "Укључи/искључи приказ преко целог екрана" + }, + "reload": { + "message": "Поново учитај" + }, + "toggleDevTools": { + "message": "Укључи/искључи развојне алатке" + }, + "minimize": { + "message": "Минимизирај", + "description": "Minimize window" + }, + "zoom": { + "message": "Зумирај" + }, + "bringAllToFront": { + "message": "Постави све у предњи план", + "description": "Bring all windows to front (foreground)" + }, + "aboutBitwarden": { + "message": "О Bitwarden" + }, + "services": { + "message": "Услуге" + }, + "hideBitwarden": { + "message": "Сакриј Bitwarden" + }, + "hideOthers": { + "message": "Сакриј остале" + }, + "showAll": { + "message": "Прикажи све" + }, + "quitBitwarden": { + "message": "Затвори Bitwarden" + }, + "valueCopied": { + "message": "$VALUE$ копирано", + "description": "Value has been copied to the clipboard.", + "placeholders": { + "value": { + "content": "$1", + "example": "Password" + } + } + }, + "help": { + "message": "Помоћ" + }, + "window": { + "message": "Прозор" + }, + "checkPassword": { + "message": "Проверите да ли је лозинка изложена." + }, + "passwordExposed": { + "message": "Ова лозинка је изложена $VALUE$ пута. Требали би да је промените.", + "placeholders": { + "value": { + "content": "$1", + "example": "2" + } + } + }, + "passwordSafe": { + "message": "Ова лозинка није никада изложена. Треба да је сигурна за употребу." + }, + "baseDomain": { + "message": "Главни домен" + }, + "host": { + "message": "Хост", + "description": "A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'." + }, + "exact": { + "message": "Тачно" + }, + "startsWith": { + "message": "Почиње са" + }, + "regEx": { + "message": "Регуларни израз", + "description": "A programming term, also known as 'RegEx'." + }, + "matchDetection": { + "message": "Налажење везе", + "description": "URI match detection for auto-fill." + }, + "defaultMatchDetection": { + "message": "Стандардно налажење вење", + "description": "Default URI match detection for auto-fill." + }, + "toggleOptions": { + "message": "Пребацити опције" + }, + "organization": { + "message": "Организација", + "description": "An entity of multiple related people (ex. a team or business organization)." + }, + "default": { + "message": "Подразумевано" + }, + "exit": { + "message": "Изађи" + }, + "showHide": { + "message": "Покажи/Сакриј", + "description": "Text for a button that toggles the visibility of the window. Shows the window when it is hidden or hides the window if it is currently open." + }, + "hideToTray": { + "message": "Hide to Tray" + }, + "alwaysOnTop": { + "message": "Увек на врху", + "description": "Application window should always stay on top of other windows" + }, + "dateUpdated": { + "message": "Ажурирано", + "description": "ex. Date this item was updated" + }, + "datePasswordUpdated": { + "message": "Password Updated", + "description": "ex. Date this password was updated" + }, + "exportVault": { + "message": "Export Vault" + }, + "fileFormat": { + "message": "File Format" + }, + "warning": { + "message": "WARNING", + "description": "WARNING (should stay in capitalized letters if the language permits)" + }, + "exportWarningDesc": { + "message": "This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it." + }, + "exportMasterPassword": { + "message": "Enter your master password to export your vault data." + }, + "noOrganizationsList": { + "message": "You do not belong to any organizations. Organizations allow you to securely share items with other users." + }, + "noCollectionsInList": { + "message": "There are no collections to list." + }, + "ownership": { + "message": "Ownership" + }, + "whoOwnsThisItem": { + "message": "Who owns this item?" + }, + "strong": { + "message": "Strong", + "description": "ex. A strong password. Scale: Weak -> Good -> Strong" + }, + "good": { + "message": "Good", + "description": "ex. A good password. Scale: Weak -> Good -> Strong" + }, + "weak": { + "message": "Weak", + "description": "ex. A weak password. Scale: Weak -> Good -> Strong" + }, + "weakMasterPassword": { + "message": "Weak Master Password" + }, + "weakMasterPasswordDesc": { + "message": "The master password you have chosen is weak. You should use a strong master password (or a passphrase) to properly protect your Bitwarden account. Are you sure you want to use this master password?" + }, + "pin": { + "message": "PIN", + "description": "PIN code. Ex. The short code (often numeric) that you use to unlock a device." + }, + "unlockWithPin": { + "message": "Unlock with PIN" + }, + "setYourPinCode": { + "message": "Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application." + }, + "pinRequired": { + "message": "PIN code is required." + }, + "invalidPin": { + "message": "Invalid PIN code." + }, + "yourVaultIsLockedPinCode": { + "message": "Your vault is locked. Verify your PIN code to continue." + }, + "unlockWithWindowsHello": { + "message": "Unlock with Windows Hello" + }, + "windowsHelloConsentMessage": { + "message": "Verify for Bitwarden." + }, + "unlockWithTouchId": { + "message": "Unlock with Touch ID" + }, + "touchIdConsentMessage": { + "message": "Verify for Bitwarden." + }, + "lockWithMasterPassOnRestart": { + "message": "Lock with master password on restart" + }, + "preferences": { + "message": "Preferences" + }, + "enableMenuBar": { + "message": "Enable Menu Bar Icon" + }, + "enableMenuBarDesc": { + "message": "Always show an icon in the menu bar." + }, + "hideToMenuBar": { + "message": "Hide to Menu Bar" + }, + "selectOneCollection": { + "message": "You must select at least one collection." + }, + "premiumUpdated": { + "message": "You've upgraded to premium." + }, + "restore": { + "message": "Restore" + }, + "premiumManageAlertAppStore": { + "message": "You can manage your subscription from the App Store. Do you want to visit the App Store now?" + }, + "legal": { + "message": "Legal", + "description": "Noun. As in 'legal documents', like our terms of service and privacy policy." + }, + "termsOfService": { + "message": "Terms of Service" + }, + "privacyPolicy": { + "message": "Privacy Policy" + }, + "unsavedChangesConfirmation": { + "message": "Are you sure you want to leave? If you leave now then your current information will not be saved." + }, + "unsavedChangesTitle": { + "message": "Unsaved Changes" + }, + "clone": { + "message": "Clone" + }, + "passwordGeneratorPolicyInEffect": { + "message": "One or more organization policies are affecting your generator settings." + }, + "vaultTimeoutAction": { + "message": "Vault Timeout Action" + }, + "vaultTimeoutActionLockDesc": { + "message": "A locked vault requires that you re-enter your master password to access it again." + }, + "vaultTimeoutActionLogOutDesc": { + "message": "A logged out vault requires that you re-authenticate to access it again." + }, + "lock": { + "message": "Lock", + "description": "Verb form: to make secure or inaccesible by" + }, + "trash": { + "message": "Смеће", + "description": "Noun: a special folder to hold deleted items" + }, + "searchTrash": { + "message": "Тражи смеће" + }, + "permanentlyDeleteItem": { + "message": "Трајно избрисати ставку" + }, + "permanentlyDeleteItemConfirmation": { + "message": "Да ли сте сигурни да желите да трајно избришете ову ставку?" + }, + "permanentlyDeletedItem": { + "message": "Трајно избрисати ставку" + }, + "restoreItem": { + "message": "Врати ставку" + }, + "restoreItemConfirmation": { + "message": "Да ли сте сигурни да желите да вратите ову ставку?" + }, + "restoredItem": { + "message": "Ставка враћена" + }, + "permanentlyDelete": { + "message": "Трајно избрисати" + }, + "vaultTimeoutLogOutConfirmation": { + "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?" + }, + "vaultTimeoutLogOutConfirmationTitle": { + "message": "Timeout Action Confirmation" + }, + "enterpriseSingleSignOn": { + "message": "Enterprise Single Sign-On" + }, + "setMasterPassword": { + "message": "Постави Главну Лозинку" + }, + "ssoCompleteRegistration": { + "message": "In order to complete logging in with SSO, please set a master password to access and protect your vault." + }, + "newMasterPass": { + "message": "Нова Главна Лозинка" + }, + "confirmNewMasterPass": { + "message": "Потрдити нову Главну Лозинку" + }, + "masterPasswordPolicyInEffect": { + "message": "One or more organization policies require your master password to meet the following requirements:" + }, + "policyInEffectMinComplexity": { + "message": "Minimum complexity score of $SCORE$", + "placeholders": { + "score": { + "content": "$1", + "example": "4" + } + } + }, + "policyInEffectMinLength": { + "message": "Minimum length of $LENGTH$", + "placeholders": { + "length": { + "content": "$1", + "example": "14" + } + } + }, + "policyInEffectUppercase": { + "message": "Contain one or more uppercase characters" + }, + "policyInEffectLowercase": { + "message": "Contain one or more lowercase characters" + }, + "policyInEffectNumbers": { + "message": "Садрже један или више бројева" + }, + "policyInEffectSpecial": { + "message": "Садрже један или више бројева ових специјалних слова $CHARS$", + "placeholders": { + "chars": { + "content": "$1", + "example": "!@#$%^&*" + } + } + }, + "masterPasswordPolicyRequirementsNotMet": { + "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." + } +} diff --git a/src/locales/sv/messages.json b/src/locales/sv/messages.json index 95dc2d595f..0f0620a772 100644 --- a/src/locales/sv/messages.json +++ b/src/locales/sv/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Ditt nya huvudlösenord uppfyller inte kraven i policyn." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/th/messages.json b/src/locales/th/messages.json index 7fd91c01fb..c7ff4e2412 100644 --- a/src/locales/th/messages.json +++ b/src/locales/th/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/tr/messages.json b/src/locales/tr/messages.json index a225a69d97..3ad989edd8 100644 --- a/src/locales/tr/messages.json +++ b/src/locales/tr/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Yeni ana parolanız ilke gereksinimlerini karşılamıyor." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/uk/messages.json b/src/locales/uk/messages.json index 2a6d8c3b69..e20a3c75a9 100644 --- a/src/locales/uk/messages.json +++ b/src/locales/uk/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Ваш новий головний пароль не задовольняє вимоги політики." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/vi/messages.json b/src/locales/vi/messages.json index 37fd3d05b7..1a8600eca6 100644 --- a/src/locales/vi/messages.json +++ b/src/locales/vi/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/zh_CN/messages.json b/src/locales/zh_CN/messages.json index ddc7e84bff..4147148c6e 100644 --- a/src/locales/zh_CN/messages.json +++ b/src/locales/zh_CN/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "您的新主密码不符合策略要求。" + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } diff --git a/src/locales/zh_TW/messages.json b/src/locales/zh_TW/messages.json index aab2d37d2b..2483074184 100644 --- a/src/locales/zh_TW/messages.json +++ b/src/locales/zh_TW/messages.json @@ -1401,5 +1401,11 @@ }, "masterPasswordPolicyRequirementsNotMet": { "message": "Your new master password does not meet the policy requirements." + }, + "acceptPolicies": { + "message": "By checking this box you agree to the following:" + }, + "acceptPoliciesError": { + "message": "Terms of Service and Privacy Policy have not been acknowledged." } } From 22ddd8db60b4073f9e9165db68ac45a468d67849 Mon Sep 17 00:00:00 2001 From: Hinton Date: Wed, 16 Dec 2020 09:38:28 +0100 Subject: [PATCH 4/8] Ensure settings are saved --- src/app/accounts/settings.component.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/app/accounts/settings.component.ts b/src/app/accounts/settings.component.ts index eb0b8b259d..2abab4b10d 100644 --- a/src/app/accounts/settings.component.ts +++ b/src/app/accounts/settings.component.ts @@ -275,6 +275,7 @@ export class SettingsComponent implements OnInit { async saveCloseToTray() { if (this.requireEnableTray) { this.enableTray = true; + await this.storageService.save(ElectronConstants.enableTrayKey, this.enableTray); } await this.storageService.save(ElectronConstants.enableCloseToTrayKey, this.enableCloseToTray); @@ -289,7 +290,9 @@ export class SettingsComponent implements OnInit { if (confirm) { this.startToTray = false; + await this.storageService.save(ElectronConstants.enableStartToTrayKey, this.startToTray); this.enableCloseToTray = false; + await this.storageService.save(ElectronConstants.enableCloseToTrayKey, this.enableCloseToTray); } else { this.enableTray = true; } @@ -305,6 +308,7 @@ export class SettingsComponent implements OnInit { async saveStartToTray() { if (this.requireEnableTray) { this.enableTray = true; + await this.storageService.save(ElectronConstants.enableTrayKey, this.enableTray); } await this.storageService.save(ElectronConstants.enableStartToTrayKey, this.startToTray); From 5d1057b3fa4d139c8b95afc897bb27a9fbf9ffed Mon Sep 17 00:00:00 2001 From: Hinton Date: Wed, 16 Dec 2020 09:41:00 +0100 Subject: [PATCH 5/8] Update jslib --- jslib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jslib b/jslib index 2c414ce27a..d7b5f0a26b 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 2c414ce27a5c14f6cd7f86cfd07096a192d058ca +Subproject commit d7b5f0a26b15472b37aef2248dea51a2aa6d4916 From 8f704d20e517696b9947b4b42856197c8c391f35 Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Thu, 17 Dec 2020 14:53:38 -0600 Subject: [PATCH 6/8] Force update of tray menu if on linux --- src/main/messaging.main.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/messaging.main.ts b/src/main/messaging.main.ts index a6a6079331..665fd30a57 100644 --- a/src/main/messaging.main.ts +++ b/src/main/messaging.main.ts @@ -97,6 +97,7 @@ export class MessagingMain { if (lockNowTrayMenuItem != null) { lockNowTrayMenuItem.enabled = isAuthenticated && !isLocked; } + this.main.trayMain.updateContextMenu(); } private addOpenAtLogin() { From bd94ddb89693b3c9092c3b15d4718d9754e231c6 Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Fri, 18 Dec 2020 10:12:17 -0600 Subject: [PATCH 7/8] Update jslib reference --- jslib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jslib b/jslib index d7b5f0a26b..acdbc22953 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit d7b5f0a26b15472b37aef2248dea51a2aa6d4916 +Subproject commit acdbc229533a4f5f57b83b882ce48037a8a17299 From aced23574b6744268127285e4dd1a9f17af5872d Mon Sep 17 00:00:00 2001 From: Chad Scharf <3904944+cscharf@users.noreply.github.com> Date: Fri, 18 Dec 2020 16:56:59 -0500 Subject: [PATCH 8/8] Updated to show icon vs. caret for non-nested item --- package-lock.json | 7 ++++++- src/app/vault/groupings.component.html | 14 ++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 083ab5727b..000330a39c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1971,6 +1971,11 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -3705,7 +3710,7 @@ "dev": true }, "duo_web_sdk": { - "version": "git+https://github.com/duosecurity/duo_web_sdk.git#410a9186cc34663c4913b17d6528067cd3331f1d", + "version": "git+https://github.com/duosecurity/duo_web_sdk.git#4c5df7a4001b8b03e2d7130d9096b697c4032e77", "from": "git+https://github.com/duosecurity/duo_web_sdk.git" }, "duplexer3": { diff --git a/src/app/vault/groupings.component.html b/src/app/vault/groupings.component.html index 5403eb002f..75c88863f6 100644 --- a/src/app/vault/groupings.component.html +++ b/src/app/vault/groupings.component.html @@ -50,15 +50,16 @@ -