From 70ee24d82a220b0d3d7b18a51f429bfab7318078 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Mon, 26 Sep 2022 15:58:33 +0200
Subject: [PATCH 01/32] Autosync the updated translations (#2099)
Co-authored-by: github-actions <>
---
src/App/Resources/AppResources.be.resx | 242 ++++++++++++-------------
src/App/Resources/AppResources.ko.resx | 6 +-
src/App/Resources/AppResources.pl.resx | 20 +-
src/App/Resources/AppResources.ro.resx | 2 +-
src/App/Resources/AppResources.tr.resx | 40 ++--
store/google/be/copy.resx | 2 +-
6 files changed, 156 insertions(+), 156 deletions(-)
diff --git a/src/App/Resources/AppResources.be.resx b/src/App/Resources/AppResources.be.resx
index 7447e6f1c..662cf1ac9 100644
--- a/src/App/Resources/AppResources.be.resx
+++ b/src/App/Resources/AppResources.be.resx
@@ -148,15 +148,15 @@
Cancel an operation.
- Капіяваць
+ СкапіявацьCopy some value to your clipboard.
- Капіяваць пароль
+ Скапіяваць парольThe button text that allows a user to copy the login's password to their clipboard.
- Капіяваць імя карыстальніка
+ Скапіяваць імя карыстальнікаThe button text that allows a user to copy the login's username to their clipboard.
@@ -236,7 +236,7 @@
The button text that allows user to launch the website to their web browser.
- Дапамога і зваротная сувязь
+ Даведка і зваротная сувязьСхаваць
@@ -371,7 +371,7 @@
Label for a username.
- Поле {0} абавязковае.
+ Поле {0} з'яўляецца абавязковым.Validation message for when a form field is left blank and is required to be entered.
@@ -382,22 +382,22 @@
Праверка адбітка пальца
- Праверыць асноўны пароль
+ Праверка асноўнага пароля
- Праверыць PIN-код
+ Праверка PINВерсія
- Выгляд
+ ПраглядНаведайце наш вэб-сайт
- Наведайце наш вэб-сайт, каб атрымаць дапамогу, прачытаць навіны, звязацца з намі і/або даведацца больш пра тое, як карыстацца Bitwarden.
+ Наведайце наш вэб-сайт, каб атрымаць дапамогу, прачытаць апошнія навіны, звязацца з намі і/або даведацца больш пра тое, як карыстацца Bitwarden.Вэб-сайт
@@ -410,7 +410,7 @@
Уліковы запіс
- Ваш уліковы запіс створаны! Вы можаце ўвайсці.
+ Ваш уліковы запіс створаны! Цяпер вы можаце ўвайсці ў яго.Дадаць элемент
@@ -419,7 +419,7 @@
Дадаць пашырэнне
- Выкарыстоўвайце службу спецыяльных магчымасцяў Bitwarden для аўтазапаўнення вашых уліковых даных у праграмах і інтэрнэце.
+ Выкарыстоўвайце службу спецыяльных магчымасцей Bitwarden для аўтазапаўнення вашых лагінаў у разнастайных праграмах.Служба аўтазапаўнення
@@ -431,28 +431,28 @@
Праграмнае пашырэнне Bitwarden
- Самы просты спосаб дадаць новыя ўліковыя даныя ў ваша сховішча — гэта служба аўтаўапаўнення Bitwarden. Дадатковыя звесткі аб выкарыстанні службы аўтазапаўнення Bitwarden у раздзеле "Налады".
+ Самым простым спосаб дадаць новыя лагіны ў ваша сховішча з'яўляецца выкарыстанне пашырэння Bitwarden. Дадатковыя звесткі пра выкарыстанне гэтага пашырэння можна знайсці ў раздзеле "Налады".
- Выкарыстоўвайце Bitwarden у Safari і іншых праграмах для аўтазапаўнення ўліковых даных.
+ Выкарыстоўвайце Bitwarden у Safari і іншых праграмах для аўтазапаўнення лагінаў.Служба аўтазапаўнення Bitwarden
- Выкарыстоўвайце службу спецыяльных магчымасцяў Bitwarden для аўтазапаўнення вашых уліковых даных у праграмах і інтэрнэце.
+ Выкарыстоўвайце службу спецыяльных магчымасцей Bitwarden для аўтазапаўнення вашых лагінаў.Змяніць адрас электроннай пошты
- Вы можаце змяніць сваю электронную пошту на bitwarden.com. Перайсці на сайт зараз?
+ Вы можаце змяніць сваю электронную пошту ў вэб-сховішчы на bitwarden.com. Перайсці на вэб-сайт зараз?Змяніць асноўны пароль
- Вы можаце змяніць свой асноўны пароль на bitwarden.com. Перайсці на сайт зараз?
+ Вы можаце змяніць свой асноўны пароль у вэб-сховішчы на bitwarden.com. Перайсці на вэб-сайт зараз?Закрыць
@@ -496,16 +496,16 @@
Усё гатова для ўваходу!
- Цяпер вашыя ўліковыя даныя лёгка даступны з Safari, Chrome і іншых праграм.
+ Цяпер вы лёгка можаце атрымаць доступ да вашых лагінаў з Safari, Chrome і іншых праграм, якія падтрымліваюцца Bitwarden.У Safari і Chrome, знайдзіце Bitwarden з дапамогай значка абагульнення (падказка: прагартайце ўправа ў ніжнім радку меню абагуліць).
- Націсніце на значок Bitwarden у меню, каб запусціць пашырэнне.
+ Дакраніцеся да значка Bitwarden у меню, каб запусціць пашырэнне.
- Каб уключыць Bitwarden у Safari і іншых праграмах, націсніце 'Яшчэ' у ніжнім радку меню.
+ Дакраніцеся "яшчэ" у ніжнім радку меню, каб уключыць Bitwarden у Safari і іншых праграмах.Абраны
@@ -523,7 +523,7 @@
Імпартаванне элементаў
- Вы можаце імпартаваць свае элементы ў сваё вэб-сховішча. Перайсці на сайт зараз?
+ Вы можаце зрабіць масавае імпартаванне элементаў з вэб-сховішча bitwarden.com. Перайсці на вэб-сайт зараз?Хуткае імпартаванне вашых элементаў з іншых менеджараў пароляў.
@@ -553,10 +553,10 @@
Адразу
- Тайм-аўт сховішча
+ Час чакання сховішча
- Дзеянне пры тайм-аўце
+ Дзеянне пасля заканчэння часу чакання сховішчаВыхад з сістэмы скасуе ўсе магчымасці доступу да сховішча і запатрабуе аўтэнтыфікацыю праз інтэрнэт пасля завяршэння часу чакання. Вы ўпэўнены, што хочаце выкарыстоўваць гэты параметр?
@@ -575,7 +575,7 @@
Няправільна пацвярджэнне пароля.
- Асноўны пароль — ключ да вашага бяспечнага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць асноўны пароль немагчыма.
+ Асноўны пароль — гэта ключ, які выкарыстоўваецца для доступу да вашага сховішча. Ён вельмі важны, таму не забывайце яго. Аднавіць асноўны пароль немагчыма ў выпадку, калі вы яго забылі.Падказка да асноўнага пароля (неабавязкова)
@@ -584,7 +584,7 @@
Падказка да асноўнага пароля можа дапамагчы вам успомніць яго, калі вы яго забылі.
- Асноўны пароль павінен быць даўжынёй прынамсі 8 сімвалаў.
+ Асноўны пароль павінен змяшчаць прынамсі 8 сімвалаў.Мінімум лічбаў
@@ -607,16 +607,16 @@
Створаны новы элемент.
- У вашым сховішчы няма абранага.
+ У вашым сховішчы адсутнічаюць абраныя.
- У вашым сховішчы няма элементаў.
+ У вашым сховішчы адсутнічаюць элементы.
- У вашым заданні няма элементаў для гэтага сайта/праграмы. Націсніце, каб дадаць.
+ У вашым сховішчы адсутнічаюць элементы для гэтага вэб-сайта або праграмы. Дакраніцеся, каб дадаць.
- У гэтых уліковых даных адсутнічае імя карыстальніка або пароль.
+ Гэты лагін не мае сканфігураванага імя карыстальніка або пароля.Зразумела!
@@ -641,7 +641,7 @@
Падказка да пароля
- Мы адправілі вам на электронную пошту падказку для асноўнага пароля.
+ Мы адправілі вам на электронную пошту падказку да асноўнага пароля.Вы ўпэўнены, што хочаце перазапісаць бягучы пароль?
@@ -672,7 +672,7 @@
Выбраць
- Прызначыць PIN-код
+ Прызначыць PINУвядзіце PIN-код з чатырох лічбаў, каб разблакіраваць праграму.
@@ -695,7 +695,7 @@
Сінхранізацыя завершана.
- Памылка сінхранізацыі.
+ Збой сінхранізацыі.Сінхранізаваць сховішча зараз.
@@ -708,7 +708,7 @@
Двухэтапны ўваход
- Двухэтапны ўваход робіць ваш уліковы запіс больш бяспечным, патрабуючы пацвярджэння ўваходу на іншай прыладзе, напрыклад, ключом бяспекі, праграмай для праверкі бяспекі, SMS, тэлефонным выклікам або электроннай поштай. Двухэтапны ўваход уключаецца на bitwarden.com. Перайсці на сайт зараз?
+ Двухэтапны ўваход робіць ваш уліковы запіс больш бяспечным, патрабуючы пацвярджэнне ўваходу на іншай прыладзе з выкарыстаннем ключа бяспекі, праграмы аўтэнтыфікацыі, SMS, тэлефоннага званка або электроннай пошты. Двухэтапны ўваход уключаецца на bitwarden.com. Перайсці на сайт, каб зрабіць гэта?Разблакіраваць з {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Код праверкі
+ Праверачны код
- Прагляд элемента
+ Прагледзець элементВэб-сховішча Bitwarden
@@ -750,17 +750,17 @@
This is used for the autofill service. ex. "Logins for twitter.com"
- У вашым сховішчы няма элементаў для {0}.
+ У вашым сховішчы адсутнічаюць элементы для {0}.This is used for the autofill service. ex. "There are no items in your vault for twitter.com".
- Калі пры выбары поля ўводу вы бачыце панэль аўтазапаўнення Bitwarden, вы можаце націснуць на яе, каб запусціць службу аўтазапаўнення.
+ Калі пры выбары поля ўводу вы бачыце накладанне аўтазапаўнення Bitwarden, вы можаце дакрануцца да яго, каб запусціць службу аўтазапаўнення.
- Націсніце на гэта апавяшчэнне для аўтазапаўнення.
+ Дакраніцеся да гэтага апавяшчэння, каб аўтазапоўніць элемент са свайго сховішча.
- Адкрыць налады спецыяльных магчымасцяў
+ Адкрыць налады спецыяльных магчымасцей1. На экране наладаў Android у раздзеле "Спецыяльных магчымасці" пад загалоўкам "Сэрвісы" выберыце "Bitwarden".
@@ -781,10 +781,10 @@
Уключана
- Стан
+ Статус
- Самы просты спосаб дадаць новыя лагіны ў ваша сховішча - служба аўтазапаўнення Bitwarden. Дадатковыя звесткі пра выкарыстанне службы аўтазапаўнення Bitwarden можна знайсці ў раздзеле "Налады".
+ Самым простым спосаб дадаць новыя лагіны ў ваша сховішча з'яўляецца выкарыстанне службы аўтазапаўнення Bitwarden. Дадатковыя звесткі пра выкарыстанне гэтага пашырэння можна знайсці ў раздзеле "Налады".Аўтазапаўненне
@@ -819,11 +819,11 @@
For 2FA
- Увядзіце 6 лічбаў кода праверкі з вашай праграмы аўтэнтыфікацыі.
+ Увядзіце 6 лічбаў праверачнага кода з вашай праграмы аўтэнтыфікацыі.For 2FA
- Увядзіце 6 лічбаў кода праверкі, які быў адпраўлены на {0}.
+ Увядзіце 6 лічбаў праверачнага кода, які быў адпраўлены на {0}.For 2FA
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Для гэтага ўліковага запісу ўключаны двухэтапны уваход, аднак ніводны з наладжаных варыянтаў уваходу не падтрымліваецца на гэтай прыладзе. Выкарыстоўвайце прыладу, якая падтрымліваецца і/або дадайце іншыя варыянты, якія падтрымліваюцца на большасці прылад (напрыклад, праграма для аўтэнтыфікацыі).
+ Для гэтага ўліковага запісу ўключаны двухэтапны ўваход, між тым ніводны з сканфігураваных пастаўшчыкоў двухэтапнага ўваходу не падтрымліваецца на гэтай прыладзе. Калі ласка, скарыстайцеся прыладай, якая падтрымлівае гэту тэхналогію і/або дадайце іншых пастаўшчыкоў, якія падтрымліваюцца на большасці прылад (напрыклад, праграма для аўтэнтыфікацыі).Код аднаўлення
@@ -842,7 +842,7 @@
Remember my two-step login
- Адправіць код пацвярджэння зноў
+ Адправіць праверачны код яшчэ разFor 2FA
@@ -860,7 +860,7 @@
For 2FA
- Для працягу прыкладзіце ваш YubiKey NEO да задняй панэлі прылады ці устаўце YubiKey ў USB-порт вашай прылады і націсніце на ім кнопку.
+ Для працягу прыкладзіце ваш YubiKey NEO да задняй панэлі прылады або ўстаўце YubiKey у порт USB вашай прылады і дакраніцеся да яго кнопкі.Ключ бяспекі YubiKey
@@ -876,21 +876,21 @@
Немагчыма спампаваць файл.
- Прылада ня можа адкрыць гэты тып файла.
+ Ваша прылада не можа адкрыць файл гэтага тыпу.Спампоўванне...Message shown when downloading a file
- Гэтае улажэнне мае памер {0}. Вы сапраўды жадаеце спампаваць яго?
+ Гэта далучэнне мае памер {0}. Вы ўпэўнены, што хочаце спампаваць яго на сваю прыладу?The placeholder will show the file size of the attachment. Ex "25 MB"Ключ аўтэнтыфікацыі (TOTP)
- Код праверкі (TOTP)
+ Праверачны код (TOTP)Totp code label
@@ -912,13 +912,13 @@
Фота
- Капіяваць TOTP
+ Скапіяваць TOTP
- Калі падчас уваходу выкарыстоўваецца ключ аўтэнтыфікацыі, то неабходна скапіяваць код праверкі TOTP у буфер абмену пры аўтазапаўненні ўваходу.
+ Калі падчас уваходу выкарыстоўваецца ключ аўтэнтыфікацыі, то неабходна скапіяваць праверачны код TOTP у буфер абмену пры аўтазапаўненні ўваходу.
- Капіяваць TOTP аўтаматычна
+ Скапіяваць TOTP аўтаматычнаДля выкарыстання гэтай функцыі патрабуецца прэміяльны статус.
@@ -939,7 +939,7 @@
Файл не выбраны
- Няма далучэнняў.
+ Далучэнні адсутнічаюць.Крыніца файла
@@ -951,7 +951,7 @@
Максімальны памер файла 100 МБ.
- Вы не можаце выкарыстоўваць гэту функцыю, пакуль не абнавіце свой ключ шыфравання.
+ Вы не зможаце выкарыстоўваць гэту функцыю, пакуль не абнавіце свой ключ шыфравання.Даведацца больш
@@ -969,7 +969,7 @@
URL-адрас сервера асяроддзя захаваны.
- {0} гэта няправільны фармат.
+ {0} з'яўляецца няправільным фарматам.Validation error when something is not formatted correctly, such as a URL or email address.
@@ -980,7 +980,7 @@
Асяроддзе ўласнага хостынгу
- Увядзіце асноўны URL-адрас на вашым серверы.
+ Увядзіце асноўны URL-адрас вашага лакальнага размяшчэння ўсталяванага Bitwarden.URL-адрас сервера
@@ -989,16 +989,16 @@
URL-адрас сервера вэб-сховішча
- Націсніце на гэта апавяшчэнне, каб праглядзець элементы з вашага сховішча.
+ Дакраніцеся да гэтага апавяшчэння, каб прагледзець элементы са свайго сховішча.Карыстальніцкія палі
- Капіяваць нумар
+ Скапіяваць нумар
- Капіяваць код бяспекі
+ Скапіяваць код бяспекіНумар
@@ -1139,7 +1139,7 @@
Паказваць значкі вэб-сайтаў
- Паказваць распазнавальны відарыс побач з кожным з кожным лагінам.
+ Паказваць распазнавальны відарыс побач з кожным лагінам.URL-адрас сервера значкоў
@@ -1157,22 +1157,22 @@
Калекцыі
- Няма элементаў у гэтай калекцыі.
+ У гэтай калекцыі адсутнічаюць элементы.
- Няма элементаў у гэтай папцы.
+ У гэтай папцы адсутнічаюць элементы.
- У сметніцы нічога няма.
+ У сметніцы адсутнічаюць элементы.
- Служба спецыяльных магчымасцяў аўтазапаўнення
+ Служба спецыяльных магчымасцей аўтазапаўнення
- Служба аўтазапаўнення Bitwarden карыстаецца Android Autofill Framework для запаўнення ўліковых даных, нумароў карт і асабістай інфармацыі ў іншых праграмах на вашай прыладзе.
+ Служба аўтазапаўнення Bitwarden выкарыстоўвае Android Autofill Framework для запаўнення ўліковых даных у іншых праграмах на вашай прыладзе.
- Карыстайцеся службай аўтазапаўнення Bitwarden для запаўнення ўліковых даных, нумароў карт і асабістай інфармацыі ў іншых праграмах.
+ Выкарыстоўвайце службу аўтазапаўнення Bitwarden для запаўнення інфармацыі пра лагіны ў іншых праграмах.Адкрыць налады аўтазапаўнення
@@ -1194,7 +1194,7 @@
Windows Hello
- Не атрымалася аўтаматычна адчыніць меню налад аўтазапаўнення Android. Вы можаце перайсці ў меню налад аўтазапаўнення з налад Android -> Сістэма -> Мова -> Мова і спосабы ўводу -> Дадатковыя налады -> Служба аўтазапаўнення.
+ Немагчыма аўтаматычна адкрыць меню наладаў аўтазапаўнення Android. Вы можаце перайсці ў меню наладаў аўтазапаўнення ўручную з Налады Android > Сістэма > Мова і ўвод > Дадаткова > Служба аўтазапаўнення.Карыстальніцкая назва поля
@@ -1215,7 +1215,7 @@
Новае карыстальніцкае поле
- Які тып карыстальніцкага поля вы жадеце дадаць?
+ Які тып карыстальніцкага поля вы хочаце дадаць?Выдаліць
@@ -1255,7 +1255,7 @@
URI match detection for auto-fill.
- Да, і захаваць
+ Так, і захавацьАўтазапоўніць і захаваць
@@ -1268,13 +1268,13 @@
Трымайце ваш YubiKey каля верхняй часткі прылады.
- Паспрабуйце зноў
+ Паспрабуйце яшчэ раз
- Для працягу трымайце YubiKey NEO ля задняй панэлі вашай прылады.
+ Для працягу прыкладзіце ваш YubiKey NEO да задняй панэлі прылады.
- Служба спецыяльных магчымасцей может быць карыснай калі праграмы не падтрымліваюць стандартную службу аўтазапаўнення.
+ Служба спецыяльных магчымасцей можа быць карыснай, калі праграмы не падтрымліваюць стандартную службу аўтазапаўнення.Пароль абноўлены
@@ -1288,19 +1288,19 @@
Аўтазапаўненне актывавана!
- Перад выкарыстаннем аўтазапаўнення трэба ўвайсці ў асноўную праграму Bitwarden.
+ Неабходна ўвайсці ў асноўную праграму Bitwarden, каб выкарыстоўваць аўтазапаўненне.
- Цяпер вашы ўліковыя даныя лёгка даступныя з клавіятуры пры ўваходзе ў праграмы і на вэб-сайты.
+ Цяпер вы лёгка можаце атрымаць доступ да сваіх лагінаў з клавіятуры пры ўваходзе ў праграмы і на вэб-сайты.
- Рэкамендуецца адключыць другія праграмы аўтазапаўнення ў наладах, калі яны не выкарыстоўваюцца.
+ Рэкамендуецца адключыць іншыя праграмы аўтазапаўнення ў наладах, калі вы не плануеце выкарыстоўваць іх.Атрымайце доступ да свайго сховішча непасрэдна з клавіятуры для хуткага аўтазапаўнення.
- Для ўключэння аўтазапаўнення паролей на прыладзе трэба выканаць наступныя дзеянні:
+ Прытрымлівайцеся гэтых інструкцый для таго, каб уключыць аўтазапаўненне пароляў на вашай прыладзе:1. Перайдзіце ў "Налады" iOS
@@ -1321,7 +1321,7 @@
Аўтазапаўненне пароляў
- Самы просты спосаб дадаць новыя ўліковыя даныя ў ваша сховішча — гэта праграма Bitwarden Password AutoFill. Дадатковыя звесткі аб выкарыстанні праграмы Bitwarden Password AutoFill у раздзеле "Налады".
+ Самым простым спосаб дадаць новыя лагіны ў ваша сховішча з'яўляецца выкарыстанне пашырэння Bitwarden Password AutoFill. Дадатковыя звесткі пра выкарыстанне гэтага пашырэння можна знайсці ў раздзеле "Налады".Памылковы адрас электроннай пошты.
@@ -1336,7 +1336,7 @@
Лагіны
- Бяспечныя нататкі
+ Абароненыя нататкіУсе элементы
@@ -1353,7 +1353,7 @@
Праверце, ці не скампраметаваны пароль.
- Гэты пароль быў скампраметаваны {0} раз(-ы/-оў). Вы павінны змяніць яго.
+ Гэты пароль быў скампраметаваны наступную колькасць разоў: {0}. Вы павінны змяніць яго.Гэты пароль не быў знойдзены ў вядомых базах уцечак. Можна працягваць яго выкарыстоўваць.
@@ -1374,7 +1374,7 @@
Няма пароляў для паказу.
- Няма элементаў для паказу.
+ У спісе адсутнічаюць элементы.Пошук у калекцыі
@@ -1408,7 +1408,7 @@
Каму належыць гэты элемент?
- Няма калекцый для паказу.
+ У спісе адсутнічаюць калекцыі.{0} перамешчана ў {1}.
@@ -1453,7 +1453,7 @@
Short for "Password Generator"
- Няма папак для паказу.
+ У спісе адсутнічаюць папкі.Фраза адбітка пальца
@@ -1485,17 +1485,17 @@
30 хвілін
- Задайце PIN-код для разблакіроўкі Bitwarden. Налады PIN-кода будуць скінуты, калі вы калі-небудзь цалкам выйдзеце з праграмы.
+ Прызначце PIN-код для разблакіроўкі Bitwarden. Налады PIN-кода будуць скінуты, калі вы калі-небудзь цалкам выйдзеце з праграмы.Вы ўвайшлі як {0} у {1}.ex: Logged in as user@example.com on bitwarden.com.
- Ваша сховішча заблакіравана. Каб працягнуць, увядзіце асноўны пароль.
+ Ваша сховішча заблакіравана. Увядзіце асноўны пароль для працягу.
- Ваша сховішча заблакіравана. Каб працягнуць, увядзіце PIN-код.
+ Ваша сховішча заблакіравана. Увядзіце PIN-код для працягу.Ваша сховішча заблакіравана. Пацвердзіце сваю асобу, каб працягнуць.
@@ -1555,7 +1555,7 @@
Выбіраць цёмную тэму для яе выкарыстання ў выпадку, калі яна з'яўляецца прадвызначанай (сістэмнай) для вашай прылады.
- Капіяваць нататку
+ Скапіяваць нататкуВыхад
@@ -1584,7 +1584,7 @@
Пытацца пры дадаванні лагіна
- Запытаць дадаванне элемента, калі ён адсутнічае ў вашым сховішчы.
+ Пытацца пра дадаванне элемента, калі ён адсутнічае ў вашым сховішчы.Пры перазапуску праграмы
@@ -1612,7 +1612,7 @@
Пераключыць бачнасць
- Скончыўся тэрмін дзеяння вашага сеансу.
+ Тэрмін дзеяння вашага сеансу завяршыўся.Біяметрычныя праверка
@@ -1648,7 +1648,7 @@
Фармат файла
- Увядзіце ваш асноўны пароль для экспартавання даных са сховішча.
+ Увядзіце ваш асноўны пароль для экспартавання даных сховішча.Адправіць праверачны код на ваш адрас электроннай пошты
@@ -1657,13 +1657,13 @@
Код адпраўлены!
- Пацвердзіце сваю асобу, каб працягнуць.
+ Пацвердзіце сваю асобу для працягу.
- Экспартуемы файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць ці адпраўляць па небяспечным каналам (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання.
+ Пры экспартаванні файл утрымлівае даныя вашага сховішча ў незашыфраваным фармаце. Яго не варта захоўваць або адпраўляць па неабароненых каналах (напрыклад, па электроннай пошце). Выдаліце яго адразу пасля выкарыстання.
- Пры экспарце даныя шыфруюцца з дапамогай ключа шыфравання ўліковага запісу. Калі вы калі-небудзь павернеце ключ шыфравання ўліковага запісу, вам належыць экспартаваць даныя паўторна, бо вы не зможаце расшыфраваць гэты файл экспарту.
+ Пры экспартаванні даныя шыфруюцца з дапамогай ключа шыфравання ўліковага запісу. Калі вы калі-небудзь зменіце ключ шыфравання ўліковага запісу, вам неабходна будзе экспартаваць даныя паўторна, паколькі вы не зможаце расшыфраваць гэты файл экспартавання.Ключы шыфравання з'яўляюцца ўнікальнымі для кожнага ўліковага запісу Bitwarden, таму нельга імпартаваць зашыфраванае сховішча ў іншы ўліковы запіс.
@@ -1673,10 +1673,10 @@
Title for the alert to confirm vault exports.
- Увага
+ Папярэджанне
- Узнікла праблема падчас экспартавання сховішча. Калі праблема застанецца, экспартуйце яго з выб-сховішча.
+ Узнікла праблема падчас экспартавання вашага сховішча. Калі праблема захаваецца, экспартуйце свае даныя з вэб-сховішча.Сховішча паспяхова экспартавана
@@ -1693,13 +1693,13 @@
Button text for an open operation (verb).
- Узнікла праблема падчас захавання гэтага далучэння. Калі праблема застанецца, вы можаце захаваць яго з вэб-сховішча.
+ Узнікла праблема падчас захавання гэтага далучэння. Калі праблема застанецца, вы можаце захаваць іх з вэб-сховішча.Далучэнне паспяхова захавана
- Уключыце "Службу спецыяльных магчымасцяў аўтазапаўнення" ў наладах Bitwarden для выкарыстання панэлі аўтазапаўнення.
+ Уключыце "Службу спецыяльных магчымасцей аўтазапаўнення" ў наладах Bitwarden для выкарыстання панэлі аўтазапаўнення.Палі для пароляў не знойдзены
@@ -1833,13 +1833,13 @@
Спецыяльныя магчымасці
- Пры дапамозе службы спецыяльных магчымасцей Bitwarden вы можаце аўтаматычна запаўняць вашыя ўліковыя даныя ў праграмах і ў інтэрнэце. Калі гэты параметр адключаны, пры выбары палёў для ўваходу будзе паказвацца ўсплывальнае акно.
+ Выкарыстоўвайце службу спецыяльных магчымасцей Bitwarden для аўтазапаўнення вашых лагінаў у разнастайных праграмах. Калі гэты параметр уключаны, пры выбары палёў для ўваходу будзе паказана ўсплывальнае акно.
- З дапамогай службы спецыяльных магчымасцяў Bitwarden вы можаце аўтаматычна запаўняць вашы ўліковыя даныя ў інтэрнэце (неабходна ўключыць функцыю "Па-над усімі праграмамі")
+ Выкарыстоўвайце службу спецыяльных магчымасцей Bitwarden для аўтазапаўнення вашых лагінаў у разнастайных праграмах (неабходна ўключыць функцыю "Па-над усімі праграмамі").
- З дапамогай службы спецыяльных магчымасцяў Bitwarden вы можаце выкарыстоўваць панэль хуткага аўтазапаўнення, а таксама для паказу ўсплывальнага акна выкарыстоўваючы параметр "Па-над усімі праграмамі" (калі ён уключаны).
+ Выкарыстоўвайце службу спецыяльных магчымасцей Bitwarden, каб скарыстацца панэллю хуткага аўтазапаўнення, а таксама для паказу ўсплывальнага акна з выкарыстаннем параметра "Па-над усімі праграмамі" (калі ён уключаны).Патрабуецца для выкарыстання панэлі хуткага аўтазапаўнення або для дапаўнення службы аўтазапаўнення пры выкарыстанні параметра "Па-над усімі праграмамі" (калі ён уключаны).
@@ -1848,7 +1848,7 @@
Выкарыстоўваць "Па-над усімі праграмамі"
- Пры ўключэнні, дазваляе службе спецыяльных магчымасцей Bitwarden паказваць усплывальную панэль пры выбары палёў для ўваходу.
+ Калі ўключана, дазваляе службе спецыяльных магчымасцей Bitwarden паказваць усплывальную панэль пры выбары палёў уваходу.Калі ўключана, служба спецыяльных магчымасцей Bitwarden пакажа ўсплывальнае апавяшчэнне пры выбары палёў для ўваходу, каб дапамагчы аўтаматычна запоўніць вашы ўліковыя даныя.
@@ -1863,7 +1863,7 @@
Палітыка арганізацыі ўплывае на вашы параметры ўласнасці.
- Адпраўленне
+ Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1871,7 +1871,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Адпраўленні
+ Send'ы'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1888,7 +1888,7 @@
Тэкст, які вы хочаце адправіць.
- Пры доступе да адпраўлення хаваць тэкст па змаўчанні.
+ Пры доступе да Send прадвызначана хаваць тэкст'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1901,13 +1901,13 @@
Тып файла выбраны.
- Тып файла не выбраны. Націсніце, каб выбраць.
+ Тып файла не выбраны. Дакраніцеся, каб выбраць.Тып тэксту выбраны.
- Тып тэксту не выбраны. Націсніце, каб выбраць.
+ Тып тэксту не выбраны. Дакраніцеся, каб выбраць.Дата выдалення
@@ -1916,7 +1916,7 @@
Час выдалення
- Гэтае адпраўленне аўтаматычна выдаліцца ў вызначаную дату і час.
+ Send будзе незваротна выдалены ў азначаныя дату і час.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1976,7 +1976,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- У вашым Send'e няма ўліковых запісаў.
+ У вашым Send'e адсутнічаюць уліковыя запісы.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1984,13 +1984,13 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Капіяваць спасылку
+ Скапіяваць спасылку
- Падзяліцца спасылкай
+ Абагуліць спасылку
- Спасылка на адпраўленне
+ Спасылка на Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,11 +2010,11 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Адпраўленне выдалена.
+ Send быў выдалены.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Адпраўленне абноўлена.
+ Send абноўлены.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2040,7 +2040,7 @@
Карыстальніцкі
- Падзяліцца адпраўленнем пасля захавання.
+ Падзяліцца гэтым Send'ам пасля захавання'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2063,7 +2063,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Для адпраўлення файлаў патрэбна пацвердзіць свой адрас электроннай пошты.
+ Для адпраўкі файлаў з дапамогай Send, вам неабходна праверыць вашу электронную пошту. Зрабіць гэта можна ў вэб-сховішчы.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2073,7 +2073,7 @@
Пацвярджэнне асноўнага пароля
- Гэтае дзеянне ахоўваецца, для працягу зноў увядзіце пароль для праверкі асобы.
+ Гэта дзеянне абаронена. Паўторна ўвядзіце асноўны пароль, каб праверыць сваю асобу і працягнуць далей.Патрабуецца ўвод CAPTCHA
@@ -2088,7 +2088,7 @@
Абнавіць асноўны пароль
- Ваш галоўны пароль быў нядаўна зменены адміністратарам вашай арганізацыі. Для атрымання доступу да сховішча, вы павінны абнавіць галоўны пароль. Працягваючы, вы выйдзіце з бягучага сеанса і вам неабходна будзе ўвайсці паўторна. Сеансы на іншых прыладах могуць заставацца актыўнымі на працягу адной гадзіны.
+ Ваш асноўны пароль быў нядаўна зменены адміністратарам вашай арганізацыі. Для атрымання доступу да сховішча, вы павінны абнавіць яго. Працягваючы, вы выйдзіце з бягучага сеанса і вам неабходна будзе ўвайсці паўторна. Сеансы на іншых прыладах могуць заставацца актыўнымі на працягу адной гадзіны.Абнаўленне пароля
@@ -2133,7 +2133,7 @@
Гэта арганізацыя мае карпаратыўную палітыку, якая будзе аўтаматычна зарэгіструе ваша скіданне пароля. Рэгістрацыя дазволіць адміністратарам арганізацыі змяняць ваш асноўны пароль.
- Палітыка вашай арганізацыі ўплывае на час чакання сховішча. Максімальны дазволены час чакання сховішча {0} гадз. і {1} хв.
+ Палітыка вашай арганізацыі ўплывае на час чакання сховішча. Максімальны дазволены час чакання сховішча складае {0} гадз. і {1} хв.Час чакання вашага сховішча перавышае дазволеныя абмежаванні, якія прызначыла ваша арганізацыя.
@@ -2211,7 +2211,7 @@
Адбылася памылка пры адпраўцы праверачнага кода на ваш адрас электроннай пошты. Калі ласка, паспрабуйце яшчэ раз
- Увядзіце код праверкі, які быў адпраўлены на вашу электронную пошту
+ Увядзіце праверачны код, які быў адпраўлены на вашу электронную поштуАдпраўляць справаздачы пра збоі
@@ -2220,10 +2220,10 @@
Дапамажыце нам палепшыць стабільнасць праграмы, адпраўляючы справаздачы пра памылкі.
- Параметры разгорнуты. Націсніце, каб згарнуць.
+ Параметры разгорнуты. Дакраніцеся, каб згарнуць.
- Параметры згорнуты. Націсніце, каб разгарнуць.
+ Параметры згорнуты. Дакраніцеся, каб разгарнуць.Вялікія літары (A-Z)
@@ -2238,7 +2238,7 @@
Спецыяльныя сімвалы (!@#$%^&*)
- Націсніце, каб вярнуцца
+ Дакраніцеся, каб вярнуццаПароль бачны. Дакраніцеся, каб схаваць.
@@ -2377,7 +2377,7 @@
Адбылася невядомая памылка {0}.
- Выкарыстоўваць магчымасці пададрасацыі вашага пастаўшчыка паслуг электроннай пошты
+ Выкарыстоўваце магчымасці пададрасацыі вашага пастаўшчыка паслуг электроннай поштыВыкарыстоўвайце сваю сканфігураваную скрыню для ўсёй пошты дамена.
diff --git a/src/App/Resources/AppResources.ko.resx b/src/App/Resources/AppResources.ko.resx
index e65e2b393..2683ea22f 100644
--- a/src/App/Resources/AppResources.ko.resx
+++ b/src/App/Resources/AppResources.ko.resx
@@ -300,7 +300,7 @@
The title for the vault page.
- Authenticator
+ 인증기Authenticator TOTP feature
@@ -775,10 +775,10 @@
켜짐
- Off
+ 끄기
- On
+ 켜기상태
diff --git a/src/App/Resources/AppResources.pl.resx b/src/App/Resources/AppResources.pl.resx
index 1c10c639e..ba3b19fd8 100644
--- a/src/App/Resources/AppResources.pl.resx
+++ b/src/App/Resources/AppResources.pl.resx
@@ -300,7 +300,7 @@
The title for the vault page.
- Uwierzytelniacz
+ AuthenticatorAuthenticator TOTP feature
@@ -1140,7 +1140,7 @@ Skanowanie nastąpi automatycznie.
Pokaż ikony witryn
- Pokaż rozpoznawalny obraz obok każdych danych logowania.
+ Pokaż rozpoznawalny obraz obok danych logowania.Adres URL serwera ikon
@@ -1898,16 +1898,16 @@ Skanowanie nastąpi automatycznie.
Plik, który chcesz wysłać.
- Wybrano typ pliku.
+ Wybrano rodzaj pliku.
- Nie wybrano typu pliku, dotknij, aby go wybrać.
+ Nie wybrano rodzaju pliku. Kliknij, aby go wybrać.
- Wybrano typ tekstowy.
+ Wybrano rodzaj tekstu.
- Nie wybrano typu tekstowego, dotknij, aby go wybrać.
+ Nie wybrano rodzaju tekstu. Kliknij, aby go wybrać.Data usunięcia
@@ -2241,10 +2241,10 @@ Skanowanie nastąpi automatycznie.
Dotknij, aby wrócić
- Hasło jest widoczne, dotknij, aby je ukryć.
+ Hasło jest widoczne. Kliknij, aby je ukryć.
- Hasło jest niewidoczne, dotknij, aby je pokazać.
+ Hasło nie jest widoczne. Kliknij, aby je pokazać.Filtruj elementy według sejfu
@@ -2283,7 +2283,7 @@ Skanowanie nastąpi automatycznie.
Klucz uwierzytelniający
- Wprowadź klucz ręcznie
+ Wpisz klucz ręcznieDodaj TOTP
@@ -2368,7 +2368,7 @@ wybierz Dodaj TOTP, aby bezpiecznie przechowywać klucz
Wygeneruj nazwę użytkownika
- Typ e-maila
+ Rodzaj adresuStrona internetowa (wymagana)
diff --git a/src/App/Resources/AppResources.ro.resx b/src/App/Resources/AppResources.ro.resx
index 75fdeef5e..c196db419 100644
--- a/src/App/Resources/AppResources.ro.resx
+++ b/src/App/Resources/AppResources.ro.resx
@@ -2256,7 +2256,7 @@ Scanarea se va face automat.
Seifuri
- Seif: (0}
+ Seif: {0}Toate
diff --git a/src/App/Resources/AppResources.tr.resx b/src/App/Resources/AppResources.tr.resx
index edd1583e8..13320c838 100644
--- a/src/App/Resources/AppResources.tr.resx
+++ b/src/App/Resources/AppResources.tr.resx
@@ -553,7 +553,7 @@
Hemen
- Kasa Zaman Aşımı
+ Kasa zaman aşımıKasa zaman aşımı eylemi
@@ -663,7 +663,7 @@
Ana parolayı tekrar yazın
- Kasada Ara
+ Kasada araGüvenlik
@@ -727,7 +727,7 @@
Kaydı görüntüle
- Bitwarden Web Kasası
+ Bitwarden web kasasıKimlik doğrulama uygulamanızı kayıp mı ettiniz?
@@ -916,7 +916,7 @@ Kod otomatik olarak taranacaktır.
TOTP'yi kopyala
- Hesabınıza bağlı bir kimlik doğrulama anahtarı varsa giriş bilgilerini otomatik olarak doldurduğunuzda TOTP doğrulama kodu da otomatik olarak panonuza kopyalanır.
+ Hesabınıza bağlı bir kimlik doğrulama anahtarı varsa giriş bilgilerini otomatik doldurduğunuzda TOTP doğrulama kodu panonuza kopyalanır.TOTP'yi otomatik kopyala
@@ -1307,7 +1307,7 @@ Kod otomatik olarak taranacaktır.
1. iOS'te "Ayarlar" uygulamasını açın
- 2. "Parolalar ve Hesaplar"a dokunun
+ 2. "Parolalar"a dokunun3. "Parolaları Oto. Doldur"a dokunun
@@ -1457,7 +1457,7 @@ Kod otomatik olarak taranacaktır.
Listelenecek klasör yok.
- Parmak izi kelimeleri
+ Parmak izi ifadesiA 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
@@ -1468,7 +1468,7 @@ Kod otomatik olarak taranacaktır.
Bitwarden, kuruluş hesabı kullanarak kasanızdaki kayıtları başkalarıyla paylaşmanıza olanak verir. Daha fazla bilgi için bitwarden.com sitesini ziyaret etmek ister misiniz?
- Kasayı Dışa Aktar
+ Kasayı dışa aktarŞimdi kilitle
@@ -1553,10 +1553,10 @@ Kod otomatik olarak taranacaktır.
Varsayılan koyu tema
- Varsayılan (sistem) temayı kullanırken cihazınızın koyu modu açıldığında koyu temaya geçmek için bunu seçin
+ Varsayılan (sistem) temayı kullanırken cihazınızın koyu modu açıldığında koyu temaya geçmek için bunu seçin.
- Notları kopyala
+ Notu kopyalaÇıkış
@@ -1576,10 +1576,10 @@ Kod otomatik olarak taranacaktır.
'Nord' is the name of a specific color scheme. It should not be translated.
- Auto-fill blocked URIs
+ Engellenmiş URI'leri otomatik doldur
- Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
+ Engellenen URI'lerde otomatik doldurma önerilmeyecektir. Birden fazla URI'yi virgülle ayırabilirsiniz. Örnek: "https://twitter.com, androidapp://com.twitter.android".Hesap eklemeyi öner
@@ -1898,16 +1898,16 @@ Kod otomatik olarak taranacaktır.
Göndermek istediğiniz dosya.
- Dosya türü seçilmiş.
+ Dosya türü seçildi.
- Dosya türü seçilmemiş, seçmek için dokunun.
+ Dosya türü seçilmedi. Seçmek için dokunun.
- Yazı türü seçildi.
+ Metin türü seçildi.
- Yazı türü seçilmemiş, seçmek için dokunun.
+ Metin türü seçilmedi. Seçmek için dokunun.Silinme tarihi
@@ -2172,7 +2172,7 @@ Kod otomatik olarak taranacaktır.
Silinen hesaplar geri getirilemez
- Hesabınız ve içindeki tüm veriler kalıcı olarak silinecektir. Devam etmek istediğinizden emin misiniz?
+ Hesabınız ve kasanızdaki tüm veriler kalıcı olarak silinecektir. Devam etmek istediğinizden emin misiniz?Hesabınız siliniyor
@@ -2307,10 +2307,10 @@ Kod otomatik olarak taranacaktır.
İsteğinizi işleyemedik. Lütfen yeniden deneyin veya bizimle iletişime geçin.
- Ekran yakalamaya izin ver
+ Ekran kaydına izin ver
- Ekran Yakalama özelliğini etkinleştirmek istediğinizden emin misiniz?
+ Ekran kaydını etkinleştirmek istediğinizden emin misiniz?Parola türü
@@ -2373,10 +2373,10 @@ Kod otomatik olarak taranacaktır.
Web sitesi (gerekli)
- Bilinmeyen {0} hata oluştu.
+ Bilinmeyen {0} hatası oluştu.
- Use your email provider's subaddress capabilities
+ E-posta sağlayıcınızın alt adres özelliklerini kullanınAlan adınızın tüm iletileri yakalamaya ayarlanmış adresini kullanın.
diff --git a/store/google/be/copy.resx b/store/google/be/copy.resx
index b8a9f32ac..f9d78099c 100644
--- a/store/google/be/copy.resx
+++ b/store/google/be/copy.resx
@@ -175,6 +175,6 @@ Bitwarden перакладзены на 40 моў свету (прысутніч
- тэлефон
- планшэт
- камп'ютар
-- Web-браузер
+- браўзер
From 2f4cd36595023095d77e857e9bbc7ce3761ccff7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Mon, 26 Sep 2022 17:51:03 +0100
Subject: [PATCH 02/32] [SG-671] OTP Menu Screen causes Crash on Android
(#2097)
* [SG-671] removed unnecessary calc of otpauth period. protected cal of otpauth from crashing the app if url has a wrong format.
* [SG-671] changed logger
* [SG-671] Refactored GetQueryParams code to used HttpUtility.ParseQueryString.
* [SG-671] refactor and null protection.
* [SG-671] code format
* [SG-671] fixed bug where totp circle countdown was fixed to 30.
* [SG-167] added fallback for uri check. Changed all default totp timers to constant.
* [SG-671] missed unsaved file
* [SG-671] simplified code
---
.../Pages/Vault/CipherDetailsPageViewModel.cs | 8 +++---
.../GroupingsPageTOTPListItem.cs | 2 --
src/App/Utilities/TotpHelper.cs | 11 ++++----
src/Core/Constants.cs | 1 +
src/Core/Services/TotpService.cs | 4 +--
src/Core/Utilities/CoreHelpers.cs | 28 ++++++++-----------
6 files changed, 25 insertions(+), 29 deletions(-)
diff --git a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
index 0c0411427..f6e7e3452 100644
--- a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
+++ b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
@@ -40,8 +40,8 @@ namespace Bit.App.Pages
private string _totpCode;
private string _totpCodeFormatted;
private string _totpSec;
+ private double _totpInterval = Constants.TotpDefaultTimer;
private bool _totpLow;
- private DateTime? _totpInterval = null;
private string _previousCipherId;
private byte[] _attachmentData;
private string _attachmentFilename;
@@ -241,7 +241,7 @@ namespace Bit.App.Pages
Page.Resources["textTotp"] = ThemeManager.Resources()[value ? "text-danger" : "text-default"];
}
}
- public double TotpProgress => string.IsNullOrEmpty(TotpSec) ? 0 : double.Parse(TotpSec) * 100 / 30;
+ public double TotpProgress => string.IsNullOrEmpty(TotpSec) ? 0 : double.Parse(TotpSec) * 100 / _totpInterval;
public bool IsDeleted => Cipher.IsDeleted;
public bool CanEdit => !Cipher.IsDeleted;
@@ -265,6 +265,7 @@ namespace Bit.App.Pages
{
_totpTickHelper = new TotpHelper(Cipher);
_totpTickCancellationToken?.Cancel();
+ _totpInterval = _totpTickHelper.Interval;
_totpTickCancellationToken = new CancellationTokenSource();
_totpTickTask = new TimerTask(_logger, StartCiphersTotpTick, _totpTickCancellationToken).RunPeriodic();
}
@@ -284,6 +285,7 @@ namespace Bit.App.Pages
await _totpTickHelper.GenerateNewTotpValues();
TotpSec = _totpTickHelper.TotpSec;
TotpCodeFormatted = _totpTickHelper.TotpCodeFormatted;
+ _totpInterval = _totpTickHelper.Interval;
}
catch (Exception ex)
{
@@ -429,7 +431,6 @@ namespace Bit.App.Pages
{
if (Cipher == null || Cipher.Type != Core.Enums.CipherType.Login || Cipher.Login.Totp == null)
{
- _totpInterval = null;
return;
}
_totpCode = await _totpService.GetCodeAsync(Cipher.Login.Totp);
@@ -449,7 +450,6 @@ namespace Bit.App.Pages
else
{
TotpCodeFormatted = null;
- _totpInterval = null;
}
}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs
index 7a49ef857..45b920ace 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs
@@ -22,7 +22,6 @@ namespace Bit.App.Pages
private bool _websiteIconsEnabled;
private string _iconImageSource = string.Empty;
- public int interval { get; set; }
private double _progress;
private string _totpSec;
private string _totpCodeFormatted;
@@ -37,7 +36,6 @@ namespace Bit.App.Pages
Cipher = cipherView;
WebsiteIconsEnabled = websiteIconsEnabled;
- interval = _totpService.GetTimeInterval(Cipher.Login.Totp);
CopyCommand = new AsyncCommand(CopyToClipboardAsync,
onException: ex => _logger.Value.Exception(ex),
allowsMultipleExecutions: false);
diff --git a/src/App/Utilities/TotpHelper.cs b/src/App/Utilities/TotpHelper.cs
index 64fc2c7a4..4d4b2e8b9 100644
--- a/src/App/Utilities/TotpHelper.cs
+++ b/src/App/Utilities/TotpHelper.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
+using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Models.View;
using Bit.Core.Utilities;
@@ -10,26 +11,26 @@ namespace Bit.App.Utilities
{
private ITotpService _totpService;
private CipherView _cipher;
- private int _interval;
public TotpHelper(CipherView cipher)
{
_totpService = ServiceContainer.Resolve("totpService");
_cipher = cipher;
- _interval = _totpService.GetTimeInterval(cipher?.Login?.Totp);
+ Interval = _totpService.GetTimeInterval(cipher?.Login?.Totp);
}
public string TotpSec { get; private set; }
public string TotpCodeFormatted { get; private set; }
public double Progress { get; private set; }
+ public double Interval { get; private set; } = Constants.TotpDefaultTimer;
public async Task GenerateNewTotpValues()
{
var epoc = CoreHelpers.EpocUtcNow() / 1000;
- var mod = epoc % _interval;
- var totpSec = _interval - mod;
+ var mod = epoc % Interval;
+ var totpSec = Interval - mod;
TotpSec = totpSec.ToString();
- Progress = totpSec * 100 / 30;
+ Progress = totpSec * 100 / Interval;
if (mod == 0 || string.IsNullOrEmpty(TotpCodeFormatted))
{
TotpCodeFormatted = await TotpUpdateCodeAsync();
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 99ef08614..d2cb9800f 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -33,6 +33,7 @@
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
public const int SaveFileRequestCode = 44;
+ public const int TotpDefaultTimer = 30;
public static readonly string[] AndroidAllClearCipherCacheKeys =
{
diff --git a/src/Core/Services/TotpService.cs b/src/Core/Services/TotpService.cs
index 358dfeb51..fe0b83649 100644
--- a/src/Core/Services/TotpService.cs
+++ b/src/Core/Services/TotpService.cs
@@ -24,7 +24,7 @@ namespace Bit.Core.Services
{
return null;
}
- var period = 30;
+ var period = Constants.TotpDefaultTimer;
var alg = CryptoHashAlgorithm.Sha1;
var digits = 6;
var keyB32 = key;
@@ -117,7 +117,7 @@ namespace Bit.Core.Services
public int GetTimeInterval(string key)
{
- var period = 30;
+ var period = Constants.TotpDefaultTimer;
if (key != null && key.ToLowerInvariant().StartsWith("otpauth://"))
{
var qsParams = CoreHelpers.GetQueryParams(key);
diff --git a/src/Core/Utilities/CoreHelpers.cs b/src/Core/Utilities/CoreHelpers.cs
index bb3d5586b..027b7a757 100644
--- a/src/Core/Utilities/CoreHelpers.cs
+++ b/src/Core/Utilities/CoreHelpers.cs
@@ -2,7 +2,9 @@
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
+using System.Web;
using Bit.Core.Models.Domain;
+using Bit.Core.Services;
using Newtonsoft.Json;
namespace Bit.Core.Utilities
@@ -182,26 +184,20 @@ namespace Bit.Core.Utilities
public static Dictionary GetQueryParams(string urlString)
{
- var dict = new Dictionary();
- if (!Uri.TryCreate(urlString, UriKind.Absolute, out var uri) || string.IsNullOrWhiteSpace(uri.Query))
+ try
{
- return dict;
+ if (!Uri.TryCreate(urlString, UriKind.Absolute, out var uri) || string.IsNullOrWhiteSpace(uri.Query))
+ {
+ return new Dictionary();
+ }
+ var queryStringNameValueCollection = HttpUtility.ParseQueryString(uri.Query);
+ return queryStringNameValueCollection.AllKeys.Where(k => k != null).ToDictionary(k => k, k => queryStringNameValueCollection[k]);
}
- var pairs = uri.Query.Substring(1).Split('&');
- foreach (var pair in pairs)
+ catch (Exception ex)
{
- var parts = pair.Split('=');
- if (parts.Length < 1)
- {
- continue;
- }
- var key = System.Net.WebUtility.UrlDecode(parts[0]).ToLower();
- if (!dict.ContainsKey(key))
- {
- dict.Add(key, parts[1] == null ? string.Empty : System.Net.WebUtility.UrlDecode(parts[1]));
- }
+ LoggerHelper.LogEvenIfCantBeResolved(ex);
}
- return dict;
+ return new Dictionary();
}
public static string SerializeJson(object obj, bool ignoreNulls = false)
From f9a32e4abcedd490a518214a94e7aa3ab20315df Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Mon, 26 Sep 2022 18:27:57 +0100
Subject: [PATCH 03/32] Passwordless feature branch PR (#2100)
* [SG-471] Passwordless device login screen (#2017)
* [SSG-471] Added UI for the device login request response.
* [SG-471] Added text resources and arguments to Page.
* [SG-471] Added properties to speed up page bindings
* [SG-471] Added mock services. Added Accept/reject command binding, navigation and toast messages.
* [SG-471] fixed code styling with dotnet-format
* [SG-471] Fixed back button placement. PR fixes.
* [SG-471] Added new Origin parameter to the page.
* [SG-471] PR Fixes
* [SG-471] PR fixes
* [SG-471] PR Fix: added FireAndForget.
* [SG-471] Moved fire and forget to run on ui thread task.
* [SG-381] Passwordless - Add setting to Mobile (#2037)
* [SG-381] Added settings option to approve passwordless login request. If user has notifications disabled, prompt to go to settings and enable them.
* [SG-381] Update settings pop up texts.
* [SG-381] Added new method to get notifications state on device settings. Added userId to property saved on device to differentiate value between users.
* [SG-381] Added text for the popup on selection.
* [SG-381] PR Fixes
* [SG-408] Implement passwordless api methods (#2055)
* [SG-408] Update notification model.
* [SG-408] removed duplicated resource
* [SG-408] Added implementation to Api Service of new passwordless methods.
* removed qa endpoints
* [SG-408] Changed auth methods implementation, added method call to viewmodel.
* [SG-408] ran code format
* [SG-408] PR fixes
* [SG-472] Add configuration for new notification type (#2056)
* [SG-472] Added methods to present local notification to the user. Configured new notification type for passwordless logins
* [SG-472] Updated code to new api service changes.
* [SG-472] ran dotnet format
* [SG-472] PR Fixes.
* [SG-472] PR Fixes
* [SG-169] End-to-end testing refactor. (#2073)
* [SG-169] Passwordless demo change requests (#2079)
* [SG-169] End-to-end testing refactor.
* [SG-169] Fixed labels. Changed color of Fingerprint phrase. Waited for app to be in foreground to launch passwordless modal to fix Android issues.
* [SG-169] Anchored buttons to the bottom of the screen.
* [SG-169] Changed device type from enum to string.
* [SG-169] PR fixes
* [SG-169] PR fixes
* [SG-169] Added comment on static variable
---
src/Android/MainActivity.cs | 21 +++
src/Android/Push/FirebaseMessagingService.cs | 39 +++---
.../AndroidPushNotificationService.cs | 38 ++++++
src/Android/Services/DeviceActionService.cs | 9 ++
src/App/Abstractions/IDeviceActionService.cs | 1 +
.../Abstractions/IPushNotificationService.cs | 6 +-
src/App/App.csproj | 3 +
src/App/App.xaml.cs | 63 ++++++++-
.../Pages/Accounts/LoginPasswordlessPage.xaml | 85 ++++++++++++
.../Accounts/LoginPasswordlessPage.xaml.cs | 31 +++++
.../Accounts/LoginPasswordlessViewModel.cs | 126 ++++++++++++++++++
.../SettingsPage/SettingsPageViewModel.cs | 43 +++++-
src/App/Resources/AppResources.Designer.cs | 121 +++++++++++++++++
src/App/Resources/AppResources.resx | 60 +++++++++
.../Services/NoopPushNotificationService.cs | 12 +-
.../PushNotificationListenerService.cs | 26 ++++
src/App/Styles/Black.xaml | 2 +-
src/App/Styles/Dark.xaml | 2 +-
src/App/Styles/Light.xaml | 2 +-
src/App/Styles/Nord.xaml | 2 +-
src/Core/Abstractions/IApiService.cs | 2 +
src/Core/Abstractions/IAuthService.cs | 5 +
src/Core/Abstractions/IStateService.cs | 5 +
src/Core/Constants.cs | 4 +
src/Core/Enums/NotificationType.cs | 7 +
.../Request/PasswordlessLoginRequest.cs | 21 +++
.../Models/Response/NotificationResponse.cs | 6 +
.../Response/PasswordlessLoginResponse.cs | 19 +++
src/Core/Services/ApiService.cs | 15 +++
src/Core/Services/AuthService.cs | 17 +++
src/Core/Services/StateService.cs | 34 +++++
src/iOS.Core/Services/DeviceActionService.cs | 6 +
src/iOS/AppDelegate.cs | 2 +-
.../Services/iOSPushNotificationHandler.cs | 1 -
.../Services/iOSPushNotificationService.cs | 46 ++++++-
35 files changed, 852 insertions(+), 30 deletions(-)
create mode 100644 src/App/Pages/Accounts/LoginPasswordlessPage.xaml
create mode 100644 src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
create mode 100644 src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
create mode 100644 src/Core/Models/Request/PasswordlessLoginRequest.cs
create mode 100644 src/Core/Models/Response/PasswordlessLoginResponse.cs
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index b5d5a0ff5..55eacba73 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -12,6 +12,7 @@ using Android.Runtime;
using Android.Views;
using Bit.App.Abstractions;
using Bit.App.Models;
+using Bit.App.Resources;
using Bit.App.Utilities;
using Bit.Core;
using Bit.Core.Abstractions;
@@ -86,6 +87,7 @@ namespace Bit.Droid
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
Xamarin.Forms.Forms.Init(this, savedInstanceState);
_appOptions = GetOptions();
+ CreateNotificationChannel();
LoadApplication(new App.App(_appOptions));
DisableAndroidFontScale();
@@ -407,6 +409,25 @@ namespace Bit.Droid
await _eventService.UploadEventsAsync();
}
+ private void CreateNotificationChannel()
+ {
+#if !FDROID
+ if (Build.VERSION.SdkInt < BuildVersionCodes.O)
+ {
+ // Notification channels are new in API 26 (and not a part of the
+ // support library). There is no need to create a notification
+ // channel on older versions of Android.
+ return;
+ }
+
+ var channel = new NotificationChannel(Constants.AndroidNotificationChannelId, AppResources.AllNotifications, NotificationImportance.Default);
+ if(GetSystemService(NotificationService) is NotificationManager notificationManager)
+ {
+ notificationManager.CreateNotificationChannel(channel);
+ }
+#endif
+ }
+
private void DisableAndroidFontScale()
{
try
diff --git a/src/Android/Push/FirebaseMessagingService.cs b/src/Android/Push/FirebaseMessagingService.cs
index 676390aef..887c8ac44 100644
--- a/src/Android/Push/FirebaseMessagingService.cs
+++ b/src/Android/Push/FirebaseMessagingService.cs
@@ -1,7 +1,9 @@
#if !FDROID
+using System;
using Android.App;
using Bit.App.Abstractions;
using Bit.Core.Abstractions;
+using Bit.Core.Services;
using Bit.Core.Utilities;
using Firebase.Messaging;
using Newtonsoft.Json;
@@ -16,34 +18,41 @@ namespace Bit.Droid.Push
{
public async override void OnNewToken(string token)
{
- var stateService = ServiceContainer.Resolve("stateService");
- var pushNotificationService = ServiceContainer.Resolve("pushNotificationService");
+ try {
+ var stateService = ServiceContainer.Resolve("stateService");
+ var pushNotificationService = ServiceContainer.Resolve("pushNotificationService");
- await stateService.SetPushRegisteredTokenAsync(token);
- await pushNotificationService.RegisterAsync();
+ await stateService.SetPushRegisteredTokenAsync(token);
+ await pushNotificationService.RegisterAsync();
+ }
+ catch (Exception ex)
+ {
+ Logger.Instance.Exception(ex);
+ }
}
public async override void OnMessageReceived(RemoteMessage message)
{
- if (message?.Data == null)
- {
- return;
- }
- var data = message.Data.ContainsKey("data") ? message.Data["data"] : null;
- if (data == null)
- {
- return;
- }
try
{
+ if (message?.Data == null)
+ {
+ return;
+ }
+ var data = message.Data.ContainsKey("data") ? message.Data["data"] : null;
+ if (data == null)
+ {
+ return;
+ }
+
var obj = JObject.Parse(data);
var listener = ServiceContainer.Resolve(
"pushNotificationListenerService");
await listener.OnMessageAsync(obj, Device.Android);
}
- catch (JsonReaderException ex)
+ catch (Exception ex)
{
- System.Diagnostics.Debug.WriteLine(ex.ToString());
+ Logger.Instance.Exception(ex);
}
}
}
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index e871393f6..b8088cb80 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -1,8 +1,11 @@
#if !FDROID
using System;
using System.Threading.Tasks;
+using Android.App;
+using Android.Content;
using AndroidX.Core.App;
using Bit.App.Abstractions;
+using Bit.Core;
using Bit.Core.Abstractions;
using Xamarin.Forms;
@@ -23,6 +26,11 @@ namespace Bit.Droid.Services
public bool IsRegisteredForPush => NotificationManagerCompat.From(Android.App.Application.Context)?.AreNotificationsEnabled() ?? false;
+ public Task AreNotificationsSettingsEnabledAsync()
+ {
+ return Task.FromResult(IsRegisteredForPush);
+ }
+
public async Task GetTokenAsync()
{
return await _stateService.GetPushCurrentTokenAsync();
@@ -47,6 +55,36 @@ namespace Bit.Droid.Services
// Do we ever need to unregister?
return Task.FromResult(0);
}
+
+ public void DismissLocalNotification(string notificationId)
+ {
+ if (int.TryParse(notificationId, out int intNotificationId))
+ {
+ var notificationManager = NotificationManagerCompat.From(Android.App.Application.Context);
+ notificationManager.Cancel(intNotificationId);
+ }
+ }
+
+ public void SendLocalNotification(string title, string message, string notificationId)
+ {
+ if (string.IsNullOrEmpty(notificationId))
+ {
+ throw new ArgumentNullException("notificationId cannot be null or empty.");
+ }
+
+ var context = Android.App.Application.Context;
+ var intent = new Intent(context, typeof(MainActivity));
+ var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, PendingIntentFlags.UpdateCurrent);
+ var builder = new NotificationCompat.Builder(context, Constants.AndroidNotificationChannelId)
+ .SetContentIntent(pendingIntent)
+ .SetContentTitle(title)
+ .SetContentText(message)
+ .SetSmallIcon(Resource.Mipmap.ic_launcher)
+ .SetAutoCancel(true);
+
+ var notificationManager = NotificationManagerCompat.From(context);
+ notificationManager.Notify(int.Parse(notificationId), builder.Build());
+ }
}
}
#endif
diff --git a/src/Android/Services/DeviceActionService.cs b/src/Android/Services/DeviceActionService.cs
index c981844ca..a66a3370c 100644
--- a/src/Android/Services/DeviceActionService.cs
+++ b/src/Android/Services/DeviceActionService.cs
@@ -964,5 +964,14 @@ namespace Bit.Droid.Services
}
activity.RunOnUiThread(() => activity.Window.AddFlags(WindowManagerFlags.Secure));
}
+
+ public void OpenAppSettings()
+ {
+ var intent = new Intent(Android.Provider.Settings.ActionApplicationDetailsSettings);
+ intent.AddFlags(ActivityFlags.NewTask);
+ var uri = Android.Net.Uri.FromParts("package", Application.Context.PackageName, null);
+ intent.SetData(uri);
+ Application.Context.StartActivity(intent);
+ }
}
}
diff --git a/src/App/Abstractions/IDeviceActionService.cs b/src/App/Abstractions/IDeviceActionService.cs
index 1c7f75941..a314995f8 100644
--- a/src/App/Abstractions/IDeviceActionService.cs
+++ b/src/App/Abstractions/IDeviceActionService.cs
@@ -49,5 +49,6 @@ namespace Bit.App.Abstractions
float GetSystemFontSizeScale();
Task OnAccountSwitchCompleteAsync();
Task SetScreenCaptureAllowedAsync();
+ void OpenAppSettings();
}
}
diff --git a/src/App/Abstractions/IPushNotificationService.cs b/src/App/Abstractions/IPushNotificationService.cs
index c4e3827cb..f0d56691e 100644
--- a/src/App/Abstractions/IPushNotificationService.cs
+++ b/src/App/Abstractions/IPushNotificationService.cs
@@ -1,12 +1,16 @@
-using System.Threading.Tasks;
+using System.Collections.Generic;
+using System.Threading.Tasks;
namespace Bit.App.Abstractions
{
public interface IPushNotificationService
{
bool IsRegisteredForPush { get; }
+ Task AreNotificationsSettingsEnabledAsync();
Task GetTokenAsync();
Task RegisterAsync();
Task UnregisterAsync();
+ void SendLocalNotification(string title, string message, string notificationId);
+ void DismissLocalNotification(string notificationId);
}
}
diff --git a/src/App/App.csproj b/src/App/App.csproj
index 1c0e612d5..0a0eb15e6 100644
--- a/src/App/App.csproj
+++ b/src/App/App.csproj
@@ -123,6 +123,9 @@
Code
+
+ LoginPasswordlessPage.xaml
+
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index 6870f20f2..c83ab3308 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -7,6 +7,7 @@ using Bit.App.Resources;
using Bit.App.Services;
using Bit.App.Utilities;
using Bit.App.Utilities.AccountManagement;
+using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
@@ -25,13 +26,13 @@ namespace Bit.App
private readonly IStateService _stateService;
private readonly IVaultTimeoutService _vaultTimeoutService;
private readonly ISyncService _syncService;
- private readonly IPlatformUtilsService _platformUtilsService;
private readonly IAuthService _authService;
- private readonly IStorageService _secureStorageService;
private readonly IDeviceActionService _deviceActionService;
private readonly IAccountsManager _accountsManager;
-
+ private readonly IPushNotificationService _pushNotificationService;
private static bool _isResumed;
+ // this variable is static because the app is launching new activities on notification click, creating new instances of App.
+ private static bool _pendingCheckPasswordlessLoginRequests;
public App(AppOptions appOptions)
{
@@ -47,10 +48,9 @@ namespace Bit.App
_vaultTimeoutService = ServiceContainer.Resolve("vaultTimeoutService");
_syncService = ServiceContainer.Resolve("syncService");
_authService = ServiceContainer.Resolve("authService");
- _platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
- _secureStorageService = ServiceContainer.Resolve("secureStorageService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
_accountsManager = ServiceContainer.Resolve("accountsManager");
+ _pushNotificationService = ServiceContainer.Resolve();
_accountsManager.Init(() => Options, this);
@@ -140,6 +140,10 @@ namespace Bit.App
new NavigationPage(new RemoveMasterPasswordPage()));
});
}
+ else if (message.Command == "passwordlessLoginRequest" || message.Command == "unlocked")
+ {
+ CheckPasswordlessLoginRequestsAsync().FireAndForget();
+ }
}
catch (Exception ex)
{
@@ -148,11 +152,52 @@ namespace Bit.App
});
}
+ private async Task CheckPasswordlessLoginRequestsAsync()
+ {
+ if (!_isResumed)
+ {
+ _pendingCheckPasswordlessLoginRequests = true;
+ return;
+ }
+
+ _pendingCheckPasswordlessLoginRequests = false;
+ if (await _vaultTimeoutService.IsLockedAsync())
+ {
+ return;
+ }
+
+
+ var notification = await _stateService.GetPasswordlessLoginNotificationAsync();
+ if (notification == null)
+ {
+ return;
+ }
+
+ // Delay to wait for the vault page to appear
+ await Task.Delay(2000);
+ var loginRequestData = await _authService.GetPasswordlessLoginRequestByIdAsync(notification.Id);
+ var page = new LoginPasswordlessPage(new LoginPasswordlessDetails()
+ {
+ PubKey = loginRequestData.PublicKey,
+ Id = loginRequestData.Id,
+ IpAddress = loginRequestData.RequestIpAddress,
+ Email = await _stateService.GetEmailAsync(),
+ FingerprintPhrase = loginRequestData.RequestFingerprint,
+ RequestDate = loginRequestData.CreationDate,
+ DeviceType = loginRequestData.RequestDeviceType,
+ Origin = loginRequestData.Origin,
+ });
+ await _stateService.SetPasswordlessLoginNotificationAsync(null);
+ _pushNotificationService.DismissLocalNotification(Constants.PasswordlessNotificationId);
+ await Device.InvokeOnMainThreadAsync(async () => await Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
+ }
+
public AppOptions Options { get; private set; }
protected async override void OnStart()
{
System.Diagnostics.Debug.WriteLine("XF App: OnStart");
+ _isResumed = true;
await ClearCacheIfNeededAsync();
Prime();
if (string.IsNullOrWhiteSpace(Options.Uri))
@@ -164,6 +209,10 @@ namespace Bit.App
SyncIfNeeded();
}
}
+ if (_pendingCheckPasswordlessLoginRequests)
+ {
+ CheckPasswordlessLoginRequestsAsync().FireAndForget();
+ }
if (Device.RuntimePlatform == Device.Android)
{
await _vaultTimeoutService.CheckVaultTimeoutAsync();
@@ -196,6 +245,10 @@ namespace Bit.App
{
System.Diagnostics.Debug.WriteLine("XF App: OnResume");
_isResumed = true;
+ if (_pendingCheckPasswordlessLoginRequests)
+ {
+ CheckPasswordlessLoginRequestsAsync().FireAndForget();
+ }
if (Device.RuntimePlatform == Device.Android)
{
ResumedAsync().FireAndForget();
diff --git a/src/App/Pages/Accounts/LoginPasswordlessPage.xaml b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml
new file mode 100644
index 000000000..83361c29c
--- /dev/null
+++ b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
new file mode 100644
index 000000000..5aa777a11
--- /dev/null
+++ b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
@@ -0,0 +1,31 @@
+using Xamarin.Forms;
+
+namespace Bit.App.Pages
+{
+ public partial class LoginPasswordlessPage : BaseContentPage
+ {
+ private LoginPasswordlessViewModel _vm;
+
+ public LoginPasswordlessPage(LoginPasswordlessDetails loginPasswordlessDetails)
+ {
+ InitializeComponent();
+ _vm = BindingContext as LoginPasswordlessViewModel;
+ _vm.Page = this;
+
+ _vm.LoginRequest = loginPasswordlessDetails;
+
+ if (Device.RuntimePlatform == Device.iOS)
+ {
+ ToolbarItems.Add(_closeItem);
+ }
+ }
+
+ private async void Close_Clicked(object sender, System.EventArgs e)
+ {
+ if (DoOnce())
+ {
+ await Navigation.PopModalAsync();
+ }
+ }
+ }
+}
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
new file mode 100644
index 000000000..03eee241d
--- /dev/null
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -0,0 +1,126 @@
+using System;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Input;
+using Bit.App.Abstractions;
+using Bit.App.Resources;
+using Bit.App.Utilities;
+using Bit.Core;
+using Bit.Core.Abstractions;
+using Bit.Core.Enums;
+using Bit.Core.Utilities;
+using Xamarin.CommunityToolkit.ObjectModel;
+using Xamarin.Forms;
+
+namespace Bit.App.Pages
+{
+ public class LoginPasswordlessViewModel : BaseViewModel
+ {
+ private IDeviceActionService _deviceActionService;
+ private IAuthService _authService;
+ private IPlatformUtilsService _platformUtilsService;
+ private ILogger _logger;
+ private LoginPasswordlessDetails _resquest;
+
+ public LoginPasswordlessViewModel()
+ {
+ _deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
+ _authService = ServiceContainer.Resolve("authService");
+ _logger = ServiceContainer.Resolve("logger");
+
+ PageTitle = AppResources.LogInRequested;
+
+ AcceptRequestCommand = new AsyncCommand(() => PasswordlessLoginAsync(true),
+ onException: ex => HandleException(ex),
+ allowsMultipleExecutions: false);
+ RejectRequestCommand = new AsyncCommand(() => PasswordlessLoginAsync(false),
+ onException: ex => HandleException(ex),
+ allowsMultipleExecutions: false);
+ }
+
+ public ICommand AcceptRequestCommand { get; }
+
+ public ICommand RejectRequestCommand { get; }
+
+ public string LogInAttemptByLabel => LoginRequest != null ? string.Format(AppResources.LogInAttemptByXOnY, LoginRequest.Email, LoginRequest.Origin) : string.Empty;
+
+ public string TimeOfRequestText => CreateRequestDate(LoginRequest?.RequestDate);
+
+ public bool ShowIpAddress => !string.IsNullOrEmpty(LoginRequest?.IpAddress);
+
+ public LoginPasswordlessDetails LoginRequest
+ {
+ get => _resquest;
+ set
+ {
+ SetProperty(ref _resquest, value, additionalPropertyNames: new string[]
+ {
+ nameof(LogInAttemptByLabel),
+ nameof(TimeOfRequestText),
+ nameof(ShowIpAddress),
+ });
+ }
+ }
+
+ private async Task PasswordlessLoginAsync(bool approveRequest)
+ {
+ await _deviceActionService.ShowLoadingAsync(AppResources.Loading);
+ await _authService.PasswordlessLoginAsync(LoginRequest.Id, LoginRequest.PubKey, approveRequest);
+ await _deviceActionService.HideLoadingAsync();
+ await Page.Navigation.PopModalAsync();
+ _platformUtilsService.ShowToast("info", null, approveRequest ? AppResources.LogInAccepted : AppResources.LogInDenied);
+ }
+
+ private string CreateRequestDate(DateTime? requestDate)
+ {
+ if (!requestDate.HasValue)
+ {
+ return string.Empty;
+ }
+
+ var minutesSinceRequest = requestDate.Value.ToUniversalTime().Minute - DateTime.UtcNow.Minute;
+ if (minutesSinceRequest < 5)
+ {
+ return AppResources.JustNow;
+ }
+ if (minutesSinceRequest < 59)
+ {
+ return string.Format(AppResources.XMinutesAgo, minutesSinceRequest);
+ }
+
+ return requestDate.Value.ToShortTimeString();
+ }
+
+ private void HandleException(Exception ex)
+ {
+ Xamarin.Essentials.MainThread.InvokeOnMainThreadAsync(async () =>
+ {
+ await _deviceActionService.HideLoadingAsync();
+ await _platformUtilsService.ShowDialogAsync(AppResources.GenericErrorMessage);
+ }).FireAndForget();
+ _logger.Exception(ex);
+ }
+ }
+
+ public class LoginPasswordlessDetails
+ {
+ public string Id { get; set; }
+
+ public string Key { get; set; }
+
+ public string PubKey { get; set; }
+
+ public string Origin { get; set; }
+
+ public string Email { get; set; }
+
+ public string FingerprintPhrase { get; set; }
+
+ public DateTime RequestDate { get; set; }
+
+ public string DeviceType { get; set; }
+
+ public string IpAddress { get; set; }
+ }
+}
diff --git a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
index ad62ceee4..54f05fc49 100644
--- a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
+++ b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
@@ -30,7 +30,7 @@ namespace Bit.App.Pages
private readonly IKeyConnectorService _keyConnectorService;
private readonly IClipboardService _clipboardService;
private readonly ILogger _loggerService;
-
+ private readonly IPushNotificationService _pushNotificationService;
private const int CustomVaultTimeoutValue = -100;
private bool _supportsBiometric;
@@ -42,6 +42,7 @@ namespace Bit.App.Pages
private string _vaultTimeoutActionDisplayValue;
private bool _showChangeMasterPassword;
private bool _reportLoggingEnabled;
+ private bool _approvePasswordlessLoginRequests;
private List> _vaultTimeouts =
new List>
@@ -83,6 +84,7 @@ namespace Bit.App.Pages
_keyConnectorService = ServiceContainer.Resolve("keyConnectorService");
_clipboardService = ServiceContainer.Resolve("clipboardService");
_loggerService = ServiceContainer.Resolve("logger");
+ _pushNotificationService = ServiceContainer.Resolve();
GroupedItems = new ObservableRangeCollection();
PageTitle = AppResources.Settings;
@@ -133,6 +135,7 @@ namespace Bit.App.Pages
_showChangeMasterPassword = IncludeLinksWithSubscriptionInfo() &&
!await _keyConnectorService.GetUsesKeyConnector();
_reportLoggingEnabled = await _loggerService.IsEnabled();
+ _approvePasswordlessLoginRequests = await _stateService.GetApprovePasswordlessLoginsAsync();
BuildList();
}
@@ -326,6 +329,38 @@ namespace Bit.App.Pages
BuildList();
}
+ public async Task ApproveLoginRequestsAsync()
+ {
+ var options = new[]
+ {
+ CreateSelectableOption(AppResources.Yes, _approvePasswordlessLoginRequests),
+ CreateSelectableOption(AppResources.No, !_approvePasswordlessLoginRequests),
+ };
+
+ var selection = await Page.DisplayActionSheet(AppResources.UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices, AppResources.Cancel, null, options);
+
+ if (selection == null || selection == AppResources.Cancel)
+ {
+ return;
+ }
+
+ _approvePasswordlessLoginRequests = CompareSelection(selection, AppResources.Yes);
+ await _stateService.SetApprovePasswordlessLoginsAsync(_approvePasswordlessLoginRequests);
+
+ BuildList();
+
+ if (!_approvePasswordlessLoginRequests || await _pushNotificationService.AreNotificationsSettingsEnabledAsync())
+ {
+ return;
+ }
+
+ var openAppSettingsResult = await _platformUtilsService.ShowDialogAsync(AppResources.ReceivePushNotificationsForNewLoginRequests, title: string.Empty, confirmText: AppResources.Settings, cancelText: AppResources.NoThanks);
+ if (openAppSettingsResult)
+ {
+ _deviceActionService.OpenAppSettings();
+ }
+ }
+
public async Task VaultTimeoutActionAsync()
{
var options = _vaultTimeoutActions.Select(o =>
@@ -504,6 +539,12 @@ namespace Bit.App.Pages
ExecuteAsync = () => UpdatePinAsync()
},
new SettingsPageListItem
+ {
+ Name = AppResources.ApproveLoginRequests,
+ SubLabel = _approvePasswordlessLoginRequests ? AppResources.On : AppResources.Off,
+ ExecuteAsync = () => ApproveLoginRequestsAsync()
+ },
+ new SettingsPageListItem
{
Name = AppResources.LockNow,
ExecuteAsync = () => LockAsync()
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 4d05884e7..3bad2f441 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -4151,6 +4151,127 @@ namespace Bit.App.Resources {
}
}
+ public static string LogInRequested {
+ get {
+ return ResourceManager.GetString("LogInRequested", resourceCulture);
+ }
+ }
+
+ public static string AreYouTryingToLogIn {
+ get {
+ return ResourceManager.GetString("AreYouTryingToLogIn", resourceCulture);
+ }
+ }
+
+ public static string LogInAttemptByXOnY {
+ get {
+ return ResourceManager.GetString("LogInAttemptByXOnY", resourceCulture);
+ }
+ }
+
+ public static string DeviceType {
+ get {
+ return ResourceManager.GetString("DeviceType", resourceCulture);
+ }
+ }
+
+ public static string IpAddress {
+ get {
+ return ResourceManager.GetString("IpAddress", resourceCulture);
+ }
+ }
+
+ public static string Time {
+ get {
+ return ResourceManager.GetString("Time", resourceCulture);
+ }
+ }
+
+ public static string Near {
+ get {
+ return ResourceManager.GetString("Near", resourceCulture);
+ }
+ }
+
+ public static string ConfirmLogIn {
+ get {
+ return ResourceManager.GetString("ConfirmLogIn", resourceCulture);
+ }
+ }
+
+ public static string DenyLogIn {
+ get {
+ return ResourceManager.GetString("DenyLogIn", resourceCulture);
+ }
+ }
+
+ public static string JustNow {
+ get {
+ return ResourceManager.GetString("JustNow", resourceCulture);
+ }
+ }
+
+ public static string XMinutesAgo {
+ get {
+ return ResourceManager.GetString("XMinutesAgo", resourceCulture);
+ }
+ }
+
+ public static string LogInAccepted {
+ get {
+ return ResourceManager.GetString("LogInAccepted", resourceCulture);
+ }
+ }
+
+ public static string LogInDenied {
+ get {
+ return ResourceManager.GetString("LogInDenied", resourceCulture);
+ }
+ }
+
+ public static string ApproveLoginRequests {
+ get {
+ return ResourceManager.GetString("ApproveLoginRequests", resourceCulture);
+ }
+ }
+
+ public static string UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices {
+ get {
+ return ResourceManager.GetString("UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices", resourceCulture);
+ }
+ }
+
+ public static string AllowNotifications {
+ get {
+ return ResourceManager.GetString("AllowNotifications", resourceCulture);
+ }
+ }
+
+ public static string ReceivePushNotificationsForNewLoginRequests {
+ get {
+ return ResourceManager.GetString("ReceivePushNotificationsForNewLoginRequests", resourceCulture);
+ }
+ }
+
+ public static string NoThanks {
+ get {
+ return ResourceManager.GetString("NoThanks", resourceCulture);
+ }
+ }
+
+ public static string ConfimLogInAttempForX {
+ get {
+ return ResourceManager.GetString("ConfimLogInAttempForX", resourceCulture);
+ }
+ }
+
+ public static string AllNotifications
+ {
+ get
+ {
+ return ResourceManager.GetString("AllNotifications", resourceCulture);
+ }
+ }
public static string PasswordType {
get {
return ResourceManager.GetString("PasswordType", resourceCulture);
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index fefb8560e..d752684fe 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -2314,6 +2314,66 @@ select Add TOTP to store the key safely
Are you sure you want to enable Screen Capture?
+
+ Login requested
+
+
+ Are you trying to log in?
+
+
+ Login attempt by {0} on {1}
+
+
+ Device type
+
+
+ IP address
+
+
+ Time
+
+
+ Near
+
+
+ Confirm login
+
+
+ Deny login
+
+
+ Just now
+
+
+ {0} minutes ago
+
+
+ Login confirmed
+
+
+ Login denied
+
+
+ Approve login requests
+
+
+ Use this device to approve login requests made from other devices.
+
+
+ Allow notifications
+
+
+ Receive push notifications for new login requests
+
+
+ No thanks
+
+
+ Confirm login attempt for {0}
+
+
+ All notifications
+
Password Type
diff --git a/src/App/Services/NoopPushNotificationService.cs b/src/App/Services/NoopPushNotificationService.cs
index 61dfc8c26..273473c10 100644
--- a/src/App/Services/NoopPushNotificationService.cs
+++ b/src/App/Services/NoopPushNotificationService.cs
@@ -1,4 +1,5 @@
-using System.Threading.Tasks;
+using System.Collections.Generic;
+using System.Threading.Tasks;
using Bit.App.Abstractions;
namespace Bit.App.Services
@@ -7,6 +8,11 @@ namespace Bit.App.Services
{
public bool IsRegisteredForPush => false;
+ public Task AreNotificationsSettingsEnabledAsync()
+ {
+ return Task.FromResult(false);
+ }
+
public Task GetTokenAsync()
{
return Task.FromResult(null as string);
@@ -21,5 +27,9 @@ namespace Bit.App.Services
{
return Task.FromResult(0);
}
+
+ public void DismissLocalNotification(string notificationId) { }
+
+ public void SendLocalNotification(string title, string message, string notificationId) { }
}
}
diff --git a/src/App/Services/PushNotificationListenerService.cs b/src/App/Services/PushNotificationListenerService.cs
index 79521a7a5..6f489f88c 100644
--- a/src/App/Services/PushNotificationListenerService.cs
+++ b/src/App/Services/PushNotificationListenerService.cs
@@ -1,8 +1,11 @@
#if !FDROID
using System;
using System.Diagnostics;
+using System.Linq;
using System.Threading.Tasks;
using Bit.App.Abstractions;
+using Bit.App.Pages;
+using Bit.App.Resources;
using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
@@ -26,6 +29,7 @@ namespace Bit.App.Services
private IAppIdService _appIdService;
private IApiService _apiService;
private IMessagingService _messagingService;
+ private IPushNotificationService _pushNotificationService;
public async Task OnMessageAsync(JObject value, string deviceType)
{
@@ -125,6 +129,27 @@ namespace Bit.App.Services
_messagingService.Send("logout");
}
break;
+ case NotificationType.AuthRequest:
+ var passwordlessLoginMessage = JsonConvert.DeserializeObject(notification.Payload);
+
+ // if the user has not enabled passwordless logins ignore requests
+ if (!await _stateService.GetApprovePasswordlessLoginsAsync(passwordlessLoginMessage?.UserId))
+ {
+ return;
+ }
+
+ // if there is a request modal opened ignore all incoming requests
+ if (App.Current.MainPage.Navigation.ModalStack.Any(p => p is NavigationPage navPage && navPage.CurrentPage is LoginPasswordlessPage))
+ {
+ return;
+ }
+
+ await _stateService.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage, passwordlessLoginMessage?.UserId);
+ var userEmail = await _stateService.GetEmailAsync(passwordlessLoginMessage?.UserId);
+
+ _pushNotificationService.SendLocalNotification(AppResources.LogInRequested, String.Format(AppResources.ConfimLogInAttempForX, userEmail), Constants.PasswordlessNotificationId);
+ _messagingService.Send("passwordlessLoginRequest", passwordlessLoginMessage);
+ break;
default:
break;
}
@@ -204,6 +229,7 @@ namespace Bit.App.Services
_appIdService = ServiceContainer.Resolve("appIdService");
_apiService = ServiceContainer.Resolve("apiService");
_messagingService = ServiceContainer.Resolve("messagingService");
+ _pushNotificationService = ServiceContainer.Resolve();
_resolved = true;
}
}
diff --git a/src/App/Styles/Black.xaml b/src/App/Styles/Black.xaml
index 7c64d5ea3..b2027f114 100644
--- a/src/App/Styles/Black.xaml
+++ b/src/App/Styles/Black.xaml
@@ -71,6 +71,6 @@
#ffffff#52bdfb
-
+ #F08DC7#80BDFF
diff --git a/src/App/Styles/Dark.xaml b/src/App/Styles/Dark.xaml
index 778a2b5a1..570e9ca2e 100644
--- a/src/App/Styles/Dark.xaml
+++ b/src/App/Styles/Dark.xaml
@@ -71,6 +71,6 @@
#ffffff#52bdfb
-
+ #F08DC7#80BDFF
diff --git a/src/App/Styles/Light.xaml b/src/App/Styles/Light.xaml
index fef760bf0..59a424953 100644
--- a/src/App/Styles/Light.xaml
+++ b/src/App/Styles/Light.xaml
@@ -71,6 +71,6 @@
#ffffff#175DDC
-
+ #C01176#80BDFF
diff --git a/src/App/Styles/Nord.xaml b/src/App/Styles/Nord.xaml
index 4b83815e1..d4690c2de 100644
--- a/src/App/Styles/Nord.xaml
+++ b/src/App/Styles/Nord.xaml
@@ -71,6 +71,6 @@
#e5e9f0#81a1c1
-
+ #F08DC7#80BDFF
diff --git a/src/Core/Abstractions/IApiService.cs b/src/Core/Abstractions/IApiService.cs
index 2adc7d65b..0db9b6959 100644
--- a/src/Core/Abstractions/IApiService.cs
+++ b/src/Core/Abstractions/IApiService.cs
@@ -83,6 +83,8 @@ namespace Bit.Core.Abstractions
Task PutSendAsync(string id, SendRequest request);
Task PutSendRemovePasswordAsync(string id);
Task DeleteSendAsync(string id);
+ Task GetAuthRequestAsync(string id);
+ Task PutAuthRequestAsync(string id, string key, string masterPasswordHash, string deviceIdentifier, bool requestApproved);
Task GetUsernameFromAsync(ForwardedEmailServiceType service, UsernameGeneratorConfig config);
}
}
diff --git a/src/Core/Abstractions/IAuthService.cs b/src/Core/Abstractions/IAuthService.cs
index b480348a9..e151daabd 100644
--- a/src/Core/Abstractions/IAuthService.cs
+++ b/src/Core/Abstractions/IAuthService.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using Bit.Core.Enums;
using Bit.Core.Models.Domain;
+using Bit.Core.Models.Response;
namespace Bit.Core.Abstractions
{
@@ -25,6 +26,10 @@ namespace Bit.Core.Abstractions
Task LogInSsoAsync(string code, string codeVerifier, string redirectUrl, string orgId);
Task LogInCompleteAsync(string email, string masterPassword, TwoFactorProviderType twoFactorProvider, string twoFactorToken, bool? remember = null);
Task LogInTwoFactorAsync(TwoFactorProviderType twoFactorProvider, string twoFactorToken, string captchaToken, bool? remember = null);
+
+ Task GetPasswordlessLoginRequestByIdAsync(string id);
+ Task PasswordlessLoginAsync(string id, string pubKey, bool requestApproved);
+
void LogOut(Action callback);
void Init();
}
diff --git a/src/Core/Abstractions/IStateService.cs b/src/Core/Abstractions/IStateService.cs
index 701a54a3d..5ac1c0df3 100644
--- a/src/Core/Abstractions/IStateService.cs
+++ b/src/Core/Abstractions/IStateService.cs
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
using Bit.Core.Models.Domain;
+using Bit.Core.Models.Response;
using Bit.Core.Models.View;
namespace Bit.Core.Abstractions
@@ -151,6 +152,10 @@ namespace Bit.Core.Abstractions
Task GetScreenCaptureAllowedAsync(string userId = null);
Task SetScreenCaptureAllowedAsync(bool value, string userId = null);
Task SaveExtensionActiveUserIdToStorageAsync(string userId);
+ Task GetApprovePasswordlessLoginsAsync(string userId = null);
+ Task SetApprovePasswordlessLoginsAsync(bool? value, string userId = null);
+ Task GetPasswordlessLoginNotificationAsync(string userId = null);
+ Task SetPasswordlessLoginNotificationAsync(PasswordlessRequestNotification value, string userId = null);
Task GetUsernameGenerationOptionsAsync(string userId = null);
Task SetUsernameGenerationOptionsAsync(UsernameGenerationOptions value, string userId = null);
}
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index d2cb9800f..299448082 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -30,6 +30,8 @@
public static string EventCollectionKey = "eventCollection";
public static string RememberedEmailKey = "rememberedEmail";
public static string RememberedOrgIdentifierKey = "rememberedOrgIdentifier";
+ public const string PasswordlessNotificationId = "26072022";
+ public const string AndroidNotificationChannelId = "general_notification_channel";
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
public const int SaveFileRequestCode = 44;
@@ -85,6 +87,8 @@
public static string ProtectedPinKey(string userId) => $"protectedPin_{userId}";
public static string LastSyncKey(string userId) => $"lastSync_{userId}";
public static string BiometricUnlockKey(string userId) => $"biometricUnlock_{userId}";
+ public static string ApprovePasswordlessLoginsKey(string userId) => $"approvePasswordlessLogins_{userId}";
+ public static string PasswordlessLoginNofiticationKey(string userId) => $"passwordlessLoginNofitication_{userId}";
public static string UsernameGenOptionsKey(string userId) => $"usernameGenerationOptions_{userId}";
}
}
diff --git a/src/Core/Enums/NotificationType.cs b/src/Core/Enums/NotificationType.cs
index 2e35dbf9b..e99439622 100644
--- a/src/Core/Enums/NotificationType.cs
+++ b/src/Core/Enums/NotificationType.cs
@@ -16,5 +16,12 @@
SyncSettings = 10,
LogOut = 11,
+
+ SyncSendCreate = 12,
+ SyncSendUpdate = 13,
+ SyncSendDelete = 14,
+
+ AuthRequest = 15,
+ AuthRequestResponse = 16,
}
}
diff --git a/src/Core/Models/Request/PasswordlessLoginRequest.cs b/src/Core/Models/Request/PasswordlessLoginRequest.cs
new file mode 100644
index 000000000..1ed5a380c
--- /dev/null
+++ b/src/Core/Models/Request/PasswordlessLoginRequest.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace Bit.Core.Models.Request
+{
+ public class PasswordlessLoginRequest
+ {
+ public PasswordlessLoginRequest(string key, string masterPasswordHash, string deviceIdentifier,
+ bool requestApproved)
+ {
+ Key = key ?? throw new ArgumentNullException(nameof(key));
+ MasterPasswordHash = masterPasswordHash ?? throw new ArgumentNullException(nameof(masterPasswordHash));
+ DeviceIdentifier = deviceIdentifier ?? throw new ArgumentNullException(nameof(deviceIdentifier));
+ RequestApproved = requestApproved;
+ }
+
+ public string Key { get; set; }
+ public string MasterPasswordHash { get; set; }
+ public string DeviceIdentifier { get; set; }
+ public bool RequestApproved { get; set; }
+ }
+}
diff --git a/src/Core/Models/Response/NotificationResponse.cs b/src/Core/Models/Response/NotificationResponse.cs
index c32812e46..ae5405d9b 100644
--- a/src/Core/Models/Response/NotificationResponse.cs
+++ b/src/Core/Models/Response/NotificationResponse.cs
@@ -33,4 +33,10 @@ namespace Bit.Core.Models.Response
public string UserId { get; set; }
public DateTime Date { get; set; }
}
+
+ public class PasswordlessRequestNotification
+ {
+ public string UserId { get; set; }
+ public string Id { get; set; }
+ }
}
diff --git a/src/Core/Models/Response/PasswordlessLoginResponse.cs b/src/Core/Models/Response/PasswordlessLoginResponse.cs
new file mode 100644
index 000000000..20113de8e
--- /dev/null
+++ b/src/Core/Models/Response/PasswordlessLoginResponse.cs
@@ -0,0 +1,19 @@
+using System;
+using Bit.Core.Enums;
+
+namespace Bit.Core.Models.Response
+{
+ public class PasswordlessLoginResponse
+ {
+ public string Id { get; set; }
+ public string PublicKey { get; set; }
+ public string RequestDeviceType { get; set; }
+ public string RequestIpAddress { get; set; }
+ public string RequestFingerprint { get; set; }
+ public string Key { get; set; }
+ public string MasterPasswordHash { get; set; }
+ public DateTime CreationDate { get; set; }
+ public bool RequestApproved { get; set; }
+ public string Origin { get; set; }
+ }
+}
diff --git a/src/Core/Services/ApiService.cs b/src/Core/Services/ApiService.cs
index 8896816f1..71566f82f 100644
--- a/src/Core/Services/ApiService.cs
+++ b/src/Core/Services/ApiService.cs
@@ -534,6 +534,21 @@ namespace Bit.Core.Services
#endregion
+ #region PasswordlessLogin
+
+ public Task GetAuthRequestAsync(string id)
+ {
+ return SendAsync
diff --git a/src/Android/Resources/drawable/ic_notification.xml b/src/Android/Resources/drawable/ic_notification.xml
new file mode 100644
index 000000000..ed92d0ce8
--- /dev/null
+++ b/src/Android/Resources/drawable/ic_notification.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index b8088cb80..05602797c 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -3,10 +3,12 @@ using System;
using System.Threading.Tasks;
using Android.App;
using Android.Content;
+using Android.OS;
using AndroidX.Core.App;
using Bit.App.Abstractions;
using Bit.Core;
using Bit.Core.Abstractions;
+using Bit.Droid.Utilities;
using Xamarin.Forms;
namespace Bit.Droid.Services
@@ -71,15 +73,18 @@ namespace Bit.Droid.Services
{
throw new ArgumentNullException("notificationId cannot be null or empty.");
}
-
+
+
var context = Android.App.Application.Context;
var intent = new Intent(context, typeof(MainActivity));
- var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, PendingIntentFlags.UpdateCurrent);
+ var pendingIntentFlags = AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, true);
+ var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, pendingIntentFlags);
var builder = new NotificationCompat.Builder(context, Constants.AndroidNotificationChannelId)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
- .SetSmallIcon(Resource.Mipmap.ic_launcher)
+ .SetSmallIcon(Resource.Drawable.ic_notification)
+ .SetColor((int)Android.Graphics.Color.White)
.SetAutoCancel(true);
var notificationManager = NotificationManagerCompat.From(context);
From 9631988fc2492c676d1dbbb2db04aaf366846335 Mon Sep 17 00:00:00 2001
From: mp-bw <59324545+mp-bw@users.noreply.github.com>
Date: Fri, 30 Sep 2022 14:44:18 -0400
Subject: [PATCH 07/32] remove duplicate/older community toolkit dependency
(#2107)
---
src/App/App.csproj | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/App/App.csproj b/src/App/App.csproj
index 0a0eb15e6..9305cd38c 100644
--- a/src/App/App.csproj
+++ b/src/App/App.csproj
@@ -21,7 +21,6 @@
-
From 90e0b5dcf0783603c825159fb7a74612a8bd7722 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Fri, 30 Sep 2022 20:44:56 +0100
Subject: [PATCH 08/32] [SG-690] Login Request does not disappear after 15
minutes (#2106)
* [SG-690] Add timeout of 15 for android notifications. Add condition to not prompt login requests if 15mins have passed. Add constant for timeout time.
* [SG-690] Added dialog on click confirm/deny if the request is expired.
* [SG-690] PR fixes
* [SG-690] PR fixes
---
.../AndroidPushNotificationService.cs | 4 +-
src/App/App.xaml.cs | 5 +-
.../Accounts/LoginPasswordlessViewModel.cs | 7 +
src/App/Resources/AppResources.Designer.cs | 10984 ++++++++++------
src/App/Resources/AppResources.resx | 3 +
src/Core/Constants.cs | 1 +
6 files changed, 6618 insertions(+), 4386 deletions(-)
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index 05602797c..9365b19ec 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -73,8 +73,7 @@ namespace Bit.Droid.Services
{
throw new ArgumentNullException("notificationId cannot be null or empty.");
}
-
-
+
var context = Android.App.Application.Context;
var intent = new Intent(context, typeof(MainActivity));
var pendingIntentFlags = AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, true);
@@ -83,6 +82,7 @@ namespace Bit.Droid.Services
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
+ .SetTimeoutAfter(Constants.PasswordlessNotificationTimeoutInMinutes * 60000)
.SetSmallIcon(Resource.Drawable.ic_notification)
.SetColor((int)Android.Graphics.Color.White)
.SetAutoCancel(true);
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index c83ab3308..35c22126c 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -189,7 +189,10 @@ namespace Bit.App
});
await _stateService.SetPasswordlessLoginNotificationAsync(null);
_pushNotificationService.DismissLocalNotification(Constants.PasswordlessNotificationId);
- await Device.InvokeOnMainThreadAsync(async () => await Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
+ if (loginRequestData.CreationDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.Now)
+ {
+ await Device.InvokeOnMainThreadAsync(() => Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
+ }
}
public AppOptions Options { get; private set; }
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
index 03eee241d..d1e8d0c28 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -65,6 +65,13 @@ namespace Bit.App.Pages
private async Task PasswordlessLoginAsync(bool approveRequest)
{
+ if (LoginRequest.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.Now)
+ {
+ await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
+ await Page.Navigation.PopModalAsync();
+ return;
+ }
+
await _deviceActionService.ShowLoadingAsync(AppResources.Loading);
await _authService.PasswordlessLoginAsync(LoginRequest.Id, LoginRequest.PubKey, approveRequest);
await _deviceActionService.HideLoadingAsync();
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index e923b8b9e..f2fbf889e 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -1,7 +1,6 @@
-//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
//
// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@@ -10,35 +9,46 @@
namespace Bit.App.Resources {
using System;
- using System.Reflection;
- [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ /// This class was generated by MSBuild using the GenerateResource task.
+ /// To add or remove a member, edit your .resx file then rerun MSBuild.
+ ///
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Build.Tasks.StronglyTypedResourceBuilder", "15.1.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class AppResources {
- private static System.Resources.ResourceManager resourceMan;
+ private static global::System.Resources.ResourceManager resourceMan;
- private static System.Globalization.CultureInfo resourceCulture;
+ private static global::System.Globalization.CultureInfo resourceCulture;
- [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal AppResources() {
}
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
- public static System.Resources.ResourceManager ResourceManager {
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ public static global::System.Resources.ResourceManager ResourceManager {
get {
- if (object.Equals(null, resourceMan)) {
- System.Resources.ResourceManager temp = new System.Resources.ResourceManager("Bit.App.Resources.AppResources", typeof(AppResources).Assembly);
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Bit.App.Resources.AppResources", typeof(AppResources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
- [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
- public static System.Globalization.CultureInfo Culture {
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
@@ -47,4396 +57,6604 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to About.
+ ///
public static string About {
get {
return ResourceManager.GetString("About", resourceCulture);
}
}
- public static string Add {
- get {
- return ResourceManager.GetString("Add", resourceCulture);
- }
- }
-
- public static string AddFolder {
- get {
- return ResourceManager.GetString("AddFolder", resourceCulture);
- }
- }
-
- public static string AddItem {
- get {
- return ResourceManager.GetString("AddItem", resourceCulture);
- }
- }
-
- public static string AnErrorHasOccurred {
- get {
- return ResourceManager.GetString("AnErrorHasOccurred", resourceCulture);
- }
- }
-
- public static string Back {
- get {
- return ResourceManager.GetString("Back", resourceCulture);
- }
- }
-
- public static string Bitwarden {
- get {
- return ResourceManager.GetString("Bitwarden", resourceCulture);
- }
- }
-
- public static string Cancel {
- get {
- return ResourceManager.GetString("Cancel", resourceCulture);
- }
- }
-
- public static string Copy {
- get {
- return ResourceManager.GetString("Copy", resourceCulture);
- }
- }
-
- public static string CopyPassword {
- get {
- return ResourceManager.GetString("CopyPassword", resourceCulture);
- }
- }
-
- public static string CopyUsername {
- get {
- return ResourceManager.GetString("CopyUsername", resourceCulture);
- }
- }
-
- public static string Credits {
- get {
- return ResourceManager.GetString("Credits", resourceCulture);
- }
- }
-
- public static string Delete {
- get {
- return ResourceManager.GetString("Delete", resourceCulture);
- }
- }
-
- public static string Deleting {
- get {
- return ResourceManager.GetString("Deleting", resourceCulture);
- }
- }
-
- public static string DoYouReallyWantToDelete {
- get {
- return ResourceManager.GetString("DoYouReallyWantToDelete", resourceCulture);
- }
- }
-
- public static string Edit {
- get {
- return ResourceManager.GetString("Edit", resourceCulture);
- }
- }
-
- public static string EditFolder {
- get {
- return ResourceManager.GetString("EditFolder", resourceCulture);
- }
- }
-
- public static string Email {
- get {
- return ResourceManager.GetString("Email", resourceCulture);
- }
- }
-
- public static string EmailAddress {
- get {
- return ResourceManager.GetString("EmailAddress", resourceCulture);
- }
- }
-
- public static string EmailUs {
- get {
- return ResourceManager.GetString("EmailUs", resourceCulture);
- }
- }
-
- public static string EmailUsDescription {
- get {
- return ResourceManager.GetString("EmailUsDescription", resourceCulture);
- }
- }
-
- public static string EnterPIN {
- get {
- return ResourceManager.GetString("EnterPIN", resourceCulture);
- }
- }
-
- public static string Favorites {
- get {
- return ResourceManager.GetString("Favorites", resourceCulture);
- }
- }
-
- public static string FileBugReport {
- get {
- return ResourceManager.GetString("FileBugReport", resourceCulture);
- }
- }
-
- public static string FileBugReportDescription {
- get {
- return ResourceManager.GetString("FileBugReportDescription", resourceCulture);
- }
- }
-
- public static string FingerprintDirection {
- get {
- return ResourceManager.GetString("FingerprintDirection", resourceCulture);
- }
- }
-
- public static string Folder {
- get {
- return ResourceManager.GetString("Folder", resourceCulture);
- }
- }
-
- public static string FolderCreated {
- get {
- return ResourceManager.GetString("FolderCreated", resourceCulture);
- }
- }
-
- public static string FolderDeleted {
- get {
- return ResourceManager.GetString("FolderDeleted", resourceCulture);
- }
- }
-
- public static string FolderNone {
- get {
- return ResourceManager.GetString("FolderNone", resourceCulture);
- }
- }
-
- public static string Folders {
- get {
- return ResourceManager.GetString("Folders", resourceCulture);
- }
- }
-
- public static string FolderUpdated {
- get {
- return ResourceManager.GetString("FolderUpdated", resourceCulture);
- }
- }
-
- public static string GoToWebsite {
- get {
- return ResourceManager.GetString("GoToWebsite", resourceCulture);
- }
- }
-
- public static string HelpAndFeedback {
- get {
- return ResourceManager.GetString("HelpAndFeedback", resourceCulture);
- }
- }
-
- public static string Hide {
- get {
- return ResourceManager.GetString("Hide", resourceCulture);
- }
- }
-
- public static string InternetConnectionRequiredMessage {
- get {
- return ResourceManager.GetString("InternetConnectionRequiredMessage", resourceCulture);
- }
- }
-
- public static string InternetConnectionRequiredTitle {
- get {
- return ResourceManager.GetString("InternetConnectionRequiredTitle", resourceCulture);
- }
- }
-
- public static string InvalidMasterPassword {
- get {
- return ResourceManager.GetString("InvalidMasterPassword", resourceCulture);
- }
- }
-
- public static string InvalidPIN {
- get {
- return ResourceManager.GetString("InvalidPIN", resourceCulture);
- }
- }
-
- public static string Launch {
- get {
- return ResourceManager.GetString("Launch", resourceCulture);
- }
- }
-
- public static string LogIn {
- get {
- return ResourceManager.GetString("LogIn", resourceCulture);
- }
- }
-
- public static string LogInNoun {
- get {
- return ResourceManager.GetString("LogInNoun", resourceCulture);
- }
- }
-
- public static string LogOut {
- get {
- return ResourceManager.GetString("LogOut", resourceCulture);
- }
- }
-
- public static string LogoutConfirmation {
- get {
- return ResourceManager.GetString("LogoutConfirmation", resourceCulture);
- }
- }
-
- public static string RemoveAccount {
- get {
- return ResourceManager.GetString("RemoveAccount", resourceCulture);
- }
- }
-
- public static string RemoveAccountConfirmation {
- get {
- return ResourceManager.GetString("RemoveAccountConfirmation", resourceCulture);
- }
- }
-
- public static string AccountAlreadyAdded {
- get {
- return ResourceManager.GetString("AccountAlreadyAdded", resourceCulture);
- }
- }
-
- public static string SwitchToAlreadyAddedAccountConfirmation {
- get {
- return ResourceManager.GetString("SwitchToAlreadyAddedAccountConfirmation", resourceCulture);
- }
- }
-
- public static string MasterPassword {
- get {
- return ResourceManager.GetString("MasterPassword", resourceCulture);
- }
- }
-
- public static string More {
- get {
- return ResourceManager.GetString("More", resourceCulture);
- }
- }
-
- public static string MyVault {
- get {
- return ResourceManager.GetString("MyVault", resourceCulture);
- }
- }
-
- public static string Authenticator {
- get {
- return ResourceManager.GetString("Authenticator", resourceCulture);
- }
- }
-
- public static string Name {
- get {
- return ResourceManager.GetString("Name", resourceCulture);
- }
- }
-
- public static string No {
- get {
- return ResourceManager.GetString("No", resourceCulture);
- }
- }
-
- public static string Notes {
- get {
- return ResourceManager.GetString("Notes", resourceCulture);
- }
- }
-
- public static string Ok {
- get {
- return ResourceManager.GetString("Ok", resourceCulture);
- }
- }
-
- public static string Password {
- get {
- return ResourceManager.GetString("Password", resourceCulture);
- }
- }
-
- public static string Save {
- get {
- return ResourceManager.GetString("Save", resourceCulture);
- }
- }
-
- public static string Move {
- get {
- return ResourceManager.GetString("Move", resourceCulture);
- }
- }
-
- public static string Saving {
- get {
- return ResourceManager.GetString("Saving", resourceCulture);
- }
- }
-
- public static string Settings {
- get {
- return ResourceManager.GetString("Settings", resourceCulture);
- }
- }
-
- public static string Show {
- get {
- return ResourceManager.GetString("Show", resourceCulture);
- }
- }
-
- public static string ItemDeleted {
- get {
- return ResourceManager.GetString("ItemDeleted", resourceCulture);
- }
- }
-
- public static string Submit {
- get {
- return ResourceManager.GetString("Submit", resourceCulture);
- }
- }
-
- public static string Sync {
- get {
- return ResourceManager.GetString("Sync", resourceCulture);
- }
- }
-
- public static string ThankYou {
- get {
- return ResourceManager.GetString("ThankYou", resourceCulture);
- }
- }
-
- public static string Tools {
- get {
- return ResourceManager.GetString("Tools", resourceCulture);
- }
- }
-
- public static string URI {
- get {
- return ResourceManager.GetString("URI", resourceCulture);
- }
- }
-
- public static string UseFingerprintToUnlock {
- get {
- return ResourceManager.GetString("UseFingerprintToUnlock", resourceCulture);
- }
- }
-
- public static string Username {
- get {
- return ResourceManager.GetString("Username", resourceCulture);
- }
- }
-
- public static string ValidationFieldRequired {
- get {
- return ResourceManager.GetString("ValidationFieldRequired", resourceCulture);
- }
- }
-
- public static string ValueHasBeenCopied {
- get {
- return ResourceManager.GetString("ValueHasBeenCopied", resourceCulture);
- }
- }
-
- public static string VerifyFingerprint {
- get {
- return ResourceManager.GetString("VerifyFingerprint", resourceCulture);
- }
- }
-
- public static string VerifyMasterPassword {
- get {
- return ResourceManager.GetString("VerifyMasterPassword", resourceCulture);
- }
- }
-
- public static string VerifyPIN {
- get {
- return ResourceManager.GetString("VerifyPIN", resourceCulture);
- }
- }
-
- public static string Version {
- get {
- return ResourceManager.GetString("Version", resourceCulture);
- }
- }
-
- public static string View {
- get {
- return ResourceManager.GetString("View", resourceCulture);
- }
- }
-
- public static string VisitOurWebsite {
- get {
- return ResourceManager.GetString("VisitOurWebsite", resourceCulture);
- }
- }
-
- public static string VisitOurWebsiteDescription {
- get {
- return ResourceManager.GetString("VisitOurWebsiteDescription", resourceCulture);
- }
- }
-
- public static string Website {
- get {
- return ResourceManager.GetString("Website", resourceCulture);
- }
- }
-
- public static string Yes {
- get {
- return ResourceManager.GetString("Yes", resourceCulture);
- }
- }
-
- public static string Account {
- get {
- return ResourceManager.GetString("Account", resourceCulture);
- }
- }
-
- public static string AccountCreated {
- get {
- return ResourceManager.GetString("AccountCreated", resourceCulture);
- }
- }
-
- public static string AddAnItem {
- get {
- return ResourceManager.GetString("AddAnItem", resourceCulture);
- }
- }
-
- public static string AppExtension {
- get {
- return ResourceManager.GetString("AppExtension", resourceCulture);
- }
- }
-
- public static string AutofillAccessibilityDescription {
- get {
- return ResourceManager.GetString("AutofillAccessibilityDescription", resourceCulture);
- }
- }
-
- public static string AutofillService {
- get {
- return ResourceManager.GetString("AutofillService", resourceCulture);
- }
- }
-
- public static string AvoidAmbiguousCharacters {
- get {
- return ResourceManager.GetString("AvoidAmbiguousCharacters", resourceCulture);
- }
- }
-
- public static string BitwardenAppExtension {
- get {
- return ResourceManager.GetString("BitwardenAppExtension", resourceCulture);
- }
- }
-
- public static string BitwardenAppExtensionAlert2 {
- get {
- return ResourceManager.GetString("BitwardenAppExtensionAlert2", resourceCulture);
- }
- }
-
- public static string BitwardenAppExtensionDescription {
- get {
- return ResourceManager.GetString("BitwardenAppExtensionDescription", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillService {
- get {
- return ResourceManager.GetString("BitwardenAutofillService", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillAccessibilityServiceDescription {
- get {
- return ResourceManager.GetString("BitwardenAutofillAccessibilityServiceDescription", resourceCulture);
- }
- }
-
- public static string ChangeEmail {
- get {
- return ResourceManager.GetString("ChangeEmail", resourceCulture);
- }
- }
-
- public static string ChangeEmailConfirmation {
- get {
- return ResourceManager.GetString("ChangeEmailConfirmation", resourceCulture);
- }
- }
-
- public static string ChangeMasterPassword {
- get {
- return ResourceManager.GetString("ChangeMasterPassword", resourceCulture);
- }
- }
-
- public static string ChangePasswordConfirmation {
- get {
- return ResourceManager.GetString("ChangePasswordConfirmation", resourceCulture);
- }
- }
-
- public static string Close {
- get {
- return ResourceManager.GetString("Close", resourceCulture);
- }
- }
-
- public static string Continue {
- get {
- return ResourceManager.GetString("Continue", resourceCulture);
- }
- }
-
- public static string CreateAccount {
- get {
- return ResourceManager.GetString("CreateAccount", resourceCulture);
- }
- }
-
- public static string CreatingAccount {
- get {
- return ResourceManager.GetString("CreatingAccount", resourceCulture);
- }
- }
-
- public static string EditItem {
- get {
- return ResourceManager.GetString("EditItem", resourceCulture);
- }
- }
-
- public static string EnableAutomaticSyncing {
- get {
- return ResourceManager.GetString("EnableAutomaticSyncing", resourceCulture);
- }
- }
-
- public static string EnterEmailForHint {
- get {
- return ResourceManager.GetString("EnterEmailForHint", resourceCulture);
- }
- }
-
- public static string ExntesionReenable {
- get {
- return ResourceManager.GetString("ExntesionReenable", resourceCulture);
- }
- }
-
- public static string ExtensionAlmostDone {
- get {
- return ResourceManager.GetString("ExtensionAlmostDone", resourceCulture);
- }
- }
-
- public static string ExtensionEnable {
- get {
- return ResourceManager.GetString("ExtensionEnable", resourceCulture);
- }
- }
-
- public static string ExtensionInSafari {
- get {
- return ResourceManager.GetString("ExtensionInSafari", resourceCulture);
- }
- }
-
- public static string ExtensionInstantAccess {
- get {
- return ResourceManager.GetString("ExtensionInstantAccess", resourceCulture);
- }
- }
-
- public static string ExtensionReady {
- get {
- return ResourceManager.GetString("ExtensionReady", resourceCulture);
- }
- }
-
- public static string ExtensionSetup {
- get {
- return ResourceManager.GetString("ExtensionSetup", resourceCulture);
- }
- }
-
- public static string ExtensionSetup2 {
- get {
- return ResourceManager.GetString("ExtensionSetup2", resourceCulture);
- }
- }
-
- public static string ExtensionTapIcon {
- get {
- return ResourceManager.GetString("ExtensionTapIcon", resourceCulture);
- }
- }
-
- public static string ExtensionTurnOn {
- get {
- return ResourceManager.GetString("ExtensionTurnOn", resourceCulture);
- }
- }
-
- public static string Favorite {
- get {
- return ResourceManager.GetString("Favorite", resourceCulture);
- }
- }
-
- public static string Fingerprint {
- get {
- return ResourceManager.GetString("Fingerprint", resourceCulture);
- }
- }
-
- public static string GeneratePassword {
- get {
- return ResourceManager.GetString("GeneratePassword", resourceCulture);
- }
- }
-
- public static string GetPasswordHint {
- get {
- return ResourceManager.GetString("GetPasswordHint", resourceCulture);
- }
- }
-
- public static string ImportItems {
- get {
- return ResourceManager.GetString("ImportItems", resourceCulture);
- }
- }
-
- public static string ImportItemsConfirmation {
- get {
- return ResourceManager.GetString("ImportItemsConfirmation", resourceCulture);
- }
- }
-
- public static string ImportItemsDescription {
- get {
- return ResourceManager.GetString("ImportItemsDescription", resourceCulture);
- }
- }
-
- public static string LastSync {
- get {
- return ResourceManager.GetString("LastSync", resourceCulture);
- }
- }
-
- public static string Length {
- get {
- return ResourceManager.GetString("Length", resourceCulture);
- }
- }
-
- public static string Lock {
- get {
- return ResourceManager.GetString("Lock", resourceCulture);
- }
- }
-
- public static string FifteenMinutes {
- get {
- return ResourceManager.GetString("FifteenMinutes", resourceCulture);
- }
- }
-
- public static string OneHour {
- get {
- return ResourceManager.GetString("OneHour", resourceCulture);
- }
- }
-
- public static string OneMinute {
- get {
- return ResourceManager.GetString("OneMinute", resourceCulture);
- }
- }
-
- public static string FourHours {
- get {
- return ResourceManager.GetString("FourHours", resourceCulture);
- }
- }
-
- public static string Immediately {
- get {
- return ResourceManager.GetString("Immediately", resourceCulture);
- }
- }
-
- public static string VaultTimeout {
- get {
- return ResourceManager.GetString("VaultTimeout", resourceCulture);
- }
- }
-
- public static string VaultTimeoutAction {
- get {
- return ResourceManager.GetString("VaultTimeoutAction", resourceCulture);
- }
- }
-
- public static string VaultTimeoutLogOutConfirmation {
- get {
- return ResourceManager.GetString("VaultTimeoutLogOutConfirmation", resourceCulture);
- }
- }
-
- public static string LoggingIn {
- get {
- return ResourceManager.GetString("LoggingIn", resourceCulture);
- }
- }
-
- public static string LoginOrCreateNewAccount {
- get {
- return ResourceManager.GetString("LoginOrCreateNewAccount", resourceCulture);
- }
- }
-
- public static string Manage {
- get {
- return ResourceManager.GetString("Manage", resourceCulture);
- }
- }
-
- public static string MasterPasswordConfirmationValMessage {
- get {
- return ResourceManager.GetString("MasterPasswordConfirmationValMessage", resourceCulture);
- }
- }
-
- public static string MasterPasswordDescription {
- get {
- return ResourceManager.GetString("MasterPasswordDescription", resourceCulture);
- }
- }
-
- public static string MasterPasswordHint {
- get {
- return ResourceManager.GetString("MasterPasswordHint", resourceCulture);
- }
- }
-
- public static string MasterPasswordHintDescription {
- get {
- return ResourceManager.GetString("MasterPasswordHintDescription", resourceCulture);
- }
- }
-
- public static string MasterPasswordLengthValMessage {
- get {
- return ResourceManager.GetString("MasterPasswordLengthValMessage", resourceCulture);
- }
- }
-
- public static string MinNumbers {
- get {
- return ResourceManager.GetString("MinNumbers", resourceCulture);
- }
- }
-
- public static string MinSpecial {
- get {
- return ResourceManager.GetString("MinSpecial", resourceCulture);
- }
- }
-
- public static string MoreSettings {
- get {
- return ResourceManager.GetString("MoreSettings", resourceCulture);
- }
- }
-
- public static string MustLogInMainApp {
- get {
- return ResourceManager.GetString("MustLogInMainApp", resourceCulture);
- }
- }
-
- public static string Never {
- get {
- return ResourceManager.GetString("Never", resourceCulture);
- }
- }
-
- public static string NewItemCreated {
- get {
- return ResourceManager.GetString("NewItemCreated", resourceCulture);
- }
- }
-
- public static string NoFavorites {
- get {
- return ResourceManager.GetString("NoFavorites", resourceCulture);
- }
- }
-
- public static string NoItems {
- get {
- return ResourceManager.GetString("NoItems", resourceCulture);
- }
- }
-
- public static string NoItemsTap {
- get {
- return ResourceManager.GetString("NoItemsTap", resourceCulture);
- }
- }
-
- public static string NoUsernamePasswordConfigured {
- get {
- return ResourceManager.GetString("NoUsernamePasswordConfigured", resourceCulture);
- }
- }
-
- public static string OkGotIt {
- get {
- return ResourceManager.GetString("OkGotIt", resourceCulture);
- }
- }
-
- public static string OptionDefaults {
- get {
- return ResourceManager.GetString("OptionDefaults", resourceCulture);
- }
- }
-
- public static string Options {
- get {
- return ResourceManager.GetString("Options", resourceCulture);
- }
- }
-
- public static string Other {
- get {
- return ResourceManager.GetString("Other", resourceCulture);
- }
- }
-
- public static string PasswordGenerated {
- get {
- return ResourceManager.GetString("PasswordGenerated", resourceCulture);
- }
- }
-
- public static string PasswordGenerator {
- get {
- return ResourceManager.GetString("PasswordGenerator", resourceCulture);
- }
- }
-
- public static string PasswordHint {
- get {
- return ResourceManager.GetString("PasswordHint", resourceCulture);
- }
- }
-
- public static string PasswordHintAlert {
- get {
- return ResourceManager.GetString("PasswordHintAlert", resourceCulture);
- }
- }
-
- public static string PasswordOverrideAlert {
- get {
- return ResourceManager.GetString("PasswordOverrideAlert", resourceCulture);
- }
- }
-
- public static string PushNotificationAlert {
- get {
- return ResourceManager.GetString("PushNotificationAlert", resourceCulture);
- }
- }
-
- public static string RateTheApp {
- get {
- return ResourceManager.GetString("RateTheApp", resourceCulture);
- }
- }
-
- public static string RateTheAppDescription {
- get {
- return ResourceManager.GetString("RateTheAppDescription", resourceCulture);
- }
- }
-
- public static string RegeneratePassword {
- get {
- return ResourceManager.GetString("RegeneratePassword", resourceCulture);
- }
- }
-
- public static string RetypeMasterPassword {
- get {
- return ResourceManager.GetString("RetypeMasterPassword", resourceCulture);
- }
- }
-
- public static string SearchVault {
- get {
- return ResourceManager.GetString("SearchVault", resourceCulture);
- }
- }
-
- public static string Security {
- get {
- return ResourceManager.GetString("Security", resourceCulture);
- }
- }
-
- public static string Select {
- get {
- return ResourceManager.GetString("Select", resourceCulture);
- }
- }
-
- public static string SetPIN {
- get {
- return ResourceManager.GetString("SetPIN", resourceCulture);
- }
- }
-
- public static string SetPINDirection {
- get {
- return ResourceManager.GetString("SetPINDirection", resourceCulture);
- }
- }
-
- public static string ItemInformation {
- get {
- return ResourceManager.GetString("ItemInformation", resourceCulture);
- }
- }
-
- public static string ItemUpdated {
- get {
- return ResourceManager.GetString("ItemUpdated", resourceCulture);
- }
- }
-
- public static string Submitting {
- get {
- return ResourceManager.GetString("Submitting", resourceCulture);
- }
- }
-
- public static string Syncing {
- get {
- return ResourceManager.GetString("Syncing", resourceCulture);
- }
- }
-
- public static string SyncingComplete {
- get {
- return ResourceManager.GetString("SyncingComplete", resourceCulture);
- }
- }
-
- public static string SyncingFailed {
- get {
- return ResourceManager.GetString("SyncingFailed", resourceCulture);
- }
- }
-
- public static string SyncVaultNow {
- get {
- return ResourceManager.GetString("SyncVaultNow", resourceCulture);
- }
- }
-
- public static string TouchID {
- get {
- return ResourceManager.GetString("TouchID", resourceCulture);
- }
- }
-
- public static string TwoStepLogin {
- get {
- return ResourceManager.GetString("TwoStepLogin", resourceCulture);
- }
- }
-
- public static string TwoStepLoginConfirmation {
- get {
- return ResourceManager.GetString("TwoStepLoginConfirmation", resourceCulture);
- }
- }
-
- public static string UnlockWith {
- get {
- return ResourceManager.GetString("UnlockWith", resourceCulture);
- }
- }
-
- public static string UnlockWithPIN {
- get {
- return ResourceManager.GetString("UnlockWithPIN", resourceCulture);
- }
- }
-
- public static string Validating {
- get {
- return ResourceManager.GetString("Validating", resourceCulture);
- }
- }
-
- public static string VerificationCode {
- get {
- return ResourceManager.GetString("VerificationCode", resourceCulture);
- }
- }
-
- public static string ViewItem {
- get {
- return ResourceManager.GetString("ViewItem", resourceCulture);
- }
- }
-
- public static string WebVault {
- get {
- return ResourceManager.GetString("WebVault", resourceCulture);
- }
- }
-
- public static string Lost2FAApp {
- get {
- return ResourceManager.GetString("Lost2FAApp", resourceCulture);
- }
- }
-
- public static string Items {
- get {
- return ResourceManager.GetString("Items", resourceCulture);
- }
- }
-
- public static string ExtensionActivated {
- get {
- return ResourceManager.GetString("ExtensionActivated", resourceCulture);
- }
- }
-
- public static string Icons {
- get {
- return ResourceManager.GetString("Icons", resourceCulture);
- }
- }
-
- public static string Translations {
- get {
- return ResourceManager.GetString("Translations", resourceCulture);
- }
- }
-
- public static string ItemsForUri {
- get {
- return ResourceManager.GetString("ItemsForUri", resourceCulture);
- }
- }
-
- public static string NoItemsForUri {
- get {
- return ResourceManager.GetString("NoItemsForUri", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceOverlay {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceOverlay", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceNotificationContent {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceNotificationContent", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceOpenAccessibilitySettings {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceOpenAccessibilitySettings", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceStep1 {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceStep1", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceStep2 {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceStep2", resourceCulture);
- }
- }
-
- public static string Disabled {
- get {
- return ResourceManager.GetString("Disabled", resourceCulture);
- }
- }
-
- public static string Enabled {
- get {
- return ResourceManager.GetString("Enabled", resourceCulture);
- }
- }
-
- public static string Off {
- get {
- return ResourceManager.GetString("Off", resourceCulture);
- }
- }
-
- public static string On {
- get {
- return ResourceManager.GetString("On", resourceCulture);
- }
- }
-
- public static string Status {
- get {
- return ResourceManager.GetString("Status", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceAlert2 {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceAlert2", resourceCulture);
- }
- }
-
- public static string Autofill {
- get {
- return ResourceManager.GetString("Autofill", resourceCulture);
- }
- }
-
- public static string AutofillOrView {
- get {
- return ResourceManager.GetString("AutofillOrView", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceMatchConfirm {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceMatchConfirm", resourceCulture);
- }
- }
-
- public static string MatchingItems {
- get {
- return ResourceManager.GetString("MatchingItems", resourceCulture);
- }
- }
-
- public static string PossibleMatchingItems {
- get {
- return ResourceManager.GetString("PossibleMatchingItems", resourceCulture);
- }
- }
-
- public static string Search {
- get {
- return ResourceManager.GetString("Search", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceSearch {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceSearch", resourceCulture);
- }
- }
-
- public static string LearnOrg {
- get {
- return ResourceManager.GetString("LearnOrg", resourceCulture);
- }
- }
-
- public static string CannotOpenApp {
- get {
- return ResourceManager.GetString("CannotOpenApp", resourceCulture);
- }
- }
-
- public static string AuthenticatorAppTitle {
- get {
- return ResourceManager.GetString("AuthenticatorAppTitle", resourceCulture);
- }
- }
-
- public static string EnterVerificationCodeApp {
- get {
- return ResourceManager.GetString("EnterVerificationCodeApp", resourceCulture);
- }
- }
-
- public static string EnterVerificationCodeEmail {
- get {
- return ResourceManager.GetString("EnterVerificationCodeEmail", resourceCulture);
- }
- }
-
- public static string LoginUnavailable {
- get {
- return ResourceManager.GetString("LoginUnavailable", resourceCulture);
- }
- }
-
- public static string NoTwoStepAvailable {
- get {
- return ResourceManager.GetString("NoTwoStepAvailable", resourceCulture);
- }
- }
-
- public static string RecoveryCodeTitle {
- get {
- return ResourceManager.GetString("RecoveryCodeTitle", resourceCulture);
- }
- }
-
- public static string RememberMe {
- get {
- return ResourceManager.GetString("RememberMe", resourceCulture);
- }
- }
-
- public static string SendVerificationCodeAgain {
- get {
- return ResourceManager.GetString("SendVerificationCodeAgain", resourceCulture);
- }
- }
-
- public static string TwoStepLoginOptions {
- get {
- return ResourceManager.GetString("TwoStepLoginOptions", resourceCulture);
- }
- }
-
- public static string UseAnotherTwoStepMethod {
- get {
- return ResourceManager.GetString("UseAnotherTwoStepMethod", resourceCulture);
- }
- }
-
- public static string VerificationEmailNotSent {
- get {
- return ResourceManager.GetString("VerificationEmailNotSent", resourceCulture);
- }
- }
-
- public static string VerificationEmailSent {
- get {
- return ResourceManager.GetString("VerificationEmailSent", resourceCulture);
- }
- }
-
- public static string YubiKeyInstruction {
- get {
- return ResourceManager.GetString("YubiKeyInstruction", resourceCulture);
- }
- }
-
- public static string YubiKeyTitle {
- get {
- return ResourceManager.GetString("YubiKeyTitle", resourceCulture);
- }
- }
-
- public static string AddNewAttachment {
- get {
- return ResourceManager.GetString("AddNewAttachment", resourceCulture);
- }
- }
-
- public static string Attachments {
- get {
- return ResourceManager.GetString("Attachments", resourceCulture);
- }
- }
-
- public static string UnableToDownloadFile {
- get {
- return ResourceManager.GetString("UnableToDownloadFile", resourceCulture);
- }
- }
-
- public static string UnableToOpenFile {
- get {
- return ResourceManager.GetString("UnableToOpenFile", resourceCulture);
- }
- }
-
- public static string Downloading {
- get {
- return ResourceManager.GetString("Downloading", resourceCulture);
- }
- }
-
- public static string AttachmentLargeWarning {
- get {
- return ResourceManager.GetString("AttachmentLargeWarning", resourceCulture);
- }
- }
-
- public static string AuthenticatorKey {
- get {
- return ResourceManager.GetString("AuthenticatorKey", resourceCulture);
- }
- }
-
- public static string VerificationCodeTotp {
- get {
- return ResourceManager.GetString("VerificationCodeTotp", resourceCulture);
- }
- }
-
- public static string AuthenticatorKeyAdded {
- get {
- return ResourceManager.GetString("AuthenticatorKeyAdded", resourceCulture);
- }
- }
-
- public static string AuthenticatorKeyReadError {
- get {
- return ResourceManager.GetString("AuthenticatorKeyReadError", resourceCulture);
- }
- }
-
- public static string PointYourCameraAtTheQRCode {
- get {
- return ResourceManager.GetString("PointYourCameraAtTheQRCode", resourceCulture);
- }
- }
-
- public static string ScanQrTitle {
- get {
- return ResourceManager.GetString("ScanQrTitle", resourceCulture);
- }
- }
-
- public static string Camera {
- get {
- return ResourceManager.GetString("Camera", resourceCulture);
- }
- }
-
- public static string Photos {
- get {
- return ResourceManager.GetString("Photos", resourceCulture);
- }
- }
-
- public static string CopyTotp {
- get {
- return ResourceManager.GetString("CopyTotp", resourceCulture);
- }
- }
-
- public static string CopyTotpAutomaticallyDescription {
- get {
- return ResourceManager.GetString("CopyTotpAutomaticallyDescription", resourceCulture);
- }
- }
-
- public static string CopyTotpAutomatically {
- get {
- return ResourceManager.GetString("CopyTotpAutomatically", resourceCulture);
- }
- }
-
- public static string PremiumRequired {
- get {
- return ResourceManager.GetString("PremiumRequired", resourceCulture);
- }
- }
-
- public static string AttachementAdded {
- get {
- return ResourceManager.GetString("AttachementAdded", resourceCulture);
- }
- }
-
- public static string AttachmentDeleted {
- get {
- return ResourceManager.GetString("AttachmentDeleted", resourceCulture);
- }
- }
-
- public static string ChooseFile {
- get {
- return ResourceManager.GetString("ChooseFile", resourceCulture);
- }
- }
-
- public static string File {
- get {
- return ResourceManager.GetString("File", resourceCulture);
- }
- }
-
- public static string NoFileChosen {
- get {
- return ResourceManager.GetString("NoFileChosen", resourceCulture);
- }
- }
-
- public static string NoAttachments {
- get {
- return ResourceManager.GetString("NoAttachments", resourceCulture);
- }
- }
-
- public static string FileSource {
- get {
- return ResourceManager.GetString("FileSource", resourceCulture);
- }
- }
-
- public static string FeatureUnavailable {
- get {
- return ResourceManager.GetString("FeatureUnavailable", resourceCulture);
- }
- }
-
- public static string MaxFileSize {
- get {
- return ResourceManager.GetString("MaxFileSize", resourceCulture);
- }
- }
-
- public static string UpdateKey {
- get {
- return ResourceManager.GetString("UpdateKey", resourceCulture);
- }
- }
-
- public static string LearnMore {
- get {
- return ResourceManager.GetString("LearnMore", resourceCulture);
- }
- }
-
- public static string ApiUrl {
- get {
- return ResourceManager.GetString("ApiUrl", resourceCulture);
- }
- }
-
- public static string CustomEnvironment {
- get {
- return ResourceManager.GetString("CustomEnvironment", resourceCulture);
- }
- }
-
- public static string CustomEnvironmentFooter {
- get {
- return ResourceManager.GetString("CustomEnvironmentFooter", resourceCulture);
- }
- }
-
- public static string EnvironmentSaved {
- get {
- return ResourceManager.GetString("EnvironmentSaved", resourceCulture);
- }
- }
-
- public static string FormattedIncorrectly {
- get {
- return ResourceManager.GetString("FormattedIncorrectly", resourceCulture);
- }
- }
-
- public static string IdentityUrl {
- get {
- return ResourceManager.GetString("IdentityUrl", resourceCulture);
- }
- }
-
- public static string SelfHostedEnvironment {
- get {
- return ResourceManager.GetString("SelfHostedEnvironment", resourceCulture);
- }
- }
-
- public static string SelfHostedEnvironmentFooter {
- get {
- return ResourceManager.GetString("SelfHostedEnvironmentFooter", resourceCulture);
- }
- }
-
- public static string ServerUrl {
- get {
- return ResourceManager.GetString("ServerUrl", resourceCulture);
- }
- }
-
- public static string WebVaultUrl {
- get {
- return ResourceManager.GetString("WebVaultUrl", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceNotificationContentOld {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceNotificationContentOld", resourceCulture);
- }
- }
-
- public static string CustomFields {
- get {
- return ResourceManager.GetString("CustomFields", resourceCulture);
- }
- }
-
- public static string CopyNumber {
- get {
- return ResourceManager.GetString("CopyNumber", resourceCulture);
- }
- }
-
- public static string CopySecurityCode {
- get {
- return ResourceManager.GetString("CopySecurityCode", resourceCulture);
- }
- }
-
- public static string Number {
- get {
- return ResourceManager.GetString("Number", resourceCulture);
- }
- }
-
- public static string SecurityCode {
- get {
- return ResourceManager.GetString("SecurityCode", resourceCulture);
- }
- }
-
- public static string TypeCard {
- get {
- return ResourceManager.GetString("TypeCard", resourceCulture);
- }
- }
-
- public static string TypeIdentity {
- get {
- return ResourceManager.GetString("TypeIdentity", resourceCulture);
- }
- }
-
- public static string TypeLogin {
- get {
- return ResourceManager.GetString("TypeLogin", resourceCulture);
- }
- }
-
- public static string TypeSecureNote {
- get {
- return ResourceManager.GetString("TypeSecureNote", resourceCulture);
- }
- }
-
- public static string Address1 {
- get {
- return ResourceManager.GetString("Address1", resourceCulture);
- }
- }
-
- public static string Address2 {
- get {
- return ResourceManager.GetString("Address2", resourceCulture);
- }
- }
-
- public static string Address3 {
- get {
- return ResourceManager.GetString("Address3", resourceCulture);
- }
- }
-
- public static string April {
- get {
- return ResourceManager.GetString("April", resourceCulture);
- }
- }
-
- public static string August {
- get {
- return ResourceManager.GetString("August", resourceCulture);
- }
- }
-
- public static string Brand {
- get {
- return ResourceManager.GetString("Brand", resourceCulture);
- }
- }
-
- public static string CardholderName {
- get {
- return ResourceManager.GetString("CardholderName", resourceCulture);
- }
- }
-
- public static string CityTown {
- get {
- return ResourceManager.GetString("CityTown", resourceCulture);
- }
- }
-
- public static string Company {
- get {
- return ResourceManager.GetString("Company", resourceCulture);
- }
- }
-
- public static string Country {
- get {
- return ResourceManager.GetString("Country", resourceCulture);
- }
- }
-
- public static string December {
- get {
- return ResourceManager.GetString("December", resourceCulture);
- }
- }
-
- public static string Dr {
- get {
- return ResourceManager.GetString("Dr", resourceCulture);
- }
- }
-
- public static string ExpirationMonth {
- get {
- return ResourceManager.GetString("ExpirationMonth", resourceCulture);
- }
- }
-
- public static string ExpirationYear {
- get {
- return ResourceManager.GetString("ExpirationYear", resourceCulture);
- }
- }
-
- public static string February {
- get {
- return ResourceManager.GetString("February", resourceCulture);
- }
- }
-
- public static string FirstName {
- get {
- return ResourceManager.GetString("FirstName", resourceCulture);
- }
- }
-
- public static string January {
- get {
- return ResourceManager.GetString("January", resourceCulture);
- }
- }
-
- public static string July {
- get {
- return ResourceManager.GetString("July", resourceCulture);
- }
- }
-
- public static string June {
- get {
- return ResourceManager.GetString("June", resourceCulture);
- }
- }
-
- public static string LastName {
- get {
- return ResourceManager.GetString("LastName", resourceCulture);
- }
- }
-
- public static string FullName {
- get {
- return ResourceManager.GetString("FullName", resourceCulture);
- }
- }
-
- public static string LicenseNumber {
- get {
- return ResourceManager.GetString("LicenseNumber", resourceCulture);
- }
- }
-
- public static string March {
- get {
- return ResourceManager.GetString("March", resourceCulture);
- }
- }
-
- public static string May {
- get {
- return ResourceManager.GetString("May", resourceCulture);
- }
- }
-
- public static string MiddleName {
- get {
- return ResourceManager.GetString("MiddleName", resourceCulture);
- }
- }
-
- public static string Mr {
- get {
- return ResourceManager.GetString("Mr", resourceCulture);
- }
- }
-
- public static string Mrs {
- get {
- return ResourceManager.GetString("Mrs", resourceCulture);
- }
- }
-
- public static string Ms {
- get {
- return ResourceManager.GetString("Ms", resourceCulture);
- }
- }
-
- public static string November {
- get {
- return ResourceManager.GetString("November", resourceCulture);
- }
- }
-
- public static string October {
- get {
- return ResourceManager.GetString("October", resourceCulture);
- }
- }
-
- public static string PassportNumber {
- get {
- return ResourceManager.GetString("PassportNumber", resourceCulture);
- }
- }
-
- public static string Phone {
- get {
- return ResourceManager.GetString("Phone", resourceCulture);
- }
- }
-
- public static string September {
- get {
- return ResourceManager.GetString("September", resourceCulture);
- }
- }
-
- public static string SSN {
- get {
- return ResourceManager.GetString("SSN", resourceCulture);
- }
- }
-
- public static string StateProvince {
- get {
- return ResourceManager.GetString("StateProvince", resourceCulture);
- }
- }
-
- public static string Title {
- get {
- return ResourceManager.GetString("Title", resourceCulture);
- }
- }
-
- public static string ZipPostalCode {
- get {
- return ResourceManager.GetString("ZipPostalCode", resourceCulture);
- }
- }
-
- public static string Address {
- get {
- return ResourceManager.GetString("Address", resourceCulture);
- }
- }
-
- public static string Expiration {
- get {
- return ResourceManager.GetString("Expiration", resourceCulture);
- }
- }
-
- public static string ShowWebsiteIcons {
- get {
- return ResourceManager.GetString("ShowWebsiteIcons", resourceCulture);
- }
- }
-
- public static string ShowWebsiteIconsDescription {
- get {
- return ResourceManager.GetString("ShowWebsiteIconsDescription", resourceCulture);
- }
- }
-
- public static string IconsUrl {
- get {
- return ResourceManager.GetString("IconsUrl", resourceCulture);
- }
- }
-
- public static string AutofillWithBitwarden {
- get {
- return ResourceManager.GetString("AutofillWithBitwarden", resourceCulture);
- }
- }
-
- public static string VaultIsLocked {
- get {
- return ResourceManager.GetString("VaultIsLocked", resourceCulture);
- }
- }
-
- public static string GoToMyVault {
- get {
- return ResourceManager.GetString("GoToMyVault", resourceCulture);
- }
- }
-
- public static string Collections {
- get {
- return ResourceManager.GetString("Collections", resourceCulture);
- }
- }
-
- public static string NoItemsCollection {
- get {
- return ResourceManager.GetString("NoItemsCollection", resourceCulture);
- }
- }
-
- public static string NoItemsFolder {
- get {
- return ResourceManager.GetString("NoItemsFolder", resourceCulture);
- }
- }
-
- public static string NoItemsTrash {
- get {
- return ResourceManager.GetString("NoItemsTrash", resourceCulture);
- }
- }
-
- public static string AutofillAccessibilityService {
- get {
- return ResourceManager.GetString("AutofillAccessibilityService", resourceCulture);
- }
- }
-
- public static string AutofillServiceDescription {
- get {
- return ResourceManager.GetString("AutofillServiceDescription", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceDescription {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceDescription", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceOpenAutofillSettings {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceOpenAutofillSettings", resourceCulture);
- }
- }
-
- public static string FaceID {
- get {
- return ResourceManager.GetString("FaceID", resourceCulture);
- }
- }
-
- public static string FaceIDDirection {
- get {
- return ResourceManager.GetString("FaceIDDirection", resourceCulture);
- }
- }
-
- public static string UseFaceIDToUnlock {
- get {
- return ResourceManager.GetString("UseFaceIDToUnlock", resourceCulture);
- }
- }
-
- public static string VerifyFaceID {
- get {
- return ResourceManager.GetString("VerifyFaceID", resourceCulture);
- }
- }
-
- public static string WindowsHello {
- get {
- return ResourceManager.GetString("WindowsHello", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillGoToSettings {
- get {
- return ResourceManager.GetString("BitwardenAutofillGoToSettings", resourceCulture);
- }
- }
-
- public static string CustomFieldName {
- get {
- return ResourceManager.GetString("CustomFieldName", resourceCulture);
- }
- }
-
- public static string FieldTypeBoolean {
- get {
- return ResourceManager.GetString("FieldTypeBoolean", resourceCulture);
- }
- }
-
- public static string FieldTypeHidden {
- get {
- return ResourceManager.GetString("FieldTypeHidden", resourceCulture);
- }
- }
-
- public static string FieldTypeLinked {
- get {
- return ResourceManager.GetString("FieldTypeLinked", resourceCulture);
- }
- }
-
- public static string FieldTypeText {
- get {
- return ResourceManager.GetString("FieldTypeText", resourceCulture);
- }
- }
-
- public static string NewCustomField {
- get {
- return ResourceManager.GetString("NewCustomField", resourceCulture);
- }
- }
-
- public static string SelectTypeField {
- get {
- return ResourceManager.GetString("SelectTypeField", resourceCulture);
- }
- }
-
- public static string Remove {
- get {
- return ResourceManager.GetString("Remove", resourceCulture);
- }
- }
-
- public static string NewUri {
- get {
- return ResourceManager.GetString("NewUri", resourceCulture);
- }
- }
-
- public static string URIPosition {
- get {
- return ResourceManager.GetString("URIPosition", resourceCulture);
- }
- }
-
- public static string BaseDomain {
- get {
- return ResourceManager.GetString("BaseDomain", resourceCulture);
- }
- }
-
- public static string Default {
- get {
- return ResourceManager.GetString("Default", resourceCulture);
- }
- }
-
- public static string Exact {
- get {
- return ResourceManager.GetString("Exact", resourceCulture);
- }
- }
-
- public static string Host {
- get {
- return ResourceManager.GetString("Host", resourceCulture);
- }
- }
-
- public static string RegEx {
- get {
- return ResourceManager.GetString("RegEx", resourceCulture);
- }
- }
-
- public static string StartsWith {
- get {
- return ResourceManager.GetString("StartsWith", resourceCulture);
- }
- }
-
- public static string URIMatchDetection {
- get {
- return ResourceManager.GetString("URIMatchDetection", resourceCulture);
- }
- }
-
- public static string MatchDetection {
- get {
- return ResourceManager.GetString("MatchDetection", resourceCulture);
- }
- }
-
- public static string YesAndSave {
- get {
- return ResourceManager.GetString("YesAndSave", resourceCulture);
- }
- }
-
- public static string AutofillAndSave {
- get {
- return ResourceManager.GetString("AutofillAndSave", resourceCulture);
- }
- }
-
- public static string Organization {
- get {
- return ResourceManager.GetString("Organization", resourceCulture);
- }
- }
-
- public static string HoldYubikeyNearTop {
- get {
- return ResourceManager.GetString("HoldYubikeyNearTop", resourceCulture);
- }
- }
-
- public static string TryAgain {
- get {
- return ResourceManager.GetString("TryAgain", resourceCulture);
- }
- }
-
- public static string YubiKeyInstructionIos {
- get {
- return ResourceManager.GetString("YubiKeyInstructionIos", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillAccessibilityServiceDescription2 {
- get {
- return ResourceManager.GetString("BitwardenAutofillAccessibilityServiceDescription2", resourceCulture);
- }
- }
-
- public static string DatePasswordUpdated {
- get {
- return ResourceManager.GetString("DatePasswordUpdated", resourceCulture);
- }
- }
-
- public static string DateUpdated {
- get {
- return ResourceManager.GetString("DateUpdated", resourceCulture);
- }
- }
-
- public static string AutofillActivated {
- get {
- return ResourceManager.GetString("AutofillActivated", resourceCulture);
- }
- }
-
- public static string MustLogInMainAppAutofill {
- get {
- return ResourceManager.GetString("MustLogInMainAppAutofill", resourceCulture);
- }
- }
-
- public static string AutofillSetup {
- get {
- return ResourceManager.GetString("AutofillSetup", resourceCulture);
- }
- }
-
- public static string AutofillSetup2 {
- get {
- return ResourceManager.GetString("AutofillSetup2", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillDescription {
- get {
- return ResourceManager.GetString("BitwardenAutofillDescription", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn {
- get {
- return ResourceManager.GetString("AutofillTurnOn", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn1 {
- get {
- return ResourceManager.GetString("AutofillTurnOn1", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn2 {
- get {
- return ResourceManager.GetString("AutofillTurnOn2", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn3 {
- get {
- return ResourceManager.GetString("AutofillTurnOn3", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn4 {
- get {
- return ResourceManager.GetString("AutofillTurnOn4", resourceCulture);
- }
- }
-
- public static string AutofillTurnOn5 {
- get {
- return ResourceManager.GetString("AutofillTurnOn5", resourceCulture);
- }
- }
-
- public static string PasswordAutofill {
- get {
- return ResourceManager.GetString("PasswordAutofill", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillAlert2 {
- get {
- return ResourceManager.GetString("BitwardenAutofillAlert2", resourceCulture);
- }
- }
-
- public static string InvalidEmail {
- get {
- return ResourceManager.GetString("InvalidEmail", resourceCulture);
- }
- }
-
- public static string Cards {
- get {
- return ResourceManager.GetString("Cards", resourceCulture);
- }
- }
-
- public static string Identities {
- get {
- return ResourceManager.GetString("Identities", resourceCulture);
- }
- }
-
- public static string Logins {
- get {
- return ResourceManager.GetString("Logins", resourceCulture);
- }
- }
-
- public static string SecureNotes {
- get {
- return ResourceManager.GetString("SecureNotes", resourceCulture);
- }
- }
-
- public static string AllItems {
- get {
- return ResourceManager.GetString("AllItems", resourceCulture);
- }
- }
-
- public static string URIs {
- get {
- return ResourceManager.GetString("URIs", resourceCulture);
- }
- }
-
- public static string CheckingPassword {
- get {
- return ResourceManager.GetString("CheckingPassword", resourceCulture);
- }
- }
-
- public static string CheckPassword {
- get {
- return ResourceManager.GetString("CheckPassword", resourceCulture);
- }
- }
-
- public static string PasswordExposed {
- get {
- return ResourceManager.GetString("PasswordExposed", resourceCulture);
- }
- }
-
- public static string PasswordSafe {
- get {
- return ResourceManager.GetString("PasswordSafe", resourceCulture);
- }
- }
-
- public static string IdentityName {
- get {
- return ResourceManager.GetString("IdentityName", resourceCulture);
- }
- }
-
- public static string Value {
- get {
- return ResourceManager.GetString("Value", resourceCulture);
- }
- }
-
- public static string PasswordHistory {
- get {
- return ResourceManager.GetString("PasswordHistory", resourceCulture);
- }
- }
-
- public static string Types {
- get {
- return ResourceManager.GetString("Types", resourceCulture);
- }
- }
-
- public static string NoPasswordsToList {
- get {
- return ResourceManager.GetString("NoPasswordsToList", resourceCulture);
- }
- }
-
- public static string NoItemsToList {
- get {
- return ResourceManager.GetString("NoItemsToList", resourceCulture);
- }
- }
-
- public static string SearchCollection {
- get {
- return ResourceManager.GetString("SearchCollection", resourceCulture);
- }
- }
-
- public static string SearchFileSends {
- get {
- return ResourceManager.GetString("SearchFileSends", resourceCulture);
- }
- }
-
- public static string SearchTextSends {
- get {
- return ResourceManager.GetString("SearchTextSends", resourceCulture);
- }
- }
-
- public static string SearchGroup {
- get {
- return ResourceManager.GetString("SearchGroup", resourceCulture);
- }
- }
-
- public static string Type {
- get {
- return ResourceManager.GetString("Type", resourceCulture);
- }
- }
-
- public static string MoveDown {
- get {
- return ResourceManager.GetString("MoveDown", resourceCulture);
- }
- }
-
- public static string MoveUp {
- get {
- return ResourceManager.GetString("MoveUp", resourceCulture);
- }
- }
-
- public static string Miscellaneous {
- get {
- return ResourceManager.GetString("Miscellaneous", resourceCulture);
- }
- }
-
- public static string Ownership {
- get {
- return ResourceManager.GetString("Ownership", resourceCulture);
- }
- }
-
- public static string WhoOwnsThisItem {
- get {
- return ResourceManager.GetString("WhoOwnsThisItem", resourceCulture);
- }
- }
-
- public static string NoCollectionsToList {
- get {
- return ResourceManager.GetString("NoCollectionsToList", resourceCulture);
- }
- }
-
- public static string MovedItemToOrg {
- get {
- return ResourceManager.GetString("MovedItemToOrg", resourceCulture);
- }
- }
-
- public static string ItemShared {
- get {
- return ResourceManager.GetString("ItemShared", resourceCulture);
- }
- }
-
- public static string SelectOneCollection {
- get {
- return ResourceManager.GetString("SelectOneCollection", resourceCulture);
- }
- }
-
- public static string Share {
- get {
- return ResourceManager.GetString("Share", resourceCulture);
- }
- }
-
- public static string ShareItem {
- get {
- return ResourceManager.GetString("ShareItem", resourceCulture);
- }
- }
-
- public static string MoveToOrganization {
- get {
- return ResourceManager.GetString("MoveToOrganization", resourceCulture);
- }
- }
-
- public static string NoOrgsToList {
- get {
- return ResourceManager.GetString("NoOrgsToList", resourceCulture);
- }
- }
-
- public static string MoveToOrgDesc {
- get {
- return ResourceManager.GetString("MoveToOrgDesc", resourceCulture);
- }
- }
-
- public static string NumberOfWords {
- get {
- return ResourceManager.GetString("NumberOfWords", resourceCulture);
- }
- }
-
- public static string Passphrase {
- get {
- return ResourceManager.GetString("Passphrase", resourceCulture);
- }
- }
-
- public static string WordSeparator {
- get {
- return ResourceManager.GetString("WordSeparator", resourceCulture);
- }
- }
-
- public static string Clear {
- get {
- return ResourceManager.GetString("Clear", resourceCulture);
- }
- }
-
- public static string Generator {
- get {
- return ResourceManager.GetString("Generator", resourceCulture);
- }
- }
-
- public static string NoFoldersToList {
- get {
- return ResourceManager.GetString("NoFoldersToList", resourceCulture);
- }
- }
-
- public static string FingerprintPhrase {
- get {
- return ResourceManager.GetString("FingerprintPhrase", resourceCulture);
- }
- }
-
- public static string YourAccountsFingerprint {
- get {
- return ResourceManager.GetString("YourAccountsFingerprint", resourceCulture);
- }
- }
-
- public static string LearnOrgConfirmation {
- get {
- return ResourceManager.GetString("LearnOrgConfirmation", resourceCulture);
- }
- }
-
- public static string ExportVault {
- get {
- return ResourceManager.GetString("ExportVault", resourceCulture);
- }
- }
-
- public static string LockNow {
- get {
- return ResourceManager.GetString("LockNow", resourceCulture);
- }
- }
-
- public static string PIN {
- get {
- return ResourceManager.GetString("PIN", resourceCulture);
- }
- }
-
- public static string Unlock {
- get {
- return ResourceManager.GetString("Unlock", resourceCulture);
- }
- }
-
- public static string UnlockVault {
- get {
- return ResourceManager.GetString("UnlockVault", resourceCulture);
- }
- }
-
- public static string ThirtyMinutes {
- get {
- return ResourceManager.GetString("ThirtyMinutes", resourceCulture);
- }
- }
-
- public static string SetPINDescription {
- get {
- return ResourceManager.GetString("SetPINDescription", resourceCulture);
- }
- }
-
- public static string LoggedInAsOn {
- get {
- return ResourceManager.GetString("LoggedInAsOn", resourceCulture);
- }
- }
-
- public static string VaultLockedMasterPassword {
- get {
- return ResourceManager.GetString("VaultLockedMasterPassword", resourceCulture);
- }
- }
-
- public static string VaultLockedPIN {
- get {
- return ResourceManager.GetString("VaultLockedPIN", resourceCulture);
- }
- }
-
- public static string VaultLockedIdentity {
- get {
- return ResourceManager.GetString("VaultLockedIdentity", resourceCulture);
- }
- }
-
- public static string Dark {
- get {
- return ResourceManager.GetString("Dark", resourceCulture);
- }
- }
-
- public static string Light {
- get {
- return ResourceManager.GetString("Light", resourceCulture);
- }
- }
-
- public static string FiveMinutes {
- get {
- return ResourceManager.GetString("FiveMinutes", resourceCulture);
- }
- }
-
- public static string TenSeconds {
- get {
- return ResourceManager.GetString("TenSeconds", resourceCulture);
- }
- }
-
- public static string ThirtySeconds {
- get {
- return ResourceManager.GetString("ThirtySeconds", resourceCulture);
- }
- }
-
- public static string TwentySeconds {
- get {
- return ResourceManager.GetString("TwentySeconds", resourceCulture);
- }
- }
-
- public static string TwoMinutes {
- get {
- return ResourceManager.GetString("TwoMinutes", resourceCulture);
- }
- }
-
- public static string ClearClipboard {
- get {
- return ResourceManager.GetString("ClearClipboard", resourceCulture);
- }
- }
-
- public static string ClearClipboardDescription {
- get {
- return ResourceManager.GetString("ClearClipboardDescription", resourceCulture);
- }
- }
-
- public static string DefaultUriMatchDetection {
- get {
- return ResourceManager.GetString("DefaultUriMatchDetection", resourceCulture);
- }
- }
-
- public static string DefaultUriMatchDetectionDescription {
- get {
- return ResourceManager.GetString("DefaultUriMatchDetectionDescription", resourceCulture);
- }
- }
-
- public static string Theme {
- get {
- return ResourceManager.GetString("Theme", resourceCulture);
- }
- }
-
- public static string ThemeDescription {
- get {
- return ResourceManager.GetString("ThemeDescription", resourceCulture);
- }
- }
-
- public static string ThemeDefault {
- get {
- return ResourceManager.GetString("ThemeDefault", resourceCulture);
- }
- }
-
- public static string DefaultDarkTheme {
- get {
- return ResourceManager.GetString("DefaultDarkTheme", resourceCulture);
- }
- }
-
- public static string DefaultDarkThemeDescription {
- get {
- return ResourceManager.GetString("DefaultDarkThemeDescription", resourceCulture);
- }
- }
-
- public static string CopyNotes {
- get {
- return ResourceManager.GetString("CopyNotes", resourceCulture);
- }
- }
-
- public static string Exit {
- get {
- return ResourceManager.GetString("Exit", resourceCulture);
- }
- }
-
- public static string ExitConfirmation {
- get {
- return ResourceManager.GetString("ExitConfirmation", resourceCulture);
- }
- }
-
- public static string PINRequireMasterPasswordRestart {
- get {
- return ResourceManager.GetString("PINRequireMasterPasswordRestart", resourceCulture);
- }
- }
-
- public static string Black {
- get {
- return ResourceManager.GetString("Black", resourceCulture);
- }
- }
-
- public static string Nord {
- get {
- return ResourceManager.GetString("Nord", resourceCulture);
- }
- }
-
- public static string AutofillBlockedUris {
- get {
- return ResourceManager.GetString("AutofillBlockedUris", resourceCulture);
- }
- }
-
- public static string AutofillBlockedUrisDescription {
- get {
- return ResourceManager.GetString("AutofillBlockedUrisDescription", resourceCulture);
- }
- }
-
- public static string AskToAddLogin {
- get {
- return ResourceManager.GetString("AskToAddLogin", resourceCulture);
- }
- }
-
- public static string AskToAddLoginDescription {
- get {
- return ResourceManager.GetString("AskToAddLoginDescription", resourceCulture);
- }
- }
-
- public static string OnRestart {
- get {
- return ResourceManager.GetString("OnRestart", resourceCulture);
- }
- }
-
- public static string AutofillServiceNotEnabled {
- get {
- return ResourceManager.GetString("AutofillServiceNotEnabled", resourceCulture);
- }
- }
-
- public static string ThemeAppliedOnRestart {
- get {
- return ResourceManager.GetString("ThemeAppliedOnRestart", resourceCulture);
- }
- }
-
- public static string Capitalize {
- get {
- return ResourceManager.GetString("Capitalize", resourceCulture);
- }
- }
-
- public static string IncludeNumber {
- get {
- return ResourceManager.GetString("IncludeNumber", resourceCulture);
- }
- }
-
- public static string Download {
- get {
- return ResourceManager.GetString("Download", resourceCulture);
- }
- }
-
- public static string Shared {
- get {
- return ResourceManager.GetString("Shared", resourceCulture);
- }
- }
-
- public static string ToggleVisibility {
- get {
- return ResourceManager.GetString("ToggleVisibility", resourceCulture);
- }
- }
-
- public static string LoginExpired {
- get {
- return ResourceManager.GetString("LoginExpired", resourceCulture);
- }
- }
-
- public static string BiometricsDirection {
- get {
- return ResourceManager.GetString("BiometricsDirection", resourceCulture);
- }
- }
-
- public static string Biometrics {
- get {
- return ResourceManager.GetString("Biometrics", resourceCulture);
- }
- }
-
- public static string UseBiometricsToUnlock {
- get {
- return ResourceManager.GetString("UseBiometricsToUnlock", resourceCulture);
- }
- }
-
- public static string AccessibilityOverlayPermissionAlert {
- get {
- return ResourceManager.GetString("AccessibilityOverlayPermissionAlert", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceOverlayPermission {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceOverlayPermission", resourceCulture);
- }
- }
-
- public static string OverlayPermission {
- get {
- return ResourceManager.GetString("OverlayPermission", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceOpenOverlayPermissionSettings {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceOpenOverlayPermissionSettings", resourceCulture);
- }
- }
-
- public static string BitwardenAutofillServiceStep3 {
- get {
- return ResourceManager.GetString("BitwardenAutofillServiceStep3", resourceCulture);
- }
- }
-
- public static string Denied {
- get {
- return ResourceManager.GetString("Denied", resourceCulture);
- }
- }
-
- public static string Granted {
- get {
- return ResourceManager.GetString("Granted", resourceCulture);
- }
- }
-
- public static string FileFormat {
- get {
- return ResourceManager.GetString("FileFormat", resourceCulture);
- }
- }
-
- public static string ExportVaultMasterPasswordDescription {
- get {
- return ResourceManager.GetString("ExportVaultMasterPasswordDescription", resourceCulture);
- }
- }
-
- public static string SendVerificationCodeToEmail {
- get {
- return ResourceManager.GetString("SendVerificationCodeToEmail", resourceCulture);
- }
- }
-
- public static string CodeSent {
- get {
- return ResourceManager.GetString("CodeSent", resourceCulture);
- }
- }
-
- public static string ConfirmYourIdentity {
- get {
- return ResourceManager.GetString("ConfirmYourIdentity", resourceCulture);
- }
- }
-
- public static string ExportVaultWarning {
- get {
- return ResourceManager.GetString("ExportVaultWarning", resourceCulture);
- }
- }
-
- public static string EncExportKeyWarning {
- get {
- return ResourceManager.GetString("EncExportKeyWarning", resourceCulture);
- }
- }
-
- public static string EncExportAccountWarning {
- get {
- return ResourceManager.GetString("EncExportAccountWarning", resourceCulture);
- }
- }
-
- public static string ExportVaultConfirmationTitle {
- get {
- return ResourceManager.GetString("ExportVaultConfirmationTitle", resourceCulture);
- }
- }
-
- public static string Warning {
- get {
- return ResourceManager.GetString("Warning", resourceCulture);
- }
- }
-
- public static string ExportVaultFailure {
- get {
- return ResourceManager.GetString("ExportVaultFailure", resourceCulture);
- }
- }
-
- public static string ExportVaultSuccess {
- get {
- return ResourceManager.GetString("ExportVaultSuccess", resourceCulture);
- }
- }
-
- public static string Clone {
- get {
- return ResourceManager.GetString("Clone", resourceCulture);
- }
- }
-
- public static string PasswordGeneratorPolicyInEffect {
- get {
- return ResourceManager.GetString("PasswordGeneratorPolicyInEffect", resourceCulture);
- }
- }
-
- public static string Open {
- get {
- return ResourceManager.GetString("Open", resourceCulture);
- }
- }
-
- public static string UnableToSaveAttachment {
- get {
- return ResourceManager.GetString("UnableToSaveAttachment", resourceCulture);
- }
- }
-
- public static string SaveAttachmentSuccess {
- get {
- return ResourceManager.GetString("SaveAttachmentSuccess", resourceCulture);
- }
- }
-
- public static string AutofillTileAccessibilityRequired {
- get {
- return ResourceManager.GetString("AutofillTileAccessibilityRequired", resourceCulture);
- }
- }
-
- public static string AutofillTileUriNotFound {
- get {
- return ResourceManager.GetString("AutofillTileUriNotFound", resourceCulture);
- }
- }
-
- public static string SoftDeleting {
- get {
- return ResourceManager.GetString("SoftDeleting", resourceCulture);
- }
- }
-
- public static string ItemSoftDeleted {
- get {
- return ResourceManager.GetString("ItemSoftDeleted", resourceCulture);
- }
- }
-
- public static string Restore {
- get {
- return ResourceManager.GetString("Restore", resourceCulture);
- }
- }
-
- public static string Restoring {
- get {
- return ResourceManager.GetString("Restoring", resourceCulture);
- }
- }
-
- public static string ItemRestored {
- get {
- return ResourceManager.GetString("ItemRestored", resourceCulture);
- }
- }
-
- public static string Trash {
- get {
- return ResourceManager.GetString("Trash", resourceCulture);
- }
- }
-
- public static string SearchTrash {
- get {
- return ResourceManager.GetString("SearchTrash", resourceCulture);
- }
- }
-
- public static string DoYouReallyWantToPermanentlyDeleteCipher {
- get {
- return ResourceManager.GetString("DoYouReallyWantToPermanentlyDeleteCipher", resourceCulture);
- }
- }
-
- public static string DoYouReallyWantToRestoreCipher {
- get {
- return ResourceManager.GetString("DoYouReallyWantToRestoreCipher", resourceCulture);
- }
- }
-
- public static string DoYouReallyWantToSoftDeleteCipher {
- get {
- return ResourceManager.GetString("DoYouReallyWantToSoftDeleteCipher", resourceCulture);
- }
- }
-
- public static string BiometricInvalidated {
- get {
- return ResourceManager.GetString("BiometricInvalidated", resourceCulture);
- }
- }
-
- public static string BiometricInvalidatedExtension {
- get {
- return ResourceManager.GetString("BiometricInvalidatedExtension", resourceCulture);
- }
- }
-
- public static string EnableSyncOnRefresh {
- get {
- return ResourceManager.GetString("EnableSyncOnRefresh", resourceCulture);
- }
- }
-
- public static string EnableSyncOnRefreshDescription {
- get {
- return ResourceManager.GetString("EnableSyncOnRefreshDescription", resourceCulture);
- }
- }
-
- public static string LogInSso {
- get {
- return ResourceManager.GetString("LogInSso", resourceCulture);
- }
- }
-
- public static string LogInSsoSummary {
- get {
- return ResourceManager.GetString("LogInSsoSummary", resourceCulture);
- }
- }
-
- public static string OrgIdentifier {
- get {
- return ResourceManager.GetString("OrgIdentifier", resourceCulture);
- }
- }
-
- public static string LoginSsoError {
- get {
- return ResourceManager.GetString("LoginSsoError", resourceCulture);
- }
- }
-
- public static string SetMasterPassword {
- get {
- return ResourceManager.GetString("SetMasterPassword", resourceCulture);
- }
- }
-
- public static string SetMasterPasswordSummary {
- get {
- return ResourceManager.GetString("SetMasterPasswordSummary", resourceCulture);
- }
- }
-
- public static string MasterPasswordPolicyInEffect {
- get {
- return ResourceManager.GetString("MasterPasswordPolicyInEffect", resourceCulture);
- }
- }
-
- public static string PolicyInEffectMinComplexity {
- get {
- return ResourceManager.GetString("PolicyInEffectMinComplexity", resourceCulture);
- }
- }
-
- public static string PolicyInEffectMinLength {
- get {
- return ResourceManager.GetString("PolicyInEffectMinLength", resourceCulture);
- }
- }
-
- public static string PolicyInEffectUppercase {
- get {
- return ResourceManager.GetString("PolicyInEffectUppercase", resourceCulture);
- }
- }
-
- public static string PolicyInEffectLowercase {
- get {
- return ResourceManager.GetString("PolicyInEffectLowercase", resourceCulture);
- }
- }
-
- public static string PolicyInEffectNumbers {
- get {
- return ResourceManager.GetString("PolicyInEffectNumbers", resourceCulture);
- }
- }
-
- public static string PolicyInEffectSpecial {
- get {
- return ResourceManager.GetString("PolicyInEffectSpecial", resourceCulture);
- }
- }
-
- public static string MasterPasswordPolicyValidationTitle {
- get {
- return ResourceManager.GetString("MasterPasswordPolicyValidationTitle", resourceCulture);
- }
- }
-
- public static string MasterPasswordPolicyValidationMessage {
- get {
- return ResourceManager.GetString("MasterPasswordPolicyValidationMessage", resourceCulture);
- }
- }
-
- public static string Loading {
- get {
- return ResourceManager.GetString("Loading", resourceCulture);
- }
- }
-
- public static string AcceptPolicies {
- get {
- return ResourceManager.GetString("AcceptPolicies", resourceCulture);
- }
- }
-
- public static string AcceptPoliciesError {
- get {
- return ResourceManager.GetString("AcceptPoliciesError", resourceCulture);
- }
- }
-
- public static string TermsOfService {
- get {
- return ResourceManager.GetString("TermsOfService", resourceCulture);
- }
- }
-
- public static string PrivacyPolicy {
- get {
- return ResourceManager.GetString("PrivacyPolicy", resourceCulture);
- }
- }
-
- public static string AccessibilityDrawOverPermissionAlert {
- get {
- return ResourceManager.GetString("AccessibilityDrawOverPermissionAlert", resourceCulture);
- }
- }
-
- public static string AutofillServices {
- get {
- return ResourceManager.GetString("AutofillServices", resourceCulture);
- }
- }
-
- public static string InlineAutofill {
- get {
- return ResourceManager.GetString("InlineAutofill", resourceCulture);
- }
- }
-
- public static string InlineAutofillDescription {
- get {
- return ResourceManager.GetString("InlineAutofillDescription", resourceCulture);
- }
- }
-
- public static string Accessibility {
- get {
- return ResourceManager.GetString("Accessibility", resourceCulture);
- }
- }
-
- public static string AccessibilityDescription {
- get {
- return ResourceManager.GetString("AccessibilityDescription", resourceCulture);
- }
- }
-
- public static string AccessibilityDescription2 {
- get {
- return ResourceManager.GetString("AccessibilityDescription2", resourceCulture);
- }
- }
-
- public static string AccessibilityDescription3 {
- get {
- return ResourceManager.GetString("AccessibilityDescription3", resourceCulture);
- }
- }
-
- public static string AccessibilityDescription4 {
- get {
- return ResourceManager.GetString("AccessibilityDescription4", resourceCulture);
- }
- }
-
- public static string DrawOver {
- get {
- return ResourceManager.GetString("DrawOver", resourceCulture);
- }
- }
-
- public static string DrawOverDescription {
- get {
- return ResourceManager.GetString("DrawOverDescription", resourceCulture);
- }
- }
-
- public static string DrawOverDescription2 {
- get {
- return ResourceManager.GetString("DrawOverDescription2", resourceCulture);
- }
- }
-
- public static string DrawOverDescription3 {
- get {
- return ResourceManager.GetString("DrawOverDescription3", resourceCulture);
- }
- }
-
- public static string PersonalOwnershipSubmitError {
- get {
- return ResourceManager.GetString("PersonalOwnershipSubmitError", resourceCulture);
- }
- }
-
- public static string PersonalOwnershipPolicyInEffect {
- get {
- return ResourceManager.GetString("PersonalOwnershipPolicyInEffect", resourceCulture);
- }
- }
-
- public static string Send {
- get {
- return ResourceManager.GetString("Send", resourceCulture);
- }
- }
-
- public static string AllSends {
- get {
- return ResourceManager.GetString("AllSends", resourceCulture);
- }
- }
-
- public static string Sends {
- get {
- return ResourceManager.GetString("Sends", resourceCulture);
- }
- }
-
- public static string NameInfo {
- get {
- return ResourceManager.GetString("NameInfo", resourceCulture);
- }
- }
-
- public static string Text {
- get {
- return ResourceManager.GetString("Text", resourceCulture);
- }
- }
-
- public static string TypeText {
- get {
- return ResourceManager.GetString("TypeText", resourceCulture);
- }
- }
-
- public static string TypeTextInfo {
- get {
- return ResourceManager.GetString("TypeTextInfo", resourceCulture);
- }
- }
-
- public static string HideTextByDefault {
- get {
- return ResourceManager.GetString("HideTextByDefault", resourceCulture);
- }
- }
-
- public static string TypeFile {
- get {
- return ResourceManager.GetString("TypeFile", resourceCulture);
- }
- }
-
- public static string TypeFileInfo {
- get {
- return ResourceManager.GetString("TypeFileInfo", resourceCulture);
- }
- }
-
- public static string FileTypeIsSelected {
- get {
- return ResourceManager.GetString("FileTypeIsSelected", resourceCulture);
- }
- }
-
- public static string FileTypeIsNotSelected {
- get {
- return ResourceManager.GetString("FileTypeIsNotSelected", resourceCulture);
- }
- }
-
- public static string TextTypeIsSelected {
- get {
- return ResourceManager.GetString("TextTypeIsSelected", resourceCulture);
- }
- }
-
- public static string TextTypeIsNotSelected {
- get {
- return ResourceManager.GetString("TextTypeIsNotSelected", resourceCulture);
- }
- }
-
- public static string DeletionDate {
- get {
- return ResourceManager.GetString("DeletionDate", resourceCulture);
- }
- }
-
- public static string DeletionTime {
- get {
- return ResourceManager.GetString("DeletionTime", resourceCulture);
- }
- }
-
- public static string DeletionDateInfo {
- get {
- return ResourceManager.GetString("DeletionDateInfo", resourceCulture);
- }
- }
-
- public static string PendingDelete {
- get {
- return ResourceManager.GetString("PendingDelete", resourceCulture);
- }
- }
-
- public static string ExpirationDate {
- get {
- return ResourceManager.GetString("ExpirationDate", resourceCulture);
- }
- }
-
- public static string ExpirationTime {
- get {
- return ResourceManager.GetString("ExpirationTime", resourceCulture);
- }
- }
-
- public static string ExpirationDateInfo {
- get {
- return ResourceManager.GetString("ExpirationDateInfo", resourceCulture);
- }
- }
-
- public static string Expired {
- get {
- return ResourceManager.GetString("Expired", resourceCulture);
- }
- }
-
- public static string MaximumAccessCount {
- get {
- return ResourceManager.GetString("MaximumAccessCount", resourceCulture);
- }
- }
-
- public static string MaximumAccessCountInfo {
- get {
- return ResourceManager.GetString("MaximumAccessCountInfo", resourceCulture);
- }
- }
-
- public static string MaximumAccessCountReached {
- get {
- return ResourceManager.GetString("MaximumAccessCountReached", resourceCulture);
- }
- }
-
- public static string CurrentAccessCount {
- get {
- return ResourceManager.GetString("CurrentAccessCount", resourceCulture);
- }
- }
-
- public static string NewPassword {
- get {
- return ResourceManager.GetString("NewPassword", resourceCulture);
- }
- }
-
- public static string PasswordInfo {
- get {
- return ResourceManager.GetString("PasswordInfo", resourceCulture);
- }
- }
-
- public static string RemovePassword {
- get {
- return ResourceManager.GetString("RemovePassword", resourceCulture);
- }
- }
-
- public static string AreYouSureRemoveSendPassword {
- get {
- return ResourceManager.GetString("AreYouSureRemoveSendPassword", resourceCulture);
- }
- }
-
- public static string RemovingSendPassword {
- get {
- return ResourceManager.GetString("RemovingSendPassword", resourceCulture);
- }
- }
-
- public static string SendPasswordRemoved {
- get {
- return ResourceManager.GetString("SendPasswordRemoved", resourceCulture);
- }
- }
-
- public static string NotesInfo {
- get {
- return ResourceManager.GetString("NotesInfo", resourceCulture);
- }
- }
-
- public static string DisableSend {
- get {
- return ResourceManager.GetString("DisableSend", resourceCulture);
- }
- }
-
- public static string NoSends {
- get {
- return ResourceManager.GetString("NoSends", resourceCulture);
- }
- }
-
- public static string AddASend {
- get {
- return ResourceManager.GetString("AddASend", resourceCulture);
- }
- }
-
- public static string CopyLink {
- get {
- return ResourceManager.GetString("CopyLink", resourceCulture);
- }
- }
-
- public static string ShareLink {
- get {
- return ResourceManager.GetString("ShareLink", resourceCulture);
- }
- }
-
- public static string SendLink {
- get {
- return ResourceManager.GetString("SendLink", resourceCulture);
- }
- }
-
- public static string SearchSends {
- get {
- return ResourceManager.GetString("SearchSends", resourceCulture);
- }
- }
-
- public static string EditSend {
- get {
- return ResourceManager.GetString("EditSend", resourceCulture);
- }
- }
-
- public static string AddSend {
- get {
- return ResourceManager.GetString("AddSend", resourceCulture);
- }
- }
-
- public static string AreYouSureDeleteSend {
- get {
- return ResourceManager.GetString("AreYouSureDeleteSend", resourceCulture);
- }
- }
-
- public static string SendDeleted {
- get {
- return ResourceManager.GetString("SendDeleted", resourceCulture);
- }
- }
-
- public static string SendUpdated {
- get {
- return ResourceManager.GetString("SendUpdated", resourceCulture);
- }
- }
-
- public static string NewSendCreated {
- get {
- return ResourceManager.GetString("NewSendCreated", resourceCulture);
- }
- }
-
- public static string OneDay {
- get {
- return ResourceManager.GetString("OneDay", resourceCulture);
- }
- }
-
- public static string TwoDays {
- get {
- return ResourceManager.GetString("TwoDays", resourceCulture);
- }
- }
-
- public static string ThreeDays {
- get {
- return ResourceManager.GetString("ThreeDays", resourceCulture);
- }
- }
-
- public static string SevenDays {
- get {
- return ResourceManager.GetString("SevenDays", resourceCulture);
- }
- }
-
- public static string ThirtyDays {
- get {
- return ResourceManager.GetString("ThirtyDays", resourceCulture);
- }
- }
-
- public static string Custom {
- get {
- return ResourceManager.GetString("Custom", resourceCulture);
- }
- }
-
- public static string ShareOnSave {
- get {
- return ResourceManager.GetString("ShareOnSave", resourceCulture);
- }
- }
-
- public static string SendDisabledWarning {
- get {
- return ResourceManager.GetString("SendDisabledWarning", resourceCulture);
- }
- }
-
+ ///
+ /// Looks up a localized string similar to About Send.
+ ///
public static string AboutSend {
get {
return ResourceManager.GetString("AboutSend", resourceCulture);
}
}
- public static string HideEmail {
- get {
- return ResourceManager.GetString("HideEmail", resourceCulture);
- }
- }
-
- public static string SendOptionsPolicyInEffect {
- get {
- return ResourceManager.GetString("SendOptionsPolicyInEffect", resourceCulture);
- }
- }
-
- public static string SendFilePremiumRequired {
- get {
- return ResourceManager.GetString("SendFilePremiumRequired", resourceCulture);
- }
- }
-
- public static string SendFileEmailVerificationRequired {
- get {
- return ResourceManager.GetString("SendFileEmailVerificationRequired", resourceCulture);
- }
- }
-
- public static string PasswordPrompt {
- get {
- return ResourceManager.GetString("PasswordPrompt", resourceCulture);
- }
- }
-
- public static string PasswordConfirmation {
- get {
- return ResourceManager.GetString("PasswordConfirmation", resourceCulture);
- }
- }
-
- public static string PasswordConfirmationDesc {
- get {
- return ResourceManager.GetString("PasswordConfirmationDesc", resourceCulture);
- }
- }
-
- public static string CaptchaRequired {
- get {
- return ResourceManager.GetString("CaptchaRequired", resourceCulture);
- }
- }
-
- public static string CaptchaFailed {
- get {
- return ResourceManager.GetString("CaptchaFailed", resourceCulture);
- }
- }
-
- public static string UpdatedMasterPassword {
- get {
- return ResourceManager.GetString("UpdatedMasterPassword", resourceCulture);
- }
- }
-
- public static string UpdateMasterPassword {
- get {
- return ResourceManager.GetString("UpdateMasterPassword", resourceCulture);
- }
- }
-
- public static string UpdateMasterPasswordWarning {
- get {
- return ResourceManager.GetString("UpdateMasterPasswordWarning", resourceCulture);
- }
- }
-
- public static string UpdatingPassword {
- get {
- return ResourceManager.GetString("UpdatingPassword", resourceCulture);
- }
- }
-
- public static string UpdatePasswordError {
- get {
- return ResourceManager.GetString("UpdatePasswordError", resourceCulture);
- }
- }
-
- public static string RemoveMasterPassword {
- get {
- return ResourceManager.GetString("RemoveMasterPassword", resourceCulture);
- }
- }
-
- public static string RemoveMasterPasswordWarning {
- get {
- return ResourceManager.GetString("RemoveMasterPasswordWarning", resourceCulture);
- }
- }
-
- public static string RemoveMasterPasswordWarning2 {
- get {
- return ResourceManager.GetString("RemoveMasterPasswordWarning2", resourceCulture);
- }
- }
-
- public static string LeaveOrganization {
- get {
- return ResourceManager.GetString("LeaveOrganization", resourceCulture);
- }
- }
-
- public static string LeaveOrganizationName {
- get {
- return ResourceManager.GetString("LeaveOrganizationName", resourceCulture);
- }
- }
-
- public static string Fido2Title {
- get {
- return ResourceManager.GetString("Fido2Title", resourceCulture);
- }
- }
-
- public static string Fido2Instruction {
- get {
- return ResourceManager.GetString("Fido2Instruction", resourceCulture);
- }
- }
-
- public static string Fido2Desc {
- get {
- return ResourceManager.GetString("Fido2Desc", resourceCulture);
- }
- }
-
- public static string Fido2AuthenticateWebAuthn {
- get {
- return ResourceManager.GetString("Fido2AuthenticateWebAuthn", resourceCulture);
- }
- }
-
- public static string Fido2ReturnToApp {
- get {
- return ResourceManager.GetString("Fido2ReturnToApp", resourceCulture);
- }
- }
-
- public static string Fido2CheckBrowser {
- get {
- return ResourceManager.GetString("Fido2CheckBrowser", resourceCulture);
- }
- }
-
- public static string ResetPasswordAutoEnrollInviteWarning {
- get {
- return ResourceManager.GetString("ResetPasswordAutoEnrollInviteWarning", resourceCulture);
- }
- }
-
- public static string VaultTimeoutPolicyInEffect {
- get {
- return ResourceManager.GetString("VaultTimeoutPolicyInEffect", resourceCulture);
- }
- }
-
- public static string VaultTimeoutToLarge {
- get {
- return ResourceManager.GetString("VaultTimeoutToLarge", resourceCulture);
- }
- }
-
- public static string DisablePersonalVaultExportPolicyInEffect {
- get {
- return ResourceManager.GetString("DisablePersonalVaultExportPolicyInEffect", resourceCulture);
- }
- }
-
- public static string AddAccount {
- get {
- return ResourceManager.GetString("AddAccount", resourceCulture);
- }
- }
-
- public static string AccountUnlocked {
- get {
- return ResourceManager.GetString("AccountUnlocked", resourceCulture);
- }
- }
-
- public static string AccountLocked {
- get {
- return ResourceManager.GetString("AccountLocked", resourceCulture);
- }
- }
-
- public static string AccountLoggedOut {
- get {
- return ResourceManager.GetString("AccountLoggedOut", resourceCulture);
- }
- }
-
- public static string AccountSwitchedAutomatically {
- get {
- return ResourceManager.GetString("AccountSwitchedAutomatically", resourceCulture);
- }
- }
-
- public static string AccountLockedSuccessfully {
- get {
- return ResourceManager.GetString("AccountLockedSuccessfully", resourceCulture);
- }
- }
-
- public static string AccountLoggedOutSuccessfully {
- get {
- return ResourceManager.GetString("AccountLoggedOutSuccessfully", resourceCulture);
- }
- }
-
- public static string AccountRemovedSuccessfully {
- get {
- return ResourceManager.GetString("AccountRemovedSuccessfully", resourceCulture);
- }
- }
-
- public static string DeleteAccount {
- get {
- return ResourceManager.GetString("DeleteAccount", resourceCulture);
- }
- }
-
- public static string DeletingYourAccountIsPermanent {
- get {
- return ResourceManager.GetString("DeletingYourAccountIsPermanent", resourceCulture);
- }
- }
-
- public static string DeleteAccountExplanation {
- get {
- return ResourceManager.GetString("DeleteAccountExplanation", resourceCulture);
- }
- }
-
- public static string DeletingYourAccount {
- get {
- return ResourceManager.GetString("DeletingYourAccount", resourceCulture);
- }
- }
-
- public static string YourAccountHasBeenPermanentlyDeleted {
- get {
- return ResourceManager.GetString("YourAccountHasBeenPermanentlyDeleted", resourceCulture);
- }
- }
-
- public static string InvalidVerificationCode {
- get {
- return ResourceManager.GetString("InvalidVerificationCode", resourceCulture);
- }
- }
-
- public static string RequestOTP {
- get {
- return ResourceManager.GetString("RequestOTP", resourceCulture);
- }
- }
-
- public static string SendCode {
- get {
- return ResourceManager.GetString("SendCode", resourceCulture);
- }
- }
-
- public static string Sending {
- get {
- return ResourceManager.GetString("Sending", resourceCulture);
- }
- }
-
- public static string CopySendLinkOnSave {
- get {
- return ResourceManager.GetString("CopySendLinkOnSave", resourceCulture);
- }
- }
-
- public static string SendingCode {
- get {
- return ResourceManager.GetString("SendingCode", resourceCulture);
- }
- }
-
- public static string Verifying {
- get {
- return ResourceManager.GetString("Verifying", resourceCulture);
- }
- }
-
- public static string ResendCode {
- get {
- return ResourceManager.GetString("ResendCode", resourceCulture);
- }
- }
-
- public static string AVerificationCodeWasSentToYourEmail {
- get {
- return ResourceManager.GetString("AVerificationCodeWasSentToYourEmail", resourceCulture);
- }
- }
-
- public static string AnErrorOccurredWhileSendingAVerificationCodeToYourEmailPleaseTryAgain {
- get {
- return ResourceManager.GetString("AnErrorOccurredWhileSendingAVerificationCodeToYourEmailPleaseTryAgain", resourceCulture);
- }
- }
-
- public static string EnterTheVerificationCodeThatWasSentToYourEmail {
- get {
- return ResourceManager.GetString("EnterTheVerificationCodeThatWasSentToYourEmail", resourceCulture);
- }
- }
-
- public static string SubmitCrashLogs {
- get {
- return ResourceManager.GetString("SubmitCrashLogs", resourceCulture);
- }
- }
-
- public static string SubmitCrashLogsDescription {
- get {
- return ResourceManager.GetString("SubmitCrashLogsDescription", resourceCulture);
- }
- }
-
- public static string OptionsExpanded {
- get {
- return ResourceManager.GetString("OptionsExpanded", resourceCulture);
- }
- }
-
- public static string OptionsCollapsed {
- get {
- return ResourceManager.GetString("OptionsCollapsed", resourceCulture);
- }
- }
-
- public static string UppercaseAtoZ {
- get {
- return ResourceManager.GetString("UppercaseAtoZ", resourceCulture);
- }
- }
-
- public static string LowercaseAtoZ {
- get {
- return ResourceManager.GetString("LowercaseAtoZ", resourceCulture);
- }
- }
-
- public static string NumbersZeroToNine {
- get {
- return ResourceManager.GetString("NumbersZeroToNine", resourceCulture);
- }
- }
-
- public static string SpecialCharacters {
- get {
- return ResourceManager.GetString("SpecialCharacters", resourceCulture);
- }
- }
-
- public static string TapToGoBack {
- get {
- return ResourceManager.GetString("TapToGoBack", resourceCulture);
- }
- }
-
- public static string PasswordIsVisibleTapToHide {
- get {
- return ResourceManager.GetString("PasswordIsVisibleTapToHide", resourceCulture);
- }
- }
-
- public static string PasswordIsNotVisibleTapToShow {
- get {
- return ResourceManager.GetString("PasswordIsNotVisibleTapToShow", resourceCulture);
- }
- }
-
- public static string FilterByVault {
- get {
- return ResourceManager.GetString("FilterByVault", resourceCulture);
- }
- }
-
- public static string AllVaults {
- get {
- return ResourceManager.GetString("AllVaults", resourceCulture);
- }
- }
-
- public static string Vaults {
- get {
- return ResourceManager.GetString("Vaults", resourceCulture);
- }
- }
-
- public static string VaultFilterDescription {
- get {
- return ResourceManager.GetString("VaultFilterDescription", resourceCulture);
- }
- }
-
- public static string All {
- get {
- return ResourceManager.GetString("All", resourceCulture);
- }
- }
-
- public static string Totp {
- get {
- return ResourceManager.GetString("Totp", resourceCulture);
- }
- }
-
- public static string VerificationCodes {
- get {
- return ResourceManager.GetString("VerificationCodes", resourceCulture);
- }
- }
-
- public static string PremiumSubscriptionRequired {
- get {
- return ResourceManager.GetString("PremiumSubscriptionRequired", resourceCulture);
- }
- }
-
- public static string CannotAddAuthenticatorKey {
- get {
- return ResourceManager.GetString("CannotAddAuthenticatorKey", resourceCulture);
- }
- }
-
- public static string ScanQRCode {
- get {
- return ResourceManager.GetString("ScanQRCode", resourceCulture);
- }
- }
-
- public static string CannotScanQRCode {
- get {
- return ResourceManager.GetString("CannotScanQRCode", resourceCulture);
- }
- }
-
- public static string AuthenticatorKeyScanner {
- get {
- return ResourceManager.GetString("AuthenticatorKeyScanner", resourceCulture);
- }
- }
-
- public static string EnterKeyManually {
- get {
- return ResourceManager.GetString("EnterKeyManually", resourceCulture);
- }
- }
-
- public static string AddTotp {
- get {
- return ResourceManager.GetString("AddTotp", resourceCulture);
- }
- }
-
- public static string SetupTotp {
- get {
- return ResourceManager.GetString("SetupTotp", resourceCulture);
- }
- }
-
- public static string OnceTheKeyIsSuccessfullyEntered {
- get {
- return ResourceManager.GetString("OnceTheKeyIsSuccessfullyEntered", resourceCulture);
- }
- }
-
- public static string SelectAddTotpToStoreTheKeySafely {
- get {
- return ResourceManager.GetString("SelectAddTotpToStoreTheKeySafely", resourceCulture);
- }
- }
-
- public static string NeverLockWarning {
- get {
- return ResourceManager.GetString("NeverLockWarning", resourceCulture);
- }
- }
-
- public static string EnvironmentPageUrlsError {
- get {
- return ResourceManager.GetString("EnvironmentPageUrlsError", resourceCulture);
- }
- }
-
- public static string GenericErrorMessage {
- get {
- return ResourceManager.GetString("GenericErrorMessage", resourceCulture);
- }
- }
-
- public static string AllowScreenCapture {
- get {
- return ResourceManager.GetString("AllowScreenCapture", resourceCulture);
- }
- }
-
- public static string AreYouSureYouWantToEnableScreenCapture {
- get {
- return ResourceManager.GetString("AreYouSureYouWantToEnableScreenCapture", resourceCulture);
- }
- }
-
- public static string LogInRequested {
- get {
- return ResourceManager.GetString("LogInRequested", resourceCulture);
- }
- }
-
- public static string AreYouTryingToLogIn {
- get {
- return ResourceManager.GetString("AreYouTryingToLogIn", resourceCulture);
- }
- }
-
- public static string LogInAttemptByXOnY {
- get {
- return ResourceManager.GetString("LogInAttemptByXOnY", resourceCulture);
- }
- }
-
- public static string DeviceType {
- get {
- return ResourceManager.GetString("DeviceType", resourceCulture);
- }
- }
-
- public static string IpAddress {
- get {
- return ResourceManager.GetString("IpAddress", resourceCulture);
- }
- }
-
- public static string Time {
- get {
- return ResourceManager.GetString("Time", resourceCulture);
- }
- }
-
- public static string Near {
- get {
- return ResourceManager.GetString("Near", resourceCulture);
- }
- }
-
- public static string ConfirmLogIn {
- get {
- return ResourceManager.GetString("ConfirmLogIn", resourceCulture);
- }
- }
-
- public static string DenyLogIn {
- get {
- return ResourceManager.GetString("DenyLogIn", resourceCulture);
- }
- }
-
- public static string JustNow {
- get {
- return ResourceManager.GetString("JustNow", resourceCulture);
- }
- }
-
- public static string XMinutesAgo {
- get {
- return ResourceManager.GetString("XMinutesAgo", resourceCulture);
- }
- }
-
- public static string LogInAccepted {
- get {
- return ResourceManager.GetString("LogInAccepted", resourceCulture);
- }
- }
-
- public static string LogInDenied {
- get {
- return ResourceManager.GetString("LogInDenied", resourceCulture);
- }
- }
-
- public static string ApproveLoginRequests {
- get {
- return ResourceManager.GetString("ApproveLoginRequests", resourceCulture);
- }
- }
-
- public static string UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices {
- get {
- return ResourceManager.GetString("UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices", resourceCulture);
- }
- }
-
- public static string AllowNotifications {
- get {
- return ResourceManager.GetString("AllowNotifications", resourceCulture);
- }
- }
-
- public static string ReceivePushNotificationsForNewLoginRequests {
- get {
- return ResourceManager.GetString("ReceivePushNotificationsForNewLoginRequests", resourceCulture);
- }
- }
-
- public static string NoThanks {
- get {
- return ResourceManager.GetString("NoThanks", resourceCulture);
- }
- }
-
- public static string ConfimLogInAttempForX {
- get {
- return ResourceManager.GetString("ConfimLogInAttempForX", resourceCulture);
- }
- }
-
- public static string AllNotifications {
- get {
- return ResourceManager.GetString("AllNotifications", resourceCulture);
- }
- }
-
- public static string PasswordType {
- get {
- return ResourceManager.GetString("PasswordType", resourceCulture);
- }
- }
-
- public static string WhatWouldYouLikeToGenerate {
- get {
- return ResourceManager.GetString("WhatWouldYouLikeToGenerate", resourceCulture);
- }
- }
-
- public static string UsernameType {
- get {
- return ResourceManager.GetString("UsernameType", resourceCulture);
- }
- }
-
- public static string PlusAddressedEmail {
- get {
- return ResourceManager.GetString("PlusAddressedEmail", resourceCulture);
- }
- }
-
- public static string CatchAllEmail {
- get {
- return ResourceManager.GetString("CatchAllEmail", resourceCulture);
- }
- }
-
- public static string ForwardedEmailAlias {
- get {
- return ResourceManager.GetString("ForwardedEmailAlias", resourceCulture);
- }
- }
-
- public static string RandomWord {
- get {
- return ResourceManager.GetString("RandomWord", resourceCulture);
- }
- }
-
- public static string EmailRequiredParenthesis {
- get {
- return ResourceManager.GetString("EmailRequiredParenthesis", resourceCulture);
- }
- }
-
- public static string DomainNameRequiredParenthesis {
- get {
- return ResourceManager.GetString("DomainNameRequiredParenthesis", resourceCulture);
- }
- }
-
- public static string APIKeyRequiredParenthesis {
- get {
- return ResourceManager.GetString("APIKeyRequiredParenthesis", resourceCulture);
- }
- }
-
- public static string Service {
- get {
- return ResourceManager.GetString("Service", resourceCulture);
- }
- }
-
- public static string AnonAddy {
- get {
- return ResourceManager.GetString("AnonAddy", resourceCulture);
- }
- }
-
- public static string FirefoxRelay {
- get {
- return ResourceManager.GetString("FirefoxRelay", resourceCulture);
- }
- }
-
- public static string SimpleLogin {
- get {
- return ResourceManager.GetString("SimpleLogin", resourceCulture);
- }
- }
-
- public static string APIAccessToken {
- get {
- return ResourceManager.GetString("APIAccessToken", resourceCulture);
- }
- }
-
- public static string AreYouSureYouWantToOverwriteTheCurrentUsername {
- get {
- return ResourceManager.GetString("AreYouSureYouWantToOverwriteTheCurrentUsername", resourceCulture);
- }
- }
-
- public static string GenerateUsername {
- get {
- return ResourceManager.GetString("GenerateUsername", resourceCulture);
- }
- }
-
- public static string EmailType {
- get {
- return ResourceManager.GetString("EmailType", resourceCulture);
- }
- }
-
- public static string WebsiteRequired {
- get {
- return ResourceManager.GetString("WebsiteRequired", resourceCulture);
- }
- }
-
- public static string UnknownXErrorMessage {
- get {
- return ResourceManager.GetString("UnknownXErrorMessage", resourceCulture);
- }
- }
-
- public static string PlusAddressedEmailDescription {
- get {
- return ResourceManager.GetString("PlusAddressedEmailDescription", resourceCulture);
- }
- }
-
- public static string CatchAllEmailDescription {
- get {
- return ResourceManager.GetString("CatchAllEmailDescription", resourceCulture);
- }
- }
-
- public static string ForwardedEmailDescription {
- get {
- return ResourceManager.GetString("ForwardedEmailDescription", resourceCulture);
- }
- }
-
- public static string Random {
- get {
- return ResourceManager.GetString("Random", resourceCulture);
- }
- }
-
- public static string AccessibilityServiceDisclosure {
- get {
- return ResourceManager.GetString("AccessibilityServiceDisclosure", resourceCulture);
- }
- }
-
- public static string AccessibilityDisclosureText {
- get {
- return ResourceManager.GetString("AccessibilityDisclosureText", resourceCulture);
- }
- }
-
+ ///
+ /// Looks up a localized string similar to Accept.
+ ///
public static string Accept {
get {
return ResourceManager.GetString("Accept", resourceCulture);
}
}
+ ///
+ /// Looks up a localized string similar to By activating this switch you agree to the following:
+ ///.
+ ///
+ public static string AcceptPolicies {
+ get {
+ return ResourceManager.GetString("AcceptPolicies", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Terms of Service and Privacy Policy have not been acknowledged..
+ ///
+ public static string AcceptPoliciesError {
+ get {
+ return ResourceManager.GetString("AcceptPoliciesError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use accessibility.
+ ///
+ public static string Accessibility {
+ get {
+ return ResourceManager.GetString("Accessibility", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected..
+ ///
+ public static string AccessibilityDescription {
+ get {
+ return ResourceManager.GetString("AccessibilityDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well).
+ ///
+ public static string AccessibilityDescription2 {
+ get {
+ return ResourceManager.GetString("AccessibilityDescription2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled)..
+ ///
+ public static string AccessibilityDescription3 {
+ get {
+ return ResourceManager.GetString("AccessibilityDescription3", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled)..
+ ///
+ public static string AccessibilityDescription4 {
+ get {
+ return ResourceManager.GetString("AccessibilityDescription4", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials..
+ ///
+ public static string AccessibilityDisclosureText {
+ get {
+ return ResourceManager.GetString("AccessibilityDisclosureText", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings.
+ ///
+ public static string AccessibilityDrawOverPermissionAlert {
+ get {
+ return ResourceManager.GetString("AccessibilityDrawOverPermissionAlert", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings.
+ ///
+ public static string AccessibilityOverlayPermissionAlert {
+ get {
+ return ResourceManager.GetString("AccessibilityOverlayPermissionAlert", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Accessibility Service Disclosure.
+ ///
+ public static string AccessibilityServiceDisclosure {
+ get {
+ return ResourceManager.GetString("AccessibilityServiceDisclosure", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account.
+ ///
+ public static string Account {
+ get {
+ return ResourceManager.GetString("Account", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account Already Added.
+ ///
+ public static string AccountAlreadyAdded {
+ get {
+ return ResourceManager.GetString("AccountAlreadyAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your new account has been created! You may now log in..
+ ///
+ public static string AccountCreated {
+ get {
+ return ResourceManager.GetString("AccountCreated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Locked.
+ ///
+ public static string AccountLocked {
+ get {
+ return ResourceManager.GetString("AccountLocked", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account Locked.
+ ///
+ public static string AccountLockedSuccessfully {
+ get {
+ return ResourceManager.GetString("AccountLockedSuccessfully", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Logged Out.
+ ///
+ public static string AccountLoggedOut {
+ get {
+ return ResourceManager.GetString("AccountLoggedOut", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account logged out successfully.
+ ///
+ public static string AccountLoggedOutSuccessfully {
+ get {
+ return ResourceManager.GetString("AccountLoggedOutSuccessfully", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account removed successfully.
+ ///
+ public static string AccountRemovedSuccessfully {
+ get {
+ return ResourceManager.GetString("AccountRemovedSuccessfully", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Switched to next available account.
+ ///
+ public static string AccountSwitchedAutomatically {
+ get {
+ return ResourceManager.GetString("AccountSwitchedAutomatically", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unlocked.
+ ///
+ public static string AccountUnlocked {
+ get {
+ return ResourceManager.GetString("AccountUnlocked", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add.
+ ///
+ public static string Add {
+ get {
+ return ResourceManager.GetString("Add", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add Account.
+ ///
+ public static string AddAccount {
+ get {
+ return ResourceManager.GetString("AddAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add an Item.
+ ///
+ public static string AddAnItem {
+ get {
+ return ResourceManager.GetString("AddAnItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add a Send.
+ ///
+ public static string AddASend {
+ get {
+ return ResourceManager.GetString("AddASend", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add Folder.
+ ///
+ public static string AddFolder {
+ get {
+ return ResourceManager.GetString("AddFolder", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add Item.
+ ///
+ public static string AddItem {
+ get {
+ return ResourceManager.GetString("AddItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add New Attachment.
+ ///
+ public static string AddNewAttachment {
+ get {
+ return ResourceManager.GetString("AddNewAttachment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Address.
+ ///
+ public static string Address {
+ get {
+ return ResourceManager.GetString("Address", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Address 1.
+ ///
+ public static string Address1 {
+ get {
+ return ResourceManager.GetString("Address1", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Address 2.
+ ///
+ public static string Address2 {
+ get {
+ return ResourceManager.GetString("Address2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Address 3.
+ ///
+ public static string Address3 {
+ get {
+ return ResourceManager.GetString("Address3", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add Send.
+ ///
+ public static string AddSend {
+ get {
+ return ResourceManager.GetString("AddSend", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Add TOTP.
+ ///
+ public static string AddTotp {
+ get {
+ return ResourceManager.GetString("AddTotp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to All.
+ ///
+ public static string All {
+ get {
+ return ResourceManager.GetString("All", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to All Items.
+ ///
+ public static string AllItems {
+ get {
+ return ResourceManager.GetString("AllItems", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to All notifications.
+ ///
+ public static string AllNotifications {
+ get {
+ return ResourceManager.GetString("AllNotifications", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Allow notifications.
+ ///
+ public static string AllowNotifications {
+ get {
+ return ResourceManager.GetString("AllowNotifications", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Allow screen capture.
+ ///
+ public static string AllowScreenCapture {
+ get {
+ return ResourceManager.GetString("AllowScreenCapture", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to All Sends.
+ ///
+ public static string AllSends {
+ get {
+ return ResourceManager.GetString("AllSends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to All Vaults.
+ ///
+ public static string AllVaults {
+ get {
+ return ResourceManager.GetString("AllVaults", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to An error has occurred..
+ ///
+ public static string AnErrorHasOccurred {
+ get {
+ return ResourceManager.GetString("AnErrorHasOccurred", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to An error occurred while sending a verification code to your email. Please try again.
+ ///
+ public static string AnErrorOccurredWhileSendingAVerificationCodeToYourEmailPleaseTryAgain {
+ get {
+ return ResourceManager.GetString("AnErrorOccurredWhileSendingAVerificationCodeToYourEmailPleaseTryAgain", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to AnonAddy.
+ ///
+ public static string AnonAddy {
+ get {
+ return ResourceManager.GetString("AnonAddy", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to API Access Token.
+ ///
+ public static string APIAccessToken {
+ get {
+ return ResourceManager.GetString("APIAccessToken", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to API Key (required).
+ ///
+ public static string APIKeyRequiredParenthesis {
+ get {
+ return ResourceManager.GetString("APIKeyRequiredParenthesis", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to API Server URL.
+ ///
+ public static string ApiUrl {
+ get {
+ return ResourceManager.GetString("ApiUrl", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to App extension.
+ ///
+ public static string AppExtension {
+ get {
+ return ResourceManager.GetString("AppExtension", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Approve login requests.
+ ///
+ public static string ApproveLoginRequests {
+ get {
+ return ResourceManager.GetString("ApproveLoginRequests", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to April.
+ ///
+ public static string April {
+ get {
+ return ResourceManager.GetString("April", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to delete this Send?.
+ ///
+ public static string AreYouSureDeleteSend {
+ get {
+ return ResourceManager.GetString("AreYouSureDeleteSend", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to remove the password?.
+ ///
+ public static string AreYouSureRemoveSendPassword {
+ get {
+ return ResourceManager.GetString("AreYouSureRemoveSendPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to enable Screen Capture?.
+ ///
+ public static string AreYouSureYouWantToEnableScreenCapture {
+ get {
+ return ResourceManager.GetString("AreYouSureYouWantToEnableScreenCapture", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to overwrite the current username?.
+ ///
+ public static string AreYouSureYouWantToOverwriteTheCurrentUsername {
+ get {
+ return ResourceManager.GetString("AreYouSureYouWantToOverwriteTheCurrentUsername", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you trying to log in?.
+ ///
+ public static string AreYouTryingToLogIn {
+ get {
+ return ResourceManager.GetString("AreYouTryingToLogIn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ask to add login.
+ ///
+ public static string AskToAddLogin {
+ get {
+ return ResourceManager.GetString("AskToAddLogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ask to add an item if one isn't found in your vault..
+ ///
+ public static string AskToAddLoginDescription {
+ get {
+ return ResourceManager.GetString("AskToAddLoginDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Attachment added.
+ ///
+ public static string AttachementAdded {
+ get {
+ return ResourceManager.GetString("AttachementAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Attachment deleted.
+ ///
+ public static string AttachmentDeleted {
+ get {
+ return ResourceManager.GetString("AttachmentDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This attachment is {0} in size. Are you sure you want to download it onto your device?.
+ ///
+ public static string AttachmentLargeWarning {
+ get {
+ return ResourceManager.GetString("AttachmentLargeWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Attachments.
+ ///
+ public static string Attachments {
+ get {
+ return ResourceManager.GetString("Attachments", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to August.
+ ///
+ public static string August {
+ get {
+ return ResourceManager.GetString("August", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticator.
+ ///
+ public static string Authenticator {
+ get {
+ return ResourceManager.GetString("Authenticator", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticator App.
+ ///
+ public static string AuthenticatorAppTitle {
+ get {
+ return ResourceManager.GetString("AuthenticatorAppTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticator Key (TOTP).
+ ///
+ public static string AuthenticatorKey {
+ get {
+ return ResourceManager.GetString("AuthenticatorKey", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticator key added..
+ ///
+ public static string AuthenticatorKeyAdded {
+ get {
+ return ResourceManager.GetString("AuthenticatorKeyAdded", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cannot read authenticator key..
+ ///
+ public static string AuthenticatorKeyReadError {
+ get {
+ return ResourceManager.GetString("AuthenticatorKeyReadError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticator Key.
+ ///
+ public static string AuthenticatorKeyScanner {
+ get {
+ return ResourceManager.GetString("AuthenticatorKeyScanner", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill.
+ ///
+ public static string Autofill {
+ get {
+ return ResourceManager.GetString("Autofill", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden accessibility service to auto-fill your logins across apps and the web..
+ ///
+ public static string AutofillAccessibilityDescription {
+ get {
+ return ResourceManager.GetString("AutofillAccessibilityDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill Accessibility Service.
+ ///
+ public static string AutofillAccessibilityService {
+ get {
+ return ResourceManager.GetString("AutofillAccessibilityService", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to AutoFill Activated!.
+ ///
+ public static string AutofillActivated {
+ get {
+ return ResourceManager.GetString("AutofillActivated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill and save.
+ ///
+ public static string AutofillAndSave {
+ get {
+ return ResourceManager.GetString("AutofillAndSave", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill blocked URIs.
+ ///
+ public static string AutofillBlockedUris {
+ get {
+ return ResourceManager.GetString("AutofillBlockedUris", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android"..
+ ///
+ public static string AutofillBlockedUrisDescription {
+ get {
+ return ResourceManager.GetString("AutofillBlockedUrisDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you want to auto-fill or view this item?.
+ ///
+ public static string AutofillOrView {
+ get {
+ return ResourceManager.GetString("AutofillOrView", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill service.
+ ///
+ public static string AutofillService {
+ get {
+ return ResourceManager.GetString("AutofillService", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The Bitwarden auto-fill service uses the Android Autofill Framework to assist in filling login information into other apps on your device..
+ ///
+ public static string AutofillServiceDescription {
+ get {
+ return ResourceManager.GetString("AutofillServiceDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen..
+ ///
+ public static string AutofillServiceNotEnabled {
+ get {
+ return ResourceManager.GetString("AutofillServiceNotEnabled", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill services.
+ ///
+ public static string AutofillServices {
+ get {
+ return ResourceManager.GetString("AutofillServices", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your logins are now easily accessible right from your keyboard while logging into apps and websites..
+ ///
+ public static string AutofillSetup {
+ get {
+ return ResourceManager.GetString("AutofillSetup", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to We recommend disabling any other AutoFill apps under Settings if you do not plan to use them..
+ ///
+ public static string AutofillSetup2 {
+ get {
+ return ResourceManager.GetString("AutofillSetup2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile..
+ ///
+ public static string AutofillTileAccessibilityRequired {
+ get {
+ return ResourceManager.GetString("AutofillTileAccessibilityRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No password fields detected.
+ ///
+ public static string AutofillTileUriNotFound {
+ get {
+ return ResourceManager.GetString("AutofillTileUriNotFound", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to To enable password autofill on your device, follow these instructions:.
+ ///
+ public static string AutofillTurnOn {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1. Go to the iOS "Settings" app.
+ ///
+ public static string AutofillTurnOn1 {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn1", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 2. Tap "Passwords".
+ ///
+ public static string AutofillTurnOn2 {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 3. Tap "AutoFill Passwords".
+ ///
+ public static string AutofillTurnOn3 {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn3", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 4. Turn on AutoFill.
+ ///
+ public static string AutofillTurnOn4 {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn4", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 5. Select "Bitwarden".
+ ///
+ public static string AutofillTurnOn5 {
+ get {
+ return ResourceManager.GetString("AutofillTurnOn5", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Auto-fill with Bitwarden.
+ ///
+ public static string AutofillWithBitwarden {
+ get {
+ return ResourceManager.GetString("AutofillWithBitwarden", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to A verification code was sent to your email.
+ ///
+ public static string AVerificationCodeWasSentToYourEmail {
+ get {
+ return ResourceManager.GetString("AVerificationCodeWasSentToYourEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Avoid Ambiguous Characters.
+ ///
+ public static string AvoidAmbiguousCharacters {
+ get {
+ return ResourceManager.GetString("AvoidAmbiguousCharacters", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Back.
+ ///
+ public static string Back {
+ get {
+ return ResourceManager.GetString("Back", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Base domain.
+ ///
+ public static string BaseDomain {
+ get {
+ return ResourceManager.GetString("BaseDomain", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Biometric unlock disabled pending verification of master password..
+ ///
+ public static string BiometricInvalidated {
+ get {
+ return ResourceManager.GetString("BiometricInvalidated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Biometric unlock for autofill disabled pending verification of master password..
+ ///
+ public static string BiometricInvalidatedExtension {
+ get {
+ return ResourceManager.GetString("BiometricInvalidatedExtension", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Biometrics.
+ ///
+ public static string Biometrics {
+ get {
+ return ResourceManager.GetString("Biometrics", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Biometric Verification.
+ ///
+ public static string BiometricsDirection {
+ get {
+ return ResourceManager.GetString("BiometricsDirection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden.
+ ///
+ public static string Bitwarden {
+ get {
+ return ResourceManager.GetString("Bitwarden", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden App Extension.
+ ///
+ public static string BitwardenAppExtension {
+ get {
+ return ResourceManager.GetString("BitwardenAppExtension", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen..
+ ///
+ public static string BitwardenAppExtensionAlert2 {
+ get {
+ return ResourceManager.GetString("BitwardenAppExtensionAlert2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use Bitwarden in Safari and other apps to auto-fill your logins..
+ ///
+ public static string BitwardenAppExtensionDescription {
+ get {
+ return ResourceManager.GetString("BitwardenAppExtensionDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden accessibility service to auto-fill your logins..
+ ///
+ public static string BitwardenAutofillAccessibilityServiceDescription {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillAccessibilityServiceDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The accessibility service may be helpful to use when apps do not support the standard auto-fill service..
+ ///
+ public static string BitwardenAutofillAccessibilityServiceDescription2 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillAccessibilityServiceDescription2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The easiest way to add new logins to your vault is by using the Bitwarden Password AutoFill extension. Learn more about using the Bitwarden Password AutoFill extension by navigating to the "Settings" screen..
+ ///
+ public static string BitwardenAutofillAlert2 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillAlert2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Access your vault directly from your keyboard to quickly autofill passwords..
+ ///
+ public static string BitwardenAutofillDescription {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service..
+ ///
+ public static string BitwardenAutofillGoToSettings {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillGoToSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden Auto-fill Service.
+ ///
+ public static string BitwardenAutofillService {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillService", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The easiest way to add new logins to your vault is from the Bitwarden Auto-fill Service. Learn more about using the Bitwarden Auto-fill Service by navigating to the "Settings" screen..
+ ///
+ public static string BitwardenAutofillServiceAlert2 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceAlert2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use the Bitwarden auto-fill service to fill login information into other apps..
+ ///
+ public static string BitwardenAutofillServiceDescription {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to auto-fill this item? It is not a complete match for "{0}"..
+ ///
+ public static string BitwardenAutofillServiceMatchConfirm {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceMatchConfirm", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tap this notification to auto-fill an item from your vault..
+ ///
+ public static string BitwardenAutofillServiceNotificationContent {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceNotificationContent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tap this notification to view items from your vault..
+ ///
+ public static string BitwardenAutofillServiceNotificationContentOld {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceNotificationContentOld", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Open Accessibility Settings.
+ ///
+ public static string BitwardenAutofillServiceOpenAccessibilitySettings {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceOpenAccessibilitySettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Open Autofill Settings.
+ ///
+ public static string BitwardenAutofillServiceOpenAutofillSettings {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceOpenAutofillSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Open Overlay Permission Settings.
+ ///
+ public static string BitwardenAutofillServiceOpenOverlayPermissionSettings {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceOpenOverlayPermissionSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to When you select an input field and see a Bitwarden auto-fill overlay, you can tap it to launch the auto-fill service..
+ ///
+ public static string BitwardenAutofillServiceOverlay {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceOverlay", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support..
+ ///
+ public static string BitwardenAutofillServiceOverlayPermission {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceOverlayPermission", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You are searching for an auto-fill item for "{0}"..
+ ///
+ public static string BitwardenAutofillServiceSearch {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceSearch", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1. On the Android Accessibility Settings screen, touch "Bitwarden" under the Services heading..
+ ///
+ public static string BitwardenAutofillServiceStep1 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceStep1", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 2. Switch on the toggle and press OK to accept..
+ ///
+ public static string BitwardenAutofillServiceStep2 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceStep2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 3. On the Android App Settings screen for Bitwarden, select "Display over other apps" (under "Advanced") and switch on the toggle to allow the overlay..
+ ///
+ public static string BitwardenAutofillServiceStep3 {
+ get {
+ return ResourceManager.GetString("BitwardenAutofillServiceStep3", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Black.
+ ///
+ public static string Black {
+ get {
+ return ResourceManager.GetString("Black", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Brand.
+ ///
+ public static string Brand {
+ get {
+ return ResourceManager.GetString("Brand", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Camera.
+ ///
+ public static string Camera {
+ get {
+ return ResourceManager.GetString("Camera", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cancel.
+ ///
+ public static string Cancel {
+ get {
+ return ResourceManager.GetString("Cancel", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cannot add authenticator key? .
+ ///
+ public static string CannotAddAuthenticatorKey {
+ get {
+ return ResourceManager.GetString("CannotAddAuthenticatorKey", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cannot open the app "{0}"..
+ ///
+ public static string CannotOpenApp {
+ get {
+ return ResourceManager.GetString("CannotOpenApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cannot scan QR Code? .
+ ///
+ public static string CannotScanQRCode {
+ get {
+ return ResourceManager.GetString("CannotScanQRCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Capitalize.
+ ///
+ public static string Capitalize {
+ get {
+ return ResourceManager.GetString("Capitalize", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Captcha Failed. Please try again..
+ ///
+ public static string CaptchaFailed {
+ get {
+ return ResourceManager.GetString("CaptchaFailed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Captcha Required.
+ ///
+ public static string CaptchaRequired {
+ get {
+ return ResourceManager.GetString("CaptchaRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cardholder Name.
+ ///
+ public static string CardholderName {
+ get {
+ return ResourceManager.GetString("CardholderName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Cards.
+ ///
+ public static string Cards {
+ get {
+ return ResourceManager.GetString("Cards", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Catch-all Email.
+ ///
+ public static string CatchAllEmail {
+ get {
+ return ResourceManager.GetString("CatchAllEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use your domain's configured catch-all inbox..
+ ///
+ public static string CatchAllEmailDescription {
+ get {
+ return ResourceManager.GetString("CatchAllEmailDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Change Email.
+ ///
+ public static string ChangeEmail {
+ get {
+ return ResourceManager.GetString("ChangeEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You can change your email address on the bitwarden.com web vault. Do you want to visit the website now?.
+ ///
+ public static string ChangeEmailConfirmation {
+ get {
+ return ResourceManager.GetString("ChangeEmailConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Change master password.
+ ///
+ public static string ChangeMasterPassword {
+ get {
+ return ResourceManager.GetString("ChangeMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?.
+ ///
+ public static string ChangePasswordConfirmation {
+ get {
+ return ResourceManager.GetString("ChangePasswordConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Checking password....
+ ///
+ public static string CheckingPassword {
+ get {
+ return ResourceManager.GetString("CheckingPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Check if password has been exposed..
+ ///
+ public static string CheckPassword {
+ get {
+ return ResourceManager.GetString("CheckPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Choose File.
+ ///
+ public static string ChooseFile {
+ get {
+ return ResourceManager.GetString("ChooseFile", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to City / Town.
+ ///
+ public static string CityTown {
+ get {
+ return ResourceManager.GetString("CityTown", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Clear.
+ ///
+ public static string Clear {
+ get {
+ return ResourceManager.GetString("Clear", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Clear clipboard.
+ ///
+ public static string ClearClipboard {
+ get {
+ return ResourceManager.GetString("ClearClipboard", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Automatically clear copied values from your clipboard..
+ ///
+ public static string ClearClipboardDescription {
+ get {
+ return ResourceManager.GetString("ClearClipboardDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Clone.
+ ///
+ public static string Clone {
+ get {
+ return ResourceManager.GetString("Clone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Close.
+ ///
+ public static string Close {
+ get {
+ return ResourceManager.GetString("Close", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Code Sent!.
+ ///
+ public static string CodeSent {
+ get {
+ return ResourceManager.GetString("CodeSent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Collections.
+ ///
+ public static string Collections {
+ get {
+ return ResourceManager.GetString("Collections", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Company.
+ ///
+ public static string Company {
+ get {
+ return ResourceManager.GetString("Company", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Confirm login attempt for {0}.
+ ///
+ public static string ConfimLogInAttempForX {
+ get {
+ return ResourceManager.GetString("ConfimLogInAttempForX", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Confirm login.
+ ///
+ public static string ConfirmLogIn {
+ get {
+ return ResourceManager.GetString("ConfirmLogIn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Confirm your identity to continue..
+ ///
+ public static string ConfirmYourIdentity {
+ get {
+ return ResourceManager.GetString("ConfirmYourIdentity", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Continue.
+ ///
+ public static string Continue {
+ get {
+ return ResourceManager.GetString("Continue", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy.
+ ///
+ public static string Copy {
+ get {
+ return ResourceManager.GetString("Copy", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Link.
+ ///
+ public static string CopyLink {
+ get {
+ return ResourceManager.GetString("CopyLink", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Note.
+ ///
+ public static string CopyNotes {
+ get {
+ return ResourceManager.GetString("CopyNotes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Number.
+ ///
+ public static string CopyNumber {
+ get {
+ return ResourceManager.GetString("CopyNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Password.
+ ///
+ public static string CopyPassword {
+ get {
+ return ResourceManager.GetString("CopyPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Security Code.
+ ///
+ public static string CopySecurityCode {
+ get {
+ return ResourceManager.GetString("CopySecurityCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Send link on save.
+ ///
+ public static string CopySendLinkOnSave {
+ get {
+ return ResourceManager.GetString("CopySendLinkOnSave", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy TOTP.
+ ///
+ public static string CopyTotp {
+ get {
+ return ResourceManager.GetString("CopyTotp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy TOTP automatically.
+ ///
+ public static string CopyTotpAutomatically {
+ get {
+ return ResourceManager.GetString("CopyTotpAutomatically", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login..
+ ///
+ public static string CopyTotpAutomaticallyDescription {
+ get {
+ return ResourceManager.GetString("CopyTotpAutomaticallyDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Copy Username.
+ ///
+ public static string CopyUsername {
+ get {
+ return ResourceManager.GetString("CopyUsername", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Country.
+ ///
+ public static string Country {
+ get {
+ return ResourceManager.GetString("Country", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Create Account.
+ ///
+ public static string CreateAccount {
+ get {
+ return ResourceManager.GetString("CreateAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Creating account....
+ ///
+ public static string CreatingAccount {
+ get {
+ return ResourceManager.GetString("CreatingAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Credits.
+ ///
+ public static string Credits {
+ get {
+ return ResourceManager.GetString("Credits", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Current Access Count.
+ ///
+ public static string CurrentAccessCount {
+ get {
+ return ResourceManager.GetString("CurrentAccessCount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Custom.
+ ///
+ public static string Custom {
+ get {
+ return ResourceManager.GetString("Custom", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Custom Environment.
+ ///
+ public static string CustomEnvironment {
+ get {
+ return ResourceManager.GetString("CustomEnvironment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to For advanced users. You can specify the base URL of each service independently..
+ ///
+ public static string CustomEnvironmentFooter {
+ get {
+ return ResourceManager.GetString("CustomEnvironmentFooter", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Custom Field Name.
+ ///
+ public static string CustomFieldName {
+ get {
+ return ResourceManager.GetString("CustomFieldName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Custom Fields.
+ ///
+ public static string CustomFields {
+ get {
+ return ResourceManager.GetString("CustomFields", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Dark.
+ ///
+ public static string Dark {
+ get {
+ return ResourceManager.GetString("Dark", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password Updated.
+ ///
+ public static string DatePasswordUpdated {
+ get {
+ return ResourceManager.GetString("DatePasswordUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Updated.
+ ///
+ public static string DateUpdated {
+ get {
+ return ResourceManager.GetString("DateUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to December.
+ ///
+ public static string December {
+ get {
+ return ResourceManager.GetString("December", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Decline.
+ ///
public static string Decline {
get {
return ResourceManager.GetString("Decline", resourceCulture);
}
}
+
+ ///
+ /// Looks up a localized string similar to Default.
+ ///
+ public static string Default {
+ get {
+ return ResourceManager.GetString("Default", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Default dark theme.
+ ///
+ public static string DefaultDarkTheme {
+ get {
+ return ResourceManager.GetString("DefaultDarkTheme", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled..
+ ///
+ public static string DefaultDarkThemeDescription {
+ get {
+ return ResourceManager.GetString("DefaultDarkThemeDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Default URI match detection.
+ ///
+ public static string DefaultUriMatchDetection {
+ get {
+ return ResourceManager.GetString("DefaultUriMatchDetection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill..
+ ///
+ public static string DefaultUriMatchDetectionDescription {
+ get {
+ return ResourceManager.GetString("DefaultUriMatchDetectionDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Delete.
+ ///
+ public static string Delete {
+ get {
+ return ResourceManager.GetString("Delete", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Delete account.
+ ///
+ public static string DeleteAccount {
+ get {
+ return ResourceManager.GetString("DeleteAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your account and all vault data will be erased and unrecoverable. Are you sure you want to continue?.
+ ///
+ public static string DeleteAccountExplanation {
+ get {
+ return ResourceManager.GetString("DeleteAccountExplanation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deleting....
+ ///
+ public static string Deleting {
+ get {
+ return ResourceManager.GetString("Deleting", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deleting your account.
+ ///
+ public static string DeletingYourAccount {
+ get {
+ return ResourceManager.GetString("DeletingYourAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deleting your account is permanent.
+ ///
+ public static string DeletingYourAccountIsPermanent {
+ get {
+ return ResourceManager.GetString("DeletingYourAccountIsPermanent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deletion Date.
+ ///
+ public static string DeletionDate {
+ get {
+ return ResourceManager.GetString("DeletionDate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The Send will be permanently deleted on the specified date and time..
+ ///
+ public static string DeletionDateInfo {
+ get {
+ return ResourceManager.GetString("DeletionDateInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deletion Time.
+ ///
+ public static string DeletionTime {
+ get {
+ return ResourceManager.GetString("DeletionTime", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Denied.
+ ///
+ public static string Denied {
+ get {
+ return ResourceManager.GetString("Denied", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Deny login.
+ ///
+ public static string DenyLogIn {
+ get {
+ return ResourceManager.GetString("DenyLogIn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Device type.
+ ///
+ public static string DeviceType {
+ get {
+ return ResourceManager.GetString("DeviceType", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disabled.
+ ///
+ public static string Disabled {
+ get {
+ return ResourceManager.GetString("Disabled", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to One or more organization policies prevents your from exporting your personal vault..
+ ///
+ public static string DisablePersonalVaultExportPolicyInEffect {
+ get {
+ return ResourceManager.GetString("DisablePersonalVaultExportPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable this Send so that no one can access it.
+ ///
+ public static string DisableSend {
+ get {
+ return ResourceManager.GetString("DisableSend", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Domain Name (required).
+ ///
+ public static string DomainNameRequiredParenthesis {
+ get {
+ return ResourceManager.GetString("DomainNameRequiredParenthesis", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Download.
+ ///
+ public static string Download {
+ get {
+ return ResourceManager.GetString("Download", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Downloading....
+ ///
+ public static string Downloading {
+ get {
+ return ResourceManager.GetString("Downloading", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you really want to delete? This cannot be undone..
+ ///
+ public static string DoYouReallyWantToDelete {
+ get {
+ return ResourceManager.GetString("DoYouReallyWantToDelete", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you really want to permanently delete? This cannot be undone..
+ ///
+ public static string DoYouReallyWantToPermanentlyDeleteCipher {
+ get {
+ return ResourceManager.GetString("DoYouReallyWantToPermanentlyDeleteCipher", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you really want to restore this item?.
+ ///
+ public static string DoYouReallyWantToRestoreCipher {
+ get {
+ return ResourceManager.GetString("DoYouReallyWantToRestoreCipher", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you really want to send to the trash?.
+ ///
+ public static string DoYouReallyWantToSoftDeleteCipher {
+ get {
+ return ResourceManager.GetString("DoYouReallyWantToSoftDeleteCipher", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Dr.
+ ///
+ public static string Dr {
+ get {
+ return ResourceManager.GetString("Dr", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use draw-over.
+ ///
+ public static string DrawOver {
+ get {
+ return ResourceManager.GetString("DrawOver", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected..
+ ///
+ public static string DrawOverDescription {
+ get {
+ return ResourceManager.GetString("DrawOverDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins..
+ ///
+ public static string DrawOverDescription2 {
+ get {
+ return ResourceManager.GetString("DrawOverDescription2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework..
+ ///
+ public static string DrawOverDescription3 {
+ get {
+ return ResourceManager.GetString("DrawOverDescription3", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Edit.
+ ///
+ public static string Edit {
+ get {
+ return ResourceManager.GetString("Edit", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Edit Folder.
+ ///
+ public static string EditFolder {
+ get {
+ return ResourceManager.GetString("EditFolder", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Edit Item.
+ ///
+ public static string EditItem {
+ get {
+ return ResourceManager.GetString("EditItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Edit Send.
+ ///
+ public static string EditSend {
+ get {
+ return ResourceManager.GetString("EditSend", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email.
+ ///
+ public static string Email {
+ get {
+ return ResourceManager.GetString("Email", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email Address.
+ ///
+ public static string EmailAddress {
+ get {
+ return ResourceManager.GetString("EmailAddress", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email (required).
+ ///
+ public static string EmailRequiredParenthesis {
+ get {
+ return ResourceManager.GetString("EmailRequiredParenthesis", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email Type.
+ ///
+ public static string EmailType {
+ get {
+ return ResourceManager.GetString("EmailType", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email Us.
+ ///
+ public static string EmailUs {
+ get {
+ return ResourceManager.GetString("EmailUs", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Email us directly to get help or leave feedback..
+ ///
+ public static string EmailUsDescription {
+ get {
+ return ResourceManager.GetString("EmailUsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enable Automatic Syncing.
+ ///
+ public static string EnableAutomaticSyncing {
+ get {
+ return ResourceManager.GetString("EnableAutomaticSyncing", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enabled.
+ ///
+ public static string Enabled {
+ get {
+ return ResourceManager.GetString("Enabled", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enable sync on refresh.
+ ///
+ public static string EnableSyncOnRefresh {
+ get {
+ return ResourceManager.GetString("EnableSyncOnRefresh", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Syncing vault with pull down gesture..
+ ///
+ public static string EnableSyncOnRefreshDescription {
+ get {
+ return ResourceManager.GetString("EnableSyncOnRefreshDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account..
+ ///
+ public static string EncExportAccountWarning {
+ get {
+ return ResourceManager.GetString("EncExportAccountWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file..
+ ///
+ public static string EncExportKeyWarning {
+ get {
+ return ResourceManager.GetString("EncExportKeyWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter your account email address to receive your master password hint..
+ ///
+ public static string EnterEmailForHint {
+ get {
+ return ResourceManager.GetString("EnterEmailForHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter Key Manually.
+ ///
+ public static string EnterKeyManually {
+ get {
+ return ResourceManager.GetString("EnterKeyManually", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter your PIN code..
+ ///
+ public static string EnterPIN {
+ get {
+ return ResourceManager.GetString("EnterPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter the verification code that was sent to your email.
+ ///
+ public static string EnterTheVerificationCodeThatWasSentToYourEmail {
+ get {
+ return ResourceManager.GetString("EnterTheVerificationCodeThatWasSentToYourEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter the 6 digit verification code from your authenticator app..
+ ///
+ public static string EnterVerificationCodeApp {
+ get {
+ return ResourceManager.GetString("EnterVerificationCodeApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter the 6 digit verification code that was emailed to {0}..
+ ///
+ public static string EnterVerificationCodeEmail {
+ get {
+ return ResourceManager.GetString("EnterVerificationCodeEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to One or more of the URLs entered are invalid. Please revise it and try to save again..
+ ///
+ public static string EnvironmentPageUrlsError {
+ get {
+ return ResourceManager.GetString("EnvironmentPageUrlsError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The environment URLs have been saved..
+ ///
+ public static string EnvironmentSaved {
+ get {
+ return ResourceManager.GetString("EnvironmentSaved", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Exact.
+ ///
+ public static string Exact {
+ get {
+ return ResourceManager.GetString("Exact", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Exit.
+ ///
+ public static string Exit {
+ get {
+ return ResourceManager.GetString("Exit", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to exit Bitwarden?.
+ ///
+ public static string ExitConfirmation {
+ get {
+ return ResourceManager.GetString("ExitConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Re-enable app extension.
+ ///
+ public static string ExntesionReenable {
+ get {
+ return ResourceManager.GetString("ExntesionReenable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expiration.
+ ///
+ public static string Expiration {
+ get {
+ return ResourceManager.GetString("Expiration", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expiration Date.
+ ///
+ public static string ExpirationDate {
+ get {
+ return ResourceManager.GetString("ExpirationDate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If set, access to this Send will expire on the specified date and time..
+ ///
+ public static string ExpirationDateInfo {
+ get {
+ return ResourceManager.GetString("ExpirationDateInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expiration Month.
+ ///
+ public static string ExpirationMonth {
+ get {
+ return ResourceManager.GetString("ExpirationMonth", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expiration Time.
+ ///
+ public static string ExpirationTime {
+ get {
+ return ResourceManager.GetString("ExpirationTime", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expiration Year.
+ ///
+ public static string ExpirationYear {
+ get {
+ return ResourceManager.GetString("ExpirationYear", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Expired.
+ ///
+ public static string Expired {
+ get {
+ return ResourceManager.GetString("Expired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Export vault.
+ ///
+ public static string ExportVault {
+ get {
+ return ResourceManager.GetString("ExportVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Confirm Vault Export.
+ ///
+ public static string ExportVaultConfirmationTitle {
+ get {
+ return ResourceManager.GetString("ExportVaultConfirmationTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There was a problem exporting your vault. If the problem persists, you'll need to export from the web vault..
+ ///
+ public static string ExportVaultFailure {
+ get {
+ return ResourceManager.GetString("ExportVaultFailure", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter your master password to export your vault data..
+ ///
+ public static string ExportVaultMasterPasswordDescription {
+ get {
+ return ResourceManager.GetString("ExportVaultMasterPasswordDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vault exported successfully.
+ ///
+ public static string ExportVaultSuccess {
+ get {
+ return ResourceManager.GetString("ExportVaultSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it..
+ ///
+ public static string ExportVaultWarning {
+ get {
+ return ResourceManager.GetString("ExportVaultWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Extension activated!.
+ ///
+ public static string ExtensionActivated {
+ get {
+ return ResourceManager.GetString("ExtensionActivated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Almost done!.
+ ///
+ public static string ExtensionAlmostDone {
+ get {
+ return ResourceManager.GetString("ExtensionAlmostDone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enable app extension.
+ ///
+ public static string ExtensionEnable {
+ get {
+ return ResourceManager.GetString("ExtensionEnable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to In Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu)..
+ ///
+ public static string ExtensionInSafari {
+ get {
+ return ResourceManager.GetString("ExtensionInSafari", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Get instant access to your passwords!.
+ ///
+ public static string ExtensionInstantAccess {
+ get {
+ return ResourceManager.GetString("ExtensionInstantAccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You're ready to log in!.
+ ///
+ public static string ExtensionReady {
+ get {
+ return ResourceManager.GetString("ExtensionReady", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your logins are now easily accessible from Safari, Chrome, and other supported apps..
+ ///
+ public static string ExtensionSetup {
+ get {
+ return ResourceManager.GetString("ExtensionSetup", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to In Safari and Chrome, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the share menu)..
+ ///
+ public static string ExtensionSetup2 {
+ get {
+ return ResourceManager.GetString("ExtensionSetup2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tap the Bitwarden icon in the menu to launch the extension..
+ ///
+ public static string ExtensionTapIcon {
+ get {
+ return ResourceManager.GetString("ExtensionTapIcon", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to To turn on Bitwarden in Safari and other apps, tap the "more" icon on the bottom row of the menu..
+ ///
+ public static string ExtensionTurnOn {
+ get {
+ return ResourceManager.GetString("ExtensionTurnOn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Face ID.
+ ///
+ public static string FaceID {
+ get {
+ return ResourceManager.GetString("FaceID", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use Face ID to verify..
+ ///
+ public static string FaceIDDirection {
+ get {
+ return ResourceManager.GetString("FaceIDDirection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Favorite.
+ ///
+ public static string Favorite {
+ get {
+ return ResourceManager.GetString("Favorite", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Favorites.
+ ///
+ public static string Favorites {
+ get {
+ return ResourceManager.GetString("Favorites", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Feature Unavailable.
+ ///
+ public static string FeatureUnavailable {
+ get {
+ return ResourceManager.GetString("FeatureUnavailable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to February.
+ ///
+ public static string February {
+ get {
+ return ResourceManager.GetString("February", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authenticate WebAuthn.
+ ///
+ public static string Fido2AuthenticateWebAuthn {
+ get {
+ return ResourceManager.GetString("Fido2AuthenticateWebAuthn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Please make sure your default browser supports WebAuthn and try again..
+ ///
+ public static string Fido2CheckBrowser {
+ get {
+ return ResourceManager.GetString("Fido2CheckBrowser", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Authentication using FIDO2 WebAuthn, you can authenticate using an external security key..
+ ///
+ public static string Fido2Desc {
+ get {
+ return ResourceManager.GetString("Fido2Desc", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen..
+ ///
+ public static string Fido2Instruction {
+ get {
+ return ResourceManager.GetString("Fido2Instruction", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Return to App.
+ ///
+ public static string Fido2ReturnToApp {
+ get {
+ return ResourceManager.GetString("Fido2ReturnToApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to FIDO2 WebAuthn.
+ ///
+ public static string Fido2Title {
+ get {
+ return ResourceManager.GetString("Fido2Title", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Boolean.
+ ///
+ public static string FieldTypeBoolean {
+ get {
+ return ResourceManager.GetString("FieldTypeBoolean", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Hidden.
+ ///
+ public static string FieldTypeHidden {
+ get {
+ return ResourceManager.GetString("FieldTypeHidden", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Linked.
+ ///
+ public static string FieldTypeLinked {
+ get {
+ return ResourceManager.GetString("FieldTypeLinked", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Text.
+ ///
+ public static string FieldTypeText {
+ get {
+ return ResourceManager.GetString("FieldTypeText", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 15 minutes.
+ ///
+ public static string FifteenMinutes {
+ get {
+ return ResourceManager.GetString("FifteenMinutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File.
+ ///
+ public static string File {
+ get {
+ return ResourceManager.GetString("File", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File a Bug Report.
+ ///
+ public static string FileBugReport {
+ get {
+ return ResourceManager.GetString("FileBugReport", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Open an issue at our GitHub repository..
+ ///
+ public static string FileBugReportDescription {
+ get {
+ return ResourceManager.GetString("FileBugReportDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File Format.
+ ///
+ public static string FileFormat {
+ get {
+ return ResourceManager.GetString("FileFormat", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File Source.
+ ///
+ public static string FileSource {
+ get {
+ return ResourceManager.GetString("FileSource", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File type is not selected, tap to select..
+ ///
+ public static string FileTypeIsNotSelected {
+ get {
+ return ResourceManager.GetString("FileTypeIsNotSelected", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File type is selected..
+ ///
+ public static string FileTypeIsSelected {
+ get {
+ return ResourceManager.GetString("FileTypeIsSelected", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Filter items by vault.
+ ///
+ public static string FilterByVault {
+ get {
+ return ResourceManager.GetString("FilterByVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Fingerprint.
+ ///
+ public static string Fingerprint {
+ get {
+ return ResourceManager.GetString("Fingerprint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use your fingerprint to verify..
+ ///
+ public static string FingerprintDirection {
+ get {
+ return ResourceManager.GetString("FingerprintDirection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Fingerprint phrase.
+ ///
+ public static string FingerprintPhrase {
+ get {
+ return ResourceManager.GetString("FingerprintPhrase", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Firefox Relay.
+ ///
+ public static string FirefoxRelay {
+ get {
+ return ResourceManager.GetString("FirefoxRelay", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to First Name.
+ ///
+ public static string FirstName {
+ get {
+ return ResourceManager.GetString("FirstName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 5 minutes.
+ ///
+ public static string FiveMinutes {
+ get {
+ return ResourceManager.GetString("FiveMinutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Folder.
+ ///
+ public static string Folder {
+ get {
+ return ResourceManager.GetString("Folder", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New folder created..
+ ///
+ public static string FolderCreated {
+ get {
+ return ResourceManager.GetString("FolderCreated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Folder deleted..
+ ///
+ public static string FolderDeleted {
+ get {
+ return ResourceManager.GetString("FolderDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No Folder.
+ ///
+ public static string FolderNone {
+ get {
+ return ResourceManager.GetString("FolderNone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Folders.
+ ///
+ public static string Folders {
+ get {
+ return ResourceManager.GetString("Folders", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Folder updated..
+ ///
+ public static string FolderUpdated {
+ get {
+ return ResourceManager.GetString("FolderUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} is not correctly formatted..
+ ///
+ public static string FormattedIncorrectly {
+ get {
+ return ResourceManager.GetString("FormattedIncorrectly", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Forwarded Email Alias.
+ ///
+ public static string ForwardedEmailAlias {
+ get {
+ return ResourceManager.GetString("ForwardedEmailAlias", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Generate an email alias with an external forwarding service..
+ ///
+ public static string ForwardedEmailDescription {
+ get {
+ return ResourceManager.GetString("ForwardedEmailDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 4 hours.
+ ///
+ public static string FourHours {
+ get {
+ return ResourceManager.GetString("FourHours", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Full Name.
+ ///
+ public static string FullName {
+ get {
+ return ResourceManager.GetString("FullName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Generate Password.
+ ///
+ public static string GeneratePassword {
+ get {
+ return ResourceManager.GetString("GeneratePassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Generate Username.
+ ///
+ public static string GenerateUsername {
+ get {
+ return ResourceManager.GetString("GenerateUsername", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Generator.
+ ///
+ public static string Generator {
+ get {
+ return ResourceManager.GetString("Generator", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to We were unable to process your request. Please try again or contact us..
+ ///
+ public static string GenericErrorMessage {
+ get {
+ return ResourceManager.GetString("GenericErrorMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Get your master password hint.
+ ///
+ public static string GetPasswordHint {
+ get {
+ return ResourceManager.GetString("GetPasswordHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Go to my vault.
+ ///
+ public static string GoToMyVault {
+ get {
+ return ResourceManager.GetString("GoToMyVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Go To Website.
+ ///
+ public static string GoToWebsite {
+ get {
+ return ResourceManager.GetString("GoToWebsite", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Granted.
+ ///
+ public static string Granted {
+ get {
+ return ResourceManager.GetString("Granted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Help and feedback.
+ ///
+ public static string HelpAndFeedback {
+ get {
+ return ResourceManager.GetString("HelpAndFeedback", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Hide.
+ ///
+ public static string Hide {
+ get {
+ return ResourceManager.GetString("Hide", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Hide my email address from recipients.
+ ///
+ public static string HideEmail {
+ get {
+ return ResourceManager.GetString("HideEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to When accessing the Send, hide the text by default.
+ ///
+ public static string HideTextByDefault {
+ get {
+ return ResourceManager.GetString("HideTextByDefault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Hold your Yubikey near the top of the device..
+ ///
+ public static string HoldYubikeyNearTop {
+ get {
+ return ResourceManager.GetString("HoldYubikeyNearTop", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Host.
+ ///
+ public static string Host {
+ get {
+ return ResourceManager.GetString("Host", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Icons.
+ ///
+ public static string Icons {
+ get {
+ return ResourceManager.GetString("Icons", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Icons Server URL.
+ ///
+ public static string IconsUrl {
+ get {
+ return ResourceManager.GetString("IconsUrl", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Identities.
+ ///
+ public static string Identities {
+ get {
+ return ResourceManager.GetString("Identities", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Identity Name.
+ ///
+ public static string IdentityName {
+ get {
+ return ResourceManager.GetString("IdentityName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Identity Server URL.
+ ///
+ public static string IdentityUrl {
+ get {
+ return ResourceManager.GetString("IdentityUrl", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Immediately.
+ ///
+ public static string Immediately {
+ get {
+ return ResourceManager.GetString("Immediately", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Import items.
+ ///
+ public static string ImportItems {
+ get {
+ return ResourceManager.GetString("ImportItems", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You can bulk import items from the bitwarden.com web vault. Do you want to visit the website now?.
+ ///
+ public static string ImportItemsConfirmation {
+ get {
+ return ResourceManager.GetString("ImportItemsConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Quickly bulk import your items from other password management apps..
+ ///
+ public static string ImportItemsDescription {
+ get {
+ return ResourceManager.GetString("ImportItemsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Include Number.
+ ///
+ public static string IncludeNumber {
+ get {
+ return ResourceManager.GetString("IncludeNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use inline autofill.
+ ///
+ public static string InlineAutofill {
+ get {
+ return ResourceManager.GetString("InlineAutofill", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used..
+ ///
+ public static string InlineAutofillDescription {
+ get {
+ return ResourceManager.GetString("InlineAutofillDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Please connect to the internet before continuing..
+ ///
+ public static string InternetConnectionRequiredMessage {
+ get {
+ return ResourceManager.GetString("InternetConnectionRequiredMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Internet Connection Required.
+ ///
+ public static string InternetConnectionRequiredTitle {
+ get {
+ return ResourceManager.GetString("InternetConnectionRequiredTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Invalid email address..
+ ///
+ public static string InvalidEmail {
+ get {
+ return ResourceManager.GetString("InvalidEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Invalid Master Password. Try again..
+ ///
+ public static string InvalidMasterPassword {
+ get {
+ return ResourceManager.GetString("InvalidMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Invalid PIN. Try again..
+ ///
+ public static string InvalidPIN {
+ get {
+ return ResourceManager.GetString("InvalidPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Invalid Verification Code..
+ ///
+ public static string InvalidVerificationCode {
+ get {
+ return ResourceManager.GetString("InvalidVerificationCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to IP address.
+ ///
+ public static string IpAddress {
+ get {
+ return ResourceManager.GetString("IpAddress", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item has been deleted..
+ ///
+ public static string ItemDeleted {
+ get {
+ return ResourceManager.GetString("ItemDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item Information.
+ ///
+ public static string ItemInformation {
+ get {
+ return ResourceManager.GetString("ItemInformation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item has been restored..
+ ///
+ public static string ItemRestored {
+ get {
+ return ResourceManager.GetString("ItemRestored", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Items.
+ ///
+ public static string Items {
+ get {
+ return ResourceManager.GetString("Items", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Items for {0}.
+ ///
+ public static string ItemsForUri {
+ get {
+ return ResourceManager.GetString("ItemsForUri", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item has been shared..
+ ///
+ public static string ItemShared {
+ get {
+ return ResourceManager.GetString("ItemShared", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item has been sent to trash..
+ ///
+ public static string ItemSoftDeleted {
+ get {
+ return ResourceManager.GetString("ItemSoftDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Item updated..
+ ///
+ public static string ItemUpdated {
+ get {
+ return ResourceManager.GetString("ItemUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to January.
+ ///
+ public static string January {
+ get {
+ return ResourceManager.GetString("January", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to July.
+ ///
+ public static string July {
+ get {
+ return ResourceManager.GetString("July", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to June.
+ ///
+ public static string June {
+ get {
+ return ResourceManager.GetString("June", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Just now.
+ ///
+ public static string JustNow {
+ get {
+ return ResourceManager.GetString("JustNow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Last Name.
+ ///
+ public static string LastName {
+ get {
+ return ResourceManager.GetString("LastName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Last Sync:.
+ ///
+ public static string LastSync {
+ get {
+ return ResourceManager.GetString("LastSync", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Launch.
+ ///
+ public static string Launch {
+ get {
+ return ResourceManager.GetString("Launch", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Learn More.
+ ///
+ public static string LearnMore {
+ get {
+ return ResourceManager.GetString("LearnMore", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Learn about organizations.
+ ///
+ public static string LearnOrg {
+ get {
+ return ResourceManager.GetString("LearnOrg", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden allows you to share your vault items with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?.
+ ///
+ public static string LearnOrgConfirmation {
+ get {
+ return ResourceManager.GetString("LearnOrgConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Leave Organization.
+ ///
+ public static string LeaveOrganization {
+ get {
+ return ResourceManager.GetString("LeaveOrganization", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Leave {0}?.
+ ///
+ public static string LeaveOrganizationName {
+ get {
+ return ResourceManager.GetString("LeaveOrganizationName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Length.
+ ///
+ public static string Length {
+ get {
+ return ResourceManager.GetString("Length", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to License Number.
+ ///
+ public static string LicenseNumber {
+ get {
+ return ResourceManager.GetString("LicenseNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Light.
+ ///
+ public static string Light {
+ get {
+ return ResourceManager.GetString("Light", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Loading.
+ ///
+ public static string Loading {
+ get {
+ return ResourceManager.GetString("Loading", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Lock.
+ ///
+ public static string Lock {
+ get {
+ return ResourceManager.GetString("Lock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Lock now.
+ ///
+ public static string LockNow {
+ get {
+ return ResourceManager.GetString("LockNow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Logged in as {0} on {1}..
+ ///
+ public static string LoggedInAsOn {
+ get {
+ return ResourceManager.GetString("LoggedInAsOn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Logging in....
+ ///
+ public static string LoggingIn {
+ get {
+ return ResourceManager.GetString("LoggingIn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Log In.
+ ///
+ public static string LogIn {
+ get {
+ return ResourceManager.GetString("LogIn", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login confirmed.
+ ///
+ public static string LogInAccepted {
+ get {
+ return ResourceManager.GetString("LogInAccepted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login attempt by {0} on {1}.
+ ///
+ public static string LogInAttemptByXOnY {
+ get {
+ return ResourceManager.GetString("LogInAttemptByXOnY", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login denied.
+ ///
+ public static string LogInDenied {
+ get {
+ return ResourceManager.GetString("LogInDenied", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your login session has expired..
+ ///
+ public static string LoginExpired {
+ get {
+ return ResourceManager.GetString("LoginExpired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login.
+ ///
+ public static string LogInNoun {
+ get {
+ return ResourceManager.GetString("LogInNoun", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Log in or create a new account to access your secure vault..
+ ///
+ public static string LoginOrCreateNewAccount {
+ get {
+ return ResourceManager.GetString("LoginOrCreateNewAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login requested.
+ ///
+ public static string LogInRequested {
+ get {
+ return ResourceManager.GetString("LogInRequested", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login request has already expired..
+ ///
+ public static string LoginRequestHasAlreadyExpired {
+ get {
+ return ResourceManager.GetString("LoginRequestHasAlreadyExpired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Logins.
+ ///
+ public static string Logins {
+ get {
+ return ResourceManager.GetString("Logins", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enterprise Single Sign-On.
+ ///
+ public static string LogInSso {
+ get {
+ return ResourceManager.GetString("LogInSso", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Currently unable to login with SSO.
+ ///
+ public static string LoginSsoError {
+ get {
+ return ResourceManager.GetString("LoginSsoError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin..
+ ///
+ public static string LogInSsoSummary {
+ get {
+ return ResourceManager.GetString("LogInSsoSummary", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login Unavailable.
+ ///
+ public static string LoginUnavailable {
+ get {
+ return ResourceManager.GetString("LoginUnavailable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Log out.
+ ///
+ public static string LogOut {
+ get {
+ return ResourceManager.GetString("LogOut", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to log out?.
+ ///
+ public static string LogoutConfirmation {
+ get {
+ return ResourceManager.GetString("LogoutConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Lost authenticator app?.
+ ///
+ public static string Lost2FAApp {
+ get {
+ return ResourceManager.GetString("Lost2FAApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Lowercase (A to Z).
+ ///
+ public static string LowercaseAtoZ {
+ get {
+ return ResourceManager.GetString("LowercaseAtoZ", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Manage.
+ ///
+ public static string Manage {
+ get {
+ return ResourceManager.GetString("Manage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to March.
+ ///
+ public static string March {
+ get {
+ return ResourceManager.GetString("March", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master Password.
+ ///
+ public static string MasterPassword {
+ get {
+ return ResourceManager.GetString("MasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password confirmation is not correct..
+ ///
+ public static string MasterPasswordConfirmationValMessage {
+ get {
+ return ResourceManager.GetString("MasterPasswordConfirmationValMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it..
+ ///
+ public static string MasterPasswordDescription {
+ get {
+ return ResourceManager.GetString("MasterPasswordDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master Password Hint (optional).
+ ///
+ public static string MasterPasswordHint {
+ get {
+ return ResourceManager.GetString("MasterPasswordHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to A master password hint can help you remember your password if you forget it..
+ ///
+ public static string MasterPasswordHintDescription {
+ get {
+ return ResourceManager.GetString("MasterPasswordHintDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master password must be at least 8 characters long..
+ ///
+ public static string MasterPasswordLengthValMessage {
+ get {
+ return ResourceManager.GetString("MasterPasswordLengthValMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to One or more organization policies require your master password to meet the following requirements:.
+ ///
+ public static string MasterPasswordPolicyInEffect {
+ get {
+ return ResourceManager.GetString("MasterPasswordPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password does not meet organization requirements. Please check the policy information and try again..
+ ///
+ public static string MasterPasswordPolicyValidationMessage {
+ get {
+ return ResourceManager.GetString("MasterPasswordPolicyValidationMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Invalid Password.
+ ///
+ public static string MasterPasswordPolicyValidationTitle {
+ get {
+ return ResourceManager.GetString("MasterPasswordPolicyValidationTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Match Detection.
+ ///
+ public static string MatchDetection {
+ get {
+ return ResourceManager.GetString("MatchDetection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Matching Items.
+ ///
+ public static string MatchingItems {
+ get {
+ return ResourceManager.GetString("MatchingItems", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Maximum file size is 100 MB..
+ ///
+ public static string MaxFileSize {
+ get {
+ return ResourceManager.GetString("MaxFileSize", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Maximum Access Count.
+ ///
+ public static string MaximumAccessCount {
+ get {
+ return ResourceManager.GetString("MaximumAccessCount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If set, users will no longer be able to access this Send once the maximum access count is reached..
+ ///
+ public static string MaximumAccessCountInfo {
+ get {
+ return ResourceManager.GetString("MaximumAccessCountInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Max access count reached.
+ ///
+ public static string MaximumAccessCountReached {
+ get {
+ return ResourceManager.GetString("MaximumAccessCountReached", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to May.
+ ///
+ public static string May {
+ get {
+ return ResourceManager.GetString("May", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Middle Name.
+ ///
+ public static string MiddleName {
+ get {
+ return ResourceManager.GetString("MiddleName", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Minimum Numbers.
+ ///
+ public static string MinNumbers {
+ get {
+ return ResourceManager.GetString("MinNumbers", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Minimum Special.
+ ///
+ public static string MinSpecial {
+ get {
+ return ResourceManager.GetString("MinSpecial", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Miscellaneous.
+ ///
+ public static string Miscellaneous {
+ get {
+ return ResourceManager.GetString("Miscellaneous", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to More.
+ ///
+ public static string More {
+ get {
+ return ResourceManager.GetString("More", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to More Settings.
+ ///
+ public static string MoreSettings {
+ get {
+ return ResourceManager.GetString("MoreSettings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Move.
+ ///
+ public static string Move {
+ get {
+ return ResourceManager.GetString("Move", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} moved to {1}..
+ ///
+ public static string MovedItemToOrg {
+ get {
+ return ResourceManager.GetString("MovedItemToOrg", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Move Down.
+ ///
+ public static string MoveDown {
+ get {
+ return ResourceManager.GetString("MoveDown", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Move to Organization.
+ ///
+ public static string MoveToOrganization {
+ get {
+ return ResourceManager.GetString("MoveToOrganization", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved..
+ ///
+ public static string MoveToOrgDesc {
+ get {
+ return ResourceManager.GetString("MoveToOrgDesc", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Move Up.
+ ///
+ public static string MoveUp {
+ get {
+ return ResourceManager.GetString("MoveUp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Mr.
+ ///
+ public static string Mr {
+ get {
+ return ResourceManager.GetString("Mr", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Mrs.
+ ///
+ public static string Mrs {
+ get {
+ return ResourceManager.GetString("Mrs", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ms.
+ ///
+ public static string Ms {
+ get {
+ return ResourceManager.GetString("Ms", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You must log into the main Bitwarden app before you can use the extension..
+ ///
+ public static string MustLogInMainApp {
+ get {
+ return ResourceManager.GetString("MustLogInMainApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You must log into the main Bitwarden app before you can use AutoFill..
+ ///
+ public static string MustLogInMainAppAutofill {
+ get {
+ return ResourceManager.GetString("MustLogInMainAppAutofill", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to My Vault.
+ ///
+ public static string MyVault {
+ get {
+ return ResourceManager.GetString("MyVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Name.
+ ///
+ public static string Name {
+ get {
+ return ResourceManager.GetString("Name", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to A friendly name to describe this Send..
+ ///
+ public static string NameInfo {
+ get {
+ return ResourceManager.GetString("NameInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Near.
+ ///
+ public static string Near {
+ get {
+ return ResourceManager.GetString("Near", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Never.
+ ///
+ public static string Never {
+ get {
+ return ResourceManager.GetString("Never", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected..
+ ///
+ public static string NeverLockWarning {
+ get {
+ return ResourceManager.GetString("NeverLockWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New Custom Field.
+ ///
+ public static string NewCustomField {
+ get {
+ return ResourceManager.GetString("NewCustomField", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New item created..
+ ///
+ public static string NewItemCreated {
+ get {
+ return ResourceManager.GetString("NewItemCreated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New Password.
+ ///
+ public static string NewPassword {
+ get {
+ return ResourceManager.GetString("NewPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New send created..
+ ///
+ public static string NewSendCreated {
+ get {
+ return ResourceManager.GetString("NewSendCreated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to New URI.
+ ///
+ public static string NewUri {
+ get {
+ return ResourceManager.GetString("NewUri", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No.
+ ///
+ public static string No {
+ get {
+ return ResourceManager.GetString("No", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no attachments..
+ ///
+ public static string NoAttachments {
+ get {
+ return ResourceManager.GetString("NoAttachments", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no collections to list..
+ ///
+ public static string NoCollectionsToList {
+ get {
+ return ResourceManager.GetString("NoCollectionsToList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no favorites in your vault..
+ ///
+ public static string NoFavorites {
+ get {
+ return ResourceManager.GetString("NoFavorites", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No file chosen.
+ ///
+ public static string NoFileChosen {
+ get {
+ return ResourceManager.GetString("NoFileChosen", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no folders to list..
+ ///
+ public static string NoFoldersToList {
+ get {
+ return ResourceManager.GetString("NoFoldersToList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in your vault..
+ ///
+ public static string NoItems {
+ get {
+ return ResourceManager.GetString("NoItems", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in this collection..
+ ///
+ public static string NoItemsCollection {
+ get {
+ return ResourceManager.GetString("NoItemsCollection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in this folder..
+ ///
+ public static string NoItemsFolder {
+ get {
+ return ResourceManager.GetString("NoItemsFolder", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in your vault for {0}..
+ ///
+ public static string NoItemsForUri {
+ get {
+ return ResourceManager.GetString("NoItemsForUri", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in your vault for this website/app. Tap to add one..
+ ///
+ public static string NoItemsTap {
+ get {
+ return ResourceManager.GetString("NoItemsTap", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items to list..
+ ///
+ public static string NoItemsToList {
+ get {
+ return ResourceManager.GetString("NoItemsToList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no items in the trash..
+ ///
+ public static string NoItemsTrash {
+ get {
+ return ResourceManager.GetString("NoItemsTrash", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No organizations to list..
+ ///
+ public static string NoOrgsToList {
+ get {
+ return ResourceManager.GetString("NoOrgsToList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No passwords to list..
+ ///
+ public static string NoPasswordsToList {
+ get {
+ return ResourceManager.GetString("NoPasswordsToList", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Nord.
+ ///
+ public static string Nord {
+ get {
+ return ResourceManager.GetString("Nord", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There are no Sends in your account..
+ ///
+ public static string NoSends {
+ get {
+ return ResourceManager.GetString("NoSends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Notes.
+ ///
+ public static string Notes {
+ get {
+ return ResourceManager.GetString("Notes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Private notes about this Send..
+ ///
+ public static string NotesInfo {
+ get {
+ return ResourceManager.GetString("NotesInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to No thanks.
+ ///
+ public static string NoThanks {
+ get {
+ return ResourceManager.GetString("NoThanks", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app)..
+ ///
+ public static string NoTwoStepAvailable {
+ get {
+ return ResourceManager.GetString("NoTwoStepAvailable", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This login does not have a username or password configured..
+ ///
+ public static string NoUsernamePasswordConfigured {
+ get {
+ return ResourceManager.GetString("NoUsernamePasswordConfigured", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to November.
+ ///
+ public static string November {
+ get {
+ return ResourceManager.GetString("November", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Number.
+ ///
+ public static string Number {
+ get {
+ return ResourceManager.GetString("Number", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Number of Words.
+ ///
+ public static string NumberOfWords {
+ get {
+ return ResourceManager.GetString("NumberOfWords", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Numbers (0 to 9).
+ ///
+ public static string NumbersZeroToNine {
+ get {
+ return ResourceManager.GetString("NumbersZeroToNine", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to October.
+ ///
+ public static string October {
+ get {
+ return ResourceManager.GetString("October", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Off.
+ ///
+ public static string Off {
+ get {
+ return ResourceManager.GetString("Off", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ok.
+ ///
+ public static string Ok {
+ get {
+ return ResourceManager.GetString("Ok", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ok, got it!.
+ ///
+ public static string OkGotIt {
+ get {
+ return ResourceManager.GetString("OkGotIt", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to On.
+ ///
+ public static string On {
+ get {
+ return ResourceManager.GetString("On", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Once the key is successfully entered,
+ ///select Add TOTP to store the key safely.
+ ///
+ public static string OnceTheKeyIsSuccessfullyEntered {
+ get {
+ return ResourceManager.GetString("OnceTheKeyIsSuccessfullyEntered", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 day.
+ ///
+ public static string OneDay {
+ get {
+ return ResourceManager.GetString("OneDay", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 hour.
+ ///
+ public static string OneHour {
+ get {
+ return ResourceManager.GetString("OneHour", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 1 minute.
+ ///
+ public static string OneMinute {
+ get {
+ return ResourceManager.GetString("OneMinute", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to On app restart.
+ ///
+ public static string OnRestart {
+ get {
+ return ResourceManager.GetString("OnRestart", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Open.
+ ///
+ public static string Open {
+ get {
+ return ResourceManager.GetString("Open", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Option defaults are set from the main Bitwarden app's password generator tool..
+ ///
+ public static string OptionDefaults {
+ get {
+ return ResourceManager.GetString("OptionDefaults", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Options.
+ ///
+ public static string Options {
+ get {
+ return ResourceManager.GetString("Options", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Options are collapsed, tap to expand..
+ ///
+ public static string OptionsCollapsed {
+ get {
+ return ResourceManager.GetString("OptionsCollapsed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Options are expanded, tap to collapse..
+ ///
+ public static string OptionsExpanded {
+ get {
+ return ResourceManager.GetString("OptionsExpanded", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Organization.
+ ///
+ public static string Organization {
+ get {
+ return ResourceManager.GetString("Organization", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Organization Identifier.
+ ///
+ public static string OrgIdentifier {
+ get {
+ return ResourceManager.GetString("OrgIdentifier", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Other.
+ ///
+ public static string Other {
+ get {
+ return ResourceManager.GetString("Other", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Permission.
+ ///
+ public static string OverlayPermission {
+ get {
+ return ResourceManager.GetString("OverlayPermission", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Ownership.
+ ///
+ public static string Ownership {
+ get {
+ return ResourceManager.GetString("Ownership", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Passphrase.
+ ///
+ public static string Passphrase {
+ get {
+ return ResourceManager.GetString("Passphrase", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Passport Number.
+ ///
+ public static string PassportNumber {
+ get {
+ return ResourceManager.GetString("PassportNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password.
+ ///
+ public static string Password {
+ get {
+ return ResourceManager.GetString("Password", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password auto-fill.
+ ///
+ public static string PasswordAutofill {
+ get {
+ return ResourceManager.GetString("PasswordAutofill", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master password confirmation.
+ ///
+ public static string PasswordConfirmation {
+ get {
+ return ResourceManager.GetString("PasswordConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This action is protected, to continue please re-enter your master password to verify your identity..
+ ///
+ public static string PasswordConfirmationDesc {
+ get {
+ return ResourceManager.GetString("PasswordConfirmationDesc", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This password has been exposed {0} time(s) in data breaches. You should change it..
+ ///
+ public static string PasswordExposed {
+ get {
+ return ResourceManager.GetString("PasswordExposed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password generated..
+ ///
+ public static string PasswordGenerated {
+ get {
+ return ResourceManager.GetString("PasswordGenerated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password Generator.
+ ///
+ public static string PasswordGenerator {
+ get {
+ return ResourceManager.GetString("PasswordGenerator", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to One or more organization policies are affecting your generator settings.
+ ///
+ public static string PasswordGeneratorPolicyInEffect {
+ get {
+ return ResourceManager.GetString("PasswordGeneratorPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password Hint.
+ ///
+ public static string PasswordHint {
+ get {
+ return ResourceManager.GetString("PasswordHint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to We've sent you an email with your master password hint..
+ ///
+ public static string PasswordHintAlert {
+ get {
+ return ResourceManager.GetString("PasswordHintAlert", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password History.
+ ///
+ public static string PasswordHistory {
+ get {
+ return ResourceManager.GetString("PasswordHistory", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Optionally require a password for users to access this Send..
+ ///
+ public static string PasswordInfo {
+ get {
+ return ResourceManager.GetString("PasswordInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password is not visible, tap to show..
+ ///
+ public static string PasswordIsNotVisibleTapToShow {
+ get {
+ return ResourceManager.GetString("PasswordIsNotVisibleTapToShow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password is visible, tap to hide..
+ ///
+ public static string PasswordIsVisibleTapToHide {
+ get {
+ return ResourceManager.GetString("PasswordIsVisibleTapToHide", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to overwrite the current password?.
+ ///
+ public static string PasswordOverrideAlert {
+ get {
+ return ResourceManager.GetString("PasswordOverrideAlert", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Master password re-prompt.
+ ///
+ public static string PasswordPrompt {
+ get {
+ return ResourceManager.GetString("PasswordPrompt", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This password was not found in any known data breaches. It should be safe to use..
+ ///
+ public static string PasswordSafe {
+ get {
+ return ResourceManager.GetString("PasswordSafe", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password Type.
+ ///
+ public static string PasswordType {
+ get {
+ return ResourceManager.GetString("PasswordType", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Pending deletion.
+ ///
+ public static string PendingDelete {
+ get {
+ return ResourceManager.GetString("PendingDelete", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to An organization policy is affecting your ownership options..
+ ///
+ public static string PersonalOwnershipPolicyInEffect {
+ get {
+ return ResourceManager.GetString("PersonalOwnershipPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections..
+ ///
+ public static string PersonalOwnershipSubmitError {
+ get {
+ return ResourceManager.GetString("PersonalOwnershipSubmitError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Phone.
+ ///
+ public static string Phone {
+ get {
+ return ResourceManager.GetString("Phone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Photos.
+ ///
+ public static string Photos {
+ get {
+ return ResourceManager.GetString("Photos", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to PIN.
+ ///
+ public static string PIN {
+ get {
+ return ResourceManager.GetString("PIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Do you want to require unlocking with your master password when the application is restarted?.
+ ///
+ public static string PINRequireMasterPasswordRestart {
+ get {
+ return ResourceManager.GetString("PINRequireMasterPasswordRestart", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Plus Addressed Email.
+ ///
+ public static string PlusAddressedEmail {
+ get {
+ return ResourceManager.GetString("PlusAddressedEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use your email provider's subaddress capabilities.
+ ///
+ public static string PlusAddressedEmailDescription {
+ get {
+ return ResourceManager.GetString("PlusAddressedEmailDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Point your camera at the QR Code.
+ ///Scanning will happen automatically..
+ ///
+ public static string PointYourCameraAtTheQRCode {
+ get {
+ return ResourceManager.GetString("PointYourCameraAtTheQRCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Contain one or more lowercase characters.
+ ///
+ public static string PolicyInEffectLowercase {
+ get {
+ return ResourceManager.GetString("PolicyInEffectLowercase", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Minimum complexity score of {0}.
+ ///
+ public static string PolicyInEffectMinComplexity {
+ get {
+ return ResourceManager.GetString("PolicyInEffectMinComplexity", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Minimum length of {0}.
+ ///
+ public static string PolicyInEffectMinLength {
+ get {
+ return ResourceManager.GetString("PolicyInEffectMinLength", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Contain one or more numbers.
+ ///
+ public static string PolicyInEffectNumbers {
+ get {
+ return ResourceManager.GetString("PolicyInEffectNumbers", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Contain one or more of the following special characters: {0}.
+ ///
+ public static string PolicyInEffectSpecial {
+ get {
+ return ResourceManager.GetString("PolicyInEffectSpecial", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Contain one or more uppercase characters.
+ ///
+ public static string PolicyInEffectUppercase {
+ get {
+ return ResourceManager.GetString("PolicyInEffectUppercase", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Possible Matching Items.
+ ///
+ public static string PossibleMatchingItems {
+ get {
+ return ResourceManager.GetString("PossibleMatchingItems", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to A premium membership is required to use this feature..
+ ///
+ public static string PremiumRequired {
+ get {
+ return ResourceManager.GetString("PremiumRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Premium subscription required.
+ ///
+ public static string PremiumSubscriptionRequired {
+ get {
+ return ResourceManager.GetString("PremiumSubscriptionRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Privacy Policy.
+ ///
+ public static string PrivacyPolicy {
+ get {
+ return ResourceManager.GetString("PrivacyPolicy", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications..
+ ///
+ public static string PushNotificationAlert {
+ get {
+ return ResourceManager.GetString("PushNotificationAlert", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Random.
+ ///
+ public static string Random {
+ get {
+ return ResourceManager.GetString("Random", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Random Word.
+ ///
+ public static string RandomWord {
+ get {
+ return ResourceManager.GetString("RandomWord", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Rate the app.
+ ///
+ public static string RateTheApp {
+ get {
+ return ResourceManager.GetString("RateTheApp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Please consider helping us out with a good review!.
+ ///
+ public static string RateTheAppDescription {
+ get {
+ return ResourceManager.GetString("RateTheAppDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Receive push notifications for new login requests.
+ ///
+ public static string ReceivePushNotificationsForNewLoginRequests {
+ get {
+ return ResourceManager.GetString("ReceivePushNotificationsForNewLoginRequests", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Recovery Code.
+ ///
+ public static string RecoveryCodeTitle {
+ get {
+ return ResourceManager.GetString("RecoveryCodeTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Regenerate Password.
+ ///
+ public static string RegeneratePassword {
+ get {
+ return ResourceManager.GetString("RegeneratePassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Regular expression.
+ ///
+ public static string RegEx {
+ get {
+ return ResourceManager.GetString("RegEx", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remember me.
+ ///
+ public static string RememberMe {
+ get {
+ return ResourceManager.GetString("RememberMe", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remove.
+ ///
+ public static string Remove {
+ get {
+ return ResourceManager.GetString("Remove", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remove Account.
+ ///
+ public static string RemoveAccount {
+ get {
+ return ResourceManager.GetString("RemoveAccount", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Are you sure you want to remove this account?.
+ ///
+ public static string RemoveAccountConfirmation {
+ get {
+ return ResourceManager.GetString("RemoveAccountConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remove Master Password.
+ ///
+ public static string RemoveMasterPassword {
+ get {
+ return ResourceManager.GetString("RemoveMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login..
+ ///
+ public static string RemoveMasterPasswordWarning {
+ get {
+ return ResourceManager.GetString("RemoveMasterPasswordWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to If you do not want to remove your Master Password, you may leave this organization..
+ ///
+ public static string RemoveMasterPasswordWarning2 {
+ get {
+ return ResourceManager.GetString("RemoveMasterPasswordWarning2", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Remove Password.
+ ///
+ public static string RemovePassword {
+ get {
+ return ResourceManager.GetString("RemovePassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Removing password.
+ ///
+ public static string RemovingSendPassword {
+ get {
+ return ResourceManager.GetString("RemovingSendPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Request one-time password.
+ ///
+ public static string RequestOTP {
+ get {
+ return ResourceManager.GetString("RequestOTP", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Resend Code.
+ ///
+ public static string ResendCode {
+ get {
+ return ResourceManager.GetString("ResendCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password..
+ ///
+ public static string ResetPasswordAutoEnrollInviteWarning {
+ get {
+ return ResourceManager.GetString("ResetPasswordAutoEnrollInviteWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Restore.
+ ///
+ public static string Restore {
+ get {
+ return ResourceManager.GetString("Restore", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Restoring....
+ ///
+ public static string Restoring {
+ get {
+ return ResourceManager.GetString("Restoring", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Re-type Master Password.
+ ///
+ public static string RetypeMasterPassword {
+ get {
+ return ResourceManager.GetString("RetypeMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Save.
+ ///
+ public static string Save {
+ get {
+ return ResourceManager.GetString("Save", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Attachment saved successfully.
+ ///
+ public static string SaveAttachmentSuccess {
+ get {
+ return ResourceManager.GetString("SaveAttachmentSuccess", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Saving....
+ ///
+ public static string Saving {
+ get {
+ return ResourceManager.GetString("Saving", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Scan QR Code.
+ ///
+ public static string ScanQRCode {
+ get {
+ return ResourceManager.GetString("ScanQRCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Scan QR Code.
+ ///
+ public static string ScanQrTitle {
+ get {
+ return ResourceManager.GetString("ScanQrTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search.
+ ///
+ public static string Search {
+ get {
+ return ResourceManager.GetString("Search", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search collection.
+ ///
+ public static string SearchCollection {
+ get {
+ return ResourceManager.GetString("SearchCollection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search File Sends.
+ ///
+ public static string SearchFileSends {
+ get {
+ return ResourceManager.GetString("SearchFileSends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search {0}.
+ ///
+ public static string SearchGroup {
+ get {
+ return ResourceManager.GetString("SearchGroup", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search Sends.
+ ///
+ public static string SearchSends {
+ get {
+ return ResourceManager.GetString("SearchSends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search Text Sends.
+ ///
+ public static string SearchTextSends {
+ get {
+ return ResourceManager.GetString("SearchTextSends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search trash.
+ ///
+ public static string SearchTrash {
+ get {
+ return ResourceManager.GetString("SearchTrash", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Search Vault.
+ ///
+ public static string SearchVault {
+ get {
+ return ResourceManager.GetString("SearchVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Secure Notes.
+ ///
+ public static string SecureNotes {
+ get {
+ return ResourceManager.GetString("SecureNotes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Security.
+ ///
+ public static string Security {
+ get {
+ return ResourceManager.GetString("Security", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Security Code.
+ ///
+ public static string SecurityCode {
+ get {
+ return ResourceManager.GetString("SecurityCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Select.
+ ///
+ public static string Select {
+ get {
+ return ResourceManager.GetString("Select", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to .
+ ///
+ public static string SelectAddTotpToStoreTheKeySafely {
+ get {
+ return ResourceManager.GetString("SelectAddTotpToStoreTheKeySafely", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You must select at least one collection..
+ ///
+ public static string SelectOneCollection {
+ get {
+ return ResourceManager.GetString("SelectOneCollection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to What type of custom field do you want to add?.
+ ///
+ public static string SelectTypeField {
+ get {
+ return ResourceManager.GetString("SelectTypeField", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Self-hosted Environment.
+ ///
+ public static string SelfHostedEnvironment {
+ get {
+ return ResourceManager.GetString("SelfHostedEnvironment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Specify the base URL of your on-premise hosted Bitwarden installation..
+ ///
+ public static string SelfHostedEnvironmentFooter {
+ get {
+ return ResourceManager.GetString("SelfHostedEnvironmentFooter", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send.
+ ///
+ public static string Send {
+ get {
+ return ResourceManager.GetString("Send", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send Code.
+ ///
+ public static string SendCode {
+ get {
+ return ResourceManager.GetString("SendCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send has been deleted..
+ ///
+ public static string SendDeleted {
+ get {
+ return ResourceManager.GetString("SendDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Due to an enterprise policy, you are only able to delete an existing Send..
+ ///
+ public static string SendDisabledWarning {
+ get {
+ return ResourceManager.GetString("SendDisabledWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You must verify your email to use files with Send. You can verify your email in the web vault..
+ ///
+ public static string SendFileEmailVerificationRequired {
+ get {
+ return ResourceManager.GetString("SendFileEmailVerificationRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Free accounts are restricted to sharing text only. A premium membership is required to use files with Send..
+ ///
+ public static string SendFilePremiumRequired {
+ get {
+ return ResourceManager.GetString("SendFilePremiumRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sending.
+ ///
+ public static string Sending {
+ get {
+ return ResourceManager.GetString("Sending", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sending code.
+ ///
+ public static string SendingCode {
+ get {
+ return ResourceManager.GetString("SendingCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send link.
+ ///
+ public static string SendLink {
+ get {
+ return ResourceManager.GetString("SendLink", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to One or more organization policies are affecting your Send options..
+ ///
+ public static string SendOptionsPolicyInEffect {
+ get {
+ return ResourceManager.GetString("SendOptionsPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Password has been removed..
+ ///
+ public static string SendPasswordRemoved {
+ get {
+ return ResourceManager.GetString("SendPasswordRemoved", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sends.
+ ///
+ public static string Sends {
+ get {
+ return ResourceManager.GetString("Sends", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send updated..
+ ///
+ public static string SendUpdated {
+ get {
+ return ResourceManager.GetString("SendUpdated", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send verification code email again.
+ ///
+ public static string SendVerificationCodeAgain {
+ get {
+ return ResourceManager.GetString("SendVerificationCodeAgain", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Send a verification code to your email.
+ ///
+ public static string SendVerificationCodeToEmail {
+ get {
+ return ResourceManager.GetString("SendVerificationCodeToEmail", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to September.
+ ///
+ public static string September {
+ get {
+ return ResourceManager.GetString("September", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Server URL.
+ ///
+ public static string ServerUrl {
+ get {
+ return ResourceManager.GetString("ServerUrl", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Service.
+ ///
+ public static string Service {
+ get {
+ return ResourceManager.GetString("Service", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Set Master Password.
+ ///
+ public static string SetMasterPassword {
+ get {
+ return ResourceManager.GetString("SetMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to In order to complete logging in with SSO, please set a master password to access and protect your vault..
+ ///
+ public static string SetMasterPasswordSummary {
+ get {
+ return ResourceManager.GetString("SetMasterPasswordSummary", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Set PIN.
+ ///
+ public static string SetPIN {
+ get {
+ return ResourceManager.GetString("SetPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application..
+ ///
+ public static string SetPINDescription {
+ get {
+ return ResourceManager.GetString("SetPINDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Enter a 4 digit PIN code to unlock the app with..
+ ///
+ public static string SetPINDirection {
+ get {
+ return ResourceManager.GetString("SetPINDirection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Settings.
+ ///
+ public static string Settings {
+ get {
+ return ResourceManager.GetString("Settings", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Set up TOTP.
+ ///
+ public static string SetupTotp {
+ get {
+ return ResourceManager.GetString("SetupTotp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 7 days.
+ ///
+ public static string SevenDays {
+ get {
+ return ResourceManager.GetString("SevenDays", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Share.
+ ///
+ public static string Share {
+ get {
+ return ResourceManager.GetString("Share", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Shared.
+ ///
+ public static string Shared {
+ get {
+ return ResourceManager.GetString("Shared", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Share Item.
+ ///
+ public static string ShareItem {
+ get {
+ return ResourceManager.GetString("ShareItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Share Link.
+ ///
+ public static string ShareLink {
+ get {
+ return ResourceManager.GetString("ShareLink", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Share this Send upon save.
+ ///
+ public static string ShareOnSave {
+ get {
+ return ResourceManager.GetString("ShareOnSave", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Show.
+ ///
+ public static string Show {
+ get {
+ return ResourceManager.GetString("Show", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Show website icons.
+ ///
+ public static string ShowWebsiteIcons {
+ get {
+ return ResourceManager.GetString("ShowWebsiteIcons", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Show a recognizable image next to each login..
+ ///
+ public static string ShowWebsiteIconsDescription {
+ get {
+ return ResourceManager.GetString("ShowWebsiteIconsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to SimpleLogin.
+ ///
+ public static string SimpleLogin {
+ get {
+ return ResourceManager.GetString("SimpleLogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sending to trash....
+ ///
+ public static string SoftDeleting {
+ get {
+ return ResourceManager.GetString("SoftDeleting", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Special Characters (!@#$%^&*).
+ ///
+ public static string SpecialCharacters {
+ get {
+ return ResourceManager.GetString("SpecialCharacters", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Social Security Number.
+ ///
+ public static string SSN {
+ get {
+ return ResourceManager.GetString("SSN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Starts with.
+ ///
+ public static string StartsWith {
+ get {
+ return ResourceManager.GetString("StartsWith", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to State / Province.
+ ///
+ public static string StateProvince {
+ get {
+ return ResourceManager.GetString("StateProvince", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Status.
+ ///
+ public static string Status {
+ get {
+ return ResourceManager.GetString("Status", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Submit.
+ ///
+ public static string Submit {
+ get {
+ return ResourceManager.GetString("Submit", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Submit crash logs.
+ ///
+ public static string SubmitCrashLogs {
+ get {
+ return ResourceManager.GetString("SubmitCrashLogs", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Help Bitwarden improve app stability by submitting crash reports..
+ ///
+ public static string SubmitCrashLogsDescription {
+ get {
+ return ResourceManager.GetString("SubmitCrashLogsDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Submitting....
+ ///
+ public static string Submitting {
+ get {
+ return ResourceManager.GetString("Submitting", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Would you like to switch to it now?.
+ ///
+ public static string SwitchToAlreadyAddedAccountConfirmation {
+ get {
+ return ResourceManager.GetString("SwitchToAlreadyAddedAccountConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sync.
+ ///
+ public static string Sync {
+ get {
+ return ResourceManager.GetString("Sync", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Syncing....
+ ///
+ public static string Syncing {
+ get {
+ return ResourceManager.GetString("Syncing", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Syncing complete..
+ ///
+ public static string SyncingComplete {
+ get {
+ return ResourceManager.GetString("SyncingComplete", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Syncing failed..
+ ///
+ public static string SyncingFailed {
+ get {
+ return ResourceManager.GetString("SyncingFailed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Sync vault now.
+ ///
+ public static string SyncVaultNow {
+ get {
+ return ResourceManager.GetString("SyncVaultNow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tap to go back.
+ ///
+ public static string TapToGoBack {
+ get {
+ return ResourceManager.GetString("TapToGoBack", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 10 seconds.
+ ///
+ public static string TenSeconds {
+ get {
+ return ResourceManager.GetString("TenSeconds", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Terms of Service.
+ ///
+ public static string TermsOfService {
+ get {
+ return ResourceManager.GetString("TermsOfService", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Text.
+ ///
+ public static string Text {
+ get {
+ return ResourceManager.GetString("Text", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Text type is not selected, tap to select..
+ ///
+ public static string TextTypeIsNotSelected {
+ get {
+ return ResourceManager.GetString("TextTypeIsNotSelected", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Text type is selected..
+ ///
+ public static string TextTypeIsSelected {
+ get {
+ return ResourceManager.GetString("TextTypeIsSelected", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Thank You.
+ ///
+ public static string ThankYou {
+ get {
+ return ResourceManager.GetString("ThankYou", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Theme.
+ ///
+ public static string Theme {
+ get {
+ return ResourceManager.GetString("Theme", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your theme changes will apply when the app is restarted..
+ ///
+ public static string ThemeAppliedOnRestart {
+ get {
+ return ResourceManager.GetString("ThemeAppliedOnRestart", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Default (System).
+ ///
+ public static string ThemeDefault {
+ get {
+ return ResourceManager.GetString("ThemeDefault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Change the application's color theme..
+ ///
+ public static string ThemeDescription {
+ get {
+ return ResourceManager.GetString("ThemeDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 30 days.
+ ///
+ public static string ThirtyDays {
+ get {
+ return ResourceManager.GetString("ThirtyDays", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 30 minutes.
+ ///
+ public static string ThirtyMinutes {
+ get {
+ return ResourceManager.GetString("ThirtyMinutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 30 seconds.
+ ///
+ public static string ThirtySeconds {
+ get {
+ return ResourceManager.GetString("ThirtySeconds", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 3 days.
+ ///
+ public static string ThreeDays {
+ get {
+ return ResourceManager.GetString("ThreeDays", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Time.
+ ///
+ public static string Time {
+ get {
+ return ResourceManager.GetString("Time", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Title.
+ ///
+ public static string Title {
+ get {
+ return ResourceManager.GetString("Title", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Toggle Visibility.
+ ///
+ public static string ToggleVisibility {
+ get {
+ return ResourceManager.GetString("ToggleVisibility", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Tools.
+ ///
+ public static string Tools {
+ get {
+ return ResourceManager.GetString("Tools", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to TOTP.
+ ///
+ public static string Totp {
+ get {
+ return ResourceManager.GetString("Totp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Touch ID.
+ ///
+ public static string TouchID {
+ get {
+ return ResourceManager.GetString("TouchID", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Translations.
+ ///
+ public static string Translations {
+ get {
+ return ResourceManager.GetString("Translations", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Trash.
+ ///
+ public static string Trash {
+ get {
+ return ResourceManager.GetString("Trash", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Try again.
+ ///
+ public static string TryAgain {
+ get {
+ return ResourceManager.GetString("TryAgain", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 20 seconds.
+ ///
+ public static string TwentySeconds {
+ get {
+ return ResourceManager.GetString("TwentySeconds", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 2 days.
+ ///
+ public static string TwoDays {
+ get {
+ return ResourceManager.GetString("TwoDays", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to 2 minutes.
+ ///
+ public static string TwoMinutes {
+ get {
+ return ResourceManager.GetString("TwoMinutes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Two-step login.
+ ///
+ public static string TwoStepLogin {
+ get {
+ return ResourceManager.GetString("TwoStepLogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?.
+ ///
+ public static string TwoStepLoginConfirmation {
+ get {
+ return ResourceManager.GetString("TwoStepLoginConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Two-step Login Options.
+ ///
+ public static string TwoStepLoginOptions {
+ get {
+ return ResourceManager.GetString("TwoStepLoginOptions", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Type.
+ ///
+ public static string Type {
+ get {
+ return ResourceManager.GetString("Type", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Card.
+ ///
+ public static string TypeCard {
+ get {
+ return ResourceManager.GetString("TypeCard", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to File.
+ ///
+ public static string TypeFile {
+ get {
+ return ResourceManager.GetString("TypeFile", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The file you want to send..
+ ///
+ public static string TypeFileInfo {
+ get {
+ return ResourceManager.GetString("TypeFileInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Identity.
+ ///
+ public static string TypeIdentity {
+ get {
+ return ResourceManager.GetString("TypeIdentity", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Login.
+ ///
+ public static string TypeLogin {
+ get {
+ return ResourceManager.GetString("TypeLogin", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Types.
+ ///
+ public static string Types {
+ get {
+ return ResourceManager.GetString("Types", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Secure Note.
+ ///
+ public static string TypeSecureNote {
+ get {
+ return ResourceManager.GetString("TypeSecureNote", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Text.
+ ///
+ public static string TypeText {
+ get {
+ return ResourceManager.GetString("TypeText", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The text you want to send..
+ ///
+ public static string TypeTextInfo {
+ get {
+ return ResourceManager.GetString("TypeTextInfo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unable to download file..
+ ///
+ public static string UnableToDownloadFile {
+ get {
+ return ResourceManager.GetString("UnableToDownloadFile", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your device cannot open this type of file..
+ ///
+ public static string UnableToOpenFile {
+ get {
+ return ResourceManager.GetString("UnableToOpenFile", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to There was a problem saving this attachment. If the problem persists, you can save it from the web vault..
+ ///
+ public static string UnableToSaveAttachment {
+ get {
+ return ResourceManager.GetString("UnableToSaveAttachment", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unknown {0} error occurred..
+ ///
+ public static string UnknownXErrorMessage {
+ get {
+ return ResourceManager.GetString("UnknownXErrorMessage", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unlock.
+ ///
+ public static string Unlock {
+ get {
+ return ResourceManager.GetString("Unlock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unlock Vault.
+ ///
+ public static string UnlockVault {
+ get {
+ return ResourceManager.GetString("UnlockVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unlock with {0}.
+ ///
+ public static string UnlockWith {
+ get {
+ return ResourceManager.GetString("UnlockWith", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unlock with PIN code.
+ ///
+ public static string UnlockWithPIN {
+ get {
+ return ResourceManager.GetString("UnlockWithPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Updated Master Password.
+ ///
+ public static string UpdatedMasterPassword {
+ get {
+ return ResourceManager.GetString("UpdatedMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to You cannot use this feature until you update your encryption key..
+ ///
+ public static string UpdateKey {
+ get {
+ return ResourceManager.GetString("UpdateKey", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Update Master Password.
+ ///
+ public static string UpdateMasterPassword {
+ get {
+ return ResourceManager.GetString("UpdateMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour..
+ ///
+ public static string UpdateMasterPasswordWarning {
+ get {
+ return ResourceManager.GetString("UpdateMasterPasswordWarning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Currently unable to update password.
+ ///
+ public static string UpdatePasswordError {
+ get {
+ return ResourceManager.GetString("UpdatePasswordError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Updating Password.
+ ///
+ public static string UpdatingPassword {
+ get {
+ return ResourceManager.GetString("UpdatingPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Uppercase (A to Z).
+ ///
+ public static string UppercaseAtoZ {
+ get {
+ return ResourceManager.GetString("UppercaseAtoZ", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to URI.
+ ///
+ public static string URI {
+ get {
+ return ResourceManager.GetString("URI", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to URI Match Detection.
+ ///
+ public static string URIMatchDetection {
+ get {
+ return ResourceManager.GetString("URIMatchDetection", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to URI {0}.
+ ///
+ public static string URIPosition {
+ get {
+ return ResourceManager.GetString("URIPosition", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to URIs.
+ ///
+ public static string URIs {
+ get {
+ return ResourceManager.GetString("URIs", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use another two-step login method.
+ ///
+ public static string UseAnotherTwoStepMethod {
+ get {
+ return ResourceManager.GetString("UseAnotherTwoStepMethod", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use Biometrics To Unlock.
+ ///
+ public static string UseBiometricsToUnlock {
+ get {
+ return ResourceManager.GetString("UseBiometricsToUnlock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use Face ID To Unlock.
+ ///
+ public static string UseFaceIDToUnlock {
+ get {
+ return ResourceManager.GetString("UseFaceIDToUnlock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use Fingerprint to Unlock.
+ ///
+ public static string UseFingerprintToUnlock {
+ get {
+ return ResourceManager.GetString("UseFingerprintToUnlock", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Username.
+ ///
+ public static string Username {
+ get {
+ return ResourceManager.GetString("Username", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Username Type.
+ ///
+ public static string UsernameType {
+ get {
+ return ResourceManager.GetString("UsernameType", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Use this device to approve login requests made from other devices..
+ ///
+ public static string UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices {
+ get {
+ return ResourceManager.GetString("UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Validating.
+ ///
+ public static string Validating {
+ get {
+ return ResourceManager.GetString("Validating", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The {0} field is required..
+ ///
+ public static string ValidationFieldRequired {
+ get {
+ return ResourceManager.GetString("ValidationFieldRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Value.
+ ///
+ public static string Value {
+ get {
+ return ResourceManager.GetString("Value", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} has been copied..
+ ///
+ public static string ValueHasBeenCopied {
+ get {
+ return ResourceManager.GetString("ValueHasBeenCopied", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vault: {0}.
+ ///
+ public static string VaultFilterDescription {
+ get {
+ return ResourceManager.GetString("VaultFilterDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vault is locked.
+ ///
+ public static string VaultIsLocked {
+ get {
+ return ResourceManager.GetString("VaultIsLocked", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your vault is locked. Verify your identity to continue..
+ ///
+ public static string VaultLockedIdentity {
+ get {
+ return ResourceManager.GetString("VaultLockedIdentity", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your vault is locked. Verify your master password to continue..
+ ///
+ public static string VaultLockedMasterPassword {
+ get {
+ return ResourceManager.GetString("VaultLockedMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your vault is locked. Verify your PIN code to continue..
+ ///
+ public static string VaultLockedPIN {
+ get {
+ return ResourceManager.GetString("VaultLockedPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vaults.
+ ///
+ public static string Vaults {
+ get {
+ return ResourceManager.GetString("Vaults", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vault timeout.
+ ///
+ public static string VaultTimeout {
+ get {
+ return ResourceManager.GetString("VaultTimeout", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Vault timeout action.
+ ///
+ public static string VaultTimeoutAction {
+ get {
+ return ResourceManager.GetString("VaultTimeoutAction", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?.
+ ///
+ public static string VaultTimeoutLogOutConfirmation {
+ get {
+ return ResourceManager.GetString("VaultTimeoutLogOutConfirmation", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s).
+ ///
+ public static string VaultTimeoutPolicyInEffect {
+ get {
+ return ResourceManager.GetString("VaultTimeoutPolicyInEffect", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your vault timeout exceeds the restrictions set by your organization..
+ ///
+ public static string VaultTimeoutToLarge {
+ get {
+ return ResourceManager.GetString("VaultTimeoutToLarge", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verification Code.
+ ///
+ public static string VerificationCode {
+ get {
+ return ResourceManager.GetString("VerificationCode", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verification Codes.
+ ///
+ public static string VerificationCodes {
+ get {
+ return ResourceManager.GetString("VerificationCodes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verification Code (TOTP).
+ ///
+ public static string VerificationCodeTotp {
+ get {
+ return ResourceManager.GetString("VerificationCodeTotp", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Could not send verification email. Try again..
+ ///
+ public static string VerificationEmailNotSent {
+ get {
+ return ResourceManager.GetString("VerificationEmailNotSent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verification email sent..
+ ///
+ public static string VerificationEmailSent {
+ get {
+ return ResourceManager.GetString("VerificationEmailSent", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verify Face ID.
+ ///
+ public static string VerifyFaceID {
+ get {
+ return ResourceManager.GetString("VerifyFaceID", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verify Fingerprint.
+ ///
+ public static string VerifyFingerprint {
+ get {
+ return ResourceManager.GetString("VerifyFingerprint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verifying.
+ ///
+ public static string Verifying {
+ get {
+ return ResourceManager.GetString("Verifying", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verify Master Password.
+ ///
+ public static string VerifyMasterPassword {
+ get {
+ return ResourceManager.GetString("VerifyMasterPassword", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Verify PIN.
+ ///
+ public static string VerifyPIN {
+ get {
+ return ResourceManager.GetString("VerifyPIN", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Version.
+ ///
+ public static string Version {
+ get {
+ return ResourceManager.GetString("Version", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to View.
+ ///
+ public static string View {
+ get {
+ return ResourceManager.GetString("View", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to View Item.
+ ///
+ public static string ViewItem {
+ get {
+ return ResourceManager.GetString("ViewItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Visit Our Website.
+ ///
+ public static string VisitOurWebsite {
+ get {
+ return ResourceManager.GetString("VisitOurWebsite", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Visit our website to get help, news, email us, and/or learn more about how to use Bitwarden..
+ ///
+ public static string VisitOurWebsiteDescription {
+ get {
+ return ResourceManager.GetString("VisitOurWebsiteDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Warning.
+ ///
+ public static string Warning {
+ get {
+ return ResourceManager.GetString("Warning", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Website.
+ ///
+ public static string Website {
+ get {
+ return ResourceManager.GetString("Website", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Website (required).
+ ///
+ public static string WebsiteRequired {
+ get {
+ return ResourceManager.GetString("WebsiteRequired", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Bitwarden web vault.
+ ///
+ public static string WebVault {
+ get {
+ return ResourceManager.GetString("WebVault", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Web Vault Server URL.
+ ///
+ public static string WebVaultUrl {
+ get {
+ return ResourceManager.GetString("WebVaultUrl", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to What would you like to generate?.
+ ///
+ public static string WhatWouldYouLikeToGenerate {
+ get {
+ return ResourceManager.GetString("WhatWouldYouLikeToGenerate", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Who owns this item?.
+ ///
+ public static string WhoOwnsThisItem {
+ get {
+ return ResourceManager.GetString("WhoOwnsThisItem", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Windows Hello.
+ ///
+ public static string WindowsHello {
+ get {
+ return ResourceManager.GetString("WindowsHello", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Word Separator.
+ ///
+ public static string WordSeparator {
+ get {
+ return ResourceManager.GetString("WordSeparator", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to {0} minutes ago.
+ ///
+ public static string XMinutesAgo {
+ get {
+ return ResourceManager.GetString("XMinutesAgo", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Yes.
+ ///
+ public static string Yes {
+ get {
+ return ResourceManager.GetString("Yes", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Yes, and Save.
+ ///
+ public static string YesAndSave {
+ get {
+ return ResourceManager.GetString("YesAndSave", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your account has been permanently deleted.
+ ///
+ public static string YourAccountHasBeenPermanentlyDeleted {
+ get {
+ return ResourceManager.GetString("YourAccountHasBeenPermanentlyDeleted", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Your account's fingerprint phrase.
+ ///
+ public static string YourAccountsFingerprint {
+ get {
+ return ResourceManager.GetString("YourAccountsFingerprint", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to To continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button..
+ ///
+ public static string YubiKeyInstruction {
+ get {
+ return ResourceManager.GetString("YubiKeyInstruction", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to To continue, hold your YubiKey NEO against the back of the device..
+ ///
+ public static string YubiKeyInstructionIos {
+ get {
+ return ResourceManager.GetString("YubiKeyInstructionIos", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to YubiKey Security Key.
+ ///
+ public static string YubiKeyTitle {
+ get {
+ return ResourceManager.GetString("YubiKeyTitle", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Zip / Postal Code.
+ ///
+ public static string ZipPostalCode {
+ get {
+ return ResourceManager.GetString("ZipPostalCode", resourceCulture);
+ }
+ }
}
}
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 7afdd3eea..01ac38ea9 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 299448082..fb5b4b300 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -36,6 +36,7 @@
public const int SelectFilePermissionRequestCode = 43;
public const int SaveFileRequestCode = 44;
public const int TotpDefaultTimer = 30;
+ public const int PasswordlessNotificationTimeoutInMinutes = 15;
public static readonly string[] AndroidAllClearCipherCacheKeys =
{
From a890ee66129e5573ea1bdf1057efa3058c508fb8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carlos=20Gon=C3=A7alves?=
Date: Mon, 3 Oct 2022 16:51:22 +0100
Subject: [PATCH 09/32] [SG-666][SG-667] Email is not prefilled and username
isn't generated automatically (#2109)
* SG-666 SG-667 - Email is now prefilled for plus addressed email username type
* Username is auto generated upon navigation
* SG-666 - Fixed PR comments
* Added missing property initialization
---
.../Pages/Generator/GeneratorPageViewModel.cs | 51 +++++++++++++------
.../Pages/Vault/CipherAddEditPageViewModel.cs | 4 +-
2 files changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/App/Pages/Generator/GeneratorPageViewModel.cs b/src/App/Pages/Generator/GeneratorPageViewModel.cs
index d23e278ed..6e51ef0d4 100644
--- a/src/App/Pages/Generator/GeneratorPageViewModel.cs
+++ b/src/App/Pages/Generator/GeneratorPageViewModel.cs
@@ -20,6 +20,7 @@ namespace Bit.App.Pages
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IClipboardService _clipboardService;
private readonly IUsernameGenerationService _usernameGenerationService;
+ private readonly ITokenService _tokenService;
readonly LazyResolve _logger = new LazyResolve("logger");
private PasswordGenerationOptions _options;
@@ -49,8 +50,6 @@ namespace Bit.App.Pages
private bool _showFirefoxRelayApiAccessToken;
private bool _showAnonAddyApiAccessToken;
private bool _showSimpleLoginApiKey;
- private UsernameEmailType _catchAllEmailTypeSelected;
- private UsernameEmailType _plusAddressedEmailTypeSelected;
private bool _editMode;
public GeneratorPageViewModel()
@@ -59,6 +58,7 @@ namespace Bit.App.Pages
_platformUtilsService = ServiceContainer.Resolve();
_clipboardService = ServiceContainer.Resolve();
_usernameGenerationService = ServiceContainer.Resolve();
+ _tokenService = ServiceContainer.Resolve();
PageTitle = AppResources.Generator;
GeneratorTypeOptions = new List {
@@ -157,7 +157,7 @@ namespace Bit.App.Pages
public bool ShowUsernameEmailType
{
- get => !string.IsNullOrWhiteSpace(EmailWebsite) || EditMode;
+ get => !string.IsNullOrWhiteSpace(EmailWebsite);
}
public int Length
@@ -367,7 +367,7 @@ namespace Bit.App.Pages
IsUsername = value == GeneratorType.Username;
TriggerPropertyChanged(nameof(GeneratorTypeSelected));
SaveOptionsAsync().FireAndForget();
- SaveUsernameOptionsAsync(false).FireAndForget();
+ SaveUsernameOptionsAsync().FireAndForget();
}
}
}
@@ -382,6 +382,7 @@ namespace Bit.App.Pages
IsPassword = value == 0;
TriggerPropertyChanged(nameof(PasswordTypeSelectedIndex));
SaveOptionsAsync().FireAndForget();
+ SaveUsernameOptionsAsync().FireAndForget();
}
}
}
@@ -396,7 +397,7 @@ namespace Bit.App.Pages
_usernameOptions.Type = value;
Username = Constants.DefaultUsernameGenerated;
TriggerPropertyChanged(nameof(UsernameTypeSelected), new string[] { nameof(UsernameTypeDescriptionLabel) });
- SaveUsernameOptionsAsync(false).FireAndForget();
+ SaveUsernameOptionsAsync().FireAndForget();
}
}
}
@@ -564,26 +565,28 @@ namespace Bit.App.Pages
public UsernameEmailType PlusAddressedEmailTypeSelected
{
- get => _plusAddressedEmailTypeSelected;
+ get => _usernameOptions.PlusAddressedEmailType;
set
{
- if (SetProperty(ref _plusAddressedEmailTypeSelected, value))
+ if (_usernameOptions.PlusAddressedEmailType != value)
{
_usernameOptions.PlusAddressedEmailType = value;
- SaveUsernameOptionsAsync(false).FireAndForget();
+ TriggerPropertyChanged(nameof(PlusAddressedEmailTypeSelected));
+ SaveUsernameOptionsAsync().FireAndForget();
}
}
}
public UsernameEmailType CatchAllEmailTypeSelected
{
- get => _catchAllEmailTypeSelected;
+ get => _usernameOptions.CatchAllEmailType;
set
{
- if (SetProperty(ref _catchAllEmailTypeSelected, value))
+ if (_usernameOptions.CatchAllEmailType != value)
{
_usernameOptions.CatchAllEmailType = value;
- SaveUsernameOptionsAsync(false).FireAndForget();
+ TriggerPropertyChanged(nameof(CatchAllEmailTypeSelected));
+ SaveUsernameOptionsAsync().FireAndForget();
}
}
}
@@ -601,16 +604,28 @@ namespace Bit.App.Pages
{
(_options, EnforcedPolicyOptions) = await _passwordGenerationService.GetOptionsAsync();
LoadFromOptions();
- await RegenerateAsync();
_usernameOptions = await _usernameGenerationService.GetOptionsAsync();
+ _usernameOptions.PlusAddressedEmail = _tokenService.GetEmail();
+ _usernameOptions.EmailWebsite = EmailWebsite;
+ _usernameOptions.CatchAllEmailType = _usernameOptions.PlusAddressedEmailType = string.IsNullOrWhiteSpace(EmailWebsite) || !EditMode ? UsernameEmailType.Random : UsernameEmailType.Website;
- if (!EditMode)
+ if (!IsUsername)
{
- _usernameOptions.CatchAllEmailType = _usernameOptions.PlusAddressedEmailType = UsernameEmailType.Random;
+ await RegenerateAsync();
+ }
+ else
+ {
+ if (UsernameTypeSelected != UsernameType.ForwardedEmailAlias)
+ {
+ await RegenerateUsernameAsync();
+ }
+ else
+ {
+ Username = Constants.DefaultUsernameGenerated;
+ }
}
TriggerUsernamePropertiesChanged();
- Username = Constants.DefaultUsernameGenerated;
_doneIniting = true;
}
@@ -668,10 +683,14 @@ namespace Bit.App.Pages
await _usernameGenerationService.SaveOptionsAsync(_usernameOptions);
- if (regenerate)
+ if (regenerate && UsernameTypeSelected != UsernameType.ForwardedEmailAlias)
{
await RegenerateUsernameAsync();
}
+ else
+ {
+ Username = Constants.DefaultUsernameGenerated;
+ }
}
public async Task SliderChangedAsync()
diff --git a/src/App/Pages/Vault/CipherAddEditPageViewModel.cs b/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
index 78e8eb0a5..7be04f536 100644
--- a/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
+++ b/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
@@ -605,6 +605,8 @@ namespace Bit.App.Pages
return;
}
+ var website = Cipher?.Login?.Uris?.FirstOrDefault()?.Host;
+
var page = new GeneratorPage(false, async (username) =>
{
try
@@ -617,7 +619,7 @@ namespace Bit.App.Pages
{
OnGenerateUsernameException(ex);
}
- }, isUsernameGenerator: true, emailWebsite: Cipher?.Name, editMode: true);
+ }, isUsernameGenerator: true, emailWebsite: website, editMode: true);
await Page.Navigation.PushModalAsync(new NavigationPage(page));
}
From bc949fe87ae4ce8c56e58e5f42aca6e287db94dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Mon, 3 Oct 2022 17:11:38 +0100
Subject: [PATCH 10/32] [SG-691] Login request is not displayed after changing
accounts (#2111)
* [SG-691] Added new message to be broadcasted when account is switched to trigger a check for login requests.
* [SG-691] PR fixes
---
src/Android/MainApplication.cs | 5 +++--
src/App/App.xaml.cs | 2 +-
src/App/Utilities/AccountManagement/AccountsManager.cs | 7 +++++--
src/Core/Utilities/AccountsManagerMessageCommands.cs | 1 +
src/iOS.Core/Utilities/iOSCoreHelpers.cs | 3 ++-
5 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/Android/MainApplication.cs b/src/Android/MainApplication.cs
index 5abef72b3..3388b2ea7 100644
--- a/src/Android/MainApplication.cs
+++ b/src/Android/MainApplication.cs
@@ -72,8 +72,9 @@ namespace Bit.Droid
ServiceContainer.Resolve("stateService"),
ServiceContainer.Resolve("platformUtilsService"),
ServiceContainer.Resolve("authService"),
- ServiceContainer.Resolve("logger"));
- ServiceContainer.Register("accountsManager", accountsManager);
+ ServiceContainer.Resolve("logger"),
+ ServiceContainer.Resolve("messagingService"));
+ ServiceContainer.Register("accountsManager", accountsManager);
}
#if !FDROID
if (Build.VERSION.SdkInt <= BuildVersionCodes.Kitkat)
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index 35c22126c..1223b842b 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -140,7 +140,7 @@ namespace Bit.App
new NavigationPage(new RemoveMasterPasswordPage()));
});
}
- else if (message.Command == "passwordlessLoginRequest" || message.Command == "unlocked")
+ else if (message.Command == "passwordlessLoginRequest" || message.Command == "unlocked" || message.Command == AccountsManagerMessageCommands.ACCOUNT_SWITCH_COMPLETED)
{
CheckPasswordlessLoginRequestsAsync().FireAndForget();
}
diff --git a/src/App/Utilities/AccountManagement/AccountsManager.cs b/src/App/Utilities/AccountManagement/AccountsManager.cs
index 88701f2b7..bf64901c9 100644
--- a/src/App/Utilities/AccountManagement/AccountsManager.cs
+++ b/src/App/Utilities/AccountManagement/AccountsManager.cs
@@ -20,7 +20,7 @@ namespace Bit.App.Utilities.AccountManagement
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IAuthService _authService;
private readonly ILogger _logger;
-
+ private readonly IMessagingService _messagingService;
Func _getOptionsFunc;
private IAccountsManagerHost _accountsManagerHost;
@@ -30,7 +30,8 @@ namespace Bit.App.Utilities.AccountManagement
IStateService stateService,
IPlatformUtilsService platformUtilsService,
IAuthService authService,
- ILogger logger)
+ ILogger logger,
+ IMessagingService messagingService)
{
_broadcasterService = broadcasterService;
_vaultTimeoutService = vaultTimeoutService;
@@ -39,6 +40,7 @@ namespace Bit.App.Utilities.AccountManagement
_platformUtilsService = platformUtilsService;
_authService = authService;
_logger = logger;
+ _messagingService = messagingService;
}
private AppOptions Options => _getOptionsFunc?.Invoke() ?? new AppOptions { IosExtension = true };
@@ -213,6 +215,7 @@ namespace Bit.App.Utilities.AccountManagement
}
await Task.Delay(50);
await _accountsManagerHost.UpdateThemeAsync();
+ _messagingService.Send(AccountsManagerMessageCommands.ACCOUNT_SWITCH_COMPLETED);
});
}
}
diff --git a/src/Core/Utilities/AccountsManagerMessageCommands.cs b/src/Core/Utilities/AccountsManagerMessageCommands.cs
index bdd80a867..c5af40e78 100644
--- a/src/Core/Utilities/AccountsManagerMessageCommands.cs
+++ b/src/Core/Utilities/AccountsManagerMessageCommands.cs
@@ -9,5 +9,6 @@
public const string ADD_ACCOUNT = "addAccount";
public const string ACCOUNT_ADDED = "accountAdded";
public const string SWITCHED_ACCOUNT = "switchedAccount";
+ public const string ACCOUNT_SWITCH_COMPLETED = "accountSwitchCompleted";
}
}
diff --git a/src/iOS.Core/Utilities/iOSCoreHelpers.cs b/src/iOS.Core/Utilities/iOSCoreHelpers.cs
index 685edc213..3d7b556ef 100644
--- a/src/iOS.Core/Utilities/iOSCoreHelpers.cs
+++ b/src/iOS.Core/Utilities/iOSCoreHelpers.cs
@@ -222,7 +222,8 @@ namespace Bit.iOS.Core.Utilities
ServiceContainer.Resolve("stateService"),
ServiceContainer.Resolve("platformUtilsService"),
ServiceContainer.Resolve("authService"),
- ServiceContainer.Resolve("logger"));
+ ServiceContainer.Resolve("logger"),
+ ServiceContainer.Resolve("messagingService"));
ServiceContainer.Register("accountsManager", accountsManager);
if (postBootstrapFunc != null)
From 1db4c4fc8be176cc6d3214292842a7f8713709ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Mon, 3 Oct 2022 17:42:33 +0100
Subject: [PATCH 11/32] SG-687 Request time not updating (#2108)
* [SG-687] request updates text with timer task and expires after 15 mins.
* [SG-697] PR Fixes
* [SG-687] Ran code format
* [SG-687] PR Fixes
* [SG-687] missed constant replacement
* [SG-687] PR fixes
---
.../Accounts/LoginPasswordlessPage.xaml.cs | 12 ++++++
.../Accounts/LoginPasswordlessViewModel.cs | 42 +++++++++++++++----
src/App/Utilities/TimerTask.cs | 36 +++++++++++-----
3 files changed, 73 insertions(+), 17 deletions(-)
diff --git a/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
index 5aa777a11..f6941a715 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessPage.xaml.cs
@@ -27,5 +27,17 @@ namespace Bit.App.Pages
await Navigation.PopModalAsync();
}
}
+
+ protected override void OnAppearing()
+ {
+ base.OnAppearing();
+ _vm.StartRequestTimeUpdater();
+ }
+
+ protected override void OnDisappearing()
+ {
+ base.OnDisappearing();
+ _vm.StopRequestTimeUpdater();
+ }
}
}
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
index d1e8d0c28..a0c886d81 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -1,5 +1,7 @@
using System;
+using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using Bit.App.Abstractions;
@@ -8,6 +10,7 @@ using Bit.App.Utilities;
using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
+using Bit.Core.Services;
using Bit.Core.Utilities;
using Xamarin.CommunityToolkit.ObjectModel;
using Xamarin.Forms;
@@ -21,6 +24,10 @@ namespace Bit.App.Pages
private IPlatformUtilsService _platformUtilsService;
private ILogger _logger;
private LoginPasswordlessDetails _resquest;
+ private CancellationTokenSource _requestTimeCts;
+ private Task _requestTimeTask;
+
+ private const int REQUEST_TIME_UPDATE_PERIOD_IN_MINUTES = 5;
public LoginPasswordlessViewModel()
{
@@ -63,6 +70,30 @@ namespace Bit.App.Pages
}
}
+ public void StopRequestTimeUpdater()
+ {
+ _requestTimeCts?.Cancel();
+ _requestTimeCts?.Dispose();
+ }
+
+ public void StartRequestTimeUpdater()
+ {
+ _requestTimeCts?.Cancel();
+ _requestTimeCts = new CancellationTokenSource();
+ _requestTimeTask = new TimerTask(_logger, UpdateRequestTime, _requestTimeCts).RunPeriodic(TimeSpan.FromMinutes(REQUEST_TIME_UPDATE_PERIOD_IN_MINUTES));
+ }
+
+ private async Task UpdateRequestTime()
+ {
+ TriggerPropertyChanged(nameof(TimeOfRequestText));
+ if (DateTime.UtcNow > LoginRequest?.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
+ {
+ StopRequestTimeUpdater();
+ await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
+ await Page.Navigation.PopModalAsync();
+ }
+ }
+
private async Task PasswordlessLoginAsync(bool approveRequest)
{
if (LoginRequest.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.Now)
@@ -77,6 +108,8 @@ namespace Bit.App.Pages
await _deviceActionService.HideLoadingAsync();
await Page.Navigation.PopModalAsync();
_platformUtilsService.ShowToast("info", null, approveRequest ? AppResources.LogInAccepted : AppResources.LogInDenied);
+
+ StopRequestTimeUpdater();
}
private string CreateRequestDate(DateTime? requestDate)
@@ -86,17 +119,12 @@ namespace Bit.App.Pages
return string.Empty;
}
- var minutesSinceRequest = requestDate.Value.ToUniversalTime().Minute - DateTime.UtcNow.Minute;
- if (minutesSinceRequest < 5)
+ if (DateTime.UtcNow < requestDate.Value.ToUniversalTime().AddMinutes(REQUEST_TIME_UPDATE_PERIOD_IN_MINUTES))
{
return AppResources.JustNow;
}
- if (minutesSinceRequest < 59)
- {
- return string.Format(AppResources.XMinutesAgo, minutesSinceRequest);
- }
- return requestDate.Value.ToShortTimeString();
+ return string.Format(AppResources.XMinutesAgo, DateTime.UtcNow.Minute - requestDate.Value.ToUniversalTime().Minute);
}
private void HandleException(Exception ex)
diff --git a/src/App/Utilities/TimerTask.cs b/src/App/Utilities/TimerTask.cs
index a982d39b0..0288408ac 100644
--- a/src/App/Utilities/TimerTask.cs
+++ b/src/App/Utilities/TimerTask.cs
@@ -10,13 +10,21 @@ namespace Bit.App.Utilities
{
private readonly ILogger _logger;
private readonly Action _action;
- private readonly CancellationTokenSource _cancellationToken;
+ private readonly Func _actionTask;
+ private readonly CancellationTokenSource _cancellationTokenSource;
- public TimerTask(ILogger logger, Action action, CancellationTokenSource cancellationToken)
+ public TimerTask(ILogger logger, Action action, CancellationTokenSource cancellationTokenSource)
{
_logger = logger;
- _action = action ?? throw new ArgumentNullException();
- _cancellationToken = cancellationToken;
+ _action = action ?? throw new ArgumentNullException(nameof(action));
+ _cancellationTokenSource = cancellationTokenSource;
+ }
+
+ public TimerTask(ILogger logger, Func actionTask, CancellationTokenSource cancellationTokenSource)
+ {
+ _logger = logger;
+ _actionTask = actionTask ?? throw new ArgumentNullException(nameof(actionTask));
+ _cancellationTokenSource = cancellationTokenSource;
}
public Task RunPeriodic(TimeSpan? interval = null)
@@ -26,23 +34,31 @@ namespace Bit.App.Utilities
{
try
{
- while (!_cancellationToken.IsCancellationRequested)
+ while (!_cancellationTokenSource.IsCancellationRequested)
{
- await Device.InvokeOnMainThreadAsync(() =>
+ await Device.InvokeOnMainThreadAsync(async () =>
{
- if (!_cancellationToken.IsCancellationRequested)
+ if (!_cancellationTokenSource.IsCancellationRequested)
{
try
{
- _action();
+ if (_action != null)
+ {
+ _action();
+ }
+ else if (_actionTask != null)
+ {
+ await _actionTask();
+ }
}
catch (Exception ex)
{
+ _cancellationTokenSource?.Cancel();
_logger?.Exception(ex);
}
}
});
- await Task.Delay(interval.Value, _cancellationToken.Token);
+ await Task.Delay(interval.Value, _cancellationTokenSource.Token);
}
}
catch (TaskCanceledException) { }
@@ -50,7 +66,7 @@ namespace Bit.App.Utilities
{
_logger?.Exception(ex);
}
- }, _cancellationToken.Token);
+ }, _cancellationTokenSource.Token);
}
}
}
From c1101af582eb48d6822428fb1a77f6f4e4e54485 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Tue, 4 Oct 2022 20:25:52 +0100
Subject: [PATCH 12/32] [SG-687] added try catch to cancellation token
disposal. (#2114)
---
.../Accounts/LoginPasswordlessViewModel.cs | 24 +++++++++++++++----
1 file changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
index a0c886d81..ba1943ad9 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -72,15 +72,29 @@ namespace Bit.App.Pages
public void StopRequestTimeUpdater()
{
- _requestTimeCts?.Cancel();
- _requestTimeCts?.Dispose();
+ try
+ {
+ _requestTimeCts?.Cancel();
+ _requestTimeCts?.Dispose();
+ }
+ catch (Exception ex)
+ {
+ _logger.Exception(ex);
+ }
}
public void StartRequestTimeUpdater()
{
- _requestTimeCts?.Cancel();
- _requestTimeCts = new CancellationTokenSource();
- _requestTimeTask = new TimerTask(_logger, UpdateRequestTime, _requestTimeCts).RunPeriodic(TimeSpan.FromMinutes(REQUEST_TIME_UPDATE_PERIOD_IN_MINUTES));
+ try
+ {
+ _requestTimeCts?.Cancel();
+ _requestTimeCts = new CancellationTokenSource();
+ _requestTimeTask = new TimerTask(_logger, UpdateRequestTime, _requestTimeCts).RunPeriodic(TimeSpan.FromMinutes(REQUEST_TIME_UPDATE_PERIOD_IN_MINUTES));
+ }
+ catch (Exception ex)
+ {
+ _logger.Exception(ex);
+ }
}
private async Task UpdateRequestTime()
From 1e5eab057476295184a97102696a765a2b4387e6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Wed, 5 Oct 2022 01:40:28 +0100
Subject: [PATCH 13/32] [SG-690] DateTime to Utc fix (#2115)
* [SG-690] DateTime to Utc fix
* [SG-690] Removed Utc from server side datetime.
---
src/App/App.xaml.cs | 2 +-
src/App/Pages/Accounts/LoginPasswordlessViewModel.cs | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index 1223b842b..483711bfd 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -189,7 +189,7 @@ namespace Bit.App
});
await _stateService.SetPasswordlessLoginNotificationAsync(null);
_pushNotificationService.DismissLocalNotification(Constants.PasswordlessNotificationId);
- if (loginRequestData.CreationDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.Now)
+ if (loginRequestData.CreationDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.UtcNow)
{
await Device.InvokeOnMainThreadAsync(() => Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
}
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
index ba1943ad9..1a5ba8a83 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -100,7 +100,7 @@ namespace Bit.App.Pages
private async Task UpdateRequestTime()
{
TriggerPropertyChanged(nameof(TimeOfRequestText));
- if (DateTime.UtcNow > LoginRequest?.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
+ if (DateTime.UtcNow > LoginRequest?.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
{
StopRequestTimeUpdater();
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
@@ -110,7 +110,7 @@ namespace Bit.App.Pages
private async Task PasswordlessLoginAsync(bool approveRequest)
{
- if (LoginRequest.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.Now)
+ if (LoginRequest.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.UtcNow)
{
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
await Page.Navigation.PopModalAsync();
From abada481b71b9eef1118fdd27809540098935655 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Fri, 7 Oct 2022 12:06:57 +0100
Subject: [PATCH 14/32] [SG-702] Tapping Push Notification does not open the
account the request is for (#2112)
* [SG-702] Tap notification now switches accounts if it is a passwordless notification.
* [SG-702] Fix compilation errors
* [SG-702] Fixed iOS notification tap fix
* [SG-702] Notification data model
* [SG-702] Change method signature with object containing properties. PR fixes.
---
src/Android/MainActivity.cs | 13 +++++++
.../AndroidPushNotificationService.cs | 17 ++++++---
.../IPushNotificationListenerService.cs | 2 ++
.../Abstractions/IPushNotificationService.cs | 3 +-
src/App/Models/NotificationData.cs | 23 ++++++++++++
.../NoopPushNotificationListenerService.cs | 6 ++++
.../Services/NoopPushNotificationService.cs | 3 +-
.../PushNotificationListenerService.cs | 35 ++++++++++++++++++-
src/Core/Constants.cs | 2 ++
.../Services/iOSPushNotificationHandler.cs | 20 +++++++++--
.../Services/iOSPushNotificationService.cs | 16 +++++++--
11 files changed, 128 insertions(+), 12 deletions(-)
create mode 100644 src/App/Models/NotificationData.cs
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index 55eacba73..9ff6afc42 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -20,6 +20,8 @@ using Bit.Core.Enums;
using Bit.Core.Utilities;
using Bit.Droid.Receivers;
using Bit.Droid.Utilities;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
using Xamarin.Essentials;
using ZXing.Net.Mobile.Android;
using FileProvider = AndroidX.Core.Content.FileProvider;
@@ -39,6 +41,7 @@ namespace Bit.Droid
private IStateService _stateService;
private IAppIdService _appIdService;
private IEventService _eventService;
+ private IPushNotificationListenerService _pushNotificationListenerService;
private ILogger _logger;
private PendingIntent _eventUploadPendingIntent;
private AppOptions _appOptions;
@@ -61,6 +64,7 @@ namespace Bit.Droid
_stateService = ServiceContainer.Resolve("stateService");
_appIdService = ServiceContainer.Resolve("appIdService");
_eventService = ServiceContainer.Resolve("eventService");
+ _pushNotificationListenerService = ServiceContainer.Resolve();
_logger = ServiceContainer.Resolve("logger");
TabLayoutResource = Resource.Layout.Tabbar;
@@ -145,6 +149,15 @@ namespace Bit.Droid
AndroidHelpers.SetPreconfiguredRestrictionSettingsAsync(this)
.GetAwaiter()
.GetResult();
+
+ if (Intent?.GetStringExtra(Constants.NotificationData) is string notificationDataJson)
+ {
+ var notificationType = JToken.Parse(notificationDataJson).SelectToken(Constants.NotificationDataType);
+ if (notificationType.ToString() == PasswordlessNotificationData.TYPE)
+ {
+ _pushNotificationListenerService.OnNotificationTapped(JsonConvert.DeserializeObject(notificationDataJson)).FireAndForget();
+ }
+ }
}
protected override void OnNewIntent(Intent intent)
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index 9365b19ec..97e5c2daf 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -1,14 +1,17 @@
#if !FDROID
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using Android.App;
using Android.Content;
using Android.OS;
using AndroidX.Core.App;
using Bit.App.Abstractions;
+using Bit.App.Models;
using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Droid.Utilities;
+using Newtonsoft.Json;
using Xamarin.Forms;
namespace Bit.Droid.Services
@@ -67,28 +70,34 @@ namespace Bit.Droid.Services
}
}
- public void SendLocalNotification(string title, string message, string notificationId)
+ public void SendLocalNotification(string title, string message, BaseNotificationData data)
{
- if (string.IsNullOrEmpty(notificationId))
+ if (string.IsNullOrEmpty(data.Id))
{
throw new ArgumentNullException("notificationId cannot be null or empty.");
}
var context = Android.App.Application.Context;
var intent = new Intent(context, typeof(MainActivity));
+ intent.PutExtra(Constants.NotificationData, JsonConvert.SerializeObject(data));
+
var pendingIntentFlags = AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, true);
var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, pendingIntentFlags);
var builder = new NotificationCompat.Builder(context, Constants.AndroidNotificationChannelId)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
- .SetTimeoutAfter(Constants.PasswordlessNotificationTimeoutInMinutes * 60000)
.SetSmallIcon(Resource.Drawable.ic_notification)
.SetColor((int)Android.Graphics.Color.White)
.SetAutoCancel(true);
+ if (data is PasswordlessNotificationData passwordlessNotificationData && passwordlessNotificationData.TimeoutInMinutes > 0)
+ {
+ builder.SetTimeoutAfter(passwordlessNotificationData.TimeoutInMinutes * 60000);
+ }
+
var notificationManager = NotificationManagerCompat.From(context);
- notificationManager.Notify(int.Parse(notificationId), builder.Build());
+ notificationManager.Notify(int.Parse(data.Id), builder.Build());
}
}
}
diff --git a/src/App/Abstractions/IPushNotificationListenerService.cs b/src/App/Abstractions/IPushNotificationListenerService.cs
index 4a57c75a5..f5d2cb39f 100644
--- a/src/App/Abstractions/IPushNotificationListenerService.cs
+++ b/src/App/Abstractions/IPushNotificationListenerService.cs
@@ -1,4 +1,5 @@
using System.Threading.Tasks;
+using Bit.App.Models;
using Newtonsoft.Json.Linq;
namespace Bit.App.Abstractions
@@ -9,6 +10,7 @@ namespace Bit.App.Abstractions
Task OnRegisteredAsync(string token, string device);
void OnUnregistered(string device);
void OnError(string message, string device);
+ Task OnNotificationTapped(BaseNotificationData data);
bool ShouldShowNotification();
}
}
diff --git a/src/App/Abstractions/IPushNotificationService.cs b/src/App/Abstractions/IPushNotificationService.cs
index f0d56691e..5d69be1aa 100644
--- a/src/App/Abstractions/IPushNotificationService.cs
+++ b/src/App/Abstractions/IPushNotificationService.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Threading.Tasks;
+using Bit.App.Models;
namespace Bit.App.Abstractions
{
@@ -10,7 +11,7 @@ namespace Bit.App.Abstractions
Task GetTokenAsync();
Task RegisterAsync();
Task UnregisterAsync();
- void SendLocalNotification(string title, string message, string notificationId);
+ void SendLocalNotification(string title, string message, BaseNotificationData data);
void DismissLocalNotification(string notificationId);
}
}
diff --git a/src/App/Models/NotificationData.cs b/src/App/Models/NotificationData.cs
new file mode 100644
index 000000000..3ddd758d9
--- /dev/null
+++ b/src/App/Models/NotificationData.cs
@@ -0,0 +1,23 @@
+using System;
+namespace Bit.App.Models
+{
+ public abstract class BaseNotificationData
+ {
+ public abstract string Type { get; }
+
+ public string Id { get; set; }
+ }
+
+ public class PasswordlessNotificationData : BaseNotificationData
+ {
+ public const string TYPE = "passwordlessNotificationData";
+
+ public override string Type => TYPE;
+
+ public int TimeoutInMinutes { get; set; }
+
+ public string UserEmail { get; set; }
+ }
+
+}
+
diff --git a/src/App/Services/NoopPushNotificationListenerService.cs b/src/App/Services/NoopPushNotificationListenerService.cs
index f15a258b5..b8b6b2890 100644
--- a/src/App/Services/NoopPushNotificationListenerService.cs
+++ b/src/App/Services/NoopPushNotificationListenerService.cs
@@ -1,5 +1,6 @@
using System.Threading.Tasks;
using Bit.App.Abstractions;
+using Bit.App.Models;
using Newtonsoft.Json.Linq;
namespace Bit.App.Services
@@ -28,5 +29,10 @@ namespace Bit.App.Services
{
return false;
}
+
+ public Task OnNotificationTapped(BaseNotificationData data)
+ {
+ return Task.FromResult(0);
+ }
}
}
diff --git a/src/App/Services/NoopPushNotificationService.cs b/src/App/Services/NoopPushNotificationService.cs
index 273473c10..af876618e 100644
--- a/src/App/Services/NoopPushNotificationService.cs
+++ b/src/App/Services/NoopPushNotificationService.cs
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Bit.App.Abstractions;
+using Bit.App.Models;
namespace Bit.App.Services
{
@@ -30,6 +31,6 @@ namespace Bit.App.Services
public void DismissLocalNotification(string notificationId) { }
- public void SendLocalNotification(string title, string message, string notificationId) { }
+ public void SendLocalNotification(string title, string message, BaseNotificationData data) { }
}
}
diff --git a/src/App/Services/PushNotificationListenerService.cs b/src/App/Services/PushNotificationListenerService.cs
index 6f489f88c..b2a58f627 100644
--- a/src/App/Services/PushNotificationListenerService.cs
+++ b/src/App/Services/PushNotificationListenerService.cs
@@ -1,9 +1,11 @@
#if !FDROID
using System;
+using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Bit.App.Abstractions;
+using Bit.App.Models;
using Bit.App.Pages;
using Bit.App.Resources;
using Bit.Core;
@@ -11,6 +13,7 @@ using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Exceptions;
using Bit.Core.Models.Response;
+using Bit.Core.Services;
using Bit.Core.Utilities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -30,6 +33,7 @@ namespace Bit.App.Services
private IApiService _apiService;
private IMessagingService _messagingService;
private IPushNotificationService _pushNotificationService;
+ private ILogger _logger;
public async Task OnMessageAsync(JObject value, string deviceType)
{
@@ -147,7 +151,14 @@ namespace Bit.App.Services
await _stateService.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage, passwordlessLoginMessage?.UserId);
var userEmail = await _stateService.GetEmailAsync(passwordlessLoginMessage?.UserId);
- _pushNotificationService.SendLocalNotification(AppResources.LogInRequested, String.Format(AppResources.ConfimLogInAttempForX, userEmail), Constants.PasswordlessNotificationId);
+ var notificationData = new PasswordlessNotificationData()
+ {
+ Id = Constants.PasswordlessNotificationId,
+ TimeoutInMinutes = Constants.PasswordlessNotificationTimeoutInMinutes,
+ UserEmail = userEmail,
+ };
+
+ _pushNotificationService.SendLocalNotification(AppResources.LogInRequested, String.Format(AppResources.ConfimLogInAttempForX, userEmail), notificationData);
_messagingService.Send("passwordlessLoginRequest", passwordlessLoginMessage);
break;
default:
@@ -213,6 +224,27 @@ namespace Bit.App.Services
Debug.WriteLine($"{TAG} error - {message}");
}
+ public async Task OnNotificationTapped(BaseNotificationData data)
+ {
+ Resolve();
+ try
+ {
+ if (data is PasswordlessNotificationData passwordlessNotificationData)
+ {
+ var notificationUserId = await _stateService.GetUserIdAsync(passwordlessNotificationData.UserEmail);
+ if (notificationUserId != null)
+ {
+ await _stateService.SetActiveUserAsync(notificationUserId);
+ _messagingService.Send(AccountsManagerMessageCommands.SWITCHED_ACCOUNT);
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.Exception(ex);
+ }
+ }
+
public bool ShouldShowNotification()
{
return _showNotification;
@@ -230,6 +262,7 @@ namespace Bit.App.Services
_apiService = ServiceContainer.Resolve("apiService");
_messagingService = ServiceContainer.Resolve("messagingService");
_pushNotificationService = ServiceContainer.Resolve();
+ _logger = ServiceContainer.Resolve();
_resolved = true;
}
}
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index fb5b4b300..7250c02b8 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -32,6 +32,8 @@
public static string RememberedOrgIdentifierKey = "rememberedOrgIdentifier";
public const string PasswordlessNotificationId = "26072022";
public const string AndroidNotificationChannelId = "general_notification_channel";
+ public const string NotificationData = "notificationData";
+ public const string NotificationDataType = "NotificationType";
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
public const int SaveFileRequestCode = 44;
diff --git a/src/iOS/Services/iOSPushNotificationHandler.cs b/src/iOS/Services/iOSPushNotificationHandler.cs
index a6de3d491..de484d5d2 100644
--- a/src/iOS/Services/iOSPushNotificationHandler.cs
+++ b/src/iOS/Services/iOSPushNotificationHandler.cs
@@ -1,8 +1,13 @@
using System;
using System.Diagnostics;
using Bit.App.Abstractions;
+using Bit.App.Models;
+using Bit.Core;
+using Bit.Core.Enums;
using Bit.Core.Services;
+using CoreData;
using Foundation;
+using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using UserNotifications;
using Xamarin.Forms;
@@ -92,9 +97,20 @@ namespace Bit.iOS.Services
{
Debug.WriteLine($"{TAG} DidReceiveNotificationResponse {response?.Notification?.Request?.Content?.UserInfo}");
- if (response.IsDefaultAction)
+ if (response.IsDefaultAction && response?.Notification?.Request?.Content?.UserInfo != null)
{
- OnMessageReceived(response?.Notification?.Request?.Content?.UserInfo);
+ var userInfo = response?.Notification?.Request?.Content?.UserInfo;
+ OnMessageReceived(userInfo);
+
+ if (userInfo.TryGetValue(NSString.FromObject(Constants.NotificationData), out NSObject nsObject))
+ {
+ var token = JToken.Parse(NSString.FromObject(nsObject).ToString());
+ var typeToken = token.SelectToken(Constants.NotificationDataType);
+ if (typeToken.ToString() == PasswordlessNotificationData.TYPE)
+ {
+ _pushNotificationListenerService.OnNotificationTapped(token.ToObject());
+ }
+ }
}
// Inform caller it has been handled
diff --git a/src/iOS/Services/iOSPushNotificationService.cs b/src/iOS/Services/iOSPushNotificationService.cs
index 1146d7cbd..bcc22b904 100644
--- a/src/iOS/Services/iOSPushNotificationService.cs
+++ b/src/iOS/Services/iOSPushNotificationService.cs
@@ -4,8 +4,13 @@ using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Bit.App.Abstractions;
+using Bit.App.Models;
+using Bit.App.Services;
+using Bit.Core;
using Bit.Core.Services;
using Foundation;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
using UIKit;
using UserNotifications;
@@ -69,9 +74,9 @@ namespace Bit.iOS.Services
return Task.FromResult(0);
}
- public void SendLocalNotification(string title, string message, string notificationId)
+ public void SendLocalNotification(string title, string message, BaseNotificationData data)
{
- if (string.IsNullOrEmpty(notificationId))
+ if (string.IsNullOrEmpty(data.Id))
{
throw new ArgumentNullException("notificationId cannot be null or empty.");
}
@@ -82,7 +87,12 @@ namespace Bit.iOS.Services
Body = message
};
- var request = UNNotificationRequest.FromIdentifier(notificationId, content, null);
+ if (data != null)
+ {
+ content.UserInfo = NSDictionary.FromObjectAndKey(NSData.FromString(JsonConvert.SerializeObject(data), NSStringEncoding.UTF8), new NSString(Constants.NotificationData));
+ }
+
+ var request = UNNotificationRequest.FromIdentifier(data.Id, content, null);
UNUserNotificationCenter.Current.AddNotificationRequest(request, (err) =>
{
if (err != null)
From dc5698b3531efe1369519a6a154711a93f92d7b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Ch=C4=99ci=C5=84ski?=
Date: Tue, 11 Oct 2022 16:27:07 +0200
Subject: [PATCH 15/32] [DEVOPS-1014] Fix version auto bump workflow (#2121)
* Fix autobump
* Fix regex
* Use tag name
* DEVOPS-1014 - Review (#2123)
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
---
.github/workflows/version-auto-bump.yml | 34 ++++++++++---------------
1 file changed, 14 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml
index fefb1f191..cc42f6316 100644
--- a/.github/workflows/version-auto-bump.yml
+++ b/.github/workflows/version-auto-bump.yml
@@ -6,35 +6,32 @@ on:
types: [published]
jobs:
-
setup:
name: "Setup"
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
outputs:
version_number: ${{ steps.version.outputs.new-version }}
steps:
- name: Checkout Branch
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
- - name: Get version to bump
+ - name: Calculate bumped version
id: version
env:
- RELEASE_TAG: ${{ github.event.release.tag }}
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
run: |
- CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/')
- CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/')
- echo $CURR_VER
-
- ((CURR_VER++))
- NEW_VER=$CURR_MAJOR$CURR_VER
-
- echo $NEW_VER
+ CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\1/')
+ CURR_PATCH=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\2/')
+ echo "Current Patch: $CURR_PATCH"
+ NEW_PATCH=$((CURR_PATCH++))
+ NEW_VER=$CURR_MAJOR.$NEW_PATCH
+ echo "New Version: $NEW_VER"
echo "::set-output name=new-version::$NEW_VER"
trigger_version_bump:
name: "Trigger version bump workflow"
- runs-on: ubuntu-20.04
+ runs-on: ubuntu-22.04
needs:
- setup
steps:
@@ -45,13 +42,10 @@ jobs:
- name: Retrieve secrets
id: retrieve-secrets
- env:
- KEYVAULT: bitwarden-prod-kv
- SECRET: "github-pat-bitwarden-devops-bot-repo-scope"
- run: |
- VALUE=$(az keyvault secret show --vault-name $KEYVAULT --name $SECRET --query value --output tsv)
- echo "::add-mask::$VALUE"
- echo "::set-output name=$SECRET::$VALUE"
+ uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af
+ with:
+ keyvault: "bitwarden-prod-kv"
+ secrets: "github-pat-bitwarden-devops-bot-repo-scope"
- name: Call GitHub API to trigger workflow bump
env:
From 2d35a00caacfd0f326f766a1fe77a7ec33429950 Mon Sep 17 00:00:00 2001
From: Federico Maccaroni
Date: Tue, 11 Oct 2022 17:08:36 -0300
Subject: [PATCH 16/32] EC-602 added droid constants file with the package name
constant (#2126)
---
src/Android/Android.csproj | 1 +
src/Android/Constants.cs | 7 +++++++
2 files changed, 8 insertions(+)
create mode 100644 src/Android/Constants.cs
diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 78d51b5f7..dfe728ede 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -152,6 +152,7 @@
+
diff --git a/src/Android/Constants.cs b/src/Android/Constants.cs
new file mode 100644
index 000000000..398bfb708
--- /dev/null
+++ b/src/Android/Constants.cs
@@ -0,0 +1,7 @@
+namespace Bit.Droid
+{
+ public static class Constants
+ {
+ public const string PACKAGE_NAME = "com.x8bit.bitwarden";
+ }
+}
From d800e9a43e4174215183dcf9d79b51538ebe414f Mon Sep 17 00:00:00 2001
From: Federico Maccaroni
Date: Tue, 11 Oct 2022 17:47:52 -0300
Subject: [PATCH 17/32] EC-602 Constants namespace fix (#2127)
---
src/Android/Accessibility/AccessibilityHelpers.cs | 2 +-
src/Android/Autofill/AutofillService.cs | 2 +-
src/Android/Autofill/Parser.cs | 2 +-
src/Android/MainActivity.cs | 12 ++++++------
src/Android/MainApplication.cs | 4 ++--
.../Services/AndroidPushNotificationService.cs | 4 ++--
src/Android/Services/DeviceActionService.cs | 6 +++---
7 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/Android/Accessibility/AccessibilityHelpers.cs b/src/Android/Accessibility/AccessibilityHelpers.cs
index 81d7fa65f..cfc1bc77f 100644
--- a/src/Android/Accessibility/AccessibilityHelpers.cs
+++ b/src/Android/Accessibility/AccessibilityHelpers.cs
@@ -367,7 +367,7 @@ namespace Bit.Droid.Accessibility
public static string GetUri(AccessibilityNodeInfo root)
{
- var uri = string.Concat(Constants.AndroidAppProtocol, root.PackageName);
+ var uri = string.Concat(Core.Constants.AndroidAppProtocol, root.PackageName);
if (SupportedBrowsers.ContainsKey(root.PackageName))
{
var browser = SupportedBrowsers[root.PackageName];
diff --git a/src/Android/Autofill/AutofillService.cs b/src/Android/Autofill/AutofillService.cs
index 97bc07ae4..3becfe4ac 100644
--- a/src/Android/Autofill/AutofillService.cs
+++ b/src/Android/Autofill/AutofillService.cs
@@ -134,7 +134,7 @@ namespace Bit.Droid.Autofill
{
case CipherType.Login:
intent.PutExtra("autofillFrameworkName", parser.Uri
- .Replace(Constants.AndroidAppProtocol, string.Empty)
+ .Replace(Core.Constants.AndroidAppProtocol, string.Empty)
.Replace("https://", string.Empty)
.Replace("http://", string.Empty));
intent.PutExtra("autofillFrameworkUri", parser.Uri);
diff --git a/src/Android/Autofill/Parser.cs b/src/Android/Autofill/Parser.cs
index 45a2fdb0b..4bc2ebca5 100644
--- a/src/Android/Autofill/Parser.cs
+++ b/src/Android/Autofill/Parser.cs
@@ -48,7 +48,7 @@ namespace Bit.Droid.Autofill
}
else
{
- _uri = string.Concat(Constants.AndroidAppProtocol, PackageName);
+ _uri = string.Concat(Core.Constants.AndroidAppProtocol, PackageName);
}
return _uri;
}
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index 9ff6afc42..751cd7f2a 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -150,9 +150,9 @@ namespace Bit.Droid
.GetAwaiter()
.GetResult();
- if (Intent?.GetStringExtra(Constants.NotificationData) is string notificationDataJson)
+ if (Intent?.GetStringExtra(Core.Constants.NotificationData) is string notificationDataJson)
{
- var notificationType = JToken.Parse(notificationDataJson).SelectToken(Constants.NotificationDataType);
+ var notificationType = JToken.Parse(notificationDataJson).SelectToken(Core.Constants.NotificationDataType);
if (notificationType.ToString() == PasswordlessNotificationData.TYPE)
{
_pushNotificationListenerService.OnNotificationTapped(JsonConvert.DeserializeObject(notificationDataJson)).FireAndForget();
@@ -211,7 +211,7 @@ namespace Bit.Droid
public async override void OnRequestPermissionsResult(int requestCode, string[] permissions,
[GeneratedEnum] Permission[] grantResults)
{
- if (requestCode == Constants.SelectFilePermissionRequestCode)
+ if (requestCode == Core.Constants.SelectFilePermissionRequestCode)
{
if (grantResults.Any(r => r != Permission.Granted))
{
@@ -230,7 +230,7 @@ namespace Bit.Droid
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (resultCode == Result.Ok &&
- (requestCode == Constants.SelectFileRequestCode || requestCode == Constants.SaveFileRequestCode))
+ (requestCode == Core.Constants.SelectFileRequestCode || requestCode == Core.Constants.SaveFileRequestCode))
{
Android.Net.Uri uri = null;
string fileName = null;
@@ -252,7 +252,7 @@ namespace Bit.Droid
return;
}
- if (requestCode == Constants.SaveFileRequestCode)
+ if (requestCode == Core.Constants.SaveFileRequestCode)
{
_messagingService.Send("selectSaveFileResult",
new Tuple(uri.ToString(), fileName));
@@ -433,7 +433,7 @@ namespace Bit.Droid
return;
}
- var channel = new NotificationChannel(Constants.AndroidNotificationChannelId, AppResources.AllNotifications, NotificationImportance.Default);
+ var channel = new NotificationChannel(Core.Constants.AndroidNotificationChannelId, AppResources.AllNotifications, NotificationImportance.Default);
if(GetSystemService(NotificationService) is NotificationManager notificationManager)
{
notificationManager.CreateNotificationChannel(channel);
diff --git a/src/Android/MainApplication.cs b/src/Android/MainApplication.cs
index 3388b2ea7..ef0b6f303 100644
--- a/src/Android/MainApplication.cs
+++ b/src/Android/MainApplication.cs
@@ -46,8 +46,8 @@ namespace Bit.Droid
{
RegisterLocalServices();
var deviceActionService = ServiceContainer.Resolve("deviceActionService");
- ServiceContainer.Init(deviceActionService.DeviceUserAgent, Constants.ClearCiphersCacheKey,
- Constants.AndroidAllClearCipherCacheKeys);
+ ServiceContainer.Init(deviceActionService.DeviceUserAgent, Core.Constants.ClearCiphersCacheKey,
+ Core.Constants.AndroidAllClearCipherCacheKeys);
InitializeAppSetup();
// TODO: Update when https://github.com/bitwarden/mobile/pull/1662 gets merged
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index 97e5c2daf..03f8ad672 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -79,11 +79,11 @@ namespace Bit.Droid.Services
var context = Android.App.Application.Context;
var intent = new Intent(context, typeof(MainActivity));
- intent.PutExtra(Constants.NotificationData, JsonConvert.SerializeObject(data));
+ intent.PutExtra(Core.Constants.NotificationData, JsonConvert.SerializeObject(data));
var pendingIntentFlags = AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, true);
var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, pendingIntentFlags);
- var builder = new NotificationCompat.Builder(context, Constants.AndroidNotificationChannelId)
+ var builder = new NotificationCompat.Builder(context, Core.Constants.AndroidNotificationChannelId)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
diff --git a/src/Android/Services/DeviceActionService.cs b/src/Android/Services/DeviceActionService.cs
index a66a3370c..452fb0b81 100644
--- a/src/Android/Services/DeviceActionService.cs
+++ b/src/Android/Services/DeviceActionService.cs
@@ -321,7 +321,7 @@ namespace Bit.Droid.Services
intent.AddCategory(Intent.CategoryOpenable);
intent.PutExtra(Intent.ExtraTitle, fileName);
- activity.StartActivityForResult(intent, Constants.SaveFileRequestCode);
+ activity.StartActivityForResult(intent, Core.Constants.SaveFileRequestCode);
return true;
}
catch (Exception ex)
@@ -386,7 +386,7 @@ namespace Bit.Droid.Services
{
chooserIntent.PutExtra(Intent.ExtraInitialIntents, additionalIntents.ToArray());
}
- activity.StartActivityForResult(chooserIntent, Constants.SelectFileRequestCode);
+ activity.StartActivityForResult(chooserIntent, Core.Constants.SelectFileRequestCode);
return Task.FromResult(0);
}
@@ -882,7 +882,7 @@ namespace Bit.Droid.Services
private void AskPermission(string permission)
{
ActivityCompat.RequestPermissions(CrossCurrentActivity.Current.Activity, new string[] { permission },
- Constants.SelectFilePermissionRequestCode);
+ Core.Constants.SelectFilePermissionRequestCode);
}
private List GetCameraIntents(Android.Net.Uri outputUri)
From ba677a96aa4a27ee702f5d69fc35aebc0f2813ed Mon Sep 17 00:00:00 2001
From: Federico Maccaroni
Date: Tue, 11 Oct 2022 18:19:32 -0300
Subject: [PATCH 18/32] [EC-519] Refactor Split DeviceActionService (#2081)
* EC-519 Refactored IDeviceActionService to be split into IFileService and IAutofillManager also some cleanups were made
* EC-519 Fix format
* EC-519 Fix merge to use the new AutofillHandler
---
src/Android/Android.csproj | 2 +
src/Android/MainActivity.cs | 4 +-
src/Android/MainApplication.cs | 7 +-
src/Android/Services/AutofillHandler.cs | 210 ++++++++
src/Android/Services/DeviceActionService.cs | 455 +-----------------
src/Android/Services/FileService.cs | 278 +++++++++++
src/App/Abstractions/IDeviceActionService.cs | 35 +-
src/App/App.xaml.cs | 4 +-
.../Pages/Send/SendAddEditPageViewModel.cs | 4 +-
.../SendGroupingsPageViewModel.cs | 2 +-
.../Settings/AutofillServicesPageViewModel.cs | 12 +-
.../Settings/ExportVaultPageViewModel.cs | 6 +-
src/App/Pages/Settings/OptionsPage.xaml.cs | 7 +-
.../SettingsPage/SettingsPageViewModel.cs | 6 +-
.../Pages/Vault/AttachmentsPageViewModel.cs | 4 +-
.../Vault/AutofillCiphersPageViewModel.cs | 4 +-
src/App/Pages/Vault/BaseCipherViewModel.cs | 2 +
src/App/Pages/Vault/CipherAddEditPage.xaml.cs | 6 +-
.../Pages/Vault/CipherAddEditPageViewModel.cs | 4 +-
.../Pages/Vault/CipherDetailsPageViewModel.cs | 8 +-
src/App/Pages/Vault/CiphersPage.xaml.cs | 8 +-
src/App/Pages/Vault/CiphersPageViewModel.cs | 4 +-
.../GroupingsPage/GroupingsPageViewModel.cs | 4 +-
.../Services/MobilePlatformUtilsService.cs | 15 +-
src/App/Utilities/AppHelpers.cs | 4 +-
src/Core/Abstractions/IAutofillHandler.cs | 16 +
src/Core/Abstractions/IFileService.cs | 14 +
.../Abstractions/IPlatformUtilsService.cs | 5 +-
src/Core/Utilities/LazyResolve.cs | 7 +-
src/iOS.Core/Services/AutofillHandler.cs | 22 +
src/iOS.Core/Services/DeviceActionService.cs | 270 -----------
src/iOS.Core/Services/FileService.cs | 213 ++++++++
.../Utilities/UIViewControllerExtensions.cs | 31 ++
src/iOS.Core/Utilities/iOSCoreHelpers.cs | 5 +-
src/iOS.Core/iOS.Core.csproj | 3 +
35 files changed, 883 insertions(+), 798 deletions(-)
create mode 100644 src/Android/Services/AutofillHandler.cs
create mode 100644 src/Android/Services/FileService.cs
create mode 100644 src/Core/Abstractions/IAutofillHandler.cs
create mode 100644 src/Core/Abstractions/IFileService.cs
create mode 100644 src/iOS.Core/Services/AutofillHandler.cs
create mode 100644 src/iOS.Core/Services/FileService.cs
create mode 100644 src/iOS.Core/Utilities/UIViewControllerExtensions.cs
diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index dfe728ede..1ac400e27 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -152,6 +152,8 @@
+
+
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index 751cd7f2a..cffc12ac0 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -36,6 +36,7 @@ namespace Bit.Droid
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
private IDeviceActionService _deviceActionService;
+ private IFileService _fileService;
private IMessagingService _messagingService;
private IBroadcasterService _broadcasterService;
private IStateService _stateService;
@@ -59,6 +60,7 @@ namespace Bit.Droid
StrictMode.SetThreadPolicy(policy);
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_messagingService = ServiceContainer.Resolve("messagingService");
_broadcasterService = ServiceContainer.Resolve("broadcasterService");
_stateService = ServiceContainer.Resolve("stateService");
@@ -217,7 +219,7 @@ namespace Bit.Droid
{
_messagingService.Send("selectFileCameraPermissionDenied");
}
- await _deviceActionService.SelectFileAsync();
+ await _fileService.SelectFileAsync();
}
else
{
diff --git a/src/Android/MainApplication.cs b/src/Android/MainApplication.cs
index ef0b6f303..8bca7cafa 100644
--- a/src/Android/MainApplication.cs
+++ b/src/Android/MainApplication.cs
@@ -139,8 +139,9 @@ namespace Bit.Droid
var stateMigrationService =
new StateMigrationService(liteDbStorage, preferencesStorage, secureStorageService);
var clipboardService = new ClipboardService(stateService);
- var deviceActionService = new DeviceActionService(clipboardService, stateService, messagingService,
- broadcasterService, () => ServiceContainer.Resolve("eventService"));
+ var deviceActionService = new DeviceActionService(stateService, messagingService);
+ var fileService = new FileService(stateService, broadcasterService);
+ var autofillHandler = new AutofillHandler(stateService, messagingService, clipboardService, new LazyResolve());
var platformUtilsService = new MobilePlatformUtilsService(deviceActionService, clipboardService,
messagingService, broadcasterService);
var biometricService = new BiometricService();
@@ -159,6 +160,8 @@ namespace Bit.Droid
ServiceContainer.Register("stateMigrationService", stateMigrationService);
ServiceContainer.Register("clipboardService", clipboardService);
ServiceContainer.Register("deviceActionService", deviceActionService);
+ ServiceContainer.Register(fileService);
+ ServiceContainer.Register(autofillHandler);
ServiceContainer.Register("platformUtilsService", platformUtilsService);
ServiceContainer.Register("biometricService", biometricService);
ServiceContainer.Register("cryptoFunctionService", cryptoFunctionService);
diff --git a/src/Android/Services/AutofillHandler.cs b/src/Android/Services/AutofillHandler.cs
new file mode 100644
index 000000000..9cfa5ec9e
--- /dev/null
+++ b/src/Android/Services/AutofillHandler.cs
@@ -0,0 +1,210 @@
+using System.Linq;
+using System.Threading.Tasks;
+using Android.App;
+using Android.App.Assist;
+using Android.Content;
+using Android.OS;
+using Android.Provider;
+using Android.Views.Autofill;
+using Bit.Core.Abstractions;
+using Bit.Core.Enums;
+using Bit.Core.Models.View;
+using Bit.Core.Utilities;
+using Bit.Droid.Autofill;
+using Plugin.CurrentActivity;
+
+namespace Bit.Droid.Services
+{
+ public class AutofillHandler : IAutofillHandler
+ {
+ private readonly IStateService _stateService;
+ private readonly IMessagingService _messagingService;
+ private readonly IClipboardService _clipboardService;
+ private readonly LazyResolve _eventService;
+
+ public AutofillHandler(IStateService stateService,
+ IMessagingService messagingService,
+ IClipboardService clipboardService,
+ LazyResolve eventService)
+ {
+ _stateService = stateService;
+ _messagingService = messagingService;
+ _clipboardService = clipboardService;
+ _eventService = eventService;
+ }
+
+ public bool AutofillServiceEnabled()
+ {
+ if (Build.VERSION.SdkInt < BuildVersionCodes.O)
+ {
+ return false;
+ }
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var afm = (AutofillManager)activity.GetSystemService(
+ Java.Lang.Class.FromType(typeof(AutofillManager)));
+ return afm.IsEnabled && afm.HasEnabledAutofillServices;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public bool SupportsAutofillService()
+ {
+ if (Build.VERSION.SdkInt < BuildVersionCodes.O)
+ {
+ return false;
+ }
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var type = Java.Lang.Class.FromType(typeof(AutofillManager));
+ var manager = activity.GetSystemService(type) as AutofillManager;
+ return manager.IsAutofillSupported;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public void Autofill(CipherView cipher)
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ if (activity == null)
+ {
+ return;
+ }
+ if (activity.Intent?.GetBooleanExtra("autofillFramework", false) ?? false)
+ {
+ if (cipher == null)
+ {
+ activity.SetResult(Result.Canceled);
+ activity.Finish();
+ return;
+ }
+ var structure = activity.Intent.GetParcelableExtra(
+ AutofillManager.ExtraAssistStructure) as AssistStructure;
+ if (structure == null)
+ {
+ activity.SetResult(Result.Canceled);
+ activity.Finish();
+ return;
+ }
+ var parser = new Parser(structure, activity.ApplicationContext);
+ parser.Parse();
+ if ((!parser.FieldCollection?.Fields?.Any() ?? true) || string.IsNullOrWhiteSpace(parser.Uri))
+ {
+ activity.SetResult(Result.Canceled);
+ activity.Finish();
+ return;
+ }
+ var task = CopyTotpAsync(cipher);
+ var dataset = AutofillHelpers.BuildDataset(activity, parser.FieldCollection, new FilledItem(cipher));
+ var replyIntent = new Intent();
+ replyIntent.PutExtra(AutofillManager.ExtraAuthenticationResult, dataset);
+ activity.SetResult(Result.Ok, replyIntent);
+ activity.Finish();
+ var eventTask = _eventService.Value.CollectAsync(EventType.Cipher_ClientAutofilled, cipher.Id);
+ }
+ else
+ {
+ var data = new Intent();
+ if (cipher?.Login == null)
+ {
+ data.PutExtra("canceled", "true");
+ }
+ else
+ {
+ var task = CopyTotpAsync(cipher);
+ data.PutExtra("uri", cipher.Login.Uri);
+ data.PutExtra("username", cipher.Login.Username);
+ data.PutExtra("password", cipher.Login.Password);
+ }
+ if (activity.Parent == null)
+ {
+ activity.SetResult(Result.Ok, data);
+ }
+ else
+ {
+ activity.Parent.SetResult(Result.Ok, data);
+ }
+ activity.Finish();
+ _messagingService.Send("finishMainActivity");
+ if (cipher != null)
+ {
+ var eventTask = _eventService.Value.CollectAsync(EventType.Cipher_ClientAutofilled, cipher.Id);
+ }
+ }
+ }
+
+ public void CloseAutofill()
+ {
+ Autofill(null);
+ }
+
+ public bool AutofillAccessibilityServiceRunning()
+ {
+ var enabledServices = Settings.Secure.GetString(Application.Context.ContentResolver,
+ Settings.Secure.EnabledAccessibilityServices);
+ return Application.Context.PackageName != null &&
+ (enabledServices?.Contains(Application.Context.PackageName) ?? false);
+ }
+
+ public bool AutofillAccessibilityOverlayPermitted()
+ {
+ return Accessibility.AccessibilityHelpers.OverlayPermitted();
+ }
+
+
+
+ public void DisableAutofillService()
+ {
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var type = Java.Lang.Class.FromType(typeof(AutofillManager));
+ var manager = activity.GetSystemService(type) as AutofillManager;
+ manager.DisableAutofillServices();
+ }
+ catch { }
+ }
+
+ public bool AutofillServicesEnabled()
+ {
+ if (Build.VERSION.SdkInt <= BuildVersionCodes.M)
+ {
+ // Android 5-6: Both accessibility & overlay are required or nothing happens
+ return AutofillAccessibilityServiceRunning() && AutofillAccessibilityOverlayPermitted();
+ }
+ if (Build.VERSION.SdkInt == BuildVersionCodes.N)
+ {
+ // Android 7: Only accessibility is required (overlay is optional when using quick-action tile)
+ return AutofillAccessibilityServiceRunning();
+ }
+ // Android 8+: Either autofill or accessibility is required
+ return AutofillServiceEnabled() || AutofillAccessibilityServiceRunning();
+ }
+
+ private async Task CopyTotpAsync(CipherView cipher)
+ {
+ if (!string.IsNullOrWhiteSpace(cipher?.Login?.Totp))
+ {
+ var autoCopyDisabled = await _stateService.GetDisableAutoTotpCopyAsync();
+ var canAccessPremium = await _stateService.CanAccessPremiumAsync();
+ if ((canAccessPremium || cipher.OrganizationUseTotp) && !autoCopyDisabled.GetValueOrDefault())
+ {
+ var totpService = ServiceContainer.Resolve("totpService");
+ var totp = await totpService.GetCodeAsync(cipher.Login.Totp);
+ if (totp != null)
+ {
+ await _clipboardService.CopyTextAsync(totp);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/Android/Services/DeviceActionService.cs b/src/Android/Services/DeviceActionService.cs
index 452fb0b81..2ddee1245 100644
--- a/src/Android/Services/DeviceActionService.cs
+++ b/src/Android/Services/DeviceActionService.cs
@@ -1,11 +1,6 @@
using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
using System.Threading.Tasks;
-using Android;
using Android.App;
-using Android.App.Assist;
using Android.Content;
using Android.Content.PM;
using Android.Nfc;
@@ -14,20 +9,13 @@ using Android.Provider;
using Android.Text;
using Android.Text.Method;
using Android.Views;
-using Android.Views.Autofill;
using Android.Views.InputMethods;
-using Android.Webkit;
using Android.Widget;
-using AndroidX.Core.App;
-using AndroidX.Core.Content;
using Bit.App.Abstractions;
using Bit.App.Resources;
-using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
-using Bit.Core.Models.View;
using Bit.Core.Utilities;
-using Bit.Droid.Autofill;
using Bit.Droid.Utilities;
using Plugin.CurrentActivity;
@@ -35,38 +23,20 @@ namespace Bit.Droid.Services
{
public class DeviceActionService : IDeviceActionService
{
- private readonly IClipboardService _clipboardService;
private readonly IStateService _stateService;
private readonly IMessagingService _messagingService;
- private readonly IBroadcasterService _broadcasterService;
- private readonly Func _eventServiceFunc;
private AlertDialog _progressDialog;
object _progressDialogLock = new object();
- private bool _cameraPermissionsDenied;
private Toast _toast;
private string _userAgent;
public DeviceActionService(
- IClipboardService clipboardService,
IStateService stateService,
- IMessagingService messagingService,
- IBroadcasterService broadcasterService,
- Func eventServiceFunc)
+ IMessagingService messagingService)
{
- _clipboardService = clipboardService;
_stateService = stateService;
_messagingService = messagingService;
- _broadcasterService = broadcasterService;
- _eventServiceFunc = eventServiceFunc;
-
- _broadcasterService.Subscribe(nameof(DeviceActionService), (message) =>
- {
- if (message.Command == "selectFileCameraPermissionDenied")
- {
- _cameraPermissionsDenied = true;
- }
- });
}
public string DeviceUserAgent
@@ -212,184 +182,6 @@ namespace Bit.Droid.Services
return true;
}
- public bool OpenFile(byte[] fileData, string id, string fileName)
- {
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var intent = BuildOpenFileIntent(fileData, fileName);
- if (intent == null)
- {
- return false;
- }
- activity.StartActivity(intent);
- return true;
- }
- catch { }
- return false;
- }
-
- public bool CanOpenFile(string fileName)
- {
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var intent = BuildOpenFileIntent(new byte[0], string.Concat("opentest_", fileName));
- if (intent == null)
- {
- return false;
- }
- var activities = activity.PackageManager.QueryIntentActivities(intent,
- PackageInfoFlags.MatchDefaultOnly);
- return (activities?.Count ?? 0) > 0;
- }
- catch { }
- return false;
- }
-
- private Intent BuildOpenFileIntent(byte[] fileData, string fileName)
- {
- var extension = MimeTypeMap.GetFileExtensionFromUrl(fileName.Replace(' ', '_').ToLower());
- if (extension == null)
- {
- return null;
- }
- var mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
- if (mimeType == null)
- {
- return null;
- }
-
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var cachePath = activity.CacheDir;
- var filePath = Path.Combine(cachePath.Path, fileName);
- File.WriteAllBytes(filePath, fileData);
- var file = new Java.IO.File(cachePath, fileName);
- if (!file.IsFile)
- {
- return null;
- }
-
- try
- {
- var intent = new Intent(Intent.ActionView);
- var uri = FileProvider.GetUriForFile(activity.ApplicationContext,
- "com.x8bit.bitwarden.fileprovider", file);
- intent.SetDataAndType(uri, mimeType);
- intent.SetFlags(ActivityFlags.GrantReadUriPermission);
- return intent;
- }
- catch { }
- return null;
- }
-
- public bool SaveFile(byte[] fileData, string id, string fileName, string contentUri)
- {
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
-
- if (contentUri != null)
- {
- var uri = Android.Net.Uri.Parse(contentUri);
- var stream = activity.ContentResolver.OpenOutputStream(uri);
- // Using java bufferedOutputStream due to this issue:
- // https://github.com/xamarin/xamarin-android/issues/3498
- var javaStream = new Java.IO.BufferedOutputStream(stream);
- javaStream.Write(fileData);
- javaStream.Flush();
- javaStream.Close();
- return true;
- }
-
- // Prompt for location to save file
- var extension = MimeTypeMap.GetFileExtensionFromUrl(fileName.Replace(' ', '_').ToLower());
- if (extension == null)
- {
- return false;
- }
-
- string mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
- if (mimeType == null)
- {
- // Unable to identify so fall back to generic "any" type
- mimeType = "*/*";
- }
-
- var intent = new Intent(Intent.ActionCreateDocument);
- intent.SetType(mimeType);
- intent.AddCategory(Intent.CategoryOpenable);
- intent.PutExtra(Intent.ExtraTitle, fileName);
-
- activity.StartActivityForResult(intent, Core.Constants.SaveFileRequestCode);
- return true;
- }
- catch (Exception ex)
- {
- System.Diagnostics.Debug.WriteLine(">>> {0}: {1}", ex.GetType(), ex.StackTrace);
- }
- return false;
- }
-
- public async Task ClearCacheAsync()
- {
- try
- {
- DeleteDir(CrossCurrentActivity.Current.Activity.CacheDir);
- await _stateService.SetLastFileCacheClearAsync(DateTime.UtcNow);
- }
- catch (Exception) { }
- }
-
- public Task SelectFileAsync()
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var hasStorageWritePermission = !_cameraPermissionsDenied &&
- HasPermission(Manifest.Permission.WriteExternalStorage);
- var additionalIntents = new List();
- if (activity.PackageManager.HasSystemFeature(PackageManager.FeatureCamera))
- {
- var hasCameraPermission = !_cameraPermissionsDenied && HasPermission(Manifest.Permission.Camera);
- if (!_cameraPermissionsDenied && !hasStorageWritePermission)
- {
- AskPermission(Manifest.Permission.WriteExternalStorage);
- return Task.FromResult(0);
- }
- if (!_cameraPermissionsDenied && !hasCameraPermission)
- {
- AskPermission(Manifest.Permission.Camera);
- return Task.FromResult(0);
- }
- if (!_cameraPermissionsDenied && hasCameraPermission && hasStorageWritePermission)
- {
- try
- {
- var file = new Java.IO.File(activity.FilesDir, "temp_camera_photo.jpg");
- if (!file.Exists())
- {
- file.ParentFile.Mkdirs();
- file.CreateNewFile();
- }
- var outputFileUri = FileProvider.GetUriForFile(activity,
- "com.x8bit.bitwarden.fileprovider", file);
- additionalIntents.AddRange(GetCameraIntents(outputFileUri));
- }
- catch (Java.IO.IOException) { }
- }
- }
-
- var docIntent = new Intent(Intent.ActionOpenDocument);
- docIntent.AddCategory(Intent.CategoryOpenable);
- docIntent.SetType("*/*");
- var chooserIntent = Intent.CreateChooser(docIntent, AppResources.FileSource);
- if (additionalIntents.Count > 0)
- {
- chooserIntent.PutExtra(Intent.ExtraInitialIntents, additionalIntents.ToArray());
- }
- activity.StartActivityForResult(chooserIntent, Core.Constants.SelectFileRequestCode);
- return Task.FromResult(0);
- }
-
public Task DisplayPromptAync(string title = null, string description = null,
string text = null, string okButtonText = null, string cancelButtonText = null,
bool numericKeyboard = false, bool autofocus = true, bool password = false)
@@ -467,34 +259,6 @@ namespace Bit.Droid.Services
}
}
- public void DisableAutofillService()
- {
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var type = Java.Lang.Class.FromType(typeof(AutofillManager));
- var manager = activity.GetSystemService(type) as AutofillManager;
- manager.DisableAutofillServices();
- }
- catch { }
- }
-
- public bool AutofillServicesEnabled()
- {
- if (Build.VERSION.SdkInt <= BuildVersionCodes.M)
- {
- // Android 5-6: Both accessibility & overlay are required or nothing happens
- return AutofillAccessibilityServiceRunning() && AutofillAccessibilityOverlayPermitted();
- }
- if (Build.VERSION.SdkInt == BuildVersionCodes.N)
- {
- // Android 7: Only accessibility is required (overlay is optional when using quick-action tile)
- return AutofillAccessibilityServiceRunning();
- }
- // Android 8+: Either autofill or accessibility is required
- return AutofillServiceEnabled() || AutofillAccessibilityServiceRunning();
- }
-
public string GetBuildNumber()
{
return Application.Context.ApplicationContext.PackageManager.GetPackageInfo(
@@ -526,25 +290,6 @@ namespace Bit.Droid.Services
return activity.PackageManager.HasSystemFeature(PackageManager.FeatureCamera);
}
- public bool SupportsAutofillService()
- {
- if (Build.VERSION.SdkInt < BuildVersionCodes.O)
- {
- return false;
- }
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var type = Java.Lang.Class.FromType(typeof(AutofillManager));
- var manager = activity.GetSystemService(type) as AutofillManager;
- return manager.IsAutofillSupported;
- }
- catch
- {
- return false;
- }
- }
-
public int SystemMajorVersion()
{
return (int)Build.VERSION.SdkInt;
@@ -635,112 +380,6 @@ namespace Bit.Droid.Services
title, cancel, destruction, buttons);
}
- public void Autofill(CipherView cipher)
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- if (activity == null)
- {
- return;
- }
- if (activity.Intent?.GetBooleanExtra("autofillFramework", false) ?? false)
- {
- if (cipher == null)
- {
- activity.SetResult(Result.Canceled);
- activity.Finish();
- return;
- }
- var structure = activity.Intent.GetParcelableExtra(
- AutofillManager.ExtraAssistStructure) as AssistStructure;
- if (structure == null)
- {
- activity.SetResult(Result.Canceled);
- activity.Finish();
- return;
- }
- var parser = new Parser(structure, activity.ApplicationContext);
- parser.Parse();
- if ((!parser.FieldCollection?.Fields?.Any() ?? true) || string.IsNullOrWhiteSpace(parser.Uri))
- {
- activity.SetResult(Result.Canceled);
- activity.Finish();
- return;
- }
- var task = CopyTotpAsync(cipher);
- var dataset = AutofillHelpers.BuildDataset(activity, parser.FieldCollection, new FilledItem(cipher));
- var replyIntent = new Intent();
- replyIntent.PutExtra(AutofillManager.ExtraAuthenticationResult, dataset);
- activity.SetResult(Result.Ok, replyIntent);
- activity.Finish();
- var eventTask = _eventServiceFunc().CollectAsync(EventType.Cipher_ClientAutofilled, cipher.Id);
- }
- else
- {
- var data = new Intent();
- if (cipher?.Login == null)
- {
- data.PutExtra("canceled", "true");
- }
- else
- {
- var task = CopyTotpAsync(cipher);
- data.PutExtra("uri", cipher.Login.Uri);
- data.PutExtra("username", cipher.Login.Username);
- data.PutExtra("password", cipher.Login.Password);
- }
- if (activity.Parent == null)
- {
- activity.SetResult(Result.Ok, data);
- }
- else
- {
- activity.Parent.SetResult(Result.Ok, data);
- }
- activity.Finish();
- _messagingService.Send("finishMainActivity");
- if (cipher != null)
- {
- var eventTask = _eventServiceFunc().CollectAsync(EventType.Cipher_ClientAutofilled, cipher.Id);
- }
- }
- }
-
- public void CloseAutofill()
- {
- Autofill(null);
- }
-
- public void Background()
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- if (activity.Intent?.GetBooleanExtra("autofillFramework", false) ?? false)
- {
- activity.SetResult(Result.Canceled);
- activity.Finish();
- }
- else
- {
- activity.MoveTaskToBack(true);
- }
- }
-
- public bool AutofillAccessibilityServiceRunning()
- {
- var enabledServices = Settings.Secure.GetString(Application.Context.ContentResolver,
- Settings.Secure.EnabledAccessibilityServices);
- return Application.Context.PackageName != null &&
- (enabledServices?.Contains(Application.Context.PackageName) ?? false);
- }
-
- public bool AutofillAccessibilityOverlayPermitted()
- {
- return Accessibility.AccessibilityHelpers.OverlayPermitted();
- }
-
- public bool HasAutofillService()
- {
- return true;
- }
public void OpenAccessibilityOverlayPermissionSettings()
{
@@ -771,25 +410,6 @@ namespace Bit.Droid.Services
}
}
- public bool AutofillServiceEnabled()
- {
- if (Build.VERSION.SdkInt < BuildVersionCodes.O)
- {
- return false;
- }
- try
- {
- var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
- var afm = (AutofillManager)activity.GetSystemService(
- Java.Lang.Class.FromType(typeof(AutofillManager)));
- return afm.IsEnabled && afm.HasEnabledAutofillServices;
- }
- catch
- {
- return false;
- }
- }
-
public void OpenAccessibilitySettings()
{
try
@@ -848,61 +468,6 @@ namespace Bit.Droid.Services
return true;
}
- private bool DeleteDir(Java.IO.File dir)
- {
- if (dir != null && dir.IsDirectory)
- {
- var children = dir.List();
- for (int i = 0; i < children.Length; i++)
- {
- var success = DeleteDir(new Java.IO.File(dir, children[i]));
- if (!success)
- {
- return false;
- }
- }
- return dir.Delete();
- }
- else if (dir != null && dir.IsFile)
- {
- return dir.Delete();
- }
- else
- {
- return false;
- }
- }
-
- private bool HasPermission(string permission)
- {
- return ContextCompat.CheckSelfPermission(
- CrossCurrentActivity.Current.Activity, permission) == Permission.Granted;
- }
-
- private void AskPermission(string permission)
- {
- ActivityCompat.RequestPermissions(CrossCurrentActivity.Current.Activity, new string[] { permission },
- Core.Constants.SelectFilePermissionRequestCode);
- }
-
- private List GetCameraIntents(Android.Net.Uri outputUri)
- {
- var intents = new List();
- var pm = CrossCurrentActivity.Current.Activity.PackageManager;
- var captureIntent = new Intent(MediaStore.ActionImageCapture);
- var listCam = pm.QueryIntentActivities(captureIntent, 0);
- foreach (var res in listCam)
- {
- var packageName = res.ActivityInfo.PackageName;
- var intent = new Intent(captureIntent);
- intent.SetComponent(new ComponentName(packageName, res.ActivityInfo.Name));
- intent.SetPackage(packageName);
- intent.PutExtra(MediaStore.ExtraOutput, outputUri);
- intents.Add(intent);
- }
- return intents;
- }
-
private Intent RateIntentForUrl(string url, Activity activity)
{
var intent = new Intent(Intent.ActionView, Android.Net.Uri.Parse($"{url}?id={activity.PackageName}"));
@@ -920,24 +485,6 @@ namespace Bit.Droid.Services
return intent;
}
- private async Task CopyTotpAsync(CipherView cipher)
- {
- if (!string.IsNullOrWhiteSpace(cipher?.Login?.Totp))
- {
- var autoCopyDisabled = await _stateService.GetDisableAutoTotpCopyAsync();
- var canAccessPremium = await _stateService.CanAccessPremiumAsync();
- if ((canAccessPremium || cipher.OrganizationUseTotp) && !autoCopyDisabled.GetValueOrDefault())
- {
- var totpService = ServiceContainer.Resolve("totpService");
- var totp = await totpService.GetCodeAsync(cipher.Login.Totp);
- if (totp != null)
- {
- await _clipboardService.CopyTextAsync(totp);
- }
- }
- }
- }
-
public float GetSystemFontSizeScale()
{
var activity = CrossCurrentActivity.Current?.Activity as MainActivity;
diff --git a/src/Android/Services/FileService.cs b/src/Android/Services/FileService.cs
new file mode 100644
index 000000000..c217f7a51
--- /dev/null
+++ b/src/Android/Services/FileService.cs
@@ -0,0 +1,278 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading.Tasks;
+using Android;
+using Android.Content;
+using Android.Content.PM;
+using Android.OS;
+using Android.Provider;
+using Android.Webkit;
+using AndroidX.Core.App;
+using AndroidX.Core.Content;
+using Bit.App.Resources;
+using Bit.Core;
+using Bit.Core.Abstractions;
+using Plugin.CurrentActivity;
+
+namespace Bit.Droid.Services
+{
+ public class FileService : IFileService
+ {
+ private readonly IStateService _stateService;
+ private readonly IBroadcasterService _broadcasterService;
+
+ private bool _cameraPermissionsDenied;
+
+ public FileService(IStateService stateService, IBroadcasterService broadcasterService)
+ {
+ _stateService = stateService;
+ _broadcasterService = broadcasterService;
+
+ _broadcasterService.Subscribe(nameof(FileService), (message) =>
+ {
+ if (message.Command == "selectFileCameraPermissionDenied")
+ {
+ _cameraPermissionsDenied = true;
+ }
+ });
+ }
+
+ public bool OpenFile(byte[] fileData, string id, string fileName)
+ {
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var intent = BuildOpenFileIntent(fileData, fileName);
+ if (intent == null)
+ {
+ return false;
+ }
+ activity.StartActivity(intent);
+ return true;
+ }
+ catch { }
+ return false;
+ }
+
+ public bool CanOpenFile(string fileName)
+ {
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var intent = BuildOpenFileIntent(new byte[0], string.Concat("opentest_", fileName));
+ if (intent == null)
+ {
+ return false;
+ }
+ var activities = activity.PackageManager.QueryIntentActivities(intent,
+ PackageInfoFlags.MatchDefaultOnly);
+ return (activities?.Count ?? 0) > 0;
+ }
+ catch { }
+ return false;
+ }
+
+ private Intent BuildOpenFileIntent(byte[] fileData, string fileName)
+ {
+ var extension = MimeTypeMap.GetFileExtensionFromUrl(fileName.Replace(' ', '_').ToLower());
+ if (extension == null)
+ {
+ return null;
+ }
+ var mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
+ if (mimeType == null)
+ {
+ return null;
+ }
+
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var cachePath = activity.CacheDir;
+ var filePath = Path.Combine(cachePath.Path, fileName);
+ File.WriteAllBytes(filePath, fileData);
+ var file = new Java.IO.File(cachePath, fileName);
+ if (!file.IsFile)
+ {
+ return null;
+ }
+
+ try
+ {
+ var intent = new Intent(Intent.ActionView);
+ var uri = FileProvider.GetUriForFile(activity.ApplicationContext,
+ "com.x8bit.bitwarden.fileprovider", file);
+ intent.SetDataAndType(uri, mimeType);
+ intent.SetFlags(ActivityFlags.GrantReadUriPermission);
+ return intent;
+ }
+ catch { }
+ return null;
+ }
+
+ public bool SaveFile(byte[] fileData, string id, string fileName, string contentUri)
+ {
+ try
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+
+ if (contentUri != null)
+ {
+ var uri = Android.Net.Uri.Parse(contentUri);
+ var stream = activity.ContentResolver.OpenOutputStream(uri);
+ // Using java bufferedOutputStream due to this issue:
+ // https://github.com/xamarin/xamarin-android/issues/3498
+ var javaStream = new Java.IO.BufferedOutputStream(stream);
+ javaStream.Write(fileData);
+ javaStream.Flush();
+ javaStream.Close();
+ return true;
+ }
+
+ // Prompt for location to save file
+ var extension = MimeTypeMap.GetFileExtensionFromUrl(fileName.Replace(' ', '_').ToLower());
+ if (extension == null)
+ {
+ return false;
+ }
+
+ string mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension(extension);
+ if (mimeType == null)
+ {
+ // Unable to identify so fall back to generic "any" type
+ mimeType = "*/*";
+ }
+
+ var intent = new Intent(Intent.ActionCreateDocument);
+ intent.SetType(mimeType);
+ intent.AddCategory(Intent.CategoryOpenable);
+ intent.PutExtra(Intent.ExtraTitle, fileName);
+
+ activity.StartActivityForResult(intent, Core.Constants.SaveFileRequestCode);
+ return true;
+ }
+ catch (Exception ex)
+ {
+ System.Diagnostics.Debug.WriteLine(">>> {0}: {1}", ex.GetType(), ex.StackTrace);
+ }
+ return false;
+ }
+
+ public async Task ClearCacheAsync()
+ {
+ try
+ {
+ DeleteDir(CrossCurrentActivity.Current.Activity.CacheDir);
+ await _stateService.SetLastFileCacheClearAsync(DateTime.UtcNow);
+ }
+ catch (Exception) { }
+ }
+
+ public Task SelectFileAsync()
+ {
+ var activity = (MainActivity)CrossCurrentActivity.Current.Activity;
+ var hasStorageWritePermission = !_cameraPermissionsDenied &&
+ HasPermission(Manifest.Permission.WriteExternalStorage);
+ var additionalIntents = new List();
+ if (activity.PackageManager.HasSystemFeature(PackageManager.FeatureCamera))
+ {
+ var hasCameraPermission = !_cameraPermissionsDenied && HasPermission(Manifest.Permission.Camera);
+ if (!_cameraPermissionsDenied && !hasStorageWritePermission)
+ {
+ AskPermission(Manifest.Permission.WriteExternalStorage);
+ return Task.FromResult(0);
+ }
+ if (!_cameraPermissionsDenied && !hasCameraPermission)
+ {
+ AskPermission(Manifest.Permission.Camera);
+ return Task.FromResult(0);
+ }
+ if (!_cameraPermissionsDenied && hasCameraPermission && hasStorageWritePermission)
+ {
+ try
+ {
+ var file = new Java.IO.File(activity.FilesDir, "temp_camera_photo.jpg");
+ if (!file.Exists())
+ {
+ file.ParentFile.Mkdirs();
+ file.CreateNewFile();
+ }
+ var outputFileUri = FileProvider.GetUriForFile(activity,
+ "com.x8bit.bitwarden.fileprovider", file);
+ additionalIntents.AddRange(GetCameraIntents(outputFileUri));
+ }
+ catch (Java.IO.IOException) { }
+ }
+ }
+
+ var docIntent = new Intent(Intent.ActionOpenDocument);
+ docIntent.AddCategory(Intent.CategoryOpenable);
+ docIntent.SetType("*/*");
+ var chooserIntent = Intent.CreateChooser(docIntent, AppResources.FileSource);
+ if (additionalIntents.Count > 0)
+ {
+ chooserIntent.PutExtra(Intent.ExtraInitialIntents, additionalIntents.ToArray());
+ }
+ activity.StartActivityForResult(chooserIntent, Core.Constants.SelectFileRequestCode);
+ return Task.FromResult(0);
+ }
+
+ private bool DeleteDir(Java.IO.File dir)
+ {
+ if (dir is null)
+ {
+ return false;
+ }
+
+ if (dir.IsDirectory)
+ {
+ var children = dir.List();
+ for (int i = 0; i < children.Length; i++)
+ {
+ var success = DeleteDir(new Java.IO.File(dir, children[i]));
+ if (!success)
+ {
+ return false;
+ }
+ }
+ return dir.Delete();
+ }
+
+ if (dir.IsFile)
+ {
+ return dir.Delete();
+ }
+
+ return false;
+ }
+
+ private bool HasPermission(string permission)
+ {
+ return ContextCompat.CheckSelfPermission(
+ CrossCurrentActivity.Current.Activity, permission) == Permission.Granted;
+ }
+
+ private void AskPermission(string permission)
+ {
+ ActivityCompat.RequestPermissions(CrossCurrentActivity.Current.Activity, new string[] { permission },
+ Core.Constants.SelectFilePermissionRequestCode);
+ }
+
+ private List GetCameraIntents(Android.Net.Uri outputUri)
+ {
+ var intents = new List();
+ var pm = CrossCurrentActivity.Current.Activity.PackageManager;
+ var captureIntent = new Intent(MediaStore.ActionImageCapture);
+ var listCam = pm.QueryIntentActivities(captureIntent, 0);
+ foreach (var res in listCam)
+ {
+ var packageName = res.ActivityInfo.PackageName;
+ var intent = new Intent(captureIntent);
+ intent.SetComponent(new ComponentName(packageName, res.ActivityInfo.Name));
+ intent.SetPackage(packageName);
+ intent.PutExtra(MediaStore.ExtraOutput, outputUri);
+ intents.Add(intent);
+ }
+ return intents;
+ }
+ }
+}
diff --git a/src/App/Abstractions/IDeviceActionService.cs b/src/App/Abstractions/IDeviceActionService.cs
index a314995f8..8f4a19a34 100644
--- a/src/App/Abstractions/IDeviceActionService.cs
+++ b/src/App/Abstractions/IDeviceActionService.cs
@@ -1,6 +1,5 @@
using System.Threading.Tasks;
using Bit.Core.Enums;
-using Bit.Core.Models.View;
namespace Bit.App.Abstractions
{
@@ -8,44 +7,32 @@ namespace Bit.App.Abstractions
{
string DeviceUserAgent { get; }
DeviceType DeviceType { get; }
+ int SystemMajorVersion();
+ string SystemModel();
+ string GetBuildNumber();
+
void Toast(string text, bool longDuration = false);
- bool LaunchApp(string appName);
Task ShowLoadingAsync(string text);
Task HideLoadingAsync();
- bool OpenFile(byte[] fileData, string id, string fileName);
- bool SaveFile(byte[] fileData, string id, string fileName, string contentUri);
- bool CanOpenFile(string fileName);
- Task ClearCacheAsync();
- Task SelectFileAsync();
Task DisplayPromptAync(string title = null, string description = null, string text = null,
string okButtonText = null, string cancelButtonText = null, bool numericKeyboard = false,
bool autofocus = true, bool password = false);
- void RateApp();
+ Task DisplayAlertAsync(string title, string message, string cancel, params string[] buttons);
+ Task DisplayActionSheetAsync(string title, string cancel, string destruction, params string[] buttons);
+
bool SupportsFaceBiometric();
Task SupportsFaceBiometricAsync();
bool SupportsNfc();
bool SupportsCamera();
- bool SupportsAutofillService();
- int SystemMajorVersion();
- string SystemModel();
- Task DisplayAlertAsync(string title, string message, string cancel, params string[] buttons);
- Task DisplayActionSheetAsync(string title, string cancel, string destruction, params string[] buttons);
- void Autofill(CipherView cipher);
- void CloseAutofill();
- void Background();
- bool AutofillAccessibilityServiceRunning();
- bool AutofillAccessibilityOverlayPermitted();
- bool HasAutofillService();
- bool AutofillServiceEnabled();
- void DisableAutofillService();
- bool AutofillServicesEnabled();
- string GetBuildNumber();
+ bool SupportsFido2();
+
+ bool LaunchApp(string appName);
+ void RateApp();
void OpenAccessibilitySettings();
void OpenAccessibilityOverlayPermissionSettings();
void OpenAutofillSettings();
long GetActiveTime();
void CloseMainApp();
- bool SupportsFido2();
float GetSystemFontSizeScale();
Task OnAccountSwitchCompleteAsync();
Task SetScreenCaptureAllowedAsync();
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index 483711bfd..b78085a13 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -28,6 +28,7 @@ namespace Bit.App
private readonly ISyncService _syncService;
private readonly IAuthService _authService;
private readonly IDeviceActionService _deviceActionService;
+ private readonly IFileService _fileService;
private readonly IAccountsManager _accountsManager;
private readonly IPushNotificationService _pushNotificationService;
private static bool _isResumed;
@@ -49,6 +50,7 @@ namespace Bit.App
_syncService = ServiceContainer.Resolve("syncService");
_authService = ServiceContainer.Resolve("authService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_accountsManager = ServiceContainer.Resolve("accountsManager");
_pushNotificationService = ServiceContainer.Resolve();
@@ -301,7 +303,7 @@ namespace Bit.App
var lastClear = await _stateService.GetLastFileCacheClearAsync();
if ((DateTime.UtcNow - lastClear.GetValueOrDefault(DateTime.MinValue)).TotalDays >= 1)
{
- var task = Task.Run(() => _deviceActionService.ClearCacheAsync());
+ var task = Task.Run(() => _fileService.ClearCacheAsync());
}
}
diff --git a/src/App/Pages/Send/SendAddEditPageViewModel.cs b/src/App/Pages/Send/SendAddEditPageViewModel.cs
index 276b99a73..a0b55e2dc 100644
--- a/src/App/Pages/Send/SendAddEditPageViewModel.cs
+++ b/src/App/Pages/Send/SendAddEditPageViewModel.cs
@@ -19,6 +19,7 @@ namespace Bit.App.Pages
public class SendAddEditPageViewModel : BaseViewModel
{
private readonly IDeviceActionService _deviceActionService;
+ private readonly IFileService _fileService;
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IMessagingService _messagingService;
private readonly IStateService _stateService;
@@ -51,6 +52,7 @@ namespace Bit.App.Pages
public SendAddEditPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_messagingService = ServiceContainer.Resolve("messagingService");
_stateService = ServiceContainer.Resolve("stateService");
@@ -292,7 +294,7 @@ namespace Bit.App.Pages
public async Task ChooseFileAsync()
{
- await _deviceActionService.SelectFileAsync();
+ await _fileService.SelectFileAsync();
}
public void ClearExpirationDate()
diff --git a/src/App/Pages/Send/SendGroupingsPage/SendGroupingsPageViewModel.cs b/src/App/Pages/Send/SendGroupingsPage/SendGroupingsPageViewModel.cs
index ada402713..6fd3c0f16 100644
--- a/src/App/Pages/Send/SendGroupingsPage/SendGroupingsPageViewModel.cs
+++ b/src/App/Pages/Send/SendGroupingsPage/SendGroupingsPageViewModel.cs
@@ -144,7 +144,7 @@ namespace Bit.App.Pages
{
await LoadDataAsync();
- var uppercaseGroupNames = _deviceActionService.DeviceType == DeviceType.iOS;
+ var uppercaseGroupNames = Device.RuntimePlatform == Device.iOS;
if (MainPage)
{
groupedSends.Add(new SendGroupingsPageListGroup(
diff --git a/src/App/Pages/Settings/AutofillServicesPageViewModel.cs b/src/App/Pages/Settings/AutofillServicesPageViewModel.cs
index 5af80bcf2..1ec6f16c5 100644
--- a/src/App/Pages/Settings/AutofillServicesPageViewModel.cs
+++ b/src/App/Pages/Settings/AutofillServicesPageViewModel.cs
@@ -12,6 +12,7 @@ namespace Bit.App.Pages
public class AutofillServicesPageViewModel : BaseViewModel
{
private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly IStateService _stateService;
private readonly MobileI18nService _i18nService;
private readonly IPlatformUtilsService _platformUtilsService;
@@ -26,6 +27,7 @@ namespace Bit.App.Pages
public AutofillServicesPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
_stateService = ServiceContainer.Resolve("stateService");
_i18nService = ServiceContainer.Resolve("i18nService") as MobileI18nService;
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
@@ -173,7 +175,7 @@ namespace Bit.App.Pages
}
else
{
- _deviceActionService.DisableAutofillService();
+ _autofillHandler.DisableAutofillService();
}
}
@@ -188,7 +190,7 @@ namespace Bit.App.Pages
public async Task ToggleAccessibilityAsync()
{
- if (!_deviceActionService.AutofillAccessibilityServiceRunning())
+ if (!_autofillHandler.AutofillAccessibilityServiceRunning())
{
var accept = await _platformUtilsService.ShowDialogAsync(AppResources.AccessibilityDisclosureText,
AppResources.AccessibilityServiceDisclosure, AppResources.Accept,
@@ -213,9 +215,9 @@ namespace Bit.App.Pages
public void UpdateEnabled()
{
AutofillServiceToggled =
- _deviceActionService.HasAutofillService() && _deviceActionService.AutofillServiceEnabled();
- AccessibilityToggled = _deviceActionService.AutofillAccessibilityServiceRunning();
- DrawOverToggled = _deviceActionService.AutofillAccessibilityOverlayPermitted();
+ _autofillHandler.SupportsAutofillService() && _autofillHandler.AutofillServiceEnabled();
+ AccessibilityToggled = _autofillHandler.AutofillAccessibilityServiceRunning();
+ DrawOverToggled = _autofillHandler.AutofillAccessibilityOverlayPermitted();
}
private async Task UpdateInlineAutofillToggledAsync()
diff --git a/src/App/Pages/Settings/ExportVaultPageViewModel.cs b/src/App/Pages/Settings/ExportVaultPageViewModel.cs
index ac8b3c7f6..403cf6e8c 100644
--- a/src/App/Pages/Settings/ExportVaultPageViewModel.cs
+++ b/src/App/Pages/Settings/ExportVaultPageViewModel.cs
@@ -16,6 +16,7 @@ namespace Bit.App.Pages
public class ExportVaultPageViewModel : BaseViewModel
{
private readonly IDeviceActionService _deviceActionService;
+ private readonly IFileService _fileService;
private readonly IPlatformUtilsService _platformUtilsService;
private readonly II18nService _i18nService;
private readonly IExportService _exportService;
@@ -39,6 +40,7 @@ namespace Bit.App.Pages
public ExportVaultPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_i18nService = ServiceContainer.Resolve("i18nService");
_exportService = ServiceContainer.Resolve("exportService");
@@ -182,7 +184,7 @@ namespace Bit.App.Pages
_defaultFilename = _exportService.GetFileName(null, fileFormat);
_exportResult = Encoding.UTF8.GetBytes(data);
- if (!_deviceActionService.SaveFile(_exportResult, null, _defaultFilename, null))
+ if (!_fileService.SaveFile(_exportResult, null, _defaultFilename, null))
{
ClearResult();
await _platformUtilsService.ShowDialogAsync(_i18nService.T("ExportVaultFailure"));
@@ -220,7 +222,7 @@ namespace Bit.App.Pages
public async void SaveFileSelected(string contentUri, string filename)
{
- if (_deviceActionService.SaveFile(_exportResult, null, filename ?? _defaultFilename, contentUri))
+ if (_fileService.SaveFile(_exportResult, null, filename ?? _defaultFilename, contentUri))
{
ClearResult();
_platformUtilsService.ShowToast("success", null, _i18nService.T("ExportVaultSuccess"));
diff --git a/src/App/Pages/Settings/OptionsPage.xaml.cs b/src/App/Pages/Settings/OptionsPage.xaml.cs
index cb07027b2..8f608d600 100644
--- a/src/App/Pages/Settings/OptionsPage.xaml.cs
+++ b/src/App/Pages/Settings/OptionsPage.xaml.cs
@@ -1,5 +1,6 @@
using Bit.App.Abstractions;
using Bit.App.Resources;
+using Bit.Core.Abstractions;
using Bit.Core.Utilities;
using Xamarin.Forms;
using Xamarin.Forms.PlatformConfiguration;
@@ -9,12 +10,12 @@ namespace Bit.App.Pages
{
public partial class OptionsPage : BaseContentPage
{
- private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly OptionsPageViewModel _vm;
public OptionsPage()
{
- _deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
InitializeComponent();
_vm = BindingContext as OptionsPageViewModel;
_vm.Page = this;
@@ -25,7 +26,7 @@ namespace Bit.App.Pages
if (Device.RuntimePlatform == Device.Android)
{
ToolbarItems.RemoveAt(0);
- _vm.ShowAndroidAutofillSettings = _deviceActionService.SupportsAutofillService();
+ _vm.ShowAndroidAutofillSettings = _autofillHandler.SupportsAutofillService();
}
else
{
diff --git a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
index 54f05fc49..f586e6e79 100644
--- a/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
+++ b/src/App/Pages/Settings/SettingsPage/SettingsPageViewModel.cs
@@ -20,6 +20,7 @@ namespace Bit.App.Pages
private readonly ICryptoService _cryptoService;
private readonly IStateService _stateService;
private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly IEnvironmentService _environmentService;
private readonly IMessagingService _messagingService;
private readonly IVaultTimeoutService _vaultTimeoutService;
@@ -74,6 +75,7 @@ namespace Bit.App.Pages
_cryptoService = ServiceContainer.Resolve("cryptoService");
_stateService = ServiceContainer.Resolve("stateService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
_environmentService = ServiceContainer.Resolve("environmentService");
_messagingService = ServiceContainer.Resolve("messagingService");
_vaultTimeoutService = ServiceContainer.Resolve("vaultTimeoutService");
@@ -454,7 +456,7 @@ namespace Bit.App.Pages
else if (await _platformUtilsService.SupportsBiometricAsync())
{
_biometric = await _platformUtilsService.AuthenticateBiometricAsync(null,
- _deviceActionService.DeviceType == Core.Enums.DeviceType.Android ? "." : null);
+ Device.RuntimePlatform == Device.Android ? "." : null);
}
if (_biometric == current)
{
@@ -485,7 +487,7 @@ namespace Bit.App.Pages
autofillItems.Add(new SettingsPageListItem
{
Name = AppResources.AutofillServices,
- SubLabel = _deviceActionService.AutofillServicesEnabled() ? AppResources.On : AppResources.Off,
+ SubLabel = _autofillHandler.AutofillServicesEnabled() ? AppResources.On : AppResources.Off,
ExecuteAsync = () => Page.Navigation.PushModalAsync(new NavigationPage(new AutofillServicesPage(Page as SettingsPage)))
});
}
diff --git a/src/App/Pages/Vault/AttachmentsPageViewModel.cs b/src/App/Pages/Vault/AttachmentsPageViewModel.cs
index 6216f5ec9..02e9b2ae6 100644
--- a/src/App/Pages/Vault/AttachmentsPageViewModel.cs
+++ b/src/App/Pages/Vault/AttachmentsPageViewModel.cs
@@ -18,6 +18,7 @@ namespace Bit.App.Pages
public class AttachmentsPageViewModel : BaseViewModel
{
private readonly IDeviceActionService _deviceActionService;
+ private readonly IFileService _fileService;
private readonly ICipherService _cipherService;
private readonly ICryptoService _cryptoService;
private readonly IStateService _stateService;
@@ -34,6 +35,7 @@ namespace Bit.App.Pages
public AttachmentsPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_cipherService = ServiceContainer.Resolve("cipherService");
_cryptoService = ServiceContainer.Resolve("cryptoService");
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
@@ -156,7 +158,7 @@ namespace Bit.App.Pages
{
_vaultTimeoutService.DelayLockAndLogoutMs = 60000;
}
- await _deviceActionService.SelectFileAsync();
+ await _fileService.SelectFileAsync();
}
private async void DeleteAsync(AttachmentView attachment)
diff --git a/src/App/Pages/Vault/AutofillCiphersPageViewModel.cs b/src/App/Pages/Vault/AutofillCiphersPageViewModel.cs
index 80e9caf09..525f7dea1 100644
--- a/src/App/Pages/Vault/AutofillCiphersPageViewModel.cs
+++ b/src/App/Pages/Vault/AutofillCiphersPageViewModel.cs
@@ -21,6 +21,7 @@ namespace Bit.App.Pages
{
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly ICipherService _cipherService;
private readonly IStateService _stateService;
private readonly IPasswordRepromptService _passwordRepromptService;
@@ -37,6 +38,7 @@ namespace Bit.App.Pages
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_cipherService = ServiceContainer.Resolve("cipherService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
_stateService = ServiceContainer.Resolve("stateService");
_passwordRepromptService = ServiceContainer.Resolve("passwordRepromptService");
_messagingService = ServiceContainer.Resolve("messagingService");
@@ -232,7 +234,7 @@ namespace Bit.App.Pages
}
if (autofillResponse == AppResources.Yes || autofillResponse == AppResources.YesAndSave)
{
- _deviceActionService.Autofill(cipher);
+ _autofillHandler.Autofill(cipher);
}
}
}
diff --git a/src/App/Pages/Vault/BaseCipherViewModel.cs b/src/App/Pages/Vault/BaseCipherViewModel.cs
index bd74befa5..871d8aa24 100644
--- a/src/App/Pages/Vault/BaseCipherViewModel.cs
+++ b/src/App/Pages/Vault/BaseCipherViewModel.cs
@@ -14,6 +14,7 @@ namespace Bit.App.Pages
{
private readonly IAuditService _auditService;
protected readonly IDeviceActionService _deviceActionService;
+ protected readonly IFileService _fileService;
protected readonly ILogger _logger;
protected readonly IPlatformUtilsService _platformUtilsService;
private CipherView _cipher;
@@ -22,6 +23,7 @@ namespace Bit.App.Pages
public BaseCipherViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _fileService = ServiceContainer.Resolve();
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_auditService = ServiceContainer.Resolve("auditService");
_logger = ServiceContainer.Resolve("logger");
diff --git a/src/App/Pages/Vault/CipherAddEditPage.xaml.cs b/src/App/Pages/Vault/CipherAddEditPage.xaml.cs
index d84d4a733..60e6b667d 100644
--- a/src/App/Pages/Vault/CipherAddEditPage.xaml.cs
+++ b/src/App/Pages/Vault/CipherAddEditPage.xaml.cs
@@ -19,6 +19,7 @@ namespace Bit.App.Pages
private readonly AppOptions _appOptions;
private readonly IStateService _stateService;
private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly IVaultTimeoutService _vaultTimeoutService;
private readonly IKeyConnectorService _keyConnectorService;
@@ -40,6 +41,7 @@ namespace Bit.App.Pages
{
_stateService = ServiceContainer.Resolve("stateService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
_vaultTimeoutService = ServiceContainer.Resolve("vaultTimeoutService");
_keyConnectorService = ServiceContainer.Resolve("keyConnectorService");
@@ -350,8 +352,8 @@ namespace Bit.App.Pages
}
}
else if (Device.RuntimePlatform == Device.Android &&
- !_deviceActionService.AutofillAccessibilityServiceRunning() &&
- !_deviceActionService.AutofillServiceEnabled())
+ !_autofillHandler.AutofillAccessibilityServiceRunning() &&
+ !_autofillHandler.AutofillServiceEnabled())
{
await DisplayAlert(AppResources.BitwardenAutofillService,
AppResources.BitwardenAutofillServiceAlert2, AppResources.Ok);
diff --git a/src/App/Pages/Vault/CipherAddEditPageViewModel.cs b/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
index 7be04f536..4f8ea42a1 100644
--- a/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
+++ b/src/App/Pages/Vault/CipherAddEditPageViewModel.cs
@@ -28,6 +28,7 @@ namespace Bit.App.Pages
private readonly IPolicyService _policyService;
private readonly ICustomFieldItemFactory _customFieldItemFactory;
private readonly IClipboardService _clipboardService;
+ private readonly IAutofillHandler _autofillHandler;
private bool _showNotesSeparator;
private bool _showPassword;
@@ -78,6 +79,7 @@ namespace Bit.App.Pages
_policyService = ServiceContainer.Resolve("policyService");
_customFieldItemFactory = ServiceContainer.Resolve("customFieldItemFactory");
_clipboardService = ServiceContainer.Resolve("clipboardService");
+ _autofillHandler = ServiceContainer.Resolve();
GeneratePasswordCommand = new Command(GeneratePassword);
TogglePasswordCommand = new Command(TogglePassword);
@@ -508,7 +510,7 @@ namespace Bit.App.Pages
if (Page is CipherAddEditPage page && page.FromAutofillFramework)
{
// Close and go back to app
- _deviceActionService.CloseAutofill();
+ _autofillHandler.CloseAutofill();
}
else
{
diff --git a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
index f6e7e3452..dcd994335 100644
--- a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
+++ b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
@@ -493,7 +493,7 @@ namespace Bit.App.Pages
}
var canOpenFile = true;
- if (!_deviceActionService.CanOpenFile(attachment.FileName))
+ if (!_fileService.CanOpenFile(attachment.FileName))
{
if (Device.RuntimePlatform == Device.iOS)
{
@@ -562,7 +562,7 @@ namespace Bit.App.Pages
public async void OpenAttachment(byte[] data, AttachmentView attachment)
{
- if (!_deviceActionService.OpenFile(data, attachment.Id, attachment.FileName))
+ if (!_fileService.OpenFile(data, attachment.Id, attachment.FileName))
{
await _platformUtilsService.ShowDialogAsync(AppResources.UnableToOpenFile);
return;
@@ -573,7 +573,7 @@ namespace Bit.App.Pages
{
_attachmentData = data;
_attachmentFilename = attachment.FileName;
- if (!_deviceActionService.SaveFile(_attachmentData, null, _attachmentFilename, null))
+ if (!_fileService.SaveFile(_attachmentData, null, _attachmentFilename, null))
{
ClearAttachmentData();
await _platformUtilsService.ShowDialogAsync(AppResources.UnableToSaveAttachment);
@@ -582,7 +582,7 @@ namespace Bit.App.Pages
public async void SaveFileSelected(string contentUri, string filename)
{
- if (_deviceActionService.SaveFile(_attachmentData, null, filename ?? _attachmentFilename, contentUri))
+ if (_fileService.SaveFile(_attachmentData, null, filename ?? _attachmentFilename, contentUri))
{
ClearAttachmentData();
_platformUtilsService.ShowToast("success", null, AppResources.SaveAttachmentSuccess);
diff --git a/src/App/Pages/Vault/CiphersPage.xaml.cs b/src/App/Pages/Vault/CiphersPage.xaml.cs
index db97763ab..610fb826c 100644
--- a/src/App/Pages/Vault/CiphersPage.xaml.cs
+++ b/src/App/Pages/Vault/CiphersPage.xaml.cs
@@ -1,8 +1,8 @@
using System;
using System.Linq;
-using Bit.App.Abstractions;
using Bit.App.Controls;
using Bit.App.Resources;
+using Bit.Core.Abstractions;
using Bit.Core.Models.View;
using Bit.Core.Utilities;
using Xamarin.Forms;
@@ -12,7 +12,7 @@ namespace Bit.App.Pages
public partial class CiphersPage : BaseContentPage
{
private readonly string _autofillUrl;
- private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private CiphersPageViewModel _vm;
private bool _hasFocused;
@@ -48,7 +48,7 @@ namespace Bit.App.Pages
{
NavigationPage.SetTitleView(this, _titleLayout);
}
- _deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
}
public SearchBar SearchBar => _searchBar;
@@ -107,7 +107,7 @@ namespace Bit.App.Pages
}
else
{
- _deviceActionService.CloseAutofill();
+ _autofillHandler.CloseAutofill();
}
}
diff --git a/src/App/Pages/Vault/CiphersPageViewModel.cs b/src/App/Pages/Vault/CiphersPageViewModel.cs
index bbcc89d9f..aaa505d92 100644
--- a/src/App/Pages/Vault/CiphersPageViewModel.cs
+++ b/src/App/Pages/Vault/CiphersPageViewModel.cs
@@ -20,6 +20,7 @@ namespace Bit.App.Pages
private readonly ICipherService _cipherService;
private readonly ISearchService _searchService;
private readonly IDeviceActionService _deviceActionService;
+ private readonly IAutofillHandler _autofillHandler;
private readonly IStateService _stateService;
private readonly IPasswordRepromptService _passwordRepromptService;
private readonly IOrganizationService _organizationService;
@@ -37,6 +38,7 @@ namespace Bit.App.Pages
_cipherService = ServiceContainer.Resolve("cipherService");
_searchService = ServiceContainer.Resolve("searchService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _autofillHandler = ServiceContainer.Resolve();
_stateService = ServiceContainer.Resolve("stateService");
_passwordRepromptService = ServiceContainer.Resolve("passwordRepromptService");
_organizationService = ServiceContainer.Resolve("organizationService");
@@ -196,7 +198,7 @@ namespace Bit.App.Pages
}
else
{
- _deviceActionService.Autofill(cipher);
+ _autofillHandler.Autofill(cipher);
}
}
}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
index cd626e2ee..45014b262 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
@@ -220,7 +220,7 @@ namespace Bit.App.Pages
NestedFolders = NestedFolders.GetRange(0, NestedFolders.Count - 1);
}
- var uppercaseGroupNames = _deviceActionService.DeviceType == DeviceType.iOS;
+ var uppercaseGroupNames = Device.RuntimePlatform == Device.iOS;
var hasFavorites = FavoriteCiphers?.Any() ?? false;
if (hasFavorites)
{
@@ -400,7 +400,7 @@ namespace Bit.App.Pages
private void CreateCipherGroupedItems(List groupedItems)
{
- var uppercaseGroupNames = _deviceActionService.DeviceType == DeviceType.iOS;
+ var uppercaseGroupNames = Device.RuntimePlatform == Device.iOS;
_totpTickCts?.Cancel();
if (ShowTotp)
{
diff --git a/src/App/Services/MobilePlatformUtilsService.cs b/src/App/Services/MobilePlatformUtilsService.cs
index 8c74d2e5f..bea6e52f1 100644
--- a/src/App/Services/MobilePlatformUtilsService.cs
+++ b/src/App/Services/MobilePlatformUtilsService.cs
@@ -72,8 +72,13 @@ namespace Bit.App.Services
});
}
+ ///
+ /// Gets the device type on the server enum
+ ///
public Core.Enums.DeviceType GetDevice()
{
+ // Can't use Device.RuntimePlatform here because it gets called before Forms.Init() and throws.
+ // so we need to get the DeviceType ourselves
return _deviceActionService.DeviceType;
}
@@ -117,11 +122,6 @@ namespace Bit.App.Services
}
}
- public void SaveFile()
- {
- // TODO
- }
-
public string GetApplicationVersion()
{
return AppInfo.VersionString;
@@ -208,11 +208,6 @@ namespace Bit.App.Services
return (password, valid);
}
- public bool IsDev()
- {
- return Core.Utilities.CoreHelpers.InDebugMode();
- }
-
public bool IsSelfHost()
{
return false;
diff --git a/src/App/Utilities/AppHelpers.cs b/src/App/Utilities/AppHelpers.cs
index e7dff41f2..07870b0e1 100644
--- a/src/App/Utilities/AppHelpers.cs
+++ b/src/App/Utilities/AppHelpers.cs
@@ -564,7 +564,7 @@ namespace Bit.App.Utilities
var sendService = ServiceContainer.Resolve("sendService");
var passwordGenerationService = ServiceContainer.Resolve(
"passwordGenerationService");
- var deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ var fileService = ServiceContainer.Resolve();
var policyService = ServiceContainer.Resolve("policyService");
var searchService = ServiceContainer.Resolve("searchService");
var usernameGenerationService = ServiceContainer.Resolve(
@@ -572,7 +572,7 @@ namespace Bit.App.Utilities
await Task.WhenAll(
cipherService.ClearCacheAsync(),
- deviceActionService.ClearCacheAsync());
+ fileService.ClearCacheAsync());
tokenService.ClearCache();
cryptoService.ClearCache();
settingsService.ClearCache();
diff --git a/src/Core/Abstractions/IAutofillHandler.cs b/src/Core/Abstractions/IAutofillHandler.cs
new file mode 100644
index 000000000..84c9489b9
--- /dev/null
+++ b/src/Core/Abstractions/IAutofillHandler.cs
@@ -0,0 +1,16 @@
+using Bit.Core.Models.View;
+
+namespace Bit.Core.Abstractions
+{
+ public interface IAutofillHandler
+ {
+ bool AutofillServicesEnabled();
+ bool SupportsAutofillService();
+ void Autofill(CipherView cipher);
+ void CloseAutofill();
+ bool AutofillAccessibilityServiceRunning();
+ bool AutofillAccessibilityOverlayPermitted();
+ bool AutofillServiceEnabled();
+ void DisableAutofillService();
+ }
+}
diff --git a/src/Core/Abstractions/IFileService.cs b/src/Core/Abstractions/IFileService.cs
new file mode 100644
index 000000000..6ddf5dabc
--- /dev/null
+++ b/src/Core/Abstractions/IFileService.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Threading.Tasks;
+
+namespace Bit.Core.Abstractions
+{
+ public interface IFileService
+ {
+ bool CanOpenFile(string fileName);
+ bool OpenFile(byte[] fileData, string id, string fileName);
+ bool SaveFile(byte[] fileData, string id, string fileName, string contentUri);
+ Task ClearCacheAsync();
+ Task SelectFileAsync();
+ }
+}
diff --git a/src/Core/Abstractions/IPlatformUtilsService.cs b/src/Core/Abstractions/IPlatformUtilsService.cs
index e3c73d5ca..8bf2e0bed 100644
--- a/src/Core/Abstractions/IPlatformUtilsService.cs
+++ b/src/Core/Abstractions/IPlatformUtilsService.cs
@@ -8,15 +8,16 @@ namespace Bit.Core.Abstractions
public interface IPlatformUtilsService
{
string GetApplicationVersion();
+ ///
+ /// Gets the device type on the server enum
+ ///
DeviceType GetDevice();
string GetDeviceString();
ClientType GetClientType();
- bool IsDev();
bool IsSelfHost();
bool IsViewOpen();
void LaunchUri(string uri, Dictionary options = null);
Task ReadFromClipboardAsync(Dictionary options = null);
- void SaveFile();
Task ShowDialogAsync(string text, string title = null, string confirmText = null,
string cancelText = null, string type = null);
Task ShowPasswordDialogAsync(string title, string body, Func> validator);
diff --git a/src/Core/Utilities/LazyResolve.cs b/src/Core/Utilities/LazyResolve.cs
index 3fedfecd0..1e8a37ee1 100644
--- a/src/Core/Utilities/LazyResolve.cs
+++ b/src/Core/Utilities/LazyResolve.cs
@@ -2,8 +2,13 @@
namespace Bit.Core.Utilities
{
- public class LazyResolve : Lazy
+ public class LazyResolve : Lazy where T : class
{
+ public LazyResolve()
+ : base(() => ServiceContainer.Resolve())
+ {
+ }
+
public LazyResolve(string containerKey)
: base(() => ServiceContainer.Resolve(containerKey))
{
diff --git a/src/iOS.Core/Services/AutofillHandler.cs b/src/iOS.Core/Services/AutofillHandler.cs
new file mode 100644
index 000000000..ba12bed5e
--- /dev/null
+++ b/src/iOS.Core/Services/AutofillHandler.cs
@@ -0,0 +1,22 @@
+using System;
+using Bit.Core.Abstractions;
+using Bit.Core.Models.View;
+
+namespace Bit.iOS.Core.Services
+{
+ ///
+ /// This handler is only needed on Android for now, now this class acts as a stub so that dependency injection doesn't break
+ ///
+ public class AutofillHandler : IAutofillHandler
+ {
+ public bool SupportsAutofillService() => false;
+ public bool AutofillServiceEnabled() => false;
+ public void Autofill(CipherView cipher) => throw new NotImplementedException();
+ public bool AutofillAccessibilityOverlayPermitted() => throw new NotImplementedException();
+ public bool AutofillAccessibilityServiceRunning() => throw new NotImplementedException();
+ public bool AutofillServicesEnabled() => throw new NotImplementedException();
+ public void CloseAutofill() => throw new NotImplementedException();
+ public void DisableAutofillService() => throw new NotImplementedException();
+ }
+}
+
diff --git a/src/iOS.Core/Services/DeviceActionService.cs b/src/iOS.Core/Services/DeviceActionService.cs
index 8f00f0b26..c2bec2753 100644
--- a/src/iOS.Core/Services/DeviceActionService.cs
+++ b/src/iOS.Core/Services/DeviceActionService.cs
@@ -1,20 +1,14 @@
using System;
-using System.IO;
using System.Linq;
-using System.Net;
using System.Threading.Tasks;
using Bit.App.Abstractions;
using Bit.App.Resources;
-using Bit.Core.Abstractions;
using Bit.Core.Enums;
-using Bit.Core.Models.View;
using Bit.iOS.Core.Utilities;
using Bit.iOS.Core.Views;
using CoreGraphics;
using Foundation;
using LocalAuthentication;
-using MobileCoreServices;
-using Photos;
using UIKit;
using Xamarin.Forms;
@@ -22,20 +16,10 @@ namespace Bit.iOS.Core.Services
{
public class DeviceActionService : IDeviceActionService
{
- private readonly IStateService _stateService;
- private readonly IMessagingService _messagingService;
private Toast _toast;
private UIAlertController _progressAlert;
private string _userAgent;
- public DeviceActionService(
- IStateService stateService,
- IMessagingService messagingService)
- {
- _stateService = stateService;
- _messagingService = messagingService;
- }
-
public string DeviceUserAgent
{
get
@@ -120,91 +104,6 @@ namespace Bit.iOS.Core.Services
return result.Task;
}
- public bool OpenFile(byte[] fileData, string id, string fileName)
- {
- var filePath = Path.Combine(GetTempPath(), fileName);
- File.WriteAllBytes(filePath, fileData);
- var url = NSUrl.FromFilename(filePath);
- var viewer = UIDocumentInteractionController.FromUrl(url);
- var controller = GetVisibleViewController();
- var rect = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ?
- new CGRect(100, 5, 320, 320) : controller.View.Frame;
- return viewer.PresentOpenInMenu(rect, controller.View, true);
- }
-
- public bool CanOpenFile(string fileName)
- {
- // Not sure of a way to check this ahead of time on iOS
- return true;
- }
-
- public bool SaveFile(byte[] fileData, string id, string fileName, string contentUri)
- {
- // OpenFile behavior is appropriate here as iOS prompts to save file
- return OpenFile(fileData, id, fileName);
- }
-
- public async Task ClearCacheAsync()
- {
- var url = new NSUrl(GetTempPath());
- var tmpFiles = NSFileManager.DefaultManager.GetDirectoryContent(url, null,
- NSDirectoryEnumerationOptions.SkipsHiddenFiles, out NSError error);
- if (error == null && tmpFiles.Length > 0)
- {
- foreach (var item in tmpFiles)
- {
- NSFileManager.DefaultManager.Remove(item, out NSError itemError);
- }
- }
- await _stateService.SetLastFileCacheClearAsync(DateTime.UtcNow);
- }
-
- public Task SelectFileAsync()
- {
- var controller = GetVisibleViewController();
- var picker = new UIDocumentMenuViewController(new string[] { UTType.Data }, UIDocumentPickerMode.Import);
- picker.AddOption(AppResources.Camera, UIImage.FromBundle("camera"), UIDocumentMenuOrder.First, () =>
- {
- var imagePicker = new UIImagePickerController
- {
- SourceType = UIImagePickerControllerSourceType.Camera
- };
- imagePicker.FinishedPickingMedia += ImagePicker_FinishedPickingMedia;
- imagePicker.Canceled += ImagePicker_Canceled;
- controller.PresentModalViewController(imagePicker, true);
- });
- picker.AddOption(AppResources.Photos, UIImage.FromBundle("photo"), UIDocumentMenuOrder.First, () =>
- {
- var imagePicker = new UIImagePickerController
- {
- SourceType = UIImagePickerControllerSourceType.PhotoLibrary
- };
- imagePicker.FinishedPickingMedia += ImagePicker_FinishedPickingMedia;
- imagePicker.Canceled += ImagePicker_Canceled;
- controller.PresentModalViewController(imagePicker, true);
- });
- picker.DidPickDocumentPicker += (sender, e) =>
- {
- if (SystemMajorVersion() < 11)
- {
- e.DocumentPicker.DidPickDocument += DocumentPicker_DidPickDocument;
- }
- else
- {
- e.DocumentPicker.Delegate = new PickerDelegate(this);
- }
- controller.PresentViewController(e.DocumentPicker, true, null);
- };
- var root = UIApplication.SharedApplication.KeyWindow.RootViewController;
- if (picker.PopoverPresentationController != null && root != null)
- {
- picker.PopoverPresentationController.SourceView = root.View;
- picker.PopoverPresentationController.SourceRect = root.View.Bounds;
- }
- controller.PresentViewController(picker, true, null);
- return Task.FromResult(0);
- }
-
public Task DisplayPromptAync(string title = null, string description = null,
string text = null, string okButtonText = null, string cancelButtonText = null,
bool numericKeyboard = false, bool autofocus = true, bool password = false)
@@ -298,11 +197,6 @@ namespace Bit.iOS.Core.Services
return true;
}
- public bool SupportsAutofillService()
- {
- return true;
- }
-
public int SystemMajorVersion()
{
var versionParts = UIDevice.CurrentDevice.SystemVersion.Split('.');
@@ -391,46 +285,6 @@ namespace Bit.iOS.Core.Services
return result.Task;
}
- public void Autofill(CipherView cipher)
- {
- throw new NotImplementedException();
- }
-
- public void CloseAutofill()
- {
- throw new NotImplementedException();
- }
-
- public void Background()
- {
- throw new NotImplementedException();
- }
-
- public bool AutofillAccessibilityServiceRunning()
- {
- throw new NotImplementedException();
- }
-
- public bool HasAutofillService()
- {
- return false;
- }
-
- public bool AutofillServiceEnabled()
- {
- throw new NotImplementedException();
- }
-
- public void DisableAutofillService()
- {
- throw new NotImplementedException();
- }
-
- public bool AutofillServicesEnabled()
- {
- throw new NotImplementedException();
- }
-
public string GetBuildNumber()
{
return NSBundle.MainBundle.InfoDictionary["CFBundleVersion"].ToString();
@@ -479,78 +333,6 @@ namespace Bit.iOS.Core.Services
return false;
}
- private void ImagePicker_FinishedPickingMedia(object sender, UIImagePickerMediaPickedEventArgs e)
- {
- if (sender is UIImagePickerController picker)
- {
- string fileName = null;
- if (e.Info.TryGetValue(UIImagePickerController.ReferenceUrl, out NSObject urlObj))
- {
- var result = PHAsset.FetchAssets(new NSUrl[] { (urlObj as NSUrl) }, null);
- fileName = result?.firstObject?.ValueForKey(new NSString("filename"))?.ToString();
- }
- fileName = fileName ?? $"photo_{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}.jpg";
- var lowerFilename = fileName?.ToLowerInvariant();
- byte[] data;
- if (lowerFilename != null && (lowerFilename.EndsWith(".jpg") || lowerFilename.EndsWith(".jpeg")))
- {
- using (var imageData = e.OriginalImage.AsJPEG())
- {
- data = new byte[imageData.Length];
- System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, data, 0,
- Convert.ToInt32(imageData.Length));
- }
- }
- else
- {
- using (var imageData = e.OriginalImage.AsPNG())
- {
- data = new byte[imageData.Length];
- System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, data, 0,
- Convert.ToInt32(imageData.Length));
- }
- }
- SelectFileResult(data, fileName);
- picker.DismissViewController(true, null);
- }
- }
-
- private void ImagePicker_Canceled(object sender, EventArgs e)
- {
- if (sender is UIImagePickerController picker)
- {
- picker.DismissViewController(true, null);
- }
- }
-
- private void DocumentPicker_DidPickDocument(object sender, UIDocumentPickedEventArgs e)
- {
- PickedDocument(e.Url);
- }
-
- private void SelectFileResult(byte[] data, string fileName)
- {
- _messagingService.Send("selectFileResult", new Tuple(data, fileName));
- }
-
- private UIViewController GetVisibleViewController(UIViewController controller = null)
- {
- controller = controller ?? UIApplication.SharedApplication.KeyWindow.RootViewController;
- if (controller.PresentedViewController == null)
- {
- return controller;
- }
- if (controller.PresentedViewController is UINavigationController)
- {
- return ((UINavigationController)controller.PresentedViewController).VisibleViewController;
- }
- if (controller.PresentedViewController is UITabBarController)
- {
- return ((UITabBarController)controller.PresentedViewController).SelectedViewController;
- }
- return GetVisibleViewController(controller.PresentedViewController);
- }
-
private UIViewController GetPresentedViewController()
{
var window = UIApplication.SharedApplication.KeyWindow;
@@ -569,43 +351,6 @@ namespace Bit.iOS.Core.Services
(vc.ChildViewControllers?.Any(c => c is UITabBarController) ?? false));
}
- // ref: //https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system/
- public string GetTempPath()
- {
- var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
- return Path.Combine(documents, "..", "tmp");
- }
-
- public void PickedDocument(NSUrl url)
- {
- url.StartAccessingSecurityScopedResource();
- var doc = new UIDocument(url);
- var fileName = doc.LocalizedName;
- if (string.IsNullOrWhiteSpace(fileName))
- {
- var path = doc.FileUrl?.ToString();
- if (path != null)
- {
- path = WebUtility.UrlDecode(path);
- var split = path.LastIndexOf('/');
- fileName = path.Substring(split + 1);
- }
- }
- var fileCoordinator = new NSFileCoordinator();
- fileCoordinator.CoordinateRead(url, NSFileCoordinatorReadingOptions.WithoutChanges,
- out NSError error, (u) =>
- {
- var data = NSData.FromUrl(u).ToArray();
- SelectFileResult(data, fileName ?? "unknown_file_name");
- });
- url.StopAccessingSecurityScopedResource();
- }
-
- public bool AutofillAccessibilityOverlayPermitted()
- {
- throw new NotImplementedException();
- }
-
public void OpenAccessibilityOverlayPermissionSettings()
{
throw new NotImplementedException();
@@ -629,21 +374,6 @@ namespace Bit.iOS.Core.Services
return Task.CompletedTask;
}
- public class PickerDelegate : UIDocumentPickerDelegate
- {
- private readonly DeviceActionService _deviceActionService;
-
- public PickerDelegate(DeviceActionService deviceActionService)
- {
- _deviceActionService = deviceActionService;
- }
-
- public override void DidPickDocument(UIDocumentPickerViewController controller, NSUrl url)
- {
- _deviceActionService.PickedDocument(url);
- }
- }
-
public void OpenAppSettings()
{
var url = new NSUrl(UIApplication.OpenSettingsUrlString);
diff --git a/src/iOS.Core/Services/FileService.cs b/src/iOS.Core/Services/FileService.cs
new file mode 100644
index 000000000..bac060824
--- /dev/null
+++ b/src/iOS.Core/Services/FileService.cs
@@ -0,0 +1,213 @@
+using System;
+using System.IO;
+using System.Net;
+using System.Threading.Tasks;
+using Bit.App.Resources;
+using Bit.Core.Abstractions;
+using Bit.iOS.Core.Utilities;
+using CoreGraphics;
+using Foundation;
+using MobileCoreServices;
+using Photos;
+using UIKit;
+
+namespace Bit.iOS.Core.Services
+{
+ public class FileService : IFileService
+ {
+ private readonly IStateService _stateService;
+ private readonly IMessagingService _messagingService;
+
+ public FileService(IStateService stateService, IMessagingService messagingService)
+ {
+ _stateService = stateService;
+ _messagingService = messagingService;
+ }
+
+ public bool OpenFile(byte[] fileData, string id, string fileName)
+ {
+ var filePath = Path.Combine(GetTempPath(), fileName);
+ File.WriteAllBytes(filePath, fileData);
+ var url = NSUrl.FromFilename(filePath);
+ var viewer = UIDocumentInteractionController.FromUrl(url);
+ var controller = UIViewControllerExtensions.GetVisibleViewController();
+ var rect = UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad ?
+ new CGRect(100, 5, 320, 320) : controller.View.Frame;
+ return viewer.PresentOpenInMenu(rect, controller.View, true);
+ }
+
+ public bool CanOpenFile(string fileName)
+ {
+ // Not sure of a way to check this ahead of time on iOS
+ return true;
+ }
+
+ public bool SaveFile(byte[] fileData, string id, string fileName, string contentUri)
+ {
+ // OpenFile behavior is appropriate here as iOS prompts to save file
+ return OpenFile(fileData, id, fileName);
+ }
+
+ public async Task ClearCacheAsync()
+ {
+ var url = new NSUrl(GetTempPath());
+ var tmpFiles = NSFileManager.DefaultManager.GetDirectoryContent(url, null,
+ NSDirectoryEnumerationOptions.SkipsHiddenFiles, out NSError error);
+ if (error == null && tmpFiles.Length > 0)
+ {
+ foreach (var item in tmpFiles)
+ {
+ NSFileManager.DefaultManager.Remove(item, out NSError itemError);
+ }
+ }
+ await _stateService.SetLastFileCacheClearAsync(DateTime.UtcNow);
+ }
+
+ public Task SelectFileAsync()
+ {
+ var controller = UIViewControllerExtensions.GetVisibleViewController();
+ var picker = new UIDocumentMenuViewController(new string[] { UTType.Data }, UIDocumentPickerMode.Import);
+ picker.AddOption(AppResources.Camera, UIImage.FromBundle("camera"), UIDocumentMenuOrder.First, () =>
+ {
+ var imagePicker = new UIImagePickerController
+ {
+ SourceType = UIImagePickerControllerSourceType.Camera
+ };
+ imagePicker.FinishedPickingMedia += ImagePicker_FinishedPickingMedia;
+ imagePicker.Canceled += ImagePicker_Canceled;
+ controller.PresentModalViewController(imagePicker, true);
+ });
+ picker.AddOption(AppResources.Photos, UIImage.FromBundle("photo"), UIDocumentMenuOrder.First, () =>
+ {
+ var imagePicker = new UIImagePickerController
+ {
+ SourceType = UIImagePickerControllerSourceType.PhotoLibrary
+ };
+ imagePicker.FinishedPickingMedia += ImagePicker_FinishedPickingMedia;
+ imagePicker.Canceled += ImagePicker_Canceled;
+ controller.PresentModalViewController(imagePicker, true);
+ });
+ picker.DidPickDocumentPicker += (sender, e) =>
+ {
+ if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
+ {
+ e.DocumentPicker.Delegate = new PickerDelegate(this);
+ }
+ else
+ {
+ e.DocumentPicker.DidPickDocument += DocumentPicker_DidPickDocument;
+ }
+ controller.PresentViewController(e.DocumentPicker, true, null);
+ };
+ var root = UIApplication.SharedApplication.KeyWindow.RootViewController;
+ if (picker.PopoverPresentationController != null && root != null)
+ {
+ picker.PopoverPresentationController.SourceView = root.View;
+ picker.PopoverPresentationController.SourceRect = root.View.Bounds;
+ }
+ controller.PresentViewController(picker, true, null);
+ return Task.CompletedTask;
+ }
+
+ // ref: //https://developer.xamarin.com/guides/ios/application_fundamentals/working_with_the_file_system/
+ public string GetTempPath()
+ {
+ var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
+ return Path.Combine(documents, "..", "tmp");
+ }
+
+ private void ImagePicker_FinishedPickingMedia(object sender, UIImagePickerMediaPickedEventArgs e)
+ {
+ if (sender is UIImagePickerController picker)
+ {
+ string fileName = null;
+ if (e.Info.TryGetValue(UIImagePickerController.ReferenceUrl, out NSObject urlObj))
+ {
+ var result = PHAsset.FetchAssets(new NSUrl[] { (urlObj as NSUrl) }, null);
+ fileName = result?.firstObject?.ValueForKey(new NSString("filename"))?.ToString();
+ }
+ fileName = fileName ?? $"photo_{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}.jpg";
+ var lowerFilename = fileName?.ToLowerInvariant();
+ byte[] data;
+ if (lowerFilename != null && (lowerFilename.EndsWith(".jpg") || lowerFilename.EndsWith(".jpeg")))
+ {
+ using (var imageData = e.OriginalImage.AsJPEG())
+ {
+ data = new byte[imageData.Length];
+ System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, data, 0,
+ Convert.ToInt32(imageData.Length));
+ }
+ }
+ else
+ {
+ using (var imageData = e.OriginalImage.AsPNG())
+ {
+ data = new byte[imageData.Length];
+ System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, data, 0,
+ Convert.ToInt32(imageData.Length));
+ }
+ }
+ SelectFileResult(data, fileName);
+ picker.DismissViewController(true, null);
+ }
+ }
+
+ private void ImagePicker_Canceled(object sender, EventArgs e)
+ {
+ if (sender is UIImagePickerController picker)
+ {
+ picker.DismissViewController(true, null);
+ }
+ }
+
+ private void DocumentPicker_DidPickDocument(object sender, UIDocumentPickedEventArgs e)
+ {
+ PickedDocument(e.Url);
+ }
+
+ public void PickedDocument(NSUrl url)
+ {
+ url.StartAccessingSecurityScopedResource();
+ var doc = new UIDocument(url);
+ var fileName = doc.LocalizedName;
+ if (string.IsNullOrWhiteSpace(fileName))
+ {
+ var path = doc.FileUrl?.ToString();
+ if (path != null)
+ {
+ path = WebUtility.UrlDecode(path);
+ var split = path.LastIndexOf('/');
+ fileName = path.Substring(split + 1);
+ }
+ }
+ var fileCoordinator = new NSFileCoordinator();
+ fileCoordinator.CoordinateRead(url, NSFileCoordinatorReadingOptions.WithoutChanges,
+ out NSError error, (u) =>
+ {
+ var data = NSData.FromUrl(u).ToArray();
+ SelectFileResult(data, fileName ?? "unknown_file_name");
+ });
+ url.StopAccessingSecurityScopedResource();
+ }
+
+ private void SelectFileResult(byte[] data, string fileName)
+ {
+ _messagingService.Send("selectFileResult", new Tuple(data, fileName));
+ }
+
+ public class PickerDelegate : UIDocumentPickerDelegate
+ {
+ private readonly FileService _fileService;
+
+ public PickerDelegate(FileService fileService)
+ {
+ _fileService = fileService;
+ }
+
+ public override void DidPickDocument(UIDocumentPickerViewController controller, NSUrl url)
+ {
+ _fileService.PickedDocument(url);
+ }
+ }
+ }
+}
diff --git a/src/iOS.Core/Utilities/UIViewControllerExtensions.cs b/src/iOS.Core/Utilities/UIViewControllerExtensions.cs
new file mode 100644
index 000000000..c29025813
--- /dev/null
+++ b/src/iOS.Core/Utilities/UIViewControllerExtensions.cs
@@ -0,0 +1,31 @@
+using System;
+using UIKit;
+
+namespace Bit.iOS.Core.Utilities
+{
+ public static class UIViewControllerExtensions
+ {
+ public static UIViewController GetVisibleViewController()
+ {
+ return GetVisibleViewController(UIApplication.SharedApplication.KeyWindow.RootViewController);
+ }
+
+ public static UIViewController GetVisibleViewController(this UIViewController controller)
+ {
+ if (controller?.PresentedViewController == null)
+ {
+ return controller;
+ }
+ if (controller.PresentedViewController is UINavigationController)
+ {
+ return ((UINavigationController)controller.PresentedViewController).VisibleViewController;
+ }
+ if (controller.PresentedViewController is UITabBarController)
+ {
+ return ((UITabBarController)controller.PresentedViewController).SelectedViewController;
+ }
+ return GetVisibleViewController(controller.PresentedViewController);
+ }
+ }
+}
+
diff --git a/src/iOS.Core/Utilities/iOSCoreHelpers.cs b/src/iOS.Core/Utilities/iOSCoreHelpers.cs
index 3d7b556ef..4d6a13c6c 100644
--- a/src/iOS.Core/Utilities/iOSCoreHelpers.cs
+++ b/src/iOS.Core/Utilities/iOSCoreHelpers.cs
@@ -102,7 +102,8 @@ namespace Bit.iOS.Core.Utilities
var stateService = new StateService(mobileStorageService, secureStorageService, messagingService);
var stateMigrationService =
new StateMigrationService(liteDbStorage, preferencesStorage, secureStorageService);
- var deviceActionService = new DeviceActionService(stateService, messagingService);
+ var deviceActionService = new DeviceActionService();
+ var fileService = new FileService(stateService, messagingService);
var clipboardService = new ClipboardService(stateService);
var platformUtilsService = new MobilePlatformUtilsService(deviceActionService, clipboardService,
messagingService, broadcasterService);
@@ -121,6 +122,8 @@ namespace Bit.iOS.Core.Utilities
ServiceContainer.Register("stateService", stateService);
ServiceContainer.Register("stateMigrationService", stateMigrationService);
ServiceContainer.Register("deviceActionService", deviceActionService);
+ ServiceContainer.Register(fileService);
+ ServiceContainer.Register(new AutofillHandler());
ServiceContainer.Register("clipboardService", clipboardService);
ServiceContainer.Register("platformUtilsService", platformUtilsService);
ServiceContainer.Register("biometricService", biometricService);
diff --git a/src/iOS.Core/iOS.Core.csproj b/src/iOS.Core/iOS.Core.csproj
index 76114db6a..a4515c9b8 100644
--- a/src/iOS.Core/iOS.Core.csproj
+++ b/src/iOS.Core/iOS.Core.csproj
@@ -204,6 +204,9 @@
+
+
+
From 3972e3de8a6f04781ded77e4997c64cebf7bc031 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 12 Oct 2022 15:14:24 +0200
Subject: [PATCH 19/32] Autosync the updated translations (#2118)
Co-authored-by: github-actions <>
---
src/App/Resources/AppResources.af.resx | 121 ++++++++++----------
src/App/Resources/AppResources.ar.resx | 3 +
src/App/Resources/AppResources.az.resx | 3 +
src/App/Resources/AppResources.be.resx | 5 +-
src/App/Resources/AppResources.bg.resx | 3 +
src/App/Resources/AppResources.bn.resx | 3 +
src/App/Resources/AppResources.bs.resx | 3 +
src/App/Resources/AppResources.ca.resx | 3 +
src/App/Resources/AppResources.cs.resx | 3 +
src/App/Resources/AppResources.da.resx | 11 +-
src/App/Resources/AppResources.de.resx | 3 +
src/App/Resources/AppResources.el.resx | 3 +
src/App/Resources/AppResources.en-GB.resx | 3 +
src/App/Resources/AppResources.en-IN.resx | 3 +
src/App/Resources/AppResources.es.resx | 9 +-
src/App/Resources/AppResources.et.resx | 3 +
src/App/Resources/AppResources.eu.resx | 51 +++++----
src/App/Resources/AppResources.fa.resx | 51 +++++----
src/App/Resources/AppResources.fi.resx | 9 +-
src/App/Resources/AppResources.fil.resx | 3 +
src/App/Resources/AppResources.fr.resx | 3 +
src/App/Resources/AppResources.he.resx | 3 +
src/App/Resources/AppResources.hi.resx | 3 +
src/App/Resources/AppResources.hr.resx | 3 +
src/App/Resources/AppResources.hu.resx | 3 +
src/App/Resources/AppResources.id.resx | 3 +
src/App/Resources/AppResources.it.resx | 51 +++++----
src/App/Resources/AppResources.ja.resx | 3 +
src/App/Resources/AppResources.ka.resx | 3 +
src/App/Resources/AppResources.kn.resx | 3 +
src/App/Resources/AppResources.ko.resx | 3 +
src/App/Resources/AppResources.lt.resx | 3 +
src/App/Resources/AppResources.lv.resx | 3 +
src/App/Resources/AppResources.ml.resx | 3 +
src/App/Resources/AppResources.nb.resx | 51 +++++----
src/App/Resources/AppResources.nl.resx | 3 +
src/App/Resources/AppResources.nn.resx | 3 +
src/App/Resources/AppResources.pl.resx | 3 +
src/App/Resources/AppResources.pt-BR.resx | 3 +
src/App/Resources/AppResources.pt-PT.resx | 3 +
src/App/Resources/AppResources.ro.resx | 3 +
src/App/Resources/AppResources.ru.resx | 3 +
src/App/Resources/AppResources.si.resx | 3 +
src/App/Resources/AppResources.sk.resx | 3 +
src/App/Resources/AppResources.sl.resx | 3 +
src/App/Resources/AppResources.sr.resx | 47 ++++----
src/App/Resources/AppResources.sv.resx | 3 +
src/App/Resources/AppResources.ta.resx | 3 +
src/App/Resources/AppResources.th.resx | 3 +
src/App/Resources/AppResources.tr.resx | 3 +
src/App/Resources/AppResources.uk.resx | 3 +
src/App/Resources/AppResources.vi.resx | 3 +
src/App/Resources/AppResources.zh-Hans.resx | 7 +-
src/App/Resources/AppResources.zh-Hant.resx | 9 +-
store/apple/fa/copy.resx | 31 +++--
store/google/fa/copy.resx | 31 +++--
56 files changed, 385 insertions(+), 225 deletions(-)
diff --git a/src/App/Resources/AppResources.af.resx b/src/App/Resources/AppResources.af.resx
index c2ecbeb4a..9608ae51b 100644
--- a/src/App/Resources/AppResources.af.resx
+++ b/src/App/Resources/AppResources.af.resx
@@ -300,7 +300,7 @@
The title for the vault page.
- Authenticator
+ WaarmerkerAuthenticator TOTP feature
@@ -900,8 +900,8 @@
Kan nie waarmerksleutel lees nie.
- Point your camera at the QR Code.
-Scanning will happen automatically.
+ Rig u kamera op die QR-kode.
+Skandering gebeur outomaties.Skandeer QR-kode
@@ -2265,35 +2265,35 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Bevestigingskodes
- Premium subscription required
+ Premie-intekening word vereis
- Cannot add authenticator key?
+ Kan nie waarmerksleutel toevoeg nie?
- Scan QR Code
+ Skandeer QR-kode
- Cannot scan QR Code?
+ Kan nie QR-kode skandeer nie?
- Authenticator Key
+ Waarmerksleutel
- Enter Key Manually
+ Voer sleutel handmatig in
- Add TOTP
+ Voeg TOTP toe
- Set up TOTP
+ Stel TOTP op
- Once the key is successfully entered,
-select Add TOTP to store the key safely
+ Sodra u die sleutel reg ingevoer het,
+kies u Voeg TOTP toe om die sleutel veilig te bewaar
@@ -2314,97 +2314,97 @@ select Add TOTP to store the key safely
Is u seker u wil skermopname aktiveer?
- Login requested
+ Aantekening versoek
- Are you trying to log in?
+ Probeer u aanteken?
- Login attempt by {0} on {1}
+ Aantekenversoek deir {0} op {1}
- Device type
+ Toesteltipe
- IP address
+ IP-adres
- Time
+ Tyd
- Near
+ Naby
- Confirm login
+ Bevestig aantekening
- Deny login
+ Weier aantekening
- Just now
+ Sopas
- {0} minutes ago
+ {0} minute gelede
- Login confirmed
+ Aantekening bevestig
- Login denied
+ Aantekening geweier
- Approve login requests
+ Keur aantekenversoeke goed
- Use this device to approve login requests made from other devices.
+ Gebruik hierdie toestel vir die goedkeur van aantekenversoeke van ander toestelle.
- Allow notifications
+ Laat kennisgewings toe
- Receive push notifications for new login requests
+ Ontvang stootkennisgewings vir nuwe aantekenversoeke
- No thanks
+ Nee dankie
- Confirm login attempt for {0}
+ Bevestig aantekeningspoging vir {0}
- All notifications
+ Alle kennisgewings
- Password Type
+ Wagwoordtipe
- What would you like to generate?
+ Wat wil u genereer?
- Username Type
+ Gebruikersnaamtipe
- Plus Addressed Email
+ E-posadres met plus
- Catch-all Email
+ Allesomvattende e-pos
- Forwarded Email Alias
+ E-posalias vir aanstuur
- Random Word
+ Lukrake woord
- Email (required)
+ E-pos (vereis)
- Domain Name (required)
+ Domeinnaam (vereis)
- API Key (required)
+ API-sleutel (vereis)
- Service
+ DiensAnonAddy
@@ -2419,45 +2419,48 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API-toegangsteken
- Are you sure you want to overwrite the current username?
+ Is u seker u wil oor die huidige gebruikersnaam skryf?
- Generate Username
+ Genereer gebruikersnaam
- Email Type
+ E-postipe
- Website (required)
+ Webwerf (vereis)
- Unknown {0} error occurred.
+ Onbekende {0} fout het voorgekom.
- Use your email provider's subaddress capabilities
+ Gebruik u e-posverskaffer se subadresvermoëns
- Use your domain's configured catch-all inbox.
+ Gebruik u domein se opgestelde allesomvattende inmandjie.
- Generate an email alias with an external forwarding service.
+ Genereer ’n e-posalias met ’n eksterne aanstuurdiens.
- Random
+ Lukraak
- Accessibility Service Disclosure
+ Toeganklikheidsdiensopenbaarmaking
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden gebruik die Toeganklikheidsdiens om na aantekenvelde in toeps en webwerwe te soek en dan die geskikte veld-ID’s om ’n gebruikersnaam en wagwoord in te voer wanner ’n ooreenstemming vir die toep of webwerf gevind is. Ons bewaar geen van die inligting wat deur die diens gebied word nie en ons poog ook nie om enige op-skerm-elemente buiten teksinvoer van velde te beheer nie.
- Accept
+ Aanvaar
- Decline
+ Wys af
+
+
+ Aantekenversoek het reeds verstryk.
diff --git a/src/App/Resources/AppResources.ar.resx b/src/App/Resources/AppResources.ar.resx
index b16f03d69..9d9db6514 100644
--- a/src/App/Resources/AppResources.ar.resx
+++ b/src/App/Resources/AppResources.ar.resx
@@ -2461,4 +2461,7 @@
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.az.resx b/src/App/Resources/AppResources.az.resx
index f5d281c83..cbe49bfe6 100644
--- a/src/App/Resources/AppResources.az.resx
+++ b/src/App/Resources/AppResources.az.resx
@@ -2459,4 +2459,7 @@ Skan prosesi avtomatik baş tutacaq.
Rədd et
+
+ Giriş tələbinin müddəti artıq bitib.
+
diff --git a/src/App/Resources/AppResources.be.resx b/src/App/Resources/AppResources.be.resx
index a132c2b18..5770808fa 100644
--- a/src/App/Resources/AppResources.be.resx
+++ b/src/App/Resources/AppResources.be.resx
@@ -349,7 +349,7 @@
Адправіць
- Сінхранізацыя
+ СінхранізаванаThe title for the sync page.
@@ -2460,4 +2460,7 @@
Адхіліць
+
+ Запыт на ўваход пратэрмінаваны.
+
diff --git a/src/App/Resources/AppResources.bg.resx b/src/App/Resources/AppResources.bg.resx
index a209b46df..a4d474007 100644
--- a/src/App/Resources/AppResources.bg.resx
+++ b/src/App/Resources/AppResources.bg.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Отказване
+
+ Заявката за вписване вече е изтекла.
+
diff --git a/src/App/Resources/AppResources.bn.resx b/src/App/Resources/AppResources.bn.resx
index 90a69eeb9..7be4aa263 100644
--- a/src/App/Resources/AppResources.bn.resx
+++ b/src/App/Resources/AppResources.bn.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.bs.resx b/src/App/Resources/AppResources.bs.resx
index bc54c9d71..5a62bb6bd 100644
--- a/src/App/Resources/AppResources.bs.resx
+++ b/src/App/Resources/AppResources.bs.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.ca.resx b/src/App/Resources/AppResources.ca.resx
index 7a4a064c6..1903fd924 100644
--- a/src/App/Resources/AppResources.ca.resx
+++ b/src/App/Resources/AppResources.ca.resx
@@ -2460,4 +2460,7 @@ seleccioneu Afegeix TOTP per emmagatzemar la clau de manera segura
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.cs.resx b/src/App/Resources/AppResources.cs.resx
index 7ea13f020..f13220b5f 100644
--- a/src/App/Resources/AppResources.cs.resx
+++ b/src/App/Resources/AppResources.cs.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.da.resx b/src/App/Resources/AppResources.da.resx
index f9d78f256..c7d88ed3b 100644
--- a/src/App/Resources/AppResources.da.resx
+++ b/src/App/Resources/AppResources.da.resx
@@ -2314,13 +2314,13 @@ vælg Tilføj TOTP for at gemme nøglen sikkert
Er du sikker på, at du vil aktivere skærmoptagelse?
- Login-anmodning
+ Login anmodetForsøger du at logge ind?
- Loginforsøg af {0} {1}
+ Loginforsøg af {0} på {1}Enhedstype
@@ -2449,10 +2449,10 @@ vælg Tilføj TOTP for at gemme nøglen sikkert
Tilfældig
- Oplysninger om Tilgængelighedstjeneste
+ Oplysninger om tilgængelighedstjeneste
- Bitwarden bruger Tilgængelighedstjeneste til at søge efter login-felter i apps og på websteder, for så at oprette relevante felt-ID'er til angivelse af brugernavn og adgangskode, når en match findes. Bitwarden gemmer ingen af de af tjenesten præsenterede oplysninger, ej heller gøres noget forsøg på at styre skærmelementer ud over tekstindtastning af legitimationsoplysninger.
+ Bitwarden bruger tilgængelighedstjenesten til at søge efter login-felter i apps og på websteder, for derefter at oprette relevante felt-ID'er til angivelse af brugernavn og adgangskode, når et match findes. Vi gemmer ikke nogen af de oplysninger, som tjenesten giver os, og vi gør heller ikke noget forsøg på at styre skærmelementer ud over tekstindtastning af legitimationsoplysninger.Acceptér
@@ -2460,4 +2460,7 @@ vælg Tilføj TOTP for at gemme nøglen sikkert
Afvis
+
+ Loginanmodning er allerede udløbet.
+
diff --git a/src/App/Resources/AppResources.de.resx b/src/App/Resources/AppResources.de.resx
index d36cd15df..6b79cff4b 100644
--- a/src/App/Resources/AppResources.de.resx
+++ b/src/App/Resources/AppResources.de.resx
@@ -2459,4 +2459,7 @@ Das Scannen erfolgt automatisch.
Ablehnen
+
+ Anmeldeanfrage ist bereits abgelaufen.
+
diff --git a/src/App/Resources/AppResources.el.resx b/src/App/Resources/AppResources.el.resx
index c5160fa57..ee3b69583 100644
--- a/src/App/Resources/AppResources.el.resx
+++ b/src/App/Resources/AppResources.el.resx
@@ -2460,4 +2460,7 @@
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.en-GB.resx b/src/App/Resources/AppResources.en-GB.resx
index 92bcfe8f4..8e11ab206 100644
--- a/src/App/Resources/AppResources.en-GB.resx
+++ b/src/App/Resources/AppResources.en-GB.resx
@@ -2469,4 +2469,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.en-IN.resx b/src/App/Resources/AppResources.en-IN.resx
index ac264e934..219eab1fb 100644
--- a/src/App/Resources/AppResources.en-IN.resx
+++ b/src/App/Resources/AppResources.en-IN.resx
@@ -2474,4 +2474,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.es.resx b/src/App/Resources/AppResources.es.resx
index 7dce64751..dc9c153b0 100644
--- a/src/App/Resources/AppResources.es.resx
+++ b/src/App/Resources/AppResources.es.resx
@@ -2453,12 +2453,15 @@ seleccione Agregar TOTP para almacenar la clave de forma segura
Accessibility Service Disclosure
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden utiliza el Servicio de Accesibilidad para buscar campos de inicio de sesión en aplicaciones y sitios web, establecer los identificadores de campo apropiados para introducir un nombre de usuario y contraseña cuando se encuentre una coincidencia para la aplicación o el sitio. No almacenamos ninguna de las informaciones presentadas por el servicio, tampoco intentamos controlar ningún elemento en pantalla más allá de la introducción de credenciales de texto.
- Accept
+ Aceptar
- Decline
+ Rechazar
+
+
+ La solicitud de acceso ya ha caducado.
diff --git a/src/App/Resources/AppResources.et.resx b/src/App/Resources/AppResources.et.resx
index 1e0aa6a82..6c9c1b737 100644
--- a/src/App/Resources/AppResources.et.resx
+++ b/src/App/Resources/AppResources.et.resx
@@ -2460,4 +2460,7 @@ Skaneerimine toimub automaatselt.
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.eu.resx b/src/App/Resources/AppResources.eu.resx
index a5a5069ff..f56eaabfd 100644
--- a/src/App/Resources/AppResources.eu.resx
+++ b/src/App/Resources/AppResources.eu.resx
@@ -2313,64 +2313,64 @@
Ziur al zaude pantaila-argazkia gaitu nahi duzula?
- Login requested
+ Saio hasiera eskatu da
- Are you trying to log in?
+ Saioa hasten saiatzen ari zara?
- Login attempt by {0} on {1}
+ {0} saioa hasten saiatu da {1}-n
- Device type
+ Gailu mota
- IP address
+ IP helbidea
- Time
+ Ordua
- Near
+ Gertu
- Confirm login
+ Berretsi saio hasiera
- Deny login
+ Sarrera ukatu
- Just now
+ Oraintxe bertan
- {0} minutes ago
+ Orain dela {0} minutu
- Login confirmed
+ Saio hasiera onartua
- Login denied
+ Saio hasiera ukatua
- Approve login requests
+ Saio hasiera eskaerak onartu
- Use this device to approve login requests made from other devices.
+ Erabili gailu hau beste gailu batzuetatik egindako saio hasiera eskaerak onartzeko.
- Allow notifications
+ Baimendu jakinarazpenak
- Receive push notifications for new login requests
+ Jaso push jakinarazpenak saio hasiera eskaera berrietarako
- No thanks
+ Ez, eskerrik asko
- Confirm login attempt for {0}
+ Onartu {0}-ren saio hasiera eskaera
- All notifications
+ Jakinarazpen guztiakPasahitz mota
@@ -2448,15 +2448,18 @@
Ausazkoa
- Accessibility Service Disclosure
+ Zabaldu irisgarritasun zerbitzua
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwardenek irisgarritasun zerbitzua erabiltzen du aplikazioetan eta webguneetan sarbide-eremuak bilatzeko; ondoren, eremu-ID egokiak ezartzen ditu, aplikaziorako edo gunerako eremu bat aurkitzen denean erabiltzaile-izena eta pasahitza sartzeko. Zerbitzuak ematen digun informazioa ez dugu gordeko, eta ez gara saiatuko pantailan kredentzialen testutik haratagoko elementurik zelatatzen.
- Accept
+ Onartu
- Decline
+ Baztertu
+
+
+ Login request has already expired.
diff --git a/src/App/Resources/AppResources.fa.resx b/src/App/Resources/AppResources.fa.resx
index 05dbd6a7e..b325804ea 100644
--- a/src/App/Resources/AppResources.fa.resx
+++ b/src/App/Resources/AppResources.fa.resx
@@ -2315,64 +2315,64 @@
آیا مطمئن هستید که می خواهید ضبط صفحه را فعال کنید؟
- Login requested
+ ورود الزامیست
- Are you trying to log in?
+ آیا در تلاش برای ورود به سیستم هستید؟
- Login attempt by {0} on {1}
+ تلاش برای ورود به سیستم توسط {0} در {1}
- Device type
+ نوع دستگاه
- IP address
+ آدرس IP
- Time
+ زمان
- Near
+ نزدیک
- Confirm login
+ تأیید ورود
- Deny login
+ رَدِ ورود
- Just now
+ همین الان
- {0} minutes ago
+ {0} دقيقه پیش
- Login confirmed
+ ورود تأیید شد
- Login denied
+ ورود رَد شد
- Approve login requests
+ درخواست های ورود را تأیید کنید
- Use this device to approve login requests made from other devices.
+ از این دستگاه برای تأیید درخواستهای ورود به سیستم از دستگاههای دیگر استفاده کنید.
- Allow notifications
+ اجازه دادن به اعلانها
- Receive push notifications for new login requests
+ دریافت اعلانهای پوش برای درخواستهای ورود جدید
- No thanks
+ نه ممنون
- Confirm login attempt for {0}
+ تأیید تلاش برای ورود به سیستم برای {0}
- All notifications
+ همه اعلانهانوع گذرواژه
@@ -2450,15 +2450,18 @@
تصادفی
- Accessibility Service Disclosure
+ افشای سرویس دسترسی
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden از سرویس دسترسپذیری برای جستجوی فیلدهای ورود در برنامهها و وبسایتها استفاده میکند، سپس زمانی که مطابقتی با برنامه یا سایت پیدا شد، شناسههای فیلد مناسب را برای وارد کردن نام کاربری و رمز عبور ایجاد میکند. ما هیچ کدام از اطلاعات ارائه شده توسط سرویس به ما را ذخیره نمی کنیم و هیچ تلاشی برای کنترل عناصر روی صفحه فراتر از ورود متن اعتبارنامه ها انجام نمی دهیم.
- Accept
+ پذیرفتن
- Decline
+ رَد کردن
+
+
+ درخواست ورود قبلاً منقضی شده است.
diff --git a/src/App/Resources/AppResources.fi.resx b/src/App/Resources/AppResources.fi.resx
index 61e9cae18..43e08e2f5 100644
--- a/src/App/Resources/AppResources.fi.resx
+++ b/src/App/Resources/AppResources.fi.resx
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Lähetä virheraportti
+ Lähetä virheilmoitusAvaa ongelma GitHub-sivullamme.
@@ -232,7 +232,7 @@
Kansio päivitetty.
- Mene sivustolle
+ Avaa sivustoThe button text that allows user to launch the website to their web browser.
@@ -243,7 +243,7 @@
Hide a secret value that is currently shown (password).
- Yhdistä Internetiin jatkaaksesi.
+ Jatka muodostamalla yhteys Internetiin.Description message for the alert when internet connection is required to continue.
@@ -2460,4 +2460,7 @@ turvallisesti valitsemalla "Lisää TOTP"
Älä hyväksy
+
+ Kirjautumispyyntö on jo erääntynyt.
+
diff --git a/src/App/Resources/AppResources.fil.resx b/src/App/Resources/AppResources.fil.resx
index 2983850c1..122a8cf63 100644
--- a/src/App/Resources/AppResources.fil.resx
+++ b/src/App/Resources/AppResources.fil.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.fr.resx b/src/App/Resources/AppResources.fr.resx
index c5e9c6115..860dcdd59 100644
--- a/src/App/Resources/AppResources.fr.resx
+++ b/src/App/Resources/AppResources.fr.resx
@@ -2460,4 +2460,7 @@ sélectionnez Ajouter TOTP pour stocker la clé en toute sécurité
Refuser
+
+ La demande d’identification a déjà expiré.
+
diff --git a/src/App/Resources/AppResources.he.resx b/src/App/Resources/AppResources.he.resx
index fc29f11a3..68f438d40 100644
--- a/src/App/Resources/AppResources.he.resx
+++ b/src/App/Resources/AppResources.he.resx
@@ -2463,4 +2463,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.hi.resx b/src/App/Resources/AppResources.hi.resx
index d2bb46459..045192868 100644
--- a/src/App/Resources/AppResources.hi.resx
+++ b/src/App/Resources/AppResources.hi.resx
@@ -2462,4 +2462,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.hr.resx b/src/App/Resources/AppResources.hr.resx
index 86d72b7dd..aada835b3 100644
--- a/src/App/Resources/AppResources.hr.resx
+++ b/src/App/Resources/AppResources.hr.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.hu.resx b/src/App/Resources/AppResources.hu.resx
index d0ea1a097..c5589cbab 100644
--- a/src/App/Resources/AppResources.hu.resx
+++ b/src/App/Resources/AppResources.hu.resx
@@ -2459,4 +2459,7 @@ select Add TOTP to store the key safely
Elutasítás
+
+ A bejelentkezési kérés már lejárt.
+
diff --git a/src/App/Resources/AppResources.id.resx b/src/App/Resources/AppResources.id.resx
index a3c92c6a3..313d3fb1e 100644
--- a/src/App/Resources/AppResources.id.resx
+++ b/src/App/Resources/AppResources.id.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.it.resx b/src/App/Resources/AppResources.it.resx
index 4c053f458..fab35cd7f 100644
--- a/src/App/Resources/AppResources.it.resx
+++ b/src/App/Resources/AppResources.it.resx
@@ -2314,64 +2314,64 @@ seleziona Aggiungi TOTP per salvare la chiave in modo sicuro
Sei sicuro di voler attivare la cattura dello schermo?
- Login requested
+ Accesso richiesto
- Are you trying to log in?
+ Stai cercando di accedere?
- Login attempt by {0} on {1}
+ Tentativo di accesso di {0} su {1}
- Device type
+ Tipo di dispositivo
- IP address
+ Indirizzo IP
- Time
+ Ora
- Near
+ Vicino
- Confirm login
+ Conferma accesso
- Deny login
+ Nega accesso
- Just now
+ Proprio ora
- {0} minutes ago
+ {0} minuti fa
- Login confirmed
+ Accesso confermato
- Login denied
+ Accesso negato
- Approve login requests
+ Approva le richieste di accesso
- Use this device to approve login requests made from other devices.
+ Usa questo dispositivo per approvare le richieste di accesso fatte da altri dispositivi.
- Allow notifications
+ Permetti notifiche
- Receive push notifications for new login requests
+ Ricevi notifiche push per nuove richieste di accesso
- No thanks
+ No, grazie
- Confirm login attempt for {0}
+ Conferma il tentativo di accesso di {0}
- All notifications
+ Tutte le notificheTipo di password
@@ -2449,15 +2449,18 @@ seleziona Aggiungi TOTP per salvare la chiave in modo sicuro
Casuale
- Accessibility Service Disclosure
+ Maggiori informazioni sul servizio di accessibilità
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden utilizza il servizio di accessibilità per cercare i campi di accesso in applicazioni e siti web, con lo scopo di individuare gli ID di campo appropriati per inserire nome utente e password quando viene trovata una corrispondenza per l'applicazione o il sito. Non memorizziamo nessuna delle informazioni che ci vengono presentate dal servizio, né vengono controllati eventuali altri elementi sullo schermo diversi dall'immissione di credenziali.
- Accept
+ Accetta
- Decline
+ Rifiuta
+
+
+ La richiesta di accesso è già scaduta.
diff --git a/src/App/Resources/AppResources.ja.resx b/src/App/Resources/AppResources.ja.resx
index 84c097463..f5c8dd908 100644
--- a/src/App/Resources/AppResources.ja.resx
+++ b/src/App/Resources/AppResources.ja.resx
@@ -2460,4 +2460,7 @@
拒否
+
+ ログインリクエストの有効期限が切れています。
+
diff --git a/src/App/Resources/AppResources.ka.resx b/src/App/Resources/AppResources.ka.resx
index 2983850c1..122a8cf63 100644
--- a/src/App/Resources/AppResources.ka.resx
+++ b/src/App/Resources/AppResources.ka.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.kn.resx b/src/App/Resources/AppResources.kn.resx
index 63b659aed..eeb13c81b 100644
--- a/src/App/Resources/AppResources.kn.resx
+++ b/src/App/Resources/AppResources.kn.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.ko.resx b/src/App/Resources/AppResources.ko.resx
index c2a5778dd..78ec81d9c 100644
--- a/src/App/Resources/AppResources.ko.resx
+++ b/src/App/Resources/AppResources.ko.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.lt.resx b/src/App/Resources/AppResources.lt.resx
index 2983850c1..122a8cf63 100644
--- a/src/App/Resources/AppResources.lt.resx
+++ b/src/App/Resources/AppResources.lt.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.lv.resx b/src/App/Resources/AppResources.lv.resx
index 9619d388c..2c3e2e99b 100644
--- a/src/App/Resources/AppResources.lv.resx
+++ b/src/App/Resources/AppResources.lv.resx
@@ -2460,4 +2460,7 @@ jāizvēlas "Pievienot TOTP", lai droši glabātu atslēgu.
Decline
+
+ Pierakstīšanās pieprasījuma derīgums jau ir beidzies.
+
diff --git a/src/App/Resources/AppResources.ml.resx b/src/App/Resources/AppResources.ml.resx
index c342f6351..503680e27 100644
--- a/src/App/Resources/AppResources.ml.resx
+++ b/src/App/Resources/AppResources.ml.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.nb.resx b/src/App/Resources/AppResources.nb.resx
index 9a9fe083a..c6420a728 100644
--- a/src/App/Resources/AppResources.nb.resx
+++ b/src/App/Resources/AppResources.nb.resx
@@ -2315,64 +2315,64 @@ velg Legg til TOTP for å lagre nøkkelen sikkert
Er du sikker på at du vil aktivere skjermopptak?
- Login requested
+ Innlogging forespurt
- Are you trying to log in?
+ Prøver du å logge inn?
- Login attempt by {0} on {1}
+ Innloggingsforsøk av {0} på {1}
- Device type
+ Enhetstype
- IP address
+ IP-adresse
- Time
+ Tid
- Near
+ I nærheten av
- Confirm login
+ Bekreft innlogging
- Deny login
+ Avslå innlogging
- Just now
+ Nå nettopp
- {0} minutes ago
+ {0} minutter siden
- Login confirmed
+ Innlogging bekreftet
- Login denied
+ Innlogging avslått
- Approve login requests
+ Godkjenn innloggingsforespørsler
- Use this device to approve login requests made from other devices.
+ Bruk denne enheten til å godkjenne innloggingsforespørsler fra andre enheter.
- Allow notifications
+ Tillat varslinger
- Receive push notifications for new login requests
+ Motta push-varsler for nye innloggingsforespørsler
- No thanks
+ Nei takk
- Confirm login attempt for {0}
+ Bekreft påloggingsforsøk for {0}
- All notifications
+ Alle varslerPassordtype
@@ -2450,15 +2450,18 @@ velg Legg til TOTP for å lagre nøkkelen sikkert
Tilfeldig
- Accessibility Service Disclosure
+ Opplysninger om tilgjengelighetstjeneste
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden bruker Tilgjengelighetstjenesten for å søke etter innloggingsfelt i apper og på nettsteder, deretter finner den de riktige felt-IDene for å skrive inn et brukernavn og passord når en treff for appen eller nettsiden blir funnet. Vi lagrer ikke noen av opplysningene som tjenesten presenterer for oss. Vi gjør heller ikke noen forsøk på å kontrollere elementer på skjermen utenom tekstutfylling av brukernavn og passord.
- Accept
+ Godta
- Decline
+ Avslå
+
+
+ Innloggingsforespørselen har allerede utløpt.
diff --git a/src/App/Resources/AppResources.nl.resx b/src/App/Resources/AppResources.nl.resx
index 5ac5ef384..7aa89ceda 100644
--- a/src/App/Resources/AppResources.nl.resx
+++ b/src/App/Resources/AppResources.nl.resx
@@ -2460,4 +2460,7 @@ kies je TOTP toevoegen om de sleutel veilig op te slaan
Decline
+
+ Inlogverzoek is al verlopen.
+
diff --git a/src/App/Resources/AppResources.nn.resx b/src/App/Resources/AppResources.nn.resx
index 9729ac7b4..d7015515e 100644
--- a/src/App/Resources/AppResources.nn.resx
+++ b/src/App/Resources/AppResources.nn.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.pl.resx b/src/App/Resources/AppResources.pl.resx
index b8afab14f..63918a48f 100644
--- a/src/App/Resources/AppResources.pl.resx
+++ b/src/App/Resources/AppResources.pl.resx
@@ -2460,4 +2460,7 @@ wybierz Dodaj TOTP, aby bezpiecznie przechowywać klucz
Odrzuć
+
+ Prośba o logowanie wygasła.
+
diff --git a/src/App/Resources/AppResources.pt-BR.resx b/src/App/Resources/AppResources.pt-BR.resx
index 39d273247..b104caed5 100644
--- a/src/App/Resources/AppResources.pt-BR.resx
+++ b/src/App/Resources/AppResources.pt-BR.resx
@@ -2461,4 +2461,7 @@ selecione Adicionar TOTP para armazenar a chave de forma segura
Recusar
+
+ O pedido de login já expirou.
+
diff --git a/src/App/Resources/AppResources.pt-PT.resx b/src/App/Resources/AppResources.pt-PT.resx
index c938c7559..6d69dcc75 100644
--- a/src/App/Resources/AppResources.pt-PT.resx
+++ b/src/App/Resources/AppResources.pt-PT.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Recusar
+
+ O pedido de início de sessão já expirou.
+
diff --git a/src/App/Resources/AppResources.ro.resx b/src/App/Resources/AppResources.ro.resx
index 8937fa7a1..efec12134 100644
--- a/src/App/Resources/AppResources.ro.resx
+++ b/src/App/Resources/AppResources.ro.resx
@@ -2460,4 +2460,7 @@ selectați „Adăugare TOTP” pentru a stoca cheia în siguranță
Refuz
+
+ Solicitarea de autentificare a expirat deja.
+
diff --git a/src/App/Resources/AppResources.ru.resx b/src/App/Resources/AppResources.ru.resx
index 4d9d185f4..5c444a441 100644
--- a/src/App/Resources/AppResources.ru.resx
+++ b/src/App/Resources/AppResources.ru.resx
@@ -2460,4 +2460,7 @@
Отклонить
+
+ Запрос на вход истек.
+
diff --git a/src/App/Resources/AppResources.si.resx b/src/App/Resources/AppResources.si.resx
index e3c53474a..ea421a3c4 100644
--- a/src/App/Resources/AppResources.si.resx
+++ b/src/App/Resources/AppResources.si.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.sk.resx b/src/App/Resources/AppResources.sk.resx
index 2e8f4f7d5..50568f54c 100644
--- a/src/App/Resources/AppResources.sk.resx
+++ b/src/App/Resources/AppResources.sk.resx
@@ -2460,4 +2460,7 @@ Pridať TOTP, aby ste kľúč bezpečne uložili
Odmietnuť
+
+ Platnosť žiadosti o prihlásenie už vypršala.
+
diff --git a/src/App/Resources/AppResources.sl.resx b/src/App/Resources/AppResources.sl.resx
index d1a597222..2f6580a4b 100644
--- a/src/App/Resources/AppResources.sl.resx
+++ b/src/App/Resources/AppResources.sl.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.sr.resx b/src/App/Resources/AppResources.sr.resx
index 03d5ed796..6c494e67d 100644
--- a/src/App/Resources/AppResources.sr.resx
+++ b/src/App/Resources/AppResources.sr.resx
@@ -2316,64 +2316,64 @@
Да ли сте сигурни да желите да укључите снимање екрана?
- Login requested
+ Захтев пријаве
- Are you trying to log in?
+ Да ли покушавате да се пријавите?
- Login attempt by {0} on {1}
+ {0} пробао да се пријави на {1}
- Device type
+ Тип уређаја
- IP address
+ ИП адреса
- Time
+ Време
- Near
+ Близу
- Confirm login
+ Потврди пријављивање
- Deny login
+ Одбиј пријављивање
- Just now
+ Управо сада
- {0} minutes ago
+ пре {0} минута
- Login confirmed
+ Пријава потврђена
- Login denied
+ Пријава одбијена
- Approve login requests
+ Одобравање захтева за пријављивање
- Use this device to approve login requests made from other devices.
+ Користите овај уређај за одобравање захтева за пријављивање са других уређаја.
- Allow notifications
+ Дозволи обавештавања
- Receive push notifications for new login requests
+ Примајте обавештења за нове захтеве за пријаву
- No thanks
+ Не, хвала
- Confirm login attempt for {0}
+ Потврдити пријаву за {0}
- All notifications
+ Сва обавештењаТип лозинке
@@ -2457,9 +2457,12 @@
Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
- Accept
+ Прихвати
- Decline
+ Одбиј
+
+
+ Захтев за пријаву је већ истекао.
diff --git a/src/App/Resources/AppResources.sv.resx b/src/App/Resources/AppResources.sv.resx
index 9b29cee0f..3193a6863 100644
--- a/src/App/Resources/AppResources.sv.resx
+++ b/src/App/Resources/AppResources.sv.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.ta.resx b/src/App/Resources/AppResources.ta.resx
index f203db4e4..5ba26d792 100644
--- a/src/App/Resources/AppResources.ta.resx
+++ b/src/App/Resources/AppResources.ta.resx
@@ -2461,4 +2461,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.th.resx b/src/App/Resources/AppResources.th.resx
index 71c7f860c..2e6eee746 100644
--- a/src/App/Resources/AppResources.th.resx
+++ b/src/App/Resources/AppResources.th.resx
@@ -2468,4 +2468,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.tr.resx b/src/App/Resources/AppResources.tr.resx
index a93dfa896..262a75b9d 100644
--- a/src/App/Resources/AppResources.tr.resx
+++ b/src/App/Resources/AppResources.tr.resx
@@ -2459,4 +2459,7 @@ Kod otomatik olarak taranacaktır.
Decline
+
+ Giriş isteğinin süresi doldu.
+
diff --git a/src/App/Resources/AppResources.uk.resx b/src/App/Resources/AppResources.uk.resx
index c05221c20..0c6905a19 100644
--- a/src/App/Resources/AppResources.uk.resx
+++ b/src/App/Resources/AppResources.uk.resx
@@ -2460,4 +2460,7 @@
Відмовитись
+
+ Термін дії запиту на вхід завершився.
+
diff --git a/src/App/Resources/AppResources.vi.resx b/src/App/Resources/AppResources.vi.resx
index dc3a77817..4dfb03b27 100644
--- a/src/App/Resources/AppResources.vi.resx
+++ b/src/App/Resources/AppResources.vi.resx
@@ -2460,4 +2460,7 @@ select Add TOTP to store the key safely
Decline
+
+ Login request has already expired.
+
diff --git a/src/App/Resources/AppResources.zh-Hans.resx b/src/App/Resources/AppResources.zh-Hans.resx
index bc7fd8baa..1f49a915a 100644
--- a/src/App/Resources/AppResources.zh-Hans.resx
+++ b/src/App/Resources/AppResources.zh-Hans.resx
@@ -2449,10 +2449,10 @@
随机
- 无障碍服务使用声明
+ 无障碍服务声明
- Bitwarden 使用无障碍服务在应用程序和网站中搜索登录字段,当找到与应用程序或网站相匹配的用户名和密码时,建立适当的字段 ID 以输入它们。我们不会通过此服务存储提供给我们的任何信息,也不会尝试控制除凭据文本输入之外的任何屏幕上的元素。
+ Bitwarden 使用无障碍服务在应用程序和网站中搜索登录字段,当找到与应用程序或网站相匹配的用户名和密码时,建立适当的字段 ID 以输入它们。我们不会通过此服务存储提供给我们的任何信息,也不会尝试控制除凭据文本输入之外的任何屏幕元素。接受
@@ -2460,4 +2460,7 @@
拒绝
+
+ 登录请求已过期。
+
diff --git a/src/App/Resources/AppResources.zh-Hant.resx b/src/App/Resources/AppResources.zh-Hant.resx
index 37fb6e71c..99e0f656f 100644
--- a/src/App/Resources/AppResources.zh-Hant.resx
+++ b/src/App/Resources/AppResources.zh-Hant.resx
@@ -1613,7 +1613,7 @@
切換可見度
- 您的登入階段已過期。
+ 您的登入階段已逾期。生物特徵辨識驗證
@@ -2449,10 +2449,10 @@
隨機
- Accessibility Service Disclosure
+ 無障礙服務聲明
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden 使用無障礙服務搜寻應用程式和網站中的登入欄位,然後建立適當的欄位 ID,以便在找到應用程式或網站的匹配項目時輸入用戶名和密碼。 我們不會存儲服務提供給我們的任何資訊,也不會試圖控制憑證文字輸入以外的任何荧幕元素。接受
@@ -2460,4 +2460,7 @@
拒絕
+
+ 登入要求已逾期。
+
diff --git a/store/apple/fa/copy.resx b/store/apple/fa/copy.resx
index 60a07c69a..ad3aebd01 100644
--- a/store/apple/fa/copy.resx
+++ b/store/apple/fa/copy.resx
@@ -122,32 +122,31 @@
Max 30 characters
- Bitwarden, Inc. is the parent company of 8bit Solutions LLC.
+ Bitwarden، Inc. شرکت مادر 8bit Solutions LLC است.
-NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE.
+به عنوان بهترین مدیر رمز عبور توسط VERGE، US News & WORLD REPORT، CNET و دیگران انتخاب شد.
-Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go.
+گذرواژههای با تعداد نامحدود را در دستگاههای نامحدود از هر کجا مدیریت کنید، ذخیره کنید، ایمن کنید و به اشتراک بگذارید. Bitwarden راه حل های مدیریت رمز عبور منبع باز را به همه ارائه می دهد، چه در خانه، چه در محل کار یا در حال حرکت.
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+بر اساس الزامات امنیتی برای هر وب سایتی که بازدید می کنید، رمزهای عبور قوی، منحصر به فرد و تصادفی ایجاد کنید.
-Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone.
+Bitwarden Send به سرعت اطلاعات رمزگذاری شده --- فایل ها و متن ساده - را مستقیماً به هر کسی منتقل می کند.
-Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues.
+Bitwarden برنامههای Teams و Enterprise را برای شرکتها ارائه میدهد تا بتوانید بهطور ایمن گذرواژهها را با همکاران خود به اشتراک بگذارید.
-Why Choose Bitwarden:
+چرا Bitwarden را انتخاب کنید:
-World-Class Encryption
-Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private.
+رمزگذاری در کلاس جهانی
+گذرواژهها با رمزگذاری پیشرفته (AES-256 بیت، هشتگ سالت و PBKDF2 SHA-256) محافظت میشوند تا دادههای شما امن و خصوصی بمانند.
-Built-in Password Generator
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+تولیدکننده رمز عبور داخلی
+بر اساس الزامات امنیتی برای هر وب سایتی که بازدید می کنید، رمزهای عبور قوی، منحصر به فرد و تصادفی ایجاد کنید.
-Global Translations
-Bitwarden translations exist in 40 languages and are growing, thanks to our global community.
+ترجمه های جهانی
+ترجمه Bitwarden به 40 زبان وجود دارد و به لطف جامعه جهانی ما در حال رشد است.
-Cross-Platform Applications
-Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more.
-
+برنامه های کاربردی چند پلتفرمی
+داده های حساس را در Bitwarden Vault خود از هر مرورگر، دستگاه تلفن همراه یا سیستم عامل دسکتاپ و غیره ایمن کنید و به اشتراک بگذارید.Max 4000 characters
diff --git a/store/google/fa/copy.resx b/store/google/fa/copy.resx
index 7d3f5978f..0d06552b3 100644
--- a/store/google/fa/copy.resx
+++ b/store/google/fa/copy.resx
@@ -126,32 +126,31 @@
Max 80 characters
- Bitwarden, Inc. is the parent company of 8bit Solutions LLC.
+ Bitwarden، Inc. شرکت مادر 8bit Solutions LLC است.
-NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE.
+به عنوان بهترین مدیر رمز عبور توسط VERGE، US News & WORLD REPORT، CNET و دیگران انتخاب شد.
-Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go.
+گذرواژههای با تعداد نامحدود را در دستگاههای نامحدود از هر کجا مدیریت کنید، ذخیره کنید، ایمن کنید و به اشتراک بگذارید. Bitwarden راه حل های مدیریت رمز عبور منبع باز را به همه ارائه می دهد، چه در خانه، چه در محل کار یا در حال حرکت.
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+بر اساس الزامات امنیتی برای هر وب سایتی که بازدید می کنید، رمزهای عبور قوی، منحصر به فرد و تصادفی ایجاد کنید.
-Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone.
+Bitwarden Send به سرعت اطلاعات رمزگذاری شده --- فایل ها و متن ساده - را مستقیماً به هر کسی منتقل می کند.
-Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues.
+Bitwarden برنامههای Teams و Enterprise را برای شرکتها ارائه میدهد تا بتوانید بهطور ایمن گذرواژهها را با همکاران خود به اشتراک بگذارید.
-Why Choose Bitwarden:
+چرا Bitwarden را انتخاب کنید:
-World-Class Encryption
-Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private.
+رمزگذاری در کلاس جهانی
+گذرواژهها با رمزگذاری پیشرفته (AES-256 بیت، هشتگ سالت و PBKDF2 SHA-256) محافظت میشوند تا دادههای شما امن و خصوصی بمانند.
-Built-in Password Generator
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+تولیدکننده رمز عبور داخلی
+بر اساس الزامات امنیتی برای هر وب سایتی که بازدید می کنید، رمزهای عبور قوی، منحصر به فرد و تصادفی ایجاد کنید.
-Global Translations
-Bitwarden translations exist in 40 languages and are growing, thanks to our global community.
+ترجمه های جهانی
+ترجمه Bitwarden به 40 زبان وجود دارد و به لطف جامعه جهانی ما در حال رشد است.
-Cross-Platform Applications
-Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more.
-
+برنامه های کاربردی چند پلتفرمی
+داده های حساس را در Bitwarden Vault خود از هر مرورگر، دستگاه تلفن همراه یا سیستم عامل دسکتاپ و غیره ایمن کنید و به اشتراک بگذارید.Max 4000 characters
From 569922805f71e26fd3a07c18e024932ad98933cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Wed, 12 Oct 2022 15:55:01 +0100
Subject: [PATCH 20/32] [SG-703] Login request is not removed after dismissing
push notification (#2125)
* [SG-703] Handle iOS dismiss notification action. Added core logic to remove passwordless notification from local storage.
* [SG-702] Added broadcast receiver to catch dismiss notfication events on android.
* [SG-703] PR fixes.
* [SG-703] Fix constants namespaces. Lazyloading services on broadcast receiver.
* [SG-703] Change services to use lazy loading
* [SG-703] Change lazy loading to be parameterless.
---
src/Android/Android.csproj | 1 +
.../Receivers/NotificationDismissReceiver.cs | 41 +++++++
.../AndroidPushNotificationService.cs | 14 ++-
.../IPushNotificationListenerService.cs | 1 +
.../NoopPushNotificationListenerService.cs | 5 +
.../PushNotificationListenerService.cs | 113 +++++++++---------
src/Core/Constants.cs | 2 +-
.../Services/iOSPushNotificationHandler.cs | 28 +++--
8 files changed, 138 insertions(+), 67 deletions(-)
create mode 100644 src/Android/Receivers/NotificationDismissReceiver.cs
diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 1ac400e27..7abf7d6dd 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -152,6 +152,7 @@
+
diff --git a/src/Android/Receivers/NotificationDismissReceiver.cs b/src/Android/Receivers/NotificationDismissReceiver.cs
new file mode 100644
index 000000000..43f69ea62
--- /dev/null
+++ b/src/Android/Receivers/NotificationDismissReceiver.cs
@@ -0,0 +1,41 @@
+using Android.Content;
+using Bit.App.Abstractions;
+using Bit.App.Models;
+using Bit.App.Services;
+using Bit.Core;
+using Bit.Core.Abstractions;
+using Bit.Core.Services;
+using Bit.Core.Utilities;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+using CoreConstants = Bit.Core.Constants;
+
+namespace Bit.Droid.Receivers
+{
+ [BroadcastReceiver(Name = Constants.PACKAGE_NAME + "." + nameof(NotificationDismissReceiver), Exported = false)]
+ public class NotificationDismissReceiver : BroadcastReceiver
+ {
+ private readonly LazyResolve _pushNotificationListenerService = new LazyResolve();
+ private readonly LazyResolve _logger = new LazyResolve();
+
+ public override void OnReceive(Context context, Intent intent)
+ {
+ try
+ {
+ if (intent?.GetStringExtra(CoreConstants.NotificationData) is string notificationDataJson)
+ {
+ var notificationType = JToken.Parse(notificationDataJson).SelectToken(CoreConstants.NotificationDataType);
+ if (notificationType.ToString() == PasswordlessNotificationData.TYPE)
+ {
+ _pushNotificationListenerService.Value.OnNotificationDismissed(JsonConvert.DeserializeObject(notificationDataJson)).FireAndForget();
+ }
+ }
+ }
+ catch (System.Exception ex)
+ {
+ _logger.Value.Exception(ex);
+ }
+ }
+ }
+}
+
diff --git a/src/Android/Services/AndroidPushNotificationService.cs b/src/Android/Services/AndroidPushNotificationService.cs
index 03f8ad672..6c5383f8f 100644
--- a/src/Android/Services/AndroidPushNotificationService.cs
+++ b/src/Android/Services/AndroidPushNotificationService.cs
@@ -10,9 +10,12 @@ using Bit.App.Abstractions;
using Bit.App.Models;
using Bit.Core;
using Bit.Core.Abstractions;
+using Bit.Droid.Receivers;
using Bit.Droid.Utilities;
using Newtonsoft.Json;
using Xamarin.Forms;
+using static Xamarin.Essentials.Platform;
+using Intent = Android.Content.Intent;
namespace Bit.Droid.Services
{
@@ -79,16 +82,21 @@ namespace Bit.Droid.Services
var context = Android.App.Application.Context;
var intent = new Intent(context, typeof(MainActivity));
- intent.PutExtra(Core.Constants.NotificationData, JsonConvert.SerializeObject(data));
-
+ intent.PutExtra(Bit.Core.Constants.NotificationData, JsonConvert.SerializeObject(data));
var pendingIntentFlags = AndroidHelpers.AddPendingIntentMutabilityFlag(PendingIntentFlags.UpdateCurrent, true);
var pendingIntent = PendingIntent.GetActivity(context, 20220801, intent, pendingIntentFlags);
- var builder = new NotificationCompat.Builder(context, Core.Constants.AndroidNotificationChannelId)
+
+ var deleteIntent = new Intent(context, typeof(NotificationDismissReceiver));
+ deleteIntent.PutExtra(Bit.Core.Constants.NotificationData, JsonConvert.SerializeObject(data));
+ var deletePendingIntent = PendingIntent.GetBroadcast(context, 20220802, deleteIntent, pendingIntentFlags);
+
+ var builder = new NotificationCompat.Builder(context, Bit.Core.Constants.AndroidNotificationChannelId)
.SetContentIntent(pendingIntent)
.SetContentTitle(title)
.SetContentText(message)
.SetSmallIcon(Resource.Drawable.ic_notification)
.SetColor((int)Android.Graphics.Color.White)
+ .SetDeleteIntent(deletePendingIntent)
.SetAutoCancel(true);
if (data is PasswordlessNotificationData passwordlessNotificationData && passwordlessNotificationData.TimeoutInMinutes > 0)
diff --git a/src/App/Abstractions/IPushNotificationListenerService.cs b/src/App/Abstractions/IPushNotificationListenerService.cs
index f5d2cb39f..fdbb6ca88 100644
--- a/src/App/Abstractions/IPushNotificationListenerService.cs
+++ b/src/App/Abstractions/IPushNotificationListenerService.cs
@@ -11,6 +11,7 @@ namespace Bit.App.Abstractions
void OnUnregistered(string device);
void OnError(string message, string device);
Task OnNotificationTapped(BaseNotificationData data);
+ Task OnNotificationDismissed(BaseNotificationData data);
bool ShouldShowNotification();
}
}
diff --git a/src/App/Services/NoopPushNotificationListenerService.cs b/src/App/Services/NoopPushNotificationListenerService.cs
index b8b6b2890..c70c43479 100644
--- a/src/App/Services/NoopPushNotificationListenerService.cs
+++ b/src/App/Services/NoopPushNotificationListenerService.cs
@@ -34,5 +34,10 @@ namespace Bit.App.Services
{
return Task.FromResult(0);
}
+
+ public Task OnNotificationDismissed(BaseNotificationData data)
+ {
+ return Task.FromResult(0);
+ }
}
}
diff --git a/src/App/Services/PushNotificationListenerService.cs b/src/App/Services/PushNotificationListenerService.cs
index b2a58f627..5b5f38b90 100644
--- a/src/App/Services/PushNotificationListenerService.cs
+++ b/src/App/Services/PushNotificationListenerService.cs
@@ -26,20 +26,18 @@ namespace Bit.App.Services
const string TAG = "##PUSH NOTIFICATIONS";
private bool _showNotification;
- private bool _resolved;
- private ISyncService _syncService;
- private IStateService _stateService;
- private IAppIdService _appIdService;
- private IApiService _apiService;
- private IMessagingService _messagingService;
- private IPushNotificationService _pushNotificationService;
- private ILogger _logger;
+ private LazyResolve _syncService = new LazyResolve();
+ private LazyResolve _stateService = new LazyResolve();
+ private LazyResolve _appIdService = new LazyResolve();
+ private LazyResolve _apiService = new LazyResolve();
+ private LazyResolve _messagingService = new LazyResolve();
+ private LazyResolve _pushNotificationService = new LazyResolve();
+ private LazyResolve _logger = new LazyResolve();
public async Task OnMessageAsync(JObject value, string deviceType)
{
Debug.WriteLine($"{TAG} OnMessageAsync called");
- Resolve();
if (value == null)
{
return;
@@ -65,14 +63,14 @@ namespace Bit.App.Services
Debug.WriteLine($"{TAG} - Notification object created: t:{notification?.Type} - p:{notification?.Payload}");
- var appId = await _appIdService.GetAppIdAsync();
+ var appId = await _appIdService.Value.GetAppIdAsync();
if (notification?.Payload == null || notification.ContextId == appId)
{
return;
}
- var myUserId = await _stateService.GetActiveUserIdAsync();
- var isAuthenticated = await _stateService.IsAuthenticatedAsync();
+ var myUserId = await _stateService.Value.GetActiveUserIdAsync();
+ var isAuthenticated = await _stateService.Value.IsAuthenticatedAsync();
switch (notification.Type)
{
case NotificationType.SyncCipherUpdate:
@@ -81,7 +79,7 @@ namespace Bit.App.Services
notification.Payload);
if (isAuthenticated && cipherCreateUpdateMessage.UserId == myUserId)
{
- await _syncService.SyncUpsertCipherAsync(cipherCreateUpdateMessage,
+ await _syncService.Value.SyncUpsertCipherAsync(cipherCreateUpdateMessage,
notification.Type == NotificationType.SyncCipherUpdate);
}
break;
@@ -91,7 +89,7 @@ namespace Bit.App.Services
notification.Payload);
if (isAuthenticated && folderCreateUpdateMessage.UserId == myUserId)
{
- await _syncService.SyncUpsertFolderAsync(folderCreateUpdateMessage,
+ await _syncService.Value.SyncUpsertFolderAsync(folderCreateUpdateMessage,
notification.Type == NotificationType.SyncFolderUpdate);
}
break;
@@ -101,7 +99,7 @@ namespace Bit.App.Services
notification.Payload);
if (isAuthenticated && loginDeleteMessage.UserId == myUserId)
{
- await _syncService.SyncDeleteCipherAsync(loginDeleteMessage);
+ await _syncService.Value.SyncDeleteCipherAsync(loginDeleteMessage);
}
break;
case NotificationType.SyncFolderDelete:
@@ -109,7 +107,7 @@ namespace Bit.App.Services
notification.Payload);
if (isAuthenticated && folderDeleteMessage.UserId == myUserId)
{
- await _syncService.SyncDeleteFolderAsync(folderDeleteMessage);
+ await _syncService.Value.SyncDeleteFolderAsync(folderDeleteMessage);
}
break;
case NotificationType.SyncCiphers:
@@ -117,27 +115,27 @@ namespace Bit.App.Services
case NotificationType.SyncSettings:
if (isAuthenticated)
{
- await _syncService.FullSyncAsync(false);
+ await _syncService.Value.FullSyncAsync(false);
}
break;
case NotificationType.SyncOrgKeys:
if (isAuthenticated)
{
- await _apiService.RefreshIdentityTokenAsync();
- await _syncService.FullSyncAsync(true);
+ await _apiService.Value.RefreshIdentityTokenAsync();
+ await _syncService.Value.FullSyncAsync(true);
}
break;
case NotificationType.LogOut:
if (isAuthenticated)
{
- _messagingService.Send("logout");
+ _messagingService.Value.Send("logout");
}
break;
case NotificationType.AuthRequest:
var passwordlessLoginMessage = JsonConvert.DeserializeObject(notification.Payload);
// if the user has not enabled passwordless logins ignore requests
- if (!await _stateService.GetApprovePasswordlessLoginsAsync(passwordlessLoginMessage?.UserId))
+ if (!await _stateService.Value.GetApprovePasswordlessLoginsAsync(passwordlessLoginMessage?.UserId))
{
return;
}
@@ -148,8 +146,8 @@ namespace Bit.App.Services
return;
}
- await _stateService.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage, passwordlessLoginMessage?.UserId);
- var userEmail = await _stateService.GetEmailAsync(passwordlessLoginMessage?.UserId);
+ await _stateService.Value.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage, passwordlessLoginMessage?.UserId);
+ var userEmail = await _stateService.Value.GetEmailAsync(passwordlessLoginMessage?.UserId);
var notificationData = new PasswordlessNotificationData()
{
@@ -158,8 +156,8 @@ namespace Bit.App.Services
UserEmail = userEmail,
};
- _pushNotificationService.SendLocalNotification(AppResources.LogInRequested, String.Format(AppResources.ConfimLogInAttempForX, userEmail), notificationData);
- _messagingService.Send("passwordlessLoginRequest", passwordlessLoginMessage);
+ _pushNotificationService.Value.SendLocalNotification(AppResources.LogInRequested, String.Format(AppResources.ConfimLogInAttempForX, userEmail), notificationData);
+ _messagingService.Value.Send("passwordlessLoginRequest", passwordlessLoginMessage);
break;
default:
break;
@@ -168,31 +166,30 @@ namespace Bit.App.Services
public async Task OnRegisteredAsync(string token, string deviceType)
{
- Resolve();
Debug.WriteLine($"{TAG} - Device Registered - Token : {token}");
- var isAuthenticated = await _stateService.IsAuthenticatedAsync();
+ var isAuthenticated = await _stateService.Value.IsAuthenticatedAsync();
if (!isAuthenticated)
{
Debug.WriteLine($"{TAG} - not auth");
return;
}
- var appId = await _appIdService.GetAppIdAsync();
+ var appId = await _appIdService.Value.GetAppIdAsync();
try
{
#if DEBUG
- await _stateService.SetPushInstallationRegistrationErrorAsync(null);
+ await _stateService.Value.SetPushInstallationRegistrationErrorAsync(null);
#endif
- await _apiService.PutDeviceTokenAsync(appId,
+ await _apiService.Value.PutDeviceTokenAsync(appId,
new Core.Models.Request.DeviceTokenRequest { PushToken = token });
Debug.WriteLine($"{TAG} Registered device with server.");
- await _stateService.SetPushLastRegistrationDateAsync(DateTime.UtcNow);
+ await _stateService.Value.SetPushLastRegistrationDateAsync(DateTime.UtcNow);
if (deviceType == Device.Android)
{
- await _stateService.SetPushCurrentTokenAsync(token);
+ await _stateService.Value.SetPushCurrentTokenAsync(token);
}
}
#if DEBUG
@@ -200,11 +197,11 @@ namespace Bit.App.Services
{
Debug.WriteLine($"{TAG} Failed to register device.");
- await _stateService.SetPushInstallationRegistrationErrorAsync(apiEx.Error?.Message);
+ await _stateService.Value.SetPushInstallationRegistrationErrorAsync(apiEx.Error?.Message);
}
catch (Exception e)
{
- await _stateService.SetPushInstallationRegistrationErrorAsync(e.Message);
+ await _stateService.Value.SetPushInstallationRegistrationErrorAsync(e.Message);
throw;
}
#else
@@ -226,22 +223,44 @@ namespace Bit.App.Services
public async Task OnNotificationTapped(BaseNotificationData data)
{
- Resolve();
try
{
if (data is PasswordlessNotificationData passwordlessNotificationData)
{
- var notificationUserId = await _stateService.GetUserIdAsync(passwordlessNotificationData.UserEmail);
+ var notificationUserId = await _stateService.Value.GetUserIdAsync(passwordlessNotificationData.UserEmail);
if (notificationUserId != null)
{
- await _stateService.SetActiveUserAsync(notificationUserId);
- _messagingService.Send(AccountsManagerMessageCommands.SWITCHED_ACCOUNT);
+ await _stateService.Value.SetActiveUserAsync(notificationUserId);
+ _messagingService.Value.Send(AccountsManagerMessageCommands.SWITCHED_ACCOUNT);
}
}
}
catch (Exception ex)
{
- _logger.Exception(ex);
+ _logger.Value.Exception(ex);
+ }
+ }
+
+ public async Task OnNotificationDismissed(BaseNotificationData data)
+ {
+ try
+ {
+ if (data is PasswordlessNotificationData passwordlessNotificationData)
+ {
+ var notificationUserId = await _stateService.Value.GetUserIdAsync(passwordlessNotificationData.UserEmail);
+ if (notificationUserId != null)
+ {
+ var savedNotification = await _stateService.Value.GetPasswordlessLoginNotificationAsync(notificationUserId);
+ if (savedNotification != null)
+ {
+ await _stateService.Value.SetPasswordlessLoginNotificationAsync(null, notificationUserId);
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger.Value.Exception(ex);
}
}
@@ -249,22 +268,6 @@ namespace Bit.App.Services
{
return _showNotification;
}
-
- private void Resolve()
- {
- if (_resolved)
- {
- return;
- }
- _syncService = ServiceContainer.Resolve("syncService");
- _stateService = ServiceContainer.Resolve("stateService");
- _appIdService = ServiceContainer.Resolve("appIdService");
- _apiService = ServiceContainer.Resolve("apiService");
- _messagingService = ServiceContainer.Resolve("messagingService");
- _pushNotificationService = ServiceContainer.Resolve();
- _logger = ServiceContainer.Resolve();
- _resolved = true;
- }
}
}
#endif
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 7250c02b8..903ef5e7e 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -33,7 +33,7 @@
public const string PasswordlessNotificationId = "26072022";
public const string AndroidNotificationChannelId = "general_notification_channel";
public const string NotificationData = "notificationData";
- public const string NotificationDataType = "NotificationType";
+ public const string NotificationDataType = "Type";
public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43;
public const int SaveFileRequestCode = 44;
diff --git a/src/iOS/Services/iOSPushNotificationHandler.cs b/src/iOS/Services/iOSPushNotificationHandler.cs
index de484d5d2..b19fe17e0 100644
--- a/src/iOS/Services/iOSPushNotificationHandler.cs
+++ b/src/iOS/Services/iOSPushNotificationHandler.cs
@@ -96,23 +96,35 @@ namespace Bit.iOS.Services
public void DidReceiveNotificationResponse(UNUserNotificationCenter center, UNNotificationResponse response, Action completionHandler)
{
Debug.WriteLine($"{TAG} DidReceiveNotificationResponse {response?.Notification?.Request?.Content?.UserInfo}");
-
- if (response.IsDefaultAction && response?.Notification?.Request?.Content?.UserInfo != null)
+ if ((response?.Notification?.Request?.Content?.UserInfo) == null)
{
- var userInfo = response?.Notification?.Request?.Content?.UserInfo;
- OnMessageReceived(userInfo);
+ completionHandler();
+ return;
+ }
- if (userInfo.TryGetValue(NSString.FromObject(Constants.NotificationData), out NSObject nsObject))
+ var userInfo = response?.Notification?.Request?.Content?.UserInfo;
+ OnMessageReceived(userInfo);
+
+ if (userInfo.TryGetValue(NSString.FromObject(Constants.NotificationData), out NSObject nsObject))
+ {
+ var token = JToken.Parse(NSString.FromObject(nsObject).ToString());
+ var typeToken = token.SelectToken(Constants.NotificationDataType);
+ if (response.IsDefaultAction)
{
- var token = JToken.Parse(NSString.FromObject(nsObject).ToString());
- var typeToken = token.SelectToken(Constants.NotificationDataType);
if (typeToken.ToString() == PasswordlessNotificationData.TYPE)
{
_pushNotificationListenerService.OnNotificationTapped(token.ToObject());
}
}
+ else if (response.IsDismissAction)
+ {
+ if (typeToken.ToString() == PasswordlessNotificationData.TYPE)
+ {
+ _pushNotificationListenerService.OnNotificationDismissed(token.ToObject());
+ }
+ }
}
-
+
// Inform caller it has been handled
completionHandler();
}
From 539f8fe5b51c5a59b741b9d04fdb8aa9e80e89e0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Wed, 12 Oct 2022 15:55:38 +0100
Subject: [PATCH 21/32] [SG-690] Timeout fix (#2129)
[SG-690] Updated server times to utc
---
src/App/App.xaml.cs | 2 +-
src/App/Pages/Accounts/LoginPasswordlessViewModel.cs | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index b78085a13..986651270 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -191,7 +191,7 @@ namespace Bit.App
});
await _stateService.SetPasswordlessLoginNotificationAsync(null);
_pushNotificationService.DismissLocalNotification(Constants.PasswordlessNotificationId);
- if (loginRequestData.CreationDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.UtcNow)
+ if (loginRequestData.CreationDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) > DateTime.UtcNow)
{
await Device.InvokeOnMainThreadAsync(() => Application.Current.MainPage.Navigation.PushModalAsync(new NavigationPage(page)));
}
diff --git a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
index 1a5ba8a83..1ca09b540 100644
--- a/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPasswordlessViewModel.cs
@@ -100,7 +100,7 @@ namespace Bit.App.Pages
private async Task UpdateRequestTime()
{
TriggerPropertyChanged(nameof(TimeOfRequestText));
- if (DateTime.UtcNow > LoginRequest?.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
+ if (DateTime.UtcNow > LoginRequest?.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes))
{
StopRequestTimeUpdater();
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
@@ -110,7 +110,7 @@ namespace Bit.App.Pages
private async Task PasswordlessLoginAsync(bool approveRequest)
{
- if (LoginRequest.RequestDate.AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.UtcNow)
+ if (LoginRequest.RequestDate.ToUniversalTime().AddMinutes(Constants.PasswordlessNotificationTimeoutInMinutes) <= DateTime.UtcNow)
{
await _platformUtilsService.ShowDialogAsync(AppResources.LoginRequestHasAlreadyExpired);
await Page.Navigation.PopModalAsync();
From a5ad43b1345da4d278fd7da5c7070f3e1a27a9b7 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Wed, 12 Oct 2022 17:42:14 +0100
Subject: [PATCH 22/32] Bumped version to 2022.10.0 (#2130)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
src/Android/Properties/AndroidManifest.xml | 2 +-
src/iOS.Autofill/Info.plist | 2 +-
src/iOS.Extension/Info.plist | 2 +-
src/iOS.ShareExtension/Info.plist | 2 +-
src/iOS/Info.plist | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/Android/Properties/AndroidManifest.xml b/src/Android/Properties/AndroidManifest.xml
index 693db4c0c..cb3562728 100644
--- a/src/Android/Properties/AndroidManifest.xml
+++ b/src/Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/src/iOS.Autofill/Info.plist b/src/iOS.Autofill/Info.plist
index 899f77833..e4d5af92a 100644
--- a/src/iOS.Autofill/Info.plist
+++ b/src/iOS.Autofill/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwarden.autofillCFBundleShortVersionString
- 2022.9.2
+ 2022.10.0CFBundleVersion1CFBundleLocalizations
diff --git a/src/iOS.Extension/Info.plist b/src/iOS.Extension/Info.plist
index 3c1f2116b..30a80a20f 100644
--- a/src/iOS.Extension/Info.plist
+++ b/src/iOS.Extension/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwarden.find-login-action-extensionCFBundleShortVersionString
- 2022.9.2
+ 2022.10.0CFBundleLocalizationsen
diff --git a/src/iOS.ShareExtension/Info.plist b/src/iOS.ShareExtension/Info.plist
index 8a7b1a03e..ee5d4f42e 100644
--- a/src/iOS.ShareExtension/Info.plist
+++ b/src/iOS.ShareExtension/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageTypeXPC!CFBundleShortVersionString
- 2022.9.2
+ 2022.10.0CFBundleVersion1MinimumOSVersion
diff --git a/src/iOS/Info.plist b/src/iOS/Info.plist
index 359b11b15..918bd5cc9 100644
--- a/src/iOS/Info.plist
+++ b/src/iOS/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwardenCFBundleShortVersionString
- 2022.9.2
+ 2022.10.0CFBundleVersion1CFBundleIconName
From 6048a10d6dfe280c27cee5988d7d58d2f89adc14 Mon Sep 17 00:00:00 2001
From: Danielle Flinn <43477473+danielleflinn@users.noreply.github.com>
Date: Thu, 13 Oct 2022 12:31:03 -0700
Subject: [PATCH 23/32] [PS-1543]Sentence case mobile (#2095)
* transitioned to sentence case
* removed unnecessary punctuation
* other small content improvements
---
src/App/Resources/AppResources.resx | 370 ++++++++++++++--------------
1 file changed, 185 insertions(+), 185 deletions(-)
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 01ac38ea9..87967862b 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Copy Password
+ Copy passwordThe button text that allows a user to copy the login's password to their clipboard.
- Copy Username
+ Copy usernameThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,18 +179,18 @@
Edit
- Edit Folder
+ Edit folderEmailShort label for an email address.
- Email Address
+ Email addressFull label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -229,10 +229,10 @@
Folders
- Folder updated.
+ Folder saved
- Go To Website
+ Go to websiteThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,19 +276,19 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
- Master Password
+ Master passwordLabel for a master password.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- My Vault
+ My vaultThe title for the vault page.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Thank You
+ Thank youTools
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockUsername
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprint
- Verify Master Password
+ Verify master passwordVerify PIN
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -461,29 +461,29 @@
Continue
- Create Account
+ Create accountCreating account...Message shown when interacting with the server
- Edit Item
+ Edit item
- Enable Automatic Syncing
+ Allow automatic syncingEnter your account email address to receive your master password hint.
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -514,7 +514,7 @@
Fingerprint
- Generate Password
+ Generate passwordGet your master password hint
@@ -529,7 +529,7 @@
Quickly bulk import your items from other password management apps.
- Last Sync:
+ Last sync:Length
@@ -578,7 +578,7 @@
The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it.
- Master Password Hint (optional)
+ Master password hint (optional)A master password hint can help you remember your password if you forget it.
@@ -587,15 +587,15 @@
Master password must be at least 8 characters long.
- Minimum Numbers
+ Minimum numbersMinimum numeric characters for password generator settings
- Minimum Special
+ Minimum specialMinimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
Never
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -632,13 +632,13 @@
Other
- Password generated.
+ Password generated
- Password Generator
+ Password generator
- Password Hint
+ Password hintWe've sent you an email with your master password hint.
@@ -647,7 +647,7 @@
Are you sure you want to overwrite the current password?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -657,13 +657,13 @@
Please consider helping us out with a good review!
- Regenerate Password
+ Regenerate password
- Re-type Master Password
+ Re-type master password
- Search Vault
+ Search vaultSecurity
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsSearch
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,14 +827,14 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
- Recovery Code
+ Recovery codeFor 2FA
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileFile
@@ -946,7 +946,7 @@ Scanning will happen automatically.
File Source
- Feature Unavailable
+ Feature unavailableMaximum file size is 100 MB.
@@ -955,13 +955,13 @@ Scanning will happen automatically.
You cannot use this feature until you update your encryption key.
- Learn More
+ Learn more
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -974,11 +974,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted Bitwarden installation.
@@ -987,25 +987,25 @@ Scanning will happen automatically.
Server URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view items from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy number
- Copy Security Code
+ Copy security codeNumber
- Security Code
+ Security codeCard
@@ -1017,7 +1017,7 @@ Scanning will happen automatically.
Login
- Secure Note
+ Secure noteAddress 1
@@ -1038,7 +1038,7 @@ Scanning will happen automatically.
Brand
- Cardholder Name
+ Cardholder nameCity / Town
@@ -1056,16 +1056,16 @@ Scanning will happen automatically.
Dr
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearFebruary
- First Name
+ First nameJanuary
@@ -1077,13 +1077,13 @@ Scanning will happen automatically.
June
- Last Name
+ Last name
- Full Name
+ Full name
- License Number
+ License numberMarch
@@ -1092,7 +1092,7 @@ Scanning will happen automatically.
May
- Middle Name
+ Middle nameMr
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
October
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
September
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1337,10 +1337,10 @@ Scanning will happen automatically.
Logins
- Secure Notes
+ Secure notes
- All Items
+ All itemsURIs
@@ -1360,13 +1360,13 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameValue
- Password History
+ Password historyTypes
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1394,7 +1394,7 @@ Scanning will happen automatically.
Type
- Move Down
+ Move downMove Up
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteExit
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,13 +1764,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
From 3a87378847f8bea21fdf00164911dcceee8dce6a Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 13 Oct 2022 12:43:48 -0700
Subject: [PATCH 24/32] Bumped version to 2022.10.1 (#2132)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---
src/Android/Properties/AndroidManifest.xml | 2 +-
src/iOS.Autofill/Info.plist | 2 +-
src/iOS.Extension/Info.plist | 2 +-
src/iOS.ShareExtension/Info.plist | 2 +-
src/iOS/Info.plist | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/Android/Properties/AndroidManifest.xml b/src/Android/Properties/AndroidManifest.xml
index cb3562728..b1ac3d5cf 100644
--- a/src/Android/Properties/AndroidManifest.xml
+++ b/src/Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/src/iOS.Autofill/Info.plist b/src/iOS.Autofill/Info.plist
index e4d5af92a..bd93b0866 100644
--- a/src/iOS.Autofill/Info.plist
+++ b/src/iOS.Autofill/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwarden.autofillCFBundleShortVersionString
- 2022.10.0
+ 2022.10.1CFBundleVersion1CFBundleLocalizations
diff --git a/src/iOS.Extension/Info.plist b/src/iOS.Extension/Info.plist
index 30a80a20f..bce26b6bb 100644
--- a/src/iOS.Extension/Info.plist
+++ b/src/iOS.Extension/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwarden.find-login-action-extensionCFBundleShortVersionString
- 2022.10.0
+ 2022.10.1CFBundleLocalizationsen
diff --git a/src/iOS.ShareExtension/Info.plist b/src/iOS.ShareExtension/Info.plist
index ee5d4f42e..d0f6ce6ce 100644
--- a/src/iOS.ShareExtension/Info.plist
+++ b/src/iOS.ShareExtension/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageTypeXPC!CFBundleShortVersionString
- 2022.10.0
+ 2022.10.1CFBundleVersion1MinimumOSVersion
diff --git a/src/iOS/Info.plist b/src/iOS/Info.plist
index 918bd5cc9..f58f63696 100644
--- a/src/iOS/Info.plist
+++ b/src/iOS/Info.plist
@@ -11,7 +11,7 @@
CFBundleIdentifiercom.8bit.bitwardenCFBundleShortVersionString
- 2022.10.0
+ 2022.10.1CFBundleVersion1CFBundleIconName
From e5de530c2c018b676fc9a6de43dfbff65d654999 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 14 Oct 2022 14:00:38 +0200
Subject: [PATCH 25/32] Autosync the updated translations (#2133)
Co-authored-by: github-actions <>
---
src/App/Resources/AppResources.bg.resx | 10 +-
src/App/Resources/AppResources.bn.resx | 256 +++++++-------
src/App/Resources/AppResources.bs.resx | 34 +-
src/App/Resources/AppResources.ca.resx | 12 +-
src/App/Resources/AppResources.cs.resx | 114 +++---
src/App/Resources/AppResources.da.resx | 52 +--
src/App/Resources/AppResources.de.resx | 60 ++--
src/App/Resources/AppResources.el.resx | 4 +-
src/App/Resources/AppResources.en-GB.resx | 2 +-
src/App/Resources/AppResources.en-IN.resx | 88 ++---
src/App/Resources/AppResources.es.resx | 8 +-
src/App/Resources/AppResources.et.resx | 4 +-
src/App/Resources/AppResources.eu.resx | 2 +-
src/App/Resources/AppResources.fa.resx | 14 +-
src/App/Resources/AppResources.fi.resx | 162 ++++-----
src/App/Resources/AppResources.fil.resx | 370 ++++++++++----------
src/App/Resources/AppResources.fr.resx | 28 +-
src/App/Resources/AppResources.he.resx | 38 +-
src/App/Resources/AppResources.hi.resx | 204 +++++------
src/App/Resources/AppResources.hr.resx | 32 +-
src/App/Resources/AppResources.hu.resx | 164 ++++-----
src/App/Resources/AppResources.id.resx | 46 +--
src/App/Resources/AppResources.it.resx | 12 +-
src/App/Resources/AppResources.ja.resx | 16 +-
src/App/Resources/AppResources.ka.resx | 370 ++++++++++----------
src/App/Resources/AppResources.kn.resx | 88 ++---
src/App/Resources/AppResources.ko.resx | 34 +-
src/App/Resources/AppResources.lt.resx | 370 ++++++++++----------
src/App/Resources/AppResources.lv.resx | 8 +-
src/App/Resources/AppResources.ml.resx | 88 ++---
src/App/Resources/AppResources.nb.resx | 62 ++--
src/App/Resources/AppResources.nl.resx | 12 +-
src/App/Resources/AppResources.nn.resx | 150 ++++----
src/App/Resources/AppResources.pl.resx | 14 +-
src/App/Resources/AppResources.pt-BR.resx | 20 +-
src/App/Resources/AppResources.pt-PT.resx | 132 +++----
src/App/Resources/AppResources.ru.resx | 50 +--
src/App/Resources/AppResources.si.resx | 354 +++++++++----------
src/App/Resources/AppResources.sk.resx | 4 +-
src/App/Resources/AppResources.sl.resx | 134 +++----
src/App/Resources/AppResources.sr.resx | 2 +-
src/App/Resources/AppResources.sv.resx | 91 ++---
src/App/Resources/AppResources.ta.resx | 26 +-
src/App/Resources/AppResources.th.resx | 160 ++++-----
src/App/Resources/AppResources.tr.resx | 22 +-
src/App/Resources/AppResources.uk.resx | 8 +-
src/App/Resources/AppResources.vi.resx | 92 ++---
src/App/Resources/AppResources.zh-Hans.resx | 50 +--
src/App/Resources/AppResources.zh-Hant.resx | 44 +--
49 files changed, 2059 insertions(+), 2058 deletions(-)
diff --git a/src/App/Resources/AppResources.bg.resx b/src/App/Resources/AppResources.bg.resx
index a4d474007..aefaee179 100644
--- a/src/App/Resources/AppResources.bg.resx
+++ b/src/App/Resources/AppResources.bg.resx
@@ -2076,7 +2076,7 @@
Това действие е защитено. За да продължите, въведете отново главната си парола, за да потвърдите самоличността си.
- Captcha Required
+ Captcha required
@@ -2116,7 +2116,7 @@
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Идентификация чрез FIDO2 WebAuthn – можете да се идентифицирате чрез външен ключ за сигурност.
@@ -2384,13 +2384,13 @@ select Add TOTP to store the key safely
Тип потребителско име
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email aliasПроизволна дума
diff --git a/src/App/Resources/AppResources.bn.resx b/src/App/Resources/AppResources.bn.resx
index 7be4aa263..c41290282 100644
--- a/src/App/Resources/AppResources.bn.resx
+++ b/src/App/Resources/AppResources.bn.resx
@@ -190,7 +190,7 @@
Full label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,13 +276,13 @@
আপনি লগ আউট করতে চান?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Thank You
+ Thank youTools
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockUsername
@@ -375,11 +375,11 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprintপ্রধান পাসওয়ার্ড যাচাইকরণ
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -471,19 +471,19 @@
বস্তু সম্পাদনা
- Enable Automatic Syncing
+ Allow automatic syncingআপনার প্রধান পাসওয়ার্ডের ইঙ্গিতটি পেতে আপনার অ্যাকাউন্টের ইমেল ঠিকানা প্রবেশ করুন।
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -595,7 +595,7 @@
Minimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
কখনই না
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -647,7 +647,7 @@
আপনি কি নিশ্চিত যে আপনি বর্তমান পাসওয়ার্ডটি ওভাররাইট করতে চান?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsঅনুসন্ধান
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,11 +827,11 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).পুনরুদ্ধার কোড
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileFile
@@ -1080,7 +1080,7 @@ Scanning will happen automatically.
নামের শেষাংশ
- Full Name
+ Full nameলাইসেন্স নম্বর
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
October
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
September
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detectionমিল সনাক্তকরণURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
সংগ্রহ অনুসন্ধান
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteপ্রস্থান
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.অনুমতি
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,7 +1764,7 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
নিম্নলিখিত বিশেষ অক্ষরগুলির একটি বা একাধিক রয়েছে: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
গোপনীয়তা নীতি
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,34 +1828,34 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.একটি এন্টারপ্রাইজ নীতির কারণে, আপনি আপনার ব্যক্তিগত ভল্টে বস্তুসমূহ সংরক্ষণ করা থেকে সীমাবদ্ধ। একটি প্রতিষ্ঠানের মালিকানা বিকল্পটি পরিবর্তন করুন এবং উপলভ্য সংগ্রহগুলি থেকে চয়ন করুন।
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.bs.resx b/src/App/Resources/AppResources.bs.resx
index 5a62bb6bd..24b3b190a 100644
--- a/src/App/Resources/AppResources.bs.resx
+++ b/src/App/Resources/AppResources.bs.resx
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Zadana tamna tema
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Kopiraj bilješke
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2250,7 +2250,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.ca.resx b/src/App/Resources/AppResources.ca.resx
index 1903fd924..b7fcf9c63 100644
--- a/src/App/Resources/AppResources.ca.resx
+++ b/src/App/Resources/AppResources.ca.resx
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- La meua caixa forta
+ Caixa fortaThe title for the vault page.
@@ -2449,18 +2449,18 @@ seleccioneu Afegeix TOTP per emmagatzemar la clau de manera segura
Aleatori
- Accessibility Service Disclosure
+ Divulgació del servei d'accessibilitat
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden utilitza el Servei d'Accessibilitat per cercar camps d'inici de sessió en aplicacions i llocs web i, a continuació, establir els ID de camp adequats per introduir un nom d'usuari i una contrasenya quan es trobe una coincidència per a l'aplicació o el lloc. No emmagatzemem cap de la informació que ens presenta el servei, ni intentem controlar cap element de la pantalla més enllà de l'entrada de text de les credencials.
- Accept
+ Accepta
- Decline
+ Rebutja
- Login request has already expired.
+ La sol·licitud d'inici de sessió ja ha caducat.
diff --git a/src/App/Resources/AppResources.cs.resx b/src/App/Resources/AppResources.cs.resx
index f13220b5f..de7a83ce0 100644
--- a/src/App/Resources/AppResources.cs.resx
+++ b/src/App/Resources/AppResources.cs.resx
@@ -186,7 +186,7 @@
Short label for an email address.
- E-mailová adresa
+ Emailová adresaFull label for a email address.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Položka byla smazána
+ Položka byla odstraněna.Confirmation message after successfully deleting a login.
@@ -394,7 +394,7 @@
Zobrazit
- Navštivit naší webovou stránku
+ Navštívit naší webovou stránkuNavštivte náš web pro získání nápovědy, novinek, kontaktu, nebo návodů, jak používat Bitwarden.
@@ -428,7 +428,7 @@
Použít nezaměnitelné znaky
- Rozšíření aplikace Bitwarden
+ Rozšíření aplikace bitwardenNejjednodušší způsob přidání nových přihlášení do trezoru je z rozšíření Bitwarden. Další informace o používání rozšíření Bitwarden získáte klepnutím na obrazovku Nastavení.
@@ -443,7 +443,7 @@
Použijte službu přístupnosti pro automatické vyplňování přihlašovacích údajů.
- Změnit e-mail
+ Změnit emailE-mailovou adresu si můžete změnit na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?
@@ -604,7 +604,7 @@
Nikdy
- Položka byla přidána
+ Nová položka byla vytvořena.Žádné oblíbené přihlašovací údaje.
@@ -647,7 +647,7 @@
Opravdu chcete přepsat aktuální heslo?
- Bitwarden udržuje váš trezor automaticky synchronizovaný pomocí nabízených oznámení. Pro nejlepší možný zážitek klikněte prosím na následující výzvě na "Ok", pokud budete požádáni o jejich povolení.
+ bitwarden udržuje váš trezor automaticky synchronizovaný pomocí nabízených oznámení. Pro nejlepší možný zážitek klikněte prosím na následující výzvě na "Ok", pokud budete požádáni o jejich povolení.Push notifications for apple products
@@ -708,7 +708,7 @@
Dvoufázové přihlášení
- Dvoufázové přihlášení činí váš účet mnohem bezpečnějším díky nutnosti po každém úspěšném přihlášení zadat ověřovací kód získaný z aplikace, SMS, e-mailu nebo telefonního hovoru. Dvoufázové přihlášení lze aktivovat na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?
+ Dvoufázové přihlášení činí váš účet mnohem bezpečnější díky nutnosti po každém úspěšném přihlášení zadat ověřovací kód získaný z aplikace, SMS, emailu nebo telefonního hovoru. Dvoufázové přihlášení lze aktivovat na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?Odemknout pomocí {0}
@@ -775,10 +775,10 @@
Povoleno
- Off
+ Vypnuto
- On
+ ZapnutoStav
@@ -900,8 +900,8 @@
Nelze přečíst ověřovací klíč.
- Point your camera at the QR Code.
-Scanning will happen automatically.
+ Nasměrujte kameru na QR Kód.
+Načtení proběhne automaticky.Načíst QR kód
@@ -916,7 +916,7 @@ Scanning will happen automatically.
Zkopírovat ověřovací kód (TOTP)
- If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
+ Zkopírujte si TOTP ověřovací kód do schránky, pokud používáte autentizační klíč k přihlašování, před použitím automatického vyplňování.Copy TOTP automatically
@@ -958,7 +958,7 @@ Scanning will happen automatically.
Dozvědět se více
- URL API serveru
+ URL serveru APIVlastní prostředí
@@ -1137,10 +1137,10 @@ Scanning will happen automatically.
Expirace
- Show website icons
+ Zobrazit ikony webových stránek
- Show a recognizable image next to each login.
+ Zobrazí rozeznatelné ikony vedle každého záznamu.URL serveru ikonek
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Vyledat v kolekci
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsHledat {0}
@@ -1550,10 +1550,10 @@ Scanning will happen automatically.
Výchozí (Systémový)
- Default dark theme
+ Výchozí tmavý motiv
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Zvolte motiv, který se bude zobrazovat po aktivování tmavého motivu v systému.Kopírovat poznámky
@@ -2088,7 +2088,7 @@ Scanning will happen automatically.
Aktualizovat hlavní heslo
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.Aktualizace hesla
@@ -2100,10 +2100,10 @@ Scanning will happen automatically.
Odstranit hlavní heslo
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.Opustit organizaci
@@ -2115,7 +2115,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2133,7 +2133,7 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
@@ -2157,7 +2157,7 @@ Scanning will happen automatically.
Přepnuto na další dostupný účet
- Account Locked
+ Account lockedOdhlášení proběhlo úspěšně
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2250,7 +2250,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2265,25 +2265,25 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Ověřovací kódyPremium subscription required
- Cannot add authenticator key?
+ Nelze přidat autentizační klíč?
- Scan QR Code
+ Načíst QR kód
- Cannot scan QR Code?
+ Nelze načíst QR Kód?
- Authenticator Key
+ Autentizační klíč
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2335,31 +2335,31 @@ select Add TOTP to store the key safely
Near
- Confirm login
+ Potvrdit přihlášení
- Deny login
+ Zamítnout přihlášení
- Just now
+ Právě teď
- {0} minutes ago
+ před {0} minutami
- Login confirmed
+ Přihlášení potvrzeno
- Login denied
+ Přihlášení zamítnuto
- Approve login requests
+ Schválit žádosti o přihlášeníUse this device to approve login requests made from other devices.
- Allow notifications
+ Povolit oznámeníReceive push notifications for new login requests
@@ -2371,37 +2371,37 @@ select Add TOTP to store the key safely
Confirm login attempt for {0}
- All notifications
+ Všechna oznámení
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
@@ -2455,12 +2455,12 @@ select Add TOTP to store the key safely
Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
- Accept
+ Potvrdit
- Decline
+ Zamítnout
- Login request has already expired.
+ Požadavek na přihlášení již vypršel.
diff --git a/src/App/Resources/AppResources.da.resx b/src/App/Resources/AppResources.da.resx
index c7d88ed3b..45694a463 100644
--- a/src/App/Resources/AppResources.da.resx
+++ b/src/App/Resources/AppResources.da.resx
@@ -232,7 +232,7 @@
Mappe opdateret.
- Gå til hjemmeside
+ Gå til webstedThe button text that allows user to launch the website to their web browser.
@@ -251,7 +251,7 @@
Title for the alert when internet connection is required to continue.
- Ugyldig hovedadgangskode. Prøv igen.
+ Ugyldig hovedadgangskode. Forsøg igen.Ugyldig pinkode. Prøv igen.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Element er blevet slettet.
+ Element slettetConfirmation message after successfully deleting a login.
@@ -364,7 +364,7 @@
Label for a uri/url.
- Lås op med dit fingeraftryk
+ Brug fingeraftryk til at låse opBrugernavn
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} er blevet kopieret.
+ {0} kopieretConfirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Vis
- Besøg vores hjemmeside
+ Besøg vores webstedBesøg vores hjemmeside for at få hjælp, nyheder, e-maile os og/eller få mere at vide om, hvordan du benytter Bitwarden.
@@ -471,7 +471,7 @@
Redigér element
- Aktivér automatisk synkronisering
+ Tillad automatisk synkroniseringAngiv din kontos e-mailadresse for at modtage dit hovedadgangskodetip.
@@ -587,11 +587,11 @@
Hovedadgangskode skal være på minimum 8 tegn.
- Minimum cifre
+ Mindste antal cifreMinimum numeric characters for password generator settings
- Minimum specialtegn
+ Mindste antal specialtegnMinimum special characters for password generator settings
@@ -604,7 +604,7 @@
Aldrig
- Nyt element oprettet.
+ Element tilføjetDer er ingen favoritter i din boks.
@@ -681,7 +681,7 @@
Elementinformation
- Element opdateret.
+ Element gemtIndsender...
@@ -695,7 +695,7 @@
Synkronisering fuldført.
- Synkronisering mislykkedes.
+ Synkronisering mislykkedesSynkronisér boks nu
@@ -708,7 +708,7 @@
To-trins login
- To-trins login øger din kontosikkerhed, ved at kræve at du verificerer dit login med en anden enhed, såsom en sikkerhedsnøgle, autentificerings app, SMS, telefonopkald eller e-mail. To-trins login kan aktiveres i bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?
+ To-trins login gør din konto mere sikker ved at kræve, at du verificerer dit login med en anden enhed, såsom en sikkerhedsnøgle, autentificeringsapp, SMS, telefonopkald eller e-mail. To-trins login kan aktiveres i bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?Lås op med {0}
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Autentificerings app
+ Autentificerings-appFor 2FA
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Denne konto har to-trins login aktiveret, men ingen af de konfigurerede to-trins-udbydere understøttes på denne enhed. Du skal bruge en understøttet enhed og/eller tilføje ekstra udbydere, der understøttes bedre på tværs af enheder (såsom en autentificeringsapp).
+ Denne konto har to-trins login aktiveret, men ingen af de konfigurerede to-trins-udbydere understøttes på denne enhed. Brug venligst en understøttet enhed og/eller tilføj yderligere udbydere, der bedre understøttes på tværs af enheder (såsom en autentificeringsapp).Gendannelseskode
@@ -1017,7 +1017,7 @@ Skanning vil ske automatisk.
Login
- Sikret notat
+ Sikkert notatAdresse 1
@@ -1553,7 +1553,7 @@ Skanning vil ske automatisk.
Standard mørkt tema
- Vælg det mørke tema, der skal bruges, når Standard (system) temaet bruges, mens din enheds mørke tilstand er aktiveret.
+ Vælg det mørke tema, der skal bruges, når Standard (System) temaet bruges, mens din enheds mørke tilstand er aktiveret.Kopiér notat
@@ -1625,7 +1625,7 @@ Skanning vil ske automatisk.
Benyt biometri til oplåsning
- Bitwarden har brug for din opmærksomhed - se "Autoudfyld hjælpefunktion" i Bitwarden-indstillinger
+ Bitwarden har brug for opmærksomhed - se "Autoudfyld hjælpefunktion" i Bitwarden-indstillinger3. På Android-appindstillinger for Bitwarden, gå til indstillingen "Vis oven på andre apps" (under Avanceret) og tryk på knappen for at aktivere overlejringsunderstøttelse.
@@ -1722,7 +1722,7 @@ Skanning vil ske automatisk.
Message shown when interacting with the server
- Element er gendannet.
+ Element gendannetConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Skanning vil ske automatisk.
Biometrisk oplåsning til autoudfyldning deaktiveret - afventer verifikation af hovedadgangskoden.
- Aktivér synk ved opfriskning
+ Tillad synk ved opfriskningSynkronisering af boks med træk nedad-gestus.
@@ -1848,7 +1848,7 @@ Skanning vil ske automatisk.
Brug "Tegn over"
- Når aktiveret, tillades Bitwarden-tilgængelighedstjenesten at vise en popup, når login-felter vælges.
+ Tillader Bitwarden-tilgængelighedstjenesten at vise en popup, når login-felter vælges.Hvis aktiveret, vil Bitwarden-tilgængelighedstjenesten vise en popup, når login-felter vælges for at hjælpe med autoudfyldning af logins.
@@ -2002,7 +2002,7 @@ Skanning vil ske automatisk.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Tilføj Send
+ Ny Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2010,15 @@ Skanning vil ske automatisk.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send er blevet slettet.
+ Send slettet'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send opdateret.
+ Send gemt'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Ny Send oprettet.
+ Send oprettet'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2383,7 +2383,7 @@ vælg Tilføj TOTP for at gemme nøglen sikkert
Brugernavnstype
- Plus adresseret e-mail
+ Plus-adresseret e-mailFang-alle e-mail
diff --git a/src/App/Resources/AppResources.de.resx b/src/App/Resources/AppResources.de.resx
index 6b79cff4b..cf3921229 100644
--- a/src/App/Resources/AppResources.de.resx
+++ b/src/App/Resources/AppResources.de.resx
@@ -229,7 +229,7 @@
Ordner
- Ordner wurde aktualisiert.
+ Ordner wurde aktualisiertWebseite besuchen
@@ -251,7 +251,7 @@
Title for the alert when internet connection is required to continue.
- Ungültiges Masterpasswort. Bitte erneut versuchen.
+ Ungültiges Master-Passwort. Bitte erneut versuchen.Ungültiger PIN. Bitte erneut versuchen.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Eintrag wurde gelöscht.
+ Eintrag wurde gelöschtConfirmation message after successfully deleting a login.
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} wurde kopiert.
+ {0} wurde kopiertConfirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Ansicht
- Besuche unsere Website
+ Besuchen Sie unsere WebsiteBesuche unsere Webseite um Hilfe zu erhalten, Neuigkeiten zu erfahren, Kontakt aufzunehmen und mehr über die Verwendung von Bitwarden zu lernen.
@@ -431,7 +431,7 @@
Bitwarden App Erweiterung
- Die einfachste Möglichkeit, neue Anmeldedaten zu deinemTresor hinzuzufügen, ist die Bitwarden App Erweiterung. Erfahre mehr über die Bitwarden App Erweiterung, indem du zu den "Einstellungen" wechselst.
+ Die einfachste Möglichkeit, neue Anmeldedaten zu Ihrem Tresor hinzuzufügen, ist die Bitwarden App Erweiterung. Erfahren Sie mehr über die Bitwarden App Erweiterung, indem Sie zu dem "Einstellungen"-Bildschirm navigieren.Nutze Bitwarden in Safari und anderen Apps, um Zugangsdaten automatisch einzufügen.
@@ -578,7 +578,7 @@
Das Master-Passwort wird verwendet, um den Tresor zu öffnen. Es ist sehr wichtig, dass du das Passwort nicht vergisst, da es keine Möglichkeit gibt es zurückzusetzen.
- Masterpassworthinweis (optional)
+ Master-Passwort-Hinweis (optional)Ein Hinweis auf dein Master-Passwort kann dir helfen, dich an das Passwort zu erinnern, solltest du es vergessen.
@@ -604,7 +604,7 @@
Niemals
- Eintrag erstellt.
+ Eintrag erstelltEs befinden sich keine Favoriten in deinem Tresor.
@@ -632,7 +632,7 @@
Sonstige
- Passwort generiert.
+ Passwort generiertPasswortgenerator
@@ -660,7 +660,7 @@
Passwort neu generieren
- Masterpasswort wiederholen
+ Master-Passwort wiederholenTresor durchsuchen
@@ -681,7 +681,7 @@
Eintrags-Information
- Eintrag aktualisiert.
+ Eintrag aktualisiertWird übermittelt...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Synchronisierung abgeschlossen.
+ Synchronisierung abgeschlossen
- Synchronisierung fehlgeschlagen.
+ Synchronisierung fehlgeschlagenTresor jetzt synchronisieren
@@ -721,7 +721,7 @@
Message shown when interacting with the server
- Bestätigungscode
+ Verifizierungscode Eintrag anzeigen
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Dieses Konto hat eine aktive Zwei-Faktor Authentifizierung, allerdings wird keiner der konfigurierten Zwei-Faktor Anbieter von diesem Gerät unterstützt. Bitte nutze ein unterstütztes Gerät und / oder füge zusätzliche Anbieter hinzu, die von mehr Geräten unterstützt werden (wie eine Authentifizierungs-App).
+ Dieses Konto hat eine aktive Zwei-Faktor Authentifizierung, allerdings wird keiner der konfigurierten Zwei-Faktor Anbieter von diesem Gerät unterstützt. Bitte nutzen Sie ein unterstütztes Gerät und / oder fügen Sie zusätzliche Anbieter hinzu, die von mehr Geräten unterstützt werden (wie eine Authentifizierungs-App).Wiederherstellungscode
@@ -856,7 +856,7 @@
For 2FA
- Bestätigungsmail wurde gesendet.
+ Bestätigungsmail wurde gesendetFor 2FA
@@ -890,7 +890,7 @@
Authentifizierungsschlüssel (TOTP)
- Bestätigungscode (TOTP)
+ Verifizierungscode (TOTP)Totp code label
@@ -1443,7 +1443,7 @@ Das Scannen erfolgt automatisch.
Passphrase
- Trennzeichen
+ WorttrennzeichenLeeren
@@ -1616,7 +1616,7 @@ Das Scannen erfolgt automatisch.
Deine Sitzung ist abgelaufen.
- Biometrische Verifizierung
+ Biometrische Daten zur Verifizierung nutzen.Biometrie
@@ -1625,7 +1625,7 @@ Das Scannen erfolgt automatisch.
Biometrische Daten zum Entsperren verwenden
- Bitwarden braucht Aufmerksamkeit - Siehe "Auto-Ausfüllen-Bedienungshilfe" in den Bitwarden-Einstellungen
+ Bitwarden braucht Aufmerksamkeit - Siehe "Auto-Fill-Bedienungshilfe" in den Bitwarden-Einstellungen3. Gehe unter Android in den App-Einstellungen für Bitwarden zur Option "Über anderen Apps einblenden" (unter Erweitert) und tippe auf den Schalter, um die Overlay-Unterstützung zu aktivieren.
@@ -1700,7 +1700,7 @@ Das Scannen erfolgt automatisch.
Anhang erfolgreich gespeichert
- Bitte aktiviere "Auto-Ausfüllen-Bedienungshilfe" in den Bitwarden-Einstellungen, um die Auto-Ausfüllen-Kachel zu verwenden.
+ Bitte aktivieren Sie "Auto-Fill-Bedienungshilfe" in den Bitwarden-Einstellungen, um die Auto-Fill-Kachel zu verwenden.Keine Passwortfelder erkannt
@@ -1722,7 +1722,7 @@ Das Scannen erfolgt automatisch.
Message shown when interacting with the server
- Eintrag wurde wiederhergestellt.
+ Eintrag wurde wiederhergestelltConfirmation message after successfully restoring a soft-deleted item
@@ -1972,7 +1972,7 @@ Das Scannen erfolgt automatisch.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Dieses Send deaktivieren, damit niemand darauf zugreifen kann.
+ Dieses Send deaktivieren, damit niemand darauf zugreifen kann'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2010,15 @@ Das Scannen erfolgt automatisch.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send wurde gelöscht.
+ Send wurde gelöscht'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send aktualisiert.
+ Send aktualisiert'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Neues Send erstellt.
+ Neues Send erstellt'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2040,7 +2040,7 @@ Das Scannen erfolgt automatisch.
Benutzerdefiniert
- Dieses Send beim Speichern teilen.
+ Dieses Send beim Speichern teilen'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2052,7 +2052,7 @@ Das Scannen erfolgt automatisch.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Meine E-Mail-Adresse vor den Empfängern verstecken.
+ Meine E-Mail-Adresse vor den Empfängern versteckenEine oder mehrere Organisationsrichtlinien beeinflussen deine Send Einstellungen.
@@ -2178,10 +2178,10 @@ Das Scannen erfolgt automatisch.
Löschen deines Kontos
- Dein Konto wurde unwiderruflich gelöscht.
+ Dein Konto wurde unwiderruflich gelöscht
- Ungültiger Bestätigungscode.
+ Ungültiger VerifizierungscodeEinmalpasswort anfordern
diff --git a/src/App/Resources/AppResources.el.resx b/src/App/Resources/AppResources.el.resx
index ee3b69583..029b5003b 100644
--- a/src/App/Resources/AppResources.el.resx
+++ b/src/App/Resources/AppResources.el.resx
@@ -289,7 +289,7 @@
Θα θέλατε να το αλλάξετε τώρα?
- Κύριος Κωδικός
+ Κύριος κωδικόςLabel for a master password.
@@ -1610,7 +1610,7 @@
Κοινοποιήθηκε
- Εναλλαγή Ορατότητας
+ Εναλλαγή ορατότηταςΗ περίοδος σύνδεσης σας έχει λήξει.
diff --git a/src/App/Resources/AppResources.en-GB.resx b/src/App/Resources/AppResources.en-GB.resx
index 8e11ab206..307dd0f8f 100644
--- a/src/App/Resources/AppResources.en-GB.resx
+++ b/src/App/Resources/AppResources.en-GB.resx
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- Auto-fill activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use auto-fill.
diff --git a/src/App/Resources/AppResources.en-IN.resx b/src/App/Resources/AppResources.en-IN.resx
index 219eab1fb..46c5174dc 100644
--- a/src/App/Resources/AppResources.en-IN.resx
+++ b/src/App/Resources/AppResources.en-IN.resx
@@ -276,13 +276,13 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -1080,7 +1080,7 @@ Scanning will happen automatically.
Last name
- Full Name
+ Full nameLicence number
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Copy notes
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -2090,37 +2090,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2129,7 +2129,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2138,7 +2138,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2147,16 +2147,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2165,13 +2165,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2195,13 +2195,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2216,7 +2216,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2249,7 +2249,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2264,7 +2264,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2279,7 +2279,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2294,10 +2294,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2325,7 +2325,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2388,34 +2388,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2433,13 +2433,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.es.resx b/src/App/Resources/AppResources.es.resx
index dc9c153b0..14a88cc67 100644
--- a/src/App/Resources/AppResources.es.resx
+++ b/src/App/Resources/AppResources.es.resx
@@ -251,7 +251,7 @@
Title for the alert when internet connection is required to continue.
- Contraseña maestra no válida. Prueba de nuevo.
+ Contraseña maestra no válida. Inténtelo de nuevo.PIN no válido. Prueba de nuevo.
@@ -471,7 +471,7 @@
Editar elemento
- Habilitar sincronizacion automatica
+ Habilitar sincronización automáticaIntroduce el correo electrónico de tu cuenta para recibir la pista de tu contraseña maestra.
@@ -987,7 +987,7 @@ El escaneo se realizará automáticamente.
URL del servidor
- URL del servidor de la caja fuerte web
+ URL del servidor de la bóveda webPulsa en esta notificación para ver las entradas de tu caja fuerte.
@@ -2450,7 +2450,7 @@ seleccione Agregar TOTP para almacenar la clave de forma segura
Aleatorio
- Accessibility Service Disclosure
+ Revelación del servicio de accesibilidadBitwarden utiliza el Servicio de Accesibilidad para buscar campos de inicio de sesión en aplicaciones y sitios web, establecer los identificadores de campo apropiados para introducir un nombre de usuario y contraseña cuando se encuentre una coincidencia para la aplicación o el sitio. No almacenamos ninguna de las informaciones presentadas por el servicio, tampoco intentamos controlar ningún elemento en pantalla más allá de la introducción de credenciales de texto.
diff --git a/src/App/Resources/AppResources.et.resx b/src/App/Resources/AppResources.et.resx
index 6c9c1b737..90e1ddced 100644
--- a/src/App/Resources/AppResources.et.resx
+++ b/src/App/Resources/AppResources.et.resx
@@ -978,7 +978,7 @@ Skaneerimine toimub automaatselt.
"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Enda majutatud keskkondSisesta baas URL, kus sinu või ettevõtte majutatud Bitwarden asub.
@@ -1610,7 +1610,7 @@ Skaneerimine toimub automaatselt.
Jagatud
- Toggle Visiblity
+ Näita sisuSessioon on aegunud.
diff --git a/src/App/Resources/AppResources.eu.resx b/src/App/Resources/AppResources.eu.resx
index f56eaabfd..3b6aa5b39 100644
--- a/src/App/Resources/AppResources.eu.resx
+++ b/src/App/Resources/AppResources.eu.resx
@@ -918,7 +918,7 @@
Saio hasiera batek autentifikazio-gakoa badu, TOTP egiaztatze-kodea arbelean automatikoki kopiatuko da saio hasiera bat auto-betetzean.
- Kopiatu TOTO automatikoki
+ Kopiatu TOTP automatikokiPremium bazkidetza beharrezkoa da ezaugarri hau erabiltzeko.
diff --git a/src/App/Resources/AppResources.fa.resx b/src/App/Resources/AppResources.fa.resx
index b325804ea..661053bd7 100644
--- a/src/App/Resources/AppResources.fa.resx
+++ b/src/App/Resources/AppResources.fa.resx
@@ -156,7 +156,7 @@
The button text that allows a user to copy the login's password to their clipboard.
- رونوشت نام کاربری
+ کپی نام کاربریThe button text that allows a user to copy the login's username to their clipboard.
@@ -190,7 +190,7 @@
Full label for a email address.
- به ما رایانامه بزنید
+ ایمیل مابرای کمک گرفتن و گذاشتن بازخورد بصورت مستقیم به ما رایانامه ارسال کنید.
@@ -379,10 +379,10 @@
Confirmation message after suceessfully copying a value to the clipboard.
- تایید اثر انگشت
+ تأیید اثر انگشت
- تایید کلمه عبور اصلی
+ تأیید کلمه عبور اصلیتایید پین
@@ -394,7 +394,7 @@
مشاهده
- از وبسایت ما دیدن کنید
+ از وب سایت ما دیدن کنیدبرای کمک گرفتن، اخبار، رایانامه ما، و یا آموزش بیشتر برای استفاده از Bitwarden از وب سایت ما دیدن کنید.
@@ -425,7 +425,7 @@
سرویس پر کردن خودکار
- از کاراکترهای مبهم اجتناب کن
+ از کاراکترهای مبهم اجتناب شودافزونه برنامه Bitwarden
@@ -635,7 +635,7 @@
کلمه عبور تولید شد.
- تولید کننده کلمه عبور
+ تولیدکننده کلمه عبورراهنمای کلمه عبور
diff --git a/src/App/Resources/AppResources.fi.resx b/src/App/Resources/AppResources.fi.resx
index 43e08e2f5..cb0fa7e99 100644
--- a/src/App/Resources/AppResources.fi.resx
+++ b/src/App/Resources/AppResources.fi.resx
@@ -219,7 +219,7 @@
Uusi kansio luotu.
- Kansio poistettu.
+ Kansio poistettiinEi kansiota
@@ -229,7 +229,7 @@
Kansiot
- Kansio päivitetty.
+ Kansio tallennettiinAvaa sivusto
@@ -308,7 +308,7 @@
Label for an entity name.
- En
+ EiMerkinnät
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Kohde poistettu.
+ Kohde poistettiinConfirmation message after successfully deleting a login.
@@ -364,7 +364,7 @@
Label for a uri/url.
- Avaa lukitus sormenjäljellä
+ Avaa sormenjäljelläKäyttäjätunnus
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} kopioitu.
+ {0} kopioitiinConfirmation message after suceessfully copying a value to the clipboard.
@@ -397,7 +397,7 @@
Käy sivustollamme
- Käy sivustollamme, jossa voit saada apua Bitwardenin käyttämisessä, lukea palvelun uutisia tai lähettää meille sähköpostia.
+ Käy sivustollamme saadaksesi apua, uutisia, lähettääksesi meille sähköpostia ja/tai saadaksesi lisätietoa Bitwardenin käytöstä.SIvusto
@@ -431,7 +431,7 @@
Bitwardenin sovelluslaajennus
- Helpoin tapa lisätä holviisi uusia kirjautumistietoja on käyttää Bitwardenin sovelluslaajennusta. Asetusten "Lisäasetukset" -osiosta löydät lisätietoja laajennuksesta.
+ Helpoin tapa lisätä holviisi uusia kirjautumistietoja on käyttää Bitwardenin sovelluslaajennusta. "Asetukset" -osiosta löydät lisätietoja laajennuksen käytöstä.Käytä Bitwardenia kirjautumistietojesi automaattiseen täyttöön Safarissa ja muissa sovelluksissa.
@@ -440,7 +440,7 @@
Bitwardenin automaattisen täytön palvelu
- Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojesi automaattiseen täyttöön.
+ Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön.Vaihda sähköpostiosoite
@@ -477,13 +477,13 @@
Syötä tilisi sähköpostiosoite saadaksesi pääsalasanan vihjeen.
- Ota sovelluslaajennus uudelleen käyttöön
+ Aktivoi sovelluslaajennus uudelleenMelkein valmis!
- Käytä sovelluslaajennusta
+ Aktivoi sovelluslaajennusLöydät Bitwardenin Safarista jakokuvaketta käyttäen (vihje: vieritä valikon alimmaista riviä oikealle).
@@ -505,7 +505,7 @@
Avaa laajennus napauttamalla valikon Bitwarden-kuvaketta.
- Ottaaksesi Bitwardenin käyttöön Safarissa ja muissa sovelluksissa, napauta valikon alariviltä "Lisää" -kuvaketta.
+ Ottaaksesi Bitwardenin käyttöön Safarissa ja muissa sovelluksissa, paina valikon alarivin "Lisää" -kuvaketta.Suosikki
@@ -566,7 +566,7 @@
Message shown when interacting with the server
- Kirjaudu sisään tai luo uusi tili päästäksesi salattuun holviisi.
+ Kirjaudu tai luo uusi tili käyttääksesi salattua holviasi.Hallinta
@@ -604,7 +604,7 @@
Ei koskaan
- Uusi kohde luotu.
+ Kohde lisättiinHolvissasi ei ole suosikkeja.
@@ -632,7 +632,7 @@
Muut
- Salasana generoitu.
+ Salasana luotiinSalasanageneraattori
@@ -647,7 +647,7 @@
Haluatko varmasti korvata nykyisen salasanan?
- Bitwarden pitää holvisi automaattisesti synkronoituna push-ilmoitusten avulla. Parhaan mahdollisen kokemuksen takaamiseksi, valitse "Salli", kun sinua pyydetään ottamaan ilmoitukset käyttöön seuraavassa kehotteessa.
+ Bitwarden pitää holvisi automaattisesti synkronoituna push-ilmoitusten avulla. Parhaan mahdollisen kokemuksen takaamiseksi, valitse "Salli", kun sinua pyydetään ottamaan ilmoitukset käyttöön.Push notifications for apple products
@@ -663,7 +663,7 @@
Syötä pääsalasana uudelleen
- Hae holvista
+ Etsi holvistaSuojaus
@@ -681,7 +681,7 @@
Kohteen tiedot
- Kohde päivitetty.
+ Kohde tallennettiinKäsitellään…
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Synkronointi on valmis.
+ Synkronointi suoritettiin
- Synkronointi epäonnistui.
+ Synkronointi epäonnistuiSynkronoi holvi nyt
@@ -708,7 +708,7 @@
Kaksivaiheinen kirjautuminen
- Kaksivaiheinen kirjautuminen tekee tilistäsi turvallisemman edellyttämällä salasanan lisäksi kirjautumisen lisätodennusta todennuslaitteen, ‑sovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvissa. Haluatko käydä sivustolla nyt?
+ Kaksivaiheinen kirjautuminen tekee tilistäsi turvallisemman edellyttämällä salasanan lisäksi kirjautumisen lisätodennusta todennuslaitteen, ‑sovelluksen, tekstiviestin, puhelun tai sähköpostin avulla. Voit ottaa kaksivaiheisen kirjautumisen käyttöön bitwarden.com‑verkkoholvista. Haluatko avata sivuston nyt?Avaustapa: {0}
@@ -769,7 +769,7 @@
2. Laita asetus päälle ja paina OK-painiketta hyväksyäksesi.
- Ei käytössä
+ Poistettu käytöstäKäytössä
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Tilillä on käytössä kaksivaiheinen kirjautuminen, mutta tämä laite ei tue käytettävissä olevia todentajia. Käytä yhteensopivaa laitetta ja lisää/tai ota käyttöön laajemmin tuettuja todentajia (kuten todennussovellus).
+ Tilillä on käytössä kaksivaiheinen kirjautuminen, mutta tämä laite ei tue käytettävissä olevia todentajia. Käytä yhteensopivaa laitetta ja/tai lisää eri alustoija laajemmin tukevia todentajia (kuten todennussovellus).Palautuskoodi
@@ -856,11 +856,11 @@
For 2FA
- Todennussähköposti lähetetty.
+ Todennussähköposti lähetettiinFor 2FA
- Aseta YubiKey NEO -todenuslaite laitettasi vasten tai kytke YubiKey-todennuslaite laitteesi USB-porttiin ja paina sen painiketta.
+ Jatka asettamalla YubiKey NEO -todenuslaite laitteen takapuolta vasten tai kytke YubiKey-todennuslaite laitteen USB-porttiin ja paina sen painiketta.YubiKey-todennuslaite
@@ -928,7 +928,7 @@ Koodi luetaan automaattisesti.
Tiedostoliite lisätty
- Tiedostoliite poistettu
+ Tiedostoliite poistettiinValitse tiedosto
@@ -946,7 +946,7 @@ Koodi luetaan automaattisesti.
Tiedoston lähde
- Toiminto ei ole käytettävissä
+ Ominaisuus ei ole käytettävissäTiedoston enimmäiskoko on 100 MB.
@@ -967,7 +967,7 @@ Koodi luetaan automaattisesti.
Edistyneille käyttäjille. Voit määrittää jokaiselle palvelulle oman pääverkkotunnuksen.
- Palvelinten URL-osoitteet tallennettu.
+ Palvelinympäristön URL-osoitteet tallennettiin.{0} on muotoiltu virheellisesti.
@@ -1092,7 +1092,7 @@ Koodi luetaan automaattisesti.
Toukokuu
- Välinimi
+ Toinen nimiHra
@@ -1204,7 +1204,7 @@ Koodi luetaan automaattisesti.
Totuusarvo
- Piilotettu teksti
+ PiilotettuLinkitetty
@@ -1256,7 +1256,7 @@ Koodi luetaan automaattisesti.
URI match detection for auto-fill.
- Kyllä ja tallenna
+ Kyllä, ja tallennaTäytä automaattisesti ja tallenna
@@ -1272,13 +1272,13 @@ Koodi luetaan automaattisesti.
Yritä uudelleen
- Jatkaaksesi, pidä YubiKey NEO -todenuslaitettasi laitteen takaosaa vasten.
+ Jatka pitämällä YubiKey NEO -todenuslaitetta laitteen takapuolta vasten.Esteettömyyspalvelu voi olla hyödyllinen sellaisten sovellusten kanssa, jotka eivät tue tavallista automaattisen täytön palvelua.
- Salasana päivitetty
+ Salasana vaihdettiinex. Date this password was updated
@@ -1286,7 +1286,7 @@ Koodi luetaan automaattisesti.
ex. Date this item was updated
- Automaattinen täyttö on otettu käyttöön!
+ Automaattinen täyttö on aktivoitu!Sinun on kirjauduttava Bitwardenin pääsovellukseen ennen kuin voit käyttää automaattista täyttöä.
@@ -1381,10 +1381,10 @@ Koodi luetaan automaattisesti.
Hae kokoelmasta
- Hae tiedosto-Sendeistä
+ Etsi tiedosto-Sendeistä
- Hae teksti-Sendeistä
+ Etsi teksti-SendeistäHae - {0}
@@ -1416,7 +1416,7 @@ Koodi luetaan automaattisesti.
ex: Item moved to Organization.
- Kohde jaettu.
+ Kohde on jaettu.Valitse ainakin yksi kokoelma.
@@ -1489,17 +1489,17 @@ Koodi luetaan automaattisesti.
Aseta PIN-koodi Bitwardenin avaukselle. PIN-asetukset tyhjentyvät, jos kirjaudut kokonaan ulos sovelluksesta.
- Kirjautunut tunnuksella {0} palveluun {1}.
+ Kirjautui tunnuksella {0} palvelimelle {1}.ex: Logged in as user@example.com on bitwarden.com.
- Holvisi on lukittu. Syötä pääsalasana jatkaaksesi.
+ Holvi on lukittu. Jatka vahvistamalla pääsalasanasi.
- Holvisi on lukittu. Vahvista PIN-koodisi jatkaaksesi.
+ Holvi on lukittu. Jatka vahvistamalla PIN-koodisi.
- Holvisi on lukittu. Vahvista henkilöllisyytesi jatkaaksesi.
+ Holvi on lukittu. Jatka vahvistamalla henkilöllisyytesi.Tumma
@@ -1591,7 +1591,7 @@ Koodi luetaan automaattisesti.
Kun sovellus käynnistetään uudelleen
- Automaattinen täyttö tekee Bitwarden-holvisi käytöstä sivustoilla ja muissa sovelluksissa helppoa. Näyttää siltä, ettei automaattista täyttöä ole otettu käyttöön. Voit tehdä sen "Asetukset" -ruudusta.
+ Automaattinen täyttö tekee Bitwarden-holvisi käytöstä sivustoilla ja muissa sovelluksissa helppoa. Näyttää siltä, ettei Bitwardenille ole määritetty automaattisen täytön palvelua. Määritys onnistuu "Asetukset" -ruudusta.Teema vaihtuu kun sovellus käynnistetään uudelleen.
@@ -1625,10 +1625,10 @@ Koodi luetaan automaattisesti.
Avaa biometrialla
- Bitwarden vaatii huomiota - Katso "Automaattisen täytön esteettömyyspalvelu" Bitwardenin asetuksissa
+ Bitwarden vaatii huomiota - Katso Bitwardenin asetuksista "Automaattisen täytön esteettömyyspalvelu"
- 3. Androidin sovellusasetuksissa, Bitwardenin ruudulla, siirry "Näkyminen muiden päällä" -asetukseen (lisäasetusten alla) ja ota ominaisuus käyttöön napauttamalla kytkintä.
+ 3. Siirry Android-sovellusasetuksien Bitwarden-ruudulta "Näkyminen muiden päällä" -asetukseen (lisäasetusten alla) ja ota ominaisuus kytkinvalinnasta käyttöön.Käyttöoikeus
@@ -1637,7 +1637,7 @@ Koodi luetaan automaattisesti.
Avaa "Näkyminen muiden päällä" -käyttöoikeusasetukset
- 3. Androidin sovellusasetuksissa, Bitwardenin ruudulla, siirry "Näkyminen muiden päällä" -asetukseen (lisäasetusten alla) ja ota ominaisuus käyttöön napauttamalla kytkintä.
+ 3. Androidin sovellusasetuksissa, Bitwardenin ruudulla, siirry "Näkyminen muiden päällä" -asetukseen (lisäasetusten alla) ja ota ominaisuus käyttöön kytkinvalinnasta.Hylätty
@@ -1655,10 +1655,10 @@ Koodi luetaan automaattisesti.
Lähetä todennuskoodi sähköpostiisi
- Koodi lähetetty
+ Koodi lähetettiin!
- Vahvista henkilöllisyytesi jatkaaksesi.
+ Jatka vahvistamalla henkilöllisyytesi.Tämä vienti sisältää holvisi tiedot salaamattomassa muodossa. Sinun ei tulisi säilyttää tai lähettää vietyä tiedostoa suojaamattomien kanavien (kuten sähköpostin) välityksellä. Poista se välittömästi kun sille ei enää ole käyttöä.
@@ -1722,7 +1722,7 @@ Koodi luetaan automaattisesti.
Message shown when interacting with the server
- Kohde palautettu.
+ Kohde palautettiinConfirmation message after successfully restoring a soft-deleted item
@@ -1809,16 +1809,16 @@ Koodi luetaan automaattisesti.
Aktivoimalla tämän valinnan hyväksyt seuraavat:
- Käyttöehtoja ja tietosuojakäytäntöä ei ole vahvistettu.
+ Palveluehtoja ja tietosuojakäytäntöä ei ole vahvistettu.
- Käyttöehdot
+ PalveluehdotTietosuojakäytäntö
- Bitwarden tarvitsee huomiota - Katso "Näkyminen muiden päällä" Bitwardenin asetusten kohdasta "Automaattisen täytön palvelut"
+ Bitwarden edellyttää toimenpiteitä - Kytke "Näkyminen muiden päällä" -asetus käyttöön Bitwardenin asetusten kohdasta "Automaattisen täytön palvelut"Automaattisen täytön palvelut
@@ -1827,16 +1827,16 @@ Koodi luetaan automaattisesti.
Tekstinsisäinen täyttö
- Käytä tekstinsisäistä automaattista täyttöä, jos käyttämäsi IME (näppäimistö) tukee sitä. Jos käyttämäsi alusta ei ole tuettu (tai tämä valinta ei ole käytössä), käytetään normaalia automaattisen täytön pikavalintapalkkia.
+ Käytä tekstinsisäistä automaattista täyttöä, jos käyttämäsi IME (näppäimistö) tukee sitä. Jos käyttämiääsi alustaa ei tueta (tai valinta on poistettu käytöstä), käytetään normaalia automaattisen täytön pikavalintapalkkia.Esteettömyyspalvelu
- Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkossa. Kun tämä on käytössä, näytetään aktiivisten kirjautumiskenttien ohessa pikavalintapalkki.
+ Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkkosivustoilla. Kun määritetty, näytetään aktiivisten kirjautumiskenttien ohessa pikavalintapalkki.
- Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkossa (myös "Näkyminen muiden päällä" -asetuksen on oltava käytössä).
+ Käytä Bitwardenin esteettömyyspalvelua kirjautumistietojen automaattiseen täyttöön sovelluksissa ja verkkosivustoilla (myös "Näkyminen muiden päällä" -asetuksen on oltava käytössä).Käytä Bitwardenin esteettömyyspalvelua käyttääksesi Automaattisen täytön pikavalintapalkkia ja/tai näytä palkki käyttäen "Näkyminen muiden päällä" -asetusta.
@@ -1848,16 +1848,16 @@ Koodi luetaan automaattisesti.
Näkyminen muiden päällä
- Kun käytössä, sallii Bitwardenin esteettömyyspalvelun näyttää pikavalintapalkki aktiivisten kirjautumiskenttien ohessa.
+ Sallii Bitwardenin esteettömyyspalvelun näyttää pikavalintapalkin aktiivisten kirjautumiskenttien ohessa.
- Kun käytössä, Bitwardenin esteettömyyspalvelu näyttää aktiivisten kirjautumiskenttien ohessa pikavalintapalkin helpottaakseen kirjautumistietojesi automaattista täyttöä.
+ Kun käytössä, Bitwardenin esteettömyyspalvelu näyttää aktiivisten kirjautumiskenttien ohessa pikavalintapalkin helpottaakseen kirjautumistietojen automaattista täyttöä.Jos käytössä, esteettömyyspalvelu näyttää pikavalintapalkin laajentaakseen automaattisen täytön palvelun toiminnan kattamaan myös vanhemmat sovellukset, jotka eivät tue Android Autofill Framework -rajapintaa.
- Yrityksen asettaman käytännön johdosta kohteiden tallennus omaan holviisi ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista.
+ Yrityksen asettaman käytännön johdosta kohteiden tallennus henkilökohtaiseen holviin ei ole mahdollista. Muuta omistusasetus organisaatiolle ja valitse käytettävissä olevista kokoelmista.Organisaatiokäytäntö vaikuttaa omistajuusvalintoihisi.
@@ -1901,13 +1901,13 @@ Koodi luetaan automaattisesti.
Tiedostotyyppi on valittu.
- Tiedostotyyppiä ei ole valittu, valitse napauttamalla.
+ Tiedostotyyppiä ei ole valittu. Valitse napauttamalla.Tekstityyppi on valittu.
- Tekstityyppiä ei ole valittu, valitse napauttamalla.
+ Tekstityyppiä ei ole valittu. Valitse napauttamalla.Poistoajankohta
@@ -1923,7 +1923,7 @@ Koodi luetaan automaattisesti.
Odottaa poistoa
- Erääntymisajankohta
+ ErääntymispäiväErääntymisaika
@@ -1943,10 +1943,10 @@ Koodi luetaan automaattisesti.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Käyttökertojen enimmäismäärä saavutettu
+ Käyttökertojen enimmäismäärä on saavutettu
- Nykyinen käyttökertojen määrä
+ Käyttökertojen nykyinen määräUusi salasana
@@ -1965,7 +1965,7 @@ Koodi luetaan automaattisesti.
Poistetaan salasana
- Salasana on poistettu.
+ Salasana poistettiinYksityisiä merkintöjä tästä Sendistä.
@@ -2002,7 +2002,7 @@ Koodi luetaan automaattisesti.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Lisää Send
+ Uusi Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2010,15 @@ Koodi luetaan automaattisesti.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send on poistettu.
+ Send poistettiin'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send on päivitetty.
+ Send tallennettiin'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Uusi Send on luotu.
+ Send luotiin'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2073,7 +2073,7 @@ Koodi luetaan automaattisesti.
Pääsalasanan vahvistus
- Toiminto on suojattu. Jatkaaksesi, syötä pääsalasanasi uudelleen vahvistaaksesi henkilöllisyytesi.
+ Toiminto on suojattu. Jatka vahvistamalla henkilöllisyytesi syöttämällä pääsalasanasi uudelleen.Captcha-vahvistus vaaditaan
@@ -2082,16 +2082,16 @@ Koodi luetaan automaattisesti.
Captcha-vahvistus epäonnistui. Yritä uudelleen.
- Pääsalasana on päivitetty
+ Pääsalasana vaihdettiin
- Päivitä pääsalasana
+ Vaihda pääsalasana
- Organisaatiosi ylläpito on hiljattain vaihtanut pääsalasanasi. Käyttääksesi holvia, on sinun päivitettävä se nyt. Tämä uloskirjaa kaikki nykyiset istunnot pakottaen uudelleenkirjautumisen. Muiden laitteiden aktiiviset istunnot saattavat toimia vielä tunnin ajan.
+ Organisaatiosi ylläpito on hiljattain vaihtanut pääsalasanasi. Käyttääksesi holvia, sinun on vaihdettava se nyt. Tämä uloskirjaa kaikki nykyiset istunnot pakottaen uudelleenkirjautumisen. Muiden laitteiden aktiiviset istunnot saattavat toimia vielä tunnin ajan.
- Salasanaa päivitetään
+ Salasanaa vaihdetaanSalasanan päivitys ei tällä hetkellä onnistu
@@ -2100,7 +2100,7 @@ Koodi luetaan automaattisesti.
Poista pääsalasana
- {0} käyttää SSO:ta asiakkaan hallitsemalla salauksella. Jos jatkat, poistetaan tilitäsi pääsalasana ja jatkossa on käytettävä SSO-kirjautumista.
+ {0} käyttää SSO:ta asiakkaan hallitsemalla salauksella. Jos jatkat, tilisi pääsalasana poistetaan, jonka jälkeen on käytettävä SSO-kirjautumista.Jollet halua poistaa pääsalasanaasi, voit poistua tästä organisaatiosta.
@@ -2115,7 +2115,7 @@ Koodi luetaan automaattisesti.
FIDO2 WebAuthn
- Jatkaaksesi, pidä FIDO2 WebAuthn -todennuslaitteesi valmiina ja seuraa ohjeita napautettuasi seuraavasta näytöstä 'WebAuthn-todennus'.
+ Jatka valmistelemalla FIDO2 WebAuthn -todennuslaitteesi ja seuraa ohjeita valittuasi seuraavasta näytöstä "WebAuthn-todennus" -valinnan.FIDO2 WebAuthn -tunnistautumisen voi todentaa ulkoisella todennuslaitteella.
@@ -2133,13 +2133,13 @@ Koodi luetaan automaattisesti.
Organisaatiolla on käytäntö, joka liittää tilisi automaattisesti salasanan palautusapuun. Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi.
- Organisaatiosi käytännöt vaikuttavat holvisi aikakatkaisuun. Suurin sallittu aika on {0} tunti(a) ja {1} minuutti(a)
+ Organisaatiokäytännöt vaikuttavat holvin aikakatkaisuun. Suurin sallittu aika on {0} tunti(a) ja {1} minuutti(a)Holvisi aikakatkaisu ylittää organisaatiosi asettamat rajoitukset.
- Yksi tai useampi organisaation käytäntö estää henkilökohtaisen holvisi viennin.
+ Yksi tai useampi organisaatiokäytäntö estää henkilökohtaisen holvisi viennin.Lisää tili
@@ -2157,7 +2157,7 @@ Koodi luetaan automaattisesti.
Vaihdettu seuraavaan käytettävissä olevaan tiliin
- Tili lukittu
+ Tili lukittiinTilin uloskirjaus onnistui
@@ -2181,7 +2181,7 @@ Koodi luetaan automaattisesti.
Tilisi on poistettu pysyvästi
- Virheellinen todennuskoodi.
+ Virheellinen todennuskoodiPyydä kertakäyttöinen salasana
@@ -2356,7 +2356,7 @@ turvallisesti valitsemalla "Lisää TOTP"
Hyväksy kirjautumispyyntöjä
- Hyväksy muilta laitteilta tehdyt kirjautumispyynnöt tältä laitteelta.
+ Hyväksy muiden laitteiden kirjautumispyyntöjä tällä laitteelta.Salli ilmoitukset
@@ -2368,7 +2368,7 @@ turvallisesti valitsemalla "Lisää TOTP"
Ei kiitos
- Vahvista käyttäjän {0} kirjautuminen
+ Vahvista kirjautuminen kohteessa {0}Kaikki ilmoitukset
@@ -2449,7 +2449,7 @@ turvallisesti valitsemalla "Lisää TOTP"
Satunnainen
- Esteettömyyspalvelun ilmoitus
+ Esteettömyyspalvelun kuvausBitwarden käyttää esteettömyyspalvelua kirjautumiskenttien etsintään sovelluksista ja verkkosivustoilta. Löydetyille kentille luodaan asianmukaiset tunnisteet tunnusten ja salasanojen syöttöön sopivan sovelluksen tai sivuston löytyessä. Mitään palvelun paljastamia tietoja ei tallenneta, eikä mitään näytöllä esitettäviä kohteita pyritä hallitsemaan kirjautumistietojen tekstinsyöttöä lukuun ottamatta.
diff --git a/src/App/Resources/AppResources.fil.resx b/src/App/Resources/AppResources.fil.resx
index 122a8cf63..3d792fc59 100644
--- a/src/App/Resources/AppResources.fil.resx
+++ b/src/App/Resources/AppResources.fil.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Copy Password
+ Copy passwordThe button text that allows a user to copy the login's password to their clipboard.
- Copy Username
+ Copy usernameThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,18 +179,18 @@
Edit
- Edit Folder
+ Edit folderEmailShort label for an email address.
- Email Address
+ Email addressFull label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -229,10 +229,10 @@
Folders
- Folder updated.
+ Folder saved
- Go To Website
+ Go to websiteThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,19 +276,19 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
- Master Password
+ Master passwordLabel for a master password.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- My Vault
+ My vaultThe title for the vault page.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Thank You
+ Thank youTools
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockUsername
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprint
- Verify Master Password
+ Verify master passwordVerify PIN
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -461,29 +461,29 @@
Continue
- Create Account
+ Create accountCreating account...Message shown when interacting with the server
- Edit Item
+ Edit item
- Enable Automatic Syncing
+ Allow automatic syncingEnter your account email address to receive your master password hint.
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -514,7 +514,7 @@
Fingerprint
- Generate Password
+ Generate passwordGet your master password hint
@@ -529,7 +529,7 @@
Quickly bulk import your items from other password management apps.
- Last Sync:
+ Last sync:Length
@@ -578,7 +578,7 @@
The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it.
- Master Password Hint (optional)
+ Master password hint (optional)A master password hint can help you remember your password if you forget it.
@@ -587,15 +587,15 @@
Master password must be at least 8 characters long.
- Minimum Numbers
+ Minimum numbersMinimum numeric characters for password generator settings
- Minimum Special
+ Minimum specialMinimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
Never
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -632,13 +632,13 @@
Other
- Password generated.
+ Password generated
- Password Generator
+ Password generator
- Password Hint
+ Password hintWe've sent you an email with your master password hint.
@@ -647,7 +647,7 @@
Are you sure you want to overwrite the current password?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -657,13 +657,13 @@
Please consider helping us out with a good review!
- Regenerate Password
+ Regenerate password
- Re-type Master Password
+ Re-type master password
- Search Vault
+ Search vaultSecurity
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsSearch
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,14 +827,14 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
- Recovery Code
+ Recovery codeFor 2FA
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileFile
@@ -946,7 +946,7 @@ Scanning will happen automatically.
File Source
- Feature Unavailable
+ Feature unavailableMaximum file size is 100 MB.
@@ -955,13 +955,13 @@ Scanning will happen automatically.
You cannot use this feature until you update your encryption key.
- Learn More
+ Learn more
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -974,11 +974,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted Bitwarden installation.
@@ -987,25 +987,25 @@ Scanning will happen automatically.
Server URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view items from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy number
- Copy Security Code
+ Copy security codeNumber
- Security Code
+ Security codeCard
@@ -1017,7 +1017,7 @@ Scanning will happen automatically.
Login
- Secure Note
+ Secure noteAddress 1
@@ -1038,7 +1038,7 @@ Scanning will happen automatically.
Brand
- Cardholder Name
+ Cardholder nameCity / Town
@@ -1056,16 +1056,16 @@ Scanning will happen automatically.
Dr
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearFebruary
- First Name
+ First nameJanuary
@@ -1077,13 +1077,13 @@ Scanning will happen automatically.
June
- Last Name
+ Last name
- Full Name
+ Full name
- License Number
+ License numberMarch
@@ -1092,7 +1092,7 @@ Scanning will happen automatically.
May
- Middle Name
+ Middle nameMr
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
October
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
September
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1337,10 +1337,10 @@ Scanning will happen automatically.
Logins
- Secure Notes
+ Secure notes
- All Items
+ All itemsURIs
@@ -1360,13 +1360,13 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameValue
- Password History
+ Password historyTypes
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1394,7 +1394,7 @@ Scanning will happen automatically.
Type
- Move Down
+ Move downMove Up
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteExit
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,13 +1764,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.fr.resx b/src/App/Resources/AppResources.fr.resx
index 860dcdd59..5cda83840 100644
--- a/src/App/Resources/AppResources.fr.resx
+++ b/src/App/Resources/AppResources.fr.resx
@@ -232,7 +232,7 @@
Dossier mis à jour.
- Visiter le site web
+ Accéder au site WebThe button text that allows user to launch the website to their web browser.
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} a été copié(e).
+ {0} a été copié.Confirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Voir
- Visiter notre site web
+ Visitez notre site webVisitez notre site web pour obtenir de l'aide, lire les actualités, nous écrire et/ou apprendre à mieux utiliser Bitwarden.
@@ -425,10 +425,10 @@
Service de remplissage automatique
- Éviter les caractères ambigus
+ Évitez les caractères ambigus
- Extension de l'application Bitwarden
+ Extension de l'application bitwardenLe meilleur moyen d'ajouter de nouveaux sites à votre coffre est d'utiliser l'extension de l'application Bitwarden. Parcourez le menu "Paramètres" pour en apprendre davantage.
@@ -468,7 +468,7 @@
Message shown when interacting with the server
- Modifier l'élément
+ Modifier l'ÉlémentActiver la synchronisation automatique
@@ -647,7 +647,7 @@
Êtes-vous sûr de vouloir écraser le mot de passe existant ?
- Bitwarden conserve automatiquement votre coffre synchronisé en utilisant des notifications push. Pour la meilleure expérience possible, veuillez choisir "Ok" sur la boîte de dialogue suivante (activation des notifications push).
+ bitwarden conserve automatiquement votre coffre synchronisé en utilisant des notifications push. Pour la meilleure expérience possible, veuillez choisir "Ok" sur la boîte de dialogue suivante (activation des notifications push).Push notifications for apple products
@@ -660,7 +660,7 @@
Regénérer un mot de passe
- Saisissez à nouveau le mot de passe maître
+ Saisir à nouveau le mot de passe maîtreRecherche dans le coffre
@@ -796,7 +796,7 @@
Êtes-vous sûr de vouloir remplir automatiquement cet élément ? Il ne correspond pas complètement à « {0} ».
- Aucun élément correspondant
+ Éléments correspondantsÉléments pouvant correspondre
@@ -827,11 +827,11 @@
For 2FA
- Connexion impossible
+ Identifiant non disponibleFor 2FA whenever there are no available providers on this device.
- Ce compte utilise l'identification en deux étapes, mais aucun des services d'authentification à double facteurs n'est supporté sur cet appareil. Veuillez utiliser un appareil compatible et/ou ajouter des services supplémentaires qui sont mieux supportés sur les appareils (comme une application d'authentification).
+ Ce compte utilise l'authentification à double facteurs, mais aucun des services d'authentification à double facteurs n'est supporté sur cet appareil. Veuillez utiliser un appareil compatible et/ou ajouter des services supplémentaires qui sont mieux supportés sur les appareils (comme une application d'authentification).Code de récupération
@@ -846,7 +846,7 @@
For 2FA
- Options d'identification en deux étapes
+ Options d'identification à double facteursUtiliser une autre méthode d'identification en deux étapes
@@ -1616,7 +1616,7 @@ La numérisation se fera automatiquement.
Votre session a expiré.
- Utilisez une empreinte biométrique pour vous authentifier.
+ Utiliser une empreinte biométrique pour vérifier.Empreintes biométriques
@@ -1628,7 +1628,7 @@ La numérisation se fera automatiquement.
Bitwarden requiert votre attention - Voir "Service d'accessibilité pour le remplissage automatique" dans les paramètres de Bitwarden
- 3. Dans l'application Paramètres d'Android, rendez-vous sur l'écran dédié à Bitwarden. Sélectionnez "Superposer aux autres applications" (sous "Avancé") et appuyez sur le bouton pour permettre la superposition.
+ 3. Sur l'écran des paramètres d'application Android pour Bitwarden, sélectionnez "Superposer aux autres applications" (sous "Avancé") et appuyez sur le bouton pour permettre la superposition.Permission
diff --git a/src/App/Resources/AppResources.he.resx b/src/App/Resources/AppResources.he.resx
index 68f438d40..ce0d08b9c 100644
--- a/src/App/Resources/AppResources.he.resx
+++ b/src/App/Resources/AppResources.he.resx
@@ -1382,10 +1382,10 @@ Scanning will happen automatically.
חפש אוסף
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1555,7 +1555,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.העתק פתק
@@ -2238,7 +2238,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2253,7 +2253,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2268,7 +2268,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2283,10 +2283,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2314,7 +2314,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2377,34 +2377,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2422,13 +2422,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.hi.resx b/src/App/Resources/AppResources.hi.resx
index 045192868..53a2fa5fa 100644
--- a/src/App/Resources/AppResources.hi.resx
+++ b/src/App/Resources/AppResources.hi.resx
@@ -276,13 +276,13 @@
क्या आप वाकई लॉग आउट करना चाहते हैं?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -857,7 +857,7 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FA
@@ -868,7 +868,7 @@
"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentअटॅचमेंट्स
@@ -888,7 +888,7 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)सत्यापन कोड (TOTP)
@@ -959,10 +959,10 @@ Scanning will happen automatically.
अधिक जानें
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -975,11 +975,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted bitwarden installation.
@@ -988,16 +988,16 @@ Scanning will happen automatically.
सर्वर URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view logins from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy numberसुरक्षा कोड कॉपी करें
@@ -1057,10 +1057,10 @@ Scanning will happen automatically.
डॉ
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearफरवरी
@@ -1081,7 +1081,7 @@ Scanning will happen automatically.
अंतिम नाम
- Full Name
+ Full nameलाइसेंस संख्या
@@ -1144,7 +1144,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with bitwarden
@@ -1199,7 +1199,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameबूलियन
@@ -1250,14 +1250,14 @@ Scanning will happen automatically.
इससे शुरू होता है
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1279,7 +1279,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1287,7 +1287,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1302,7 +1302,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1361,7 +1361,7 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameमूल्य
@@ -1382,10 +1382,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1438,13 +1438,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorस्पष्ट
@@ -1481,7 +1481,7 @@ Scanning will happen automatically.
अनलॉक
- Unlock Vault
+ Unlock vault30 मिनिट
@@ -1554,7 +1554,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.नोट कॉपी करें
@@ -1592,7 +1592,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1623,13 +1623,13 @@ Scanning will happen automatically.
बॉयोमेट्रिक्स
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.अनुमति
@@ -1656,7 +1656,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1671,7 +1671,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1701,7 +1701,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1723,7 +1723,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1753,7 +1753,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1765,13 +1765,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1820,7 +1820,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1829,37 +1829,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1912,10 +1912,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1925,10 +1925,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1938,7 +1938,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1948,17 +1948,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1974,7 +1974,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1986,10 +1986,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2004,7 +2004,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2012,15 +2012,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2078,37 +2078,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2117,7 +2117,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2126,7 +2126,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2135,16 +2135,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2153,13 +2153,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2183,13 +2183,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2204,7 +2204,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2237,7 +2237,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2252,7 +2252,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2267,7 +2267,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2282,10 +2282,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2313,7 +2313,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2376,34 +2376,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2421,13 +2421,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.hr.resx b/src/App/Resources/AppResources.hr.resx
index aada835b3..7846587f4 100644
--- a/src/App/Resources/AppResources.hr.resx
+++ b/src/App/Resources/AppResources.hr.resx
@@ -647,7 +647,7 @@
Sigurno želiš prebrisati trenutnu lozinku?
- Obzirom Bitwarden automatski sinkronizira tvoj trezor pomoću push obavijesti, za najbolje moguće iskustvo, u sljedećem upitu odobri Bitwardenu slanje push obavijesti.
+ bitwarden automatski sinkronizira vaš trezor pomoću push obavijesti. Za najbolji mogući doživljaj, molimo odaberite "Ok" u sljedećem upitu kada se zatraži da omogućite push obavijesti.Push notifications for apple products
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Kopiraj bilješke
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.hu.resx b/src/App/Resources/AppResources.hu.resx
index c5589cbab..e48f5fb84 100644
--- a/src/App/Resources/AppResources.hu.resx
+++ b/src/App/Resources/AppResources.hu.resx
@@ -186,11 +186,11 @@
Short label for an email address.
- E-mail cím
+ E-mail-címFull label for a email address.
- Küldj e-mailt nekünk
+ Írjon nekünkÍrjon nekünk E-mailt közvetlenül a segítség kéréshez vagy visszajelzés beküldéséhez.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Hiba jelentése
+ HibabejelentésNyiss egy Issuet a mi Gthub repositorynkban.
@@ -229,10 +229,10 @@
Mappák
- Mappa frissítve.
+ A mappa frissült.
- Menj a weboldalra
+ Weboldal megnyitásaThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet kapcsolat szükséges
+ Internetkapcsolat szükségesTitle for the alert when internet connection is required to continue.
- A mesterjelszó érvénytelen. Próbáljuk újra.
+ A mesterjelszó érvénytelen. Próbálkozz újra.A pinkód érvénytelen. Próbáljuk újra.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- Széfem
+ Saját széfThe title for the vault page.
@@ -353,7 +353,7 @@
The title for the sync page.
- Köszönjük
+ Köszönjük!Eszközök
@@ -382,7 +382,7 @@
Ujjlenyomat megerősítése
- Mester jelszó megerősítése
+ Mesterjelszó megerősítésePIN megerősítése
@@ -394,7 +394,7 @@
Megtekintés
- Látogasd meg a weboldalunkat
+ Weboldalunk megnyitásaA fejlesztői webhely felkeresése segítségért, hírekért, email küldése a fejlesztőknek és/vagy további információk a Bitwarden használatáról.
@@ -428,10 +428,10 @@
Félreérthető karakterek mellőzése
- Bitwarden alkalmazás bővítmény
+ Bitwarden alkalmazáskiegészítő
- A legkönnyebb módja új bejelentkezések széfbe helyezéséhez a Bitwarden alkalmazás kiegészítőből. További információ olvasható a Bitwarden alkalmazás kiegészítő használatáról a "Beállítások" képernyőn.
+ A Bitwarden alkalmazáskiegészítővel adhatsz hozzá a legegyszerűbben új bejelentkezéseket. A Bitwarden alkalmazáskiegészítővel kapcsolatos további tudnivalókat a Beállítások képernyőn találsz.A Bitwarden használata Safariban és más alkalmazásokban a bejelentkezések automatikus kitöltéséhez.
@@ -443,7 +443,7 @@
A Bitwarden kisegítő szolgáltatás használata bejelentkezések automatikus kitöltéséhez.
- E-mail cím módosítása
+ E-mail-cím megváltoztatásaE-mail címedet a bitwarden.com webes széfében tudod megváltoztatni. Szeretnéd meglátogatni most a weboldalt?
@@ -578,7 +578,7 @@
A mesterjelszó az a jelszó amit a széfed eléréséhez fogsz használni. Nagyon fontos, hogy ne felejtsd el a mesterjelszavad, mert nincs lehetőséged visszaállítani ha elfelejtetted.
- Mesterjelszó emlékeztető (nem kötelező)
+ Mesterjelszó-emlékeztető (nem kötelező)A mesterjelszó emlékeztető segíthet emlékezni a jelszavadra ha elfejetetted volna.
@@ -587,11 +587,11 @@
Mesterjelszónak legalább 8 karakter hosszúnak kell lennie.
- Kevesebb szám
+ Legalább ennyi számMinimum numeric characters for password generator settings
- Kevesebb különleges karakter
+ Legalább ennyi speciális karakterMinimum special characters for password generator settings
@@ -635,10 +635,10 @@
Jelszó generálva.
- Jelszó generátor
+ Jelszógenerátor
- Jelszó emlékeztető
+ Jelszó-emlékeztetőElküldtünk neked egy E-mailt mely tartalmazza a mesterjelszó emlékeztetődet.
@@ -647,7 +647,7 @@
Biztosan felül akarod írni a jelenlegi jelszót?
- A Bitwarden push-értesítések használatával gondoskodik a széf automatikus szinkronizálásáról. A funkció előnyeinek kihasználásához a push-értesítések engedélyezésére vonatkozó kérdés megjelenésekor válasszuk az "Engedélyezés" lehetőséget.
+ A Bitwarden push-értesítések használatával gondoskodik a széfed automatikus szinkronizálásáról. A funkció előnyeinek kihasználásához a push-értesítések engedélyezésére vonatkozó kérdés megjelenésekor válaszd az Engedélyezés lehetőséget.Push notifications for apple products
@@ -678,7 +678,7 @@
Egy 4 számjegyű PIN-kód beállítása az alkalmazás kinyitásához.
- Elem információ
+ Elem adataiAz elem frissítésre került.
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Szinkronizálás befejezve.
+ A szinkronizálás kész.
- Szinkronizáció sikertelen.
+ A szinkronizálás nem sikerült.Széf szinkronizálása most
@@ -708,7 +708,7 @@
Kétlépcsős bejelentkezés
- A kétlépcsős bejelentkezés biztonságosabbá teszi a fiókodat azáltal, hogy meg kell erősítened a bejelentkezésedet egy másik eszközzel mint például biztonsági kulcs, hitelesítő alkalmazás, SMS, telefon hívás vagy e-mail. Kétlépcsős bejelentkezést a bitwarden.com webes széfében tudod megváltoztatni. Szeretnéd meglátogatni most a weboldalt?
+ A kétlépcsős bejelentkezés biztonságosabbá teszi a fiókodat, mert egy másik eszközzel, például biztonsági kulccsal, hitelesítőalkalmazással, sms-sel, telefonhívással vagy e-maillel is jóvá kell hagynod a bejelentkezést. A kétlépcsős bejelentkezést a bitwarden.com webes széfjében kapcsolhatod be. Megnyitod most a weboldalt?Kinyitás ezzel: {0}
@@ -721,7 +721,7 @@
Message shown when interacting with the server
- Hitelesítő kód
+ EllenőrzőkódElem megtekintése
@@ -796,7 +796,7 @@
Biztos, hogy automatikusan kitöltésre kerüljön ez az elem? Nem teljesen egyezik: {0}.
- Megegyező elemek
+ Talált elemekLehetséges találatok
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Hitelesítő alkalmazás
+ HitelesítőalkalmazásFor 2FA
@@ -827,11 +827,11 @@
For 2FA
- Bejelentkezés nem érhető el
+ Nem érhető el bejelentkezésFor 2FA whenever there are no available providers on this device.
- Ennél a fióknál a kétlépcsős bejelentkezés engedélyezve lett, azonban a beállított kétlépcsős szolgáltatók egyike sem támogatott ezen az eszközön. Használj támogatott eszközt és/vagy olyan szolgáltatókat, amelyek jobb támogatást élveznek az eszközökön (például egy hitelesítő alkalmazás).
+ Ennél a fióknál engedélyezett a kétlépcsős bejelentkezés, de a beállított kétlépcsős bejelentkezési szolgáltatók egyike sem támogatott ezen az eszközön. Használj támogatott eszközt és/vagy olyan szolgáltatókat, amelyek jobban támogatják a több eszközzel történő használatot (ilyenek például a hitelesítőalkalmazások).Helyreállító kód
@@ -846,7 +846,7 @@
For 2FA
- Kétlépcsős bejelentkezés opciók
+ Kétlépcsős bejelentkezés beállításaiMás kétlépcsős bejelentkezés használata
@@ -856,7 +856,7 @@
For 2FA
- Megerősítő e-mail elküldve.
+ Az ellenőrzőkódot tartalmazó e-mail elküldve.For 2FA
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Hitelesítő kulcs (egyszeri-idő alapú)
+ Igazolókód (TOTP)
- Ellenőrző kód (egyszeri-idő alapú)
+ Ellenőrzőkód (TOTP)Totp code label
@@ -954,10 +954,10 @@
Ez a funkció nem használható, amíg nem frissíted a titkosítási kulcsodat.
- Tudj meg többet
+ További információ
- API szerver URL
+ API-szerver URL-címeEgyéni környezet
@@ -973,7 +973,7 @@
Validation error when something is not formatted correctly, such as a URL or email address.
- Identitás szerver URL
+ Identitásszerver URL-címe"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
@@ -986,13 +986,13 @@
Szerver URL
- Webes széf szerver URL
+ Webes széf szerverének URL-címeKoppintunk erre az értesítésre a széfben tárolt elemek megtekintéséhez.
- Egyedi mezők
+ Egyéni mezőkSzám másolása
@@ -1016,7 +1016,7 @@
Bejelentkezés
- Biztonságos jegyzet
+ Védett jegyzetCím 1
@@ -1055,16 +1055,16 @@
Dr.
- Lejárati hónap
+ Lejárat hónapja
- Lejárati év
+ Lejárat évefebruár
- Személynév
+ Utónévjanuár
@@ -1076,7 +1076,7 @@
június
- Családnév
+ VezetéknévTeljes név
@@ -1197,7 +1197,7 @@
Nem sikerült automatikusan megnyitni az Android automatikus kitöltés beállításai menüt. A beállítás megnyitásához nyitssuk meg a Beállítások > Rendszer > Nyelv és bevitel > Speciális > Automatikus kitöltés menüpontot.
- Egyedi mezőnév
+ Egyéni mezőnévLogikai
@@ -1212,7 +1212,7 @@
Szöveg
- Új egyedi mező
+ Új egyéni mezőMilyen típusú egyéni mező legyen hozzáadva?
@@ -1248,14 +1248,14 @@
Ezzel kezdődik
- URI találatfelismerés
+ URI-egyezés felismerése
- Találatfelismerés
+ Egyezés felismeréseURI match detection for auto-fill.
- Igen, és mentés
+ Igen és mentésAutomatikus kitöltés és mentés
@@ -1277,7 +1277,7 @@
A kisegítő szolgáltatás használata hasznos lehet, ha az alkalmazások nem támogatják a szabványos automatikus kitöltési szolgáltatást.
- A jelszó frissítésre került.
+ A jelszó frissítveex. Date this password was updated
@@ -1285,7 +1285,7 @@
ex. Date this item was updated
- Az automatikus kitöltés bekapcsolásra került.
+ Az automatikus kitöltés aktiválva.Az automatikus kitöltő szolgáltatás használata előtt be kell jelentkezni a fő Bitwarden alkalmazásba.
@@ -1300,7 +1300,7 @@
A széf közvetlenül a billentyűzetről érhető el a jelszavak gyors kitöltéséhez.
- A jelszó automatikus kitöltés szolgáltatás engedélyezéséhez kövessük az alábbi utasításokat:
+ A következő lépésekkel engedélyezheted a jelszó automatikus kitöltését:1. Lépjünk be az iOS "Beállítások" alkalmazásba
@@ -1336,10 +1336,10 @@
Bejelentkezések
- Biztonságos jegyzetek
+ Védett jegyzetek
- Összes elem
+ Minden elemURI elemek
@@ -1359,13 +1359,13 @@
Ez a jelszó nem érintett egyetlen ismert adatszivárgásban sem. Biztonságos a használata.
- Azonosság név
+ IdentitásnévÉrték
- Jelszó előzmények
+ Korábbi jelszavakTípusok
@@ -1393,7 +1393,7 @@
Típus
- Lefelé mozgatás
+ LejjebbFelfelé mozgatás
@@ -1442,7 +1442,7 @@
Kulcsszó
- Szó elválasztó
+ SzóelválasztóTörlés
@@ -1590,7 +1590,7 @@
Újraindításkor
- Az automatikus kitöltés megkönnyíti a Bitwarden széf biztonságos elérését más webhelyekről és alkalmazásokból. Úgy tűnik, hogy nem engedélyezett az automatikus kitöltés a Bitwardennél. Az automatikus kitöltés a Bitwardennél a "Beállítások" képernyőn engedélyezhető.
+ Az automatikus kitöltés megkönnyíti a Bitwarden széf biztonságos elérését más webhelyekről és alkalmazásokból. Úgy tűnik, hogy nem engedélyezett az automatikus kitöltés a Bitwardenből. Az automatikus kitöltést a Beállítások képernyőn engedélyezheted.A témaváltás az alkalmazás újraindítása után lép életbe.
@@ -1609,13 +1609,13 @@
Megosztott
- Láthatóság váltás
+ Láthatóság váltásaA bejelentkezési munkamenet lejárt.
- A biometrikus ellenőrzés használata.
+ Biometrikus ellenőrzésBiometria
@@ -1624,10 +1624,10 @@
Biometria használata a feloldáshoz
- A Bitwarden figyelmet igényel - Információ az "Automatikus kitöltés elérési szolgáltatás" elemnél a Bitwarden beállításaiban
+ A Bitwarden figyelmet igényel - nyisd meg az "Automatikus kitöltés akadálymentesítő szolgáltatás" szakaszt a Bitwarden beállításaiban
- 3. Az Android Alkalmazás beállítások képernyőn a "Megjelenítés más alkalmazások felett" opcióknál (a Bővített alatt) koppintsunk az átfedés támogatást engedélyező váltóra.
+ 3. Az Android Alkalmazásbeállítások képernyőjén nyisd meg a "Megjelenítés más alkalmazások felett" szakaszt (a Speciális alatt), és a kapcsolóval engedélyezd az átfedéstámogatást.Jogosultság
@@ -1645,7 +1645,7 @@
Engedélyezve
- Fájl formátum
+ FájlformátumA mesterjelszó megadása a széfadatok exportálásához.
@@ -1669,7 +1669,7 @@
A fiók titkosítási kulcsai minden Bitwarden felhasználói fiókhoz egyediek, ezért nem importálhatunk titkosított exportálást egy másik fiókba.
- Széf export megerősítése
+ Széfexportálás megerősítéseTitle for the alert to confirm vault exports.
@@ -1699,7 +1699,7 @@
A melléklet sikeresen mentésre került.
- Engedélyezzük az "Automatikus kitöltés elérés szolgáltatás" lehetőséget a Bitwarden beállításainál az automatikus kitöltés engedélyezéséhez.
+ Az Automatikus kitöltés csempe használatához engedélyezd az "Automatikus kitöltés akadálymentesítő szolgáltatás" funkciót a Bitwarden beállításaiban.Nincs érzékelt jelszó mező.
@@ -1721,7 +1721,7 @@
Message shown when interacting with the server
- Az elem visszaállításra került.
+ Az elem visszaállítva.Confirmation message after successfully restoring a soft-deleted item
@@ -1796,7 +1796,7 @@
{0} speciális karakterekből egyet vagy többet tartalmaz
- Érvénytelen jelszó.
+ Érvénytelen jelszóA jelszó nem egyezik a szervezeti követelményekhez. Ellenőrizzük a szabály információt és próbáljuk újra.
@@ -1817,7 +1817,7 @@
Adatvédelmi Irányelvek
- A Bitwarden figyelmet igényel - Engedélyezzük Bitwarden beállításokban a "Felülrajzolás" opciót az "Automatikus kitöltési szolgáltatások" résznél.
+ A Bitwarden figyelmet igényel - engedélyezd az Átfedő megjelenítés beállítást a Bitwarden beállításainak "Automatikus kitöltési szolgáltatások" szakaszában.Automatikus kitöltési szolgáltatások
@@ -1826,37 +1826,37 @@
Szövegközi automatikus kitöltés használata
- Használjuk a szövegközi automatikus kitöltést, ha azt a kiválasztott IME (billentyűzet) támogatja. Ha a konfiguráció nem támogatott (vagy ez az opció le van tiltva), akkor az alapértelmezett automatikus kitöltési átfedőréteg kerül használatba.
+ Akkor használhatod a szövegközi automatikus kitöltést, ha a kiválasztott IME (billentyűzet) támogatja. Ha a konfiguráció nem támogatott (vagy ez a beállítás nincs engedélyezve), akkor az alapértelmezett automatikus kitöltési átfedőréteg lesz alkalmazva.Akadálymentes használat
- Használjuk a Bitwarden Kisegítő Szolgáltatást a bejelentkezések automatikus kitöltéséhez az alkalmazásokban és az interneten. Ha engedélyezve van, akkor a bejelentkezési mezők kiválasztásakor megjelenik egy felbukkanó ablak.
+ A Bitwarden akadálymentesítő szolgáltatásával automatikus kitöltheted a bejelentkezési adataidat az alkalmazásokban és a weben. Ha engedélyezett, akkor előugró ablak fog megjelenni, amikor egy bejelentkezési mezőre lépsz.
- Használjuk a Bitwarden Kisegítő Szolgáltatást a bejelentkezések automatikus kitöltéséhez az alkalmazásokban és az interneten. (Megköveteli a Felülrajzolás engedélyezését is)
+ A Bitwarden akadálymentesítő szolgáltatásával automatikus kitöltheted a bejelentkezési adataidat az alkalmazásokban és a weben. (Ehhez engedélyezni kell az Átfedő megjelenítés beállítást is.)
- Használjuk a Bitwarden Kisegítő Szolgáltatást az Automatikus kitöltés gyorsműveleti csempe használatához és/vagy egy felugró ablak megjelenítéséhez a Felülrajzolás használatával (ha engedélyezve van).
+ A Bitwarden akadálymentesítő szolgáltatásával használhatod az Automatikus kitöltés gyorsműveleti csempt, és/vagy egy előugró ablakot jeleníthetsz meg az Átfedő megjelenítés használatával (ha engedélyezve van).
- Szükséges az Automatikus kitöltés gyorsműveleti csempe használatához, vagy az automatikus kitöltési szolgáltatás bővítéséhez a Felülrajzolás használatával (ha engedélyezve van).
+ Szükséges az Automatikus kitöltés gyorsműveleti csempe használatához, vagy az automatikus kitöltési szolgáltatás kiterjesztéséhez az Átfedő megjelenítés használatával (ha engedélyezve van).Átfedő megjelenítés használata
- Engedélyezve a Bitwarden Akadálymentes Szolgáltatás egy felbukkanó ablakot jelenít meg, amikor a bejelentkezési mezők kiválasztottak.
+ Ha engedélyezett, akkor a Bitwarden akadálymentesítő szolgáltatása előugró ablakot jelenít meg, amikor bejelentkezési mezőre lépsz.
- Engedélyezve a Bitwarden Kisegítő Szolgáltatás egy felbukkanó ablakot jelenít meg a bejelentkezések automatikus kitöltéséhez, amikor a bejelentkezési mezők kiválasztottak.
+ Ha engedélyezett, akkor a Bitwarden akadálymentesítő szolgáltatása előugró ablakot jelenít meg, amikor bejelentkezési mezőre lépsz, hogy segítsen az adatok automatikus kitöltésében.
- Engedélyezve a a Kisegítő felbukkanó ablakot jelenít meg az Automatikus Kitöltési Szolgáltatás kibővítéséhez olyan régebbi alkalmazások számára, amelyek nem támogatják az Android automatikus kitöltés keretrendszerét.
+ Ha engedélyezett, akkor az akadálymentesítő szolgáltatás előugró ablakot jelenít meg, hogy olyan régebbi alkalmazásokban is használhasd az automatikus kiegészítési szolgáltatást, ami nem támogatja az Android automatikus kitöltési keretrendszerét.
- Egy vállalati házirend miatt korlátozható az elemek személyes tárolóba történő mentése. Módosítsuk a Tulajdon opciót egy szervezetre és válasszunk az elérhető gyűjtemények közül.
+ A vállalat szabályai korlátozzák a személyes széfbe menthető elemeket. Adj meg egy szervezetet a Tulajdonjog beállításban, és válassz az elérhető gyűjtemények közül.Egy szervezeti házirend befolyásolja a tulajdonjog beállításait.
@@ -2099,13 +2099,13 @@
Mesterjelszó eltávolítása
- {0} SSO szolgáltatást használ ügyfél által kezelt titkosítással. A folytatással eltávolító a mesterjelszó a fiókból és egyszeri bejelentkezés szükséges a bejelentkezéshez.
+ A(z) {0} SSO-t használ ügyfél által kezelt titkosítással. Ha folytatod, akkor eltávolítod a mesterjelszót a fiókodból, és SSO-ra lesz szükség a bejelentkezéshez.
- Ha nem szeretnénk eltávolítani a mesterjelszót, kiléphetünk ebből a szervezetből.
+ Ha nem szeretnéd eltávolítani a mesterjelszót, kiléphetsz ebből a szervezetből.
- Szervezet elhagyása
+ Kilépés a szervezetbőlElhagyjuk {0} szervezetet?
@@ -2180,7 +2180,7 @@
A fiók véglegesen törlésre került.
- Az ellenőrző kód érvénytelen.
+ Az ellenőrzőkód érvénytelen.Egyszeri jelszó kérése
@@ -2279,7 +2279,7 @@
Nem sikerül beolvasni a QR kódot?
- Authenticator Key
+ Authenticator keyKód megadása manuálisan
diff --git a/src/App/Resources/AppResources.id.resx b/src/App/Resources/AppResources.id.resx
index 313d3fb1e..4f30543d0 100644
--- a/src/App/Resources/AppResources.id.resx
+++ b/src/App/Resources/AppResources.id.resx
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- Brankas Saya
+ Berangkas SayaThe title for the vault page.
@@ -428,7 +428,7 @@
Hindari Karakter Ambigu
- Ekstensi Aplikasi Bitwarden
+ ekstensi Aplikasi bitwardenCara termudah untuk menambahkan login baru ke vault Anda adalah dari Bitwarden App Extension. Pelajari lebih lanjut tentang menggunakan Bitwarden App Extension dengan menuju ke layar "Pengaturan".
@@ -708,7 +708,7 @@
Info masuk dua langkah
- Info masuk dua langkah membuat akun Anda lebih aman dengan mengharuskan Anda memverifikasi info masuk Anda dengan peranti lain seperti kode keamanan, aplikasi autentikasi, SMK, panggilan telepon, atau email. Info masuk dua langkah dapat diaktifkan di brankas web bitwarden.com. Anda ingin mengunjungi situs web sekarang?
+ Two-step login makes your account more secure by requiring you to enter a security code from an authenticator app whenever you log in. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?Buka denga {0}
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Cari koleksi
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Catatan Salinan
@@ -2139,7 +2139,7 @@ Scanning will happen automatically.
Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.Tambahkan Akun
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2250,7 +2250,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.it.resx b/src/App/Resources/AppResources.it.resx
index fab35cd7f..3a06a39ab 100644
--- a/src/App/Resources/AppResources.it.resx
+++ b/src/App/Resources/AppResources.it.resx
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} è stato copiato.
+ {0} copiata.Confirmation message after suceessfully copying a value to the clipboard.
@@ -529,7 +529,7 @@
Importa rapidamente i tuoi elementi da altre app di gestione password.
- Ultima Sincronizzazione:
+ Ultima sincronizzazione:Lunghezza
@@ -695,7 +695,7 @@
Sincronizzazione completata.
- Sincronizzazione non riuscita.
+ Sincronizzazione fallita.Sincronizza la cassaforte
@@ -1609,7 +1609,7 @@
Condiviso
- Mostra/Nascondi
+ Mostra/nascondiLa tua sessione è scaduta.
@@ -2103,7 +2103,7 @@
{0} sta usando SSO con cifratura gestita dal cliente. Continuando la tua password principale sarà rimossa dal tuo profilo e richiederà SSO per accedere.
- Se non desideri rimuovere la tua password principale, potresti lasciare questa organizzazione.
+ Se non vuoi rimuovere la tua password principale, puoi lasciare questa organizzazione.Lascia l'organizzazione
@@ -2202,7 +2202,7 @@
Verifica
- Invia di nuovo il codice
+ Reinvia codiceIl codice di verifica è stato inviato al tuo indirizzo email
diff --git a/src/App/Resources/AppResources.ja.resx b/src/App/Resources/AppResources.ja.resx
index f5c8dd908..032bf3d89 100644
--- a/src/App/Resources/AppResources.ja.resx
+++ b/src/App/Resources/AppResources.ja.resx
@@ -425,7 +425,7 @@
自動入力サービス
- あいまいな文字を省く
+ あいまいな文字を避けるBitwarden App Extension
@@ -587,11 +587,11 @@
マスターパスワードは、少なくとも8文字以上で設定してください。
- 数字の最小数
+ 数字の最小個数Minimum numeric characters for password generator settings
- 記号の最小数
+ 最低限必要な記号の個数Minimum special characters for password generator settings
@@ -657,7 +657,7 @@
良いレビューで私たちを助けてください!
- パスワードの再生成
+ パスワードを再生成マスターパスワードを再入力
@@ -708,7 +708,7 @@
2段階認証
- 2段階認証を使うと、ログイン時にセキュリティキーや認証アプリ、SMS、電話やメールでの認証を必要にすることでアカウントをさらに安全に出来ます。2段階認証は Bitwarden ウェブ保管庫で有効化できます。ウェブサイトを開きますか?
+ 2段階認証を有効にすると、他の端末でログインする際にセキュリティキー、認証アプリ、SMS、電話、またはメールで認証することが必要となり,アカウントの安全性が高まります。2段階認証を有効にするのはBitwarden.comのウェブ保管庫でできます。ウェブサイトに進みますか?{0}でロック解除
@@ -1252,7 +1252,7 @@
URI の一致検出方法
- 一致検出方法
+ 一致するか検出する方法URI match detection for auto-fill.
@@ -1337,7 +1337,7 @@
ログイン
- セキュアメモ
+ 秘密のメモすべてのアイテム
@@ -1591,7 +1591,7 @@
アプリ再起動時
- 自動入力を使うと、他のウェブサイトやアプリから Bitwarden 保管庫に、より安全・簡単にアクセスできます。現在 Bitwarden の自動入力サービスを有効にしていないようです。設定画面で自動入力を有効化できます。
+ 自動入力を使えば、他のウェブサイトやアプリから Bitwardenの保管庫に簡単に安全にアクセスできます。いまのところ自動入力は有効になっていないようです。自動入力を有効にするには設定画面に行ってください。テーマの変更はアプリを再起動すると反映されます。
diff --git a/src/App/Resources/AppResources.ka.resx b/src/App/Resources/AppResources.ka.resx
index 122a8cf63..3d792fc59 100644
--- a/src/App/Resources/AppResources.ka.resx
+++ b/src/App/Resources/AppResources.ka.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Copy Password
+ Copy passwordThe button text that allows a user to copy the login's password to their clipboard.
- Copy Username
+ Copy usernameThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,18 +179,18 @@
Edit
- Edit Folder
+ Edit folderEmailShort label for an email address.
- Email Address
+ Email addressFull label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -229,10 +229,10 @@
Folders
- Folder updated.
+ Folder saved
- Go To Website
+ Go to websiteThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,19 +276,19 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
- Master Password
+ Master passwordLabel for a master password.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- My Vault
+ My vaultThe title for the vault page.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Thank You
+ Thank youTools
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockUsername
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprint
- Verify Master Password
+ Verify master passwordVerify PIN
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -461,29 +461,29 @@
Continue
- Create Account
+ Create accountCreating account...Message shown when interacting with the server
- Edit Item
+ Edit item
- Enable Automatic Syncing
+ Allow automatic syncingEnter your account email address to receive your master password hint.
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -514,7 +514,7 @@
Fingerprint
- Generate Password
+ Generate passwordGet your master password hint
@@ -529,7 +529,7 @@
Quickly bulk import your items from other password management apps.
- Last Sync:
+ Last sync:Length
@@ -578,7 +578,7 @@
The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it.
- Master Password Hint (optional)
+ Master password hint (optional)A master password hint can help you remember your password if you forget it.
@@ -587,15 +587,15 @@
Master password must be at least 8 characters long.
- Minimum Numbers
+ Minimum numbersMinimum numeric characters for password generator settings
- Minimum Special
+ Minimum specialMinimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
Never
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -632,13 +632,13 @@
Other
- Password generated.
+ Password generated
- Password Generator
+ Password generator
- Password Hint
+ Password hintWe've sent you an email with your master password hint.
@@ -647,7 +647,7 @@
Are you sure you want to overwrite the current password?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -657,13 +657,13 @@
Please consider helping us out with a good review!
- Regenerate Password
+ Regenerate password
- Re-type Master Password
+ Re-type master password
- Search Vault
+ Search vaultSecurity
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsSearch
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,14 +827,14 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
- Recovery Code
+ Recovery codeFor 2FA
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileFile
@@ -946,7 +946,7 @@ Scanning will happen automatically.
File Source
- Feature Unavailable
+ Feature unavailableMaximum file size is 100 MB.
@@ -955,13 +955,13 @@ Scanning will happen automatically.
You cannot use this feature until you update your encryption key.
- Learn More
+ Learn more
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -974,11 +974,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted Bitwarden installation.
@@ -987,25 +987,25 @@ Scanning will happen automatically.
Server URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view items from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy number
- Copy Security Code
+ Copy security codeNumber
- Security Code
+ Security codeCard
@@ -1017,7 +1017,7 @@ Scanning will happen automatically.
Login
- Secure Note
+ Secure noteAddress 1
@@ -1038,7 +1038,7 @@ Scanning will happen automatically.
Brand
- Cardholder Name
+ Cardholder nameCity / Town
@@ -1056,16 +1056,16 @@ Scanning will happen automatically.
Dr
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearFebruary
- First Name
+ First nameJanuary
@@ -1077,13 +1077,13 @@ Scanning will happen automatically.
June
- Last Name
+ Last name
- Full Name
+ Full name
- License Number
+ License numberMarch
@@ -1092,7 +1092,7 @@ Scanning will happen automatically.
May
- Middle Name
+ Middle nameMr
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
October
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
September
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1337,10 +1337,10 @@ Scanning will happen automatically.
Logins
- Secure Notes
+ Secure notes
- All Items
+ All itemsURIs
@@ -1360,13 +1360,13 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameValue
- Password History
+ Password historyTypes
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1394,7 +1394,7 @@ Scanning will happen automatically.
Type
- Move Down
+ Move downMove Up
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteExit
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,13 +1764,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.kn.resx b/src/App/Resources/AppResources.kn.resx
index eeb13c81b..47f9a7412 100644
--- a/src/App/Resources/AppResources.kn.resx
+++ b/src/App/Resources/AppResources.kn.resx
@@ -276,13 +276,13 @@
ಲಾಗ್ ಔಟ್ ಮಾಡಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -1081,7 +1081,7 @@ Scanning will happen automatically.
ಕೊನೆ ಹೆಸರು
- Full Name
+ Full nameಪರವಾನಗಿ ಸಂಖ್ಯೆ
@@ -1382,10 +1382,10 @@ Scanning will happen automatically.
ಸಂಗ್ರಹಣೆ ಹುಡುಕಿ
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1481,7 +1481,7 @@ Scanning will happen automatically.
ಅನ್ಲಾಕ್ ಮಾಡಿ
- Unlock Vault
+ Unlock vault30 ನಿಮಿಷಗಳು
@@ -1554,7 +1554,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.ಟಿಪ್ಪಣಿ ನಕಲಿಸಿ
@@ -1656,7 +1656,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
ಮುಂದುವರಿಯಲು ಈ ಕ್ರಿಯೆಯನ್ನು ರಕ್ಷಿಸಲಾಗಿದೆ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ನಿಮ್ಮ ಮಾಸ್ಟರ್ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರು ನಮೂದಿಸಿ.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.ko.resx b/src/App/Resources/AppResources.ko.resx
index 78ec81d9c..f40765d9e 100644
--- a/src/App/Resources/AppResources.ko.resx
+++ b/src/App/Resources/AppResources.ko.resx
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
컬렉션 검색
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text Sends{0} 검색
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.메모 복사
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.lt.resx b/src/App/Resources/AppResources.lt.resx
index 122a8cf63..3d792fc59 100644
--- a/src/App/Resources/AppResources.lt.resx
+++ b/src/App/Resources/AppResources.lt.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Copy Password
+ Copy passwordThe button text that allows a user to copy the login's password to their clipboard.
- Copy Username
+ Copy usernameThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,18 +179,18 @@
Edit
- Edit Folder
+ Edit folderEmailShort label for an email address.
- Email Address
+ Email addressFull label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -229,10 +229,10 @@
Folders
- Folder updated.
+ Folder saved
- Go To Website
+ Go to websiteThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,19 +276,19 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
- Master Password
+ Master passwordLabel for a master password.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- My Vault
+ My vaultThe title for the vault page.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Thank You
+ Thank youTools
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockUsername
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprint
- Verify Master Password
+ Verify master passwordVerify PIN
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -461,29 +461,29 @@
Continue
- Create Account
+ Create accountCreating account...Message shown when interacting with the server
- Edit Item
+ Edit item
- Enable Automatic Syncing
+ Allow automatic syncingEnter your account email address to receive your master password hint.
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -514,7 +514,7 @@
Fingerprint
- Generate Password
+ Generate passwordGet your master password hint
@@ -529,7 +529,7 @@
Quickly bulk import your items from other password management apps.
- Last Sync:
+ Last sync:Length
@@ -578,7 +578,7 @@
The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it.
- Master Password Hint (optional)
+ Master password hint (optional)A master password hint can help you remember your password if you forget it.
@@ -587,15 +587,15 @@
Master password must be at least 8 characters long.
- Minimum Numbers
+ Minimum numbersMinimum numeric characters for password generator settings
- Minimum Special
+ Minimum specialMinimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
Never
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -632,13 +632,13 @@
Other
- Password generated.
+ Password generated
- Password Generator
+ Password generator
- Password Hint
+ Password hintWe've sent you an email with your master password hint.
@@ -647,7 +647,7 @@
Are you sure you want to overwrite the current password?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -657,13 +657,13 @@
Please consider helping us out with a good review!
- Regenerate Password
+ Regenerate password
- Re-type Master Password
+ Re-type master password
- Search Vault
+ Search vaultSecurity
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsSearch
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,14 +827,14 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
- Recovery Code
+ Recovery codeFor 2FA
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileFile
@@ -946,7 +946,7 @@ Scanning will happen automatically.
File Source
- Feature Unavailable
+ Feature unavailableMaximum file size is 100 MB.
@@ -955,13 +955,13 @@ Scanning will happen automatically.
You cannot use this feature until you update your encryption key.
- Learn More
+ Learn more
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -974,11 +974,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted Bitwarden installation.
@@ -987,25 +987,25 @@ Scanning will happen automatically.
Server URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view items from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy number
- Copy Security Code
+ Copy security codeNumber
- Security Code
+ Security codeCard
@@ -1017,7 +1017,7 @@ Scanning will happen automatically.
Login
- Secure Note
+ Secure noteAddress 1
@@ -1038,7 +1038,7 @@ Scanning will happen automatically.
Brand
- Cardholder Name
+ Cardholder nameCity / Town
@@ -1056,16 +1056,16 @@ Scanning will happen automatically.
Dr
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearFebruary
- First Name
+ First nameJanuary
@@ -1077,13 +1077,13 @@ Scanning will happen automatically.
June
- Last Name
+ Last name
- Full Name
+ Full name
- License Number
+ License numberMarch
@@ -1092,7 +1092,7 @@ Scanning will happen automatically.
May
- Middle Name
+ Middle nameMr
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
October
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
September
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1337,10 +1337,10 @@ Scanning will happen automatically.
Logins
- Secure Notes
+ Secure notes
- All Items
+ All itemsURIs
@@ -1360,13 +1360,13 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameValue
- Password History
+ Password historyTypes
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1394,7 +1394,7 @@ Scanning will happen automatically.
Type
- Move Down
+ Move downMove Up
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteExit
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,13 +1764,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.lv.resx b/src/App/Resources/AppResources.lv.resx
index 2c3e2e99b..3b314979b 100644
--- a/src/App/Resources/AppResources.lv.resx
+++ b/src/App/Resources/AppResources.lv.resx
@@ -2449,16 +2449,16 @@ jāizvēlas "Pievienot TOTP", lai droši glabātu atslēgu.
Nejauši
- Accessibility Service Disclosure
+ Pieejamības pakalpojuma izmantošanas skaidrojums
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden izmanto pieejamības pakalpojumu, lai meklētu pierakstīšanās laukus lietotnēs un tīmekļa vietnēs, tad noskaidro atbistošus lauku identifikatorus lietotājvārda un paroles ievadīšanai, kad ir atrasta atbilstība lietotnei vai vietnei. Bitwarden neglabā neko no informācijas, ko nodrošina pakalpojums, kā arī nemēģina pārvaldīt ekrānā redzamās daļas, kas nav saistītas ar pierakstīšanās datu ievadi.
- Accept
+ Pieņemt
- Decline
+ NoraidītPierakstīšanās pieprasījuma derīgums jau ir beidzies.
diff --git a/src/App/Resources/AppResources.ml.resx b/src/App/Resources/AppResources.ml.resx
index 503680e27..47b6c3062 100644
--- a/src/App/Resources/AppResources.ml.resx
+++ b/src/App/Resources/AppResources.ml.resx
@@ -152,7 +152,7 @@
Copy some value to your clipboard.
- പാസ്വേഡ് പകർത്തുക
+ രഹസ്യവാക്ക് പകർത്തുകThe button text that allows a user to copy the login's password to their clipboard.
@@ -276,13 +276,13 @@
നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -1080,7 +1080,7 @@ Scanning will happen automatically.
പേരിന്റെ അവസാന ഭാഗം
- Full Name
+ Full nameലൈസൻസ് നമ്പർ
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
കളക്ഷനുകൾ തിരയുക
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
അൺലോക്ക്
- Unlock Vault
+ Unlock vault30 മിനിറ്റ്
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.കുറിപ്പ് പകർത്തുക
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1936,7 +1936,7 @@ Scanning will happen automatically.
കാലഹരണപ്പെട്ടു
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1946,7 +1946,7 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access countപുതിയ പാസ്വേഡ്
@@ -1972,7 +1972,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2079,7 +2079,7 @@ Scanning will happen automatically.
Captcha നിർബന്ധമാണ്
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.പ്രാഥമിക പാസ്വേഡ് പുതുക്കി
@@ -2088,7 +2088,7 @@ Scanning will happen automatically.
പ്രാഥമിക പാസ്വേഡ് പുതുക്കുക
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.പാസ്വേഡ് പുതുക്കുന്നു
@@ -2097,16 +2097,16 @@ Scanning will happen automatically.
Currently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2115,7 +2115,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2124,7 +2124,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2133,16 +2133,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2151,13 +2151,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2181,13 +2181,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2202,7 +2202,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2250,7 +2250,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.nb.resx b/src/App/Resources/AppResources.nb.resx
index c6420a728..07356d790 100644
--- a/src/App/Resources/AppResources.nb.resx
+++ b/src/App/Resources/AppResources.nb.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Kopier passordet
+ Kopier passordThe button text that allows a user to copy the login's password to their clipboard.
- Kopier brukernavnet
+ Kopier brukernavnThe button text that allows a user to copy the login's username to their clipboard.
@@ -190,7 +190,7 @@
Full label for a email address.
- Send oss E-post
+ Send oss en e-postSend E-post direkte til oss for å få hjelp eller gi tilbakemeldinger.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internettilkobling er påkrevd
+ Internettilkobling nødvendigTitle for the alert when internet connection is required to continue.
- Ugyldig superpassord. Prøv igjen.
+ Ugyldig hovedpassord. Prøv igjen.Ugyldig PIN-kode. Prøv igjen.
@@ -288,7 +288,7 @@
Ønsker du å bytte til den nå?
- Superpassord
+ HovedpassordLabel for a master password.
@@ -382,7 +382,7 @@
Verifiser fingeravtrykket
- Verifiser superpassordet
+ Verifiser hovedpassordetVerifiser PIN-koden
@@ -394,7 +394,7 @@
Vis
- Besøk nettsidene våre
+ Besøk nettstedet vårtBesøk vårt nettsted for å få hjelp, nyheter, sende oss E-poster, og/eller lære mer om å bruke Bitwarden.
@@ -425,7 +425,7 @@
Auto-utfyllingstjeneste
- Unngå forvekslingsbare tegn
+ Unngå tvetydige tegnBitwarden App-utvidelse
@@ -443,7 +443,7 @@
Bruk Bitwarden sin tilgjengelighetstjeneste for å auto-utfylle dine innlogginger.
- Endre E-postadresse
+ Endre e-postadresseDu kan endre din kontos E-postadresse på bitwarden.net-netthvelvet. Vil du besøke det nettstedet nå?
@@ -461,14 +461,14 @@
Fortsett
- Opprett en konto
+ Opprett kontoOppretter konto...Message shown when interacting with the server
- Rediger gjenstanden
+ Rediger elementetAktiver automatisk synkronisering
@@ -514,7 +514,7 @@
Fingeravtrykk
- Generer et passord
+ Lag passordFå et hint om superpassordet
@@ -529,7 +529,7 @@
Importer raskt dine gjenstander i bunker fra andre passordbehandlingsapper.
- Forrige synkronisering:
+ Siste synkronisering:Lengde
@@ -578,7 +578,7 @@
Superpassordet er passordet du bruker for å få tilgang til hvelvet ditt. Det er veldig viktig at du aldri glemmer ditt superpassord. Det er ingen måter å få tilbake passordet på dersom du noensinne skulle klare å glemme det.
- Et hint for superpassordet (valgfritt)
+ Et hint for hovedpassordet (valgfritt)Et hint for superpassordet, kan hjelpe deg å huske på passordet hvis du skulle glemme det.
@@ -587,11 +587,11 @@
Superpassordet må være ≥8 tegn lang.
- Minst antall numre
+ Minst antall sifferMinimum numeric characters for password generator settings
- Minst antall spesialtegn
+ Minste antall spesialtegnMinimum special characters for password generator settings
@@ -604,7 +604,7 @@
Aldri
- En ny gjenstand er opprettet.
+ Nytt element opprettet.Det er ingen favoritter i hvelvet ditt.
@@ -657,10 +657,10 @@
Tenk gjerne på om du vil skrive en anmeldelse om oss!
- Omgenerer et passord
+ Generer nytt passord
- Skriv inn superpassordet på nytt
+ Skriv inn hovedpassordet på nyttSøk i hvelvet
@@ -678,10 +678,10 @@
Skriv inn en 4-sifret PIN-kode til å låse opp appen med.
- Gjenstandsinformasjon
+ Elementinformasjon
- Gjenstanden er oppdatert.
+ Element oppdatert.Sender inn...
@@ -724,7 +724,7 @@
Verifiseringskode
- Vis gjenstand
+ Vis elementBitwarden Netthvelv
@@ -796,7 +796,7 @@
Er du sikker på at du vil auto-utfylle dette elementet? Den samsvarer ikke fullstendig med "{0}".
- Samsvarende gjenstander
+ Samsvarende elementerMulig samsvarende elementer
@@ -946,7 +946,7 @@ Skanning skjer automatisk.
Filens kilde
- Egenskapen er utilgjengelig
+ Funksjon utilgjengeligMaksimal filstørrelse er 100 MB.
@@ -1017,7 +1017,7 @@ Skanning skjer automatisk.
Innlogging
- Sikker notis
+ Sikre notaterAdresse 1
@@ -1083,7 +1083,7 @@ Skanning skjer automatisk.
Fullt navn
- Lisensnummer
+ FørerkortnummerMars
@@ -1110,7 +1110,7 @@ Skanning skjer automatisk.
Oktober
- Pass-nummer
+ PassnummerTelefon
@@ -1278,7 +1278,7 @@ Skanning skjer automatisk.
Tilgjengelighetstjenesten kan være nyttig å bruke når apper ikke støtter den vanlige autoutfyllingstjenesten.
- Passordet ble oppdatert den
+ Passordet oppdatert denex. Date this password was updated
@@ -1286,7 +1286,7 @@ Skanning skjer automatisk.
ex. Date this item was updated
- Autoutfylling aktivert!
+ Autofyll aktivert!Du må logge deg inn på Bitwarden-hovedappen før du kan bruke autoutfylling.
@@ -1301,7 +1301,7 @@ Skanning skjer automatisk.
Få tilgang til hvelvet ditt direkte fra tastaturet for å raskt autoutfylle passord.
- Følg disse instruksjonene for å aktivere passord-autoutfylling på enheten din:
+ Følg disse instruksjonene for å aktivere passord autofyll på enheten din:1. Gå til iOS-appen «Innstillinger»
diff --git a/src/App/Resources/AppResources.nl.resx b/src/App/Resources/AppResources.nl.resx
index 7aa89ceda..d272629a8 100644
--- a/src/App/Resources/AppResources.nl.resx
+++ b/src/App/Resources/AppResources.nl.resx
@@ -247,7 +247,7 @@
Description message for the alert when internet connection is required to continue.
- Internetverbinding is vereist
+ Internetverbinding vereistTitle for the alert when internet connection is required to continue.
@@ -379,7 +379,7 @@
Confirmation message after suceessfully copying a value to the clipboard.
- Vingerafdruk invoeren
+ Vingerafdruk verifiërenHoofdwachtwoord invoeren
@@ -681,7 +681,7 @@
Item
- Item is bijgewerkt.
+ Item bijgewerkt.Opslaan...
@@ -708,7 +708,7 @@
Tweestapsaanmelding
- Tweestapsaanmelding beschermt je account door je inlogpoging te bevestigen met een ander apparaat zoals een beveiligingscode, authenticatie-app, SMS, spraakoproep of e-mail. Je kunt tweestapsaanmelding inschakelen in de webkluis op bitwarden.com. Wil je de website nu bezoeken?
+ Tweestapsaanmelding beschermt je account door je inlogpoging te bevestigen met een ander apparaat zoals een beveiligingssleutel, authenticatie-app, SMS, spraakoproep of e-mail. Je kunt Tweestapsaanmelding inschakelen in de webkluis op bitwarden.com. Wil je de website nu bezoeken?Ontgrendelen met {0}
@@ -799,7 +799,7 @@
Overeenkomstige items
- Mogelijk overeenkomstige items
+ Mogelijke overeenkomstige itemsZoeken
@@ -887,7 +887,7 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticatiecode (TOTP)
+ Authenticatiesleutel (TOTP)Verificatiecode (TOTP)
diff --git a/src/App/Resources/AppResources.nn.resx b/src/App/Resources/AppResources.nn.resx
index d7015515e..b0765382d 100644
--- a/src/App/Resources/AppResources.nn.resx
+++ b/src/App/Resources/AppResources.nn.resx
@@ -425,7 +425,7 @@
Sjølvutfyllingsteneste
- Avoid Ambiguous Characters
+ Avoid ambiguous charactersBitwarden App-utviding
@@ -647,7 +647,7 @@
Er du trygg på at du vil skriva over passordet du har no?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -660,7 +660,7 @@
Lag om passord
- Re-type Master Password
+ Re-type master passwordLeita i kvelvet
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,14 +827,14 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
- Recovery Code
+ Recovery codeFor 2FA
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -974,7 +974,7 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
@@ -993,7 +993,7 @@ Scanning will happen automatically.
Trykk på denne meldinga for å sjå oppføringar i kvelvet ditt.
- Custom Fields
+ Custom fieldsSkriv av nummer
@@ -1056,10 +1056,10 @@ Scanning will happen automatically.
Dr.
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearFebruar
@@ -1083,7 +1083,7 @@ Scanning will happen automatically.
Fullt namn
- License Number
+ License numberMars
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Tekst
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,10 +1249,10 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1360,7 +1360,7 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameVerdi
@@ -1437,7 +1437,7 @@ Scanning will happen automatically.
Vel ei samskipnad du ynskjer å flytta denne oppføringa til. Ved å flytta ei oppføring til ei samskipnad fører ein eigarskapen til oppføringa til den samskipnaden. Du vil ikkje lenger ha bein eigarskap til denne oppføringa etter ho er flytta.
- Number of Words
+ Number of wordsPassphrase
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteFar ut
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
Ved oppstart av app å nyo
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1625,10 +1625,10 @@ Scanning will happen automatically.
Bruka biometri for å låsa opp
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Vedlegget vart lagra
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.Ingen passordfelt oppdaga
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1770,7 +1770,7 @@ Scanning will happen automatically.
Currently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassordet møter ikkje samskipnadskrava. Ver venleg og les retningslinene og freista om att.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,22 +1828,22 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
@@ -1855,10 +1855,10 @@ Scanning will happen automatically.
Om det er slege på lèt det Bitwarden syna eit sprettvindauga når innskrivingsfelt er valde for å hjelpa med ubeden innskrivingsutfylling.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.Eit samskipnadsvilkår påverkar eigarskapsinnstillingane dine.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Ventar på sletting
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Utgått
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,7 +1947,7 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access countNytt passord
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,34 +2077,34 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.Far ut av samskipnad
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,7 +2134,7 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Avbrotet frå kvelvet ditt skrid over det avgrensingane fastsette av samskipnaden din.
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.pl.resx b/src/App/Resources/AppResources.pl.resx
index 63918a48f..94ef429fc 100644
--- a/src/App/Resources/AppResources.pl.resx
+++ b/src/App/Resources/AppResources.pl.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Kopiuj hasło
+ Skopiuj hasłoThe button text that allows a user to copy the login's password to their clipboard.
- Kopiuj nazwę użytkownika
+ Skopiuj nazwę użytkownikaThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,7 +179,7 @@
Edycja
- Edytuj folder
+ Edytuj FolderAdres e-mail
@@ -229,7 +229,7 @@
Foldery
- Folder został zaktualizowany.
+ Folder zaktualizowany.Przejdź do strony
@@ -247,7 +247,7 @@
Description message for the alert when internet connection is required to continue.
- Połączenie z Internetem jest wymagane
+ Wymagane połączenie z InternetemTitle for the alert when internet connection is required to continue.
@@ -364,7 +364,7 @@
Label for a uri/url.
- Odblokuj odciskiem palca
+ Odblokuj za pomocą odcisku palcaNazwa użytkownika
@@ -2283,7 +2283,7 @@ Skanowanie nastąpi automatycznie.
Klucz uwierzytelniający
- Wpisz klucz ręcznie
+ Wprowadź klucz ręcznieDodaj TOTP
diff --git a/src/App/Resources/AppResources.pt-BR.resx b/src/App/Resources/AppResources.pt-BR.resx
index b104caed5..445e11f67 100644
--- a/src/App/Resources/AppResources.pt-BR.resx
+++ b/src/App/Resources/AppResources.pt-BR.resx
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Enviar um Relatório de Bug
+ Submeter um relatório de bugAbrir um issue no nosso repositório do GitHub.
@@ -232,7 +232,7 @@
Pasta atualizada.
- Ir para o Site
+ Ir para o websiteThe button text that allows user to launch the website to their web browser.
@@ -251,7 +251,7 @@
Title for the alert when internet connection is required to continue.
- Senha Mestra Inválida. Tente novamente.
+ Senha mestra inválida. Tentar novamente.PIN inválido. Tente novamente.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- O item foi excluído.
+ O item foi apagado.Confirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Agradecimentos
+ ObrigadoFerramentas
@@ -647,7 +647,7 @@
Tem certeza que deseja substituir a senha atual?
- O Bitwarden mantém o seu cofre sincronizado automaticamente utilizando notificações push. Para a melhor experiência possível, por favor selecione "Permitir" na solicitação seguinte quando for perguntado para ativar as notificações push.
+ O bitwarden mantém o seu cofre sincronizado automaticamente utilizando notificações push. Para a melhor experiência possível, por favor, selecione "Permitir" na seguinte solicitação quando solicitado para ativar notificações push.Push notifications for apple products
@@ -708,7 +708,7 @@
Login em Duas Etapas
- O login em duas etapas torna a sua conta mais segura ao exigir que você verifique seu login com outro dispositivo como uma chave de segurança, aplicativo de autenticação, SMS, ligação telefônica, ou e-mail. O login em duas etapas pode ser ativado no cofre web em bitwarden.com. Você deseja visitar o site agora?
+ O login em duas etapas torna a sua conta mais segura ao exigir que você verifique seu login com outro dispositivo como uma chave de segurança, aplicativo de autenticação, SMS, ligação telefônica, ou e-mail. O login em duas etapas pode ser ativado no cofre web em bitwarden.com. Deseja visitar o site agora?Desbloquear com {0}
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Esta conta tem a verificação de duas etapas ativada, no entanto, nenhum dos provedores de verificação de duas etapas configurados são suportados neste dispositivo. Por favor, utilize um dispositivo suportado e/ou adicione provedores adicionais que são melhor suportados entre dispositivos (como um aplicativo de autenticação).
+ Esta conta tem a verificação em duas etapas ativada, no entanto, nenhum dos provedores de verificação em duas etapas configurados são suportados por este dispositivo. Por favor, utilize um dispositivo suportado e/ou adicione provedores adicionais que são melhor suportados entre dispositivos (como um aplicativo de autenticação).Código de Recuperação
@@ -1119,7 +1119,7 @@ A leitura será feita automaticamente.
Setembro
- Cadastro de Pessoas Físicas (CPF)
+ Número de Segurança SocialEstado / Província
@@ -1858,7 +1858,7 @@ A leitura será feita automaticamente.
Se ativado, a acessibilidade mostrará um pop-up para aumentar o Serviço de Autopreenchimento para aplicativos mais antigos que não suportam a Estrutura de Autopreenchimento do Android.
- Devido a uma Política Empresarial, você está restrito de salvar itens para seu cofre pessoal. Altere a opção de Propriedade para uma organização e escolha entre as Coleções disponíveis.
+ Devido a uma Política Empresarial, você está restrito de salvar itens para seu cofre pessoal. Altere a opção de propriedade para uma organização e escolha entre Coleções disponíveis.Uma política de organização está afetando suas opções de propriedade.
diff --git a/src/App/Resources/AppResources.pt-PT.resx b/src/App/Resources/AppResources.pt-PT.resx
index 6d69dcc75..ce3ee6770 100644
--- a/src/App/Resources/AppResources.pt-PT.resx
+++ b/src/App/Resources/AppResources.pt-PT.resx
@@ -247,7 +247,7 @@
Description message for the alert when internet connection is required to continue.
- Ligação à internet requerida
+ Ligação à internet necessáriaTitle for the alert when internet connection is required to continue.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- Meu cofre
+ O meu CofreThe title for the vault page.
@@ -591,7 +591,7 @@
Minimum numeric characters for password generator settings
- Especiais mínimos
+ Especiais minímosMinimum special characters for password generator settings
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Pesquisar coleção
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsPesquisar {0}
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Desbloquear
- Unlock Vault
+ Unlock vault30 minutos
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Tema Escuro Predefinido
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Copiar notas
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Concedido
- Formato do ficheiro
+ Formato do FicheiroIntroduza a sua palavra-passe mestra para exportar os dados do seu cofre.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1764,7 +1764,7 @@ Scanning will happen automatically.
Inicie sessão rapidamente utilizando o portal de início de sessão único da sua organização. Por favor introduza o identificador da sua organização para começar.
- Identificador da organização
+ Identificador da OrganizaçãoNão foi possível iniciar sessão com SSO
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contém um ou mais dos seguintes caracteres especiais: {0}
- Palavra-passe inválida
+ Palavra-passe InválidaPalavra-passe mestra não cumpre os requisitos da organização. Por favor verifique a informação da política e tente novamente.
@@ -1818,7 +1818,7 @@ Scanning will happen automatically.
Política de privacidade
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsServiços de Autopreenchimento
@@ -1827,37 +1827,37 @@ Scanning will happen automatically.
Usar preenchimento automático
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Usar Acessibilidade
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1910,10 +1910,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1923,10 +1923,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1936,7 +1936,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1946,17 +1946,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1972,7 +1972,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1984,10 +1984,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2002,7 +2002,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2010,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2076,37 +2076,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.Palavra-passe Mestra Atualizada
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2115,7 +2115,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2124,7 +2124,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2133,13 +2133,13 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.Adicionar Conta
@@ -2181,13 +2181,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codePedir palavra-passe única
- Send Code
+ Send codeSending
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2311,7 +2311,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Início de sessão necessário
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
Todas as notificações
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.ru.resx b/src/App/Resources/AppResources.ru.resx
index 5c444a441..b714e1988 100644
--- a/src/App/Resources/AppResources.ru.resx
+++ b/src/App/Resources/AppResources.ru.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Скопировать пароль
+ Копировать парольThe button text that allows a user to copy the login's password to their clipboard.
- Скопировать имя пользователя
+ Копировать имя пользователяThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,7 +179,7 @@
Изменить
- Изменить папку
+ Редактировать папкуEmail
@@ -364,7 +364,7 @@
Label for a uri/url.
- Использовать отпечаток пальца для разблокировки
+ Разблокировать по отпечатку пальцаИмя пользователя
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} скопирован(о).
+ Скопировано: {0}.Confirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Просмотр
- Посетить наш сайт
+ Посетите наш сайтПосетите наш сайт, чтобы получить помощь, прочесть новости, связаться с нами и/или узнать больше о том, как использовать Bitwarden.
@@ -425,7 +425,7 @@
Служба автозаполнения
- Избегать неоднозначных символов
+ Избегайте неоднозначных символовРасширение Bitwarden
@@ -587,7 +587,7 @@
Мастер-пароль должен содержать не менее 8 символов.
- Минимум цифр
+ Мин. кол-во цифрMinimum numeric characters for password generator settings
@@ -632,7 +632,7 @@
Прочее
- Пароль сгенерирован.
+ Пароль создан.Генератор паролей
@@ -647,7 +647,7 @@
Вы хотите перезаписать текущий пароль?
- Bitwarden обеспечивает автоматическую синхронизацию хранилища при помощи push-уведомлений. Для вашего максимального удобства, пожалуйста, выберите "Разрешить" при появлении предложения включить push-уведомления.
+ Bitwarden обеспечивает автоматическую синхронизацию хранилища с помощью push-уведомлений. Для удобства работы выберите "Разрешить" при появлении предложения включить push-уведомления.Push notifications for apple products
@@ -657,7 +657,7 @@
Пожалуйста, подумайте о том, чтобы помочь нам хорошим отзывом!
- Создать новый пароль
+ Придумать другой вариантВведите мастер-пароль повторно
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Для этой учетной записи включена двухфакторная аутентификация, однако ни один из настроенных вариантов аутентификации не поддерживается на этом устройстве. Используйте поддерживаемое устройство и/или добавьте другие варианты, которые поддерживаются на большинстве устройств (например, приложение-аутентификатор).
+ Для этого аккаунта включена двухэтапная аутентификация, но ни один из настроенных вариантов аутентификации не поддерживается на этом устройстве. Используйте поддерживаемое устройство и/или добавьте другие варианты, которые поддерживаются на большинстве устройств (например, приложение-аутентификатор).Код восстановления
@@ -846,7 +846,7 @@
For 2FA
- Настройки двухфакторной аутентификации
+ Настройки двухэтапной аутентификацииИспользовать другой метод двухфакторной аутентификации
@@ -887,7 +887,7 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Ключ проверки подлинности (TOTP)
+ Ключ аутентификатора (TOTP)Код подтверждения (TOTP)
@@ -955,7 +955,7 @@
Вы не можете использовать эту функцию, пока не обновите свой ключ шифрования.
- Узнать больше
+ Узнайть большеAPI URL-адреса сервера
@@ -1198,7 +1198,7 @@
Не удалось автоматически открыть меню настроек автозаполнения Android. Вы можете перейти в меню настроек автозаполнения вручную из настроек Android > Система > Языки и ввод > Дополнительно > Служба автозаполнения.
- Название пользовательского поля
+ Имя пользовательского поляЛогическое
@@ -1591,7 +1591,7 @@
При перезапуске приложения
- Автозаполнение упрощает безопасный доступ к вашему хранилищу Bitwarden со сторонних сайтов и приложений. Похоже, вы не включили службу автозаполнения Bitwarden. Это можно сделать в настройках.
+ Автозаполнение упрощает безопасный доступ к хранилищу Bitwarden со сторонних сайтов и приложений. Похоже, вы не включили службу автозаполнения Bitwarden. Это можно сделать в настройках.Тема будет изменена после перезапуска приложения.
@@ -1628,7 +1628,7 @@
Bitwarden требует внимания - см. раздел 'Служба специальных возможностей автозаполнения' в настройках Bitwarden.
- 3. На экране настроек приложений Android для Bitwarden перейдите в раздел "Отображение поверх других приложений" (в разделе "Дополнительно") и коснитесь переключателя, чтобы включить поддержку наложения.
+ 3. На экране настроек приложений Android для Bitwarden перейдите в раздел "Отображение поверх других приложений" (в разделе "Дополнительно") и коснитесь переключателя, чтобы включить поддержку оверлея.Разрешения
@@ -1833,13 +1833,13 @@
Cпециальные возможности
- При помощи службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в интернете. Если эта функция включена, при выборе полей авторизации будет отображаться всплывающее окно.
+ С помощью службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в Интернете. Если эта функция включена, при выборе полей авторизации будет отображаться всплывающее окно.
- При помощи службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в интернете. (Также необходимо включить опцию 'Поверх других приложений')
+ С помощью службы специальных возможностей Bitwarden вы можете автоматически заполнять логины в приложениях и в Интернете. (Также необходимо включить опцию 'Поверх других приложений'.)
- При помощи службы специальных возможностей Bitwarden для использования панели быстрого автозаполнения и/или отображения всплывающего окна с помощью опции 'Поверх других приложений' (если она включена).
+ Используйте службу специальных возможностей Bitwarden для панели быстрого автозаполнения и/или отображения всплывающего окна с помощью опции 'Поверх других приложений' (если она включена).Требуется для использования панели быстрого автозаполнения или для дополнения сервиса автозаполнения при использовании опции 'Поверх других приложений' (если она включена).
@@ -1848,13 +1848,13 @@
Поверх других приложений
- При включении, разрешает службе специальных возможностей Bitwarden отображать всплывающую панель при выборе полей авторизации.
+ Если включено, разрешает службе специальных возможностей Bitwarden отображать всплывающую панель при выборе полей авторизации.
- При включении, служба специальных возможностей Bitwarden отобразит всплывающую панель при выборе полей авторизации, чтобы помочь автоматически заполнить ваши учетные данные.
+ Если включено, служба специальных возможностей Bitwarden отобразит всплывающую панель при выборе полей авторизации, чтобы помочь автоматически заполнить учетные данные.
- При включении, служба специальных возможностей отобразит всплывающее сообщение, чтобы вызвать службу автозаполнения для старых приложений, не поддерживающих фреймворк автозаполнения Android.
+ Если включено, служба специальных возможностей отобразит всплывающее сообщение, чтобы вызвать службу автозаполнения для старых приложений, не поддерживающих фреймворк автозаполнения Android.В соответствии с корпоративной политикой вам запрещено сохранять элементы в личном хранилище. Измените владельца на организацию и выберите из доступных Коллекций.
@@ -2157,7 +2157,7 @@
Переключено на следующую доступную учетную запись
- Учетная запись заблокирована
+ Аккаунт заблокированВы успешно вышли из учетной записи
diff --git a/src/App/Resources/AppResources.si.resx b/src/App/Resources/AppResources.si.resx
index ea421a3c4..f1339b000 100644
--- a/src/App/Resources/AppResources.si.resx
+++ b/src/App/Resources/AppResources.si.resx
@@ -179,7 +179,7 @@
සංස්කරණය
- Edit Folder
+ Edit folderවි-තැපෑල
@@ -190,7 +190,7 @@
Full label for a email address.
- Email Us
+ Email usEmail us directly to get help or leave feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- File a Bug Report
+ File a bug reportOpen an issue at our GitHub repository.
@@ -229,7 +229,7 @@
බහාලුම්
- Folder updated.
+ Folder savedවියමන අඩවියට යන්න
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Internet Connection Required
+ Internet connection requiredTitle for the alert when internet connection is required to continue.
- Invalid Master Password. Try again.
+ Invalid master password. Try again.Invalid PIN. Try again.
@@ -276,19 +276,19 @@
ඔබට නික්මෙන්න අවශ්ය බව විශ්වාසද?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
- Master Password
+ Master passwordLabel for a master password.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- My Vault
+ My vaultThe title for the vault page.
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -364,7 +364,7 @@
Label for a uri/url.
- Use Fingerprint to Unlock
+ Use fingerprint to unlockපරිශීලක නාමය
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
- Verify Fingerprint
+ Verify fingerprint
- Verify Master Password
+ Verify master passwordVerify PIN
@@ -394,7 +394,7 @@
View
- Visit Our Website
+ Visit our websiteVisit our website to get help, news, email us, and/or learn more about how to use Bitwarden.
@@ -425,13 +425,13 @@
Auto-fill service
- Avoid Ambiguous Characters
+ Avoid ambiguous characters
- Bitwarden App Extension
+ Bitwarden app extension
- The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen.
+ The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen.Use Bitwarden in Safari and other apps to auto-fill your logins.
@@ -443,7 +443,7 @@
Use the Bitwarden accessibility service to auto-fill your logins.
- Change Email
+ Change emailYou can change your email address on the bitwarden.com web vault. Do you want to visit the website now?
@@ -468,22 +468,22 @@
Message shown when interacting with the server
- Edit Item
+ Edit item
- Enable Automatic Syncing
+ Allow automatic syncingEnter your account email address to receive your master password hint.
- Re-enable app extension
+ Reactivate app extensionAlmost done!
- Enable app extension
+ Activate app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -514,7 +514,7 @@
Fingerprint
- Generate Password
+ Generate passwordGet your master password hint
@@ -529,7 +529,7 @@
Quickly bulk import your items from other password management apps.
- Last Sync:
+ Last sync:Length
@@ -578,7 +578,7 @@
The master password is the password you use to access your vault. It is very important that you do not forget your master password. There is no way to recover the password in the event that you forget it.
- Master Password Hint (optional)
+ Master password hint (optional)A master password hint can help you remember your password if you forget it.
@@ -587,15 +587,15 @@
Master password must be at least 8 characters long.
- Minimum Numbers
+ Minimum numbersMinimum numeric characters for password generator settings
- Minimum Special
+ Minimum specialMinimum special characters for password generator settings
- More Settings
+ More settingsYou must log into the main Bitwarden app before you can use the extension.
@@ -604,7 +604,7 @@
Never
- New item created.
+ Item addedThere are no favorites in your vault.
@@ -632,13 +632,13 @@
වෙනත්
- Password generated.
+ Password generated
- Password Generator
+ Password generator
- Password Hint
+ Password hintWe've sent you an email with your master password hint.
@@ -647,7 +647,7 @@
Are you sure you want to overwrite the current password?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -657,13 +657,13 @@
Please consider helping us out with a good review!
- Regenerate Password
+ Regenerate password
- Re-type Master Password
+ Re-type master password
- Search Vault
+ Search vaultආරක්ෂාව
@@ -678,10 +678,10 @@
Enter a 4 digit PIN code to unlock the app with.
- Item Information
+ Item information
- Item updated.
+ Item savedSubmitting...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Syncing complete.
+ Syncing complete
- Syncing failed.
+ Syncing failedSync vault now
@@ -708,7 +708,7 @@
Two-step login
- Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
+ Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?Unlock with {0}
@@ -721,10 +721,10 @@
Message shown when interacting with the server
- Verification Code
+ Verification code
- View Item
+ View itemBitwarden web vault
@@ -796,10 +796,10 @@
Are you sure you want to auto-fill this item? It is not a complete match for "{0}".
- Matching Items
+ Matching items
- Possible Matching Items
+ Possible matching itemsසොයන්න
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Authenticator App
+ Authenticator appFor 2FA
@@ -827,11 +827,11 @@
For 2FA
- Login Unavailable
+ Login unavailableFor 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).ප්රතිසාධන කේතය
@@ -846,7 +846,7 @@
For 2FA
- Two-step Login Options
+ Two-step login optionsUse another two-step login method
@@ -856,18 +856,18 @@
For 2FA
- Verification email sent.
+ Verification email sentFor 2FATo continue, hold your YubiKey NEO against the back of the device or insert your YubiKey into your device's USB port, then touch its button.
- YubiKey Security Key
+ YubiKey security key"YubiKey" is the product name and should not be translated.
- Add New Attachment
+ Add new attachmentAttachments
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- Authenticator Key (TOTP)
+ Authenticator key (TOTP)
- Verification Code (TOTP)
+ Verification code (TOTP)Totp code label
@@ -931,7 +931,7 @@ Scanning will happen automatically.
Attachment deleted
- Choose File
+ Choose fileගොනුව
@@ -946,7 +946,7 @@ Scanning will happen automatically.
File Source
- Feature Unavailable
+ Feature unavailableMaximum file size is 100 MB.
@@ -955,13 +955,13 @@ Scanning will happen automatically.
You cannot use this feature until you update your encryption key.
- Learn More
+ Learn more
- API Server URL
+ API server URL
- Custom Environment
+ Custom environmentFor advanced users. You can specify the base URL of each service independently.
@@ -974,11 +974,11 @@ Scanning will happen automatically.
Validation error when something is not formatted correctly, such as a URL or email address.
- Identity Server URL
+ Identity server URL"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Self-hosted Environment
+ Self-hosted environmentSpecify the base URL of your on-premise hosted Bitwarden installation.
@@ -987,19 +987,19 @@ Scanning will happen automatically.
Server URL
- Web Vault Server URL
+ Web vault server URLTap this notification to view items from your vault.
- Custom Fields
+ Custom fields
- Copy Number
+ Copy number
- Copy Security Code
+ Copy security codeඅංකය
@@ -1017,7 +1017,7 @@ Scanning will happen automatically.
පිවිසෙන්න
- Secure Note
+ Secure noteලිපිනය 1
@@ -1038,7 +1038,7 @@ Scanning will happen automatically.
Brand
- Cardholder Name
+ Cardholder nameCity / Town
@@ -1056,16 +1056,16 @@ Scanning will happen automatically.
Dr
- Expiration Month
+ Expiration month
- Expiration Year
+ Expiration yearනවම්
- First Name
+ First nameදුරුතු
@@ -1077,13 +1077,13 @@ Scanning will happen automatically.
පොසොන්
- Last Name
+ Last name
- Full Name
+ Full name
- License Number
+ License numberමැදින්
@@ -1092,7 +1092,7 @@ Scanning will happen automatically.
වෙසක්
- Middle Name
+ Middle nameMr
@@ -1110,7 +1110,7 @@ Scanning will happen automatically.
වප්
- Passport Number
+ Passport numberPhone
@@ -1119,7 +1119,7 @@ Scanning will happen automatically.
බිනර
- Social Security Number
+ Social Security numberState / Province
@@ -1128,7 +1128,7 @@ Scanning will happen automatically.
Title
- Zip / Postal Code
+ Zip / Postal codeAddress
@@ -1143,7 +1143,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Icons Server URL
+ Icons server URLAuto-fill with Bitwarden
@@ -1198,7 +1198,7 @@ Scanning will happen automatically.
We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service.
- Custom Field Name
+ Custom field nameBoolean
@@ -1213,7 +1213,7 @@ Scanning will happen automatically.
Text
- New Custom Field
+ New custom fieldWhat type of custom field do you want to add?
@@ -1249,14 +1249,14 @@ Scanning will happen automatically.
Starts with
- URI Match Detection
+ URI match detection
- Match Detection
+ Match detectionURI match detection for auto-fill.
- Yes, and Save
+ Yes, and saveAuto-fill and save
@@ -1278,7 +1278,7 @@ Scanning will happen automatically.
The accessibility service may be helpful to use when apps do not support the standard auto-fill service.
- Password Updated
+ Password updatedex. Date this password was updated
@@ -1286,7 +1286,7 @@ Scanning will happen automatically.
ex. Date this item was updated
- AutoFill Activated!
+ AutoFill activated!You must log into the main Bitwarden app before you can use AutoFill.
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1337,10 +1337,10 @@ Scanning will happen automatically.
Logins
- Secure Notes
+ Secure notes
- All Items
+ All itemsURIs
@@ -1360,13 +1360,13 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameValue
- Password History
+ Password historyTypes
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1394,7 +1394,7 @@ Scanning will happen automatically.
Type
- Move Down
+ Move downMove Up
@@ -1437,13 +1437,13 @@ Scanning will happen automatically.
Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
- Number of Words
+ Number of wordsPassphrase
- Word Separator
+ Word separatorClear
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1553,10 +1553,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteExit
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1601,7 +1601,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberDownload
@@ -1610,25 +1610,25 @@ Scanning will happen automatically.
Shared
- Toggle Visibility
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationBiometrics
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Permission
@@ -1646,7 +1646,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatEnter your master password to export your vault data.
@@ -1655,7 +1655,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1722,7 +1722,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Item has been restored.
+ Item restoredConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1764,13 +1764,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1797,7 +1797,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Expired
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,17 +1947,17 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access count
- New Password
+ New passwordOptionally require a password for users to access this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1985,10 +1985,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2003,7 +2003,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2011,15 +2011,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,13 +2182,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.sk.resx b/src/App/Resources/AppResources.sk.resx
index 50568f54c..9fe565563 100644
--- a/src/App/Resources/AppResources.sk.resx
+++ b/src/App/Resources/AppResources.sk.resx
@@ -1610,7 +1610,7 @@ Skenovanie prebehne automaticky.
Zdieľané
- Toggle Visiblity
+ Toggle visibilityPlatnosť prihlásenia vypršala.
@@ -2374,7 +2374,7 @@ Pridať TOTP, aby ste kľúč bezpečne uložili
Všetky upozornenia
- Typ hesla
+ Password TypeČo by ste chceli vygenerovať?
diff --git a/src/App/Resources/AppResources.sl.resx b/src/App/Resources/AppResources.sl.resx
index 2f6580a4b..c7b11256b 100644
--- a/src/App/Resources/AppResources.sl.resx
+++ b/src/App/Resources/AppResources.sl.resx
@@ -276,13 +276,13 @@
Ste prepričani, da se želite odjaviti?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -647,7 +647,7 @@
Ali ste prepričani, da želite prepisati vaše trenutno geslo?
- Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.
+ Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications.Push notifications for apple products
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).
+ This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).Koda za obnovitev
@@ -1301,7 +1301,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Pojdite v nastavitve iOS aplikacije
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Preišči zbirko
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSearch {0}
@@ -1480,7 +1480,7 @@ Scanning will happen automatically.
Odkleni
- Unlock Vault
+ Unlock vault30 minut
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Kopiraj opombo
@@ -1591,7 +1591,7 @@ Scanning will happen automatically.
Ob ponovnem zagonu aplikacije
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1625,10 +1625,10 @@ Scanning will happen automatically.
Uporabi biometrično preverjanje za odklep
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.Dovoljenje
@@ -1670,7 +1670,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1700,7 +1700,7 @@ Scanning will happen automatically.
Priloga je bila uspešno shranjena.
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1752,7 +1752,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1819,7 +1819,7 @@ Scanning will happen automatically.
Privacy Policy
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden SettingsAuto-fill services
@@ -1828,37 +1828,37 @@ Scanning will happen automatically.
Use inline autofill
- Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
+ Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used.Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).Use draw-over
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1911,10 +1911,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1924,10 +1924,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1937,7 +1937,7 @@ Scanning will happen automatically.
Poteklo
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1947,7 +1947,7 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access countNovo geslo
@@ -1973,7 +1973,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2077,37 +2077,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2116,7 +2116,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2125,7 +2125,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2134,16 +2134,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2152,13 +2152,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2182,7 +2182,7 @@ Scanning will happen automatically.
Vaš račun je bil trajno izbrisan
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
@@ -2203,7 +2203,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2236,7 +2236,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2251,7 +2251,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2312,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.sr.resx b/src/App/Resources/AppResources.sr.resx
index 6c494e67d..c3bbd8642 100644
--- a/src/App/Resources/AppResources.sr.resx
+++ b/src/App/Resources/AppResources.sr.resx
@@ -2391,7 +2391,7 @@
„Ухвати све“ е-порука
- Forwarded Email Alias
+ Forwarded email aliasСлучајна реч
diff --git a/src/App/Resources/AppResources.sv.resx b/src/App/Resources/AppResources.sv.resx
index 3193a6863..96dc45535 100644
--- a/src/App/Resources/AppResources.sv.resx
+++ b/src/App/Resources/AppResources.sv.resx
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Skicka en buggrapport
+ Skicka en felrapportÖppna ett problemärende på vårt GitHub-arkiv.
@@ -229,7 +229,7 @@
Mappar
- Mapp uppdaterad.
+ Mappen uppdaterades.Gå till webbplats
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Tog bort objekt.
+ Objektet har raderats.Confirmation message after successfully deleting a login.
@@ -379,10 +379,10 @@
Confirmation message after suceessfully copying a value to the clipboard.
- Verifiera fingeravtryck
+ Bekräfta fingeravtryck
- Verifiera huvudlösenord
+ Bekräfta huvudlösenordVerifiera PIN-kod
@@ -578,7 +578,7 @@
Huvudlösenordet är det lösenord som du använder för att komma åt ditt valv. Det är väldigt viktigt att du inte glömmer bort ditt huvudlösenord, eftersom det inte går att återställa lösenordet om du skulle glömma bort det.
- Huvudlösenordsledtråd (frivillig)
+ Huvudlösenordsledtråd (valfri)En huvudlösenordsledtråd kan hjälpa dig att komma ihåg ditt huvudlösenord om du glömmer bort det.
@@ -587,11 +587,11 @@
Huvudlösenordet måste vara minst 8 tecken långt.
- Minst antal nummer
+ Minsta antal siffrorMinimum numeric characters for password generator settings
- Minst antal speciella tecken
+ Minsta antal speciella teckenMinimum special characters for password generator settings
@@ -681,7 +681,7 @@
Objektinformation
- Objekt uppdaterat.
+ Objektet uppdaterades.Skickar...
@@ -692,7 +692,7 @@
Message shown when interacting with the server
- Synkronisering genomförd.
+ Synkroniseringen slutfördes.Synkronisering misslyckades.
@@ -708,7 +708,7 @@
Tvåfaktorsautentisering
- Tvåstegsverifiering gör ditt konto säkrare genom att kräva att du verifierar din inloggning med en annan enhet, t.ex. en säkerhetsnyckel, autentiseringsapp, SMS, telefonsamtal eller e-post. Tvåstegsverifiering kan aktiveras i Bitwardens webbvalv. Vill du besöka webbplatsen nu?
+ Tvåstegsverifiering gör ditt konto säkrare genom att kräva att du verifierar din inloggning med en annan enhet, t.ex. en säkerhetsnyckel, autentiseringsapp, SMS, telefonsamtal eller e-post. Tvåstegsverifiering kan aktiveras i Bitwarden.com webbvalv. Vill du besöka webbplatsen nu?Lås upp med {0}
@@ -827,11 +827,12 @@
For 2FA
- Inloggning inte tillgänglig
+ Inloggning ej tillgängligFor 2FA whenever there are no available providers on this device.
- Detta konto har tvåstegsverifiering aktiverat, men inget av alternativen som används stöds på den här enheten. Använd en enhet som stöds och/eller lägg till en metod för tvåstegsverifiering med bättre stöd för flera olika typer av enheter (t.ex. via en autentiseringsapp).
+ Detta konto har tvåstegsverifiering aktiverat, men ingen av de konfigurerade metoderna stöds av den här enheten.
+Vänligen använd en enhet som stöds och/eller lägg till fler metoder som har bättre stöd bland enheter (t.ex. en autentiseringsapp).Återställningskod
@@ -856,7 +857,7 @@
For 2FA
- Verifierings-mejl skickat.
+ Verifieringsmeddelande har skickats.For 2FA
@@ -867,7 +868,7 @@
"YubiKey" is the product name and should not be translated.
- Bifoga fil
+ Lägg till ny bilagaBifogade filer
@@ -946,7 +947,7 @@ Scanning will happen automatically.
Filkälla
- Funktionen är inte tillgänglig
+ Funktion ej tillgängligFilen får vara maximalt 100 MB.
@@ -958,7 +959,7 @@ Scanning will happen automatically.
Läs mer
- API server-URL
+ API-server-URLAnpassad miljö
@@ -987,7 +988,7 @@ Scanning will happen automatically.
Server-URL
- Webbvalv server-URL
+ Webbvalvsserver-URLTryck på den här aviseringen för att visa inloggningar från ditt valv.
@@ -1056,10 +1057,10 @@ Scanning will happen automatically.
Dr
- Förfallomånad
+ Utgångsmånad
- Förfalloår
+ UtgångsårFebruari
@@ -1083,7 +1084,7 @@ Scanning will happen automatically.
Fullständigt namn
- Licensnummer
+ KörkortsnummerMars
@@ -1143,7 +1144,7 @@ Scanning will happen automatically.
Show a recognizable image next to each login.
- Ikoner Server-URL
+ Ikonserver-URLFyll i automatiskt med Bitwarden
@@ -1278,7 +1279,7 @@ Scanning will happen automatically.
Tillgänglighetstjänsten kan vara användbar när appar inte stöder standardvarianten av ifyllnad.
- Lösenord uppdaterat
+ Lösenordet uppdateradesex. Date this password was updated
@@ -1381,10 +1382,10 @@ Scanning will happen automatically.
Sök i samling
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsSök {0}
@@ -1553,7 +1554,7 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Kopiera anteckningar
@@ -1843,7 +1844,7 @@ Scanning will happen automatically.
Använd Bitwardens tillgänglighetstjänst för att använda snabbåtgärdsbrickan för automatisk ifyllnad och/eller visa ett popup-fönster med överlappning (om aktiverat).
- Krävs för att använda för att använda snabbåtgärdsbrickan för automatisk ifyllnad eller för att komplettera tjänsten för automatisk ifyllnad genom att använda överlappning (om aktiverat).
+ Krävs för att använda snabbåtgärdsbrickan för automatisk ifyllnad eller för att komplettera tjänsten för automatisk ifyllnad genom att använda överlappning (om aktiverat).Använd överlappning
@@ -1973,7 +1974,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2152,13 +2153,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2236,7 +2237,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2266,7 +2267,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2282,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2312,7 +2313,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2375,34 +2376,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2421,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.ta.resx b/src/App/Resources/AppResources.ta.resx
index 5ba26d792..b769d673a 100644
--- a/src/App/Resources/AppResources.ta.resx
+++ b/src/App/Resources/AppResources.ta.resx
@@ -2266,7 +2266,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2281,10 +2281,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2375,34 +2375,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2420,13 +2420,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.th.resx b/src/App/Resources/AppResources.th.resx
index 2e6eee746..07ff288d7 100644
--- a/src/App/Resources/AppResources.th.resx
+++ b/src/App/Resources/AppResources.th.resx
@@ -1304,7 +1304,7 @@ Scanning will happen automatically.
Access your vault directly from your keyboard to quickly autofill passwords.
- To enable password autofill on your device, follow these instructions:
+ To set up password auto-fill on your device, follow these instructions:1. Go to the iOS "Settings" app
@@ -1365,7 +1365,7 @@ Scanning will happen automatically.
This password was not found in any known data breaches. It should be safe to use.
- Identity Name
+ Identity nameค่า
@@ -1386,10 +1386,10 @@ Scanning will happen automatically.
Search collection
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text Sendsค้นหา {0}
@@ -1487,7 +1487,7 @@ Scanning will happen automatically.
Unlock
- Unlock Vault
+ Unlock vault30 minutes
@@ -1560,10 +1560,10 @@ Scanning will happen automatically.
Default dark theme
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
- Copy Note
+ Copy noteออก
@@ -1598,7 +1598,7 @@ Scanning will happen automatically.
On app restart
- Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
+ Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen.Your theme changes will apply when the app is restarted.
@@ -1608,7 +1608,7 @@ Scanning will happen automatically.
ex. Uppercase the first character of a word.
- Include Number
+ Include numberดาวน์โหลด
@@ -1617,25 +1617,25 @@ Scanning will happen automatically.
Shared
- Toggle Visiblity
+ Toggle visibilityYour login session has expired.
- Biometric Verification
+ Biometric verificationไบโอเมทริกซ์
- Use Biometrics To Unlock
+ Use biometrics to unlock
- Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings
+ Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings
- 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.
+ 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support.สิทธิ์การใช้งาน
@@ -1653,7 +1653,7 @@ Scanning will happen automatically.
Granted
- File Format
+ File formatใส่รหัสผ่านหลักของคุณเพื่อส่งออกข้อมูลตู้เซฟของคุณ
@@ -1662,7 +1662,7 @@ Scanning will happen automatically.
Send a verification code to your email
- Code Sent!
+ Code sent!Confirm your identity to continue.
@@ -1677,7 +1677,7 @@ Scanning will happen automatically.
Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.
- Confirm Vault Export
+ Confirm vault exportTitle for the alert to confirm vault exports.
@@ -1707,7 +1707,7 @@ Scanning will happen automatically.
Attachment saved successfully
- Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.
+ Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.No password fields detected
@@ -1759,7 +1759,7 @@ Scanning will happen automatically.
Biometric unlock for autofill disabled pending verification of master password.
- Enable sync on refresh
+ Allow sync on refreshSyncing vault with pull down gesture.
@@ -1771,13 +1771,13 @@ Scanning will happen automatically.
Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.
- Organization Identifier
+ Organization identifierCurrently unable to login with SSO
- Set Master Password
+ Set master passwordIn order to complete logging in with SSO, please set a master password to access and protect your vault.
@@ -1804,7 +1804,7 @@ Scanning will happen automatically.
Contain one or more of the following special characters: {0}
- Invalid Password
+ Invalid passwordPassword does not meet organization requirements. Please check the policy information and try again.
@@ -1826,7 +1826,7 @@ Scanning will happen automatically.
นโยบายความเป็นส่วนตัว
- Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
+ Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden Settingsบริการกรอกข้อมูลอัตโนมัติ
@@ -1841,31 +1841,31 @@ Scanning will happen automatically.
Use accessibility
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected.
- Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)
+ Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well)
- Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).
+ Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on).
- Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
+ Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on).ใช้งานการวางซ้อนการ
- When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
+ Allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
- If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
+ If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.
- If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
+ If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
+ Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections.An organization policy is affecting your ownership options.
@@ -1918,10 +1918,10 @@ Scanning will happen automatically.
Text type is not selected, tap to select.
- Deletion Date
+ Deletion date
- Deletion Time
+ Deletion timeThe Send will be permanently deleted on the specified date and time.
@@ -1931,10 +1931,10 @@ Scanning will happen automatically.
Pending deletion
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeIf set, access to this Send will expire on the specified date and time.
@@ -1944,7 +1944,7 @@ Scanning will happen automatically.
หมดอายุ
- Maximum Access Count
+ Maximum access countIf set, users will no longer be able to access this Send once the maximum access count is reached.
@@ -1954,7 +1954,7 @@ Scanning will happen automatically.
Max access count reached
- Current Access Count
+ Current access countรหัสผ่านใหม่
@@ -1964,7 +1964,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Remove Password
+ Remove passwordAre you sure you want to remove the password?
@@ -1980,7 +1980,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1992,10 +1992,10 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Copy Link
+ Copy link
- Share Link
+ Share linkSend link
@@ -2010,7 +2010,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Add Send
+ New Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2018,15 +2018,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send updated.
+ Send saved'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2084,37 +2084,37 @@ Scanning will happen automatically.
This action is protected, to continue please re-enter your master password to verify your identity.
- Captcha Required
+ Captcha required
- Captcha Failed. Please try again.
+ Captcha failed. Please try again.
- Updated Master Password
+ Updated master password
- Update Master Password
+ Update master password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
- Updating Password
+ Updating passwordCurrently unable to update password
- Remove Master Password
+ Remove master password
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2123,7 +2123,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2132,7 +2132,7 @@ Scanning will happen automatically.
Authenticate WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2141,16 +2141,16 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.
- Add Account
+ Add accountUnlocked
@@ -2159,13 +2159,13 @@ Scanning will happen automatically.
Locked
- Logged Out
+ Logged outSwitched to next available account
- Account Locked
+ Account lockedAccount logged out successfully
@@ -2189,13 +2189,13 @@ Scanning will happen automatically.
Your account has been permanently deleted
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
- Send Code
+ Send codeSending
@@ -2243,7 +2243,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Tap to go back
@@ -2258,7 +2258,7 @@ Scanning will happen automatically.
Filter items by vault
- All Vaults
+ All vaultsVaults
@@ -2273,7 +2273,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2288,10 +2288,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2319,7 +2319,7 @@ select Add TOTP to store the key safely
Allow screen capture
- Are you sure you want to enable Screen Capture?
+ Are you sure you want to turn on screen capture?Login requested
@@ -2382,34 +2382,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2427,13 +2427,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.tr.resx b/src/App/Resources/AppResources.tr.resx
index 262a75b9d..ebc0c4338 100644
--- a/src/App/Resources/AppResources.tr.resx
+++ b/src/App/Resources/AppResources.tr.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Parolayı kopyala
+ Parolayı KopyalaThe button text that allows a user to copy the login's password to their clipboard.
- Kullanıcı adını kopyala
+ Kullanıcı Adını KopyalaThe button text that allows a user to copy the login's username to their clipboard.
@@ -382,7 +382,7 @@
Parmak İzini Doğrula
- Ana Parolayı Doğrula
+ Ana parolayı doğrulaPIN'i doğrula
@@ -663,7 +663,7 @@
Ana parolayı tekrar yazın
- Kasada ara
+ Kasada AraGüvenlik
@@ -1213,7 +1213,7 @@ Kod otomatik olarak taranacaktır.
Metin
- Yeni özel alan
+ Yeni Özel AlanNe tür bir özel alan eklemek istiyorsunuz?
@@ -1252,11 +1252,11 @@ Kod otomatik olarak taranacaktır.
URI eşleşme tespiti
- Eşleşme tespiti
+ Eşleşme TespitiURI match detection for auto-fill.
- Evet ve kaydet
+ Evet, KaydetOtomatik doldur ve kaydet
@@ -1278,7 +1278,7 @@ Kod otomatik olarak taranacaktır.
Erişilebilirlik hizmeti, standart otomatik doldurma hizmetini desteklemeyen uygulamalarda işe yarayabilir.
- Parola güncellendi
+ Parola Güncellendiex. Date this password was updated
@@ -1480,7 +1480,7 @@ Kod otomatik olarak taranacaktır.
Kilidi aç
- Kasa Kilidini Aç
+ Kasanı Aç30 dakika
@@ -1556,7 +1556,7 @@ Kod otomatik olarak taranacaktır.
Varsayılan (sistem) temayı kullanırken cihazınızın koyu modu açıldığında koyu temaya geçmek için bunu seçin.
- Notu kopyala
+ Notları kopyalaÇıkış
@@ -1770,7 +1770,7 @@ Kod otomatik olarak taranacaktır.
Şu anda SSO ile giriş yapılamıyor
- Ana parolayı belirle
+ Ana Parola BelirleyinSSO ile girişinizi tamamlamak için lütfen kasanıza erişirken kullanacağınız ana parolayı belirleyin.
diff --git a/src/App/Resources/AppResources.uk.resx b/src/App/Resources/AppResources.uk.resx
index 0c6905a19..801a6a068 100644
--- a/src/App/Resources/AppResources.uk.resx
+++ b/src/App/Resources/AppResources.uk.resx
@@ -468,7 +468,7 @@
Message shown when interacting with the server
- Зміна запису
+ Редагування записуУвімкніть автоматичну синхронізацію
@@ -922,7 +922,7 @@
Автоматично копіювати коди TOTP
- Для використання цієї функції необхідний преміум статус.
+ Для використання цієї функції необхідна передплата преміум.Вкладення додано
@@ -1710,7 +1710,7 @@
Message shown when interacting with the server
- Запис перенесено до смітника.
+ Запис переміщено до смітника.Confirmation message after successfully soft-deleting a login
@@ -2059,7 +2059,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- З безплатним обліковим записом можна відправляти лише текст. Щоб відправляти файли через Send, необхідно передплатити тарифний план.
+ З безплатним обліковим записом можна відправляти лише текст. Щоб відправляти файли через Send, необхідна передплата преміум.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
diff --git a/src/App/Resources/AppResources.vi.resx b/src/App/Resources/AppResources.vi.resx
index 4dfb03b27..97b8a8862 100644
--- a/src/App/Resources/AppResources.vi.resx
+++ b/src/App/Resources/AppResources.vi.resx
@@ -251,7 +251,7 @@
Title for the alert when internet connection is required to continue.
- Mật khẩu chủ không đúng. Thử lại.
+ Mật khẩu chính không đúng. Thử lại.Mã PIN không đúng. Thử lại.
@@ -288,7 +288,7 @@
Bạn có muốn chuyển sang tài khoản này không?
- Mật khẩu
+ Mật khẩu chínhLabel for a master password.
@@ -382,7 +382,7 @@
Xác thực vân tay
- Nhập lại mật khẩu
+ Nhập lại mật khẩu chủXác thực mã PIN
@@ -425,7 +425,7 @@
Dịch vụ tự động điền
- Tránh các ký tự không rõ ràng
+ Tránh các ký tự dễ gây nhầm lẫnPhần mở rộng Bitwarden
@@ -578,7 +578,7 @@
Mật khẩu chủ là mật khẩu bạn sử dụng để truy cập kho mật khẩu của bạn. Nó rất quan trọng nên bạn không được quên mật khẩu chủ của mình. Không thể khôi phục lại mật khẩu chủ nếu bạn quên nó.
- Gợi ý mật khẩu chủ (tùy chọn)
+ Gợi ý mật khẩu chính (tùy chọn)Một gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chủ của bạn nếu bạn quên nó.
@@ -647,7 +647,7 @@
Bạn có chắc chắn muốn ghi đè mật khẩu hiện tại không?
- Bitwarden giữ kho mật khẩu của bạn luôn được đồng bộ tự động hóa bằng cách sử dụng thông báo đẩy. Để mang lại trải nghiệm tốt nhất, hãy chọn "Đồng ý" trên bảng thông báo sau khi được yêu cầu bật thông báo đẩy.
+ Bitwarden giữ kho mật khẩu của bạn được đồng bộ tự động hóa bằng cách sử dụng thông báo đẩy. Để mang lại trải nghiệm tốt nhất, vui lòng chọn "Đồng ý" trên bảng thông báo sau khi được yêu cầu bật thông báo đẩy.Push notifications for apple products
@@ -660,7 +660,7 @@
Tạo lại mật khẩu
- Nhập lại mật khẩu chủ
+ Nhập lại mật khẩu chínhTìm kiếm trong kho
@@ -708,7 +708,7 @@
Xác thực hai lớp
- Xác thực hai lớp giúp cho tài khoản của bạn an toàn hơn bằng cách yêu cầu bạn xác minh đăng nhập của bạn bằng khóa bảo mật, ứng dụng xác thực, tin nhắn, cuộc gọi điện thoại hoặc email. Bạn có thể bật xác thực hai lớp trong trang web Bitwarden. Bạn có muốn ghé thăm bitwarden.com bây giờ?
+ Xác thực hai lớp giúp tài khoản của bạn an toàn hơn bằng cách thêm một bước xác minh hoạt động đăng nhập của bạn bằng khóa bảo mật, ứng dụng xác thực, tin nhắn, cuộc gọi điện thoại hoặc email. Bạn có thể bật xác thực hai lớp trong trang web Bitwarden. Bạn có muốn ghé thăm bitwarden.com bây giờ không?Mở khóa với {0}
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Ứng dụng Authenticator
+ Ứng dụng Xác thực hai lớpFor 2FA
@@ -834,7 +834,7 @@
Tài khoản này đã kích hoạt xác thực hai lớp, tuy nhiên dịch vụ xác thực hai lớp đã chọn không được hỗ trợ trên thiết bị này. Vui lòng sử dụng thiết bị được hỗ trợ và/hoặc dịch vụ xác thực bổ sung có thể hoạt động tốt trên thiết bị (chẳng hạn như một ứng dụng xác thực).
- Mã phục hồi
+ Mã khôi phụcFor 2FA
@@ -863,7 +863,7 @@
Giữ YubiKey NEO lên phía sau của thiết bị để tiếp tục.
- Khóa bảo mật YubiKey NEO
+ Khóa bảo mật YubiKey"YubiKey" is the product name and should not be translated.
@@ -1249,10 +1249,10 @@ Scanning will happen automatically.
Bắt đầu với
- Độ khớp với URL
+ Độ phù hợp với URL
- Độ khớp
+ Độ phù hợpURI match detection for auto-fill.
@@ -1381,10 +1381,10 @@ Scanning will happen automatically.
Tìm kiếm bộ sưu tập
- Search File Sends
+ Search file Sends
- Search Text Sends
+ Search text SendsTìm kiếm {0}
@@ -1553,7 +1553,7 @@ Scanning will happen automatically.
Giao diện tối mặc định
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.Sao chép ghi chú
@@ -1610,7 +1610,7 @@ Scanning will happen automatically.
Đã chia sẻ
- Toggle Visiblity
+ Toggle visibilityPhiên đăng nhập của bạn đã hết hạn.
@@ -1923,10 +1923,10 @@ Scanning will happen automatically.
Đang chờ xóa
- Expiration Date
+ Expiration date
- Expiration Time
+ Expiration timeNếu được thiết lập, truy cập vào Send này sẽ hết hạn vào ngày và giờ được chỉ định.
@@ -1972,7 +1972,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Deactivate this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,7 +2010,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send has been deleted.
+ Send deleted'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2018,7 +2018,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- New send created.
+ Send created'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2088,7 +2088,7 @@ Scanning will happen automatically.
Cập nhật Mật khẩu chính
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.Đang cập nhật Mật khẩu
@@ -2100,13 +2100,13 @@ Scanning will happen automatically.
Xóa mật khẩu chính
- {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+ {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organization.
+ If you do not want to remove your master password, you may leave this organization.
- Leave Organization
+ Leave organizationLeave {0}?
@@ -2115,7 +2115,7 @@ Scanning will happen automatically.
FIDO2 WebAuthn
- To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.
+ To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.
@@ -2124,7 +2124,7 @@ Scanning will happen automatically.
Xác thực WebAuthn
- Return to App
+ Return to appPlease make sure your default browser supports WebAuthn and try again.
@@ -2133,13 +2133,13 @@ Scanning will happen automatically.
This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s)Your vault timeout exceeds the restrictions set by your organization.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your individual vault.Thêm tài khoản
@@ -2181,7 +2181,7 @@ Scanning will happen automatically.
Tài khoản của bạn đã được xóa vĩnh viễn
- Invalid Verification Code.
+ Invalid verification codeRequest one-time password
@@ -2202,7 +2202,7 @@ Scanning will happen automatically.
Verifying
- Resend Code
+ Resend codeA verification code was sent to your email
@@ -2235,7 +2235,7 @@ Scanning will happen automatically.
Numbers (0 to 9)
- Special Characters (!@#$%^&*)
+ Special characters (!@#$%^&*)Chạm để trở lại
@@ -2265,7 +2265,7 @@ Scanning will happen automatically.
TOTP
- Verification Codes
+ Verification codesPremium subscription required
@@ -2280,10 +2280,10 @@ Scanning will happen automatically.
Cannot scan QR Code?
- Authenticator Key
+ Authenticator key
- Enter Key Manually
+ Enter key manuallyAdd TOTP
@@ -2374,34 +2374,34 @@ select Add TOTP to store the key safely
All notifications
- Password Type
+ Password typeWhat would you like to generate?
- Username Type
+ Username type
- Plus Addressed Email
+ Plus addressed email
- Catch-all Email
+ Catch-all email
- Forwarded Email Alias
+ Forwarded email alias
- Random Word
+ Random wordEmail (required)
- Domain Name (required)
+ Domain name (required)
- API Key (required)
+ API key (required)Service
@@ -2419,13 +2419,13 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API Access Token
+ API access tokenAre you sure you want to overwrite the current username?
- Generate Username
+ Generate usernameEmail Type
diff --git a/src/App/Resources/AppResources.zh-Hans.resx b/src/App/Resources/AppResources.zh-Hans.resx
index 1f49a915a..0cb30490c 100644
--- a/src/App/Resources/AppResources.zh-Hans.resx
+++ b/src/App/Resources/AppResources.zh-Hans.resx
@@ -247,7 +247,7 @@
Description message for the alert when internet connection is required to continue.
- 需要因特网连接
+ 需要互联网连接Title for the alert when internet connection is required to continue.
@@ -296,7 +296,7 @@
Text to define that there are more options things to see.
- 密码库
+ 我的密码库The title for the vault page.
@@ -353,7 +353,7 @@
The title for the sync page.
- 非常感谢
+ 谢谢工具
@@ -428,7 +428,7 @@
避免易混淆的字符
- Bitwarden 应用程序扩展
+ bitwarden App 扩展向您的密码库中添加新登录项目的最简单方法,就是通过 Bitwarden 应用程序扩展。转到「设置」界面了解更多有关使用 Bitwarden 应用程序扩展的方法。
@@ -443,7 +443,7 @@
使用 Bitwarden 无障碍服务自动填充您的登录信息。
- 修改 Email
+ 修改电子邮件地址您可以在 bitwarden.com 网页版密码库修改电子邮件地址。您现在要访问这个网站吗?
@@ -461,7 +461,7 @@
继续
- 创建账户
+ 创建账号正在创建账户...
@@ -477,13 +477,13 @@
请输入您账户的 Email 地址来接收主密码提示。
- 重新启用应用程序扩展
+ 重新开启 App 扩展就差一步!
- 启用应用程序扩展
+ 开启 App 扩展在 Safari 中,使用共享图标寻找 Bitwarden (提示:在菜单最下面一行的右边)。
@@ -529,7 +529,7 @@
从其他密码管理应用中快速批量导入您的项目。
- 上次同步:
+ 上次同步:长度
@@ -578,7 +578,7 @@
主密码是您访问密码库的唯一密码。它非常重要,请您不要忘记。一旦忘记,无任何办法恢复此密码。
- 主密码提示(可选)
+ 主密码提示 (可选)主密码提示可以在你忘记密码时帮你回忆起来。
@@ -632,7 +632,7 @@
其他
- 密码已经生成。
+ 密码已生成。密码生成器
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- 验证器 App
+ 验证器应用For 2FA
@@ -834,7 +834,7 @@
此账户已启用两步登录,但此设备上不支持任何已配置的两步提供程序。请使用受支持的设备和/或添加其他跨设备支持的提供程序(例如验证器应用)。
- 恢复代码
+ 恢复码For 2FA
@@ -856,14 +856,14 @@
For 2FA
- 验证邮件已发送。
+ 验证电子邮件已发送。For 2FA要继续,请将您的 YubiKey 靠在设备背面或者将 YubiKey 插入您设备的 USB 端口,然后按下按钮。
- YubiKey 安全钥匙
+ YubiKey NEO 安全密钥"YubiKey" is the product name and should not be translated.
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- 验证器密钥 (TOTP)
+ 验证器密钥(TOTP)
- 验证码 (TOTP)
+ 验证码(TOTP)Totp code label
@@ -955,7 +955,7 @@
在您更新加密密钥前,您不能使用此功能。
- 了解更多信息
+ 了解更多信息。API 服务器 URL
@@ -987,7 +987,7 @@
服务器 URL
- 网页密码库服务器 URL
+ Web 存储库服务器 URL点击此通知以查看密码库中的项目。
@@ -1286,7 +1286,7 @@
ex. Date this item was updated
- 自动填充已激活!
+ 自动填写已激活!您必须先登录 Bitwarden 应用,才可以使用自动填充。
@@ -1301,7 +1301,7 @@
从键盘直接访问密码库以快速自动填充密码。
- 请按照以下步骤在你的设备上开启密码自动填充功能:
+ 请按照以下步骤在你的设备上开启密码自动填写功能:1. 前往 iOS 的「设置」应用
@@ -1836,7 +1836,7 @@
使用 Bitwarden 无障碍服务来自动填充您在应用和网络中的登录信息。启用后,将在选择登录字段时显示弹出窗口。
- 使用 Bitwarden 无障碍服务来自动填写您在应用和网络上的登录信息。(需同时启用 Draw-Over 功能)
+ 使用 Bitwarden 无障碍服务来自动填充您在应用和网络上的登录信息。(需同时启用 Draw-Over 功能)使用 Bitwarden 无障碍服务来使用自动填写快速行动磁贴,和/或使用 Draw-Over(若已启用)来显示弹出窗口。
@@ -1926,7 +1926,7 @@
过期日期
- 过期时间
+ 到期时间设置后,对此 Send 的访问将在指定的日期和时间后过期。
@@ -2235,7 +2235,7 @@
数字 (0-9)
- 特殊字符 (!@#$%^&*)
+ 特殊字符(!@#$%^&*)点击以返回
@@ -2250,7 +2250,7 @@
按密码库过滤项目
- 所有密码库
+ 全部密码库密码库
diff --git a/src/App/Resources/AppResources.zh-Hant.resx b/src/App/Resources/AppResources.zh-Hant.resx
index 99e0f656f..5591e513b 100644
--- a/src/App/Resources/AppResources.zh-Hant.resx
+++ b/src/App/Resources/AppResources.zh-Hant.resx
@@ -229,7 +229,7 @@
資料夾
- 已更新資料夾。
+ 資料夾已更新。前往網站
@@ -425,7 +425,7 @@
自動填入服務
- 避免易混淆的字元
+ 避免使用易混淆的字元Bitwarden App 延伸功能
@@ -461,7 +461,7 @@
繼續
- 建立帳戶
+ 新增帳戶正在建立帳戶...
@@ -578,7 +578,7 @@
主密碼是用於存取密碼庫的密碼。它非常重要,請您不要忘記它。若您忘記了主密碼,沒有任何方法能將其復原。
- 主密碼提示(選用)
+ 主密碼提示(可省略)主密碼提示可以在您忘記主密碼時幫助您回憶主密碼。
@@ -587,11 +587,11 @@
主密碼需要至少 8 個字元。
- 最少數字位數
+ 數字Minimum numeric characters for password generator settings
- 最少符號位數
+ 符號Minimum special characters for password generator settings
@@ -799,7 +799,7 @@
相符的項目
- 可能相符的項目
+ 可能符合的項目搜尋
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- 驗證器應用程式
+ 認證器應用程式For 2FA
@@ -834,7 +834,7 @@
此帳戶已啟用兩步驟登入,但是本裝置不支援已設定的兩步驟登入方式。請使用已支援的裝置,及/或新增可以更好地跨裝置的兩步驟登入方式(例如驗證器應用程式)。
- 復原碼
+ 復原代碼For 2FA
@@ -863,7 +863,7 @@
若要繼續,請將您的 YubiKey 靠在裝置的背面或者將 YubiKey 插入您裝置的 USB 連接埠,然後按下按鈕。
- YubiKey 安全金鑰
+ YubiKey 安全鑰匙"YubiKey" is the product name and should not be translated.
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- 驗證器金鑰 (TOTP)
+ 驗證器金鑰(TOTP)
- 驗證碼 (TOTP)
+ 驗證碼(TOTP)Totp code label
@@ -946,7 +946,7 @@
檔案來源
- 功能無法使用
+ 功能不可用檔案最大為 100MB。
@@ -987,7 +987,7 @@
伺服器 URL
- 網頁版密碼庫伺服器 URL
+ 網路版密碼庫伺服器 URL按此通知以檢視密碼庫中的登入資料。
@@ -1143,7 +1143,7 @@
在每個登入資料旁顯示一個可辨識的圖片。
- 圖示伺服器 URL
+ 圖標伺服器 URL使用 Bitwarden 自動填入
@@ -1282,7 +1282,7 @@
ex. Date this password was updated
- 已更新
+ 更新於ex. Date this item was updated
@@ -1610,13 +1610,13 @@
共用
- 切換可見度
+ 切換顯示您的登入階段已逾期。
- 生物特徵辨識驗證
+ 生物辨識驗證生物特徵辨識
@@ -1827,7 +1827,7 @@
使用內嵌式自動填入
- 若您的 IME(鍵盤)支援,將使用內嵌式自動填入。若您的設定不支援(或未啟用此選項),將使用預設的疊加式自動填入。
+ 若您的 IME(鍵盤)支援,將使用內嵌式自動填入。若您的設定不支援(或未啟用此選項),將使用預設的覆疊式自動填入。使用無障礙
@@ -1851,7 +1851,7 @@
啟用後,在選擇登入欄位時將允許 Bitwarden 無障礙服務顯示彈出式視窗。
- 若啟用,當選擇登入欄位自動填入您的登入資料時,Bitwarden 無障礙服務將顯示一個彈出式視窗。
+ 若啟用,當選擇登入欄位自動填入您的登入資料時,Bitwarden 無障礙服務將顯示彈出式視窗。若啟用,無障礙將顯示一個彈出式視窗以增強不支援 Android 自動填入框架的舊應用程式的自動填入服務。
@@ -2202,7 +2202,7 @@
正在驗證
- 重新傳送驗證碼
+ 重新傳送代碼已傳送驗證碼至您的電子郵件信箱
@@ -2452,7 +2452,7 @@
無障礙服務聲明
- Bitwarden 使用無障礙服務搜寻應用程式和網站中的登入欄位,然後建立適當的欄位 ID,以便在找到應用程式或網站的匹配項目時輸入用戶名和密碼。 我們不會存儲服務提供給我們的任何資訊,也不會試圖控制憑證文字輸入以外的任何荧幕元素。
+ Bitwarden 使用無障礙服務搜寻應用程式和網站中的登入欄位,然後建立適當的欄位 ID,以便在找到應用程式或網站的匹配項目時輸入用戶名和密碼。 我們不會存儲此服務提供給我們的任何資訊,也不會試圖控制憑證文字輸入以外的任何荧幕元素。接受
From 6c404c82297424776ceac4331fe6ac03f32505b1 Mon Sep 17 00:00:00 2001
From: mp-bw <59324545+mp-bw@users.noreply.github.com>
Date: Fri, 14 Oct 2022 10:53:18 -0400
Subject: [PATCH 26/32] Testing removal of Xamarin.Forms dependency from
iOS.ShareExtension (#2137)
---
src/iOS.ShareExtension/iOS.ShareExtension.csproj | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/iOS.ShareExtension/iOS.ShareExtension.csproj b/src/iOS.ShareExtension/iOS.ShareExtension.csproj
index 5a7757f65..d86866cc3 100644
--- a/src/iOS.ShareExtension/iOS.ShareExtension.csproj
+++ b/src/iOS.ShareExtension/iOS.ShareExtension.csproj
@@ -166,7 +166,6 @@
- 4.5.3
From c7e9f30a9a57fc64b700fc26f33ced1eaef2053c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Fri, 14 Oct 2022 17:35:17 +0100
Subject: [PATCH 27/32] [SG-703] Login request is not removed after dismissing
push notification (#2134)
* [SG-703] Added category to iOS notifications in order to be able to receive dismiss actions
* [SG-703] PR Fix
---
src/Core/Constants.cs | 2 ++
src/iOS/Services/iOSPushNotificationService.cs | 8 +++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 903ef5e7e..735c573ae 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -32,6 +32,8 @@
public static string RememberedOrgIdentifierKey = "rememberedOrgIdentifier";
public const string PasswordlessNotificationId = "26072022";
public const string AndroidNotificationChannelId = "general_notification_channel";
+ public const string iOSNotificationCategoryId = "dismissableCategory";
+ public const string iOSNotificationClearActionId = "Clear";
public const string NotificationData = "notificationData";
public const string NotificationDataType = "Type";
public const int SelectFileRequestCode = 42;
diff --git a/src/iOS/Services/iOSPushNotificationService.cs b/src/iOS/Services/iOSPushNotificationService.cs
index bcc22b904..aec24657b 100644
--- a/src/iOS/Services/iOSPushNotificationService.cs
+++ b/src/iOS/Services/iOSPushNotificationService.cs
@@ -5,6 +5,7 @@ using System.Linq;
using System.Threading.Tasks;
using Bit.App.Abstractions;
using Bit.App.Models;
+using Bit.App.Resources;
using Bit.App.Services;
using Bit.Core;
using Bit.Core.Services;
@@ -84,7 +85,8 @@ namespace Bit.iOS.Services
var content = new UNMutableNotificationContent()
{
Title = title,
- Body = message
+ Body = message,
+ CategoryIdentifier = Constants.iOSNotificationCategoryId
};
if (data != null)
@@ -92,6 +94,10 @@ namespace Bit.iOS.Services
content.UserInfo = NSDictionary.FromObjectAndKey(NSData.FromString(JsonConvert.SerializeObject(data), NSStringEncoding.UTF8), new NSString(Constants.NotificationData));
}
+ var actions = new UNNotificationAction[] { UNNotificationAction.FromIdentifier(Constants.iOSNotificationClearActionId, AppResources.Clear, UNNotificationActionOptions.Foreground) };
+ var category = UNNotificationCategory.FromIdentifier(Constants.iOSNotificationCategoryId, actions, new string[] { }, UNNotificationCategoryOptions.CustomDismissAction);
+ UNUserNotificationCenter.Current.SetNotificationCategories(new NSSet(category));
+
var request = UNNotificationRequest.FromIdentifier(data.Id, content, null);
UNUserNotificationCenter.Current.AddNotificationRequest(request, (err) =>
{
From a72a0ec0ce04c888fb57d9b190f9e336ebfdc706 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Ch=C4=99ci=C5=84ski?=
Date: Mon, 17 Oct 2022 11:50:38 +0200
Subject: [PATCH 28/32] Fix autobump workflow (#2138)
---
.github/workflows/version-auto-bump.yml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml
index cc42f6316..b12756bff 100644
--- a/.github/workflows/version-auto-bump.yml
+++ b/.github/workflows/version-auto-bump.yml
@@ -2,8 +2,9 @@
name: Version Auto Bump
on:
- release:
- types: [published]
+ push:
+ tags:
+ - v**
jobs:
setup:
@@ -18,13 +19,14 @@ jobs:
- name: Calculate bumped version
id: version
env:
- RELEASE_TAG: ${{ github.event.release.tag_name }}
+ RELEASE_TAG: ${{ github.ref }}
run: |
CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\1/')
CURR_PATCH=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\2/')
+ echo "Current Major: $CURR_MAJOR"
echo "Current Patch: $CURR_PATCH"
- NEW_PATCH=$((CURR_PATCH++))
+ NEW_PATCH=$((CURR_PATCH+1))
NEW_VER=$CURR_MAJOR.$NEW_PATCH
echo "New Version: $NEW_VER"
echo "::set-output name=new-version::$NEW_VER"
From d18efdea738defa94268a81269daf317cc92d0f0 Mon Sep 17 00:00:00 2001
From: sneakernuts <671942+sneakernuts@users.noreply.github.com>
Date: Mon, 17 Oct 2022 15:19:06 +0000
Subject: [PATCH 29/32] updated version bump + crowdin-pull workflows (#2119)
* updated version bump + crowdin-pull workflows
* updated retrieve secrets step and changed gpg vars to reference kv secrets
* Removed duplicate step
Co-authored-by: Vince Grassia <593223+vgrassia@users.noreply.github.com>
---
.github/workflows/crowdin-pull.yml | 21 ++++++++-------------
.github/workflows/version-bump.yml | 24 ++++++++++++++++++++++--
2 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml
index 04d9374b5..6dd2e3c4f 100644
--- a/.github/workflows/crowdin-pull.yml
+++ b/.github/workflows/crowdin-pull.yml
@@ -24,17 +24,10 @@ jobs:
- name: Retrieve secrets
id: retrieve-secrets
- env:
- KEYVAULT: bitwarden-prod-kv
- SECRETS: |
- crowdin-api-token
- run: |
- for i in ${SECRETS//,/ }
- do
- VALUE=$(az keyvault secret show --vault-name $KEYVAULT --name $i --query value --output tsv)
- echo "::add-mask::$VALUE"
- echo "::set-output name=$i::$VALUE"
- done
+ uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af
+ with:
+ keyvault: "bitwarden-prod-kv"
+ secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"
- name: Download translations
uses: crowdin/github-action@12143a68c213f3c6d9913c9e5023224f7231face
@@ -47,10 +40,12 @@ jobs:
upload_sources: false
upload_translations: false
download_translations: true
- github_user_name: "github-actions"
- github_user_email: "<>"
+ github_user_name: "bitwarden-devops-bot"
+ github_user_email: "106330231+bitwarden-devops-bot@users.noreply.github.com"
commit_message: "Autosync the updated translations"
localization_branch_name: crowdin-auto-sync
create_pull_request: true
pull_request_title: "Autosync Crowdin Translations"
pull_request_body: "Autosync the updated translations"
+ gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }}
+ gpg_passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }}
diff --git a/.github/workflows/version-bump.yml b/.github/workflows/version-bump.yml
index b3c5a58ef..b2cb101f4 100644
--- a/.github/workflows/version-bump.yml
+++ b/.github/workflows/version-bump.yml
@@ -16,6 +16,26 @@ jobs:
- name: Checkout Branch
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
+ - name: Login to Azure - Prod Subscription
+ uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf
+ with:
+ creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }}
+
+ - name: Retrieve secrets
+ id: retrieve-secrets
+ uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af
+ with:
+ keyvault: "bitwarden-prod-kv"
+ secrets: "github-gpg-private-key, github-gpg-private-key-passphrase"
+
+ - name: Import GPG key
+ uses: crazy-max/ghaction-import-gpg@c8bb57c57e8df1be8c73ff3d59deab1dbc00e0d1
+ with:
+ gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }}
+ passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }}
+ git_user_signingkey: true
+ git_commit_gpgsign: true
+
- name: Create Version Branch
run: |
git switch -c version_bump_${{ github.event.inputs.version_number }}
@@ -52,8 +72,8 @@ jobs:
- name: Setup git
run: |
- git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
- git config --local user.name "github-actions[bot]"
+ git config --local user.email "106330231+bitwarden-devops-bot@users.noreply.github.com"
+ git config --local user.name "bitwarden-devops-bot"
- name: Check if version changed
id: version-changed
From eefc9bd2399003a0b23d414566e04a3dbb02b8f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Bispo?=
Date: Tue, 18 Oct 2022 17:21:45 +0100
Subject: [PATCH 30/32] [SG-705] Popup when a request for authentication comes
in on a logged-in account that is not active (#2135)
* [SG-705] Added pop up to perform account switching if the user receives a login request from another account.
* [SG-705] missing resource designer
* [SG-705] Fixed wrong key for state service variable.
* [SG-705] Fix formatting of account switch alert.
* [SG-705] dotnet format run
* [SG-705] Removed async
* [SG-705] Refactor on App
---
src/App/App.xaml.cs | 28 +-
src/App/Resources/AppResources.Designer.cs | 380 +++++++++---------
src/App/Resources/AppResources.resx | 5 +
.../PushNotificationListenerService.cs | 12 +-
src/Core/Abstractions/IStateService.cs | 4 +-
src/Core/Constants.cs | 2 +-
src/Core/Services/StateService.cs | 18 +-
7 files changed, 242 insertions(+), 207 deletions(-)
diff --git a/src/App/App.xaml.cs b/src/App/App.xaml.cs
index 986651270..e53a37902 100644
--- a/src/App/App.xaml.cs
+++ b/src/App/App.xaml.cs
@@ -11,6 +11,7 @@ using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
+using Bit.Core.Models.Response;
using Bit.Core.Services;
using Bit.Core.Utilities;
using Xamarin.Forms;
@@ -168,13 +169,17 @@ namespace Bit.App
return;
}
-
var notification = await _stateService.GetPasswordlessLoginNotificationAsync();
if (notification == null)
{
return;
}
+ if (await CheckShouldSwitchActiveUserAsync(notification))
+ {
+ return;
+ }
+
// Delay to wait for the vault page to appear
await Task.Delay(2000);
var loginRequestData = await _authService.GetPasswordlessLoginRequestByIdAsync(notification.Id);
@@ -197,6 +202,27 @@ namespace Bit.App
}
}
+ private async Task CheckShouldSwitchActiveUserAsync(PasswordlessRequestNotification notification)
+ {
+ var activeUserId = await _stateService.GetActiveUserIdAsync();
+ if (notification.UserId == activeUserId)
+ {
+ return false;
+ }
+
+ var notificationUserEmail = await _stateService.GetEmailAsync(notification.UserId);
+ await Device.InvokeOnMainThreadAsync(async () =>
+ {
+ var result = await _deviceActionService.DisplayAlertAsync(AppResources.LogInRequested, string.Format(AppResources.LoginAttemptFromXDoYouWantToSwitchToThisAccount, notificationUserEmail), AppResources.Cancel, AppResources.Ok);
+ if (result == AppResources.Ok)
+ {
+ await _stateService.SetActiveUserAsync(notification.UserId);
+ _messagingService.Send(AccountsManagerMessageCommands.SWITCHED_ACCOUNT);
+ }
+ });
+ return true;
+ }
+
public AppOptions Options { get; private set; }
protected async override void OnStart()
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index f2fbf889e..452967102 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -113,7 +113,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected..
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When set up, we'll display a popup when login fields are selected..
///
public static string AccessibilityDescription {
get {
@@ -122,7 +122,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well).
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be turned on as well).
///
public static string AccessibilityDescription2 {
get {
@@ -131,7 +131,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled)..
+ /// Looks up a localized string similar to Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if turned on)..
///
public static string AccessibilityDescription3 {
get {
@@ -140,7 +140,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled)..
+ /// Looks up a localized string similar to Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if turned on)..
///
public static string AccessibilityDescription4 {
get {
@@ -158,7 +158,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings.
+ /// Looks up a localized string similar to Bitwarden needs attention - Turn on "Draw-Over" in "Auto-fill Services" from Bitwarden Settings.
///
public static string AccessibilityDrawOverPermissionAlert {
get {
@@ -167,7 +167,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings.
+ /// Looks up a localized string similar to Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden settings.
///
public static string AccessibilityOverlayPermissionAlert {
get {
@@ -194,7 +194,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Account Already Added.
+ /// Looks up a localized string similar to Account already added.
///
public static string AccountAlreadyAdded {
get {
@@ -221,7 +221,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Account Locked.
+ /// Looks up a localized string similar to Account locked.
///
public static string AccountLockedSuccessfully {
get {
@@ -230,7 +230,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Logged Out.
+ /// Looks up a localized string similar to Logged out.
///
public static string AccountLoggedOut {
get {
@@ -284,7 +284,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Add Account.
+ /// Looks up a localized string similar to Add account.
///
public static string AddAccount {
get {
@@ -329,7 +329,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Add New Attachment.
+ /// Looks up a localized string similar to Add new attachment.
///
public static string AddNewAttachment {
get {
@@ -374,7 +374,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Add Send.
+ /// Looks up a localized string similar to New Send.
///
public static string AddSend {
get {
@@ -401,7 +401,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to All Items.
+ /// Looks up a localized string similar to All items.
///
public static string AllItems {
get {
@@ -446,7 +446,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to All Vaults.
+ /// Looks up a localized string similar to All vaults.
///
public static string AllVaults {
get {
@@ -482,7 +482,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to API Access Token.
+ /// Looks up a localized string similar to API access token.
///
public static string APIAccessToken {
get {
@@ -491,7 +491,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to API Key (required).
+ /// Looks up a localized string similar to API key (required).
///
public static string APIKeyRequiredParenthesis {
get {
@@ -500,7 +500,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to API Server URL.
+ /// Looks up a localized string similar to API server URL.
///
public static string ApiUrl {
get {
@@ -554,7 +554,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Are you sure you want to enable Screen Capture?.
+ /// Looks up a localized string similar to Are you sure you want to turn on screen capture?.
///
public static string AreYouSureYouWantToEnableScreenCapture {
get {
@@ -653,7 +653,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Authenticator App.
+ /// Looks up a localized string similar to Authenticator app.
///
public static string AuthenticatorAppTitle {
get {
@@ -662,7 +662,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Authenticator Key (TOTP).
+ /// Looks up a localized string similar to Authenticator key (TOTP).
///
public static string AuthenticatorKey {
get {
@@ -689,7 +689,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Authenticator Key.
+ /// Looks up a localized string similar to Authenticator key.
///
public static string AuthenticatorKeyScanner {
get {
@@ -725,7 +725,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to AutoFill Activated!.
+ /// Looks up a localized string similar to AutoFill activated!.
///
public static string AutofillActivated {
get {
@@ -788,7 +788,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen..
+ /// Looks up a localized string similar to Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not set up an auto-fill service for Bitwarden. Set up auto-fill for Bitwarden from the "Settings" screen..
///
public static string AutofillServiceNotEnabled {
get {
@@ -824,7 +824,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile..
+ /// Looks up a localized string similar to Please turn on "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile..
///
public static string AutofillTileAccessibilityRequired {
get {
@@ -842,7 +842,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to To enable password autofill on your device, follow these instructions:.
+ /// Looks up a localized string similar to To set up password auto-fill on your device, follow these instructions:.
///
public static string AutofillTurnOn {
get {
@@ -914,7 +914,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Avoid Ambiguous Characters.
+ /// Looks up a localized string similar to Avoid ambiguous characters.
///
public static string AvoidAmbiguousCharacters {
get {
@@ -968,7 +968,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Biometric Verification.
+ /// Looks up a localized string similar to Biometric verification.
///
public static string BiometricsDirection {
get {
@@ -986,7 +986,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Bitwarden App Extension.
+ /// Looks up a localized string similar to Bitwarden app extension.
///
public static string BitwardenAppExtension {
get {
@@ -995,7 +995,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to The easiest way to add new logins to your vault is from the Bitwarden App Extension. Learn more about using the Bitwarden App Extension by navigating to the "Settings" screen..
+ /// Looks up a localized string similar to The easiest way to add new logins to your vault is from the Bitwarden app extension. Learn more about using the Bitwarden app extension by navigating to the "Settings" screen..
///
public static string BitwardenAppExtensionAlert2 {
get {
@@ -1148,7 +1148,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support..
+ /// Looks up a localized string similar to 3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to allow overlay support..
///
public static string BitwardenAutofillServiceOverlayPermission {
get {
@@ -1265,7 +1265,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Captcha Failed. Please try again..
+ /// Looks up a localized string similar to Captcha failed. Please try again..
///
public static string CaptchaFailed {
get {
@@ -1274,7 +1274,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Captcha Required.
+ /// Looks up a localized string similar to Captcha required.
///
public static string CaptchaRequired {
get {
@@ -1283,7 +1283,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Cardholder Name.
+ /// Looks up a localized string similar to Cardholder name.
///
public static string CardholderName {
get {
@@ -1301,7 +1301,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Catch-all Email.
+ /// Looks up a localized string similar to Catch-all email.
///
public static string CatchAllEmail {
get {
@@ -1319,7 +1319,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Change Email.
+ /// Looks up a localized string similar to Change email.
///
public static string ChangeEmail {
get {
@@ -1373,7 +1373,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Choose File.
+ /// Looks up a localized string similar to Choose file.
///
public static string ChooseFile {
get {
@@ -1436,7 +1436,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Code Sent!.
+ /// Looks up a localized string similar to Code sent!.
///
public static string CodeSent {
get {
@@ -1508,7 +1508,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Link.
+ /// Looks up a localized string similar to Copy link.
///
public static string CopyLink {
get {
@@ -1517,7 +1517,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Note.
+ /// Looks up a localized string similar to Copy note.
///
public static string CopyNotes {
get {
@@ -1526,7 +1526,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Number.
+ /// Looks up a localized string similar to Copy number.
///
public static string CopyNumber {
get {
@@ -1535,7 +1535,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Password.
+ /// Looks up a localized string similar to Copy password.
///
public static string CopyPassword {
get {
@@ -1544,7 +1544,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Security Code.
+ /// Looks up a localized string similar to Copy security code.
///
public static string CopySecurityCode {
get {
@@ -1589,7 +1589,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Copy Username.
+ /// Looks up a localized string similar to Copy username.
///
public static string CopyUsername {
get {
@@ -1607,7 +1607,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Create Account.
+ /// Looks up a localized string similar to Create account.
///
public static string CreateAccount {
get {
@@ -1634,7 +1634,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Current Access Count.
+ /// Looks up a localized string similar to Current access count.
///
public static string CurrentAccessCount {
get {
@@ -1652,7 +1652,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Custom Environment.
+ /// Looks up a localized string similar to Custom environment.
///
public static string CustomEnvironment {
get {
@@ -1670,7 +1670,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Custom Field Name.
+ /// Looks up a localized string similar to Custom field name.
///
public static string CustomFieldName {
get {
@@ -1679,7 +1679,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Custom Fields.
+ /// Looks up a localized string similar to Custom fields.
///
public static string CustomFields {
get {
@@ -1697,7 +1697,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password Updated.
+ /// Looks up a localized string similar to Password updated.
///
public static string DatePasswordUpdated {
get {
@@ -1751,7 +1751,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled..
+ /// Looks up a localized string similar to Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use..
///
public static string DefaultDarkThemeDescription {
get {
@@ -1832,7 +1832,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Deletion Date.
+ /// Looks up a localized string similar to Deletion date.
///
public static string DeletionDate {
get {
@@ -1850,7 +1850,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Deletion Time.
+ /// Looks up a localized string similar to Deletion time.
///
public static string DeletionTime {
get {
@@ -1895,7 +1895,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to One or more organization policies prevents your from exporting your personal vault..
+ /// Looks up a localized string similar to One or more organization policies prevents your from exporting your individual vault..
///
public static string DisablePersonalVaultExportPolicyInEffect {
get {
@@ -1904,7 +1904,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Disable this Send so that no one can access it.
+ /// Looks up a localized string similar to Deactivate this Send so that no one can access it.
///
public static string DisableSend {
get {
@@ -1913,7 +1913,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Domain Name (required).
+ /// Looks up a localized string similar to Domain name (required).
///
public static string DomainNameRequiredParenthesis {
get {
@@ -1994,7 +1994,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected..
+ /// Looks up a localized string similar to Allows the Bitwarden Accessibility Service to display a popup when login fields are selected..
///
public static string DrawOverDescription {
get {
@@ -2003,7 +2003,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins..
+ /// Looks up a localized string similar to If turned on, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins..
///
public static string DrawOverDescription2 {
get {
@@ -2012,7 +2012,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework..
+ /// Looks up a localized string similar to If turned on, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework..
///
public static string DrawOverDescription3 {
get {
@@ -2030,7 +2030,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Edit Folder.
+ /// Looks up a localized string similar to Edit folder.
///
public static string EditFolder {
get {
@@ -2039,7 +2039,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Edit Item.
+ /// Looks up a localized string similar to Edit item.
///
public static string EditItem {
get {
@@ -2066,7 +2066,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Email Address.
+ /// Looks up a localized string similar to Email address.
///
public static string EmailAddress {
get {
@@ -2093,7 +2093,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Email Us.
+ /// Looks up a localized string similar to Email us.
///
public static string EmailUs {
get {
@@ -2111,7 +2111,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Enable Automatic Syncing.
+ /// Looks up a localized string similar to Allow automatic syncing.
///
public static string EnableAutomaticSyncing {
get {
@@ -2129,7 +2129,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Enable sync on refresh.
+ /// Looks up a localized string similar to Allow sync on refresh.
///
public static string EnableSyncOnRefresh {
get {
@@ -2174,7 +2174,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Enter Key Manually.
+ /// Looks up a localized string similar to Enter key manually.
///
public static string EnterKeyManually {
get {
@@ -2264,7 +2264,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Re-enable app extension.
+ /// Looks up a localized string similar to Reactivate app extension.
///
public static string ExntesionReenable {
get {
@@ -2282,7 +2282,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Expiration Date.
+ /// Looks up a localized string similar to Expiration date.
///
public static string ExpirationDate {
get {
@@ -2300,7 +2300,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Expiration Month.
+ /// Looks up a localized string similar to Expiration month.
///
public static string ExpirationMonth {
get {
@@ -2309,7 +2309,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Expiration Time.
+ /// Looks up a localized string similar to Expiration time.
///
public static string ExpirationTime {
get {
@@ -2318,7 +2318,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Expiration Year.
+ /// Looks up a localized string similar to Expiration year.
///
public static string ExpirationYear {
get {
@@ -2345,7 +2345,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Confirm Vault Export.
+ /// Looks up a localized string similar to Confirm vault export.
///
public static string ExportVaultConfirmationTitle {
get {
@@ -2408,7 +2408,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Enable app extension.
+ /// Looks up a localized string similar to Activate app extension.
///
public static string ExtensionEnable {
get {
@@ -2516,7 +2516,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Feature Unavailable.
+ /// Looks up a localized string similar to Feature unavailable.
///
public static string FeatureUnavailable {
get {
@@ -2561,7 +2561,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen..
+ /// Looks up a localized string similar to To continue, have your FIDO2 WebAuthn compatible security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen..
///
public static string Fido2Instruction {
get {
@@ -2570,7 +2570,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Return to App.
+ /// Looks up a localized string similar to Return to app.
///
public static string Fido2ReturnToApp {
get {
@@ -2642,7 +2642,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to File a Bug Report.
+ /// Looks up a localized string similar to File a bug report.
///
public static string FileBugReport {
get {
@@ -2660,7 +2660,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to File Format.
+ /// Looks up a localized string similar to File format.
///
public static string FileFormat {
get {
@@ -2741,7 +2741,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to First Name.
+ /// Looks up a localized string similar to First name.
///
public static string FirstName {
get {
@@ -2804,7 +2804,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Folder updated..
+ /// Looks up a localized string similar to Folder saved.
///
public static string FolderUpdated {
get {
@@ -2822,7 +2822,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Forwarded Email Alias.
+ /// Looks up a localized string similar to Forwarded email alias.
///
public static string ForwardedEmailAlias {
get {
@@ -2849,7 +2849,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Full Name.
+ /// Looks up a localized string similar to Full name.
///
public static string FullName {
get {
@@ -2858,7 +2858,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Generate Password.
+ /// Looks up a localized string similar to Generate password.
///
public static string GeneratePassword {
get {
@@ -2867,7 +2867,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Generate Username.
+ /// Looks up a localized string similar to Generate username.
///
public static string GenerateUsername {
get {
@@ -2912,7 +2912,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Go To Website.
+ /// Looks up a localized string similar to Go to website.
///
public static string GoToWebsite {
get {
@@ -2993,7 +2993,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Icons Server URL.
+ /// Looks up a localized string similar to Icons server URL.
///
public static string IconsUrl {
get {
@@ -3011,7 +3011,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Identity Name.
+ /// Looks up a localized string similar to Identity name.
///
public static string IdentityName {
get {
@@ -3020,7 +3020,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Identity Server URL.
+ /// Looks up a localized string similar to Identity server URL.
///
public static string IdentityUrl {
get {
@@ -3065,7 +3065,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Include Number.
+ /// Looks up a localized string similar to Include number.
///
public static string IncludeNumber {
get {
@@ -3083,7 +3083,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used..
+ /// Looks up a localized string similar to Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is turned off), the default Autofill overlay will be used..
///
public static string InlineAutofillDescription {
get {
@@ -3101,7 +3101,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Internet Connection Required.
+ /// Looks up a localized string similar to Internet connection required.
///
public static string InternetConnectionRequiredTitle {
get {
@@ -3119,7 +3119,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Invalid Master Password. Try again..
+ /// Looks up a localized string similar to Invalid master password. Try again..
///
public static string InvalidMasterPassword {
get {
@@ -3137,7 +3137,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Invalid Verification Code..
+ /// Looks up a localized string similar to Invalid verification code.
///
public static string InvalidVerificationCode {
get {
@@ -3155,7 +3155,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Item has been deleted..
+ /// Looks up a localized string similar to Item deleted.
///
public static string ItemDeleted {
get {
@@ -3164,7 +3164,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Item Information.
+ /// Looks up a localized string similar to Item information.
///
public static string ItemInformation {
get {
@@ -3173,7 +3173,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Item has been restored..
+ /// Looks up a localized string similar to Item restored.
///
public static string ItemRestored {
get {
@@ -3218,7 +3218,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Item updated..
+ /// Looks up a localized string similar to Item saved.
///
public static string ItemUpdated {
get {
@@ -3263,7 +3263,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Last Name.
+ /// Looks up a localized string similar to Last name.
///
public static string LastName {
get {
@@ -3272,7 +3272,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Last Sync:.
+ /// Looks up a localized string similar to Last sync:.
///
public static string LastSync {
get {
@@ -3290,7 +3290,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Learn More.
+ /// Looks up a localized string similar to Learn more.
///
public static string LearnMore {
get {
@@ -3317,7 +3317,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Leave Organization.
+ /// Looks up a localized string similar to Leave organization.
///
public static string LeaveOrganization {
get {
@@ -3344,7 +3344,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to License Number.
+ /// Looks up a localized string similar to License number.
///
public static string LicenseNumber {
get {
@@ -3433,6 +3433,16 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Login attempt from {0}. Do you want to switch to this account?.
+ ///
+ public static string LoginAttemptFromXDoYouWantToSwitchToThisAccount
+ {
+ get {
+ return ResourceManager.GetString("LoginAttemptFromXDoYouWantToSwitchToThisAccount", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Login denied.
///
@@ -3524,7 +3534,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Login Unavailable.
+ /// Looks up a localized string similar to Login unavailable.
///
public static string LoginUnavailable {
get {
@@ -3587,7 +3597,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Master Password.
+ /// Looks up a localized string similar to Master password.
///
public static string MasterPassword {
get {
@@ -3614,7 +3624,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Master Password Hint (optional).
+ /// Looks up a localized string similar to Master password hint (optional).
///
public static string MasterPasswordHint {
get {
@@ -3659,7 +3669,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Invalid Password.
+ /// Looks up a localized string similar to Invalid password.
///
public static string MasterPasswordPolicyValidationTitle {
get {
@@ -3668,7 +3678,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Match Detection.
+ /// Looks up a localized string similar to Match detection.
///
public static string MatchDetection {
get {
@@ -3677,7 +3687,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Matching Items.
+ /// Looks up a localized string similar to Matching items.
///
public static string MatchingItems {
get {
@@ -3695,7 +3705,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Maximum Access Count.
+ /// Looks up a localized string similar to Maximum access count.
///
public static string MaximumAccessCount {
get {
@@ -3731,7 +3741,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Middle Name.
+ /// Looks up a localized string similar to Middle name.
///
public static string MiddleName {
get {
@@ -3740,7 +3750,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Minimum Numbers.
+ /// Looks up a localized string similar to Minimum numbers.
///
public static string MinNumbers {
get {
@@ -3749,7 +3759,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Minimum Special.
+ /// Looks up a localized string similar to Minimum special.
///
public static string MinSpecial {
get {
@@ -3776,7 +3786,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to More Settings.
+ /// Looks up a localized string similar to More settings.
///
public static string MoreSettings {
get {
@@ -3803,7 +3813,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Move Down.
+ /// Looks up a localized string similar to Move down.
///
public static string MoveDown {
get {
@@ -3884,7 +3894,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to My Vault.
+ /// Looks up a localized string similar to My vault.
///
public static string MyVault {
get {
@@ -3938,7 +3948,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to New Custom Field.
+ /// Looks up a localized string similar to New custom field.
///
public static string NewCustomField {
get {
@@ -3947,7 +3957,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to New item created..
+ /// Looks up a localized string similar to Item added.
///
public static string NewItemCreated {
get {
@@ -3956,7 +3966,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to New Password.
+ /// Looks up a localized string similar to New password.
///
public static string NewPassword {
get {
@@ -3965,7 +3975,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to New send created..
+ /// Looks up a localized string similar to Send created.
///
public static string NewSendCreated {
get {
@@ -4163,7 +4173,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app)..
+ /// Looks up a localized string similar to This account has two-step login set up, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app)..
///
public static string NoTwoStepAvailable {
get {
@@ -4199,7 +4209,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Number of Words.
+ /// Looks up a localized string similar to Number of words.
///
public static string NumberOfWords {
get {
@@ -4362,7 +4372,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Organization Identifier.
+ /// Looks up a localized string similar to Organization identifier.
///
public static string OrgIdentifier {
get {
@@ -4407,7 +4417,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Passport Number.
+ /// Looks up a localized string similar to Passport number.
///
public static string PassportNumber {
get {
@@ -4461,7 +4471,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password generated..
+ /// Looks up a localized string similar to Password generated.
///
public static string PasswordGenerated {
get {
@@ -4470,7 +4480,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password Generator.
+ /// Looks up a localized string similar to Password generator.
///
public static string PasswordGenerator {
get {
@@ -4488,7 +4498,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password Hint.
+ /// Looks up a localized string similar to Password hint.
///
public static string PasswordHint {
get {
@@ -4506,7 +4516,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password History.
+ /// Looks up a localized string similar to Password history.
///
public static string PasswordHistory {
get {
@@ -4569,7 +4579,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Password Type.
+ /// Looks up a localized string similar to Password type.
///
public static string PasswordType {
get {
@@ -4596,7 +4606,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections..
+ /// Looks up a localized string similar to Due to an enterprise policy, you are restricted from saving items to your individual vault. Change the ownership option to an organization and choose from available collections..
///
public static string PersonalOwnershipSubmitError {
get {
@@ -4641,7 +4651,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Plus Addressed Email.
+ /// Looks up a localized string similar to Plus addressed email.
///
public static string PlusAddressedEmail {
get {
@@ -4723,7 +4733,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Possible Matching Items.
+ /// Looks up a localized string similar to Possible matching items.
///
public static string PossibleMatchingItems {
get {
@@ -4759,7 +4769,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications..
+ /// Looks up a localized string similar to Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to allow push notifications..
///
public static string PushNotificationAlert {
get {
@@ -4777,7 +4787,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Random Word.
+ /// Looks up a localized string similar to Random word.
///
public static string RandomWord {
get {
@@ -4813,7 +4823,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Recovery Code.
+ /// Looks up a localized string similar to Recovery code.
///
public static string RecoveryCodeTitle {
get {
@@ -4822,7 +4832,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Regenerate Password.
+ /// Looks up a localized string similar to Regenerate password.
///
public static string RegeneratePassword {
get {
@@ -4858,7 +4868,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Remove Account.
+ /// Looks up a localized string similar to Remove account.
///
public static string RemoveAccount {
get {
@@ -4876,7 +4886,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Remove Master Password.
+ /// Looks up a localized string similar to Remove master password.
///
public static string RemoveMasterPassword {
get {
@@ -4885,7 +4895,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login..
+ /// Looks up a localized string similar to {0} is using SSO with customer-managed encryption. Continuing will remove your master password from your account and require SSO to login..
///
public static string RemoveMasterPasswordWarning {
get {
@@ -4894,7 +4904,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to If you do not want to remove your Master Password, you may leave this organization..
+ /// Looks up a localized string similar to If you do not want to remove your master password, you may leave this organization..
///
public static string RemoveMasterPasswordWarning2 {
get {
@@ -4903,7 +4913,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Remove Password.
+ /// Looks up a localized string similar to Remove password.
///
public static string RemovePassword {
get {
@@ -4930,7 +4940,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Resend Code.
+ /// Looks up a localized string similar to Resend code.
///
public static string ResendCode {
get {
@@ -4966,7 +4976,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Re-type Master Password.
+ /// Looks up a localized string similar to Re-type master password.
///
public static string RetypeMasterPassword {
get {
@@ -5038,7 +5048,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Search File Sends.
+ /// Looks up a localized string similar to Search file Sends.
///
public static string SearchFileSends {
get {
@@ -5065,7 +5075,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Search Text Sends.
+ /// Looks up a localized string similar to Search text Sends.
///
public static string SearchTextSends {
get {
@@ -5083,7 +5093,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Search Vault.
+ /// Looks up a localized string similar to Search vault.
///
public static string SearchVault {
get {
@@ -5092,7 +5102,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Secure Notes.
+ /// Looks up a localized string similar to Secure notes.
///
public static string SecureNotes {
get {
@@ -5110,7 +5120,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Security Code.
+ /// Looks up a localized string similar to Security code.
///
public static string SecurityCode {
get {
@@ -5155,7 +5165,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Self-hosted Environment.
+ /// Looks up a localized string similar to Self-hosted environment.
///
public static string SelfHostedEnvironment {
get {
@@ -5182,7 +5192,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Send Code.
+ /// Looks up a localized string similar to Send code.
///
public static string SendCode {
get {
@@ -5191,7 +5201,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Send has been deleted..
+ /// Looks up a localized string similar to Send deleted.
///
public static string SendDeleted {
get {
@@ -5281,7 +5291,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Send updated..
+ /// Looks up a localized string similar to Send saved.
///
public static string SendUpdated {
get {
@@ -5335,7 +5345,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Set Master Password.
+ /// Looks up a localized string similar to Set master password.
///
public static string SetMasterPassword {
get {
@@ -5434,7 +5444,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Share Link.
+ /// Looks up a localized string similar to Share link.
///
public static string ShareLink {
get {
@@ -5497,7 +5507,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Special Characters (!@#$%^&*).
+ /// Looks up a localized string similar to Special characters (!@#$%^&*).
///
public static string SpecialCharacters {
get {
@@ -5506,7 +5516,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Social Security Number.
+ /// Looks up a localized string similar to Social Security number.
///
public static string SSN {
get {
@@ -5605,7 +5615,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Syncing complete..
+ /// Looks up a localized string similar to Syncing complete.
///
public static string SyncingComplete {
get {
@@ -5614,7 +5624,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Syncing failed..
+ /// Looks up a localized string similar to Syncing failed.
///
public static string SyncingFailed {
get {
@@ -5686,7 +5696,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Thank You.
+ /// Looks up a localized string similar to Thank you.
///
public static string ThankYou {
get {
@@ -5785,7 +5795,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Toggle Visibility.
+ /// Looks up a localized string similar to Toggle visibility.
///
public static string ToggleVisibility {
get {
@@ -5884,7 +5894,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?.
+ /// Looks up a localized string similar to Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be set up on the bitwarden.com web vault. Do you want to visit the website now?.
///
public static string TwoStepLoginConfirmation {
get {
@@ -5893,7 +5903,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Two-step Login Options.
+ /// Looks up a localized string similar to Two-step login options.
///
public static string TwoStepLoginOptions {
get {
@@ -5965,7 +5975,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Secure Note.
+ /// Looks up a localized string similar to Secure note.
///
public static string TypeSecureNote {
get {
@@ -6037,7 +6047,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Unlock Vault.
+ /// Looks up a localized string similar to Unlock vault.
///
public static string UnlockVault {
get {
@@ -6064,7 +6074,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Updated Master Password.
+ /// Looks up a localized string similar to Updated master password.
///
public static string UpdatedMasterPassword {
get {
@@ -6082,7 +6092,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Update Master Password.
+ /// Looks up a localized string similar to Update master password.
///
public static string UpdateMasterPassword {
get {
@@ -6091,7 +6101,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour..
+ /// Looks up a localized string similar to Your master password was recently changed by an administrator in your organization. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour..
///
public static string UpdateMasterPasswordWarning {
get {
@@ -6109,7 +6119,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Updating Password.
+ /// Looks up a localized string similar to Updating password.
///
public static string UpdatingPassword {
get {
@@ -6136,7 +6146,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to URI Match Detection.
+ /// Looks up a localized string similar to URI match detection.
///
public static string URIMatchDetection {
get {
@@ -6172,7 +6182,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use Biometrics To Unlock.
+ /// Looks up a localized string similar to Use biometrics to unlock.
///
public static string UseBiometricsToUnlock {
get {
@@ -6190,7 +6200,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Use Fingerprint to Unlock.
+ /// Looks up a localized string similar to Use fingerprint to unlock.
///
public static string UseFingerprintToUnlock {
get {
@@ -6208,7 +6218,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Username Type.
+ /// Looks up a localized string similar to Username type.
///
public static string UsernameType {
get {
@@ -6253,7 +6263,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to {0} has been copied..
+ /// Looks up a localized string similar to {0} copied.
///
public static string ValueHasBeenCopied {
get {
@@ -6343,7 +6353,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s).
+ /// Looks up a localized string similar to Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s).
///
public static string VaultTimeoutPolicyInEffect {
get {
@@ -6361,7 +6371,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verification Code.
+ /// Looks up a localized string similar to Verification code.
///
public static string VerificationCode {
get {
@@ -6370,7 +6380,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verification Codes.
+ /// Looks up a localized string similar to Verification codes.
///
public static string VerificationCodes {
get {
@@ -6379,7 +6389,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verification Code (TOTP).
+ /// Looks up a localized string similar to Verification code (TOTP).
///
public static string VerificationCodeTotp {
get {
@@ -6397,7 +6407,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verification email sent..
+ /// Looks up a localized string similar to Verification email sent.
///
public static string VerificationEmailSent {
get {
@@ -6415,7 +6425,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verify Fingerprint.
+ /// Looks up a localized string similar to Verify fingerprint.
///
public static string VerifyFingerprint {
get {
@@ -6433,7 +6443,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Verify Master Password.
+ /// Looks up a localized string similar to Verify master password.
///
public static string VerifyMasterPassword {
get {
@@ -6469,7 +6479,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to View Item.
+ /// Looks up a localized string similar to View item.
///
public static string ViewItem {
get {
@@ -6478,7 +6488,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Visit Our Website.
+ /// Looks up a localized string similar to Visit our website.
///
public static string VisitOurWebsite {
get {
@@ -6532,7 +6542,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Web Vault Server URL.
+ /// Looks up a localized string similar to Web vault server URL.
///
public static string WebVaultUrl {
get {
@@ -6568,7 +6578,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Word Separator.
+ /// Looks up a localized string similar to Word separator.
///
public static string WordSeparator {
get {
@@ -6595,7 +6605,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Yes, and Save.
+ /// Looks up a localized string similar to Yes, and save.
///
public static string YesAndSave {
get {
@@ -6640,7 +6650,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to YubiKey Security Key.
+ /// Looks up a localized string similar to YubiKey security key.
///
public static string YubiKeyTitle {
get {
@@ -6649,7 +6659,7 @@ namespace Bit.App.Resources {
}
///
- /// Looks up a localized string similar to Zip / Postal Code.
+ /// Looks up a localized string similar to Zip / Postal code.
///
public static string ZipPostalCode {
get {
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 87967862b..34122747e 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -2464,4 +2464,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Services/PushNotificationListenerService.cs b/src/App/Services/PushNotificationListenerService.cs
index 5b5f38b90..05973781b 100644
--- a/src/App/Services/PushNotificationListenerService.cs
+++ b/src/App/Services/PushNotificationListenerService.cs
@@ -146,7 +146,7 @@ namespace Bit.App.Services
return;
}
- await _stateService.Value.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage, passwordlessLoginMessage?.UserId);
+ await _stateService.Value.SetPasswordlessLoginNotificationAsync(passwordlessLoginMessage);
var userEmail = await _stateService.Value.GetEmailAsync(passwordlessLoginMessage?.UserId);
var notificationData = new PasswordlessNotificationData()
@@ -247,14 +247,10 @@ namespace Bit.App.Services
{
if (data is PasswordlessNotificationData passwordlessNotificationData)
{
- var notificationUserId = await _stateService.Value.GetUserIdAsync(passwordlessNotificationData.UserEmail);
- if (notificationUserId != null)
+ var savedNotification = await _stateService.Value.GetPasswordlessLoginNotificationAsync();
+ if (savedNotification != null)
{
- var savedNotification = await _stateService.Value.GetPasswordlessLoginNotificationAsync(notificationUserId);
- if (savedNotification != null)
- {
- await _stateService.Value.SetPasswordlessLoginNotificationAsync(null, notificationUserId);
- }
+ await _stateService.Value.SetPasswordlessLoginNotificationAsync(null);
}
}
}
diff --git a/src/Core/Abstractions/IStateService.cs b/src/Core/Abstractions/IStateService.cs
index 5ac1c0df3..529f379ba 100644
--- a/src/Core/Abstractions/IStateService.cs
+++ b/src/Core/Abstractions/IStateService.cs
@@ -154,8 +154,8 @@ namespace Bit.Core.Abstractions
Task SaveExtensionActiveUserIdToStorageAsync(string userId);
Task GetApprovePasswordlessLoginsAsync(string userId = null);
Task SetApprovePasswordlessLoginsAsync(bool? value, string userId = null);
- Task GetPasswordlessLoginNotificationAsync(string userId = null);
- Task SetPasswordlessLoginNotificationAsync(PasswordlessRequestNotification value, string userId = null);
+ Task GetPasswordlessLoginNotificationAsync();
+ Task SetPasswordlessLoginNotificationAsync(PasswordlessRequestNotification value);
Task GetUsernameGenerationOptionsAsync(string userId = null);
Task SetUsernameGenerationOptionsAsync(UsernameGenerationOptions value, string userId = null);
}
diff --git a/src/Core/Constants.cs b/src/Core/Constants.cs
index 735c573ae..1ca03e7b0 100644
--- a/src/Core/Constants.cs
+++ b/src/Core/Constants.cs
@@ -30,6 +30,7 @@
public static string EventCollectionKey = "eventCollection";
public static string RememberedEmailKey = "rememberedEmail";
public static string RememberedOrgIdentifierKey = "rememberedOrgIdentifier";
+ public static string PasswordlessLoginNotificationKey = "passwordlessLoginNotificationKey";
public const string PasswordlessNotificationId = "26072022";
public const string AndroidNotificationChannelId = "general_notification_channel";
public const string iOSNotificationCategoryId = "dismissableCategory";
@@ -93,7 +94,6 @@
public static string LastSyncKey(string userId) => $"lastSync_{userId}";
public static string BiometricUnlockKey(string userId) => $"biometricUnlock_{userId}";
public static string ApprovePasswordlessLoginsKey(string userId) => $"approvePasswordlessLogins_{userId}";
- public static string PasswordlessLoginNofiticationKey(string userId) => $"passwordlessLoginNofitication_{userId}";
public static string UsernameGenOptionsKey(string userId) => $"usernameGenerationOptions_{userId}";
}
}
diff --git a/src/Core/Services/StateService.cs b/src/Core/Services/StateService.cs
index 20ee65578..d28437344 100644
--- a/src/Core/Services/StateService.cs
+++ b/src/Core/Services/StateService.cs
@@ -1277,20 +1277,18 @@ namespace Bit.Core.Services
await SetValueAsync(key, value, reconciledOptions);
}
- public async Task GetPasswordlessLoginNotificationAsync(string userId = null)
+ public async Task GetPasswordlessLoginNotificationAsync()
{
- var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },
- await GetDefaultStorageOptionsAsync());
- var key = Constants.PasswordlessLoginNofiticationKey(reconciledOptions.UserId);
- return await GetValueAsync(key, reconciledOptions);
+ var options = await GetDefaultStorageOptionsAsync();
+ var key = Constants.PasswordlessLoginNotificationKey;
+ return await GetValueAsync(key, options);
}
- public async Task SetPasswordlessLoginNotificationAsync(PasswordlessRequestNotification value, string userId = null)
+ public async Task SetPasswordlessLoginNotificationAsync(PasswordlessRequestNotification value)
{
- var reconciledOptions = ReconcileOptions(new StorageOptions { UserId = userId },
- await GetDefaultStorageOptionsAsync());
- var key = Constants.PasswordlessLoginNofiticationKey(reconciledOptions.UserId);
- await SetValueAsync(key, value, reconciledOptions);
+ var options = await GetDefaultStorageOptionsAsync();
+ var key = Constants.PasswordlessLoginNotificationKey;
+ await SetValueAsync(key, value, options);
}
// Helpers
From 4c2f5c05e5d564c1269a5c6b0bf7fd3471cdfe45 Mon Sep 17 00:00:00 2001
From: aj-rosado <109146700+aj-rosado@users.noreply.github.com>
Date: Wed, 19 Oct 2022 10:57:01 +0100
Subject: [PATCH 31/32] [PS-1188] Add new Solarized Dark Theme (#2141)
* PS-1188 Add new Solarized Dark Theme
---
.../Pages/Settings/OptionsPageViewModel.cs | 2 +
src/App/Resources/AppResources.Designer.cs | 9 +++
src/App/Resources/AppResources.resx | 4 +
src/App/Styles/SolarizedDark.xaml | 76 +++++++++++++++++++
src/App/Styles/SolarizedDark.xaml.cs | 12 +++
src/App/Utilities/ThemeManager.cs | 5 ++
6 files changed, 108 insertions(+)
create mode 100644 src/App/Styles/SolarizedDark.xaml
create mode 100644 src/App/Styles/SolarizedDark.xaml.cs
diff --git a/src/App/Pages/Settings/OptionsPageViewModel.cs b/src/App/Pages/Settings/OptionsPageViewModel.cs
index 9a794c58c..2f952aff2 100644
--- a/src/App/Pages/Settings/OptionsPageViewModel.cs
+++ b/src/App/Pages/Settings/OptionsPageViewModel.cs
@@ -56,12 +56,14 @@ namespace Bit.App.Pages
new KeyValuePair(ThemeManager.Dark, AppResources.Dark),
new KeyValuePair(ThemeManager.Black, AppResources.Black),
new KeyValuePair(ThemeManager.Nord, AppResources.Nord),
+ new KeyValuePair(ThemeManager.SolarizedDark, AppResources.SolarizedDark),
};
AutoDarkThemeOptions = new List>
{
new KeyValuePair(ThemeManager.Dark, AppResources.Dark),
new KeyValuePair(ThemeManager.Black, AppResources.Black),
new KeyValuePair(ThemeManager.Nord, AppResources.Nord),
+ new KeyValuePair(ThemeManager.SolarizedDark, AppResources.SolarizedDark),
};
UriMatchOptions = new List>
{
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 452967102..84ff963d6 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -5506,6 +5506,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Solarized Dark.
+ ///
+ public static string SolarizedDark {
+ get {
+ return ResourceManager.GetString("SolarizedDark", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Special characters (!@#$%^&*).
///
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index 34122747e..a803ee150 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
diff --git a/src/App/Styles/SolarizedDark.xaml b/src/App/Styles/SolarizedDark.xaml
new file mode 100644
index 000000000..e8402a0d2
--- /dev/null
+++ b/src/App/Styles/SolarizedDark.xaml
@@ -0,0 +1,76 @@
+
+
+ #eee8d5
+ #859900
+ #dc322f
+ #859900
+ #859900
+ #b58900
+ #839496
+ #2aa198
+ #b58900
+ #93a1a1
+ #657b83
+ #cb4b16
+
+ #002b36
+ #073642
+ #073642
+ #839496
+ #073642
+ #859900
+
+ #073642
+ #859900
+
+ #eee8d5
+ #eee8d5
+ #657b83
+
+ #073642
+ #073642
+ #073642
+ #859900
+ #073642
+
+ #eee8d5
+ #073642
+ #859900
+ #073642
+
+ #859900
+ #eee8d5
+
+ #657b83
+ #eee8d5
+
+ #859900
+ #667500
+ #4d541c
+ #e5e9f0
+ #ACB5C5
+
+ #657b83
+ #3A4251
+ #454951
+ #073642
+ #eee8d5
+ #aaaaaa
+ #99eee8d5
+
+ #859900
+ #859900
+
+ #073642
+ #eee8d5
+ #859900
+
+ #073642
+ #eee8d5
+
+ #859900
+ #F08DC7
+ #80BDFF
+
diff --git a/src/App/Styles/SolarizedDark.xaml.cs b/src/App/Styles/SolarizedDark.xaml.cs
new file mode 100644
index 000000000..a8dc19768
--- /dev/null
+++ b/src/App/Styles/SolarizedDark.xaml.cs
@@ -0,0 +1,12 @@
+using Xamarin.Forms;
+
+namespace Bit.App.Styles
+{
+ public partial class SolarizedDark : ResourceDictionary, IThemeResourceDictionary
+ {
+ public SolarizedDark()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/App/Utilities/ThemeManager.cs b/src/App/Utilities/ThemeManager.cs
index d6a7285f4..65d2d2cfe 100644
--- a/src/App/Utilities/ThemeManager.cs
+++ b/src/App/Utilities/ThemeManager.cs
@@ -21,6 +21,7 @@ namespace Bit.App.Utilities
public const string Dark = "dark";
public const string Black = "black";
public const string Nord = "nord";
+ public const string SolarizedDark = "solarizeddark";
public static void SetThemeStyle(string name, string autoDarkName, ResourceDictionary resources)
{
@@ -102,6 +103,8 @@ namespace Bit.App.Utilities
return CheckAndGetThemeForMergedDictionaries(typeof(Nord), resources);
case Light:
return CheckAndGetThemeForMergedDictionaries(typeof(Light), resources);
+ case SolarizedDark:
+ return CheckAndGetThemeForMergedDictionaries(typeof(SolarizedDark), resources);
default:
if (OsDarkModeEnabled())
{
@@ -111,6 +114,8 @@ namespace Bit.App.Utilities
return CheckAndGetThemeForMergedDictionaries(typeof(Black), resources);
case Nord:
return CheckAndGetThemeForMergedDictionaries(typeof(Nord), resources);
+ case SolarizedDark:
+ return CheckAndGetThemeForMergedDictionaries(typeof(SolarizedDark), resources);
default:
return CheckAndGetThemeForMergedDictionaries(typeof(Dark), resources);
}
From 3cb9f37997bd11cfdf4f80aa0b87bc4ac0ee22bd Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Fri, 21 Oct 2022 12:18:18 +0200
Subject: [PATCH 32/32] Autosync the updated translations (#2146)
Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com>
---
src/App/Resources/AppResources.af.resx | 9 +
src/App/Resources/AppResources.ar.resx | 9 +
src/App/Resources/AppResources.az.resx | 9 +
src/App/Resources/AppResources.be.resx | 11 +-
src/App/Resources/AppResources.bg.resx | 9 +
src/App/Resources/AppResources.bn.resx | 9 +
src/App/Resources/AppResources.bs.resx | 9 +
src/App/Resources/AppResources.ca.resx | 41 ++--
src/App/Resources/AppResources.cs.resx | 93 +++----
src/App/Resources/AppResources.da.resx | 9 +
src/App/Resources/AppResources.de.resx | 13 +-
src/App/Resources/AppResources.el.resx | 51 ++--
src/App/Resources/AppResources.en-GB.resx | 19 +-
src/App/Resources/AppResources.en-IN.resx | 9 +
src/App/Resources/AppResources.es.resx | 9 +
src/App/Resources/AppResources.et.resx | 55 +++--
src/App/Resources/AppResources.eu.resx | 9 +
src/App/Resources/AppResources.fa.resx | 11 +-
src/App/Resources/AppResources.fi.resx | 9 +
src/App/Resources/AppResources.fil.resx | 9 +
src/App/Resources/AppResources.fr.resx | 17 +-
src/App/Resources/AppResources.he.resx | 9 +
src/App/Resources/AppResources.hi.resx | 9 +
src/App/Resources/AppResources.hr.resx | 9 +
src/App/Resources/AppResources.hu.resx | 39 +--
src/App/Resources/AppResources.id.resx | 9 +
src/App/Resources/AppResources.it.resx | 9 +
src/App/Resources/AppResources.ja.resx | 9 +
src/App/Resources/AppResources.ka.resx | 9 +
src/App/Resources/AppResources.kn.resx | 9 +
src/App/Resources/AppResources.ko.resx | 9 +
src/App/Resources/AppResources.lt.resx | 9 +
src/App/Resources/AppResources.lv.resx | 9 +
src/App/Resources/AppResources.ml.resx | 9 +
src/App/Resources/AppResources.nb.resx | 9 +
src/App/Resources/AppResources.nl.resx | 9 +
src/App/Resources/AppResources.nn.resx | 9 +
src/App/Resources/AppResources.pl.resx | 9 +
src/App/Resources/AppResources.pt-BR.resx | 9 +
src/App/Resources/AppResources.pt-PT.resx | 9 +
src/App/Resources/AppResources.ro.resx | 183 +++++++-------
src/App/Resources/AppResources.ru.resx | 123 +++++-----
src/App/Resources/AppResources.si.resx | 9 +
src/App/Resources/AppResources.sk.resx | 9 +
src/App/Resources/AppResources.sl.resx | 9 +
src/App/Resources/AppResources.sr.resx | 9 +
src/App/Resources/AppResources.sv.resx | 257 ++++++++++----------
src/App/Resources/AppResources.ta.resx | 9 +
src/App/Resources/AppResources.th.resx | 9 +
src/App/Resources/AppResources.tr.resx | 9 +
src/App/Resources/AppResources.uk.resx | 71 +++---
src/App/Resources/AppResources.vi.resx | 9 +
src/App/Resources/AppResources.zh-Hans.resx | 119 ++++-----
src/App/Resources/AppResources.zh-Hant.resx | 79 +++---
store/apple/hu/copy.resx | 35 +--
store/google/hu/copy.resx | 34 +--
56 files changed, 1043 insertions(+), 550 deletions(-)
diff --git a/src/App/Resources/AppResources.af.resx b/src/App/Resources/AppResources.af.resx
index 9608ae51b..8ef6bb473 100644
--- a/src/App/Resources/AppResources.af.resx
+++ b/src/App/Resources/AppResources.af.resx
@@ -1575,6 +1575,10 @@ Skandering gebeur outomaties.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Versperde URI’s vir outovul
@@ -2463,4 +2467,9 @@ kies u Voeg TOTP toe om die sleutel veilig te bewaar
Aantekenversoek het reeds verstryk.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.ar.resx b/src/App/Resources/AppResources.ar.resx
index 9d9db6514..e928b2ed1 100644
--- a/src/App/Resources/AppResources.ar.resx
+++ b/src/App/Resources/AppResources.ar.resx
@@ -1575,6 +1575,10 @@
نورد'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
تعبئة العناوين المحجوبة تلقائياً
@@ -2464,4 +2468,9 @@
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.az.resx b/src/App/Resources/AppResources.az.resx
index cbe49bfe6..2e830fb5a 100644
--- a/src/App/Resources/AppResources.az.resx
+++ b/src/App/Resources/AppResources.az.resx
@@ -1575,6 +1575,10 @@ Skan prosesi avtomatik baş tutacaq.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Günəşli tünd
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Əngəllənən URI-lərin avto-doldurulması
@@ -2462,4 +2466,9 @@ Skan prosesi avtomatik baş tutacaq.
Giriş tələbinin müddəti artıq bitib.
+
+ Giriş cəhdi:
+{0}
+Bu hesaba keçmək istəyirsiniz?
+
diff --git a/src/App/Resources/AppResources.be.resx b/src/App/Resources/AppResources.be.resx
index 5770808fa..a3b0ed4ea 100644
--- a/src/App/Resources/AppResources.be.resx
+++ b/src/App/Resources/AppResources.be.resx
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} скапіявана.
+ {0} скапіяваныConfirmation message after suceessfully copying a value to the clipboard.
@@ -1574,6 +1574,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Цёмная Solarized
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Аўтазапаўненне заблакіраваных URI
@@ -2463,4 +2467,9 @@
Запыт на ўваход пратэрмінаваны.
+
+ Спроба ўваходу з:
+{0}
+Вы сапраўды хочаце перайсці на гэты ўліковы запіс?
+
diff --git a/src/App/Resources/AppResources.bg.resx b/src/App/Resources/AppResources.bg.resx
index aefaee179..13f76e732 100644
--- a/src/App/Resources/AppResources.bg.resx
+++ b/src/App/Resources/AppResources.bg.resx
@@ -1575,6 +1575,10 @@
Норд'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Преекспонирано тъмен
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Блокирани за авт. попълване адреси
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Заявката за вписване вече е изтекла.
+
+ Опит за вписване от:
+{0}
+Искате ли да превключите към тази регистрация?
+
diff --git a/src/App/Resources/AppResources.bn.resx b/src/App/Resources/AppResources.bn.resx
index c41290282..389853b34 100644
--- a/src/App/Resources/AppResources.bn.resx
+++ b/src/App/Resources/AppResources.bn.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.bs.resx b/src/App/Resources/AppResources.bs.resx
index 24b3b190a..4ba289645 100644
--- a/src/App/Resources/AppResources.bs.resx
+++ b/src/App/Resources/AppResources.bs.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.ca.resx b/src/App/Resources/AppResources.ca.resx
index b7fcf9c63..df1bc3087 100644
--- a/src/App/Resources/AppResources.ca.resx
+++ b/src/App/Resources/AppResources.ca.resx
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Presenta un informe d'error
+ Envieu un informe d'errorObri una incidéncia al nostre dipòsit de GitHub.
@@ -229,7 +229,7 @@
Carpetes
- Carpeta actualitzada.
+ Carpeta guardadaVés al lloc web
@@ -587,7 +587,7 @@
La contrasenya ha de contenir almenys 8 caràcters.
- Mínim de caràcters númerics
+ Mínim de caràcters numèricsMinimum numeric characters for password generator settings
@@ -604,7 +604,7 @@
Mai
- S'ha creat un element nou.
+ S'ha afegit un elementNo hi ha cap preferit a la vostra caixa forta.
@@ -681,7 +681,7 @@
Informació de l'element
- Element actualitzat.
+ Element guardatS'està enviant...
@@ -856,7 +856,7 @@
For 2FA
- Correu de verificació enviat.
+ Correu de verificació enviatFor 2FA
@@ -1256,7 +1256,7 @@ L'escaneig es farà automàticament.
URI match detection for auto-fill.
- Si, i guarda
+ Sí, i guardaOmpli automàticament i guarda
@@ -1575,6 +1575,10 @@ L'escaneig es farà automàticament.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solaritzat fosc
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Emplena automàticament els URI bloquejats
@@ -1616,7 +1620,7 @@ L'escaneig es farà automàticament.
La vostra sessió ha caducat.
- Utilitzeu dades biomètriques per verificar.
+ Utilitzeu dades biomètriques per verificarDades biomètriques
@@ -1722,7 +1726,7 @@ L'escaneig es farà automàticament.
Message shown when interacting with the server
- L'element s'ha restaurat.
+ L'element s'ha restauratConfirmation message after successfully restoring a soft-deleted item
@@ -1836,7 +1840,7 @@ L'escaneig es farà automàticament.
Utilitzeu el servei d’accessibilitat Bitwarden per omplir els vostres inicis de sessió automàticament a través d’aplicacions i del web. Quan estiga activat, mostrarem una finestra emergent quan se seleccionen els camps d'inici de sessió.
- Utilitzeu el servei d’accessibilitat Bitwarden per omplir els vostres inicis de sessió automàticament a través d’aplicacions i del web. (Cal que també estigui habilitat el Dibuixa-sobre)
+ Utilitzeu el servei d’accessibilitat Bitwarden per omplir els vostres inicis de sessió automàticament a través d’aplicacions i del web. (Cal que també estiga habilitat el Dibuixa-sobre)Utilitzeu el servei d’accessibilitat Bitwarden per utilitzar el mosaic d’acció ràpida d’emplenament automàtic o mostrar una finestra emergent mitjançant Dibuixa-sobre (si està activat).
@@ -1972,7 +1976,7 @@ L'escaneig es farà automàticament.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Deshabiliteu aquest Send perquè ningú no hi puga accedir.
+ Deshabiliteu aquest Send perquè ningú no hi puga accedir'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2014,11 +2018,11 @@ L'escaneig es farà automàticament.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- S'ha actualitzat el Send
+ S'ha guardat el Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- S'ha creat un enviament nou.
+ S'ha creat un Send nou'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2124,7 +2128,7 @@ L'escaneig es farà automàticament.
Autentica WebAuthn
- Tornar a l'aplicació
+ Torna a l'aplicacióAssegureu-vos que el vostre navegador predeterminat admeta WebAuthn i torneu-ho a provar.
@@ -2133,7 +2137,7 @@ L'escaneig es farà automàticament.
Aquesta organització té una política empresarial que us inscriurà automàticament al restabliment de la contrasenya. La inscripció permetrà als administradors de l’organització canviar la vostra contrasenya mestra.
- Les polítiques de l'organització afecten el temps d'espera de la caixa forta. El temps d'espera màxim permès d'aquesta és de $HOURS$ hores i $MINUTES$ minuts
+ Les polítiques de la vostra organització afecten el temps d'espera de la vostra caixa forta. El temps d'espera màxim permès de la caixa forta és de {0} hores i {1} minutsEl temps d'espera de la caixa forta supera les restriccions establertes per la vostra organització.
@@ -2151,7 +2155,7 @@ L'escaneig es farà automàticament.
Bloquejat
- Sessió tancada
+ S'ha tancat sessióS'ha canviat al següent compte disponible
@@ -2463,4 +2467,9 @@ seleccioneu Afegeix TOTP per emmagatzemar la clau de manera segura
La sol·licitud d'inici de sessió ja ha caducat.
+
+ Intent d'inici de sessió des de:
+{0}
+Voleu canviar a aquest compte?
+
diff --git a/src/App/Resources/AppResources.cs.resx b/src/App/Resources/AppResources.cs.resx
index de7a83ce0..0502b0508 100644
--- a/src/App/Resources/AppResources.cs.resx
+++ b/src/App/Resources/AppResources.cs.resx
@@ -1575,6 +1575,10 @@ Načtení proběhne automaticky.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Automatické vyplňování blokovaných URI
@@ -1898,16 +1902,16 @@ Načtení proběhne automaticky.
Soubor, který chcete odeslat.
- File type is selected.
+ Je vybrán typ souboru.
- File type is not selected, tap to select.
+ Není vybrán typ souboru, klepněte pro výběr.
- Text type is selected.
+ Je vybrán typ textu.
- Text type is not selected, tap to select.
+ Není vybrán typ textu, klepněte pro výběr.Datum odstranění
@@ -2109,7 +2113,7 @@ Načtení proběhne automaticky.
Opustit organizaci
- Leave {0}?
+ Opustit {0}?FIDO2 WebAuthn
@@ -2157,13 +2161,13 @@ Načtení proběhne automaticky.
Přepnuto na další dostupný účet
- Account locked
+ Účet uzamčenOdhlášení proběhlo úspěšně
- Account removed successfully
+ Účet byl úspěšně odstraněnOdstranit účet
@@ -2214,7 +2218,7 @@ Načtení proběhne automaticky.
Zadejte ověřovací kód, který byl odeslán na %@
- Submit crash logs
+ Odeslat protokoly o pádechHelp Bitwarden improve app stability by submitting crash reports.
@@ -2226,19 +2230,19 @@ Načtení proběhne automaticky.
Options are collapsed, tap to expand.
- Uppercase (A to Z)
+ Velká písmena (A-Z)
- Lowercase (A to Z)
+ Malá písmena (A-Z)
- Numbers (0 to 9)
+ Čísla (0-9)
- Special characters (!@#$%^&*)
+ Speciální znaky (!@#$%^&*)
- Tap to go back
+ Klepnutím se vrátíte zpětHeslo je viditelné, klepněte pro skrytí
@@ -2308,31 +2312,31 @@ select Add TOTP to store the key safely
We were unable to process your request. Please try again or contact us.
- Allow screen capture
+ Povolit záznam obrazovky
- Are you sure you want to turn on screen capture?
+ Opravdu chcete zapnout záznam obrazovky?
- Login requested
+ Požadavek k přihlášení
- Are you trying to log in?
+ Pokoušíte se přihlásit?
- Login attempt by {0} on {1}
+ Pokus o přihlášení od {0} na {1}
- Device type
+ Typ zařízení
- IP address
+ IP adresa
- Time
+ Čas
- Near
+ PoblížPotvrdit přihlášení
@@ -2356,31 +2360,31 @@ select Add TOTP to store the key safely
Schválit žádosti o přihlášení
- Use this device to approve login requests made from other devices.
+ Použijte toto zařízení pro schvalování žádostí o přihlášení z jiných zařízení.Povolit oznámení
- Receive push notifications for new login requests
+ Dostávat oznámení ohledně nových žádostí o přihlášení
- No thanks
+ Ne, děkuji
- Confirm login attempt for {0}
+ Potvrdit pokus o přihlášení pro {0}Všechna oznámení
- Password type
+ Typ hesla
- What would you like to generate?
+ Co chcete vygenerovat?
- Username type
+ Typ uživatelského jménaPlus addressed email
@@ -2392,19 +2396,19 @@ select Add TOTP to store the key safely
Forwarded email alias
- Random word
+ Náhodné slovo
- Email (required)
+ E-mail (povinný)
- Domain name (required)
+ Název domény (povinný)
- API key (required)
+ API klíč (povinný)
- Service
+ SlužbaAnonAddy
@@ -2419,25 +2423,25 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API access token
+ Přístupový token API
- Are you sure you want to overwrite the current username?
+ Opravdu chcete přepsat aktuální uživatelské jméno?
- Generate username
+ Generovat uživatelské jméno
- Email Type
+ Typ e-mailu
- Website (required)
+ Webová stránka (povinná)
- Unknown {0} error occurred.
+ Vyskytla se neznámá chyba: {0}.
- Use your email provider's subaddress capabilities
+ Použijte funkce podadres Vašeho poskytovatele e-mailuUse your domain's configured catch-all inbox.
@@ -2446,7 +2450,7 @@ select Add TOTP to store the key safely
Generate an email alias with an external forwarding service.
- Random
+ NáhodněAccessibility Service Disclosure
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Požadavek na přihlášení již vypršel.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.da.resx b/src/App/Resources/AppResources.da.resx
index 45694a463..866cd7997 100644
--- a/src/App/Resources/AppResources.da.resx
+++ b/src/App/Resources/AppResources.da.resx
@@ -1575,6 +1575,10 @@ Skanning vil ske automatisk.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Autoudfyld blokerede URI'er
@@ -2463,4 +2467,9 @@ vælg Tilføj TOTP for at gemme nøglen sikkert
Loginanmodning er allerede udløbet.
+
+ Login-forsøg fra:
+{0}
+Vil du skifte til denne konto?
+
diff --git a/src/App/Resources/AppResources.de.resx b/src/App/Resources/AppResources.de.resx
index cf3921229..93ea6cc5f 100644
--- a/src/App/Resources/AppResources.de.resx
+++ b/src/App/Resources/AppResources.de.resx
@@ -186,7 +186,7 @@
Short label for an email address.
- E-Mail Adresse
+ E-Mail-AdresseFull label for a email address.
@@ -566,7 +566,7 @@
Message shown when interacting with the server
- Du musst dich anmelden oder einen neuen Account erstellen um auf den Tresor zuzugreifen.
+ Melde dich an oder erstelle einen neuen Account, um auf Deinen Tresor zuzugreifen.Verwalten
@@ -1575,6 +1575,10 @@ Das Scannen erfolgt automatisch.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Blockierte URIs automatisch ausfüllen
@@ -2462,4 +2466,9 @@ Das Scannen erfolgt automatisch.
Anmeldeanfrage ist bereits abgelaufen.
+
+ Anmeldeversuch von:
+{0}
+Möchtest du zu diesem Konto wechseln?
+
diff --git a/src/App/Resources/AppResources.el.resx b/src/App/Resources/AppResources.el.resx
index 029b5003b..76c0ae963 100644
--- a/src/App/Resources/AppResources.el.resx
+++ b/src/App/Resources/AppResources.el.resx
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Αυτόματη συμπλήρωση μπλοκαρισμένων URIs
@@ -2314,64 +2318,64 @@
Είστε βέβαιοι ότι θέλετε να ενεργοποιήσετε την καταγραφή οθόνης;
- Login requested
+ Απαιτείται σύνδεση
- Are you trying to log in?
+ Προσπαθείτε να συνδεθείτε;
- Login attempt by {0} on {1}
+ Προσπάθεια σύνδεσης από τον/την {0} στο {1}
- Device type
+ Τύπος συσκευής
- IP address
+ Διεύθυνση IP
- Time
+ Ώρα
- Near
+ Κοντά
- Confirm login
+ Επιβεβαίωση σύνδεσης
- Deny login
+ Άρνηση σύνδεσης
- Just now
+ Μόλις τώρα
- {0} minutes ago
+ {0} λεπτά πριν
- Login confirmed
+ Η σύνδεση επιβεβαιώθηκε
- Login denied
+ Η σύνδεση απορρίφθηκε
- Approve login requests
+ Έγκριση αιτήσεων σύνδεσης
- Use this device to approve login requests made from other devices.
+ Χρησιμοποιήστε αυτήν τη συσκευή για να εγκρίνετε αιτήματα σύνδεσης από άλλες συσκευές.
- Allow notifications
+ Να επιτρέπονται οι ειδοποιήσεις
- Receive push notifications for new login requests
+ Λάβετε ειδοποιήσεις push για νέα αιτήματα σύνδεσης
- No thanks
+ Όχι ευχαριστώ
- Confirm login attempt for {0}
+ Επιβεβαίωση προσπάθειας σύνδεσης για {0}
- All notifications
+ Όλες οι ειδοποιήσειςΤύπος Κωδικού
@@ -2449,7 +2453,7 @@
Τυχαίο
- Accessibility Service Disclosure
+ Γνωστοποίηση Υπηρεσίας ΠροσβασιμότηταςBitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
@@ -2463,4 +2467,9 @@
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.en-GB.resx b/src/App/Resources/AppResources.en-GB.resx
index 307dd0f8f..cde8d35af 100644
--- a/src/App/Resources/AppResources.en-GB.resx
+++ b/src/App/Resources/AppResources.en-GB.resx
@@ -229,7 +229,7 @@
Folders
- Folder updated.
+ Folder savedGo to website
@@ -276,13 +276,13 @@
Are you sure you want to log out?
- Remove Account
+ Remove accountAre you sure you want to remove this account?
- Account Already Added
+ Account already addedWould you like to switch to it now?
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Item has been deleted.
+ Item deletedConfirmation message after successfully deleting a login.
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} has been copied.
+ {0} copiedConfirmation message after suceessfully copying a value to the clipboard.
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2472,4 +2476,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.en-IN.resx b/src/App/Resources/AppResources.en-IN.resx
index 46c5174dc..de06fc353 100644
--- a/src/App/Resources/AppResources.en-IN.resx
+++ b/src/App/Resources/AppResources.en-IN.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2477,4 +2481,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.es.resx b/src/App/Resources/AppResources.es.resx
index 14a88cc67..d22b36960 100644
--- a/src/App/Resources/AppResources.es.resx
+++ b/src/App/Resources/AppResources.es.resx
@@ -1575,6 +1575,10 @@ El escaneo se realizará automáticamente.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Oscuro Solar
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Autorellenar URIs bloqueadas
@@ -2464,4 +2468,9 @@ seleccione Agregar TOTP para almacenar la clave de forma segura
La solicitud de acceso ya ha caducado.
+
+ Intento de inicio de sesión desde:
+{0}
+¿Desea cambiar a esta cuenta?
+
diff --git a/src/App/Resources/AppResources.et.resx b/src/App/Resources/AppResources.et.resx
index 90e1ddced..b49c39e14 100644
--- a/src/App/Resources/AppResources.et.resx
+++ b/src/App/Resources/AppResources.et.resx
@@ -1575,6 +1575,10 @@ Skaneerimine toimub automaatselt.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized tume
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Täida blokeeritud URId automaatselt
@@ -2314,64 +2318,64 @@ Skaneerimine toimub automaatselt.
Oled kindel, et soovid lubada ekraanikuva salvestamist?
- Login requested
+ Sisselogimise päring
- Are you trying to log in?
+ Oled sisse logimas?
- Login attempt by {0} on {1}
+ Sisselogimise päring kontolt {0} kuupäeval {1}
- Device type
+ Seadme tüüp
- IP address
+ IP aadress
- Time
+ Aeg
- Near
+ Asukoht
- Confirm login
+ Kinnita sisselogimine
- Deny login
+ Tühista sisselogimine
- Just now
+ Just praegu
- {0} minutes ago
+ {0} minuti eest
- Login confirmed
+ Sisselogimine on kinnitatud
- Login denied
+ Sisselogimine on tühistatud
- Approve login requests
+ Sisselogimise päringute kinnitamine
- Use this device to approve login requests made from other devices.
+ Kasuta seda seadet, et kinnitada teistes seadmetes tehtavad sisselogimised.
- Allow notifications
+ Luba teavitused
- Receive push notifications for new login requests
+ Saa uute sisselogimise päringute kohta teavitusi
- No thanks
+ Ei soovi
- Confirm login attempt for {0}
+ Kinnita sisselogimise katse kontole {0}
- All notifications
+ Kõik teavitusedParooli tüüp
@@ -2455,12 +2459,17 @@ Skaneerimine toimub automaatselt.
Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
- Accept
+ Nõustu
- Decline
+ Keeldu
- Login request has already expired.
+ Sisselogimise päring on juba aegunud.
+
+
+ Sisselogimise päring:
+{0}
+Soovid selle konto peale lülituda?
diff --git a/src/App/Resources/AppResources.eu.resx b/src/App/Resources/AppResources.eu.resx
index 3b6aa5b39..2e92cc922 100644
--- a/src/App/Resources/AppResources.eu.resx
+++ b/src/App/Resources/AppResources.eu.resx
@@ -1574,6 +1574,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-bete blokeatutako URI-ak
@@ -2462,4 +2466,9 @@
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.fa.resx b/src/App/Resources/AppResources.fa.resx
index 661053bd7..adf3ee99a 100644
--- a/src/App/Resources/AppResources.fa.resx
+++ b/src/App/Resources/AppResources.fa.resx
@@ -856,7 +856,7 @@
For 2FA
- رایانامه تایید فرستاده شد.
+ رایانامه تأیید فرستاده شدFor 2FA
@@ -1575,6 +1575,10 @@
نُرد'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
پر کردن خودکار URI های مسدود شده
@@ -2464,4 +2468,9 @@
درخواست ورود قبلاً منقضی شده است.
+
+ تلاش برای ورود از:
+{0}
+آیا می خواهید به این حساب تغییر دهید؟
+
diff --git a/src/App/Resources/AppResources.fi.resx b/src/App/Resources/AppResources.fi.resx
index cb0fa7e99..37c749e8b 100644
--- a/src/App/Resources/AppResources.fi.resx
+++ b/src/App/Resources/AppResources.fi.resx
@@ -1575,6 +1575,10 @@ Koodi luetaan automaattisesti.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Täytä estetyt URI:t automaattisesti
@@ -2463,4 +2467,9 @@ turvallisesti valitsemalla "Lisää TOTP"
Kirjautumispyyntö on jo erääntynyt.
+
+ Kirjautumisyritys tunnuksella:
+{0}
+Haluatko vaihtaa tähän tiliin?
+
diff --git a/src/App/Resources/AppResources.fil.resx b/src/App/Resources/AppResources.fil.resx
index 3d792fc59..617b12c1d 100644
--- a/src/App/Resources/AppResources.fil.resx
+++ b/src/App/Resources/AppResources.fil.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.fr.resx b/src/App/Resources/AppResources.fr.resx
index 5cda83840..b6b62db9d 100644
--- a/src/App/Resources/AppResources.fr.resx
+++ b/src/App/Resources/AppResources.fr.resx
@@ -276,7 +276,7 @@
Êtes-vous sûr de vouloir vous déconnecter ?
- Retirer le compte
+ Supprimer le compteÊtes-vous sûr de vouloir retirer ce compte ?
@@ -1575,6 +1575,10 @@ La numérisation se fera automatiquement.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Remplissage automatique des URIs bloqués
@@ -2320,7 +2324,7 @@ sélectionnez Ajouter TOTP pour stocker la clé en toute sécurité
Essayez-vous de vous connecter ?
- Login attempt by {0} on {1}
+ Tentative de connexion par {0} le {1}Type d'appareil
@@ -2329,10 +2333,10 @@ sélectionnez Ajouter TOTP pour stocker la clé en toute sécurité
Adresse IP
- Time
+ Heure
- Near
+ Proche deConfirmer la connexion
@@ -2463,4 +2467,9 @@ sélectionnez Ajouter TOTP pour stocker la clé en toute sécurité
La demande d’identification a déjà expiré.
+
+ Tentative de connexion depuis :
+{0}
+Voulez-vous commuter sur ce compte ?
+
diff --git a/src/App/Resources/AppResources.he.resx b/src/App/Resources/AppResources.he.resx
index ce0d08b9c..e565d0da0 100644
--- a/src/App/Resources/AppResources.he.resx
+++ b/src/App/Resources/AppResources.he.resx
@@ -1577,6 +1577,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2466,4 +2470,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.hi.resx b/src/App/Resources/AppResources.hi.resx
index 53a2fa5fa..e54b61e9c 100644
--- a/src/App/Resources/AppResources.hi.resx
+++ b/src/App/Resources/AppResources.hi.resx
@@ -1576,6 +1576,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2465,4 +2469,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.hr.resx b/src/App/Resources/AppResources.hr.resx
index 7846587f4..6c5f285f2 100644
--- a/src/App/Resources/AppResources.hr.resx
+++ b/src/App/Resources/AppResources.hr.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.hu.resx b/src/App/Resources/AppResources.hu.resx
index e48f5fb84..1b43e48d3 100644
--- a/src/App/Resources/AppResources.hu.resx
+++ b/src/App/Resources/AppResources.hu.resx
@@ -190,7 +190,7 @@
Full label for a email address.
- Írjon nekünk
+ Írjon nekünk emailtÍrjon nekünk E-mailt közvetlenül a segítség kéréshez vagy visszajelzés beküldéséhez.
@@ -229,7 +229,7 @@
Mappák
- A mappa frissült.
+ A mappa mentésre került.Weboldal megnyitása
@@ -300,7 +300,7 @@
The title for the vault page.
- Hitelesítés
+ HitelesítőAuthenticator TOTP feature
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} a vágólapra másolva.
+ {0} a vágólapra került.Confirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Megtekintés
- Weboldalunk megnyitása
+ Fejlesztői webhely felkereséseA fejlesztői webhely felkeresése segítségért, hírekért, email küldése a fejlesztőknek és/vagy további információk a Bitwarden használatáról.
@@ -416,7 +416,7 @@
Elem hozzáadása
- Alkalmazáskiegészítő
+ App kiterjesztésA Bitwarden kisegítő szolgáltatás használata bejelentkezések automatikus kitöltéséhez alkalmazásból és weben.
@@ -431,7 +431,7 @@
Bitwarden alkalmazáskiegészítő
- A Bitwarden alkalmazáskiegészítővel adhatsz hozzá a legegyszerűbben új bejelentkezéseket. A Bitwarden alkalmazáskiegészítővel kapcsolatos további tudnivalókat a Beállítások képernyőn találsz.
+ A legegyszerűbben a Bitwarden alkalmazás bővítményből adhatunk hozzá új bejelentkezéseket a séfhez. Ha többet szeretnénk megtudni a Bitwarden alkalmazás bővítmény használatáról, lépjünk a "Beállítások" képernyőre.A Bitwarden használata Safariban és más alkalmazásokban a bejelentkezések automatikus kitöltéséhez.
@@ -443,7 +443,7 @@
A Bitwarden kisegítő szolgáltatás használata bejelentkezések automatikus kitöltéséhez.
- E-mail-cím megváltoztatása
+ Email cím megváltoztatásaE-mail címedet a bitwarden.com webes széfében tudod megváltoztatni. Szeretnéd meglátogatni most a weboldalt?
@@ -1055,10 +1055,10 @@
Dr.
- Lejárat hónapja
+ Lejárati hónap
- Lejárat éve
+ Lejárati évfebruár
@@ -1076,7 +1076,7 @@
június
- Vezetéknév
+ CsaládnévTeljes név
@@ -1574,6 +1574,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Szolarizált sötét
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Automatikus kitöltés elől blokkolt URI elemek
@@ -2270,7 +2274,7 @@
Prémium előfizetés szükséges
- Cannot add authenticator key?
+ Nem lehet hozzáadni a hitelesítő kulcsot.QR kód beolvasása
@@ -2279,7 +2283,7 @@
Nem sikerül beolvasni a QR kódot?
- Authenticator key
+ Hitelesítő kulcsKód megadása manuálisan
@@ -2291,8 +2295,8 @@
TOTP beállítása
- Once the key is successfully entered,
-select Add TOTP to store the key safely
+ A kulcs sikeres megadása után válasszuk ki a
+TOTP hozzáadása a kulcs biztonságos tárolásához lehetőséget.
@@ -2462,4 +2466,9 @@ select Add TOTP to store the key safely
A bejelentkezési kérés már lejárt.
+
+ Bejelentkezési kísérlet történt:
+{0}
+Szeretnénk átváltani erre a fiókra?
+
diff --git a/src/App/Resources/AppResources.id.resx b/src/App/Resources/AppResources.id.resx
index 4f30543d0..d3bdb4d38 100644
--- a/src/App/Resources/AppResources.id.resx
+++ b/src/App/Resources/AppResources.id.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.it.resx b/src/App/Resources/AppResources.it.resx
index 3a06a39ab..4287f5e4f 100644
--- a/src/App/Resources/AppResources.it.resx
+++ b/src/App/Resources/AppResources.it.resx
@@ -1574,6 +1574,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
URI per cui l'autocompletamento non è permesso
@@ -2463,4 +2467,9 @@ seleziona Aggiungi TOTP per salvare la chiave in modo sicuro
La richiesta di accesso è già scaduta.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.ja.resx b/src/App/Resources/AppResources.ja.resx
index 032bf3d89..b257c15a3 100644
--- a/src/App/Resources/AppResources.ja.resx
+++ b/src/App/Resources/AppResources.ja.resx
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized ダーク
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
自動入力をブロックする URI
@@ -2463,4 +2467,9 @@
ログインリクエストの有効期限が切れています。
+
+ ログイン試行がありました:
+{0}
+このアカウントに切り替えますか?
+
diff --git a/src/App/Resources/AppResources.ka.resx b/src/App/Resources/AppResources.ka.resx
index 3d792fc59..617b12c1d 100644
--- a/src/App/Resources/AppResources.ka.resx
+++ b/src/App/Resources/AppResources.ka.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.kn.resx b/src/App/Resources/AppResources.kn.resx
index 47f9a7412..1c2d4c2ce 100644
--- a/src/App/Resources/AppResources.kn.resx
+++ b/src/App/Resources/AppResources.kn.resx
@@ -1576,6 +1576,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.ko.resx b/src/App/Resources/AppResources.ko.resx
index f40765d9e..d6a184b7b 100644
--- a/src/App/Resources/AppResources.ko.resx
+++ b/src/App/Resources/AppResources.ko.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.lt.resx b/src/App/Resources/AppResources.lt.resx
index 3d792fc59..617b12c1d 100644
--- a/src/App/Resources/AppResources.lt.resx
+++ b/src/App/Resources/AppResources.lt.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.lv.resx b/src/App/Resources/AppResources.lv.resx
index 3b314979b..90c81486a 100644
--- a/src/App/Resources/AppResources.lv.resx
+++ b/src/App/Resources/AppResources.lv.resx
@@ -1575,6 +1575,10 @@ Nolasīšana notiks automātiski.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Automātiskā aizpilde aizturētajos URI
@@ -2463,4 +2467,9 @@ jāizvēlas "Pievienot TOTP", lai droši glabātu atslēgu.
Pierakstīšanās pieprasījuma derīgums jau ir beidzies.
+
+ Pierakstīšanās mēģinājums no:
+{0}
+Vai pārslēgties uz šo kontu?
+
diff --git a/src/App/Resources/AppResources.ml.resx b/src/App/Resources/AppResources.ml.resx
index 47b6c3062..6902aeb75 100644
--- a/src/App/Resources/AppResources.ml.resx
+++ b/src/App/Resources/AppResources.ml.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.nb.resx b/src/App/Resources/AppResources.nb.resx
index 07356d790..1e3cf11c0 100644
--- a/src/App/Resources/AppResources.nb.resx
+++ b/src/App/Resources/AppResources.nb.resx
@@ -1575,6 +1575,10 @@ Skanning skjer automatisk.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-utfyll blokkerte URI-er
@@ -2464,4 +2468,9 @@ velg Legg til TOTP for å lagre nøkkelen sikkert
Innloggingsforespørselen har allerede utløpt.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.nl.resx b/src/App/Resources/AppResources.nl.resx
index d272629a8..329b873e4 100644
--- a/src/App/Resources/AppResources.nl.resx
+++ b/src/App/Resources/AppResources.nl.resx
@@ -1575,6 +1575,10 @@ Het scannen gebeurt automatisch.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized donker
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Automatisch invullen geblokkeerde URI's
@@ -2463,4 +2467,9 @@ kies je TOTP toevoegen om de sleutel veilig op te slaan
Inlogverzoek is al verlopen.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.nn.resx b/src/App/Resources/AppResources.nn.resx
index b0765382d..9e5808b3e 100644
--- a/src/App/Resources/AppResources.nn.resx
+++ b/src/App/Resources/AppResources.nn.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.pl.resx b/src/App/Resources/AppResources.pl.resx
index 94ef429fc..53db9ad11 100644
--- a/src/App/Resources/AppResources.pl.resx
+++ b/src/App/Resources/AppResources.pl.resx
@@ -1575,6 +1575,10 @@ Skanowanie nastąpi automatycznie.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Autouzupełnianie zablokowanych identyfikatorów URI
@@ -2463,4 +2467,9 @@ wybierz Dodaj TOTP, aby bezpiecznie przechowywać klucz
Prośba o logowanie wygasła.
+
+ Próba logowania z:
+{0}
+Czy chcesz przełączyć się na to konto?
+
diff --git a/src/App/Resources/AppResources.pt-BR.resx b/src/App/Resources/AppResources.pt-BR.resx
index 445e11f67..516efb61e 100644
--- a/src/App/Resources/AppResources.pt-BR.resx
+++ b/src/App/Resources/AppResources.pt-BR.resx
@@ -1575,6 +1575,10 @@ A leitura será feita automaticamente.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Preencher automaticamente URIs bloqueadas
@@ -2464,4 +2468,9 @@ selecione Adicionar TOTP para armazenar a chave de forma segura
O pedido de login já expirou.
+
+ Tentativa de login de:
+{0}
+Você deseja mudar para esta conta?
+
diff --git a/src/App/Resources/AppResources.pt-PT.resx b/src/App/Resources/AppResources.pt-PT.resx
index ce3ee6770..30d3cf726 100644
--- a/src/App/Resources/AppResources.pt-PT.resx
+++ b/src/App/Resources/AppResources.pt-PT.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Escuro Solarizado
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
O pedido de início de sessão já expirou.
+
+ Tentativa de início de sessão a partir de:
+{0}
+Deseja mudar para esta conta?
+
diff --git a/src/App/Resources/AppResources.ro.resx b/src/App/Resources/AppResources.ro.resx
index efec12134..8634645f8 100644
--- a/src/App/Resources/AppResources.ro.resx
+++ b/src/App/Resources/AppResources.ro.resx
@@ -156,7 +156,7 @@
The button text that allows a user to copy the login's password to their clipboard.
- Copiere nume de utilizator
+ Copiere nume utilizatorThe button text that allows a user to copy the login's username to their clipboard.
@@ -190,7 +190,7 @@
Full label for a email address.
- Contactați-ne
+ Trimiteți-ne un emailTrimiteți-ne un e-mail pentru a obține ajutor sau pentru a lăsa un feedback.
@@ -203,7 +203,7 @@
Title for your favorite items in the vault.
- Înregistrare raport de erori
+ Trimitere raport de eroareRaportați o problemă pe pagina noastră GitHub.
@@ -229,10 +229,10 @@
Dosare
- Dosarul s-a actualizat.
+ Dosar salvat
- Accesare sait web
+ Accesare websiteThe button text that allows user to launch the website to their web browser.
@@ -247,11 +247,11 @@
Description message for the alert when internet connection is required to continue.
- Conexiunea la internet este necesară
+ Conexiune la internet necesarăTitle for the alert when internet connection is required to continue.
- Parolă principală incorectă. Încercați din nou.
+ Parolă principală invalidă. Încercați din nou.PIN greșit. Încercați din nou.
@@ -276,7 +276,7 @@
Sigur doriți să vă deconectați?
- Eliminare cont
+ Înlăturare contSunteți sigur că doriți să eliminați acest cont?
@@ -300,7 +300,7 @@
The title for the vault page.
- Authenticator
+ AutentificatorAuthenticator TOTP feature
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Articolul a fost șters.
+ Articol ștersConfirmation message after successfully deleting a login.
@@ -353,7 +353,7 @@
The title for the sync page.
- Mulțumim
+ Vă mulțumimInstrumente
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} s-a copiat.
+ {0} s-a copiatConfirmation message after suceessfully copying a value to the clipboard.
@@ -394,7 +394,7 @@
Afișare
- Vizitați-ne saitul web
+ Vizitați-ne website-ulVizitați saitul nostru pentru a primi ajutor, știri, pentru a trimite e-mail, și/sau aflați mai multe despre cum să utilizați Bitwarden.
@@ -425,13 +425,13 @@
Serviciul de autocompletare
- Se evită caracterele ambigue
+ Evitare de caractere ambigue
- Extensia aplicației Bitwarden
+ Extensie aplicație Bitwarden
- Cea mai ușoară modalitate de a adăuga noi autentificări în seif este din extensia aplicației Bitwarden. Aflați mai multe despre utilizarea extensiei aplicației Bitwarden accesând ecranul "Setări".
+ Modul cel mai simplu de adăugare de noi autentificări în seif este de la extensia aplicației Bitwarden. Aflați mai multe despre utilizarea extensiei aplicației Bitwarden navigând în ecranul „Setări”.Utilizați Bitwarden în Safari și în alte aplicații pentru a completa automat datele de autentificare.
@@ -471,7 +471,7 @@
Editare articol
- Activare sincronizare automată
+ Permitere sincronizare automatăAdresa de e-mail a contului pentru primirea indiciului parolei principale.
@@ -578,7 +578,7 @@
Parola principală este parola pe care o utilizați pentru a vă accesa seiful. Este foarte important să nu uitați această parolă. Nu există nicio modalitate de a recupera parola în cazul în care ați uitat-o.
- Indiciul pentru parola principală (opțional)
+ Indiciu pentru parola principală (opțional)Un indiciu pentru parola principală vă poate ajuta să v-o reamintiți dacă o uitați.
@@ -591,7 +591,7 @@
Minimum numeric characters for password generator settings
- Minimum de caractere speciale
+ Minimum specialMinimum special characters for password generator settings
@@ -604,7 +604,7 @@
Niciodată
- S-a creat un nou articol.
+ Articol adăugatNu există niciun favorit în seiful dvs.
@@ -632,7 +632,7 @@
Altele
- Parola s-a generat.
+ Parola s-a generatGenerator de parole
@@ -647,7 +647,7 @@
Sigur doriți să suprascrieți parola curentă?
- Bitwarden păstrează seiful dvs. sincronizat utilizând notificările "push". Pentru cele mai bune rezultate posibile, selectați "Permite" la următorul mesaj când vi se solicită să activați notificările "push".
+ Bitwarden vă menține seiful sincronizat automat prin notificări push. Pentru cea mai bună experiență posibilă, selectați „Permite” la următoarea solicitare atunci când vi se solicită să permiteți notificările push.Push notifications for apple products
@@ -663,7 +663,7 @@
Reintroducere parolă principală
- Căutare în Seif
+ Căutare în seifSecuritate
@@ -678,10 +678,10 @@
Introduceți un cod PIN din 4 cifre pentru a debloca aplicația.
- Informații de autentificare
+ Informații despre articol
- Articolul s-a actualizat.
+ Articol salvatTrimitere...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Sincronizare completă.
+ Sincronizare completă
- Sincronizarea nu a reușit.
+ Sincronizare eșuatăSincronizare seif acum
@@ -708,7 +708,7 @@
Autentificare în doi pași
- Autentificarea în două etape întărește siguranța contului dvs. prin solicitarea unei confirmări de autentificare cu un alt dispozitiv, cum ar fi: o cheie de securitate, o aplicație de autentificare, un SMS, un apel telefonic sau un e-mail. Autentificarea în două etape poate fi activată în seiful web bitwarden.com. Doriți să vizitați saitul acum?
+ Autentificarea în două etape vă face contul mai sigur, prin solicitarea unei verificări de autentificare cu un alt dispozitiv, cum ar fi o cheie de securitate, o aplicație de autentificare, un SMS, un apel telefonic sau un e-mail. Autentificarea în două etape poate fi configurată în seiful web bitwarden.com. Doriți să vizitați site-ul web acum?Deblocare cu {0}
@@ -724,7 +724,7 @@
Cod de verificare
- Afișare articol
+ Vizualizare articolSeif web Bitwarden
@@ -796,10 +796,10 @@
Sigur doriți să auto-completați aceste date de conectare? Nu este o potrivire completă pentru "{0}".
- Elemente concordante
+ Articole care se potrivesc
- Elemente posibil concordante
+ Articole care se pot potriviCăutare
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- Aplicație de autentificare
+ Aplicația AutentificatorFor 2FA
@@ -827,11 +827,11 @@
For 2FA
- Conectare indisponibilă
+ Autentificare indisponibilăFor 2FA whenever there are no available providers on this device.
- Acest cont are activată autentificarea în două etape, dar niciunul dintre furnizorii 2FA configurați nu este acceptat pe acest dispozitiv. Utilizați un dispozitiv acceptat și/sau adăugați furnizori suplimentari care sunt mai bine acceptați între dispozitive (cum ar fi o aplicație de autentificare).
+ Acest cont are autentificarea în doi pași configurată, cu toate acestea, niciunul dintre furnizorii configurați în doi pași nu este acceptat pe acest dispozitiv. Utilizați un dispozitiv compatibil și/sau adăugați furnizori suplimentari mai bine suportați pe toate dispozitivele (cum ar fi o aplicație de autentificare).Cod de recuperare
@@ -856,7 +856,7 @@
For 2FA
- S-a trimis e-mailul de verificare.
+ E-mail de verificare trimisFor 2FA
@@ -946,7 +946,7 @@ Scanarea se va face automat.
Fișier sursă
- Caracteristică indisponibilă
+ Funcție indisponibilăMărimea maximă a fișierului este de 100 MB.
@@ -978,7 +978,7 @@ Scanarea se va face automat.
"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Mediu de găzduire personal
+ Mediul găzduit localSpecificați URL-ul de bază al instalării Bitwarden.
@@ -1005,7 +1005,7 @@ Scanarea se va face automat.
Număr card
- Cod de securitate (CVV/CVC)
+ Cod de securitateCard
@@ -1017,7 +1017,7 @@ Scanarea se va face automat.
Conectare
- Notă protejată
+ Notă securizatăAdresă 1
@@ -1038,7 +1038,7 @@ Scanarea se va face automat.
Tip card
- Deținător card
+ Numele titularului de cardLocalitate
@@ -1080,10 +1080,10 @@ Scanarea se va face automat.
Nume
- Numele complet
+ Nume complet
- Număr licență
+ Numărul de licențămartie
@@ -1110,7 +1110,7 @@ Scanarea se va face automat.
octombrie
- Număr CI / Pașaport
+ Numărul de pașaportTelefon
@@ -1119,7 +1119,7 @@ Scanarea se va face automat.
septembrie
- Cod Numeric Personal
+ Cod numeric personalJudeț
@@ -1143,7 +1143,7 @@ Scanarea se va face automat.
Afișează o imagine ușor de recunoscut lângă fiecare autentificare.
- URL server de iconuri
+ URL server de pictogrameAuto-completare cu Bitwarden
@@ -1198,7 +1198,7 @@ Scanarea se va face automat.
Nu am reușit să deschidem automat meniul setărilor pentru auto-completare. Puteți să navigați manual la acesta din Setările Android > Sistem > Limbi și introducere text > Avansate > Serviciul de auto-completare.
- Nume de câmp particularizat
+ Numele câmpului personalizatValoare logică
@@ -1301,7 +1301,7 @@ Scanarea se va face automat.
Vă permite accesul la seif direct de la tastatură pentru a auto-completa rapid parolele.
- Pentru a activa auto-completarea pe acest dispozitiv, urmăriți aceste instrucțiuni:
+ Pentru a activa auto-completarea parolei pe acest dispozitiv, urmăriți aceste instrucțiuni:1. Accesați Setările iOS
@@ -1337,10 +1337,10 @@ Scanarea se va face automat.
Conectări
- Note protejate
+ Note securizate
- Toate elementele
+ Toate articoleleURI-uri
@@ -1360,7 +1360,7 @@ Scanarea se va face automat.
Această parolă nu a fost găsită în nicio breșă de date cunoscută. Ar trebui să fie sigură de utilizat.
- Nume identitate
+ Numele identitățiiValoare
@@ -1381,10 +1381,10 @@ Scanarea se va face automat.
Căutare în colecție
- Căutați Send-uri fișier
+ Căutare Send-uri fișier
- Căutați Send-uri text
+ Căutare Send-uri textCăutați {0}
@@ -1553,7 +1553,7 @@ Scanarea se va face automat.
Tema întunecată implicită
- Selectați tema întunecată de utilizat atunci când este utilizată tema implicită (de sistem) în timp ce modul întunecat al dispozitivului este activat.
+ Alegeți tema întunecată de utilizat atunci când utilizați tema Implicită (Sistem) în timp ce este utilizat modul întunecat al dispozitivului.Copiere notă
@@ -1575,6 +1575,10 @@ Scanarea se va face automat.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Întuneric solarizat
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Completarea automată a URI-urilor blocate
@@ -1591,7 +1595,7 @@ Scanarea se va face automat.
La repornirea aplicației
- Auto-completarea ușurează accesul securizat al seifului Bitwarden de pe alte saituri și aplicații. Se pare că nu ați activat serviciul de auto-completare pentru Bitwarden. Activați auto-completarea pentru Bitwarden din ecranul "Setări".
+ Auto-completarea facilitează accesul în siguranță la seiful Bitwarden de pe alte site-uri și aplicații. Se pare că nu ați configurat un serviciu de auto-completare pentru Bitwarden. Configurați auto-completarea pentru Bitwarden din ecranul „Setări”.Modificările temei se vor aplica după repornirea aplicației.
@@ -1622,13 +1626,13 @@ Scanarea se va face automat.
Biometrie
- Utilizare biometrie la deblocare
+ Utilizați datele biometrice pentru a debloca
- Bitwarden necesită atenție! Consultați în Setările Bitwarden "Serviciul de accesibilitate auto-completare"
+ Bitwarden are nevoie de atenție - Vedeți „Serviciul de accesibilitate pentru completarea automată" din setările Bitwarden”
- 3. În ecranul Android de Setări al aplicației Bitwarden, accesați opțiunile "Afișați peste alte aplicații" (sub Avansat) și atingeți comutatorul pentru a activa suportul pentru suprapunere.
+ 3. În ecranul Setări aplicație Android pentru Bitwarden, mergeți la opțiunile „Afișare peste alte aplicații” (la secțiunea Avansat) și atingeți comutatorul pentru a permite suportul pentru suprapunere.Permisiune
@@ -1655,7 +1659,7 @@ Scanarea se va face automat.
Trimite un cod de verificare la adresa dvs. de e-mail
- Cod trimis
+ Cod trimis!Confirmați-vă identitatea pentru a continua.
@@ -1722,7 +1726,7 @@ Scanarea se va face automat.
Message shown when interacting with the server
- Articolul a fost restabilit
+ Articol restabilitConfirmation message after successfully restoring a soft-deleted item
@@ -1797,7 +1801,7 @@ Scanarea se va face automat.
Unul sau mai multe din următoarele caractere: {0}
- Parolă incorectă
+ Parolă invalidăParola nu îndeplinește cerințele organizației. Verificați informațiile despre politică și încercați din nou.
@@ -1827,13 +1831,13 @@ Scanarea se va face automat.
Utilizare autocompletare în linie
- Utilizați auto-completarea în linie dacă IME (tastatura) selectată o acceptă. În cazul în care configurația dvs. nu este acceptată (sau această opțiune este dezactivată), se va folosi auto-completarea implicită.
+ Utilizați auto-completarea în linie dacă IME (tastatura) selectată o acceptă. În cazul în care configurația dvs. nu este acceptată (sau această opțiune este dezactivată), se va folosi suprapunerea implicită de completare automată.Utilizare accesibilitate
- Utilizați Serviciul de Accesibilitate Bitwarden pentru auto-completarea conectărilor dvs. în aplicații și pe web. Dacă este activat, va afișa o fereastră pop-up când câmpurile de conectare sunt selectate.
+ Utilizați Serviciul de Accesibilitate Bitwarden pentru auto-completarea conectărilor dvs. în aplicații și pe web. Dacă este configurat, va afișa o fereastră pop-up când câmpurile de conectare sunt selectate.Utilizați Serviciul de Accesibilitate Bitwarden pentru auto-completarea conectărilor dvs. în aplicații și pe web. (Necesită de asemenea să activați "Afișare peste")
@@ -1848,16 +1852,16 @@ Scanarea se va face automat.
Folosire „Afișare peste”
- Când este activat, permite Serviciului de Accesibilitate Bitwarden să afișeze o fereastră pop-up atunci când sunt selectate câmpurile de conectare.
+ Permite Serviciului de accesibilitate Bitwarden să afișeze o fereastră pop-up atunci când sunt selectate câmpurile de autentificare.Dacă este activat, Serviciul de Accesibilitate Bitwarden va afișa o fereastră pop-up când câmpurile de conectare sunt selectate pentru a ajuta la auto-completare datelor de autentificare.
- Dacă este activată, accesibilitatea va afișa o fereastră pop-up pentru a augmenta Serviciul de Auto-completare pentru aplicațiile mai vechi care nu acceptă Android Autofill Framework.
+ Dacă este activată, accesibilitatea va afișa o fereastră pop-up pentru a extinde serviciul de completare automată pentru aplicațiile mai vechi care nu acceptă framework-ul de completare automată Android.
- Din cauza unei politici organizaționale vă este restricționată salvarea elementelor în seiful dvs. personal. Schimbați tipul de proprietate la altă organizație și alegeți dintre colecțiile disponibile.
+ Din cauza unei politici de întreprindere, nu puteți salva articole în seiful dvs. individual. Schimbați opțiunea de proprietate la o organizație și alegeți din colecțiile disponibile.O politică de organizație vă afectează opțiunile de proprietate.
@@ -1936,7 +1940,7 @@ Scanarea se va face automat.
Expirat
- Număr maxim de accesări
+ Numărul maxim de accesăriDacă este configurat, utilizatorii nu vor mai putea accesa acest Send când a fost atins numărul maxim de accesări.
@@ -1946,7 +1950,7 @@ Scanarea se va face automat.
S-a atins numărul maxim de accesări
- Număr actual de accesări
+ Numărul actual de accesăriParolă nouă
@@ -2010,15 +2014,15 @@ Scanarea se va face automat.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send-ul a fost șters.
+ Send-ul a fost șters'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send actualizat
+ Send salvat'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- A fost creat un nou send.
+ Send creat'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2076,19 +2080,19 @@ Scanarea se va face automat.
Această acțiune este protejată. Pentru a continua, vă rugăm să reintroduceți parola principală pentru a vă verifica identitatea.
- Captcha obligatoriu
+ Captcha necesar
- Captcha a eșuat. Vă rugăm să încercați din nou.
+ Captcha a eșuat. Încercați din nou.
- Parolă principală actualizată
+ Parola principală actualizatăActualizare parolă principală
- Parola dvs. principală a fost modificată recent de unul din administratorii organizației dvs. Pentru a accesa seiful, trebuie să o actualizați acum. Procedura vă va deconecta de la sesiunea curentă, necesitând să vă reconectați. Sesiunile active de pe alte dispozitive pot continua să rămână active timp de până la o oră.
+ Parola principală a fost schimbată recent de către un administrator al organizației. Pentru a accesa seiful, trebuie să vă actualizați acum parola principală. Continuarea vă va deconecta de la sesiunea curentă, cerându-vă să vă conectați din nou. Sesiunile active de pe alte dispozitive pot continua să rămână active timp de până la o oră.Actualizarea parolei
@@ -2100,10 +2104,10 @@ Scanarea se va face automat.
Eliminare parolă principală
- {0} utilizează SSO cu criptare gestionată de clienți. Continuarea va elimina parola principală din contul dvs. și va necesita SSO pentru autentificare.
+ {0} utilizează SSO cu criptare gestionată de client. Continuarea va înlătura parola principală din contul și va necesita SSO pentru a vă conecta.
- Dacă nu doriți să eliminați parola generală, puteți părăsi această organizație.
+ Dacă nu doriți să înlăturați parola principală, puteți părăsi această organizație.Părăsire organizație
@@ -2115,7 +2119,7 @@ Scanarea se va face automat.
FIDO2 WebAuthn
- Pentru a continua, pregătiți cheia de securitate care acceptă autentificarea FIDO2 WebAuthn, apoi urmați instrucțiunile după ce faceți clic pe „Autentificare WebAuthn” pe ecranul următor.
+ Pentru a continua, pregătiți cheia de securitate compatibilă FIDO2 WebAuthn, apoi urmați instrucțiunile după ce faceți clic pe „Autentificare WebAuthn” în ecranul următor.Autentificare cu FIDO2 WebAuthn. Vă puteți autentifica folosind o cheie de securitate externă.
@@ -2133,13 +2137,13 @@ Scanarea se va face automat.
Această organizație are o politică de întreprindere care vă va înregistra automat la resetarea parolei. Înregistrarea va permite administratorilor organizației să vă modifice parola principală.
- Politicile organizației dvs vă afectează expirarea seifului. Timpul maxim permis de expirare a seifului este {0} oră (ore) și {1} minut(e)
+ Politicile de organizație afectează timpul de expirare a seifului. Timpul maxim de expirare a seifului este de {0} oră(e) și {1} minut(e)Timpul de expirare al seifului depășește restricțiile stabilite de organizația dvs.
- Una sau mai multe politici ale organizației vă împiedică să exportați seiful personal.
+ Una sau mai multe politici de organizație vă împiedică să vă exportați seiful individual.Adăugare cont
@@ -2181,7 +2185,7 @@ Scanarea se va face automat.
Contul dvs. a fost șters definitiv
- Cod de verificare nevalid.
+ Cod de verificare nevalidSolicitare de parolă unică
@@ -2202,7 +2206,7 @@ Scanarea se va face automat.
Se verifică
- Trimiteți un cod nou
+ Retrimitere codUn cod de verificare a fost trimis la adresa dvs. de e-mail
@@ -2271,7 +2275,7 @@ Scanarea se va face automat.
Este necesar un abonament Premium
- Nu puteți adăuga cheia authenticator?
+ Nu se poate adăuga cheia de autentificare? Scanare cod QR
@@ -2280,10 +2284,10 @@ Scanarea se va face automat.
Nu puteți scana codul QR?
- Cheie authenticator
+ Cheie de autentificare
- Introduceți cheia manual
+ Introducere manuală a cheiiAdăugare TOTP
@@ -2311,7 +2315,7 @@ selectați „Adăugare TOTP” pentru a stoca cheia în siguranță
Permitere captură de ecran
- Sunteți sigur că doriți să activați Captura de ecran?
+ Sunteți sigur că doriți să activați captura de ecran?Autentificare solicitată
@@ -2383,7 +2387,7 @@ selectați „Adăugare TOTP” pentru a stoca cheia în siguranță
Tip de nume de utilizator
- Plus e-mail adresat
+ E-mail Plus adresatE-mail Catch-all
@@ -2401,7 +2405,7 @@ selectați „Adăugare TOTP” pentru a stoca cheia în siguranță
Nume de domeniu (obligatoriu)
- Cheie API (obligatoriu)
+ Cheia API (necesară)Serviciu
@@ -2463,4 +2467,9 @@ selectați „Adăugare TOTP” pentru a stoca cheia în siguranță
Solicitarea de autentificare a expirat deja.
+
+ Încercare de autentificare de la:
+{0}
+Doriți să comutați la acest cont?
+
diff --git a/src/App/Resources/AppResources.ru.resx b/src/App/Resources/AppResources.ru.resx
index b714e1988..bc28186d0 100644
--- a/src/App/Resources/AppResources.ru.resx
+++ b/src/App/Resources/AppResources.ru.resx
@@ -152,11 +152,11 @@
Copy some value to your clipboard.
- Копировать пароль
+ Скопировать парольThe button text that allows a user to copy the login's password to their clipboard.
- Копировать имя пользователя
+ Скопировать имя пользователяThe button text that allows a user to copy the login's username to their clipboard.
@@ -179,7 +179,7 @@
Изменить
- Редактировать папку
+ Изменить папкуEmail
@@ -229,7 +229,7 @@
Папки
- Папка обновлена.
+ Папка сохраненаПерейти на сайт
@@ -276,13 +276,13 @@
Вы действительно хотите выйти?
- Удалить учетную запись
+ Удалить аккаунтВы действительно хотите удалить эту учетную запись?
- Учетная запись уже добавлена
+ Аккаунт уже добавленХотите переключиться на нее?
@@ -364,7 +364,7 @@
Label for a uri/url.
- Разблокировать по отпечатку пальца
+ Использовать отпечаток пальца для разблокировкиИмя пользователя
@@ -394,7 +394,7 @@
Просмотр
- Посетите наш сайт
+ Посетить наш сайтПосетите наш сайт, чтобы получить помощь, прочесть новости, связаться с нами и/или узнать больше о том, как использовать Bitwarden.
@@ -425,7 +425,7 @@
Служба автозаполнения
- Избегайте неоднозначных символов
+ Избегать неоднозначных символовРасширение Bitwarden
@@ -471,7 +471,7 @@
Изменение элемента
- Включить автоматическую синхронизацию
+ Разрешить автоматическую синхронизациюВведите email аккаунта для получения подсказки к мастер-паролю.
@@ -587,7 +587,7 @@
Мастер-пароль должен содержать не менее 8 символов.
- Мин. кол-во цифр
+ Минимум цифрMinimum numeric characters for password generator settings
@@ -604,7 +604,7 @@
Никогда
- Новый элемент создан.
+ Элемент добавленВ вашем хранилище нет избранного.
@@ -632,7 +632,7 @@
Прочее
- Пароль создан.
+ Пароль созданГенератор паролей
@@ -657,7 +657,7 @@
Пожалуйста, подумайте о том, чтобы помочь нам хорошим отзывом!
- Придумать другой вариант
+ Создать новый парольВведите мастер-пароль повторно
@@ -681,7 +681,7 @@
Информация об элементе
- Элемент обновлен.
+ Элемент сохраненОтправка...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Синхронизация завершена.
+ Синхронизация выполнена
- Сбой синхронизации.
+ Ошибка синхронизацииСинхронизировать
@@ -708,7 +708,7 @@
Двухфакторная аутентификация
- Двухфакторная аутентификация делает ваш аккаунт более защищенным, требуя подтверждения входа на другом устройстве, например, ключом безопасности, приложением-аутентификатором, SMS, телефонным звонком или письмом. Двухфакторная аутентификация включается на bitwarden.com. Перейти на сайт сейчас?
+ Двухэтапная аутентификация повышает защиту вашего аккаунта, требуя подтверждения входа на другом устройстве, например, с помощью ключа безопасности, приложения-аутентификатора, SMS, телефонного звонка или email. Двухфакторная аутентификация включается на bitwarden.com. Перейти на сайт сейчас?Разблокировка {0}
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Для этого аккаунта включена двухэтапная аутентификация, но ни один из настроенных вариантов аутентификации не поддерживается на этом устройстве. Используйте поддерживаемое устройство и/или добавьте другие варианты, которые поддерживаются на большинстве устройств (например, приложение-аутентификатор).
+ Для этой учетной записи включена двухфакторная аутентификация, однако ни один из настроенных вариантов аутентификации не поддерживается на этом устройстве. Используйте поддерживаемое устройство и/или добавьте другие варианты, которые поддерживаются на большинстве устройств (например, приложение-аутентификатор).Код восстановления
@@ -846,7 +846,7 @@
For 2FA
- Настройки двухэтапной аутентификации
+ Настройки двухфакторной аутентификацииИспользовать другой метод двухфакторной аутентификации
@@ -955,10 +955,10 @@
Вы не можете использовать эту функцию, пока не обновите свой ключ шифрования.
- Узнайть больше
+ Узнать больше
- API URL-адреса сервера
+ URL API сервераПользовательское окружение
@@ -967,27 +967,27 @@
Для опытных пользователей. Можно указать URL отдельно для каждой службы.
- URL-адреса среды сохранены.
+ URL окружения сохранены.{0} это неправильный формат.Validation error when something is not formatted correctly, such as a URL or email address.
- URL-адрес сервера идентификации
+ URL сервера идентификации"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
- Среда собственного хостинга
+ Окружение собственного хостинга
- Укажите URL-адрес Bitwarden на вашем сервере.
+ Укажите URL Bitwarden на вашем сервере.
- URL-адрес сервера
+ URL сервера
- URL-адрес сервера веб-хранилища
+ URL сервера веб-хранилищаКоснитесь этого уведомления, чтобы посмотреть элементы из вашего хранилища.
@@ -1143,7 +1143,7 @@
Отображать узнаваемое изображение рядом с каждым логином.
- URL-адрес сервера значков
+ URL сервера значковАвтозаполнение Bitwarden
@@ -1198,7 +1198,7 @@
Не удалось автоматически открыть меню настроек автозаполнения Android. Вы можете перейти в меню настроек автозаполнения вручную из настроек Android > Система > Языки и ввод > Дополнительно > Служба автозаполнения.
- Имя пользовательского поля
+ Название пользовательского поляЛогическое
@@ -1301,7 +1301,7 @@
Получите доступ к вашему хранилищу прямо с клавиатуры для максимально быстрого автозаполнения.
- Чтобы включить автозаполнение паролей на устройстве, выполните следующие действия:
+ Чтобы настроить автозаполнение паролей на вашем устройстве, выполните следующие действия:1. Перейдите в 'Настройки' iOS
@@ -1556,7 +1556,7 @@
Выберите темную тему для использования в случае включения темы по умолчанию (системной) при включенном темном режиме вашего устройства.
- Скопировать заметки
+ Скопировать заметкуВыйти
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Солнечная темная
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Автозаполнение заблокированных URI
@@ -1591,7 +1595,7 @@
При перезапуске приложения
- Автозаполнение упрощает безопасный доступ к хранилищу Bitwarden со сторонних сайтов и приложений. Похоже, вы не включили службу автозаполнения Bitwarden. Это можно сделать в настройках.
+ Автозаполнение упрощает безопасный доступ к вашему хранилищу Bitwarden со сторонних сайтов и приложений. Похоже, вы не включили службу автозаполнения Bitwarden. Это можно сделать в настройках.Тема будет изменена после перезапуска приложения.
@@ -1625,10 +1629,10 @@
Использовать биометрию
- Bitwarden требует внимания - см. раздел 'Служба специальных возможностей автозаполнения' в настройках Bitwarden.
+ Bitwarden требует внимания - см. раздел "Служба специальных возможностей автозаполнения" в настройках программы.
- 3. На экране настроек приложений Android для Bitwarden перейдите в раздел "Отображение поверх других приложений" (в разделе "Дополнительно") и коснитесь переключателя, чтобы включить поддержку оверлея.
+ 3. На экране настроек приложений Android для Bitwarden перейдите в раздел "Отображение поверх других приложений" (в разделе "Дополнительно") и коснитесь переключателя, чтобы включить поддержку наложения.Разрешения
@@ -1722,7 +1726,7 @@
Message shown when interacting with the server
- Элемент восстановлен.
+ Элемент восстановленConfirmation message after successfully restoring a soft-deleted item
@@ -1797,7 +1801,7 @@
Содержать хотя бы один из следующих специальных символов: {0}
- Некорректный пароль
+ Неверный парольПароль не соответствует требованиям организации. Пожалуйста, проверьте информацию о политике и попробуйте еще раз.
@@ -1827,16 +1831,16 @@
Встроенное в клавиатуру автозаполнение
- Использовать встроенное в клавиатуру автозаполнение, если выбранный способ ввода его поддерживает. Если ваша система не поддерживается (или опция выключена), будет использоваться обычное наложение.
+ Использовать встроенное автозаполнение, если выбранный способ ввода (клавиатура) его поддерживает. Если ваша конфигурация не поддерживается (или эта опция отключена), будет использоваться автозаполнение наложением по умолчанию.Cпециальные возможности
- С помощью службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в Интернете. Если эта функция включена, при выборе полей авторизации будет отображаться всплывающее окно.
+ При помощи службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в интернете. Если эта функция включена, при выборе полей авторизации будет отображаться всплывающее окно.
- С помощью службы специальных возможностей Bitwarden вы можете автоматически заполнять логины в приложениях и в Интернете. (Также необходимо включить опцию 'Поверх других приложений'.)
+ При помощи службы специальных возможностей Bitwarden вы можете автоматически заполнять ваши логины в приложениях и в интернете. (Также необходимо включить опцию 'Поверх других приложений')Используйте службу специальных возможностей Bitwarden для панели быстрого автозаполнения и/или отображения всплывающего окна с помощью опции 'Поверх других приложений' (если она включена).
@@ -1848,13 +1852,13 @@
Поверх других приложений
- Если включено, разрешает службе специальных возможностей Bitwarden отображать всплывающую панель при выборе полей авторизации.
+ При включении, разрешает службе специальных возможностей Bitwarden отображать всплывающую панель при выборе полей авторизации.
- Если включено, служба специальных возможностей Bitwarden отобразит всплывающую панель при выборе полей авторизации, чтобы помочь автоматически заполнить учетные данные.
+ При включении, служба специальных возможностей Bitwarden отобразит всплывающую панель при выборе полей авторизации, чтобы помочь автоматически заполнить ваши учетные данные.
- Если включено, служба специальных возможностей отобразит всплывающее сообщение, чтобы вызвать службу автозаполнения для старых приложений, не поддерживающих фреймворк автозаполнения Android.
+ При включении, служба специальных возможностей отобразит всплывающее сообщение, чтобы вызвать службу автозаполнения для старых приложений, не поддерживающих фреймворк автозаполнения Android.В соответствии с корпоративной политикой вам запрещено сохранять элементы в личном хранилище. Измените владельца на организацию и выберите из доступных Коллекций.
@@ -1910,7 +1914,7 @@
Тип текста не выбран, коснитесь, чтобы выбрать.
- Срок удаления
+ Дата удаленияВремя удаления
@@ -1923,7 +1927,7 @@
Ожидание удаления
- Срок истечения
+ Дата истеченияВремя истечения
@@ -1972,7 +1976,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Отключить эту Send, чтобы никто не мог получить к ней доступ.
+ Отключить эту Send, чтобы никто не мог получить к ней доступ'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2002,7 +2006,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Добавить Send
+ Новая Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2014,15 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send была удалена.
+ Send удалена'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send обновлена.
+ Send сохранена'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Новая Send создана.
+ Send создана'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2076,7 +2080,7 @@
Это действие защищено. Для продолжения введите свой мастер-пароль, чтобы подтвердить свою личность.
- Требуется ввод капчи
+ Требуется капчаОшибка капчи. Попробуйте еще раз.
@@ -2115,7 +2119,7 @@
FIDO2 WebAuthn
- Чтобы продолжить, подготовьте свой ключ безопасности с поддержкой FIDO2 WebAuthn, затем следуйте инструкциям после нажатия кнопки 'Authenticate WebAuthn' на следующем экране.
+ Чтобы продолжить, подготовьте свой ключ безопасности с поддержкой FIDO2 WebAuthn, затем следуйте инструкциям после нажатия кнопки 'Аутентифицировать WebAuthn' на следующем экране.Аутентификация с помощью FIDO2 WebAuthn. Вы можете аутентифицироваться с помощью внешнего ключа безопасности.
@@ -2142,7 +2146,7 @@
Экспорт вашего личного хранилища запрещен одной или несколькими политиками организации.
- Добавить учетную запись
+ Добавить аккаунтРазблокировано
@@ -2151,7 +2155,7 @@
Заблокировано
- Вы вышли из учетной записи
+ Вы вышли из аккаунтаПереключено на следующую доступную учетную запись
@@ -2302,7 +2306,7 @@
При установке опции блокировки на "Никогда" хранилище будет доступно любому, кто имеет доступ к вашему устройству, поэтому убедитесь, что устройство защищено должным образом.
- Один или несколько введенных URL-адресов неверны. Пожалуйста, проверьте их и попробуйте сохранить снова.
+ Один или несколько введенных URL неверны. Пожалуйста, проверьте их и попробуйте сохранить снова.Нам не удалось обработать ваш запрос. Пожалуйста, попробуйте снова или свяжитесь с нами.
@@ -2386,7 +2390,7 @@
Субадресованные email
- Catch-all-адрес электронной почты
+ Общий email доменаПсевдоним электронной почты для пересылки
@@ -2440,7 +2444,7 @@
Используйте возможности субадресации вашей электронной почты
- Использовать настроенную в вашем домене почту catch-all.
+ Использовать общую почту домена.Создать псевдоним электронной почты для внешней службы пересылки.
@@ -2463,4 +2467,9 @@
Запрос на вход истек.
+
+ Попытка авторизации с:
+{0}
+Хотите переключиться на этот аккаунт?
+
diff --git a/src/App/Resources/AppResources.si.resx b/src/App/Resources/AppResources.si.resx
index f1339b000..8ff3d2b94 100644
--- a/src/App/Resources/AppResources.si.resx
+++ b/src/App/Resources/AppResources.si.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.sk.resx b/src/App/Resources/AppResources.sk.resx
index 9fe565563..4d2847199 100644
--- a/src/App/Resources/AppResources.sk.resx
+++ b/src/App/Resources/AppResources.sk.resx
@@ -1575,6 +1575,10 @@ Skenovanie prebehne automaticky.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Tmavá – Solarized
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Blokované URI pre automatické vypĺňanie
@@ -2463,4 +2467,9 @@ Pridať TOTP, aby ste kľúč bezpečne uložili
Platnosť žiadosti o prihlásenie už vypršala.
+
+ Pokus o prihlásenie z:
+{0}
+Chcete prepnúť na toto konto?
+
diff --git a/src/App/Resources/AppResources.sl.resx b/src/App/Resources/AppResources.sl.resx
index c7b11256b..4c8b45efc 100644
--- a/src/App/Resources/AppResources.sl.resx
+++ b/src/App/Resources/AppResources.sl.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.sr.resx b/src/App/Resources/AppResources.sr.resx
index c3bbd8642..a738cbb4e 100644
--- a/src/App/Resources/AppResources.sr.resx
+++ b/src/App/Resources/AppResources.sr.resx
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Ауто-попуни клокиране УРЛ
@@ -2465,4 +2469,9 @@
Захтев за пријаву је већ истекао.
+
+ Покушај пријаве са:
+{0}
+Да ли желите да пређете на овај налог?
+
diff --git a/src/App/Resources/AppResources.sv.resx b/src/App/Resources/AppResources.sv.resx
index 96dc45535..a1f961fc2 100644
--- a/src/App/Resources/AppResources.sv.resx
+++ b/src/App/Resources/AppResources.sv.resx
@@ -229,14 +229,14 @@
Mappar
- Mappen uppdaterades.
+ Mapp sparadGå till webbplatsThe button text that allows user to launch the website to their web browser.
- Hjälp & Feedback
+ Hjälp och återkopplingDölj
@@ -300,7 +300,7 @@
The title for the vault page.
- Authenticator
+ AutentiserareAuthenticator TOTP feature
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Objektet har raderats.
+ Objektet har raderatsConfirmation message after successfully deleting a login.
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} har kopierats.
+ {0} har kopieratsConfirmation message after suceessfully copying a value to the clipboard.
@@ -604,7 +604,7 @@
Aldrig
- Nytt objekt skapat.
+ Nytt objekt skapatDet finns inga favoriter i ditt valv.
@@ -632,7 +632,7 @@
Annat
- Lösenord skapat.
+ Lösenord skapatLösenordsgenerator
@@ -681,7 +681,7 @@
Objektinformation
- Objektet uppdaterades.
+ Objekt har sparatsSkickar...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Synkroniseringen slutfördes.
+ Synkronisering slutförd
- Synkronisering misslyckades.
+ Synkronisering misslyckadesSynkronisera valv nu
@@ -857,7 +857,7 @@ Vänligen använd en enhet som stöds och/eller lägg till fler metoder som har
For 2FA
- Verifieringsmeddelande har skickats.
+ E-postmeddelande för bekräftelse har skickatsFor 2FA
@@ -901,8 +901,8 @@ Vänligen använd en enhet som stöds och/eller lägg till fler metoder som har
Kan inte läsa autentiseringsnyckeln.
- Point your camera at the QR Code.
-Scanning will happen automatically.
+ Peka kameran på QR-koden.
+Skanningen sker automatiskt.Skanna QR-kod
@@ -917,7 +917,7 @@ Scanning will happen automatically.
Kopiera TOTP
- If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
+ Om en inloggning har en autentiseringsnyckel, kopiera TOTP-verifieringskoden till ditt urklipp när du automatiskt fyller i inloggningen.Kopiera TOTP automatiskt
@@ -1138,10 +1138,10 @@ Scanning will happen automatically.
Utgång
- Show website icons
+ Visa webbplatsikoner
- Show a recognizable image next to each login.
+ Visa en identifierbar bild bredvid varje inloggning.Ikonserver-URL
@@ -1171,10 +1171,10 @@ Scanning will happen automatically.
Tillgänglighetstjänst för automatisk ifyllnad
- The Bitwarden auto-fill service uses the Android Autofill Framework to assist in filling login information into other apps on your device.
+ Bitwardens tjänst för automatisk ifyllnad använder Android Autofill Framework för att hjälpa till att fylla i inloggningsuppgifter i andra appar på din enhet.
- Use the Bitwarden auto-fill service to fill login information into other apps.
+ Använd Bitwardens automatiska ifyllnadstjänst för att fylla i inloggningsuppgifter i andra appar.Öppna inställningar för automatisk ifyllnad
@@ -1382,10 +1382,10 @@ Scanning will happen automatically.
Sök i samling
- Search file Sends
+ Sök i Sends filer
- Search text Sends
+ Sök i Sends textmeddelandenSök {0}
@@ -1551,10 +1551,10 @@ Scanning will happen automatically.
Standard (System)
- Default dark theme
+ Standard mörkt tema
- Choose the dark theme to use when using Default (System) theme while your device's dark mode is in use.
+ Välj det mörka temat att använda när du använder standardtemat (System) medan din enhets mörka läge används.Kopiera anteckningar
@@ -1576,17 +1576,21 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
- Auto-fill blocked URIs
+ Fyll automatiskt i blockerade URI:er
- Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
+ Automatisk fyllning kommer inte att erbjudas för blockerade URI:er. Separera flera URI:er med kommatecken. Till exempel: "https://twitter.com, androidapp://com.twitter.android".
- Ask to add login
+ Be om att lägga till inloggning
- Ask to add an item if one isn't found in your vault.
+ Be om att lägga till ett objekt om det inte finns i ditt valv.Vid omstart av appen
@@ -1723,7 +1727,7 @@ Scanning will happen automatically.
Message shown when interacting with the server
- Objektet har återställts.
+ Objekt återställtConfirmation message after successfully restoring a soft-deleted item
@@ -1900,16 +1904,16 @@ Scanning will happen automatically.
Filen du vill skicka.
- File type is selected.
+ Filtypen är vald.
- File type is not selected, tap to select.
+ Filtypen är inte vald, tryck för att välja.
- Text type is selected.
+ Texttyp är vald.
- Text type is not selected, tap to select.
+ Texttyp är inte vald, tryck för att välja.Raderingsdatum
@@ -1931,7 +1935,7 @@ Scanning will happen automatically.
Utgångstid
- If set, access to this Send will expire on the specified date and time.
+ Om angiven kommer åtkomst till denna Skicka att upphöra på angivet datum och tid.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1941,7 +1945,7 @@ Scanning will happen automatically.
Maximalt antal åtkomster
- If set, users will no longer be able to access this Send once the maximum access count is reached.
+ Om angivet kommer användare inte längre kunna komma åt denna Skicka när det maximala antalet åtkomster har uppnåtts.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1954,7 +1958,7 @@ Scanning will happen automatically.
Nytt lösenord
- Optionally require a password for users to access this Send.
+ Kräv eventuellt lösenord av användare för att komma åt detta Skicka.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1974,7 +1978,7 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Deactivate this Send so that no one can access it
+ Inaktivera detta Skicka så att ingen kan komma åt den'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1992,11 +1996,11 @@ Scanning will happen automatically.
Dela länk
- Send link
+ Skicka länk'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Search Sends
+ Sök blan Sends'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2012,15 +2016,15 @@ Scanning will happen automatically.
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send har raderats.
+ Send har raderats'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send uppdaterad.
+ Send har sparats'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Ny Send har skapats.
+ Ny Send har skapats'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2042,11 +2046,11 @@ Scanning will happen automatically.
Anpassad
- Share this Send upon save
+ Dela denna Send när den har sparats'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Due to an enterprise policy, you are only able to delete an existing Send.
+ På grund av företagspolicy kan du bara ta bort en befintlig Skickning.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2078,7 +2082,7 @@ Scanning will happen automatically.
Denna åtgärd är skyddad. För att fortsätta, vänligen verifiera din identitet genom att ange ditt huvudlösenord.
- CAPTCHA krävs
+ Captcha krävsCaptcha misslyckades. Vänligen försök igen.
@@ -2147,25 +2151,25 @@ Scanning will happen automatically.
Lägg till konto
- Unlocked
+ Upplåst
- Locked
+ Låst
- Logged out
+ Utloggad
- Switched to next available account
+ Bytte till nästa tillgängliga konto
- Account locked
+ Kontot är låst
- Account logged out successfully
+ Framgångsrikt utloggad
- Account removed successfully
+ Lyckades ta bort kontoRadera konto
@@ -2183,7 +2187,7 @@ Scanning will happen automatically.
Ditt konto har raderats permanent.
- Ogiltig verifieringskod.
+ Ogiltig verifieringskodBegär engångslösenord
@@ -2216,37 +2220,37 @@ Scanning will happen automatically.
Ange verifieringskoden som skickades till din e-postadress
- Submit crash logs
+ Skicka in fellogg
- Help Bitwarden improve app stability by submitting crash reports.
+ Hjälp Bitwarden att förbättra appens stabilitet genom att skicka in kraschrapporter.
- Options are expanded, tap to collapse.
+ Alternativen är utvidgade, tryck för att dölja.
- Options are collapsed, tap to expand.
+ Alternativen är dolda, tryck för att utvidga.
- Uppercase (A to Z)
+ Versaler (A till Ö)
- Lowercase (A to Z)
+ Gemener (A till Ö)
- Numbers (0 to 9)
+ Siffror (0 till 9)
- Special characters (!@#$%^&*)
+ Specialtecken (!@#$%^&*)
- Tap to go back
+ Tryck för att gå tillbaka
- Password is visible, tap to hide.
+ Lösenordet är synligt, tryck för att dölja.
- Password is not visible, tap to show.
+ Lösenordet är inte synligt, tryck för att visa.Filtrera objekt efter valv
@@ -2267,146 +2271,146 @@ Scanning will happen automatically.
TOTP
- Verification codes
+ Bekräftelsekoder
- Premium subscription required
+ Premium-prenumeration krävs
- Cannot add authenticator key?
+ Kan inte lägga till autentiseringsnyckel?
- Scan QR Code
+ Skanna QR-kod
- Cannot scan QR Code?
+ Kan inte skanna QR-kod?
- Authenticator key
+ Autentiseringsnyckel
- Enter key manually
+ Ange nyckel manuellt
- Add TOTP
+ Lägg till TOTP
- Set up TOTP
+ Ställ in TOTP
- Once the key is successfully entered,
-select Add TOTP to store the key safely
+ När nyckeln har matats in,
+välj Lägg till TOTP för att lagra nyckeln på ett säkert sätt
- Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+ Ställa in dina låsalternativ till “Never” håller ditt valv tillgängligt för alla med tillgång till din enhet. Om du använder det här alternativet bör du se till att du håller din enhet ordentligt skyddad.
- One or more of the URLs entered are invalid. Please revise it and try to save again.
+ En eller flera av de angivna webbadresserna är ogiltiga. Vänligen ändra det och försök att spara igen.
- We were unable to process your request. Please try again or contact us.
+ Vi kunde inte behandla din begäran. Försök igen eller kontakta oss.
- Allow screen capture
+ Tillåt skärmdump
- Are you sure you want to turn on screen capture?
+ Är du säker på att du vill tillåta skärmdumpar?
- Login requested
+ Inloggning begärd
- Are you trying to log in?
+ Försöker du logga in?
- Login attempt by {0} on {1}
+ Inloggningsförsök av {0} på {1}
- Device type
+ Typ av enhet
- IP address
+ IP-adress
- Time
+ Tid
- Near
+ Nära
- Confirm login
+ Bekräfta inloggning
- Deny login
+ Neka inloggning
- Just now
+ Nyss
- {0} minutes ago
+ {0} minuter sedan
- Login confirmed
+ Inloggning bekräftad
- Login denied
+ Inloggning nekad
- Approve login requests
+ Godkänn inloggningsförfrågningar
- Use this device to approve login requests made from other devices.
+ Använd denna enhet för att godkänna inloggningsförfrågningar från andra enheter.
- Allow notifications
+ Tillåt aviseringar
- Receive push notifications for new login requests
+ Få push-meddelanden för nya inloggningsförfrågningar
- No thanks
+ Nej tack
- Confirm login attempt for {0}
+ Bekräfta inloggningsförsök för {0}
- All notifications
+ Alla aviseringar
- Password type
+ Lösenordstyp
- What would you like to generate?
+ Vad vill du skapa?
- Username type
+ Typ av användarnamn
- Plus addressed email
+ Plusadresserad e-post
- Catch-all email
+ E-post med catch-all
- Forwarded email alias
+ Vidarebefordrad e-postalias
- Random word
+ Slumpmässigt ord
- Email (required)
+ E-post (obligatoriskt)
- Domain name (required)
+ Domännamn (obligatoriskt)
- API key (required)
+ API-nyckel (krävs)
- Service
+ TjänstAnonAddy
@@ -2421,48 +2425,53 @@ select Add TOTP to store the key safely
"SimpleLogin" is the product name and should not be translated.
- API access token
+ API-åtkomsttoken
- Are you sure you want to overwrite the current username?
+ Är du säker på att du vill ersätta nuvarande användarnamn?
- Generate username
+ Skapa användarnamn
- Email Type
+ E-posttyp
- Website (required)
+ Webbplats (krävs)
- Unknown {0} error occurred.
+ Okänt {0} fel uppstod.
- Use your email provider's subaddress capabilities
+ Använd din e-postleverantörs funktioner för underadress
- Use your domain's configured catch-all inbox.
+ Använd din domäns konfigurerade catch-all inkorg.
- Generate an email alias with an external forwarding service.
+ Skapa ett e-postalias med en extern vidarebefordranstjänst.
- Random
+ Slumpmässig
- Accessibility Service Disclosure
+ Delgivning av tillgänglighetstjänst
- Bitwarden uses the Accessibility Service to search for login fields in apps and websites, then establish the appropriate field IDs for entering a username & password when a match for the app or site is found. We do not store any of the information presented to us by the service, nor do we make any attempt to control any on-screen elements beyond text entry of credentials.
+ Bitwarden använder tillgänglighetstjänsten för att söka efter inloggningsfält i appar och på webbplatser. Därefter fastställs lämpliga fältidentifierare för att mata in användarnamn och lösenord när en träff för appen eller webbplatsen hittas. Vi lagrar inte någon av de uppgifter som hittas av tjänsten, Vi gör inte heller några försök att kontrollera några element på skärmen bortom textinmatning av identitetshandlingarna.
- Accept
+ Godkänn
- Decline
+ Neka
- Login request has already expired.
+ Inloggningsbegäran har redan löpt ut.
+
+
+ Inloggningsförsök från:
+{0}
+Vill du byta till detta konto?
diff --git a/src/App/Resources/AppResources.ta.resx b/src/App/Resources/AppResources.ta.resx
index b769d673a..057e00c3a 100644
--- a/src/App/Resources/AppResources.ta.resx
+++ b/src/App/Resources/AppResources.ta.resx
@@ -1576,6 +1576,10 @@ Scanning will happen automatically.
நார்ட்'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2464,4 +2468,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.th.resx b/src/App/Resources/AppResources.th.resx
index 07ff288d7..a7b7b3911 100644
--- a/src/App/Resources/AppResources.th.resx
+++ b/src/App/Resources/AppResources.th.resx
@@ -1582,6 +1582,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2471,4 +2475,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.tr.resx b/src/App/Resources/AppResources.tr.resx
index ebc0c4338..67433d76c 100644
--- a/src/App/Resources/AppResources.tr.resx
+++ b/src/App/Resources/AppResources.tr.resx
@@ -1575,6 +1575,10 @@ Kod otomatik olarak taranacaktır.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Engellenmiş URI'leri otomatik doldur
@@ -2462,4 +2466,9 @@ Kod otomatik olarak taranacaktır.
Giriş isteğinin süresi doldu.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.uk.resx b/src/App/Resources/AppResources.uk.resx
index 801a6a068..69d66004d 100644
--- a/src/App/Resources/AppResources.uk.resx
+++ b/src/App/Resources/AppResources.uk.resx
@@ -179,7 +179,7 @@
Змінити
- Редагувати теку
+ РедагуванняЕ-пошта
@@ -229,7 +229,7 @@
Теки
- Теку оновлено.
+ Теку збереженоПерейти на вебсайт
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- Запис було видалено.
+ Запис видаленоConfirmation message after successfully deleting a login.
@@ -364,7 +364,7 @@
Label for a uri/url.
- Розблокування відбитком пальця
+ Розблокуйте відбитком пальцяІм'я користувача
@@ -375,14 +375,14 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} скопійовано.
+ {0} скопійованоConfirmation message after suceessfully copying a value to the clipboard.
- Перевірка відбитку пальця
+ Перевірити фразу відбитка
- Перевірка головного пароля
+ Перевірити головний парольПеревірка PIN
@@ -443,7 +443,7 @@
Використовуйте службу спеціальних можливостей Bitwarden, щоб автоматично вводити паролі.
- Змінити адресу е-пошти
+ Змінити е-поштуВи можете змінити адресу е-пошти в сховищі на bitwarden.com. Хочете перейти на вебсайт зараз?
@@ -468,10 +468,10 @@
Message shown when interacting with the server
- Редагування запису
+ Редагування
- Увімкніть автоматичну синхронізацію
+ Дозволити автоматичну синхронізаціюВведіть свою адресу е-пошти, щоб отримати підказку для головного пароля.
@@ -604,7 +604,7 @@
Ніколи
- Новий запис створено.
+ Запис доданоУ вашому сховищі немає обраного.
@@ -632,7 +632,7 @@
Інше
- Пароль згенеровано.
+ Пароль згенерованоГенератор паролів
@@ -681,7 +681,7 @@
Інформація про запис
- Запис оновлено.
+ Запис збереженоВідправлення...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- Синхронізацію завершено.
+ Синхронізацію завершено
- Збій синхронізації.
+ Збій синхронізаціїСинхронізувати зараз
@@ -831,7 +831,7 @@
For 2FA whenever there are no available providers on this device.
- Цей обліковий запис має увімкнену двоетапну перевірку, однак, жоден з підтримуваних провайдерів для цього пристрою не підтримується. Будь ласка, скористайтеся підтримуваним пристроєм та/або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму авторизації).
+ Цей обліковий запис має увімкнену двоетапну перевірку, однак, жоден із налаштованих провайдерів не підтримується на цьому пристрої. Будь ласка, скористайтеся підтримуваним пристроєм або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму авторизації).Код відновлення
@@ -856,7 +856,7 @@
For 2FA
- Лист для підтвердження надіслано.
+ Лист для підтвердження надісланоFor 2FA
@@ -958,7 +958,7 @@
Докладніше
- URL-адреса API
+ URL-адреса сервера APIВласне середовище
@@ -1461,7 +1461,7 @@
A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
- Фраза відбитку вашого облікового запису
+ Фраза відбитка вашого облікового записуA 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
@@ -1575,6 +1575,10 @@
Норд'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Поляризована темна
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Заблоковані для автозаповнення URI
@@ -1591,7 +1595,7 @@
Під час перезапуску програми
- Автозаповнення дозволяє безпечно отримувати доступ до вашого сховища Bitwarden з інших вебсайтів та програм. Схоже, що ви не активували функцію автозаповнення Bitwarden. Увімкніть автозаповнення на екрані налаштувань.
+ Автозаповнення дає змогу безпечно отримувати доступ до вашого сховища Bitwarden з інших вебсайтів та програм. Схоже, ви не активували функцію автозаповнення Bitwarden. Увімкніть автозаповнення на екрані налаштувань.Зміни теми застосуються після перезапуску програми.
@@ -1628,7 +1632,7 @@
Bitwarden потребує вашої уваги - Див. розділ "Служба спеціальних можливостей автозаповнення" в налаштуваннях Bitwarden
- 3. В Налаштуваннях Android для Bitwarden перейдіть до "Відображення поверх інших програм" (розділ Розширені) і змініть положення перемикача для активації накладання.
+ 3. У налаштуваннях Android для Bitwarden перейдіть до "Накладання інших програм" (розділ Розширені) і змініть положення перемикача для активації накладання.Дозволи
@@ -1637,7 +1641,7 @@
Відкрити налаштування дозволів накладання
- 3. В Налаштуваннях Android для Bitwarden оберіть "Відображення поверх інших програм" (розділ Розширені) і змініть положення перемикача для дозволу накладання.
+ 3. У налаштуваннях Android для Bitwarden оберіть "Накладання інших програм" (розділ Розширені) і змініть положення перемикача для дозволу накладання.Заборонено
@@ -1722,7 +1726,7 @@
Message shown when interacting with the server
- Запис відновлено.
+ Запис відновленоConfirmation message after successfully restoring a soft-deleted item
@@ -1752,7 +1756,7 @@
Біометричне розблокування для автозаповнення вимкнено. Очікується перевірка головного пароля.
- Увімкнути синхронізацію жестом
+ Дозволити синхронізацію жестомСинхронізація сховища жестом Потягнути донизу.
@@ -1998,11 +2002,11 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Змінити відправлення
+ Редагування'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Додати відправлення
+ Нове відправлення'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2014,15 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Відправлення було видалено.
+ Відправлення видалено'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Відправлення оновлено.
+ Відправлення збережено'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Створено нове відправлення.
+ Відправлення створено'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2181,7 +2185,7 @@
Ваш обліковий запис було остаточно видалено
- Недійсний код підтвердження.
+ Недійсний код підтвердженняЗапитувати одноразовий пароль
@@ -2419,7 +2423,7 @@
"SimpleLogin" is the product name and should not be translated.
- Токен доступу до АРІ
+ Токен доступу до APIВи дійсно бажаєте перезаписати поточне ім'я користувача?
@@ -2463,4 +2467,9 @@
Термін дії запиту на вхід завершився.
+
+ Спроба входу в систему з:
+{0}
+Хочете перемкнутися на цей обліковий запис?
+
diff --git a/src/App/Resources/AppResources.vi.resx b/src/App/Resources/AppResources.vi.resx
index 97b8a8862..5ff69e818 100644
--- a/src/App/Resources/AppResources.vi.resx
+++ b/src/App/Resources/AppResources.vi.resx
@@ -1575,6 +1575,10 @@ Scanning will happen automatically.
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
Auto-fill blocked URIs
@@ -2463,4 +2467,9 @@ select Add TOTP to store the key safely
Login request has already expired.
+
+ Login attempt from:
+{0}
+Do you want to switch to this account?
+
diff --git a/src/App/Resources/AppResources.zh-Hans.resx b/src/App/Resources/AppResources.zh-Hans.resx
index 0cb30490c..38e368cd7 100644
--- a/src/App/Resources/AppResources.zh-Hans.resx
+++ b/src/App/Resources/AppResources.zh-Hans.resx
@@ -229,7 +229,7 @@
文件夹
- 文件夹已更新。
+ 文件夹已保存前往网站
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- 项目已被删除。
+ 项目已删除Confirmation message after successfully deleting a login.
@@ -375,7 +375,7 @@
Validation message for when a form field is left blank and is required to be entered.
- {0} 已复制。
+ {0} 已复制Confirmation message after suceessfully copying a value to the clipboard.
@@ -428,7 +428,7 @@
避免易混淆的字符
- bitwarden App 扩展
+ Bitwarden 应用程序扩展向您的密码库中添加新登录项目的最简单方法,就是通过 Bitwarden 应用程序扩展。转到「设置」界面了解更多有关使用 Bitwarden 应用程序扩展的方法。
@@ -461,7 +461,7 @@
继续
- 创建账号
+ 创建账户正在创建账户...
@@ -477,13 +477,13 @@
请输入您账户的 Email 地址来接收主密码提示。
- 重新开启 App 扩展
+ 重新启用应用程序扩展就差一步!
- 开启 App 扩展
+ 启用应用程序扩展在 Safari 中,使用共享图标寻找 Bitwarden (提示:在菜单最下面一行的右边)。
@@ -529,7 +529,7 @@
从其他密码管理应用中快速批量导入您的项目。
- 上次同步:
+ 上次同步:长度
@@ -578,7 +578,7 @@
主密码是您访问密码库的唯一密码。它非常重要,请您不要忘记。一旦忘记,无任何办法恢复此密码。
- 主密码提示 (可选)
+ 主密码提示(可选)主密码提示可以在你忘记密码时帮你回忆起来。
@@ -604,7 +604,7 @@
从不
- 已新建项目。
+ 项目已添加你的密码库中没有任何收藏。
@@ -632,7 +632,7 @@
其他
- 密码已生成。
+ 密码已生成密码生成器
@@ -660,7 +660,7 @@
重新生成密码
- 重新输入主密码
+ 再次输入主密码搜索密码库
@@ -681,7 +681,7 @@
项目信息
- 项目已更新。
+ 项目已保存正在提交...
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- 同步完成。
+ 同步完成
- 同步失败。
+ 同步失败立即同步
@@ -799,7 +799,7 @@
匹配项目
- 可能的匹配项
+ 可能匹配的项目搜索
@@ -834,7 +834,7 @@
此账户已启用两步登录,但此设备上不支持任何已配置的两步提供程序。请使用受支持的设备和/或添加其他跨设备支持的提供程序(例如验证器应用)。
- 恢复码
+ 恢复代码For 2FA
@@ -856,18 +856,18 @@
For 2FA
- 验证电子邮件已发送。
+ 验证邮件已发送For 2FA要继续,请将您的 YubiKey 靠在设备背面或者将 YubiKey 插入您设备的 USB 端口,然后按下按钮。
- YubiKey NEO 安全密钥
+ YubiKey 安全钥匙"YubiKey" is the product name and should not be translated.
- 添加新附件
+ 添加新的附件附件
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- 验证器密钥(TOTP)
+ 验证器密钥 (TOTP)
- 验证码(TOTP)
+ 验证码 (TOTP)Totp code label
@@ -955,7 +955,7 @@
在您更新加密密钥前,您不能使用此功能。
- 了解更多信息。
+ 了解更多信息API 服务器 URL
@@ -987,7 +987,7 @@
服务器 URL
- Web 存储库服务器 URL
+ 网页密码库服务器 URL点击此通知以查看密码库中的项目。
@@ -1083,7 +1083,7 @@
全名
- 许可证编号
+ 许可证号码三月
@@ -1213,7 +1213,7 @@
文本型
- 新建自定义字段
+ 新增自定义字段您想添加的自定义字段的类型是?
@@ -1286,7 +1286,7 @@
ex. Date this item was updated
- 自动填写已激活!
+ 自动填充已激活!您必须先登录 Bitwarden 应用,才可以使用自动填充。
@@ -1301,7 +1301,7 @@
从键盘直接访问密码库以快速自动填充密码。
- 请按照以下步骤在你的设备上开启密码自动填写功能:
+ 请按照以下步骤在你的设备上开启密码自动填充功能:1. 前往 iOS 的「设置」应用
@@ -1553,7 +1553,7 @@
默认深色主题
- 当设备的深色模式启用时使用默认(系统)主题,选择此时要使用的深色主题。
+ 当设备的深色模式启用时,选择用来代替默认(系统)主题的深色主题。复制备注
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ 过曝暗
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
自动填充已屏蔽的 URI
@@ -1591,7 +1595,7 @@
应用重启时
- 自动填充可以简单安全地从其他网站和应用程序中访问您的 Bitwarden 密码库。看起来您还没有启用 Bitwarden 自动填充服务。从「设置」界面启用 Bitwarden 自动填充。
+ 自动填充可以简单安全地从其他网站和应用程序中访问您的 Bitwarden 密码库。看起来您还没有启用 Bitwarden 自动填充服务。请从「设置」界面启用 Bitwarden 自动填充。您的主题将在应用程序重启后生效。
@@ -1722,7 +1726,7 @@
Message shown when interacting with the server
- 项目已恢复。
+ 项目已恢复Confirmation message after successfully restoring a soft-deleted item
@@ -1797,7 +1801,7 @@
包含至少一个下列的特殊字符: {0}
- 无效密码
+ 无效的密码密码不符合组织要求。请检查策略信息并重试。
@@ -1827,19 +1831,19 @@
使用内嵌自动填充
- 如果您所选的 IME(键盘)支持,将使用内嵌方式的自动填充。 如果您的配置不支持(或此选项被禁用),将使用默认的叠加层方式的自动填充。
+ 如果您所选的 IME(键盘)支持,将使用内嵌方式的自动填充。如果您的配置不支持(或此选项被关闭),将使用默认的叠加层方式的自动填充。使用无障碍
- 使用 Bitwarden 无障碍服务来自动填充您在应用和网络中的登录信息。启用后,将在选择登录字段时显示弹出窗口。
+ 使用 Bitwarden 无障碍服务来自动填充您在应用和网络中的登录信息。启用后,选中登录字段时将显示弹出窗口。使用 Bitwarden 无障碍服务来自动填充您在应用和网络上的登录信息。(需同时启用 Draw-Over 功能)
- 使用 Bitwarden 无障碍服务来使用自动填写快速行动磁贴,和/或使用 Draw-Over(若已启用)来显示弹出窗口。
+ 使用 Bitwarden 无障碍服务来使用自动填充快速行动磁贴,和/或使用 Draw-Over(若已启用)来显示弹出窗口。要求使用自动填充快速行动磁贴,或通过使用 Draw-Over (若已启用)来增强自动填充服务。
@@ -1848,16 +1852,16 @@
使用 Draw-Over
- 启用后,需允许 Bitwarden 无障碍服务在选择登录字段时显示弹出窗口。
+ 允许 Bitwarden 无障碍服务在登录字段选中时显示弹出窗口。
- 若启用,当选择登录字段自动填充您的登录时,Bitwarden 无障碍服务将显示一个弹出窗口。
+ 如果开启,当登录字段选中时,Bitwarden 无障碍服务将显示一个弹出窗口以帮助自动填充您的登录信息。
- 若启用,无障碍将显示一个弹出窗口以增强不支持 Android 自动填充框架的旧应用的自动填充服务。
+ 如果开启,无障碍将显示一个弹出窗口以增强不支持 Android 自动填充框架的旧应用的自动填充服务。
- 由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,并从可用的集合中选择。
+ 由于企业策略,您被限制为保存项目到您的个人密码库。将所有权选项更改为组织,然后从可用的集合中选择。某个组织策略正影响您的所有权选项。
@@ -1923,7 +1927,7 @@
等待删除
- 过期日期
+ 到期日期到期时间
@@ -1972,7 +1976,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- 禁用此 Send 以阻止任何人访问它
+ 停用此 Send 则任何人无法访问它'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2002,7 +2006,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- 添加 Send
+ 新增 Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2010,15 +2014,15 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send 已删除。
+ Send 已删除'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Send 已更新。
+ Send 已保存'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- 已新建 Send。
+ Send 已创建'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2076,10 +2080,10 @@
此操作受到保护,要继续,请重新输入您的主密码以验证您的身份。
- 请完成人机验证
+ 请完成 Captcha 验证
- 人机验证失败。请重试。
+ Captcha 验证失败。请重试。已更新主密码
@@ -2088,7 +2092,7 @@
更新主密码
- 您的主密码最近被您组织的管理员更改过。要访问密码库,您必须立即更新主密码。继续操作将使您退出当前会话,要求您重新登录。其他设备上的活动会话可能会继续保持活动状态长达一小时。
+ 您的主密码最近被您组织的管理员更改过。要访问此密码库,必须立即更新您的主密码。继续操作将使您退出当前会话,要求您重新登录。其他设备上的活动会话可能会继续保持活动状态长达一小时。正在更新密码
@@ -2103,19 +2107,19 @@
{0} 正在使用客户管理加密的 SSO。继续操作将删除您的账户主密码并要求 SSO 登录。
- 如果您不想删除您的账号主密码,您可以离开这个组织。
+ 如果您不想移除您的账号主密码,您可以退出这个组织。
- 离开组织
+ 退出组织
- 离开 {0}?
+ 退出 {0}?FIDO2 WebAuthn
- 要继续,请准备好您的已启用了 FIDO2 WebAuthn 的安全钥匙,然后在下一个界面点击 "验证 WebAuthn"。
+ 若要继续,请准备好 FIDO2 WebAuthn 兼容的安全钥匙,在下一个界面点击「验证 WebAuthn」,然后遵循说明。使用 FIDO2 WebAuthn 进行身份验证,您可以使用外部安全钥匙来进行身份验证。
@@ -2151,7 +2155,7 @@
已锁定
- 已退出账户
+ 已注销已切换到下一个可用的账户
@@ -2235,7 +2239,7 @@
数字 (0-9)
- 特殊字符(!@#$%^&*)
+ 特殊字符 (!@#$%^&*)点击以返回
@@ -2250,7 +2254,7 @@
按密码库过滤项目
- 全部密码库
+ 所有密码库密码库
@@ -2463,4 +2467,9 @@
登录请求已过期。
+
+ 登录尝试来自:
+{0}
+您想要切换到此账户吗?
+
diff --git a/src/App/Resources/AppResources.zh-Hant.resx b/src/App/Resources/AppResources.zh-Hant.resx
index 5591e513b..706529593 100644
--- a/src/App/Resources/AppResources.zh-Hant.resx
+++ b/src/App/Resources/AppResources.zh-Hant.resx
@@ -229,7 +229,7 @@
資料夾
- 資料夾已更新。
+ 已更新資料夾。前往網站
@@ -251,10 +251,10 @@
Title for the alert when internet connection is required to continue.
- 主密碼不正確,請再試一次。
+ 無效的主密碼,請再試一次。
- PIN 碼不正確,請再試一次。
+ 無效的 PIN 碼,請再試一次。前往
@@ -342,7 +342,7 @@
Reveal a hidden value (password).
- 已刪除項目。
+ 已刪除項目Confirmation message after successfully deleting a login.
@@ -394,7 +394,7 @@
檢視
- 前往我們的網站
+ 造訪我們的網站瀏覽我們的網站以取得協助、了解新消息、傳送電子郵件給我們或瀏覽更多有關使用 Bitwarden 的秘訣。
@@ -587,11 +587,11 @@
主密碼需要至少 8 個字元。
- 數字
+ 最少數字位數Minimum numeric characters for password generator settings
- 符號
+ 最少符號位數Minimum special characters for password generator settings
@@ -604,7 +604,7 @@
永不
- 已新增項目。
+ 已新增項目您的密碼庫中沒有收藏。
@@ -632,7 +632,7 @@
其他
- 已產生密碼。
+ 已產生密碼密碼產生器
@@ -660,7 +660,7 @@
重新產生密碼
- 重新輸入主密碼
+ 再次輸入主密碼搜尋密碼庫
@@ -692,10 +692,10 @@
Message shown when interacting with the server
- 同步完成。
+ 同步完成
- 同步失敗。
+ 同步失敗立即同步
@@ -799,7 +799,7 @@
相符的項目
- 可能符合的項目
+ 可能相符的項目搜尋
@@ -815,7 +815,7 @@
Message shown when trying to launch an app that does not exist on the user's device.
- 認證器應用程式
+ 驗證器應用程式For 2FA
@@ -863,7 +863,7 @@
若要繼續,請將您的 YubiKey 靠在裝置的背面或者將 YubiKey 插入您裝置的 USB 連接埠,然後按下按鈕。
- YubiKey 安全鑰匙
+ YubiKey 安全金鑰"YubiKey" is the product name and should not be translated.
@@ -887,10 +887,10 @@
The placeholder will show the file size of the attachment. Ex "25 MB"
- 驗證器金鑰(TOTP)
+ 驗證器金鑰 (TOTP)
- 驗證碼(TOTP)
+ 驗證碼 (TOTP)Totp code label
@@ -904,7 +904,7 @@
掃描將自動進行。
- 掃描 QR Code
+ 掃描 QR 碼相機
@@ -987,7 +987,7 @@
伺服器 URL
- 網路版密碼庫伺服器 URL
+ 網頁版密碼庫伺服器 URL按此通知以檢視密碼庫中的登入資料。
@@ -1437,13 +1437,13 @@
選擇您希望將這個項目移動至哪個組織。項目的擁有權將會轉移至該組織。轉移之後,您將不再是此項目的直接擁有者。
- 字數
+ 單字數量密碼短語
- 文字分隔字元
+ 單字分隔字元清除
@@ -1553,7 +1553,7 @@
預設深色主題
- 當裝置的深色模式開啟時使用預設(系統)主題,選擇此時要使用的深色主題。
+ 當裝置的深色模式開啟時,選擇用於替代預設(系統)主題的深色主題。複製備註
@@ -1575,6 +1575,10 @@
Nord'Nord' is the name of a specific color scheme. It should not be translated.
+
+ Solarized Dark 主題
+ 'Solarized Dark' is the name of a specific color scheme. It should not be translated.
+
自動填入已阻止的 URI
@@ -1616,7 +1620,7 @@
您的登入階段已逾期。
- 生物辨識驗證
+ 生物特徵辨識驗證生物特徵辨識
@@ -1628,7 +1632,7 @@
Bitwarden 需要注意 - 請到 Bitwarden 設定中查看「自動填入無障礙服務」
- 3. 在 Android 應用程式設定介面找到 Bitwarden,進入「顯示在其他應用程式上層」選項(在「進階」下),點選開關以啟用叠加層支援。
+ 3. 在 Android 應用程式設定畫面找到 Bitwarden,進入「顯示在其他應用程式上層」選項(在「進階」下),點選開關以啟用叠加層支援。權限
@@ -1749,7 +1753,7 @@
已停用生物特徵辨識解鎖功能,請先驗證主密碼。
- 在驗證主密碼之前,用於自動填入的生物特徵辨識功能將暫時停用。
+ 在驗證主密碼之前,用於自動填入的生物特徵辨識解鎖將暫時停用。啟用重新整理時同步
@@ -1797,7 +1801,7 @@
至少包含一個下列特殊字元: {0}
- 密碼無效
+ 密碼的無效輸入的密碼不符合組織要求,請確認原則資訊後再試一次。
@@ -1851,7 +1855,7 @@
啟用後,在選擇登入欄位時將允許 Bitwarden 無障礙服務顯示彈出式視窗。
- 若啟用,當選擇登入欄位自動填入您的登入資料時,Bitwarden 無障礙服務將顯示彈出式視窗。
+ 若啟用,當選擇登入欄位自動填入您的登入資料時,Bitwarden 無障礙服務將顯示一個彈出式視窗。若啟用,無障礙將顯示一個彈出式視窗以增強不支援 Android 自動填入框架的舊應用程式的自動填入服務。
@@ -2010,7 +2014,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- 已刪除 Send。
+ 已刪除 Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2018,7 +2022,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- 已建立新的 Send。
+ 已建立新的 Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2076,10 +2080,10 @@
此動作受到保護。若要繼續,請重新輸入您的主密碼以驗證您的身分。
- 需要人機驗證 (Captcha)
+ 需要 Captcha 驗證
- 人機驗證 (Captcha) 失敗,請再試一次。
+ Captcha 驗證失敗,請再試一次。已更新主密碼
@@ -2115,7 +2119,7 @@
FIDO2 WebAuthn
- 若要繼續,請準備好您已經啟用 FIDO2 WebAuthn 的安全金鑰,在下個畫面按下 [驗證 WebAuthn],接著遵循指引。
+ 若要繼續,請準備好 FIDO2 WebAuthn 相容的安全金鑰,在下個畫面按下 [驗證 WebAuthn],接著遵循指引。使用 FIDO2 WebAuthn 驗證,您可以使用外部安全金鑰進行驗證。
@@ -2181,7 +2185,7 @@
已永久刪除您的帳戶
- 無效的驗證碼。
+ 無效的驗證碼要求一次性密碼
@@ -2202,7 +2206,7 @@
正在驗證
- 重新傳送代碼
+ 重新傳送驗證碼已傳送驗證碼至您的電子郵件信箱
@@ -2311,7 +2315,7 @@
允許螢幕擷取
- 您確定要允許螢幕擷取嗎?
+ 您確定要啟用螢幕擷取嗎?已要求登入
@@ -2463,4 +2467,9 @@
登入要求已逾期。
+
+ 登入嘗試來自:
+{0}
+您想要切換至這個帳戶嗎?
+
diff --git a/store/apple/hu/copy.resx b/store/apple/hu/copy.resx
index 43fc25271..99e622e12 100644
--- a/store/apple/hu/copy.resx
+++ b/store/apple/hu/copy.resx
@@ -122,32 +122,35 @@
Max 30 characters
- Bitwarden, Inc. is the parent company of 8bit Solutions LLC.
+ A Bitwarden, Inc. a 8bit Solutions LLC anyavállalata.
-NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE.
+A LEGJOBB JELSZÓKEZELŐ NEVE, A SZEMÉLY, U.S. HÍREK ÉS VILÁGJELENTÉS, CNET ÉS TÖBBEK.
-Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go.
+Korlátlan számú jelszavak kezelése, tárolása, biztonsága és megosztása korlátlan számú eszközön, bárhonnan. A Bitwarden nyílt forráskódú jelszókezelési megoldásokat kínál mindenki számára, legyen szó otthonról, munkahelyről, vagy útközben.
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+Erős, egyedi és véletlenszerű jelszavak generálása a biztonsági követelmények alapján minden látogatott webhelyhez.
-Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone.
+A Bitwarden Send gyorsan továbbítja a titkosított információkat -- fájlokat és egyszerű szöveget -- közvetlenül bárkinek.
-Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues.
+A Bitwarden Teams és Enterprise csomagokat kínál a vállalatok számára, így biztonságosan megoszthatja jelszavait kollégáival.
-Why Choose Bitwarden:
+Miért válassza a Bitwarden-t:
-World-Class Encryption
-Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private.
+Világszínvonalú titkosítás
-Built-in Password Generator
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+A jelszavakat fejlett végpontok közötti titkosítás védi (AES-256 bit, sózott hashtag és PBKDF2 SHA-256), így az adatok biztonságban és privátak maradnak.
-Global Translations
-Bitwarden translations exist in 40 languages and are growing, thanks to our global community.
+Beépített jelszógenerátor
-Cross-Platform Applications
-Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more.
-
+Erős, egyedi és véletlenszerű jelszavakat generál a biztonsági követelmények alapján minden látogatott webhelyhez.
+
+Globális fordítások
+
+A Bitwarden fordítások 40 nyelven léteznek, és a globális közösségünknek köszönhetően növekszik.
+
+Platformokon átívelő alkalmazások
+
+Biztonságos adatok védelme és megosztása a Bitwarden széfen belül bármely böngészőből, mobileszközről vagy asztali operációs rendszerről, stb.Max 4000 characters
diff --git a/store/google/hu/copy.resx b/store/google/hu/copy.resx
index 412754629..0683c3476 100644
--- a/store/google/hu/copy.resx
+++ b/store/google/hu/copy.resx
@@ -126,31 +126,35 @@
Max 80 characters
- Bitwarden, Inc. is the parent company of 8bit Solutions LLC.
+ A Bitwarden, Inc. a 8bit Solutions LLC anyavállalata.
-NAMED BEST PASSWORD MANAGER BY THE VERGE, U.S. NEWS & WORLD REPORT, CNET, AND MORE.
+A LEGJOBB JELSZÓKEZELŐ NEVE, A SZEMÉLY, U.S. HÍREK ÉS VILÁGJELENTÉS, CNET ÉS TÖBBEK.
-Manage, store, secure, and share unlimited passwords across unlimited devices from anywhere. Bitwarden delivers open source password management solutions to everyone, whether at home, at work, or on the go.
+Korlátlan számú jelszavak kezelése, tárolása, biztonsága és megosztása korlátlan számú eszközön, bárhonnan. A Bitwarden nyílt forráskódú jelszókezelési megoldásokat kínál mindenki számára, legyen szó otthonról, munkahelyről, vagy útközben.
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+Erős, egyedi és véletlenszerű jelszavak generálása a biztonsági követelmények alapján minden látogatott webhelyhez.
-Bitwarden Send quickly transmits encrypted information --- files and plaintext -- directly to anyone.
+A Bitwarden Send gyorsan továbbítja a titkosított információkat -- fájlokat és egyszerű szöveget -- közvetlenül bárkinek.
-Bitwarden offers Teams and Enterprise plans for companies so you can securely share passwords with colleagues.
+A Bitwarden Teams és Enterprise csomagokat kínál a vállalatok számára, így biztonságosan megoszthatja jelszavait kollégáival.
-Why Choose Bitwarden:
+Miért válassza a Bitwarden-t:
-World-Class Encryption
-Passwords are protected with advanced end-to-end encryption (AES-256 bit, salted hashtag, and PBKDF2 SHA-256) so your data stays secure and private.
+Világszínvonalú titkosítás
-Built-in Password Generator
-Generate strong, unique, and random passwords based on security requirements for every website you frequent.
+A jelszavakat fejlett végpontok közötti titkosítás védi (AES-256 bit, sózott hashtag és PBKDF2 SHA-256), így az adatok biztonságban és privátak maradnak.
-Global Translations
-Bitwarden translations exist in 40 languages and are growing, thanks to our global community.
+Beépített jelszógenerátor
-Cross-Platform Applications
-Secure and share sensitive data within your Bitwarden Vault from any browser, mobile device, or desktop OS, and more.
+Erős, egyedi és véletlenszerű jelszavakat generál a biztonsági követelmények alapján minden látogatott webhelyhez.
+
+Globális fordítások
+
+A Bitwarden fordítások 40 nyelven léteznek, és a globális közösségünknek köszönhetően növekszik.
+
+Platformokon átívelő alkalmazások
+
+Biztonságos adatok védelme és megosztása a Bitwarden széfen belül bármely böngészőből, mobileszközről vagy asztali operációs rendszerről, stb.
Max 4000 characters