1
0
mirror of https://github.com/bitwarden/browser.git synced 2025-03-10 13:09:37 +01:00

Merge branch 'main' into autofill/PM-15190-hide-empty-ciphers-from-autofill

This commit is contained in:
Evan Bassler 2024-12-20 10:24:48 -06:00 committed by GitHub
commit ec9ad6a392
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
255 changed files with 9813 additions and 2729 deletions

View File

@ -1433,7 +1433,7 @@ jobs:
crowdin-push:
name: Crowdin Push
if: github.ref == 'refs/heads/main'
if: github.event_name != 'pull_request_target' && github.ref == 'refs/heads/main'
needs:
- linux
- windows

View File

@ -58,3 +58,31 @@ jobs:
run: |
npm ci
npm run lint
rust:
name: Run Rust lint on ${{ matrix.os }}
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
steps:
- name: Checkout repo
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Check Rust version
run: rustup --version
- name: Run cargo fmt
working-directory: ./apps/desktop/desktop_native
run: cargo fmt --check
- name: Run Clippy
working-directory: ./apps/desktop/desktop_native
run: cargo clippy --all-features --tests
env:
RUSTFLAGS: "-D warnings"

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "قيِّم هذه الإضافة"
},
"rateExtensionDesc": {
"message": "يرجى النظر في مساعدتنا بكتابة تعليق إيجابي!"
},
"browserNotSupportClipboard": {
"message": "متصفح الويب الخاص بك لا يدعم خاصية النسخ السهل. يرجى استخدام النسخ اليدوي."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -193,10 +193,10 @@
"message": "Kimliyi avto-doldur"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "Doğrulama kodunu doldur"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "Doğrulama Kodunu Doldur",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -648,9 +648,6 @@
"rateExtension": {
"message": "Uzantını qiymətləndir"
},
"rateExtensionDesc": {
"message": "Gözəl bir rəy ilə bizə dəstək ola bilərsiniz!"
},
"browserNotSupportClipboard": {
"message": "Veb brauzeriniz lövhəyə kopyalamağı dəstəkləmir. Əvəzində əllə kopyalayın."
},
@ -3588,11 +3585,11 @@
"description": "Screen reader text (aria-label) for unlock account button in overlay"
},
"totpCodeAria": {
"message": "Time-based One-Time Password Verification Code",
"message": "Vaxt əsaslı Təkistifadəlik Parol Doğrulama Kodu",
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "Hazırkı TOTP-nin bitməsinə qalan vaxt",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Uzantı ikonunda giriş üçün avto-doldurma təklif sayını göstər"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "İlkin sistem"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Vacib bildiriş"
},
"setupTwoStepLogin": {
"message": "İki addımlı girişi qur"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden, 2025-ci ilin Fevral ayından etibarən yeni cihazlardan gələn girişləri doğrulamaq üçün hesabınızın e-poçtuna bir kod göndərəcək."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Hesabınızı qorumaq üçün alternativ bir yol kimi iki addımlı girişi qura və ya e-poçtunuzu müraciət edə biləcəyiniz e-poçtla dəyişdirə bilərsiniz."
},
"remindMeLater": {
"message": "Daha sonra xatırlat"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "$EMAIL$ e-poçtunuza güvənli şəkildə müraciət edə bilirsiniz?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Xeyr, edə bilmirəm"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Bəli, e-poçtuma güvənli şəkildə müraciət edə bilirəm"
},
"turnOnTwoStepLogin": {
"message": "İki addımlı girişi işə sal"
},
"changeAcctEmail": {
"message": "Hesabın e-poçtunu dəyişdir"
},
"extensionWidth": {
"message": "Uzantı eni"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Ацаніць пашырэнне"
},
"rateExtensionDesc": {
"message": "Падумайце пра тое, каб дапамагчы нам добрым водгукам!"
},
"browserNotSupportClipboard": {
"message": "Ваш вэб-браўзер не падтрымлівае капіяванне даных у буфер абмену. Скапіюйце іх уручную."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Оценяване на разширението"
},
"rateExtensionDesc": {
"message": "Молим да ни помогнете, като оставите положителен отзив!"
},
"browserNotSupportClipboard": {
"message": "Браузърът не поддържа копиране в буфера, затова копирайте на ръка."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Показване на броя предложения за автоматично попълване на данни за вписване върху иконката на добавката"
},
"showQuickCopyActions": {
"message": "Показване на действията за бързо копиране в трезора"
},
"systemDefault": {
"message": "По подразбиране за системата"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Бета"
},
"importantNotice": {
"message": "Важно съобщение"
},
"setupTwoStepLogin": {
"message": "Настройте двустепенно удостоверяване"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Битуорден ще изпрати код до е-пощата Ви, за потвърждаване на вписването от нови устройства. Това ще започне от февруари 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Можете да настроите двустепенно удостоверяване, като различен метод на защита, или ако е необходимо да промените е-пощата си с такава, до която имате достъп."
},
"remindMeLater": {
"message": "Напомнете ми по-късно"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Имате ли сигурен достъп до е-пощата си $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Не, нямам"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Да, имам достъп до е-пощата си"
},
"turnOnTwoStepLogin": {
"message": "Включване на двустепенното удостоверяване"
},
"changeAcctEmail": {
"message": "Промяна на е-пощата"
},
"extensionWidth": {
"message": "Ширина на разширението"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "এক্সটেনশনটি মূল্যায়ন করুন"
},
"rateExtensionDesc": {
"message": "দয়া করে একটি ভাল পর্যালোচনার মাধ্যমে সাহায্য করতে আমাদের বিবেচনা করুন!"
},
"browserNotSupportClipboard": {
"message": "আপনার ওয়েব ব্রাউজার সহজে ক্লিপবোর্ড অনুলিপি সমর্থন করে না। পরিবর্তে এটি নিজেই অনুলিপি করুন।"
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Valora aquesta extensió"
},
"rateExtensionDesc": {
"message": "Considereu ajudar-nos amb una bona valoració!"
},
"browserNotSupportClipboard": {
"message": "El vostre navegador web no admet la còpia fàcil del porta-retalls. Copieu-ho manualment."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Ohodnotit rozšíření"
},
"rateExtensionDesc": {
"message": "Pomozte nám napsáním dobré recenze!"
},
"browserNotSupportClipboard": {
"message": "Váš webový prohlížeč nepodporuje automatické kopírování do schránky. Musíte ho zkopírovat ručně."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Zobrazit počet návrhů automatického vyplňování přihlášení na ikoně rozšíření"
},
"showQuickCopyActions": {
"message": "Zobrazit akce rychlé kopie v trezoru"
},
"systemDefault": {
"message": "Systémový výchozí"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Důležité upozornění"
},
"setupTwoStepLogin": {
"message": "Nastavit dvoufázové přihlášení"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden odešle kód na e-mail Vašeho účtu pro ověření přihlášení z nových zařízení počínaje únorem 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Dvoufázové přihlášení můžete nastavit jako alternativní způsob ochrany Vašeho účtu nebo změnit svůj e-mail na ten, k němuž můžete přistupovat."
},
"remindMeLater": {
"message": "Připomenout později"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Máte spolehlivý přístup ke svému e-mailu $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Ne, nemám"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Ano, ke svému e-mailu mám přístup"
},
"turnOnTwoStepLogin": {
"message": "Zapnout dvoufázové přihlášení"
},
"changeAcctEmail": {
"message": "Změnit e-mail účtu"
},
"extensionWidth": {
"message": "Šířka rozšíření"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rhoi eich barn ar yr estyniad"
},
"rateExtensionDesc": {
"message": "Ystyriwch ein helpu ni gydag adolygiad da!"
},
"browserNotSupportClipboard": {
"message": "Dyw eich porwr gwe ddim yn cefnogi copïo drwy'r clipfwrdd yn hawdd. Copïwch â llaw yn lle."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Bedøm udvidelsen"
},
"rateExtensionDesc": {
"message": "Overvej om du vil hjælpe os med en god anmeldelse!"
},
"browserNotSupportClipboard": {
"message": "Din webbrowser understøtter ikke udklipsholder kopiering. Kopiér det manuelt i stedet."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Vis antal login-autoudfyldningsforslag på udvidelsesikon"
},
"showQuickCopyActions": {
"message": "Vis hurtig-kopihandlinger på Boks"
},
"systemDefault": {
"message": "Systemstandard"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Vigtig notits"
},
"setupTwoStepLogin": {
"message": "Opsæt totrins-login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Startende i februar 2025, sender Bitwarden en kode til kontoe-mailadressen for at bekræfte logins fra nye enheder."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Man kan opsætte totrins-login som en alternativ måde at beskytte sin konto på eller ændre sin e-mail til en, man kan tilgå."
},
"remindMeLater": {
"message": "Påmind senere"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Er der pålidelig adgang til e-mailadressen, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nej, jeg gør ikke"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Ja, e-mailadressen kan pålideligt tilgås"
},
"turnOnTwoStepLogin": {
"message": "Slå totrins-login til"
},
"changeAcctEmail": {
"message": "Skift kontoe-mailadresse"
},
"extensionWidth": {
"message": "Udvidelsesbredde"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Erweiterung bewerten"
},
"rateExtensionDesc": {
"message": "Wir würden uns freuen, wenn du uns mit einer positiven Bewertung helfen könntest!"
},
"browserNotSupportClipboard": {
"message": "Den Browser unterstützt das einfache Kopieren nicht. Bitte kopiere es manuell."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Anzahl der Vorschläge zum Auto-Ausfüllen von Zugangsdaten auf dem Erweiterungssymbol anzeigen"
},
"showQuickCopyActions": {
"message": "Schnellkopier-Aktionen im Tresor anzeigen"
},
"systemDefault": {
"message": "Systemstandard"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Wichtiger Hinweis"
},
"setupTwoStepLogin": {
"message": "Richte die zweistufige Anmeldung ein"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden wird einen Code an deine Konto-E-Mail-Adresse senden, um Anmeldungen von neuen Geräten ab Februar 2025 zu überprüfen."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Du kannst die zweistufige Anmeldung als eine alternative Methode einrichten, um deinen Account zu schützen, oder ändere deine E-Mail-Adresse zu einer, auf die du zugreifen kannst."
},
"remindMeLater": {
"message": "Erinnere mich später"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Hast du zuverlässigen Zugriff auf deine E-Mail-Adresse $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nein, habe ich nicht"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Ja, ich kann zuverlässig auf meine E-Mails zugreifen"
},
"turnOnTwoStepLogin": {
"message": "Aktiviere die zweistufige Anmeldung"
},
"changeAcctEmail": {
"message": "Ändere die E-Mail-Adresse des Kontos"
},
"extensionWidth": {
"message": "Breite der Erweiterung"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Βαθμολογήστε την επέκταση"
},
"rateExtensionDesc": {
"message": "Παρακαλούμε σκεφτείτε να μας βοηθήσετε με μια καλή κριτική!"
},
"browserNotSupportClipboard": {
"message": "Το πρόγραμμα περιήγησης ιστού δεν υποστηρίζει εύκολη αντιγραφή πρόχειρου. Αντιγράψτε το με το χέρι αντ'αυτού."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Εμφάνιση αριθμού προτάσεων αυτόματης συμπλήρωσης σύνδεσης στο εικονίδιο επέκτασης"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Προεπιλογή συστήματος"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Valora la extensión"
},
"rateExtensionDesc": {
"message": "¡Por favor, considera ayudarnos con una buena reseña!"
},
"browserNotSupportClipboard": {
"message": "Tu navegador web no soporta copiar al portapapeles facilmente. Cópialo manualmente."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Hinda seda laiendust"
},
"rateExtensionDesc": {
"message": "Soovi korral võid meid positiivse hinnanguga toetada!"
},
"browserNotSupportClipboard": {
"message": "Kasutatav brauser ei toeta lihtsat lõikelaua kopeerimist. Kopeeri see käsitsi."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Baloratu gehigarria"
},
"rateExtensionDesc": {
"message": "Mesedez, aipu on batekin lagundu!"
},
"browserNotSupportClipboard": {
"message": "Zure web nabigatzaileak ez du onartzen arbelean erraz kopiatzea. Eskuz kopiatu."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "به این افزونه امتیاز دهید"
},
"rateExtensionDesc": {
"message": "لطفاً با یک بررسی خوب به ما کمک کنید!"
},
"browserNotSupportClipboard": {
"message": "مرورگر شما از کپی کلیپ بورد آسان پشتیبانی نمی‌کند. به جای آن به صورت دستی کپی کنید."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Arvioi laajennus"
},
"rateExtensionDesc": {
"message": "Harkitse tukemistamme hyvällä arvostelulla!"
},
"browserNotSupportClipboard": {
"message": "Selaimesi ei tue helppoa leikepöydälle kopiointia. Kopioi kohde manuaalisesti."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Näytä automaattitäytön ehdotusten määrä laajennuksen kuvakkeessa"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Järjestelmän oletus"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Laajennuksen leveys"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "I-rate ang extension"
},
"rateExtensionDesc": {
"message": "Paki-isipan ang pagtulong sa amin sa pamamagitan ng isang magandang review!"
},
"browserNotSupportClipboard": {
"message": "Hindi suportado ng iyong web browser ang madaling pag-copy ng clipboard. Kopya ito manually sa halip."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Noter l'extension"
},
"rateExtensionDesc": {
"message": "Merci de nous aider en mettant une bonne note !"
},
"browserNotSupportClipboard": {
"message": "Votre navigateur web ne supporte pas la copie rapide depuis le presse-papier. Copiez-le manuellement à la place."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Afficher le nombre de suggestions de saisie automatique d'identifiant sur l'icône d'extension"
},
"showQuickCopyActions": {
"message": "Afficher les actions de copie rapide dans le coffre"
},
"systemDefault": {
"message": "Par défaut"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Largeur de l'extension"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Valorar a extensión"
},
"rateExtensionDesc": {
"message": "Por favor, considera axudarnos cunha boa recensión!"
},
"browserNotSupportClipboard": {
"message": "O teu navegador web non soporta copia doada ao portapapeis. Cópiao manualmente no seu lugar."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "דירוג הרחבה"
},
"rateExtensionDesc": {
"message": "אם נהנית מהתוכנה, בבקשה דרג את התוכנה וכתוב דירוג עם חוות דעת טובה!"
},
"browserNotSupportClipboard": {
"message": "הדפדפן שלך לא תומך בהעתקה ללוח. אנא העתק בצורה ידנית."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the Extension"
},
"rateExtensionDesc": {
"message": "कृपया एक अच्छी समीक्षा के साथ हमारी मदत करने पर विचार करें!"
},
"browserNotSupportClipboard": {
"message": "आपका वेब ब्राउज़र आसान क्लिपबोर्ड कॉपीिंग का समर्थन नहीं करता है। इसके बजाय इसे मैन्युअल रूप से कॉपी करें।"
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -20,16 +20,16 @@
"message": "Stvori račun"
},
"newToBitwarden": {
"message": "New to Bitwarden?"
"message": "Novi u Bitwardenu?"
},
"logInWithPasskey": {
"message": "Log in with passkey"
"message": "Prijava pristupnim ključem"
},
"useSingleSignOn": {
"message": "Use single sign-on"
"message": "Jedinstvena prijava (SSO)"
},
"welcomeBack": {
"message": "Welcome back"
"message": "Dobro došli natrag"
},
"setAStrongPassword": {
"message": "Postavi jaku lozinku"
@ -84,7 +84,7 @@
"message": "Pridruži se organizaciji"
},
"joinOrganizationName": {
"message": "Join $ORGANIZATIONNAME$",
"message": "Pidruži se $ORGANIZATIONNAME$",
"placeholders": {
"organizationName": {
"content": "$1",
@ -120,7 +120,7 @@
"message": "Kopiraj lozinku"
},
"copyPassphrase": {
"message": "Copy passphrase"
"message": "Kopiraj fraznu lozinku"
},
"copyNote": {
"message": "Kopiraj bilješku"
@ -153,13 +153,13 @@
"message": "Kopiraj OIB"
},
"copyPrivateKey": {
"message": "Copy private key"
"message": "Kopiraj privatni ključ"
},
"copyPublicKey": {
"message": "Copy public key"
"message": "Kopiraj javni ključ"
},
"copyFingerprint": {
"message": "Copy fingerprint"
"message": "Kopiraj otisak prsta"
},
"copyCustomField": {
"message": "Kopiraj $FIELD$",
@ -177,7 +177,7 @@
"message": "Kopiraj bilješke"
},
"fill": {
"message": "Fill",
"message": "Ispuni",
"description": "This string is used on the vault page to indicate autofilling. Horizontal space is limited in the interface here so try and keep translations as concise as possible."
},
"autoFill": {
@ -193,10 +193,10 @@
"message": "Auto-ispuna identiteta"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "Ispuni kôd za provjeru"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "Ispuni kôd za provjeru",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -284,7 +284,7 @@
"message": "Nastavi na web aplikaciju?"
},
"continueToWebAppDesc": {
"message": "Pronađi viđe značajki svojeg Bitwarden računa u web aplikaciji."
"message": "Pronađi više značajki svojeg Bitwarden računa u web aplikaciji."
},
"continueToHelpCenter": {
"message": "Nastavi u centar za pomoć?"
@ -349,10 +349,10 @@
"message": "Stvori laka i sigurna iskustva prijave bez tradicionalnih lozinki uz Passwordless.dev. Saznaj više na web stranici bitwarden.com."
},
"freeBitwardenFamilies": {
"message": "Besplatan obiteljski Bitwarden"
"message": "Besplatni Bitwarden Families"
},
"freeBitwardenFamiliesPageDesc": {
"message": "Ispunjavaš uvjete za besplatni obiteljski Bitwarden. Iskoristi ovu ponudu u web aplikaciji već danas."
"message": "Ispunjavaš uvjete za besplatni Bitwarden Families. Iskoristi ovu ponudu u web aplikaciji već danas."
},
"version": {
"message": "Verzija"
@ -443,7 +443,7 @@
"message": "Generiraj lozinku"
},
"generatePassphrase": {
"message": "Generate passphrase"
"message": "Generiraj frazu lozinke"
},
"regeneratePassword": {
"message": "Ponovno generiraj lozinku"
@ -607,7 +607,7 @@
"message": "Pokreni web stranicu"
},
"launchWebsiteName": {
"message": "Launch website $ITEMNAME$",
"message": "Otvori stranicu $ITEMNAME$",
"placeholders": {
"itemname": {
"content": "$1",
@ -648,9 +648,6 @@
"rateExtension": {
"message": "Ocijeni proširenje"
},
"rateExtensionDesc": {
"message": "Razmotri da nam pomogneš dobrom recenzijom!"
},
"browserNotSupportClipboard": {
"message": "Web preglednik ne podržava jednostavno kopiranje međuspremnika. Umjesto toga ručno kopirajte."
},
@ -804,7 +801,7 @@
"message": "Poslali smo e-poštu s podsjetnikom glavne lozinke."
},
"verificationCodeRequired": {
"message": "Potvrdni kôd je obavezan."
"message": "Kôd za provjeru je obavezan."
},
"webauthnCancelOrTimeout": {
"message": "Autentifikacija je otkazana ili je trajala predugo. Molimo pokušaj ponovno."
@ -862,7 +859,7 @@
"message": "Prijavi se"
},
"logInToBitwarden": {
"message": "Log in to Bitwarden"
"message": "Prijavi se u Bitwarden"
},
"restartRegistration": {
"message": "Ponovno pokreni registraciju"
@ -1133,7 +1130,7 @@
"description": "WARNING (should stay in capitalized letters if the language permits)"
},
"warningCapitalized": {
"message": "Warning",
"message": "Upozorenje",
"description": "Warning (should maintain locale-relevant capitalization)"
},
"confirmVaultExport": {
@ -1312,7 +1309,7 @@
"message": "Automatski kopiraj TOTP"
},
"disableAutoTotpCopyDesc": {
"message": "Ako za prijavu postoji autentifikatorski ključ, kopiraj TOTP kontrolni kôd u međuspremnik nakon auto-ispune prijave."
"message": "Ako za prijavu postoji autentifikatorski ključ, kopiraj TOTP kôd za provjeru u međuspremnik nakon auto-ispune prijave."
},
"enableAutoBiometricsPrompt": {
"message": "Traži biometrijsku autentifikaciju pri pokretanju"
@ -1324,16 +1321,16 @@
"message": "Za korištenje ove značajke potrebno je Premium članstvo."
},
"enterVerificationCodeApp": {
"message": "Unesi 6-znamenkasti kontrolni kôd iz autentifikatorske aplikacije."
"message": "Unesi 6-znamenkasti kôd za provjeru iz autentifikatorske aplikacije."
},
"authenticationTimeout": {
"message": "Authentication timeout"
"message": "Istek vremena za autentifikaciju"
},
"authenticationSessionTimedOut": {
"message": "The authentication session timed out. Please restart the login process."
"message": "Sesija za autentifikaciju je istekla. Ponovi proces prijave."
},
"enterVerificationCodeEmail": {
"message": "Unesi 6-znamenkasti kontrolni kôd poslan e-poštom na $EMAIL$.",
"message": "Unesi 6-znamenkasti kôd za provjeru poslan e-poštom na $EMAIL$.",
"placeholders": {
"email": {
"content": "$1",
@ -1450,7 +1447,7 @@
"message": "URL poslužitelja"
},
"selfHostBaseUrl": {
"message": "Self-host server URL",
"message": "URL vlastitog poslužitelja",
"description": "Label for field requesting a self-hosted integration service URL"
},
"apiUrl": {
@ -1482,10 +1479,10 @@
"message": "Prikaži prijedloge auto-ispune na poljima obrazaca"
},
"showInlineMenuIdentitiesLabel": {
"message": "Display identities as suggestions"
"message": "Prikaži identitete kao prijedloge"
},
"showInlineMenuCardsLabel": {
"message": "Display cards as suggestions"
"message": "Prikaži platne kartice kao prijedloge"
},
"showInlineMenuOnIconSelectionLabel": {
"message": "Prikaži prijedloge kada je odabrana ikona"
@ -1604,7 +1601,7 @@
"description": "This describes a value that is 'linked' (tied) to another value."
},
"popup2faCloseMessage": {
"message": "Ako klikneš izvan iskočnog prozora, za provjeru kontrolnog kôda iz e-pošte, on će se zatvoriti. Želiš li ovaj iskočni prozor otvoriti u novom prozoru kako se ne bi zatvorio?"
"message": "Ako klikneš izvan iskočnog prozora, za provjeru kôda za provjeru iz e-pošte, on će se zatvoriti. Želiš li ovaj iskočni prozor otvoriti u novom prozoru kako se ne bi zatvorio?"
},
"popupU2fCloseMessage": {
"message": "Ovaj preglednik ne može obraditi U2F zahtjeve u ovom iskočnom prozoru. Želiš li otvoriti ovaj iskočni prozor u novom prozoru za prijavu putem U2F?"
@ -1679,7 +1676,7 @@
"message": "prosinac"
},
"securityCode": {
"message": "Kontrolni broj"
"message": "Sigurnosni kôd"
},
"ex": {
"message": "npr."
@ -1778,7 +1775,7 @@
"message": "Identitet"
},
"typeSshKey": {
"message": "SSH key"
"message": "SSH ključ"
},
"newItemHeader": {
"message": "Novi $TYPE$",
@ -1811,13 +1808,13 @@
"message": "Povijest"
},
"generatorHistory": {
"message": "Generator history"
"message": "Povijest generatora"
},
"clearGeneratorHistoryTitle": {
"message": "Clear generator history"
"message": "Očisti povijest generatora"
},
"cleargGeneratorHistoryDescription": {
"message": "If you continue, all entries will be permanently deleted from generator's history. Are you sure you want to continue?"
"message": "Cijela povijest generatora biti će trajno izbirsana. Sigurno želiš nastaviti?"
},
"back": {
"message": "Natrag"
@ -1856,7 +1853,7 @@
"message": "Sigurne bilješke"
},
"sshKeys": {
"message": "SSH Keys"
"message": "SSH ključevi"
},
"clear": {
"message": "Očisti",
@ -1939,10 +1936,10 @@
"message": "Očisti povijest"
},
"nothingToShow": {
"message": "Nothing to show"
"message": "Ništa za prikazati"
},
"nothingGeneratedRecently": {
"message": "You haven't generated anything recently"
"message": "Ništa nije generirano"
},
"remove": {
"message": "Ukloni"
@ -2531,7 +2528,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendPasswordDescV3": {
"message": "Add an optional password for recipients to access this Send.",
"message": "Dodaj opcionalnu lozinku za primatelje ovog Senda.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendNotesDesc": {
@ -2729,7 +2726,7 @@
"description": "Used as a card title description on the set password page to explain why the user is there"
},
"cardMetrics": {
"message": "out of $TOTAL$",
"message": "od $TOTAL$",
"placeholders": {
"total": {
"content": "$1",
@ -2894,10 +2891,10 @@
"message": "Generiraj korisničko ime"
},
"generateEmail": {
"message": "Generate email"
"message": "Generiraj e-poštu"
},
"spinboxBoundariesHint": {
"message": "Value must be between $MIN$ and $MAX$.",
"message": "Vrijednost mora biti u rasponu $MIN$ - $MAX$.",
"description": "Explains spin box minimum and maximum values to the user",
"placeholders": {
"min": {
@ -2911,7 +2908,7 @@
}
},
"passwordLengthRecommendationHint": {
"message": " Use $RECOMMENDED$ characters or more to generate a strong password.",
"message": " Koristi $RECOMMENDED$ i više znakova za generiranje jake lozinke.",
"description": "Appended to `spinboxBoundariesHint` to recommend a length to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@ -2921,7 +2918,7 @@
}
},
"passphraseNumWordsRecommendationHint": {
"message": " Use $RECOMMENDED$ words or more to generate a strong passphrase.",
"message": " Koristi $RECOMMENDED$ i više riječi za generiranje jake frazne lozinke.",
"description": "Appended to `spinboxBoundariesHint` to recommend a number of words to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@ -2971,11 +2968,11 @@
"message": "Generiraj pseudonim e-pošte s vanjskom uslugom prosljeđivanja."
},
"forwarderDomainName": {
"message": "Email domain",
"message": "Domena e-pošte",
"description": "Labels the domain name email forwarder service option"
},
"forwarderDomainNameHint": {
"message": "Choose a domain that is supported by the selected service",
"message": "Odaberi domenu koju podržava odabrani servis",
"description": "Guidance provided for email forwarding services that support multiple email domains."
},
"forwarderError": {
@ -3178,25 +3175,25 @@
"message": "Ponovno pošalji obavijest"
},
"viewAllLogInOptions": {
"message": "View all log in options"
"message": "Pogledaj sve mogućnosti prijave"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "Pogledaj sve mogućnosti prijave"
},
"notificationSentDevice": {
"message": "Obavijest je poslana na tvoj uređaj."
},
"aNotificationWasSentToYourDevice": {
"message": "A notification was sent to your device"
"message": "Obavijest je poslana na tvoj uređaj"
},
"makeSureYourAccountIsUnlockedAndTheFingerprintEtc": {
"message": "Make sure your account is unlocked and the fingerprint phrase matches on the other device"
"message": "Provjeri je li trezor otključan i slaže li se jedinstvena fraza s drugim uređajem"
},
"youWillBeNotifiedOnceTheRequestIsApproved": {
"message": "You will be notified once the request is approved"
"message": "Dobiti ćeš obavijest kada je tvoj zahtjev odobren"
},
"needAnotherOptionV1": {
"message": "Need another option?"
"message": "Trebaš drugu opciju?"
},
"loginInitiated": {
"message": "Prijava pokrenuta"
@ -3292,16 +3289,16 @@
"message": "Otvara u novom prozoru"
},
"rememberThisDeviceToMakeFutureLoginsSeamless": {
"message": "Remember this device to make future logins seamless"
"message": "Zapamti ovaj uređaj kako bi buduće prijave bile brže"
},
"deviceApprovalRequired": {
"message": "Potrebno je odobriti uređaj. Odaberi metodu odobravanja:"
},
"deviceApprovalRequiredV2": {
"message": "Device approval required"
"message": "Potrebno odobrenje uređaja"
},
"selectAnApprovalOptionBelow": {
"message": "Select an approval option below"
"message": "Odaberi opciju odobrenja"
},
"rememberThisDevice": {
"message": "Zapamti ovaj uređaj"
@ -3377,7 +3374,7 @@
"message": "Nedostaje e-pošta korisnika"
},
"activeUserEmailNotFoundLoggingYouOut": {
"message": "Active user email not found. Logging you out."
"message": "Nije pronađena e-pošta aktivnog korisnika. Odjava u tijeku..."
},
"deviceTrusted": {
"message": "Uređaj pouzdan"
@ -3588,11 +3585,11 @@
"description": "Screen reader text (aria-label) for unlock account button in overlay"
},
"totpCodeAria": {
"message": "Time-based One-Time Password Verification Code",
"message": "Kôd za provjeru jednokratne lozinka zasnovane na vremenu (TOTP) ",
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "Preostalo vrijeme koda za provjeru",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -3824,7 +3821,7 @@
"message": "Pristupanje"
},
"loggedInExclamation": {
"message": "Logged in!"
"message": "Prijava uspješna!"
},
"passkeyNotCopied": {
"message": "Pristupni ključ neće biti kopiran"
@ -4288,7 +4285,7 @@
"message": "Najveća veličina datoteke je 500 MB"
},
"deleteAttachmentName": {
"message": "Izbriši privitak",
"message": "Izbriši privitak $NAME$",
"placeholders": {
"name": {
"content": "$1",
@ -4318,13 +4315,13 @@
"message": "Filtri"
},
"filterVault": {
"message": "Filter vault"
"message": "Filtriraj trezor"
},
"filterApplied": {
"message": "One filter applied"
"message": "Uključen jedan filter"
},
"filterAppliedPlural": {
"message": "$COUNT$ filters applied",
"message": "Uključeno filtera: $COUNT$",
"placeholders": {
"count": {
"content": "$1",
@ -4656,13 +4653,13 @@
"message": "Lokacija stavke"
},
"fileSend": {
"message": "File Send"
"message": "Send datoteke"
},
"fileSends": {
"message": "Send datoteke"
},
"textSend": {
"message": "Text Send"
"message": "Send teksta"
},
"textSends": {
"message": "Send tekstovi"
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Prikaži broj prijedloga auto-ispune na ikoni proširenja"
},
"showQuickCopyActions": {
"message": "Prikaži akcije brzog kopiranja na trezoru"
},
"systemDefault": {
"message": "Zadano sustavom"
},
@ -4686,16 +4686,16 @@
"message": "Pravila tvrtke primijenjena su na ovu postavku"
},
"sshPrivateKey": {
"message": "Private key"
"message": "Privatni ključ"
},
"sshPublicKey": {
"message": "Public key"
"message": "Javni ključ"
},
"sshFingerprint": {
"message": "Fingerprint"
"message": "Otisak prsta"
},
"sshKeyAlgorithm": {
"message": "Key type"
"message": "Vrsta ključa"
},
"sshKeyAlgorithmED25519": {
"message": "ED25519"
@ -4752,171 +4752,207 @@
"message": "Autentifikacija"
},
"fillGeneratedPassword": {
"message": "Fill generated password",
"message": "Ispuni generiranu lozinku",
"description": "Heading for the password generator within the inline menu"
},
"passwordRegenerated": {
"message": "Password regenerated",
"message": "Lozinka re-generirana",
"description": "Notification message for when a password has been regenerated"
},
"saveLoginToBitwarden": {
"message": "Save login to Bitwarden?",
"message": "Spremi prijavu u Bitwarden?",
"description": "Confirmation message for saving a login to Bitwarden"
},
"spaceCharacterDescriptor": {
"message": "Space",
"message": "Razmak",
"description": "Represents the space key in screen reader content as a readable word"
},
"tildeCharacterDescriptor": {
"message": "Tilde",
"message": "znak ˜",
"description": "Represents the ~ key in screen reader content as a readable word"
},
"backtickCharacterDescriptor": {
"message": "Backtick",
"message": "znak `",
"description": "Represents the ` key in screen reader content as a readable word"
},
"exclamationCharacterDescriptor": {
"message": "Exclamation mark",
"message": "znak !",
"description": "Represents the ! key in screen reader content as a readable word"
},
"atSignCharacterDescriptor": {
"message": "At sign",
"message": "znak @",
"description": "Represents the @ key in screen reader content as a readable word"
},
"hashSignCharacterDescriptor": {
"message": "Hash sign",
"message": "znak #",
"description": "Represents the # key in screen reader content as a readable word"
},
"dollarSignCharacterDescriptor": {
"message": "Dollar sign",
"message": "znak $",
"description": "Represents the $ key in screen reader content as a readable word"
},
"percentSignCharacterDescriptor": {
"message": "Percent sign",
"message": "znak %",
"description": "Represents the % key in screen reader content as a readable word"
},
"caretCharacterDescriptor": {
"message": "Caret",
"message": "znak ^",
"description": "Represents the ^ key in screen reader content as a readable word"
},
"ampersandCharacterDescriptor": {
"message": "Ampersand",
"message": "znak &",
"description": "Represents the & key in screen reader content as a readable word"
},
"asteriskCharacterDescriptor": {
"message": "Asterisk",
"message": "znak *",
"description": "Represents the * key in screen reader content as a readable word"
},
"parenLeftCharacterDescriptor": {
"message": "Left parenthesis",
"message": "lijeva zagrada (",
"description": "Represents the ( key in screen reader content as a readable word"
},
"parenRightCharacterDescriptor": {
"message": "Right parenthesis",
"message": "desna zagrada )",
"description": "Represents the ) key in screen reader content as a readable word"
},
"hyphenCharacterDescriptor": {
"message": "Underscore",
"message": "donja crtica _",
"description": "Represents the _ key in screen reader content as a readable word"
},
"underscoreCharacterDescriptor": {
"message": "Hyphen",
"message": "crtica -",
"description": "Represents the - key in screen reader content as a readable word"
},
"plusCharacterDescriptor": {
"message": "Plus",
"message": "znak +",
"description": "Represents the + key in screen reader content as a readable word"
},
"equalsCharacterDescriptor": {
"message": "Equals",
"message": "znak =",
"description": "Represents the = key in screen reader content as a readable word"
},
"braceLeftCharacterDescriptor": {
"message": "Left brace",
"message": "znak {",
"description": "Represents the { key in screen reader content as a readable word"
},
"braceRightCharacterDescriptor": {
"message": "Right brace",
"message": "znak }",
"description": "Represents the } key in screen reader content as a readable word"
},
"bracketLeftCharacterDescriptor": {
"message": "Left bracket",
"message": "znak [",
"description": "Represents the [ key in screen reader content as a readable word"
},
"bracketRightCharacterDescriptor": {
"message": "Right bracket",
"message": "zank ]",
"description": "Represents the ] key in screen reader content as a readable word"
},
"pipeCharacterDescriptor": {
"message": "Pipe",
"message": "znak |",
"description": "Represents the | key in screen reader content as a readable word"
},
"backSlashCharacterDescriptor": {
"message": "Back slash",
"message": "znak \\",
"description": "Represents the back slash key in screen reader content as a readable word"
},
"colonCharacterDescriptor": {
"message": "Colon",
"message": "znak :",
"description": "Represents the : key in screen reader content as a readable word"
},
"semicolonCharacterDescriptor": {
"message": "Semicolon",
"message": "znak ;",
"description": "Represents the ; key in screen reader content as a readable word"
},
"doubleQuoteCharacterDescriptor": {
"message": "Double quote",
"message": "znak \"",
"description": "Represents the double quote key in screen reader content as a readable word"
},
"singleQuoteCharacterDescriptor": {
"message": "Single quote",
"message": "znak '",
"description": "Represents the ' key in screen reader content as a readable word"
},
"lessThanCharacterDescriptor": {
"message": "Less than",
"message": "znak <",
"description": "Represents the < key in screen reader content as a readable word"
},
"greaterThanCharacterDescriptor": {
"message": "Greater than",
"message": "znak >",
"description": "Represents the > key in screen reader content as a readable word"
},
"commaCharacterDescriptor": {
"message": "Comma",
"message": "znak ,",
"description": "Represents the , key in screen reader content as a readable word"
},
"periodCharacterDescriptor": {
"message": "Period",
"message": "znak .",
"description": "Represents the . key in screen reader content as a readable word"
},
"questionCharacterDescriptor": {
"message": "Question mark",
"message": "znak ?",
"description": "Represents the ? key in screen reader content as a readable word"
},
"forwardSlashCharacterDescriptor": {
"message": "Forward slash",
"message": "znak /",
"description": "Represents the / key in screen reader content as a readable word"
},
"lowercaseAriaLabel": {
"message": "Lowercase"
"message": "Mala slova"
},
"uppercaseAriaLabel": {
"message": "Uppercase"
"message": "Velika slova"
},
"generatedPassword": {
"message": "Generated password"
"message": "Generiraj lozinku"
},
"compactMode": {
"message": "Compact mode"
"message": "Kompaktni način"
},
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
"message": "Širina proširenja"
},
"wide": {
"message": "Wide"
"message": "Široko"
},
"extraWide": {
"message": "Extra wide"
"message": "Ekstra široko"
}
}

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Bővítmény értékelése"
},
"rateExtensionDesc": {
"message": "Kérlek, fontold meg egy jó értékelés hagyását, ezzel segítve nekünk!"
},
"browserNotSupportClipboard": {
"message": "A webböngésződ nem támogat könnyű vágólap másolást. Másold manuálisan inkább."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Az automatikus bejelentkezési kitöltési javaslatok számának megjelenítése a bővítmény ikonján"
},
"showQuickCopyActions": {
"message": "Gyors másolási műveletek megjelenítése a Széfen"
},
"systemDefault": {
"message": "Rendszer alapértelmezett"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Béta"
},
"importantNotice": {
"message": "Fontos megjegyzés"
},
"setupTwoStepLogin": {
"message": "Kétlépéses bejelentkezés beüzemelése"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "A Bitwarden 2025 februárjától kódot küld a fiókhoz tartozó email-címre, amellyel ellenőrizhetők az új eszközökről történő bejelentkezések."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "A fiók védelmének alternatív módjaként beállíthatunk kétlépcsős bejelentkezést vagy módosíthatjuk az email címet egy elérhetőre."
},
"remindMeLater": {
"message": "Emlékeztetés később"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Megbízható a hozzáférés $EMAIL$ email címhez?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nem, nem érem el"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Igen, megbízhatóan hozzáférek az emailjeimhez"
},
"turnOnTwoStepLogin": {
"message": "Kétlépéses bejelentkezés bekapcsolása"
},
"changeAcctEmail": {
"message": "Fiók email cím megváltoztatása"
},
"extensionWidth": {
"message": "Kiterjesztés szélesség"
},

View File

@ -3,7 +3,7 @@
"message": "Bitwarden"
},
"extName": {
"message": "Bitwarden Pengelola Sandi",
"message": "Pengelola Sandi Bitwarden",
"description": "Extension name, MUST be less than 40 characters (Safari restriction)"
},
"extDesc": {
@ -193,10 +193,10 @@
"message": "Autofill identitas"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "Isikan kode verifikasi"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "Isikan Kode Verifikasi",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -648,9 +648,6 @@
"rateExtension": {
"message": "Nilai Ekstensi"
},
"rateExtensionDesc": {
"message": "Mohon pertimbangkan membantu kami dengan ulasan yang baik!"
},
"browserNotSupportClipboard": {
"message": "Peramban Anda tidak mendukung menyalin clipboard dengan mudah. Salin secara manual."
},
@ -3181,7 +3178,7 @@
"message": "Lihat semua pilihan masuk"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "Lihat semua pilihan masuk"
},
"notificationSentDevice": {
"message": "Sebuah pemberitahuan dikirim ke perangkat Anda."
@ -3588,11 +3585,11 @@
"description": "Screen reader text (aria-label) for unlock account button in overlay"
},
"totpCodeAria": {
"message": "Time-based One-Time Password Verification Code",
"message": "Kode Verifikasi Kata Sandi Sekali-Waktu Berbasis Waktu",
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "Waktu tersisa sebelum TOTP sekarang kadaluwarsa",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -4339,10 +4336,10 @@
"message": "Pengenalan"
},
"contactInfo": {
"message": "Contact info"
"message": "Info kontak"
},
"downloadAttachment": {
"message": "Download - $ITEMNAME$",
"message": "Unduh - $ITEMNAME$",
"placeholders": {
"itemname": {
"content": "$1",
@ -4351,23 +4348,23 @@
}
},
"cardNumberEndsWith": {
"message": "card number ends with",
"message": "nomor kartu berakhiran",
"description": "Used within the inline menu to provide an aria description when users are attempting to fill a card cipher."
},
"loginCredentials": {
"message": "Login credentials"
"message": "Kredensial login"
},
"authenticatorKey": {
"message": "Authenticator key"
"message": "Kunci Otentikator"
},
"autofillOptions": {
"message": "Autofill options"
"message": "Pilihan isi otomatis"
},
"websiteUri": {
"message": "Website (URI)"
"message": "Situs web (URI)"
},
"websiteUriCount": {
"message": "Website (URI) $COUNT$",
"message": "$COUNT$ Situs web (URI)",
"description": "Label for an input field that contains a website URI. The input field is part of a list of fields, and the count indicates the position of the field in the list.",
"placeholders": {
"count": {
@ -4377,16 +4374,16 @@
}
},
"websiteAdded": {
"message": "Website added"
"message": "Situs web ditambahkan"
},
"addWebsite": {
"message": "Add website"
"message": "Tambah situs web"
},
"deleteWebsite": {
"message": "Delete website"
"message": "Hapus situs web"
},
"defaultLabel": {
"message": "Default ($VALUE$)",
"message": "Bawaan ($VALUE$)",
"description": "A label that indicates the default value for a field with the current default value in parentheses.",
"placeholders": {
"value": {
@ -4396,7 +4393,7 @@
}
},
"showMatchDetection": {
"message": "Show match detection $WEBSITE$",
"message": "Tampilkan deteksi kecocokan $WEBSITE$",
"placeholders": {
"website": {
"content": "$1",
@ -4405,7 +4402,7 @@
}
},
"hideMatchDetection": {
"message": "Hide match detection $WEBSITE$",
"message": "Sembunyikan deteksi kecocokan $WEBSITE$",
"placeholders": {
"website": {
"content": "$1",
@ -4414,19 +4411,19 @@
}
},
"autoFillOnPageLoad": {
"message": "Autofill on page load?"
"message": "Isi otomatis ketika halaman dimuat?"
},
"cardExpiredTitle": {
"message": "Expired card"
"message": "Kartu kadaluwarsa"
},
"cardExpiredMessage": {
"message": "If you've renewed it, update the card's information"
"message": "Jika Anda telah memperpanjangnya, perbarui informasi kartu"
},
"cardDetails": {
"message": "Card details"
"message": "Rincian kartu"
},
"cardBrandDetails": {
"message": "$BRAND$ details",
"message": "Rincian $BRAND$",
"placeholders": {
"brand": {
"content": "$1",
@ -4435,43 +4432,43 @@
}
},
"enableAnimations": {
"message": "Enable animations"
"message": "Nyalakan animasi"
},
"showAnimations": {
"message": "Show animations"
"message": "Tampilkan animasi"
},
"addAccount": {
"message": "Add account"
"message": "Tambah akun"
},
"loading": {
"message": "Loading"
"message": "Memuat"
},
"data": {
"message": "Data"
},
"passkeys": {
"message": "Passkeys",
"message": "Kunci sandi",
"description": "A section header for a list of passkeys."
},
"passwords": {
"message": "Passwords",
"message": "Kata Sandi",
"description": "A section header for a list of passwords."
},
"logInWithPasskeyAriaLabel": {
"message": "Log in with passkey",
"message": "Masuk dengan kunci sandi",
"description": "ARIA label for the inline menu button that logs in with a passkey."
},
"assign": {
"message": "Assign"
"message": "Terapkan"
},
"bulkCollectionAssignmentDialogDescriptionSingular": {
"message": "Only organization members with access to these collections will be able to see the item."
"message": "Hanya anggota organisasi dengan akses ke koleksi berikut yang dapat melihat isinya."
},
"bulkCollectionAssignmentDialogDescriptionPlural": {
"message": "Only organization members with access to these collections will be able to see the items."
"message": "Hanya anggota organisasi dengan akses ke koleksi berikut yang dapat melihat isinya."
},
"bulkCollectionAssignmentWarning": {
"message": "You have selected $TOTAL_COUNT$ items. You cannot update $READONLY_COUNT$ of the items because you do not have edit permissions.",
"message": "Anda telah memilih $TOTAL_COUNT$ benda. Anda tidak dapat memperbarui $READONLY_COUNT$ dari benda karena Anda tidak memiliki izin untuk menyunting.",
"placeholders": {
"total_count": {
"content": "$1",
@ -4483,37 +4480,37 @@
}
},
"addField": {
"message": "Add field"
"message": "Tambahkan bidang"
},
"add": {
"message": "Add"
"message": "Tambah"
},
"fieldType": {
"message": "Field type"
"message": "Jenis bidang"
},
"fieldLabel": {
"message": "Field label"
"message": "Label bidang"
},
"textHelpText": {
"message": "Use text fields for data like security questions"
"message": "Gunakan bidang teks untuk data seperti pertanyaan keamanan"
},
"hiddenHelpText": {
"message": "Use hidden fields for sensitive data like a password"
"message": "Gunakan bidang tersembunyi untuk data sensitif seperti kata sandi"
},
"checkBoxHelpText": {
"message": "Use checkboxes if you'd like to autofill a form's checkbox, like a remember email"
"message": "Gunakan kotak centang jika Anda ingin mengisi sebuah kotak centang di formullir, seperti mengingat surel"
},
"linkedHelpText": {
"message": "Use a linked field when you are experiencing autofill issues for a specific website."
"message": "Gunakan bidang tertaut ketika Anda mengalami masalah pengisian otomatis untuk situs web tertentu."
},
"linkedLabelHelpText": {
"message": "Enter the the field's html id, name, aria-label, or placeholder."
"message": "Masukkan id, name, aria-label, atau placeholder html dari bidang."
},
"editField": {
"message": "Edit field"
"message": "Sunting bidang"
},
"editFieldLabel": {
"message": "Edit $LABEL$",
"message": "Sunting $LABEL$",
"placeholders": {
"label": {
"content": "$1",
@ -4522,7 +4519,7 @@
}
},
"deleteCustomField": {
"message": "Delete $LABEL$",
"message": "Hapus $LABEL$",
"placeholders": {
"label": {
"content": "$1",
@ -4531,7 +4528,7 @@
}
},
"fieldAdded": {
"message": "$LABEL$ added",
"message": "$LABEL$ ditambahkan",
"placeholders": {
"label": {
"content": "$1",
@ -4540,7 +4537,7 @@
}
},
"reorderToggleButton": {
"message": "Reorder $LABEL$. Use arrow key to move item up or down.",
"message": "Urutkan $LABEL$. Gunakan tombol panah untuk memindahkan benda ke atas atau ke bawah.",
"placeholders": {
"label": {
"content": "$1",
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4768,155 +4768,191 @@
"description": "Represents the space key in screen reader content as a readable word"
},
"tildeCharacterDescriptor": {
"message": "Tilde",
"message": "Tanda gelombang",
"description": "Represents the ~ key in screen reader content as a readable word"
},
"backtickCharacterDescriptor": {
"message": "Backtick",
"message": "Tanda petik terbalik",
"description": "Represents the ` key in screen reader content as a readable word"
},
"exclamationCharacterDescriptor": {
"message": "Exclamation mark",
"message": "Tanda seru",
"description": "Represents the ! key in screen reader content as a readable word"
},
"atSignCharacterDescriptor": {
"message": "At sign",
"message": "Tanda pada",
"description": "Represents the @ key in screen reader content as a readable word"
},
"hashSignCharacterDescriptor": {
"message": "Hash sign",
"message": "Tanda pagar",
"description": "Represents the # key in screen reader content as a readable word"
},
"dollarSignCharacterDescriptor": {
"message": "Dollar sign",
"message": "Tanda dolar",
"description": "Represents the $ key in screen reader content as a readable word"
},
"percentSignCharacterDescriptor": {
"message": "Percent sign",
"message": "Tanda persen",
"description": "Represents the % key in screen reader content as a readable word"
},
"caretCharacterDescriptor": {
"message": "Caret",
"message": "Tanda sisipan",
"description": "Represents the ^ key in screen reader content as a readable word"
},
"ampersandCharacterDescriptor": {
"message": "Ampersand",
"message": "Tanda dan",
"description": "Represents the & key in screen reader content as a readable word"
},
"asteriskCharacterDescriptor": {
"message": "Asterisk",
"message": "Tanda bintang",
"description": "Represents the * key in screen reader content as a readable word"
},
"parenLeftCharacterDescriptor": {
"message": "Left parenthesis",
"message": "Tanda kurung kiri",
"description": "Represents the ( key in screen reader content as a readable word"
},
"parenRightCharacterDescriptor": {
"message": "Right parenthesis",
"message": "Tanda kurung kanan",
"description": "Represents the ) key in screen reader content as a readable word"
},
"hyphenCharacterDescriptor": {
"message": "Underscore",
"message": "Garis bawah",
"description": "Represents the _ key in screen reader content as a readable word"
},
"underscoreCharacterDescriptor": {
"message": "Hyphen",
"message": "Tanda penghubung",
"description": "Represents the - key in screen reader content as a readable word"
},
"plusCharacterDescriptor": {
"message": "Plus",
"message": "Tanda tambah",
"description": "Represents the + key in screen reader content as a readable word"
},
"equalsCharacterDescriptor": {
"message": "Equals",
"message": "Tanda sama dengan",
"description": "Represents the = key in screen reader content as a readable word"
},
"braceLeftCharacterDescriptor": {
"message": "Left brace",
"message": "Kurung kurawal kiri",
"description": "Represents the { key in screen reader content as a readable word"
},
"braceRightCharacterDescriptor": {
"message": "Right brace",
"message": "Kurung kurawal kanan",
"description": "Represents the } key in screen reader content as a readable word"
},
"bracketLeftCharacterDescriptor": {
"message": "Left bracket",
"message": "Tanda kurung siku kiri",
"description": "Represents the [ key in screen reader content as a readable word"
},
"bracketRightCharacterDescriptor": {
"message": "Right bracket",
"message": "Tanda kurung siku kanan",
"description": "Represents the ] key in screen reader content as a readable word"
},
"pipeCharacterDescriptor": {
"message": "Pipe",
"message": "Garis tegak lurus",
"description": "Represents the | key in screen reader content as a readable word"
},
"backSlashCharacterDescriptor": {
"message": "Back slash",
"message": "Garis miring terbalik",
"description": "Represents the back slash key in screen reader content as a readable word"
},
"colonCharacterDescriptor": {
"message": "Colon",
"message": "Tanda titik dua",
"description": "Represents the : key in screen reader content as a readable word"
},
"semicolonCharacterDescriptor": {
"message": "Semicolon",
"message": "Tanda titik koma",
"description": "Represents the ; key in screen reader content as a readable word"
},
"doubleQuoteCharacterDescriptor": {
"message": "Double quote",
"message": "Tanda petik ganda",
"description": "Represents the double quote key in screen reader content as a readable word"
},
"singleQuoteCharacterDescriptor": {
"message": "Single quote",
"message": "Tanda petik tunggal",
"description": "Represents the ' key in screen reader content as a readable word"
},
"lessThanCharacterDescriptor": {
"message": "Less than",
"message": "Tanda kurang dari",
"description": "Represents the < key in screen reader content as a readable word"
},
"greaterThanCharacterDescriptor": {
"message": "Greater than",
"message": "Tanda lebih besar dari",
"description": "Represents the > key in screen reader content as a readable word"
},
"commaCharacterDescriptor": {
"message": "Comma",
"message": "Tanda koma",
"description": "Represents the , key in screen reader content as a readable word"
},
"periodCharacterDescriptor": {
"message": "Period",
"message": "Tanda titik",
"description": "Represents the . key in screen reader content as a readable word"
},
"questionCharacterDescriptor": {
"message": "Question mark",
"message": "Tanda tanya",
"description": "Represents the ? key in screen reader content as a readable word"
},
"forwardSlashCharacterDescriptor": {
"message": "Forward slash",
"message": "Tanda garis miring ke depan",
"description": "Represents the / key in screen reader content as a readable word"
},
"lowercaseAriaLabel": {
"message": "Lowercase"
"message": "Huruf kecil"
},
"uppercaseAriaLabel": {
"message": "Uppercase"
"message": "Huruf kapital"
},
"generatedPassword": {
"message": "Generated password"
"message": "Kata sandi yang dihasilkan"
},
"compactMode": {
"message": "Compact mode"
"message": "Mode ringkas"
},
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
"message": "Lebar ekstensi"
},
"wide": {
"message": "Wide"
"message": "Lebar"
},
"extraWide": {
"message": "Extra wide"
"message": "Ekstra lebar"
}
}

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Valuta l'estensione"
},
"rateExtensionDesc": {
"message": "Aiutaci lasciando una buona recensione!"
},
"browserNotSupportClipboard": {
"message": "Il tuo browser non supporta copiare dagli appunti. Copialo manualmente."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Mostra il numero di suggerimenti di riempimento automatico sull'icona dell'estensione"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Predefinito del sistema"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -20,16 +20,16 @@
"message": "アカウントの作成"
},
"newToBitwarden": {
"message": "New to Bitwarden?"
"message": "Bitwarden は初めてですか?"
},
"logInWithPasskey": {
"message": "Log in with passkey"
"message": "パスキーでログイン"
},
"useSingleSignOn": {
"message": "Use single sign-on"
"message": "シングルサインオンを使用する"
},
"welcomeBack": {
"message": "Welcome back"
"message": "ようこそ"
},
"setAStrongPassword": {
"message": "強力なパスワードを設定する"
@ -84,7 +84,7 @@
"message": "組織に参加"
},
"joinOrganizationName": {
"message": "Join $ORGANIZATIONNAME$",
"message": "$ORGANIZATIONNAME$ に参加",
"placeholders": {
"organizationName": {
"content": "$1",
@ -120,7 +120,7 @@
"message": "パスワードをコピー"
},
"copyPassphrase": {
"message": "Copy passphrase"
"message": "パスフレーズをコピー"
},
"copyNote": {
"message": "メモをコピー"
@ -153,13 +153,13 @@
"message": "免許証番号をコピー"
},
"copyPrivateKey": {
"message": "Copy private key"
"message": "秘密鍵をコピー"
},
"copyPublicKey": {
"message": "Copy public key"
"message": "公開鍵をコピー"
},
"copyFingerprint": {
"message": "Copy fingerprint"
"message": "フィンガープリントをコピー"
},
"copyCustomField": {
"message": "$FIELD$ をコピー",
@ -177,7 +177,7 @@
"message": "メモをコピー"
},
"fill": {
"message": "Fill",
"message": "入力",
"description": "This string is used on the vault page to indicate autofilling. Horizontal space is limited in the interface here so try and keep translations as concise as possible."
},
"autoFill": {
@ -193,10 +193,10 @@
"message": "自動入力 ID"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "認証コードを入力"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "認証コードを入力",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -443,7 +443,7 @@
"message": "パスワードの自動生成"
},
"generatePassphrase": {
"message": "Generate passphrase"
"message": "パスフレーズを生成"
},
"regeneratePassword": {
"message": "パスワードの再生成"
@ -607,7 +607,7 @@
"message": "ウェブサイトを開く"
},
"launchWebsiteName": {
"message": "Launch website $ITEMNAME$",
"message": "ウェブサイト $ITEMNAME$ を開く",
"placeholders": {
"itemname": {
"content": "$1",
@ -648,9 +648,6 @@
"rateExtension": {
"message": "拡張機能の評価"
},
"rateExtensionDesc": {
"message": "良いレビューで私たちを助けてください!"
},
"browserNotSupportClipboard": {
"message": "お使いのブラウザはクリップボードへのコピーに対応していません。手動でコピーしてください"
},
@ -862,7 +859,7 @@
"message": "ログイン"
},
"logInToBitwarden": {
"message": "Log in to Bitwarden"
"message": "Bitwarden にログイン"
},
"restartRegistration": {
"message": "登録を再度始める"
@ -1133,7 +1130,7 @@
"description": "WARNING (should stay in capitalized letters if the language permits)"
},
"warningCapitalized": {
"message": "Warning",
"message": "注意",
"description": "Warning (should maintain locale-relevant capitalization)"
},
"confirmVaultExport": {
@ -1327,10 +1324,10 @@
"message": "認証アプリに表示された6桁の認証コードを入力してください。"
},
"authenticationTimeout": {
"message": "Authentication timeout"
"message": "認証のタイムアウト"
},
"authenticationSessionTimedOut": {
"message": "The authentication session timed out. Please restart the login process."
"message": "認証セッションの有効期限が切れました。ログインプロセスを再開してください。"
},
"enterVerificationCodeEmail": {
"message": "$EMAIL$に送信された6桁の認証コードを入力してください。",
@ -1450,7 +1447,7 @@
"message": "サーバー URL"
},
"selfHostBaseUrl": {
"message": "Self-host server URL",
"message": "自己ホスト型サーバー URL",
"description": "Label for field requesting a self-hosted integration service URL"
},
"apiUrl": {
@ -1778,7 +1775,7 @@
"message": "ID"
},
"typeSshKey": {
"message": "SSH key"
"message": "SSH "
},
"newItemHeader": {
"message": "$TYPE$ を新規作成",
@ -1811,13 +1808,13 @@
"message": "パスワードの履歴"
},
"generatorHistory": {
"message": "Generator history"
"message": "生成履歴"
},
"clearGeneratorHistoryTitle": {
"message": "Clear generator history"
"message": "生成履歴を消去"
},
"cleargGeneratorHistoryDescription": {
"message": "If you continue, all entries will be permanently deleted from generator's history. Are you sure you want to continue?"
"message": "続行すると、すべてのエントリは生成履歴から完全に削除されます。続行してもよろしいですか?"
},
"back": {
"message": "戻る"
@ -1856,7 +1853,7 @@
"message": "セキュアメモ"
},
"sshKeys": {
"message": "SSH Keys"
"message": "SSH "
},
"clear": {
"message": "消去する",
@ -1939,10 +1936,10 @@
"message": "履歴を消去"
},
"nothingToShow": {
"message": "Nothing to show"
"message": "表示するものがありません"
},
"nothingGeneratedRecently": {
"message": "You haven't generated anything recently"
"message": "最近生成したものはありません"
},
"remove": {
"message": "削除"
@ -2531,7 +2528,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendPasswordDescV3": {
"message": "Add an optional password for recipients to access this Send.",
"message": "受信者がこの Send にアクセスするための任意のパスワードを追加します。",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendNotesDesc": {
@ -2894,10 +2891,10 @@
"message": "ユーザー名を生成"
},
"generateEmail": {
"message": "Generate email"
"message": "メールアドレスを生成"
},
"spinboxBoundariesHint": {
"message": "Value must be between $MIN$ and $MAX$.",
"message": "値は $MIN$ から $MAX$ の間でなければなりません。",
"description": "Explains spin box minimum and maximum values to the user",
"placeholders": {
"min": {
@ -2911,7 +2908,7 @@
}
},
"passwordLengthRecommendationHint": {
"message": " Use $RECOMMENDED$ characters or more to generate a strong password.",
"message": " 強力なパスワードを生成するには、 $RECOMMENDED$ 文字以上を使用してください。",
"description": "Appended to `spinboxBoundariesHint` to recommend a length to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@ -2921,7 +2918,7 @@
}
},
"passphraseNumWordsRecommendationHint": {
"message": " Use $RECOMMENDED$ words or more to generate a strong passphrase.",
"message": " 強力なパスフレーズを生成するには、 $RECOMMENDED$ 単語以上を使用してください。",
"description": "Appended to `spinboxBoundariesHint` to recommend a number of words to the user. This must include any language-specific 'sentence' separator characters (e.g. a space in english).",
"placeholders": {
"recommended": {
@ -2971,11 +2968,11 @@
"message": "外部転送サービスを使用してメールエイリアスを生成します。"
},
"forwarderDomainName": {
"message": "Email domain",
"message": "メールアドレスのドメイン",
"description": "Labels the domain name email forwarder service option"
},
"forwarderDomainNameHint": {
"message": "Choose a domain that is supported by the selected service",
"message": "選択したサービスでサポートされているドメインを選択してください",
"description": "Guidance provided for email forwarding services that support multiple email domains."
},
"forwarderError": {
@ -3178,25 +3175,25 @@
"message": "通知を再送信する"
},
"viewAllLogInOptions": {
"message": "View all log in options"
"message": "すべてのログインオプションを表示"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "すべてのログインオプションを表示"
},
"notificationSentDevice": {
"message": "デバイスに通知を送信しました。"
},
"aNotificationWasSentToYourDevice": {
"message": "A notification was sent to your device"
"message": "お使いのデバイスに通知が送信されました"
},
"makeSureYourAccountIsUnlockedAndTheFingerprintEtc": {
"message": "Make sure your account is unlocked and the fingerprint phrase matches on the other device"
"message": "アカウントがロック解除されていることと、フィンガープリントフレーズが他の端末で一致していることを確認してください"
},
"youWillBeNotifiedOnceTheRequestIsApproved": {
"message": "You will be notified once the request is approved"
"message": "リクエストが承認されると通知されます"
},
"needAnotherOptionV1": {
"message": "Need another option?"
"message": "別の選択肢が必要ですか?"
},
"loginInitiated": {
"message": "ログイン開始"
@ -3292,16 +3289,16 @@
"message": "新しいウィンドウで開く"
},
"rememberThisDeviceToMakeFutureLoginsSeamless": {
"message": "Remember this device to make future logins seamless"
"message": "このデバイスを記憶して今後のログインをシームレスにする"
},
"deviceApprovalRequired": {
"message": "デバイスの承認が必要です。以下から承認オプションを選択してください:"
},
"deviceApprovalRequiredV2": {
"message": "Device approval required"
"message": "デバイスの承認が必要です"
},
"selectAnApprovalOptionBelow": {
"message": "Select an approval option below"
"message": "以下の承認オプションを選択してください"
},
"rememberThisDevice": {
"message": "このデバイスを記憶する"
@ -3377,7 +3374,7 @@
"message": "ユーザーのメールアドレスがありません"
},
"activeUserEmailNotFoundLoggingYouOut": {
"message": "Active user email not found. Logging you out."
"message": "アクティブなユーザーメールアドレスが見つかりません。ログアウトします。"
},
"deviceTrusted": {
"message": "信頼されたデバイス"
@ -3588,11 +3585,11 @@
"description": "Screen reader text (aria-label) for unlock account button in overlay"
},
"totpCodeAria": {
"message": "Time-based One-Time Password Verification Code",
"message": "時間ベースのワンタイムパスワード認証コード",
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "現在の TOTP 有効期限が切れるまでの残り時間",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -3824,7 +3821,7 @@
"message": "アクセス中"
},
"loggedInExclamation": {
"message": "Logged in!"
"message": "ログインしました!"
},
"passkeyNotCopied": {
"message": "パスキーはコピーされません"
@ -4318,13 +4315,13 @@
"message": "フィルター"
},
"filterVault": {
"message": "Filter vault"
"message": "保管庫をフィルター"
},
"filterApplied": {
"message": "One filter applied"
"message": "1 個のフィルタを適用しました"
},
"filterAppliedPlural": {
"message": "$COUNT$ filters applied",
"message": "$COUNT$ 個のフィルタを適用しました",
"placeholders": {
"count": {
"content": "$1",
@ -4656,13 +4653,13 @@
"message": "アイテムの場所"
},
"fileSend": {
"message": "File Send"
"message": "ファイル Send"
},
"fileSends": {
"message": "ファイル Send"
},
"textSend": {
"message": "Text Send"
"message": "テキスト Send"
},
"textSends": {
"message": "テキスト Send"
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "拡張機能アイコンにログイン自動入力の候補の数を表示する"
},
"showQuickCopyActions": {
"message": "保管庫にクイックコピー操作を表示する"
},
"systemDefault": {
"message": "システムのデフォルト"
},
@ -4686,16 +4686,16 @@
"message": "エンタープライズポリシー要件がこの設定に適用されました"
},
"sshPrivateKey": {
"message": "Private key"
"message": "秘密鍵"
},
"sshPublicKey": {
"message": "Public key"
"message": "公開鍵"
},
"sshFingerprint": {
"message": "Fingerprint"
"message": "フィンガープリント"
},
"sshKeyAlgorithm": {
"message": "Key type"
"message": "鍵の種類"
},
"sshKeyAlgorithmED25519": {
"message": "ED25519"
@ -4752,171 +4752,207 @@
"message": "認証中"
},
"fillGeneratedPassword": {
"message": "Fill generated password",
"message": "生成したパスワードを入力",
"description": "Heading for the password generator within the inline menu"
},
"passwordRegenerated": {
"message": "Password regenerated",
"message": "パスワードを再生成しました",
"description": "Notification message for when a password has been regenerated"
},
"saveLoginToBitwarden": {
"message": "Save login to Bitwarden?",
"message": "Bitwarden にログイン情報を保存しますか?",
"description": "Confirmation message for saving a login to Bitwarden"
},
"spaceCharacterDescriptor": {
"message": "Space",
"message": "スペース",
"description": "Represents the space key in screen reader content as a readable word"
},
"tildeCharacterDescriptor": {
"message": "Tilde",
"message": "チルダ",
"description": "Represents the ~ key in screen reader content as a readable word"
},
"backtickCharacterDescriptor": {
"message": "Backtick",
"message": "バッククォート",
"description": "Represents the ` key in screen reader content as a readable word"
},
"exclamationCharacterDescriptor": {
"message": "Exclamation mark",
"message": "エクスクラメーションマーク",
"description": "Represents the ! key in screen reader content as a readable word"
},
"atSignCharacterDescriptor": {
"message": "At sign",
"message": "アットマーク",
"description": "Represents the @ key in screen reader content as a readable word"
},
"hashSignCharacterDescriptor": {
"message": "Hash sign",
"message": "ハッシュ記号",
"description": "Represents the # key in screen reader content as a readable word"
},
"dollarSignCharacterDescriptor": {
"message": "Dollar sign",
"message": "ドル記号",
"description": "Represents the $ key in screen reader content as a readable word"
},
"percentSignCharacterDescriptor": {
"message": "Percent sign",
"message": "パーセント記号",
"description": "Represents the % key in screen reader content as a readable word"
},
"caretCharacterDescriptor": {
"message": "Caret",
"message": "キャレット",
"description": "Represents the ^ key in screen reader content as a readable word"
},
"ampersandCharacterDescriptor": {
"message": "Ampersand",
"message": "アンパサンド",
"description": "Represents the & key in screen reader content as a readable word"
},
"asteriskCharacterDescriptor": {
"message": "Asterisk",
"message": "アスタリスク",
"description": "Represents the * key in screen reader content as a readable word"
},
"parenLeftCharacterDescriptor": {
"message": "Left parenthesis",
"message": "左かっこ",
"description": "Represents the ( key in screen reader content as a readable word"
},
"parenRightCharacterDescriptor": {
"message": "Right parenthesis",
"message": "右かっこ",
"description": "Represents the ) key in screen reader content as a readable word"
},
"hyphenCharacterDescriptor": {
"message": "Underscore",
"message": "アンダースコア",
"description": "Represents the _ key in screen reader content as a readable word"
},
"underscoreCharacterDescriptor": {
"message": "Hyphen",
"message": "ハイフン",
"description": "Represents the - key in screen reader content as a readable word"
},
"plusCharacterDescriptor": {
"message": "Plus",
"message": "プラス",
"description": "Represents the + key in screen reader content as a readable word"
},
"equalsCharacterDescriptor": {
"message": "Equals",
"message": "イコール",
"description": "Represents the = key in screen reader content as a readable word"
},
"braceLeftCharacterDescriptor": {
"message": "Left brace",
"message": "左中かっこ",
"description": "Represents the { key in screen reader content as a readable word"
},
"braceRightCharacterDescriptor": {
"message": "Right brace",
"message": "右中かっこ",
"description": "Represents the } key in screen reader content as a readable word"
},
"bracketLeftCharacterDescriptor": {
"message": "Left bracket",
"message": "左大かっこ",
"description": "Represents the [ key in screen reader content as a readable word"
},
"bracketRightCharacterDescriptor": {
"message": "Right bracket",
"message": "右大かっこ",
"description": "Represents the ] key in screen reader content as a readable word"
},
"pipeCharacterDescriptor": {
"message": "Pipe",
"message": "パイプ",
"description": "Represents the | key in screen reader content as a readable word"
},
"backSlashCharacterDescriptor": {
"message": "Back slash",
"message": "バックスラッシュ",
"description": "Represents the back slash key in screen reader content as a readable word"
},
"colonCharacterDescriptor": {
"message": "Colon",
"message": "コロン",
"description": "Represents the : key in screen reader content as a readable word"
},
"semicolonCharacterDescriptor": {
"message": "Semicolon",
"message": "セミコロン",
"description": "Represents the ; key in screen reader content as a readable word"
},
"doubleQuoteCharacterDescriptor": {
"message": "Double quote",
"message": "ダブルクォート",
"description": "Represents the double quote key in screen reader content as a readable word"
},
"singleQuoteCharacterDescriptor": {
"message": "Single quote",
"message": "シングルクォート",
"description": "Represents the ' key in screen reader content as a readable word"
},
"lessThanCharacterDescriptor": {
"message": "Less than",
"message": "小なり",
"description": "Represents the < key in screen reader content as a readable word"
},
"greaterThanCharacterDescriptor": {
"message": "Greater than",
"message": "大なり",
"description": "Represents the > key in screen reader content as a readable word"
},
"commaCharacterDescriptor": {
"message": "Comma",
"message": "コンマ",
"description": "Represents the , key in screen reader content as a readable word"
},
"periodCharacterDescriptor": {
"message": "Period",
"message": "ピリオド",
"description": "Represents the . key in screen reader content as a readable word"
},
"questionCharacterDescriptor": {
"message": "Question mark",
"message": "クエスチョンマーク",
"description": "Represents the ? key in screen reader content as a readable word"
},
"forwardSlashCharacterDescriptor": {
"message": "Forward slash",
"message": "スラッシュ",
"description": "Represents the / key in screen reader content as a readable word"
},
"lowercaseAriaLabel": {
"message": "Lowercase"
"message": "小文字"
},
"uppercaseAriaLabel": {
"message": "Uppercase"
"message": "大文字"
},
"generatedPassword": {
"message": "Generated password"
"message": "生成したパスワード"
},
"compactMode": {
"message": "Compact mode"
"message": "コンパクトモード"
},
"beta": {
"message": "Beta"
"message": "ベータ"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
"message": "拡張機能の幅"
},
"wide": {
"message": "Wide"
"message": "ワイド"
},
"extraWide": {
"message": "Extra wide"
"message": "エクストラワイド"
}
}

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "სისტემურად ნაგულისხმევი"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "ವಿಸ್ತರಣೆಯನ್ನು ರೇಟ್ ಮಾಡಿ"
},
"rateExtensionDesc": {
"message": "ಉತ್ತಮ ವಿಮರ್ಶೆಯೊಂದಿಗೆ ನಮಗೆ ಸಹಾಯ ಮಾಡಲು ದಯವಿಟ್ಟು ಪರಿಗಣಿಸಿ!"
},
"browserNotSupportClipboard": {
"message": "ನಿಮ್ಮ ವೆಬ್ ಬ್ರೌಸರ್ ಸುಲಭವಾದ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ನಕಲು ಮಾಡುವುದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ಬದಲಿಗೆ ಅದನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಕಲಿಸಿ."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -193,10 +193,10 @@
"message": "신원 자동 완성"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "인증 코드를 입력하세요"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "인증 코드를 입력하세요",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -648,9 +648,6 @@
"rateExtension": {
"message": "확장 프로그램 평가"
},
"rateExtensionDesc": {
"message": "좋은 리뷰를 남겨 저희를 도와주세요!"
},
"browserNotSupportClipboard": {
"message": "사용하고 있는 웹 브라우저가 쉬운 클립보드 복사를 지원하지 않습니다. 직접 복사하세요."
},
@ -2069,11 +2066,11 @@
"message": "보안 비밀번호가 생성되었습니다! 웹사이트에서 비밀번호를 업데이트하는 것도 잊지 마세요."
},
"useGeneratorHelpTextPartOne": {
"message": "생성기를 사용하세요",
"message": "생성기를 사용하",
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"useGeneratorHelpTextPartTwo": {
"message": "강력한 고유 비밀번호를 만들기 위해서는",
"message": "강력한 고유 비밀번호를 만드세요",
"description": "This will be used as part of a larger sentence, broken up to include the generator icon. The full sentence will read 'Use the generator [GENERATOR_ICON] to create a strong unique password'"
},
"vaultTimeoutAction": {
@ -3181,7 +3178,7 @@
"message": "모든 로그인 방식 보기"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "모든 로그인 옵션 보기"
},
"notificationSentDevice": {
"message": "기기에 알림이 전송되었습니다."
@ -3588,11 +3585,11 @@
"description": "Screen reader text (aria-label) for unlock account button in overlay"
},
"totpCodeAria": {
"message": "Time-based One-Time Password Verification Code",
"message": "TOTP 인증 코드",
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "TOTP 만료까지 남은 시간",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -3669,7 +3666,7 @@
"message": "데이터 가져오기 성공"
},
"importSuccessNumberOfItems": {
"message": "A total of $AMOUNT$ items were imported.",
"message": "총 $AMOUNT$개의 항목을 가져왔습니다.",
"placeholders": {
"amount": {
"content": "$1",
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "확장 아이콘에 로그인 자동 완성 제안 수 표시"
},
"showQuickCopyActions": {
"message": "보관함에서 빠른 복사 기능 표시"
},
"systemDefault": {
"message": "시스템 기본 설정"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "베타"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "확장 폭"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Įvertinkite šį plėtinį"
},
"rateExtensionDesc": {
"message": "Apsvarstykite galimybę mums padėti palikdami gerą atsiliepimą!"
},
"browserNotSupportClipboard": {
"message": "Jūsų žiniatinklio naršyklė nepalaiko automatinio kopijavimo. Vietoj to nukopijuokite rankiniu būdu."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Novērtēt paplašinājumu"
},
"rateExtensionDesc": {
"message": "Lūgums apsvērt palīdzēt mums ar labu atsauksmi."
},
"browserNotSupportClipboard": {
"message": "Pārlūks neatbalsta vienkāršo ievietošanu starpliktuvē. Tā vietā tas jāievieto starpliktuvē pašrocīgi."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Paplašinājuma ikonā rādīt pieteikšanās automātiskās aizpildes ieteikumu skaitu"
},
"showQuickCopyActions": {
"message": "Glabātavā rādīt ātrās kopēšanas darbības"
},
"systemDefault": {
"message": "Sistēmas noklusējums"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Svarīgs paziņojums"
},
"setupTwoStepLogin": {
"message": "Iestatīt divpakāpju pieteikšanos"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden, sākot ar 2025. gada februāri, nosūtīs kodu uz konta e-pasta adresi, lai apliecinātu pieteikšanos no jaunām ierīcēm."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Var iestatīt divpakāpju pieteikšanos kā citu veidu, kā aizsargāt savu kontu, vai iestatīt savu e-pasta adresi uz tādu, kurai ir piekļuve."
},
"remindMeLater": {
"message": "Atgādināt man vēlāk"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Vai ir uzticama piekļuve savai e-pasta adresei $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nē, nav"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Jā, varu uzticami piekļūt savam e-pastam"
},
"turnOnTwoStepLogin": {
"message": "Ieslēgt divpakāpju pieteikšanos"
},
"changeAcctEmail": {
"message": "Mainīt konta e-pasta adresi"
},
"extensionWidth": {
"message": "Paplašinājuma platums"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "എക്സ്റ്റൻഷൻ റേറ്റ് ചെയ്യുക "
},
"rateExtensionDesc": {
"message": "ഒരു നല്ല അവലോകനത്തിന് ഞങ്ങളെ സഹായിക്കുന്നത് പരിഗണിക്കുക!"
},
"browserNotSupportClipboard": {
"message": "നിങ്ങളുടെ ബ്രൌസർ എളുപ്പമുള്ള ക്ലിപ്പ്ബോർഡ് പകർത്തൽ പിന്തുണയ്ക്കത്തില്ല. പകരം അത് സ്വമേധയാ പകർക്കുക ."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "विस्तारकाचे मूल्यांकन करा"
},
"rateExtensionDesc": {
"message": "चांगला अभिप्राय देऊन आम्हाला मदत करा!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Gi denne utvidelsen en vurdering"
},
"rateExtensionDesc": {
"message": "Tenk gjerne på om du vil skrive en anmeldelse om oss!"
},
"browserNotSupportClipboard": {
"message": "Nettleseren din støtter ikke kopiering til utklippstavlen på noe enkelt vis. Prøv å kopiere det manuelt i stedet."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Systemforvalg"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Deze extensie beoordelen"
},
"rateExtensionDesc": {
"message": "Je kunt ons helpen door een goede recensie achter te laten!"
},
"browserNotSupportClipboard": {
"message": "Je webbrowser ondersteunt kopiëren naar plakbord niet. Kopieer handmatig."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Aantal login-autofill-suggesties op het extensie-pictogram weergeven"
},
"showQuickCopyActions": {
"message": "Toon snelle kopieeracties in de kluis"
},
"systemDefault": {
"message": "Systeemstandaard"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Belangrijke mededeling"
},
"setupTwoStepLogin": {
"message": "Tweestapsaanmelding instellen"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Vanaf februari 2025 stuurt Bitwarden een code naar het e-mailadres van je account om inloggen op nieuwe apparaten te verifiëren."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Je kunt tweestapsaanmelding instellen als een alternatieve manier om je account te beschermen of je e-mailadres te veranderen naar een waar je toegang toe hebt."
},
"remindMeLater": {
"message": "Herinner me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Heb je betrouwbare toegang tot je e-mail, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nee, dat heb ik niet"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Ja, ik heb betrouwbare toegang tot mijn e-mail"
},
"turnOnTwoStepLogin": {
"message": "Tweestapsaanmelding inschakelen"
},
"changeAcctEmail": {
"message": "E-mailadres van het account veranderen"
},
"extensionWidth": {
"message": "Extensiebreedte"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -23,19 +23,19 @@
"message": "New to Bitwarden?"
},
"logInWithPasskey": {
"message": "Log in with passkey"
"message": "Zaloguj się używając passkey"
},
"useSingleSignOn": {
"message": "Use single sign-on"
"message": "Użyj jednokrotnego logowania"
},
"welcomeBack": {
"message": "Welcome back"
"message": "Witaj ponownie"
},
"setAStrongPassword": {
"message": "Ustaw silne hasło"
},
"finishCreatingYourAccountBySettingAPassword": {
"message": "Ukończ tworzenie konta poprzez utworzenie hasła"
"message": "Ukończ tworzenie konta poprzez ustawienie hasła"
},
"enterpriseSingleSignOn": {
"message": "Logowanie jednokrotne"
@ -120,7 +120,7 @@
"message": "Kopiuj hasło"
},
"copyPassphrase": {
"message": "Copy passphrase"
"message": "Kopiuj frazę bezpieczeństwa"
},
"copyNote": {
"message": "Kopiuj notatkę"
@ -153,13 +153,13 @@
"message": "Kopiuj numer licencji"
},
"copyPrivateKey": {
"message": "Copy private key"
"message": "Skopiuj klucz prywatny"
},
"copyPublicKey": {
"message": "Copy public key"
"message": "Skopiuj klucz publiczny"
},
"copyFingerprint": {
"message": "Copy fingerprint"
"message": "Skopiuj odcisk palca"
},
"copyCustomField": {
"message": "Kopiuj $FIELD$",
@ -193,10 +193,10 @@
"message": "Autouzupełnianie tożsamości"
},
"fillVerificationCode": {
"message": "Fill verification code"
"message": "Wypełnij kod weryfikacyjny"
},
"fillVerificationCodeAria": {
"message": "Fill Verification Code",
"message": "Wypełnij kod weryfikacyjny",
"description": "Aria label for the heading displayed the inline menu for totp code autofill"
},
"generatePasswordCopied": {
@ -443,7 +443,7 @@
"message": "Wygeneruj hasło"
},
"generatePassphrase": {
"message": "Generate passphrase"
"message": "Wygenruj frazę zabezpieczającą"
},
"regeneratePassword": {
"message": "Wygeneruj ponownie hasło"
@ -607,7 +607,7 @@
"message": "Otwórz stronę"
},
"launchWebsiteName": {
"message": "Launch website $ITEMNAME$",
"message": "Otwórz stronę internetową $ITEMNAME$",
"placeholders": {
"itemname": {
"content": "$1",
@ -648,9 +648,6 @@
"rateExtension": {
"message": "Oceń rozszerzenie"
},
"rateExtensionDesc": {
"message": "Wesprzyj nas pozytywną opinią!"
},
"browserNotSupportClipboard": {
"message": "Przeglądarka nie obsługuje łatwego kopiowania schowka. Skopiuj element ręcznie."
},
@ -862,7 +859,7 @@
"message": "Zaloguj się"
},
"logInToBitwarden": {
"message": "Log in to Bitwarden"
"message": "Zaloguj się do Bitwarden"
},
"restartRegistration": {
"message": "Zrestartuj rejestrację"
@ -1133,7 +1130,7 @@
"description": "WARNING (should stay in capitalized letters if the language permits)"
},
"warningCapitalized": {
"message": "Warning",
"message": "Ostrzeżenie",
"description": "Warning (should maintain locale-relevant capitalization)"
},
"confirmVaultExport": {
@ -1327,7 +1324,7 @@
"message": "Wpisz 6-cyfrowy kod weryfikacyjny z aplikacji uwierzytelniającej."
},
"authenticationTimeout": {
"message": "Authentication timeout"
"message": "Limit czasu uwierzytelniania"
},
"authenticationSessionTimedOut": {
"message": "The authentication session timed out. Please restart the login process."
@ -1450,7 +1447,7 @@
"message": "Adres URL serwera"
},
"selfHostBaseUrl": {
"message": "Self-host server URL",
"message": "URL samodzielnie hostowanego serwera",
"description": "Label for field requesting a self-hosted integration service URL"
},
"apiUrl": {
@ -2531,7 +2528,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendPasswordDescV3": {
"message": "Add an optional password for recipients to access this Send.",
"message": "Zabezpiecz tę wiadomość hasłem, które będzie wymagane, aby uzyskać do niej dostęp.",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendNotesDesc": {
@ -2616,7 +2613,7 @@
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendFilePopoutDialogText": {
"message": "Pop out extension?",
"message": "Otworzyć rozszerzenie w nowym oknie?",
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
},
"sendFilePopoutDialogDesc": {
@ -2894,7 +2891,7 @@
"message": "Wygeneruj nazwę użytkownika"
},
"generateEmail": {
"message": "Generate email"
"message": "Wygeneruj e-mail"
},
"spinboxBoundariesHint": {
"message": "Wartość musi być pomiędzy $MIN$ a $MAX$.",
@ -2971,11 +2968,11 @@
"message": "Wygeneruj alias adresu e-mail z zewnętrznej usługi przekierowania."
},
"forwarderDomainName": {
"message": "Email domain",
"message": "Domena adresu e-mail",
"description": "Labels the domain name email forwarder service option"
},
"forwarderDomainNameHint": {
"message": "Choose a domain that is supported by the selected service",
"message": "Wybierz domenę, która jest obsługiwana przez wybraną usługę",
"description": "Guidance provided for email forwarding services that support multiple email domains."
},
"forwarderError": {
@ -3178,16 +3175,16 @@
"message": "Wyślij ponownie powiadomienie"
},
"viewAllLogInOptions": {
"message": "View all log in options"
"message": "Zobacz wszystkie sposoby logowania"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "Zobacz wszystkie sposoby logowania"
},
"notificationSentDevice": {
"message": "Powiadomienie zostało wysłane na urządzenie."
},
"aNotificationWasSentToYourDevice": {
"message": "A notification was sent to your device"
"message": "Powiadomienie zostało wysłane na twoje urządzenie"
},
"makeSureYourAccountIsUnlockedAndTheFingerprintEtc": {
"message": "Make sure your account is unlocked and the fingerprint phrase matches on the other device"
@ -3196,7 +3193,7 @@
"message": "You will be notified once the request is approved"
},
"needAnotherOptionV1": {
"message": "Need another option?"
"message": "Potrzebujesz innego sposobu?"
},
"loginInitiated": {
"message": "Logowanie rozpoczęte"
@ -3292,16 +3289,16 @@
"message": "Otwiera w nowym oknie"
},
"rememberThisDeviceToMakeFutureLoginsSeamless": {
"message": "Remember this device to make future logins seamless"
"message": "Zapamiętaj to urządzenie, aby przyszłe logowania były bezproblemowe"
},
"deviceApprovalRequired": {
"message": "Wymagane zatwierdzenie urządzenia. Wybierz opcję zatwierdzenia poniżej:"
},
"deviceApprovalRequiredV2": {
"message": "Device approval required"
"message": "Wymagane zatwierdzenie urządzenia"
},
"selectAnApprovalOptionBelow": {
"message": "Select an approval option below"
"message": "Wybierz opcję zatwierdzenia poniżej"
},
"rememberThisDevice": {
"message": "Zapamiętaj to urządzenie"
@ -3377,7 +3374,7 @@
"message": "Brak adresu e-mail użytkownika"
},
"activeUserEmailNotFoundLoggingYouOut": {
"message": "Active user email not found. Logging you out."
"message": "Nie znaleziono aktywnego adresu e-mail. Trwa wylogowanie."
},
"deviceTrusted": {
"message": "Zaufano urządzeniu"
@ -3592,7 +3589,7 @@
"description": "Aria label for the totp code displayed in the inline menu for autofill"
},
"totpSecondsSpanAria": {
"message": "Time remaining before current TOTP expires",
"message": "Pozostały czas do wygaśnięcia bieżącego TOTP",
"description": "Aria label for the totp seconds displayed in the inline menu for autofill"
},
"fillCredentialsFor": {
@ -3824,7 +3821,7 @@
"message": "Uzyskiwanie dostępu"
},
"loggedInExclamation": {
"message": "Logged in!"
"message": "Zalogowano!"
},
"passkeyNotCopied": {
"message": "Passkey nie zostanie skopiowany"
@ -4318,13 +4315,13 @@
"message": "Filtry"
},
"filterVault": {
"message": "Filter vault"
"message": "Filtruj sejf"
},
"filterApplied": {
"message": "One filter applied"
"message": "Zastosowano jeden filtr"
},
"filterAppliedPlural": {
"message": "$COUNT$ filters applied",
"message": "$COUNT$ filtrów zastosowanych",
"placeholders": {
"count": {
"content": "$1",
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Pokaż liczbę sugestii autouzupełniania logowania na ikonie rozszerzenia"
},
"showQuickCopyActions": {
"message": "Pokaż akcje szybkiego kopiowania w Sejfie"
},
"systemDefault": {
"message": "Domyślny systemu"
},
@ -4692,7 +4692,7 @@
"message": "Klucz publiczny"
},
"sshFingerprint": {
"message": "Fingerprint"
"message": "Odcisk palca"
},
"sshKeyAlgorithm": {
"message": "Typ klucza"
@ -4701,13 +4701,13 @@
"message": "ED25519"
},
"sshKeyAlgorithmRSA2048": {
"message": "RSA 2048-Bitowy"
"message": "RSA 2048-bitowy"
},
"sshKeyAlgorithmRSA3072": {
"message": "RSA 3072-Bitowy"
"message": "RSA 3072-bitowy"
},
"sshKeyAlgorithmRSA4096": {
"message": "RSA 4096-Bitowy"
"message": "RSA 4096-bitowy"
},
"retry": {
"message": "Powtórz"
@ -4756,19 +4756,19 @@
"description": "Heading for the password generator within the inline menu"
},
"passwordRegenerated": {
"message": "Password regenerated",
"message": "Hasło zostało ponownie wygenerowane",
"description": "Notification message for when a password has been regenerated"
},
"saveLoginToBitwarden": {
"message": "Save login to Bitwarden?",
"message": "Zapisać dane logowania w Bitwarden?",
"description": "Confirmation message for saving a login to Bitwarden"
},
"spaceCharacterDescriptor": {
"message": "Space",
"message": "Spacja",
"description": "Represents the space key in screen reader content as a readable word"
},
"tildeCharacterDescriptor": {
"message": "Tilde",
"message": "Tylda",
"description": "Represents the ~ key in screen reader content as a readable word"
},
"backtickCharacterDescriptor": {
@ -4776,23 +4776,23 @@
"description": "Represents the ` key in screen reader content as a readable word"
},
"exclamationCharacterDescriptor": {
"message": "Exclamation mark",
"message": "Wykrzyknik",
"description": "Represents the ! key in screen reader content as a readable word"
},
"atSignCharacterDescriptor": {
"message": "At sign",
"message": "Małpa",
"description": "Represents the @ key in screen reader content as a readable word"
},
"hashSignCharacterDescriptor": {
"message": "Hash sign",
"message": "Hashtag",
"description": "Represents the # key in screen reader content as a readable word"
},
"dollarSignCharacterDescriptor": {
"message": "Dollar sign",
"message": "Znak dolara",
"description": "Represents the $ key in screen reader content as a readable word"
},
"percentSignCharacterDescriptor": {
"message": "Percent sign",
"message": "Znak procenta",
"description": "Represents the % key in screen reader content as a readable word"
},
"caretCharacterDescriptor": {
@ -4804,23 +4804,23 @@
"description": "Represents the & key in screen reader content as a readable word"
},
"asteriskCharacterDescriptor": {
"message": "Asterisk",
"message": "Gwiazdka",
"description": "Represents the * key in screen reader content as a readable word"
},
"parenLeftCharacterDescriptor": {
"message": "Left parenthesis",
"message": "Prawy nawias okrągły",
"description": "Represents the ( key in screen reader content as a readable word"
},
"parenRightCharacterDescriptor": {
"message": "Right parenthesis",
"message": "Prawy nawias okrągły",
"description": "Represents the ) key in screen reader content as a readable word"
},
"hyphenCharacterDescriptor": {
"message": "Underscore",
"message": "Znak podkreślenia",
"description": "Represents the _ key in screen reader content as a readable word"
},
"underscoreCharacterDescriptor": {
"message": "Hyphen",
"message": "Myślnik",
"description": "Represents the - key in screen reader content as a readable word"
},
"plusCharacterDescriptor": {
@ -4828,27 +4828,27 @@
"description": "Represents the + key in screen reader content as a readable word"
},
"equalsCharacterDescriptor": {
"message": "Equals",
"message": "Znak równości",
"description": "Represents the = key in screen reader content as a readable word"
},
"braceLeftCharacterDescriptor": {
"message": "Left brace",
"message": "Lewy nawias klamrowy",
"description": "Represents the { key in screen reader content as a readable word"
},
"braceRightCharacterDescriptor": {
"message": "Right brace",
"message": "Prawy nawias klamrowy",
"description": "Represents the } key in screen reader content as a readable word"
},
"bracketLeftCharacterDescriptor": {
"message": "Left bracket",
"message": "Lewy nawias kwadratowy",
"description": "Represents the [ key in screen reader content as a readable word"
},
"bracketRightCharacterDescriptor": {
"message": "Right bracket",
"message": "Prawy nawias kwadratowy",
"description": "Represents the ] key in screen reader content as a readable word"
},
"pipeCharacterDescriptor": {
"message": "Pipe",
"message": "Pionowa kreska",
"description": "Represents the | key in screen reader content as a readable word"
},
"backSlashCharacterDescriptor": {
@ -4856,39 +4856,39 @@
"description": "Represents the back slash key in screen reader content as a readable word"
},
"colonCharacterDescriptor": {
"message": "Colon",
"message": "Dwukropek",
"description": "Represents the : key in screen reader content as a readable word"
},
"semicolonCharacterDescriptor": {
"message": "Semicolon",
"message": "Średnik",
"description": "Represents the ; key in screen reader content as a readable word"
},
"doubleQuoteCharacterDescriptor": {
"message": "Double quote",
"message": "Cudzysłów",
"description": "Represents the double quote key in screen reader content as a readable word"
},
"singleQuoteCharacterDescriptor": {
"message": "Single quote",
"message": "Apostrof",
"description": "Represents the ' key in screen reader content as a readable word"
},
"lessThanCharacterDescriptor": {
"message": "Less than",
"message": "Mniejszy niż",
"description": "Represents the < key in screen reader content as a readable word"
},
"greaterThanCharacterDescriptor": {
"message": "Greater than",
"message": "Większy niż",
"description": "Represents the > key in screen reader content as a readable word"
},
"commaCharacterDescriptor": {
"message": "Comma",
"message": "Przecinek",
"description": "Represents the , key in screen reader content as a readable word"
},
"periodCharacterDescriptor": {
"message": "Period",
"message": "Kropka",
"description": "Represents the . key in screen reader content as a readable word"
},
"questionCharacterDescriptor": {
"message": "Question mark",
"message": "Znak zapytania",
"description": "Represents the ? key in screen reader content as a readable word"
},
"forwardSlashCharacterDescriptor": {
@ -4896,13 +4896,13 @@
"description": "Represents the / key in screen reader content as a readable word"
},
"lowercaseAriaLabel": {
"message": "Lowercase"
"message": "Małe litery"
},
"uppercaseAriaLabel": {
"message": "Uppercase"
"message": "Wielkie litery"
},
"generatedPassword": {
"message": "Generated password"
"message": "Wygenerowane hasło"
},
"compactMode": {
"message": "Tryb kompaktowy"
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Szerokość rozszerzenia"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Avaliar a Extensão"
},
"rateExtensionDesc": {
"message": "Por favor considere ajudar-nos com uma boa avaliação!"
},
"browserNotSupportClipboard": {
"message": "O seu navegador web não suporta cópia para a área de transferência. Em alternativa, copie manualmente."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Mostrar o número de sugestões de preenchimento automático de login no ícone da extensão"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Padrão do sistema"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Avaliar a extensão"
},
"rateExtensionDesc": {
"message": "Por favor, considere ajudar-nos com uma boa avaliação!"
},
"browserNotSupportClipboard": {
"message": "O seu navegador Web não suporta a cópia fácil da área de transferência. Em vez disso, copie manualmente."
},
@ -3821,7 +3818,7 @@
"message": "Chave de acesso"
},
"accessing": {
"message": "A aceder"
"message": "A aceder a"
},
"loggedInExclamation": {
"message": "Sessão iniciada!"
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Mostrar o número de sugestões de preenchimento automático de credenciais no ícone da extensão"
},
"showQuickCopyActions": {
"message": "Mostrar ações de cópia rápida no cofre"
},
"systemDefault": {
"message": "Predefinição do sistema"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Aviso importante"
},
"setupTwoStepLogin": {
"message": "Definir a verificação de dois passos"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "O Bitwarden enviará um código para o e-mail da sua conta para verificar as credenciais de novos dispositivos a partir de fevereiro de 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Pode configurar a verificação de dois passos como forma alternativa de proteger a sua conta ou alterar o seu e-mail para um a que possa aceder."
},
"remindMeLater": {
"message": "Lembrar-me mais tarde"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Tem um acesso fiável ao seu e-mail, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Não, não tenho"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Sim, consigo aceder de forma fiável ao meu e-mail"
},
"turnOnTwoStepLogin": {
"message": "Ativar a verificação de dois passos"
},
"changeAcctEmail": {
"message": "Alterar o e-mail da conta"
},
"extensionWidth": {
"message": "Largura da extensão"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Evaluare extensie"
},
"rateExtensionDesc": {
"message": "Vă rugăm să luați în considerare să ne ajutați cu o recenzie bună!"
},
"browserNotSupportClipboard": {
"message": "Browserul dvs. nu acceptă copierea în clipboard. Transcrieți datele manual."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Оценить расширение"
},
"rateExtensionDesc": {
"message": "Пожалуйста, подумайте о том, чтобы помочь нам хорошим отзывом!"
},
"browserNotSupportClipboard": {
"message": "Ваш браузер не поддерживает копирование данных в буфер обмена. Скопируйте вручную."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Показывать количество вариантов автозаполнения логина на значке расширения"
},
"showQuickCopyActions": {
"message": "Показать быстрые действия копирования в хранилище"
},
"systemDefault": {
"message": "Системный"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Важное уведомление"
},
"setupTwoStepLogin": {
"message": "Настроить двухэтапную аутентификацию"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Начиная с февраля 2025 года Bitwarden будет отправлять код на электронную почту вашего аккаунта для подтверждения авторизации с новых устройств."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "В качестве альтернативного способа защиты учетной записи вы можете настроить двухэтапную аутентификацию или сменить электронную почту на ту, к которой вы можете получить доступ."
},
"remindMeLater": {
"message": "Напомнить позже"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Есть ли у вас надежный доступ к электронной почте $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Нет, не знаю"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Да, я имею надежный доступ к своей электронной почте"
},
"turnOnTwoStepLogin": {
"message": "Включить двухэтапную аутентификацию"
},
"changeAcctEmail": {
"message": "Изменить email аккаунта"
},
"extensionWidth": {
"message": "Ширина расширения"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "දිගුව අනුපාතය"
},
"rateExtensionDesc": {
"message": "කරුණාකර හොඳ සමාලෝචනයකින් අපට උදව් කිරීම ගැන සලකා බලන්න!"
},
"browserNotSupportClipboard": {
"message": "ඔබේ වෙබ් බ්රව්සරය පහසු පසුරු පුවරුවක් පිටපත් කිරීමට සහාය නොදක්වයි. ඒ වෙනුවට එය අතින් පිටපත් කරන්න."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Ohodnotiť rozšírenie"
},
"rateExtensionDesc": {
"message": "Prosíme, zvážte napísanie pozitívnej recenzie!"
},
"browserNotSupportClipboard": {
"message": "Váš webový prehliadač nepodporuje automatické kopírovanie do schránky. Kopírujte manuálne."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Zobraziť počet odporúčaných prihlasovacích údajov na ikone rozšírenia"
},
"showQuickCopyActions": {
"message": "Zobraziť akcie rýchleho kopírovania v trezore"
},
"systemDefault": {
"message": "Predvolené systémom"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Dôležité upozornenie"
},
"setupTwoStepLogin": {
"message": "Nastavenie dvojstupňového prihlásenia"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden vám od februára 2025 pošle na e-mail vášho účtu kód na overenie prihlásenia z nových zariadení."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Ako alternatívny spôsob ochrany svojho účtu môžete nastaviť dvojstupňové prihlásenie alebo zmeniť e-mail na taký, ku ktorému máte prístup."
},
"remindMeLater": {
"message": "Pripomenúť neskôr"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Máte spoľahlivý prístup k svojmu e-mailu, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Nie, nemám"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Áno, mám spoľahlivý prístup k svojmu e-mailu"
},
"turnOnTwoStepLogin": {
"message": "Zapnúť dvojstupňové prihlásenie"
},
"changeAcctEmail": {
"message": "Zmeniť e-mail účtu"
},
"extensionWidth": {
"message": "Šírka rozšírenia"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Ocenite to razširitev"
},
"rateExtensionDesc": {
"message": "Premislite, ali bi nam želeli pomagati z dobro oceno!"
},
"browserNotSupportClipboard": {
"message": "Vaš brskalnik ne podpira enostavnega kopiranja na odložišče. Prosimo, kopirajte ročno."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Оцени овај додатак"
},
"rateExtensionDesc": {
"message": "Молимо вас да размотрите да нам помогнете уз добру оцену!"
},
"browserNotSupportClipboard": {
"message": "Ваш прегледач не подржава једноставно копирање у клипборду. Уместо тога копирајте га ручно."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Прикажи број предлога за ауто-попуњавање пријаве на икони додатка"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Системски подразумевано"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Бета"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Ширина додатка"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Betygsätt tillägget"
},
"rateExtensionDesc": {
"message": "Överväg gärna att skriva en recension om oss!"
},
"browserNotSupportClipboard": {
"message": "Din webbläsare har inte stöd för att enkelt kopiera till urklipp. Kopiera till urklipp manuellt istället."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "Systemstandard"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the extension"
},
"rateExtensionDesc": {
"message": "Please consider helping us out with a good review!"
},
"browserNotSupportClipboard": {
"message": "Your web browser does not support easy clipboard copying. Copy it manually instead."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Rate the Extension"
},
"rateExtensionDesc": {
"message": "โปรดพิจารณา ช่วยเราด้วยการตรวจสอบที่ดี!"
},
"browserNotSupportClipboard": {
"message": "เว็บเบราว์เซอร์ของคุณไม่รองรับการคัดลอกคลิปบอร์ดอย่างง่าย คัดลอกด้วยตนเองแทน"
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -421,10 +421,10 @@
"message": "Son eşitleme:"
},
"passGen": {
"message": "Parola üretici"
"message": "Parola üreteci"
},
"generator": {
"message": "Oluşturucu",
"message": "Üreteç",
"description": "Short for 'credential generator'."
},
"passGenInfo": {
@ -648,9 +648,6 @@
"rateExtension": {
"message": "Uzantıyı değerlendirin"
},
"rateExtensionDesc": {
"message": "İyi bir yorum yazarak bizi destekleyebilirsiniz."
},
"browserNotSupportClipboard": {
"message": "Web tarayıcınız panoya kopyalamayı desteklemiyor. Parolayı elle kopyalayın."
},
@ -844,7 +841,7 @@
"message": "Bitwarden can store and fill 2-step verification codes. Select the camera icon to take a screenshot of this website's authenticator QR code, or copy and paste the key into this field."
},
"learnMoreAboutAuthenticators": {
"message": "Learn more about authenticators"
"message": "Kimlik doğrulayıcılar hakkında bilgi alın"
},
"copyTOTP": {
"message": "Kimlik doğrulama anahtarını kopyala (TOTP)"
@ -1327,10 +1324,10 @@
"message": "Kimlik doğrulama uygulamanızdaki 6 haneli doğrulama kodunu girin."
},
"authenticationTimeout": {
"message": "Authentication timeout"
"message": "Kimlik doğrulama zaman aşımı"
},
"authenticationSessionTimedOut": {
"message": "The authentication session timed out. Please restart the login process."
"message": "Kimlik doğrulama oturumu zaman aşımına uğradı. Lütfen giriş sürecini yeniden başlatın."
},
"enterVerificationCodeEmail": {
"message": "$EMAIL$ adresine e-postayla gönderdiğimiz 6 haneli doğrulama kodunu girin.",
@ -1435,7 +1432,7 @@
"message": "Specify the base URL of your on-premises hosted Bitwarden installation. Example: https://bitwarden.company.com"
},
"selfHostedCustomEnvHeader": {
"message": "For advanced configuration, you can specify the base URL of each service independently."
"message": "İleri düzey yapılandırma için her hizmetin taban URL'sini bağımsız olarak belirleyebilirsiniz."
},
"selfHostedEnvFormInvalid": {
"message": "You must add either the base Server URL or at least one custom environment."
@ -3181,7 +3178,7 @@
"message": "Tüm giriş seçeneklerini gör"
},
"viewAllLoginOptionsV1": {
"message": "View all log in options"
"message": "Tüm giriş seçeneklerini gör"
},
"notificationSentDevice": {
"message": "Cihazınıza bir bildirim gönderildi."
@ -4318,13 +4315,13 @@
"message": "Filtreler"
},
"filterVault": {
"message": "Filter vault"
"message": "Kasayı filtrele"
},
"filterApplied": {
"message": "One filter applied"
"message": "1 filtre uygulandı"
},
"filterAppliedPlural": {
"message": "$COUNT$ filters applied",
"message": "$COUNT$ filtre uygulandı",
"placeholders": {
"count": {
"content": "$1",
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Otomatik öneri sayısını uzantı simgesinde göster"
},
"showQuickCopyActions": {
"message": "Kasada hızlı kopyalama komutlarını göster"
},
"systemDefault": {
"message": "Sistem varsayılanı"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Önemli uyarı"
},
"setupTwoStepLogin": {
"message": "İki adımlı girişi ayarla"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Şubat 2025 itibarıyla Bitwarden, yeni cihazlardan yeni girişleri doğrulamanız için e-posta adresinize bir kod gönderecektir."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Hesabınızı korumanın alternatif bir yolu olarak iki adımlı girişi etkinleştirebilirsiniz. Aksi halde e-posta adresinizin doğru olduğundan emin olmalısınız."
},
"remindMeLater": {
"message": "Daha sonra hatırlat"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "$EMAIL$ adresinize sağlıklı bir şekilde erişebiliyor musunuz?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Hayır, erişemiyorum"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Evet, e-postalarıma sağlıklı bir şekilde erişebiliyorum"
},
"turnOnTwoStepLogin": {
"message": "İki adımlı girişi etkinleştir"
},
"changeAcctEmail": {
"message": "Hesap e-postasını değiştir"
},
"extensionWidth": {
"message": "Uzantı genişliği"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Оцінити розширення"
},
"rateExtensionDesc": {
"message": "Розкажіть іншим про свої враження, залишивши хороший відгук!"
},
"browserNotSupportClipboard": {
"message": "Ваш браузер не підтримує копіювання даних в буфер обміну. Скопіюйте вручну."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Показувати кількість пропозицій автозаповнення на піктограмі розширення"
},
"showQuickCopyActions": {
"message": "Показати дії швидкого копіювання у сховищі"
},
"systemDefault": {
"message": "Типово (система)"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Бета"
},
"importantNotice": {
"message": "Важлива інформація"
},
"setupTwoStepLogin": {
"message": "Налаштувати двоетапну перевірку"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden надсилатиме код підтвердження на електронну пошту вашого облікового запису під час входу з нових пристроїв, починаючи з лютого 2025 року."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "Ви можете налаштувати двоетапну перевірку як альтернативний спосіб захисту свого облікового запису, або змінити електронну пошту на таку, до якої ви маєте доступ."
},
"remindMeLater": {
"message": "Нагадати пізніше"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Ви маєте постійний доступ до своєї електронної пошти $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "Ні, не маю"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Так, я маю постійний доступ до своєї електронної пошти"
},
"turnOnTwoStepLogin": {
"message": "Увімкнути двоетапну перевірку"
},
"changeAcctEmail": {
"message": "Змінити адресу е-пошти"
},
"extensionWidth": {
"message": "Ширина вікна розширення"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "Đánh giá tiện ích mở rộng"
},
"rateExtensionDesc": {
"message": "Xin hãy nhìn nhận và đánh giá tốt cho chúng tôi!"
},
"browserNotSupportClipboard": {
"message": "Trình duyệt web của bạn không hỗ trợ dễ dàng sao chép bộ nhớ tạm. Bạn có thể sao chép nó theo cách thủ công để thay thế."
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -648,9 +648,6 @@
"rateExtension": {
"message": "为本扩展打分"
},
"rateExtensionDesc": {
"message": "请给我们好评!"
},
"browserNotSupportClipboard": {
"message": "您的浏览器不支持剪贴板简单复制,请手动复制。"
},
@ -2371,7 +2368,7 @@
"message": "限制查看"
},
"limitSendViewsHint": {
"message": "达到限额后,任何人无法查看此 Send。",
"message": "达到限额后,任何人无法查看此 Send。",
"description": "Displayed under the limit views field on Send"
},
"limitSendViewsCount": {
@ -3557,7 +3554,7 @@
"message": "切换侧边导航"
},
"skipToContent": {
"message": "跳转到正文"
"message": "跳转到内容"
},
"bitwardenOverlayButton": {
"message": "Bitwarden 自动填充菜单按钮",
@ -4501,7 +4498,7 @@
"message": "对于如密码之类的敏感数据,请使用隐藏型字段"
},
"checkBoxHelpText": {
"message": "如果您想自动勾选表单复选框(例如记住电子邮件地址),请使用复选框"
"message": "如果您想自动勾选表单复选框(例如记住电子邮件地址),请使用复选框"
},
"linkedHelpText": {
"message": "当您处理特定网站的自动填充问题时,请使用链接型字段。"
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "在扩展图标上显示自动填充建议的登录的数量"
},
"showQuickCopyActions": {
"message": "在密码库上显示快速复制操作"
},
"systemDefault": {
"message": "跟随系统"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta 版"
},
"importantNotice": {
"message": "重要通知"
},
"setupTwoStepLogin": {
"message": "设置两步登录"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "从 2025 年 02 月开始Bitwarden 将向您的账户电子邮件地址发送一个代码,以验证从新设备上的登录。"
},
"newDeviceVerificationNoticeContentPage2": {
"message": "您可以设置两步登录作为保护账户的替代方法,或将您的电子邮件地址更改为您可以访问的电子邮件地址。"
},
"remindMeLater": {
"message": "稍后提醒我"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "您可以可靠地访问您的电子邮件地址 $EMAIL$ 吗?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "不,我不能"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "是的,我可以可靠地访问我的电子邮件地址"
},
"turnOnTwoStepLogin": {
"message": "开启两步登录"
},
"changeAcctEmail": {
"message": "更改账户电子邮件"
},
"extensionWidth": {
"message": "扩展宽度"
},

View File

@ -248,7 +248,7 @@
"message": "請求密碼提示"
},
"enterYourAccountEmailAddressAndYourPasswordHintWillBeSentToYou": {
"message": "輸入您帳的電子郵件,您的密碼提示會傳送給您"
"message": "輸入您帳的電子郵件,您的密碼提示會傳送給您"
},
"passwordHint": {
"message": "密碼提示"
@ -648,9 +648,6 @@
"rateExtension": {
"message": "為本套件評分"
},
"rateExtensionDesc": {
"message": "請給予我們好評!"
},
"browserNotSupportClipboard": {
"message": "您的瀏覽器不支援剪貼簿簡單複製,請手動複製。"
},
@ -4679,6 +4676,9 @@
"showNumberOfAutofillSuggestions": {
"message": "Show number of login autofill suggestions on extension icon"
},
"showQuickCopyActions": {
"message": "Show quick copy actions on Vault"
},
"systemDefault": {
"message": "System default"
},
@ -4910,6 +4910,42 @@
"beta": {
"message": "Beta"
},
"importantNotice": {
"message": "Important notice"
},
"setupTwoStepLogin": {
"message": "Set up two-step login"
},
"newDeviceVerificationNoticeContentPage1": {
"message": "Bitwarden will send a code to your account email to verify logins from new devices starting in February 2025."
},
"newDeviceVerificationNoticeContentPage2": {
"message": "You can set up two-step login as an alternative way to protect your account or change your email to one you can access."
},
"remindMeLater": {
"message": "Remind me later"
},
"newDeviceVerificationNoticePageOneFormContent": {
"message": "Do you have reliable access to your email, $EMAIL$?",
"placeholders": {
"email": {
"content": "$1",
"example": "your_name@email.com"
}
}
},
"newDeviceVerificationNoticePageOneEmailAccessNo": {
"message": "No, I do not"
},
"newDeviceVerificationNoticePageOneEmailAccessYes": {
"message": "Yes, I can reliably access my email"
},
"turnOnTwoStepLogin": {
"message": "Turn on two-step login"
},
"changeAcctEmail": {
"message": "Change account email"
},
"extensionWidth": {
"message": "Extension width"
},

View File

@ -25,6 +25,7 @@ import { BrowserScriptInjectorService } from "../../../platform/services/browser
import { AbortManager } from "../../../vault/background/abort-manager";
import { Fido2ContentScript, Fido2ContentScriptId } from "../enums/fido2-content-script.enum";
import { Fido2PortName } from "../enums/fido2-port-name.enum";
import { BrowserFido2ParentWindowReference } from "../services/browser-fido2-user-interface.service";
import { Fido2ExtensionMessage } from "./abstractions/fido2.background";
import { Fido2Background } from "./fido2.background";
@ -56,7 +57,7 @@ describe("Fido2Background", () => {
let senderMock!: MockProxy<chrome.runtime.MessageSender>;
let logService!: MockProxy<LogService>;
let fido2ActiveRequestManager: MockProxy<Fido2ActiveRequestManager>;
let fido2ClientService!: MockProxy<Fido2ClientService>;
let fido2ClientService!: MockProxy<Fido2ClientService<BrowserFido2ParentWindowReference>>;
let vaultSettingsService!: MockProxy<VaultSettingsService>;
let scriptInjectorServiceMock!: MockProxy<BrowserScriptInjectorService>;
let configServiceMock!: MockProxy<ConfigService>;
@ -73,7 +74,7 @@ describe("Fido2Background", () => {
});
senderMock = mock<chrome.runtime.MessageSender>({ id: "1", tab: tabMock });
logService = mock<LogService>();
fido2ClientService = mock<Fido2ClientService>();
fido2ClientService = mock<Fido2ClientService<BrowserFido2ParentWindowReference>>();
vaultSettingsService = mock<VaultSettingsService>();
abortManagerMock = mock<AbortManager>();
abortController = mock<AbortController>();

View File

@ -23,10 +23,11 @@ import { ScriptInjectorService } from "../../../platform/services/abstractions/s
import { AbortManager } from "../../../vault/background/abort-manager";
import { Fido2ContentScript, Fido2ContentScriptId } from "../enums/fido2-content-script.enum";
import { Fido2PortName } from "../enums/fido2-port-name.enum";
import { BrowserFido2ParentWindowReference } from "../services/browser-fido2-user-interface.service";
import {
Fido2Background as Fido2BackgroundInterface,
Fido2BackgroundExtensionMessageHandlers,
Fido2Background as Fido2BackgroundInterface,
Fido2ExtensionMessage,
SharedFido2ScriptInjectionDetails,
SharedFido2ScriptRegistrationOptions,
@ -56,7 +57,7 @@ export class Fido2Background implements Fido2BackgroundInterface {
constructor(
private logService: LogService,
private fido2ActiveRequestManager: Fido2ActiveRequestManager,
private fido2ClientService: Fido2ClientService,
private fido2ClientService: Fido2ClientService<BrowserFido2ParentWindowReference>,
private vaultSettingsService: VaultSettingsService,
private scriptInjectorService: ScriptInjectorService,
private configService: ConfigService,

View File

@ -111,11 +111,15 @@ export type BrowserFido2Message = { sessionId: string } & (
}
);
export type BrowserFido2ParentWindowReference = chrome.tabs.Tab;
/**
* Browser implementation of the {@link Fido2UserInterfaceService}.
* The user interface is implemented as a popout and the service uses the browser's messaging API to communicate with it.
*/
export class BrowserFido2UserInterfaceService implements Fido2UserInterfaceServiceAbstraction {
export class BrowserFido2UserInterfaceService
implements Fido2UserInterfaceServiceAbstraction<BrowserFido2ParentWindowReference>
{
constructor(private authService: AuthService) {}
async newSession(

View File

@ -201,11 +201,11 @@ import {
ImportServiceAbstraction,
} from "@bitwarden/importer/core";
import {
DefaultKdfConfigService,
KdfConfigService,
BiometricStateService,
BiometricsService,
DefaultBiometricStateService,
DefaultKdfConfigService,
KdfConfigService,
KeyService as KeyServiceAbstraction,
} from "@bitwarden/key-management";
import {
@ -232,7 +232,10 @@ import { MainContextMenuHandler } from "../autofill/browser/main-context-menu-ha
import LegacyOverlayBackground from "../autofill/deprecated/background/overlay.background.deprecated";
import { Fido2Background as Fido2BackgroundAbstraction } from "../autofill/fido2/background/abstractions/fido2.background";
import { Fido2Background } from "../autofill/fido2/background/fido2.background";
import { BrowserFido2UserInterfaceService } from "../autofill/fido2/services/browser-fido2-user-interface.service";
import {
BrowserFido2ParentWindowReference,
BrowserFido2UserInterfaceService,
} from "../autofill/fido2/services/browser-fido2-user-interface.service";
import { AutofillService as AutofillServiceAbstraction } from "../autofill/services/abstractions/autofill.service";
import AutofillService from "../autofill/services/autofill.service";
import { InlineMenuFieldQualificationService } from "../autofill/services/inline-menu-field-qualification.service";
@ -337,10 +340,10 @@ export default class MainBackground {
policyApiService: PolicyApiServiceAbstraction;
sendApiService: SendApiServiceAbstraction;
userVerificationApiService: UserVerificationApiServiceAbstraction;
fido2UserInterfaceService: Fido2UserInterfaceServiceAbstraction;
fido2AuthenticatorService: Fido2AuthenticatorServiceAbstraction;
fido2UserInterfaceService: Fido2UserInterfaceServiceAbstraction<BrowserFido2ParentWindowReference>;
fido2AuthenticatorService: Fido2AuthenticatorServiceAbstraction<BrowserFido2ParentWindowReference>;
fido2ActiveRequestManager: Fido2ActiveRequestManagerAbstraction;
fido2ClientService: Fido2ClientServiceAbstraction;
fido2ClientService: Fido2ClientServiceAbstraction<BrowserFido2ParentWindowReference>;
avatarService: AvatarServiceAbstraction;
mainContextMenuHandler: MainContextMenuHandler;
cipherContextMenuHandler: CipherContextMenuHandler;
@ -736,7 +739,6 @@ export default class MainBackground {
this.accountService,
this.kdfConfigService,
this.keyService,
this.apiService,
);
this.passwordStrengthService = new PasswordStrengthService();
@ -1310,27 +1312,10 @@ export default class MainBackground {
await this.initOverlayAndTabsBackground();
if (flagEnabled("sdk")) {
// Warn if the SDK for some reason can't be initialized
let supported = false;
let error: Error;
try {
supported = await firstValueFrom(this.sdkService.supported$);
} catch (e) {
error = e;
}
if (!supported) {
this.sdkService
.failedToInitialize("background", error)
.catch((e) => this.logService.error(e));
}
}
return new Promise<void>((resolve) => {
setTimeout(async () => {
await this.refreshBadge();
await this.fullSync(true);
await this.fullSync(false);
this.taskSchedulerService.setInterval(
ScheduledTaskNames.scheduleNextSyncInterval,
5 * 60 * 1000, // check every 5 minutes

View File

@ -44,6 +44,9 @@ page looks nice when the extension is popped out.
- `above-scroll-area`
- When the page content overflows, this content will be "stuck" to the top of the page upon
scrolling.
- `full-width-notice`
- Similar to `above-scroll-area`, this content will display before `above-scroll-area` without
container margin or padding.
- default
- Whatever content you want in `main`.
@ -108,6 +111,30 @@ Common interactive elements to insert into the `end` slot are:
- "Add" button: this can be accomplished with the Button component and any custom functionality for
that particular page
### Notice
<Canvas>
<Story of={stories.Notice} />
</Canvas>
Common interactive elements to insert into the `full-width-notice` slot are:
- `bit-banner`: shows a full-width notice
Usage example:
```html
<popup-page>
<popup-header slot="header" [pageTitle]="'vault' | i18n"> </popup-header>
<bit-banner slot="full-width-notice" bannerType="info" [showClose]="false">
This is an important note about these ciphers
</bit-banner>
<ng-container slot="above-scroll-area">
<app-vault-header-v2></app-vault-header-v2>
</ng-container>
</popup-page>
```
## Popup footer
Popup footer should be used when the page displays action buttons. It functions similarly to the

View File

@ -11,6 +11,7 @@ import { SendService } from "@bitwarden/common/tools/send/services/send.service.
import {
AvatarModule,
BadgeModule,
BannerModule,
ButtonModule,
I18nMockService,
IconButtonModule,
@ -125,6 +126,18 @@ class MockCurrentAccountComponent {}
})
class MockSearchComponent {}
@Component({
selector: "mock-banner",
template: `
<bit-banner bannerType="info" [showClose]="false">
This is an important note about these ciphers
</bit-banner>
`,
standalone: true,
imports: [BannerModule],
})
class MockBannerComponent {}
@Component({
selector: "mock-vault-page",
template: `
@ -298,6 +311,8 @@ export default {
CommonModule,
RouterModule,
ExtensionContainerComponent,
MockBannerComponent,
MockSearchComponent,
MockVaultSubpageComponent,
MockVaultPageComponent,
MockSendPageComponent,
@ -517,6 +532,22 @@ export const TransparentHeader: Story = {
}),
};
export const Notice: Story = {
render: (args) => ({
props: args,
template: /* HTML */ `
<extension-container>
<popup-page>
<popup-header slot="header" pageTitle="Page Header"></popup-header>
<mock-banner slot="full-width-notice"></mock-banner>
<mock-search slot="above-scroll-area"></mock-search>
<vault-placeholder></vault-placeholder>
</popup-page>
</extension-container>
`,
}),
};
export const WidthOptions: Story = {
render: (args) => ({
props: args,

View File

@ -1,5 +1,6 @@
<ng-content select="[slot=header]"></ng-content>
<main class="tw-flex-1 tw-overflow-hidden tw-flex tw-flex-col tw-relative tw-bg-background-alt">
<ng-content select="[slot=full-width-notice]"></ng-content>
<div
#nonScrollable
class="tw-transition-colors tw-duration-200 tw-border-0 tw-border-b tw-border-solid tw-p-3 bit-compact:tw-p-2"

View File

@ -2,7 +2,6 @@
// @ts-strict-ignore
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { SdkClientFactory } from "@bitwarden/common/platform/abstractions/sdk/sdk-client-factory";
import { RecoverableSDKError } from "@bitwarden/common/platform/services/sdk/default-sdk.service";
import type { BitwardenClient } from "@bitwarden/sdk-internal";
import { BrowserApi } from "../../browser/browser-api";
@ -72,42 +71,14 @@ export class BrowserSdkClientFactory implements SdkClientFactory {
...args: ConstructorParameters<typeof BitwardenClient>
): Promise<BitwardenClient> {
const startTime = performance.now();
try {
await loadWithTimeout();
} catch (error) {
throw new Error(`Failed to load: ${error.message}`);
}
await load();
const endTime = performance.now();
const elapsed = Math.round((endTime - startTime) / 1000);
const instance = (globalThis as any).init_sdk(...args);
this.logService.info("WASM SDK loaded in", Math.round(endTime - startTime), "ms");
// If it takes 3 seconds or more to load, we want to capture it.
if (elapsed >= 3) {
throw new RecoverableSDKError(instance, elapsed);
}
return instance;
}
}
const loadWithTimeout = async () => {
return new Promise<void>((resolve, reject) => {
const timer = setTimeout(() => {
reject(new Error("Operation timed out after 10 second"));
}, 10000);
load()
.then(() => {
clearTimeout(timer);
resolve();
})
.catch((error) => {
clearTimeout(timer);
reject(error);
});
});
};

View File

@ -19,6 +19,7 @@ import {
import { canAccessFeature } from "@bitwarden/angular/platform/guard/feature-flag.guard";
import { extensionRefreshRedirect } from "@bitwarden/angular/utils/extension-refresh-redirect";
import { extensionRefreshSwap } from "@bitwarden/angular/utils/extension-refresh-swap";
import { NewDeviceVerificationNoticeGuard } from "@bitwarden/angular/vault/guards";
import {
AnonLayoutWrapperComponent,
AnonLayoutWrapperData,
@ -43,6 +44,11 @@ import {
TwoFactorTimeoutIcon,
} from "@bitwarden/auth/angular";
import { FeatureFlag } from "@bitwarden/common/enums/feature-flag.enum";
import {
NewDeviceVerificationNoticePageOneComponent,
NewDeviceVerificationNoticePageTwoComponent,
VaultIcons,
} from "@bitwarden/vault";
import { twofactorRefactorSwap } from "../../../../libs/angular/src/utils/two-factor-component-refactor-route-swap";
import { fido2AuthGuard } from "../auth/guards/fido2-auth.guard";
@ -99,10 +105,8 @@ import { clearVaultStateGuard } from "../vault/guards/clear-vault-state.guard";
import { AddEditComponent } from "../vault/popup/components/vault/add-edit.component";
import { AttachmentsComponent } from "../vault/popup/components/vault/attachments.component";
import { CollectionsComponent } from "../vault/popup/components/vault/collections.component";
import { CurrentTabComponent } from "../vault/popup/components/vault/current-tab.component";
import { PasswordHistoryComponent } from "../vault/popup/components/vault/password-history.component";
import { ShareComponent } from "../vault/popup/components/vault/share.component";
import { VaultFilterComponent } from "../vault/popup/components/vault/vault-filter.component";
import { VaultItemsComponent } from "../vault/popup/components/vault/vault-items.component";
import { VaultV2Component } from "../vault/popup/components/vault/vault-v2.component";
import { ViewComponent } from "../vault/popup/components/vault/view.component";
@ -124,7 +128,6 @@ import { VaultSettingsComponent } from "../vault/popup/settings/vault-settings.c
import { RouteElevation } from "./app-routing.animations";
import { debounceNavigationGuard } from "./services/debounce-navigation.service";
import { TabsV2Component } from "./tabs-v2.component";
import { TabsComponent } from "./tabs.component";
/**
* Data properties acceptable for use in extension route objects
@ -715,8 +718,36 @@ const routes: Routes = [
canActivate: [authGuard],
data: { elevation: 2 } satisfies RouteDataProperties,
},
...extensionRefreshSwap(TabsComponent, TabsV2Component, {
{
path: "new-device-notice",
component: ExtensionAnonLayoutWrapperComponent,
canActivate: [],
children: [
{
path: "",
component: NewDeviceVerificationNoticePageOneComponent,
data: {
pageIcon: VaultIcons.ExclamationTriangle,
pageTitle: {
key: "importantNotice",
},
},
},
{
path: "setup",
component: NewDeviceVerificationNoticePageTwoComponent,
data: {
pageIcon: VaultIcons.UserLock,
pageTitle: {
key: "setupTwoStepLogin",
},
},
},
],
},
{
path: "tabs",
component: TabsV2Component,
data: { elevation: 0 } satisfies RouteDataProperties,
children: [
{
@ -726,18 +757,15 @@ const routes: Routes = [
},
{
path: "current",
component: CurrentTabComponent,
canActivate: [authGuard],
canMatch: [extensionRefreshRedirect("/tabs/vault")],
data: { elevation: 0 } satisfies RouteDataProperties,
runGuardsAndResolvers: "always",
redirectTo: "/tabs/vault",
},
...extensionRefreshSwap(VaultFilterComponent, VaultV2Component, {
{
path: "vault",
canActivate: [authGuard],
component: VaultV2Component,
canActivate: [authGuard, NewDeviceVerificationNoticeGuard],
canDeactivate: [clearVaultStateGuard],
data: { elevation: 0 } satisfies RouteDataProperties,
}),
},
...extensionRefreshSwap(GeneratorComponent, CredentialGeneratorComponent, {
path: "generator",
canActivate: [authGuard],
@ -755,7 +783,7 @@ const routes: Routes = [
data: { elevation: 0 } satisfies RouteDataProperties,
}),
],
}),
},
{
path: "account-switcher",
component: AccountSwitcherComponent,

View File

@ -1,7 +1,6 @@
// FIXME: Update this file to be type safe and remove this and next line
// @ts-strict-ignore
import { ChangeDetectorRef, Component, NgZone, OnDestroy, OnInit, inject } from "@angular/core";
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
import { NavigationEnd, Router, RouterOutlet } from "@angular/router";
import { Subject, takeUntil, firstValueFrom, concatMap, filter, tap } from "rxjs";
@ -11,9 +10,7 @@ import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service";
import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status";
import { AnimationControlService } from "@bitwarden/common/platform/abstractions/animation-control.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { SdkService } from "@bitwarden/common/platform/abstractions/sdk/sdk.service";
import { StateService } from "@bitwarden/common/platform/abstractions/state.service";
import { MessageListener } from "@bitwarden/common/platform/messaging";
import { UserId } from "@bitwarden/common/types/guid";
@ -25,7 +22,6 @@ import {
ToastService,
} from "@bitwarden/components";
import { flagEnabled } from "../platform/flags";
import { PopupCompactModeService } from "../platform/popup/layout/popup-compact-mode.service";
import { PopupWidthService } from "../platform/popup/layout/popup-width.service";
import { PopupViewCacheService } from "../platform/popup/view-cache/popup-view-cache.service";
@ -72,31 +68,7 @@ export class AppComponent implements OnInit, OnDestroy {
private toastService: ToastService,
private accountService: AccountService,
private animationControlService: AnimationControlService,
private logService: LogService,
private sdkService: SdkService,
) {
if (flagEnabled("sdk")) {
// Warn if the SDK for some reason can't be initialized
this.sdkService.supported$.pipe(takeUntilDestroyed()).subscribe({
next: (supported) => {
if (!supported) {
this.logService.debug("SDK is not supported");
this.sdkService
.failedToInitialize("popup", undefined)
.catch((e) => this.logService.error(e));
} else {
this.logService.debug("SDK is supported");
}
},
error: (e: unknown) => {
this.sdkService
.failedToInitialize("popup", e as Error)
.catch((e) => this.logService.error(e));
this.logService.error(e);
},
});
}
}
) {}
async ngOnInit() {
initPopupClosedListener();

View File

@ -88,7 +88,6 @@ import { AppComponent } from "./app.component";
import { UserVerificationComponent } from "./components/user-verification.component";
import { ServicesModule } from "./services/services.module";
import { TabsV2Component } from "./tabs-v2.component";
import { TabsComponent } from "./tabs.component";
// Register the locales for the application
import "../platform/popup/locales";
@ -177,7 +176,6 @@ import "../platform/popup/locales";
ShareComponent,
SsoComponentV1,
SyncComponent,
TabsComponent,
TabsV2Component,
TwoFactorComponent,
TwoFactorOptionsComponent,

View File

@ -1,57 +0,0 @@
<div class="tab-page">
<router-outlet></router-outlet>
<nav class="tabs">
<ul>
<li routerLinkActive="active" #rlaCurrentTab="routerLinkActive" *ngIf="showCurrentTab">
<button
type="button"
routerLink="current"
appA11yTitle="{{ 'currentTab' | i18n }}"
[attr.aria-pressed]="rlaCurrentTab.isActive"
>
<i class="bwi bwi-folder-closed-f bwi-2x" aria-hidden="true"></i>{{ "tab" | i18n }}
</button>
</li>
<li routerLinkActive="active" #rlaMyVault="routerLinkActive">
<button
type="button"
routerLink="vault"
appA11yTitle="{{ 'myVault' | i18n }}"
[attr.aria-pressed]="rlaMyVault.isActive"
>
<i class="bwi bwi-lock-f bwi-2x" aria-hidden="true"></i>{{ "vault" | i18n }}
</button>
</li>
<li routerLinkActive="active" #rlaSend="routerLinkActive">
<button
type="button"
routerLink="send"
appA11yTitle="{{ 'send' | i18n }}"
[attr.aria-pressed]="rlaSend.isActive"
>
<i class="bwi bwi-send-f bwi-2x" aria-hidden="true"></i>{{ "send" | i18n }}
</button>
</li>
<li routerLinkActive="active" #rlaGenerator="routerLinkActive">
<button
type="button"
routerLink="generator"
appA11yTitle="{{ 'passGen' | i18n }}"
[attr.aria-pressed]="rlaGenerator.isActive"
>
<i class="bwi bwi-generate-f bwi-2x" aria-hidden="true"></i>{{ "generator" | i18n }}
</button>
</li>
<li routerLinkActive="active" #rlaSettings="routerLinkActive">
<button
type="button"
routerLink="settings"
appA11yTitle="{{ 'settings' | i18n }}"
[attr.aria-pressed]="rlaSettings.isActive"
>
<i class="bwi bwi-cog-f bwi-2x" aria-hidden="true"></i>{{ "settings" | i18n }}
</button>
</li>
</ul>
</nav>
</div>

View File

@ -1,15 +0,0 @@
import { Component, OnInit } from "@angular/core";
import BrowserPopupUtils from "../platform/popup/browser-popup-utils";
@Component({
selector: "app-tabs",
templateUrl: "tabs.component.html",
})
export class TabsComponent implements OnInit {
showCurrentTab = true;
ngOnInit() {
this.showCurrentTab = !BrowserPopupUtils.inPopout(window);
}
}

View File

@ -1,8 +1,8 @@
<popup-page>
<popup-page [loading]="!cipher">
<popup-header slot="header" pageTitle="{{ 'passwordHistory' | i18n }}" showBackButton>
<ng-container slot="end">
<app-pop-out></app-pop-out>
</ng-container>
</popup-header>
<vault-password-history-view *ngIf="cipherId" [cipherId]="cipherId" />
<vault-password-history-view *ngIf="cipher" [cipher]="cipher" />
</popup-page>

View File

@ -1,27 +1,40 @@
import { ComponentFixture, TestBed } from "@angular/core/testing";
import { ComponentFixture, fakeAsync, TestBed, tick } from "@angular/core/testing";
import { ActivatedRoute } from "@angular/router";
import { mock } from "jest-mock-extended";
import { Subject } from "rxjs";
import { BehaviorSubject, Subject } from "rxjs";
import { WINDOW } from "@bitwarden/angular/services/injection-tokens";
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
import { Account, AccountService } from "@bitwarden/common/auth/abstractions/account.service";
import { ConfigService } from "@bitwarden/common/platform/abstractions/config/config.service";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
import { Cipher } from "@bitwarden/common/vault/models/domain/cipher";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import { PopupRouterCacheService } from "../../../../../platform/popup/view-cache/popup-router-cache.service";
import { PasswordHistoryV2Component } from "./vault-password-history-v2.component";
describe("PasswordHistoryV2Component", () => {
let component: PasswordHistoryV2Component;
let fixture: ComponentFixture<PasswordHistoryV2Component>;
const params$ = new Subject();
const mockCipherView = {
id: "111-222-333",
name: "cipher one",
} as CipherView;
const mockCipher = {
decrypt: jest.fn().mockResolvedValue(mockCipherView),
} as unknown as Cipher;
const back = jest.fn().mockResolvedValue(undefined);
const getCipher = jest.fn().mockResolvedValue(mockCipher);
beforeEach(async () => {
back.mockClear();
getCipher.mockClear();
await TestBed.configureTestingModule({
imports: [PasswordHistoryV2Component],
@ -29,8 +42,13 @@ describe("PasswordHistoryV2Component", () => {
{ provide: WINDOW, useValue: window },
{ provide: PlatformUtilsService, useValue: mock<PlatformUtilsService>() },
{ provide: ConfigService, useValue: mock<ConfigService>() },
{ provide: CipherService, useValue: mock<CipherService>() },
{ provide: AccountService, useValue: mock<AccountService>() },
{ provide: CipherService, useValue: mock<CipherService>({ get: getCipher }) },
{
provide: AccountService,
useValue: mock<AccountService>({
activeAccount$: new BehaviorSubject({ id: "acct-1" } as Account),
}),
},
{ provide: PopupRouterCacheService, useValue: { back } },
{ provide: ActivatedRoute, useValue: { queryParams: params$ } },
{ provide: I18nService, useValue: { t: (key: string) => key } },
@ -38,19 +56,21 @@ describe("PasswordHistoryV2Component", () => {
}).compileComponents();
fixture = TestBed.createComponent(PasswordHistoryV2Component);
component = fixture.componentInstance;
fixture.detectChanges();
});
it("sets the cipherId from the params", () => {
params$.next({ cipherId: "444-33-33-1111" });
it("loads the cipher from params the cipherId from the params", fakeAsync(() => {
params$.next({ cipherId: mockCipherView.id });
expect(component["cipherId"]).toBe("444-33-33-1111");
});
tick(100);
expect(getCipher).toHaveBeenCalledWith(mockCipherView.id);
}));
it("navigates back when a cipherId is not in the params", () => {
params$.next({});
expect(back).toHaveBeenCalledTimes(1);
expect(getCipher).not.toHaveBeenCalled();
});
});

View File

@ -3,10 +3,14 @@
import { NgIf } from "@angular/common";
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute } from "@angular/router";
import { first } from "rxjs/operators";
import { firstValueFrom } from "rxjs";
import { first, map } from "rxjs/operators";
import { JslibModule } from "@bitwarden/angular/jslib.module";
import { CipherId } from "@bitwarden/common/types/guid";
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
import { UserId } from "@bitwarden/common/types/guid";
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import { PasswordHistoryViewComponent } from "../../../../../../../../libs/vault/src/components/password-history-view/password-history-view.component";
import { PopOutComponent } from "../../../../../platform/popup/components/pop-out.component";
@ -28,18 +32,20 @@ import { PopupRouterCacheService } from "../../../../../platform/popup/view-cach
],
})
export class PasswordHistoryV2Component implements OnInit {
protected cipherId: CipherId;
protected cipher: CipherView;
constructor(
private browserRouterHistory: PopupRouterCacheService,
private route: ActivatedRoute,
private cipherService: CipherService,
private accountService: AccountService,
) {}
ngOnInit() {
// eslint-disable-next-line rxjs-angular/prefer-takeuntil
this.route.queryParams.pipe(first()).subscribe((params) => {
if (params.cipherId) {
this.cipherId = params.cipherId;
void this.loadCipher(params.cipherId);
} else {
this.close();
}
@ -49,4 +55,22 @@ export class PasswordHistoryV2Component implements OnInit {
close() {
void this.browserRouterHistory.back();
}
/** Load the cipher based on the given Id */
private async loadCipher(cipherId: string) {
const cipher = await this.cipherService.get(cipherId);
const activeAccount = await firstValueFrom(
this.accountService.activeAccount$.pipe(map((a: { id: string | undefined }) => a)),
);
if (!activeAccount?.id) {
throw new Error("Active account is not available.");
}
const activeUserId = activeAccount.id as UserId;
this.cipher = await cipher.decrypt(
await this.cipherService.getKeyForCipherKeyDecryption(cipher, activeUserId),
);
}
}

View File

@ -2,6 +2,8 @@ import { TestBed } from "@angular/core/testing";
import { Router } from "@angular/router";
import { mock, MockProxy } from "jest-mock-extended";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import { BrowserViewPasswordHistoryService } from "./browser-view-password-history.service";
describe("BrowserViewPasswordHistoryService", () => {
@ -19,9 +21,9 @@ describe("BrowserViewPasswordHistoryService", () => {
describe("viewPasswordHistory", () => {
it("navigates to the password history screen", async () => {
await service.viewPasswordHistory("test");
await service.viewPasswordHistory({ id: "cipher-id" } as CipherView);
expect(router.navigate).toHaveBeenCalledWith(["/cipher-password-history"], {
queryParams: { cipherId: "test" },
queryParams: { cipherId: "cipher-id" },
});
});
});

View File

@ -4,6 +4,7 @@ import { inject } from "@angular/core";
import { Router } from "@angular/router";
import { ViewPasswordHistoryService } from "@bitwarden/common/vault/abstractions/view-password-history.service";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
/**
* This class handles the premium upgrade process for the browser extension.
@ -14,7 +15,9 @@ export class BrowserViewPasswordHistoryService implements ViewPasswordHistorySer
/**
* Navigates to the password history screen.
*/
async viewPasswordHistory(cipherId: string) {
await this.router.navigate(["/cipher-password-history"], { queryParams: { cipherId } });
async viewPasswordHistory(cipher: CipherView) {
await this.router.navigate(["/cipher-password-history"], {
queryParams: { cipherId: cipher.id },
});
}
}

View File

@ -262,13 +262,6 @@ describe("VaultPopupItemsService", () => {
});
});
it("should sort by last used then by name", (done) => {
service.favoriteCiphers$.subscribe((ciphers) => {
expect(cipherServiceMock.sortCiphersByLastUsedThenName).toHaveBeenCalled();
done();
});
});
it("should filter favoriteCiphers$ down to search term", (done) => {
const cipherList = Object.values(allCiphers);
const searchText = "Card 2";

View File

@ -164,16 +164,13 @@ export class VaultPopupItemsService {
/**
* List of favorite ciphers that are not currently suggested for autofill.
* Ciphers are sorted by last used date, then by name.
* Ciphers are sorted by name.
*/
favoriteCiphers$: Observable<PopupCipherView[]> = this.autoFillCiphers$.pipe(
withLatestFrom(this._filteredCipherList$),
map(([autoFillCiphers, ciphers]) =>
ciphers.filter((cipher) => cipher.favorite && !autoFillCiphers.includes(cipher)),
),
map((ciphers) =>
ciphers.sort((a, b) => this.cipherService.sortCiphersByLastUsedThenName(a, b)),
),
shareReplay({ refCount: false, bufferSize: 1 }),
);

View File

@ -80,7 +80,7 @@
"papaparse": "5.4.1",
"proper-lockfile": "4.1.2",
"rxjs": "7.8.1",
"tldts": "6.1.66",
"tldts": "6.1.69",
"zxcvbn": "4.4.2"
}
}

View File

@ -550,7 +550,6 @@ export class ServiceContainer {
this.accountService,
this.kdfConfigService,
this.keyService,
this.apiService,
customUserAgent,
);
@ -864,19 +863,5 @@ export class ServiceContainer {
}
this.inited = true;
if (flagEnabled("sdk")) {
// Warn if the SDK for some reason can't be initialized
let supported = false;
try {
supported = await firstValueFrom(this.sdkService.supported$);
} catch (e) {
// Do nothing.
}
if (!supported) {
this.sdkService.failedToInitialize("cli").catch((e) => this.logService.error(e));
}
}
}
}

View File

@ -62,12 +62,55 @@ dependencies = [
"memchr",
]
[[package]]
name = "anstream"
version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b"
dependencies = [
"anstyle",
"anstyle-parse",
"anstyle-query",
"anstyle-wincon",
"colorchoice",
"is_terminal_polyfill",
"utf8parse",
]
[[package]]
name = "anstyle"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9"
[[package]]
name = "anstyle-parse"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9"
dependencies = [
"utf8parse",
]
[[package]]
name = "anstyle-query"
version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c"
dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "anstyle-wincon"
version = "3.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125"
dependencies = [
"anstyle",
"windows-sys 0.59.0",
]
[[package]]
name = "anyhow"
version = "1.0.94"
@ -103,6 +146,47 @@ dependencies = [
"zeroize",
]
[[package]]
name = "askama"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b79091df18a97caea757e28cd2d5fda49c6cd4bd01ddffd7ff01ace0c0ad2c28"
dependencies = [
"askama_derive",
"askama_escape",
]
[[package]]
name = "askama_derive"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19fe8d6cb13c4714962c072ea496f3392015f0989b1a2847bb4b2d9effd71d83"
dependencies = [
"askama_parser",
"basic-toml",
"mime",
"mime_guess",
"proc-macro2",
"quote",
"serde",
"syn",
]
[[package]]
name = "askama_escape"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341"
[[package]]
name = "askama_parser"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acb1161c6b64d1c3d83108213c2a2533a342ac225aabd0bda218278c2ddb00c0"
dependencies = [
"nom",
]
[[package]]
name = "async-broadcast"
version = "0.7.1"
@ -318,6 +402,15 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "basic-toml"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "823388e228f614e9558c6804262db37960ec8821856535f5c3f59913140558f8"
dependencies = [
"serde",
]
[[package]]
name = "bcrypt-pbkdf"
version = "0.10.0"
@ -329,6 +422,15 @@ dependencies = [
"sha2",
]
[[package]]
name = "bincode"
version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
dependencies = [
"serde",
]
[[package]]
name = "bitflags"
version = "2.6.0"
@ -422,6 +524,38 @@ version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b"
[[package]]
name = "camino"
version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3"
dependencies = [
"serde",
]
[[package]]
name = "cargo-platform"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea"
dependencies = [
"serde",
]
[[package]]
name = "cargo_metadata"
version = "0.15.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a"
dependencies = [
"camino",
"cargo-platform",
"semver",
"serde",
"serde_json",
"thiserror",
]
[[package]]
name = "cbc"
version = "0.1.2"
@ -487,6 +621,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "69371e34337c4c984bbe322360c2547210bf632eb2814bbe78a6e87a2935bd2b"
dependencies = [
"clap_builder",
"clap_derive",
]
[[package]]
@ -495,11 +630,24 @@ version = "4.5.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e24c1b4099818523236a8ca881d2b45db98dadfb4625cf6608c12069fcbbde1"
dependencies = [
"anstream",
"anstyle",
"clap_lex",
"strsim",
]
[[package]]
name = "clap_derive"
version = "4.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "clap_lex"
version = "0.7.3"
@ -525,6 +673,12 @@ dependencies = [
"unicode-width",
]
[[package]]
name = "colorchoice"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
[[package]]
name = "concurrent-queue"
version = "2.5.0"
@ -724,6 +878,19 @@ dependencies = [
"syn",
]
[[package]]
name = "dashmap"
version = "5.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
dependencies = [
"cfg-if",
"hashbrown 0.14.5",
"lock_api",
"once_cell",
"parking_lot_core",
]
[[package]]
name = "der"
version = "0.7.9"
@ -815,6 +982,8 @@ dependencies = [
"napi",
"napi-build",
"napi-derive",
"serde",
"serde_json",
"tokio",
"tokio-stream",
"tokio-util",
@ -1035,6 +1204,15 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2"
[[package]]
name = "fs-err"
version = "2.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
dependencies = [
"autocfg",
]
[[package]]
name = "futures"
version = "0.3.31"
@ -1190,12 +1368,35 @@ version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
[[package]]
name = "goblin"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47"
dependencies = [
"log",
"plain",
"scroll",
]
[[package]]
name = "hashbrown"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
[[package]]
name = "hashbrown"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
[[package]]
name = "heck"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
[[package]]
name = "hermit-abi"
version = "0.4.0"
@ -1245,7 +1446,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
dependencies = [
"equivalent",
"hashbrown",
"hashbrown 0.15.2",
]
[[package]]
@ -1273,6 +1474,12 @@ dependencies = [
"windows-sys 0.52.0",
]
[[package]]
name = "is_terminal_polyfill"
version = "1.70.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf"
[[package]]
name = "itoa"
version = "1.0.14"
@ -1372,6 +1579,21 @@ version = "0.4.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
[[package]]
name = "macos_provider"
version = "0.0.0"
dependencies = [
"desktop_core",
"futures",
"log",
"oslog",
"serde",
"serde_json",
"tokio",
"tokio-util",
"uniffi",
]
[[package]]
name = "md-5"
version = "0.10.6"
@ -1397,6 +1619,22 @@ dependencies = [
"autocfg",
]
[[package]]
name = "mime"
version = "0.3.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
[[package]]
name = "mime_guess"
version = "2.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
dependencies = [
"mime",
"unicase",
]
[[package]]
name = "minimal-lexical"
version = "0.2.1"
@ -1811,6 +2049,17 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "oslog"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80d2043d1f61d77cb2f4b1f7b7b2295f40507f5f8e9d1c8bf10a1ca5f97a3969"
dependencies = [
"cc",
"dashmap",
"log",
]
[[package]]
name = "parking"
version = "2.2.1"
@ -1851,6 +2100,12 @@ dependencies = [
"subtle",
]
[[package]]
name = "paste"
version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
[[package]]
name = "pbkdf2"
version = "0.12.2"
@ -1967,6 +2222,12 @@ version = "0.3.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2"
[[package]]
name = "plain"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
[[package]]
name = "polling"
version = "3.7.4"
@ -2235,6 +2496,12 @@ version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "salsa20"
version = "0.10.2"
@ -2262,6 +2529,26 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152"
[[package]]
name = "scroll"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ab8598aa408498679922eff7fa985c25d58a90771bd6be794434c5277eab1a6"
dependencies = [
"scroll_derive",
]
[[package]]
name = "scroll_derive"
version = "0.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "scrypt"
version = "0.11.0"
@ -2301,6 +2588,9 @@ name = "semver"
version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
dependencies = [
"serde",
]
[[package]]
name = "serde"
@ -2322,6 +2612,18 @@ dependencies = [
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.133"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
]
[[package]]
name = "serde_repr"
version = "0.1.19"
@ -2391,6 +2693,12 @@ dependencies = [
"time",
]
[[package]]
name = "siphasher"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]]
name = "slab"
version = "0.4.9"
@ -2406,6 +2714,12 @@ version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
[[package]]
name = "smawk"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
[[package]]
name = "socket2"
version = "0.5.8"
@ -2544,6 +2858,15 @@ dependencies = [
"winapi-util",
]
[[package]]
name = "textwrap"
version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
dependencies = [
"smawk",
]
[[package]]
name = "thiserror"
version = "1.0.69"
@ -2648,6 +2971,15 @@ dependencies = [
"tokio",
]
[[package]]
name = "toml"
version = "0.5.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
dependencies = [
"serde",
]
[[package]]
name = "toml_datetime"
version = "0.6.8"
@ -2726,6 +3058,12 @@ dependencies = [
"winapi",
]
[[package]]
name = "unicase"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df"
[[package]]
name = "unicode-ident"
version = "1.0.14"
@ -2744,6 +3082,136 @@ version = "0.1.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af"
[[package]]
name = "uniffi"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cb08c58c7ed7033150132febe696bef553f891b1ede57424b40d87a89e3c170"
dependencies = [
"anyhow",
"camino",
"cargo_metadata",
"clap",
"uniffi_bindgen",
"uniffi_build",
"uniffi_core",
"uniffi_macros",
]
[[package]]
name = "uniffi_bindgen"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cade167af943e189a55020eda2c314681e223f1e42aca7c4e52614c2b627698f"
dependencies = [
"anyhow",
"askama",
"camino",
"cargo_metadata",
"fs-err",
"glob",
"goblin",
"heck",
"once_cell",
"paste",
"serde",
"textwrap",
"toml",
"uniffi_meta",
"uniffi_udl",
]
[[package]]
name = "uniffi_build"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c7cf32576e08104b7dc2a6a5d815f37616e66c6866c2a639fe16e6d2286b75b"
dependencies = [
"anyhow",
"camino",
"uniffi_bindgen",
]
[[package]]
name = "uniffi_checksum_derive"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "802d2051a700e3ec894c79f80d2705b69d85844dafbbe5d1a92776f8f48b563a"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "uniffi_core"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc7687007d2546c454d8ae609b105daceb88175477dac280707ad6d95bcd6f1f"
dependencies = [
"anyhow",
"bytes",
"log",
"once_cell",
"paste",
"static_assertions",
]
[[package]]
name = "uniffi_macros"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "12c65a5b12ec544ef136693af8759fb9d11aefce740fb76916721e876639033b"
dependencies = [
"bincode",
"camino",
"fs-err",
"once_cell",
"proc-macro2",
"quote",
"serde",
"syn",
"toml",
"uniffi_meta",
]
[[package]]
name = "uniffi_meta"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4a74ed96c26882dac1ca9b93ca23c827e284bacbd7ec23c6f0b0372f747d59e4"
dependencies = [
"anyhow",
"bytes",
"siphasher",
"uniffi_checksum_derive",
]
[[package]]
name = "uniffi_testing"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a6f984f0781f892cc864a62c3a5c60361b1ccbd68e538e6c9fbced5d82268ac"
dependencies = [
"anyhow",
"camino",
"cargo_metadata",
"fs-err",
"once_cell",
]
[[package]]
name = "uniffi_udl"
version = "0.28.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "037820a4cfc4422db1eaa82f291a3863c92c7d1789dc513489c36223f9b4cdfc"
dependencies = [
"anyhow",
"textwrap",
"uniffi_meta",
"uniffi_testing",
"weedle2",
]
[[package]]
name = "universal-hash"
version = "0.5.1"
@ -2754,6 +3222,12 @@ dependencies = [
"subtle",
]
[[package]]
name = "utf8parse"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "version_check"
version = "0.9.5"
@ -2839,6 +3313,15 @@ dependencies = [
"pkg-config",
]
[[package]]
name = "weedle2"
version = "5.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "998d2c24ec099a87daf9467808859f9d82b61f1d9c9701251aea037f514eae0e"
dependencies = [
"nom",
]
[[package]]
name = "widestring"
version = "1.1.0"

View File

@ -1,3 +1,3 @@
[workspace]
resolver = "2"
members = ["napi", "core", "proxy"]
members = ["napi", "core", "proxy", "macos_provider"]

View File

@ -1,3 +1,4 @@
#[allow(clippy::module_inception)]
#[cfg_attr(target_os = "linux", path = "unix.rs")]
#[cfg_attr(target_os = "windows", path = "windows.rs")]
#[cfg_attr(target_os = "macos", path = "macos.rs")]

View File

@ -1,5 +1,5 @@
use anyhow::Result;
pub async fn run_command(value: String) -> Result<String> {
pub async fn run_command(_value: String) -> Result<String> {
todo!("Unix does not support autofill");
}

View File

@ -1,5 +1,5 @@
use anyhow::Result;
pub async fn run_command(value: String) -> Result<String> {
pub async fn run_command(_value: String) -> Result<String> {
todo!("Windows does not support autofill");
}

View File

@ -1,6 +1,7 @@
use aes::cipher::generic_array::GenericArray;
use anyhow::{anyhow, Result};
#[allow(clippy::module_inception)]
#[cfg_attr(target_os = "linux", path = "unix.rs")]
#[cfg_attr(target_os = "windows", path = "windows.rs")]
#[cfg_attr(target_os = "macos", path = "macos.rs")]
@ -41,6 +42,7 @@ pub trait BiometricTrait {
) -> Result<String>;
}
#[allow(unused)]
fn encrypt(secret: &str, key_material: &KeyMaterial, iv_b64: &str) -> Result<String> {
let iv = base64_engine
.decode(iv_b64)?
@ -52,9 +54,10 @@ fn encrypt(secret: &str, key_material: &KeyMaterial, iv_b64: &str) -> Result<Str
Ok(encrypted.to_string())
}
#[allow(unused)]
fn decrypt(secret: &CipherString, key_material: &KeyMaterial) -> Result<String> {
if let CipherString::AesCbc256_B64 { iv, data } = secret {
let decrypted = crypto::decrypt_aes256(&iv, &data, key_material.derive_key()?)?;
let decrypted = crypto::decrypt_aes256(iv, data, key_material.derive_key()?)?;
Ok(String::from_utf8(decrypted)?)
} else {

View File

@ -33,12 +33,10 @@ impl super::BiometricTrait for Biometric {
.await;
match result {
Ok(result) => {
return Ok(result.is_authorized);
}
Ok(result) => Ok(result.is_authorized),
Err(e) => {
println!("polkit biometric error: {:?}", e);
return Ok(false);
Ok(false)
}
}
}
@ -52,7 +50,7 @@ impl super::BiometricTrait for Biometric {
return Ok(true);
}
}
return Ok(false);
Ok(false)
}
fn derive_key_material(challenge_str: Option<&str>) -> Result<OsDerivedKey> {
@ -68,8 +66,8 @@ impl super::BiometricTrait for Biometric {
// so we use a a key derived from the iv. this key is not intended to add any security
// but only a place-holder
let key = Sha256::digest(challenge);
let key_b64 = base64_engine.encode(&key);
let iv_b64 = base64_engine.encode(&challenge);
let key_b64 = base64_engine.encode(key);
let iv_b64 = base64_engine.encode(challenge);
Ok(OsDerivedKey { key_b64, iv_b64 })
}
@ -100,7 +98,7 @@ impl super::BiometricTrait for Biometric {
let encrypted_secret = crate::password::get_password(service, account).await?;
let secret = CipherString::from_str(&encrypted_secret)?;
return Ok(decrypt(&secret, &key_material)?);
decrypt(&secret, &key_material)
}
}

View File

@ -88,14 +88,14 @@ impl super::BiometricTrait for Biometric {
let bitwarden = h!("Bitwarden");
let result = KeyCredentialManager::RequestCreateAsync(
&bitwarden,
bitwarden,
KeyCredentialCreationOption::FailIfExists,
)?
.get()?;
let result = match result.Status()? {
KeyCredentialStatus::CredentialAlreadyExists => {
KeyCredentialManager::OpenAsync(&bitwarden)?.get()?
KeyCredentialManager::OpenAsync(bitwarden)?.get()?
}
KeyCredentialStatus::Success => result,
_ => return Err(anyhow!("Failed to create key credential")),
@ -116,8 +116,8 @@ impl super::BiometricTrait for Biometric {
CryptographicBuffer::CopyToByteArray(&signature_buffer, &mut signature_value)?;
let key = Sha256::digest(&*signature_value);
let key_b64 = base64_engine.encode(&key);
let iv_b64 = base64_engine.encode(&challenge);
let key_b64 = base64_engine.encode(key);
let iv_b64 = base64_engine.encode(challenge);
Ok(OsDerivedKey { key_b64, iv_b64 })
}
@ -151,12 +151,12 @@ impl super::BiometricTrait for Biometric {
Ok(secret) => {
// If the secret is a CipherString, it is encrypted and we need to decrypt it.
let secret = decrypt(&secret, &key_material)?;
return Ok(secret);
Ok(secret)
}
Err(_) => {
// If the secret is not a CipherString, it is not encrypted and we can return it
// directly.
return Ok(encrypted_secret);
Ok(encrypted_secret)
}
}
}
@ -206,8 +206,8 @@ fn set_focus(window: HWND) {
pressed = true;
keybd_event(VK_MENU.0 as u8, 0, KEYEVENTF_EXTENDEDKEY, 0);
}
SetForegroundWindow(window);
SetFocus(window);
let _ = SetForegroundWindow(window);
let _ = SetFocus(window);
if pressed {
keybd_event(
VK_MENU.0 as u8,
@ -245,20 +245,21 @@ mod tests {
assert_eq!(iv.len(), 16);
}
#[test]
#[tokio::test]
#[cfg(feature = "manual_test")]
fn test_prompt() {
async fn test_prompt() {
<Biometric as BiometricTrait>::prompt(
vec![0, 0, 0, 0, 0, 0, 0, 0],
String::from("Hello from Rust"),
)
.await
.unwrap();
}
#[test]
#[tokio::test]
#[cfg(feature = "manual_test")]
fn test_available() {
assert!(<Biometric as BiometricTrait>::available().unwrap())
async fn test_available() {
assert!(<Biometric as BiometricTrait>::available().await.unwrap())
}
#[test]
@ -275,7 +276,7 @@ mod tests {
match secret {
CipherString::AesCbc256_B64 { iv, data: _ } => {
assert_eq!(iv_b64, base64_engine.encode(&iv));
assert_eq!(iv_b64, base64_engine.encode(iv));
}
_ => panic!("Invalid cipher string"),
}

View File

@ -9,13 +9,9 @@ use crate::error::{CryptoError, KdfParamError, Result};
use super::CipherString;
pub fn decrypt_aes256(
iv: &[u8; 16],
data: &Vec<u8>,
key: GenericArray<u8, U32>,
) -> Result<Vec<u8>> {
pub fn decrypt_aes256(iv: &[u8; 16], data: &[u8], key: GenericArray<u8, U32>) -> Result<Vec<u8>> {
let iv = GenericArray::from_slice(iv);
let mut data = data.clone();
let mut data = data.to_vec();
let decrypted_key_slice = cbc::Decryptor::<aes::Aes256>::new(&key, iv)
.decrypt_padded_mut::<Pkcs7>(&mut data)
.map_err(|_| CryptoError::KeyDecrypt)?;
@ -54,7 +50,7 @@ pub fn argon2(
let mut hash = [0u8; 32];
argon
.hash_password_into(secret, &salt, &mut hash)
.hash_password_into(secret, salt, &mut hash)
.map_err(|e| KdfParamError::InvalidParams(format!("Argon2 hashing failed: {e}",)))?;
// Argon2 is using some stack memory that is not zeroed. Eventually some function will

View File

@ -2,4 +2,5 @@ pub use cipher_string::*;
pub use crypto::*;
mod cipher_string;
#[allow(clippy::module_inception)]
mod crypto;

View File

@ -4,18 +4,18 @@ use security_framework::passwords::{
};
pub async fn get_password(service: &str, account: &str) -> Result<String> {
let result = String::from_utf8(get_generic_password(&service, &account)?)?;
let result = String::from_utf8(get_generic_password(service, account)?)?;
Ok(result)
}
pub async fn set_password(service: &str, account: &str, password: &str) -> Result<()> {
let result = set_generic_password(&service, &account, password.as_bytes())?;
Ok(result)
set_generic_password(service, account, password.as_bytes())?;
Ok(())
}
pub async fn delete_password(service: &str, account: &str) -> Result<()> {
let result = delete_generic_password(&service, &account)?;
Ok(result)
delete_generic_password(service, account)?;
Ok(())
}
pub async fn is_available() -> Result<bool> {

View File

@ -1,3 +1,4 @@
#[allow(clippy::module_inception)]
#[cfg_attr(target_os = "linux", path = "unix.rs")]
#[cfg_attr(target_os = "windows", path = "windows.rs")]
#[cfg_attr(target_os = "macos", path = "macos.rs")]

View File

@ -13,7 +13,7 @@ async fn get_password_new(service: &str, account: &str) -> Result<String> {
let keyring = oo7::Keyring::new().await?;
let attributes = HashMap::from([("service", service), ("account", account)]);
let results = keyring.search_items(&attributes).await?;
let res = results.get(0);
let res = results.first();
match res {
Some(res) => {
let secret = res.secret().await?;
@ -31,7 +31,7 @@ async fn get_password_legacy(service: &str, account: &str) -> Result<String> {
let keyring = oo7::Keyring::DBus(collection);
let attributes = HashMap::from([("service", service), ("account", account)]);
let results = keyring.search_items(&attributes).await?;
let res = results.get(0);
let res = results.first();
match res {
Some(res) => {
let secret = res.secret().await?;

View File

@ -42,7 +42,7 @@ pub async fn get_password<'a>(service: &str, account: &str) -> Result<String> {
.to_string_lossy()
};
Ok(String::from(password))
Ok(password)
}
pub async fn set_password(service: &str, account: &str, password: &str) -> Result<()> {

View File

@ -1,3 +1,4 @@
#[allow(clippy::module_inception)]
#[cfg_attr(target_os = "linux", path = "linux.rs")]
#[cfg_attr(target_os = "windows", path = "unimplemented.rs")]
#[cfg_attr(target_os = "macos", path = "unimplemented.rs")]

Some files were not shown because too many files have changed in this diff Show More