1
0
mirror of https://github.com/bitwarden/mobile synced 2026-02-24 16:43:03 +00:00

Merge branch 'master' into feature/PM-115-encryption-update-new-model

This commit is contained in:
Federico Andrés Maccaroni
2023-03-20 13:42:45 -03:00
87 changed files with 1176 additions and 263 deletions

View File

@@ -37,6 +37,8 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
with:
submodules: 'true'
- name: Check if special branches exist
id: branch-check
@@ -514,6 +516,8 @@ jobs:
- name: Checkout repo
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
with:
submodules: 'true'
- name: Login to Azure - Prod Subscription
uses: Azure/login@1f63701bf3e6892515f1b7ce2d2bf1708b46beaf

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "lib/MessagePack"]
path = lib/MessagePack
url = https://github.com/bitwarden/MessagePack.git

1
lib/MessagePack Submodule

Submodule lib/MessagePack added at 1ecb15e311

View File

@@ -102,7 +102,7 @@ namespace Bit.Droid.Autofill
if (!_usernameFields.Any())
{
_usernameFields = Fields.Where(f => FieldHasUsernameTerms(f)).ToList();
_usernameFields = Fields.Where(f => FieldIsUsername(f)).ToList();
}
}
return _usernameFields;
@@ -327,13 +327,18 @@ namespace Bit.Droid.Autofill
}
return inputTypePassword && !ValueContainsAnyTerms(f.IdEntry, _ignoreSearchTerms) &&
!ValueContainsAnyTerms(f.Hint, _ignoreSearchTerms) && !FieldHasUsernameTerms(f);
!ValueContainsAnyTerms(f.Hint, _ignoreSearchTerms) && !FieldIsUsername(f);
}
private bool FieldHasPasswordTerms(Field f)
{
return ValueContainsAnyTerms(f.IdEntry, _passwordTerms) || ValueContainsAnyTerms(f.Hint, _passwordTerms);
}
private bool FieldIsUsername(Field f)
{
return f.InputType.HasFlag(InputTypes.TextVariationWebEmailAddress) || FieldHasUsernameTerms(f);
}
private bool FieldHasUsernameTerms(Field f)
{
@@ -350,4 +355,4 @@ namespace Bit.Droid.Autofill
return terms.Any(t => lowerValue.Contains(t));
}
}
}
}

View File

@@ -2,7 +2,6 @@
using System.Threading.Tasks;
using Bit.App.Services;
using Bit.Core.Abstractions;
using Bit.Core.Models;
namespace Bit.Droid.Services
{
@@ -22,7 +21,7 @@ namespace Bit.Droid.Services
protected override bool CanSendData => false;
protected override Task SendDataToWatchAsync(WatchDTO watchDto) => throw new NotImplementedException();
protected override Task SendDataToWatchAsync(byte[] rawData) => throw new NotImplementedException();
protected override void ConnectToWatch() => throw new NotImplementedException();
}

View File

@@ -21,6 +21,7 @@
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2515" />
<PackageReference Include="ZXing.Net.Mobile" Version="2.4.1" />
<PackageReference Include="ZXing.Net.Mobile.Forms" Version="2.4.1" />
<PackageReference Include="MessagePack" Version="2.4.59" />
</ItemGroup>
<ItemGroup>
@@ -436,6 +437,8 @@
<None Remove="Utilities\AccountManagement\" />
<None Remove="Controls\DateTime\" />
<None Remove="Controls\IconLabelButton\" />
<None Remove="MessagePack" />
<None Remove="MessagePack.MSBuild.Tasks" />
<None Remove="Controls\PasswordStrengthProgressBar\" />
</ItemGroup>
</Project>

View File

@@ -217,7 +217,7 @@ namespace Bit.App
Id = loginRequestData.Id,
IpAddress = loginRequestData.RequestIpAddress,
Email = await _stateService.GetEmailAsync(),
FingerprintPhrase = loginRequestData.RequestFingerprint,
FingerprintPhrase = loginRequestData.FingerprintPhrase,
RequestDate = loginRequestData.CreationDate,
DeviceType = loginRequestData.RequestDeviceType,
Origin = loginRequestData.Origin

View File

@@ -40,6 +40,7 @@ namespace Bit.App.Pages
private string _masterPassword;
private bool _isEmailEnabled;
private bool _isKnownDevice;
private bool _isExecutingLogin;
public LoginPageViewModel()
{
@@ -149,15 +150,21 @@ namespace Bit.App.Pages
{
Email = await _stateService.GetRememberedEmailAsync();
}
var deviceIdentifier = await _appIdService.GetAppIdAsync();
IsKnownDevice = await _apiService.GetKnownDeviceAsync(Email, deviceIdentifier);
CanRemoveAccount = await _stateService.GetActiveUserEmailAsync() != Email;
await _deviceActionService.HideLoadingAsync();
IsKnownDevice = await _apiService.GetKnownDeviceAsync(Email, await _appIdService.GetAppIdAsync());
}
catch (ApiException apiEx) when (apiEx.Error.StatusCode == System.Net.HttpStatusCode.Unauthorized)
{
_logger.Exception(apiEx);
}
catch (Exception ex)
{
HandleException(ex);
}
finally
{
await _deviceActionService.HideLoadingAsync();
}
}
public async Task LogInAsync(bool showLoading = true, bool checkForExistingAccount = false)
@@ -192,6 +199,7 @@ namespace Bit.App.Pages
ShowPassword = false;
try
{
_isExecutingLogin = true;
if (checkForExistingAccount)
{
var userId = await _stateService.GetUserIdAsync(Email);
@@ -253,14 +261,21 @@ namespace Bit.App.Pages
AppResources.AnErrorHasOccurred, AppResources.Ok);
}
}
finally
{
_isExecutingLogin = false;
}
}
public void ResetPasswordField()
{
try
{
MasterPassword = string.Empty;
ShowPassword = false;
if (!_isExecutingLogin)
{
MasterPassword = string.Empty;
ShowPassword = false;
}
}
catch (Exception ex)
{

View File

@@ -171,7 +171,7 @@ namespace Bit.App.Pages
var response = await _authService.PasswordlessCreateLoginRequestAsync(_email);
if (response != null)
{
FingerprintPhrase = response.RequestFingerprint;
FingerprintPhrase = response.FingerprintPhrase;
_requestId = response.Id;
_requestAccessCode = response.RequestAccessCode;
_requestKeyPair = response.RequestKeyPair;

View File

@@ -39,7 +39,7 @@
Padding="0, 10, 0 ,0"
FontAttributes="Bold"/>
<controls:MonoLabel
FormattedText="{Binding RequestFingerprint}"
FormattedText="{Binding FingerprintPhrase}"
Grid.Row="1"
Grid.ColumnSpan="2"
FontSize="Small"

View File

@@ -99,7 +99,7 @@ namespace Bit.App.Pages
Id = loginRequestData.Id,
IpAddress = loginRequestData.RequestIpAddress,
Email = await _stateService.GetEmailAsync(),
FingerprintPhrase = loginRequestData.RequestFingerprint,
FingerprintPhrase = loginRequestData.FingerprintPhrase,
RequestDate = loginRequestData.CreationDate,
DeviceType = loginRequestData.RequestDeviceType,
Origin = loginRequestData.Origin

View File

@@ -584,7 +584,7 @@
<value>n Hoofwagwoordwenk kan u help om u wagwoord te onthou indien u dit sou vergeet.</value>
</data>
<data name="MasterPasswordLengthValMessageX" xml:space="preserve">
<value>Master password must be at least {0} characters long.</value>
<value>Die hoofwagwoord moet ten minste {0} karakters lank wees.</value>
</data>
<data name="MinNumbers" xml:space="preserve">
<value>Min. aantal syfers</value>
@@ -2541,16 +2541,16 @@ Wil u na die rekening omskakel?</value>
<value>Laat die kamera versoek toe om die skandeerder te gebruik</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>Taal</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>Die taal is na {0} verander. Asseblief herbegin die toep om die veranderinge te sien</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>Die taal verandering vereis 'n herbegin van die toep</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value>
<value>Verstek (Sisteem)</value>
</data>
<data name="Important" xml:space="preserve">
<value>Belangrik</value>
@@ -2589,6 +2589,18 @@ Wil u na die rekening omskakel?</value>
<value>Swak wagwoord geïdentifiseer en in 'n data lekkasie gevind. Gebruik 'n sterk en unieke wagwoord om jou rekening te beskerm. Is jy seker dat jy hierdie wagwoord wil gebruik?</value>
</data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
<value>Organisasie SSO identifiseerder vereis.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2590,4 +2590,16 @@ Bu hesaba keçmək istəyirsiniz?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Təşkilat SSO identifikatoru tələb olundu.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Açarı, mövcud və ya yeni bir elementə əlavə edin</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Anbarınızda {0} ilə uyğunlaşan heç bir element yoxdur</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Bir element axtarın və ya yenisini əlavə edin</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Axtarışa uyğun gələn heç bir element yoxdur</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Неабходны ідэнтыфікатар SSO арганізацыі.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Дадаць ключ да існуючага або новага элемента</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>У вашым сховішчы адсутнічаюць элементы, якія адпавядаюць "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Пошук або дабаўленне новага элемента</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Адсутнічаюць элементы, якія адпавядаюць пошуку</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ select Add TOTP to store the key safely</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Идентификаторът за еднократн идентификация на организация е задължителен.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Добавяне на ключа към съществуващ или нов елемент</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>В трезора липсват елементи, които отговарят на „{0}“</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Търсене на елемент или добавяне на нов</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Няма елементи, които отговарят на търсенето</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2590,4 +2590,16 @@ Skeniranje će biti izvršeno automatski.</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2140,7 +2140,7 @@ L'escaneig es farà automàticament.</value>
<value>Aquesta organització té una política empresarial que us inscriurà automàticament al restabliment de la contrasenya. La inscripció permetrà als administradors de lorganització canviar la vostra contrasenya mestra.</value>
</data>
<data name="VaultTimeoutPolicyInEffect" xml:space="preserve">
<value>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} minuts</value>
<value>Les polítiques de l'organització afecten el temps d'espera de la caixa forta. El temps d'espera màxim permès de la caixa forta és de {0} hores i {1} minuts</value>
</data>
<data name="VaultTimeoutToLarge" xml:space="preserve">
<value>El temps d'espera de la caixa forta supera les restriccions establertes per la vostra organització.</value>
@@ -2591,4 +2591,16 @@ Voleu canviar a aquest compte?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Lidentificador SSO de lorganització és obligatori.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Afig la clau a un element existent o nou</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>No hi ha cap element a la caixa forta que coincidisca amb "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Cerca un element o n'afig un nou</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>No hi ha elements que coincidisquen amb la cerca</value>
</data>
</root>

View File

@@ -285,7 +285,7 @@
<value>Účet byl již přidán</value>
</data>
<data name="SwitchToAlreadyAddedAccountConfirmation" xml:space="preserve">
<value>Would you like to switch to it now?</value>
<value>Chcete se na něj nyní přepnout?</value>
</data>
<data name="MasterPassword" xml:space="preserve">
<value>Hlavní heslo</value>
@@ -2591,4 +2591,16 @@ Chcete se přepnout na tento účet?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Vil du skifte til denne konto?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organisations-SSO obligatorisk.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Føj nøglen til et eksisterende eller nyt emne</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Der er ingen emner i boksen matchende "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Søg efter, eller tilføj et nyt, emne</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Ingen emner matcher søgningen</value>
</data>
</root>

View File

@@ -156,7 +156,7 @@
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
</data>
<data name="CopyUsername" xml:space="preserve">
<value>Benutzernamen kopieren</value>
<value>Benutzername kopieren</value>
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
</data>
<data name="Credits" xml:space="preserve">
@@ -232,7 +232,7 @@
<value>Ordner gespeichert</value>
</data>
<data name="GoToWebsite" xml:space="preserve">
<value>Webseite besuchen</value>
<value>Zur Website</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="HelpAndFeedback" xml:space="preserve">
@@ -379,10 +379,10 @@
<comment>Confirmation message after successfully copying a value to the clipboard.</comment>
</data>
<data name="VerifyFingerprint" xml:space="preserve">
<value>Fingerabdruck überprüfen</value>
<value>Fingerabdruck verifizieren</value>
</data>
<data name="VerifyMasterPassword" xml:space="preserve">
<value>Master-Passwort überprüfen</value>
<value>Master-Passwort verifizieren</value>
</data>
<data name="VerifyPIN" xml:space="preserve">
<value>PIN überprüfen</value>
@@ -394,7 +394,7 @@
<value>Ansicht</value>
</data>
<data name="VisitOurWebsite" xml:space="preserve">
<value>Besuche unsere Webseite</value>
<value>Besuche unsere Website</value>
</data>
<data name="VisitOurWebsiteDescription" xml:space="preserve">
<value>Besuche unsere Webseite um Hilfe zu erhalten, Neuigkeiten zu erfahren, Kontakt aufzunehmen und mehr über die Verwendung von Bitwarden zu lernen.</value>
@@ -422,7 +422,7 @@
<value>Verwende den Bitwarden Dienst in den Bedienungshilfen, um deine Zugangsdaten in Apps und im Web automatisch ausfüllen zu lassen.</value>
</data>
<data name="AutofillService" xml:space="preserve">
<value>Automatische Ausfüllfunktion</value>
<value>Auto-Ausfüllen-Dienst</value>
</data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>Mehrdeutige Zeichen vermeiden</value>
@@ -587,7 +587,7 @@
<value>Das Master-Passwort muss mindestens {0} Zeichen lang sein.</value>
</data>
<data name="MinNumbers" xml:space="preserve">
<value>Mindestanzahl Zahlen</value>
<value>Mindestanzahl Ziffern</value>
<comment>Minimum numeric characters for password generator settings</comment>
</data>
<data name="MinSpecial" xml:space="preserve">
@@ -635,10 +635,10 @@
<value>Passwort generiert</value>
</data>
<data name="PasswordGenerator" xml:space="preserve">
<value>Passwortgenerator</value>
<value>Passwort-Generator</value>
</data>
<data name="PasswordHint" xml:space="preserve">
<value>Passworthinweis</value>
<value>Passwort-Hinweis</value>
</data>
<data name="PasswordHintAlert" xml:space="preserve">
<value>Wir haben Ihnen eine E-Mail mit Ihrem Masterpassworthinweis gesendet.</value>
@@ -678,7 +678,7 @@
<value>Gebe deine 4-stellige PIN ein, um die App zu entsperren.</value>
</data>
<data name="ItemInformation" xml:space="preserve">
<value>Eintrags-Information</value>
<value>Eintragsinformationen</value>
</data>
<data name="ItemUpdated" xml:space="preserve">
<value>Eintrag gespeichert</value>
@@ -815,7 +815,7 @@
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
</data>
<data name="AuthenticatorAppTitle" xml:space="preserve">
<value>Authentifizierungs-App</value>
<value>Authenticator App</value>
<comment>For 2FA</comment>
</data>
<data name="EnterVerificationCodeApp" xml:space="preserve">
@@ -863,7 +863,7 @@
<value>Halte deinen YubiKey NEO an die Rückseite des Geräts, um fortzufahren.</value>
</data>
<data name="YubiKeyTitle" xml:space="preserve">
<value>YubiKey NEO Sicherheitsschlüssel</value>
<value>YubiKey Sicherheitsschlüssel</value>
<comment>"YubiKey" is the product name and should not be translated.</comment>
</data>
<data name="AddNewAttachment" xml:space="preserve">
@@ -978,7 +978,7 @@ Das Scannen erfolgt automatisch.</value>
<comment>"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management</comment>
</data>
<data name="SelfHostedEnvironment" xml:space="preserve">
<value>Selbstgehostete Umgebung</value>
<value>Selbst gehostete Umgebung</value>
</data>
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
<value>Bitte gebe die Basis-URL deiner selbst gehosteten Bitwarden-Installation an.</value>
@@ -1140,7 +1140,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Gültig bis</value>
</data>
<data name="ShowWebsiteIcons" xml:space="preserve">
<value>Zeige Webseiten-Icons</value>
<value>Website-Symbole anzeigen</value>
</data>
<data name="ShowWebsiteIconsDescription" xml:space="preserve">
<value>Ein wiedererkennbares Bild neben jeden Zugangsdaten anzeigen.</value>
@@ -1173,10 +1173,10 @@ Das Scannen erfolgt automatisch.</value>
<value>Auto-Fill Bedienungshilfe</value>
</data>
<data name="AutofillServiceDescription" xml:space="preserve">
<value>Die automatische Ausfüllfunktion von Bitwarden benutzt das Android Autofill Framework, um Zugangsdaten in anderen Apps auf deinem Gerät auszufüllen.</value>
<value>Der Auto-Ausfüllen-Dienst von Bitwarden benutzt das Android Autofill Framework, um Zugangsdaten in anderen Apps auf deinem Gerät auszufüllen.</value>
</data>
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
<value>Verwende die automatische Ausfüllfunktion von Bitwarden, um Anmeldedaten in anderen Apps auszufüllen.</value>
<value>Verwende den Auto-Ausfüllen-Dienst von Bitwarden, um Anmeldedaten in anderen Apps auszufüllen.</value>
</data>
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
<value>Öffne Auto-Fill Einstellungen</value>
@@ -1201,7 +1201,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Die Android Auto-Fill Einstellungen konnten nicht automatisch geöffnet werden. Über Android Einstellungen &gt; Sprachen &amp; Eingabe &gt; AutoFill-Dienst kannst du manuell zu den Auto-Fill Einstellungen navigieren.</value>
</data>
<data name="CustomFieldName" xml:space="preserve">
<value>Name des benutzerdefinierten Feld</value>
<value>Name des benutzerdefinierten Feldes</value>
</data>
<data name="FieldTypeBoolean" xml:space="preserve">
<value>Boolean</value>
@@ -1259,7 +1259,7 @@ Das Scannen erfolgt automatisch.</value>
<comment>URI match detection for auto-fill.</comment>
</data>
<data name="YesAndSave" xml:space="preserve">
<value>Ja, und speichern</value>
<value>Ja und speichern</value>
</data>
<data name="AutofillAndSave" xml:space="preserve">
<value>Automatisch ausfüllen und speichern</value>
@@ -1289,7 +1289,7 @@ Das Scannen erfolgt automatisch.</value>
<comment>ex. Date this item was updated</comment>
</data>
<data name="AutofillActivated" xml:space="preserve">
<value>Automatisch ausfüllen aktiviert!</value>
<value>Auto-Ausfüllen aktiviert!</value>
</data>
<data name="MustLogInMainAppAutofill" xml:space="preserve">
<value>Du musst dich in der Bitwarden App einloggen, bevor du AutoFill nutzen kannst.</value>
@@ -1384,13 +1384,13 @@ Das Scannen erfolgt automatisch.</value>
<value>Sammlung durchsuchen</value>
</data>
<data name="SearchFileSends" xml:space="preserve">
<value>Datei-Sends suchen</value>
<value>Datei-Sends durchsuchen</value>
</data>
<data name="SearchTextSends" xml:space="preserve">
<value>Text-Sends suchen</value>
<value>Text-Sends durchsuchen</value>
</data>
<data name="SearchGroup" xml:space="preserve">
<value>Suche {0}</value>
<value>{0} durchsuchen</value>
<comment>ex: Search Logins</comment>
</data>
<data name="Type" xml:space="preserve">
@@ -1437,7 +1437,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Keine Organisationen vorhanden.</value>
</data>
<data name="MoveToOrgDesc" xml:space="preserve">
<value>Wähle eine Organisation aus, in die du diesen Eintrag verschieben möchtest. Das Verschieben in eine Organisation überträgt das Eigentum an diese Organisation. Du bist nicht mehr der direkte Besitzer dieses Eintrags, sobald er verschoben wurde.</value>
<value>Wähle eine Organisation aus, in die du diesen Eintrag verschieben möchtest. Das Verschieben in eine Organisation überträgt das Eigentum an diese Organisation. Du bist nicht mehr der direkte Eigentümer dieses Eintrags, sobald er verschoben wurde.</value>
</data>
<data name="NumberOfWords" xml:space="preserve">
<value>Anzahl der Wörter</value>
@@ -1502,7 +1502,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Dein Tresor ist gesperrt. Gebe deinen PIN-Code ein um fortzufahren.</value>
</data>
<data name="VaultLockedIdentity" xml:space="preserve">
<value>Dein Tresor ist gesperrt. Überprüfe deine Identität, um fortzufahren.</value>
<value>Dein Tresor ist gesperrt. Verifiziere deine Identität, um fortzufahren.</value>
</data>
<data name="Dark" xml:space="preserve">
<value>Dunkel</value>
@@ -1556,7 +1556,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Dunkles Standard-Design</value>
</data>
<data name="DefaultDarkThemeDescription" xml:space="preserve">
<value>Wähle das zu verwendende dunkle Design aus, das bei der Auswahl vom Standard-(System)-Design verwendet werden soll, während der Dunkelmodus deines Geräts aktiviert ist.</value>
<value>Wähle das zu verwendende dunkle Design aus, das bei der Auswahl vom Standard-(System)-Design verwendet werden soll, während der Dark Mode deines Geräts aktiviert ist.</value>
</data>
<data name="CopyNotes" xml:space="preserve">
<value>Notiz kopieren</value>
@@ -1598,7 +1598,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Beim Neustart der App</value>
</data>
<data name="AutofillServiceNotEnabled" xml:space="preserve">
<value>Automatisches Ausfüllen vereinfacht es, sicher auf deinen Bitwarden Tresor über andere Webseiten und Apps zuzugreifen. Es sieht aus, als ob du die automatische Ausfüllfunktion für Bitwarden nicht eingerichtet hast. Richte die automatische Ausfüllfunktion in den "Einstellungen" ein.</value>
<value>Auto-Ausfüllen vereinfacht es, sicher auf deinen Bitwarden Tresor über andere Webseiten und Apps zuzugreifen. Es sieht aus, als ob du den Auto-Ausfüllen-Dienst für Bitwarden nicht eingerichtet hast. Richte Auto-Ausfüllen in den "Einstellungen" ein.</value>
</data>
<data name="ThemeAppliedOnRestart" xml:space="preserve">
<value>Deine Änderungen am Aussehen der App werden beim nächsten Neustart der App angewendet.</value>
@@ -1608,7 +1608,7 @@ Das Scannen erfolgt automatisch.</value>
<comment>ex. Uppercase the first character of a word.</comment>
</data>
<data name="IncludeNumber" xml:space="preserve">
<value>Ziffer hinzufügen</value>
<value>Ziffern einschließen</value>
</data>
<data name="Download" xml:space="preserve">
<value>Herunterladen</value>
@@ -1629,7 +1629,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Biometrie</value>
</data>
<data name="UseBiometricsToUnlock" xml:space="preserve">
<value>Benutze Biometrie zum Entsperren</value>
<value>Biometrie zum Entsperren verwenden</value>
</data>
<data name="AccessibilityOverlayPermissionAlert" xml:space="preserve">
<value>Bitwarden braucht Aufmerksamkeit - Siehe "Bedienungshilfen zum automatischen Ausfüllen" in den Bitwarden-Einstellungen</value>
@@ -1659,13 +1659,13 @@ Das Scannen erfolgt automatisch.</value>
<value>Gib das Masterpasswort ein, um deine Tresordaten zu exportieren.</value>
</data>
<data name="SendVerificationCodeToEmail" xml:space="preserve">
<value>Einen Bestätigungscode an deine E-Mail-Adresse senden</value>
<value>Einen Verifizierungscode an deine E-Mail-Adresse senden</value>
</data>
<data name="CodeSent" xml:space="preserve">
<value>Code gesendet!</value>
</data>
<data name="ConfirmYourIdentity" xml:space="preserve">
<value>Bestätige deine Identität, um fortzufahren.</value>
<value>Verifiziere deine Identität, um fortzufahren.</value>
</data>
<data name="ExportVaultWarning" xml:space="preserve">
<value>Dieser Export enthält deine Tresordaten in einem unverschlüsseltem Format. Du solltest sie nicht speichern oder über unsichere Kanäle (z. B. E-Mail) senden. Lösche sie sofort nach ihrer Verwendung.</value>
@@ -1707,7 +1707,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Anhang erfolgreich gespeichert</value>
</data>
<data name="AutofillTileAccessibilityRequired" xml:space="preserve">
<value>Bitte aktiviere "Bedienungshilfen zum automatischen Ausfüllen" in den Bitwarden-Einstellungen, um die Automatisch-Ausfüllen-Kachel zu verwenden.</value>
<value>Bitte aktiviere "Bedienungshilfen zum automatischen Ausfüllen" in den Bitwarden-Einstellungen, um die Auto-Ausfüllen-Kachel zu verwenden.</value>
</data>
<data name="AutofillTileUriNotFound" xml:space="preserve">
<value>Keine Passwortfelder erkannt</value>
@@ -1768,7 +1768,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Enterprise Single-Sign-On</value>
</data>
<data name="LogInSsoSummary" xml:space="preserve">
<value>Schnell über den Single Sign-on deiner Organisation anmelden. Bitte gib deine Organisationskennung an, um zu beginnen.</value>
<value>Melde dich schnell über das Single Sign-on-Portal deiner Organisation an. Bitte gib die Organisationskennung ein, um zu beginnen.</value>
</data>
<data name="OrgIdentifier" xml:space="preserve">
<value>Organisationskennung</value>
@@ -1825,10 +1825,10 @@ Das Scannen erfolgt automatisch.</value>
<value>Datenschutzbestimmungen</value>
</data>
<data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve">
<value>Bitwarden braucht Aufmerksamkeit - Aktiviere "Überschreiben" in den "Funktionen zum automatischen Ausfüllen" in den Bitwarden-Einstellungen</value>
<value>Bitwarden braucht Aufmerksamkeit - Aktiviere "Überschreiben" im "Auto-Ausfüllen-Dienst" in den Bitwarden-Einstellungen</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>Funktionen zum automatischen Ausfüllen</value>
<value>Auto-Ausfüllen-Dienst</value>
</data>
<data name="InlineAutofill" xml:space="preserve">
<value>Inline Auto-Ausfüllen verwenden</value>
@@ -1933,7 +1933,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Ablaufdatum</value>
</data>
<data name="ExpirationTime" xml:space="preserve">
<value>Ablaufzeit</value>
<value>Ablaufzeitpunkt</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>Falls aktiviert, verfällt der Zugriff auf diesen Send zur angegebenen Datum und Uhrzeit.</value>
@@ -2080,7 +2080,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Master-Passwort bestätigen</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>Diese Aktion ist geschützt. Um fortzufahren, gib bitte dein Master-Passwort erneut ein, um deine Identität zu bestätigen.</value>
<value>Diese Aktion ist geschützt. Um fortzufahren, gib bitte dein Master-Passwort erneut ein, um deine Identität zu verifizieren.</value>
</data>
<data name="CaptchaRequired" xml:space="preserve">
<value>Captcha erforderlich</value>
@@ -2095,7 +2095,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Master-Passwort aktualisieren</value>
</data>
<data name="UpdateMasterPasswordWarning" xml:space="preserve">
<value>Dein Master-Passwort wurde kürzlich von einem Administrator Deiner Organisation geändert. Um auf den Tresor zuzugreifen, musst Du Dein Master-Passwort jetzt aktualisieren. Wenn Du fortfährst, wirst Du aus der aktuellen Sitzung abgemeldet und wirst Dich erneut anmelden müssen. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin aktiv bleiben.</value>
<value>Dein Master-Passwort wurde kürzlich von einem Administrator deiner Organisation geändert. Um auf den Tresor zuzugreifen, musst du dein Master-Passwort jetzt aktualisieren. Wenn Du fortfährst, wirst du aus der aktuellen Sitzung abgemeldet und eine erneute Anmeldung ist erforderlich. Aktive Sitzungen auf anderen Geräten können bis zu einer Stunde weiterhin aktiv bleiben.</value>
</data>
<data name="UpdatingPassword" xml:space="preserve">
<value>Passwort wird aktualisiert</value>
@@ -2122,13 +2122,13 @@ Das Scannen erfolgt automatisch.</value>
<value>FIDO2 WebAuthn</value>
</data>
<data name="Fido2Instruction" xml:space="preserve">
<value>Um fortzufahren, halte deinen FIDO2 WebAuthn kompatiblen Sicherheitsschlüssel bereit und folge dann den Anweisungen, nachdem du auf der nächsten Seite auf 'Authentifiziere WebAuthn' geklickt hast.</value>
<value>Um fortzufahren, halte deinen FIDO2 WebAuthn-kompatiblen Sicherheitsschlüssel bereit und folge dann den Anweisungen, nachdem du auf der nächsten Seite auf 'WebAuthn authentifizieren' geklickt hast.</value>
</data>
<data name="Fido2Desc" xml:space="preserve">
<value>Authentifizierung mit FIDO2 WebAuthn. Du kannst dich mit einem externen Sicherheitsschlüssel authentifizieren.</value>
</data>
<data name="Fido2AuthenticateWebAuthn" xml:space="preserve">
<value>Authentifiziere WebAuthn</value>
<value>WebAuthn authentifizieren</value>
</data>
<data name="Fido2ReturnToApp" xml:space="preserve">
<value>Zurück zur App</value>
@@ -2137,7 +2137,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Bitte stelle sicher, dass dein Standardbrowser WebAuthn unterstützt und versuche es erneut.</value>
</data>
<data name="ResetPasswordAutoEnrollInviteWarning" xml:space="preserve">
<value>Diese Organisation hat eine Unternehmensrichtlinie, die dich automatisch für die Passwort Zurücksetzung registriert. Die Registrierung wird es Administratoren der Organisation erlauben, dein Master-Passwort zu ändern.</value>
<value>Diese Organisation hat eine Unternehmensrichtlinie, die dich automatisch für die Passwortzurücksetzung registriert. Die Registrierung wird es Administratoren der Organisation erlauben, dein Master-Passwort zu ändern.</value>
</data>
<data name="VaultTimeoutPolicyInEffect" xml:space="preserve">
<value>Deine Organisationsrichtlinien haben Auswirkungen auf dein Tresor-Timeout. Das maximal zulässige Tresor-Timeout beträgt {0} Stunde(n) und {1} Minute(n)</value>
@@ -2182,7 +2182,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Dein Konto und alle damit verbundenen Daten werden gelöscht und sind nicht wiederherstellbar. Bist du sicher, dass du fortfahren möchtest?</value>
</data>
<data name="DeletingYourAccount" xml:space="preserve">
<value>Löschung deines Kontos</value>
<value>Dein Konto wird gelöscht</value>
</data>
<data name="YourAccountHasBeenPermanentlyDeleted" xml:space="preserve">
<value>Dein Konto wurde unwiderruflich gelöscht</value>
@@ -2197,16 +2197,16 @@ Das Scannen erfolgt automatisch.</value>
<value>Code senden</value>
</data>
<data name="Sending" xml:space="preserve">
<value>Sende</value>
<value>Wird gesendet</value>
</data>
<data name="CopySendLinkOnSave" xml:space="preserve">
<value>Send-Link beim Speichern kopieren</value>
</data>
<data name="SendingCode" xml:space="preserve">
<value>Sende Code</value>
<value>Code wird gesendet</value>
</data>
<data name="Verifying" xml:space="preserve">
<value>Überprüfen</value>
<value>Wird verifiziert</value>
</data>
<data name="ResendCode" xml:space="preserve">
<value>Code erneut senden</value>
@@ -2218,7 +2218,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Beim Senden des Bestätigungscodes an deine E-Mail-Adresse ist ein Fehler aufgetreten. Bitte versuche es erneut</value>
</data>
<data name="EnterTheVerificationCodeThatWasSentToYourEmail" xml:space="preserve">
<value>Gib den Bestätigungscode ein, der an deine E-Mail-Adresse gesendet wurde</value>
<value>Gib den Verifizierungscode ein, der an deine E-Mail-Adresse gesendet wurde</value>
</data>
<data name="SubmitCrashLogs" xml:space="preserve">
<value>Absturzprotokolle senden</value>
@@ -2227,10 +2227,10 @@ Das Scannen erfolgt automatisch.</value>
<value>Hilf Bitwarden die Stabilität der App zu verbessern, indem du Absturzberichte sendest.</value>
</data>
<data name="OptionsExpanded" xml:space="preserve">
<value>Optionen sind ausgeklappt, tippen zum einklappen.</value>
<value>Optionen sind ausgeklappt, tippen zum Einklappen.</value>
</data>
<data name="OptionsCollapsed" xml:space="preserve">
<value>Optionen sind eingeklappt, tippe zum ausklappen.</value>
<value>Optionen sind eingeklappt, tippe zum Ausklappen.</value>
</data>
<data name="UppercaseAtoZ" xml:space="preserve">
<value>Großbuchstaben (A bis Z)</value>
@@ -2284,7 +2284,7 @@ Das Scannen erfolgt automatisch.</value>
<value>QR Code scannen</value>
</data>
<data name="CannotScanQRCode" xml:space="preserve">
<value>QR Code kann nicht gescannt werden? </value>
<value>QR-Code kann nicht gescannt werden? </value>
</data>
<data name="AuthenticatorKeyScanner" xml:space="preserve">
<value>Authentifizierungsschlüssel</value>
@@ -2323,7 +2323,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Versuchst du dich anzumelden?</value>
</data>
<data name="LogInAttemptByXOnY" xml:space="preserve">
<value>Anmeldeversuch von {0} am {1}</value>
<value>Anmeldeversuch von {0} auf {1}</value>
</data>
<data name="DeviceType" xml:space="preserve">
<value>Gerätetyp</value>
@@ -2338,10 +2338,10 @@ Das Scannen erfolgt automatisch.</value>
<value>Nahe</value>
</data>
<data name="ConfirmLogIn" xml:space="preserve">
<value>Anmeldung bestätigen</value>
<value>Anmeldung genehmigen</value>
</data>
<data name="DenyLogIn" xml:space="preserve">
<value>Anmeldung verweigern</value>
<value>Anmeldung ablehnen</value>
</data>
<data name="JustNow" xml:space="preserve">
<value>Gerade eben</value>
@@ -2350,10 +2350,10 @@ Das Scannen erfolgt automatisch.</value>
<value>vor {0} Minuten</value>
</data>
<data name="LogInAccepted" xml:space="preserve">
<value>Anmeldung bestätigt</value>
<value>Anmeldung genehmigt</value>
</data>
<data name="LogInDenied" xml:space="preserve">
<value>Anmeldung verweigert</value>
<value>Anmeldung abgelehnt</value>
</data>
<data name="ApproveLoginRequests" xml:space="preserve">
<value>Anmeldeanfragen genehmigen</value>
@@ -2368,7 +2368,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Push-Benachrichtigungen für neue Anmeldeanfragen erhalten</value>
</data>
<data name="NoThanks" xml:space="preserve">
<value>Nein, danke</value>
<value>Nein danke</value>
</data>
<data name="ConfimLogInAttempForX" xml:space="preserve">
<value>Anmeldeversuch für {0} bestätigen</value>
@@ -2386,7 +2386,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Benutzernamenstyp</value>
</data>
<data name="PlusAddressedEmail" xml:space="preserve">
<value>Mit Plus adressierte E-Mail-Adresse</value>
<value>Plus-adressierte E-Mail-Adresse</value>
</data>
<data name="CatchAllEmail" xml:space="preserve">
<value>Catch-All E-Mail-Adresse</value>
@@ -2401,7 +2401,7 @@ Das Scannen erfolgt automatisch.</value>
<value>E-Mail (erforderlich)</value>
</data>
<data name="DomainNameRequiredParenthesis" xml:space="preserve">
<value>Domain-Name (erforderlich)</value>
<value>Domainname (erforderlich)</value>
</data>
<data name="APIKeyRequiredParenthesis" xml:space="preserve">
<value>API-Schlüssel (erforderlich)</value>
@@ -2430,13 +2430,13 @@ Das Scannen erfolgt automatisch.</value>
<comment>"Fastmail" is the product name and should not be translated.</comment>
</data>
<data name="APIAccessToken" xml:space="preserve">
<value>API-Zugangs-Token</value>
<value>API-Zugriffstoken</value>
</data>
<data name="AreYouSureYouWantToOverwriteTheCurrentUsername" xml:space="preserve">
<value>Bist Du sicher, dass Du den aktuellen Benutzernamen überschreiben möchtest?</value>
</data>
<data name="GenerateUsername" xml:space="preserve">
<value>Benutzernamen generieren</value>
<value>Benutzername generieren</value>
</data>
<data name="EmailType" xml:space="preserve">
<value>E-Mail-Typ</value>
@@ -2516,7 +2516,7 @@ Möchtest du zu diesem Konto wechseln?</value>
<value>Brauchst du eine andere Option?</value>
</data>
<data name="ViewAllLoginOptions" xml:space="preserve">
<value>Alle Anmelde-Optionen anzeigen</value>
<value>Alle Anmeldeoptionen anzeigen</value>
</data>
<data name="ThisRequestIsNoLongerValid" xml:space="preserve">
<value>Diese Anfrage ist nicht mehr gültig</value>
@@ -2590,4 +2590,16 @@ Möchtest du zu diesem Konto wechseln?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>SSO-Kennung der Organisation erforderlich.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Den Schlüssel zu einem bestehenden oder neuen Eintrag hinzufügen</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Es gibt keine Einträge in deinem Tresor, die mit "{0}" übereinstimmen</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Nach einem Eintrag suchen oder einen neuen Eintrag hinzufügen</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Es gibt keine Einträge, die mit der Suche übereinstimmen</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Απαιτείται αναγνωριστικό οργανισμού SSO.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2605,4 +2605,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Se requiere un inicio de sesión único de la organización.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -584,7 +584,7 @@
<value>Vihje võib abiks olla olukorras, kui oled ülemparooli unustanud.</value>
</data>
<data name="MasterPasswordLengthValMessageX" xml:space="preserve">
<value>Master password must be at least {0} characters long.</value>
<value>Ülemparool peab olema vähemalt {0} tähemärgi pikkune.</value>
</data>
<data name="MinNumbers" xml:space="preserve">
<value>Vähim arv numbreid</value>
@@ -2591,4 +2591,16 @@ Soovid selle konto peale lülituda?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Nõutud on organisatsiooni SSO identifikaator.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Lisa võti olemasolevale või uuele kirjele</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Hoidlas puuduvad kirjed, mis sobituksid sõnaga "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Otsi kirjet või lisa uus kirje</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Otsingusõnale ei vasta kirjeid</value>
</data>
</root>

View File

@@ -2590,4 +2590,16 @@ Kontu honetara aldatu nahi duzu?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2542,16 +2542,16 @@
<value>اجازه دوربین را برای استفاده از اسکنر فعال کنید</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>زبان</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>زبان به {0} تغییر کرده است. لطفاً برنامه را مجدداً راه اندازی کنید تا تغییرات را مشاهده کنید</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>تغییر زبان نیاز به راه اندازی مجدد برنامه دارد</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value>
<value>پیش‌فرض (سیستم)</value>
</data>
<data name="Important" xml:space="preserve">
<value>مهم</value>
@@ -2592,4 +2592,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>شناسه سازمان SSO مورد نیاز است.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>کلید را به یک مورد موجود یا جدید اضافه کنید</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>هیچ موردی در گاوصندوق شما وجود ندارد که با "{0}" مطابقت داشته باشد</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>یک مورد را جستجو کنید یا یک مورد جدید اضافه کنید</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>هیچ موردی وجود ندارد که با جستجو مطابقت داشته باشد</value>
</data>
</root>

View File

@@ -2141,7 +2141,7 @@ Koodi luetaan automaattisesti.</value>
<value>Organisaatiolla on käytäntö, joka liittää tilisi automaattisesti salasanan palautusapuun. Liitos sallii organisaation ylläpitäjien vaihtaa pääsalasanasi.</value>
</data>
<data name="VaultTimeoutPolicyInEffect" xml:space="preserve">
<value>Organisaatiokäytännöt vaikuttavat holvin aikakatkaisuun. Suurin sallittu aika on {0} tunti(a) ja {1} minuutti(a)</value>
<value>Organisaatiokäytännöt vaikuttavat holvisi aikakatkaisuun. Suurin sallittu aika on {0} tunti(a) ja {1} minuutti(a).</value>
</data>
<data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Holvisi aikakatkaisu ylittää organisaatiosi asettamat rajoitukset.</value>
@@ -2592,4 +2592,16 @@ Haluatko vaihtaa tähän tiliin?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organisaation SSO-tunniste tarvitaan.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Lisää avain olemassa olevaan tai uuteen kohteeseen</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Holvissasi ei ole kohteita osoitteelle "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Etsi kohdetta tai lisää uusi kohde</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Hakua vastaavia kohteita ei ole</value>
</data>
</root>

View File

@@ -1668,7 +1668,7 @@ Awtomatikong itong magsa-scan.</value>
<value>Kumpirmahin ang pagkakakilanlan mo para tumuloy.</value>
</data>
<data name="ExportVaultWarning" xml:space="preserve">
<value>Naglalaman ng unencrypted vault data mo ang export na ito. Hindi mo dapat ilagay o ipadala ang file gamit ang hindi ligtas na mga paraan (tulad ng email). I-delete ito kaagad pagkagamit.</value>
<value>Naglalaman ng unencrypted vault data mo ang export na ito. Hindi mo dapat ilagay o ipadala ang file gamit ang hindi ligtas na mga paraan (tulad ng email). Burahin ito kaagad pagkagamit.</value>
</data>
<data name="EncExportKeyWarning" xml:space="preserve">
<value>Ine-encrypt ng export na ito ang data mo gamit ang encryption key ng iyong account. Kung iro-rotate mo man ang encryption key ng iyong account, kailangan mong mag-export ulit dahil hindi mo na made-decrypt ang file na ito.</value>
@@ -2592,4 +2592,16 @@ Gusto mo bang pumunta sa account na ito?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Kinakailangan ang Organization SSO identifier.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Idagdag ang key sa kasalukuyan o bagong item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Walang mga item sa vault mo na tumutugma sa "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Hanapin ang isang item o gumawa ng bagong item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Walang mga item na tumutugma sa paghahanap</value>
</data>
</root>

View File

@@ -1694,7 +1694,7 @@ La numérisation se fera automatiquement.</value>
<comment>Clone an entity (verb).</comment>
</data>
<data name="PasswordGeneratorPolicyInEffect" xml:space="preserve">
<value>Une ou plusieurs politiques d'organisation affectent les paramètres de votre générateur</value>
<value>Une ou plusieurs politiques de sécurité de l'organisation affectent les paramètres de votre générateur</value>
</data>
<data name="Open" xml:space="preserve">
<value>Ouvrir</value>
@@ -1783,7 +1783,7 @@ La numérisation se fera automatiquement.</value>
<value>Afin de finaliser la connexion avec SSO, veuillez définir un mot de passe principal pour accéder et protéger votre coffre.</value>
</data>
<data name="MasterPasswordPolicyInEffect" xml:space="preserve">
<value>Une ou plusieurs politiques de l'organisation exigent que votre mot de passe principal réponde aux exigences suivantes :</value>
<value>Une ou plusieurs politiques de sécurité de l'organisation exigent que votre mot de passe principal réponde aux exigences suivantes :</value>
</data>
<data name="PolicyInEffectMinComplexity" xml:space="preserve">
<value>Score de complexité minimum de {0}</value>
@@ -1813,7 +1813,8 @@ La numérisation se fera automatiquement.</value>
<value>Chargement</value>
</data>
<data name="AcceptPolicies" xml:space="preserve">
<value>En cochant cette case, vous acceptez les éléments suivants :</value>
<value>En cochant cette case vous acceptez ce qui suit :
</value>
</data>
<data name="AcceptPoliciesError" xml:space="preserve">
<value>Les conditions d'utilisation et la politique de confidentialité n'ont pas été acceptées.</value>
@@ -2062,7 +2063,7 @@ La numérisation se fera automatiquement.</value>
<value>Masquer mon adresse électronique aux destinataires</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>Une ou plusieurs politiques d'organisation affectent vos options Send.</value>
<value>Une ou plusieurs politiques de sécurité de l'organisation affectent vos options Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
@@ -2140,13 +2141,13 @@ La numérisation se fera automatiquement.</value>
<value>Cette organisation dispose d'une politique d'entreprise qui vous inscrira automatiquement à la réinitialisation du mot de passe. L'inscription permettra aux administrateurs de l'organisation de changer votre mot de passe principal.</value>
</data>
<data name="VaultTimeoutPolicyInEffect" xml:space="preserve">
<value>Les politiques de votre organisation affectent le délai d'expiration de votre coffre-fort. Le délai d'expiration maximal autorisé est de {0} heure(s) et {1} minute(s)</value>
<value>Les politiques de sécurité de votre organisation affectent le délai d'expiration de votre coffre. Le délai d'expiration autorisé du coffre est de {0} heure(s) et {1} minute(s) maximum</value>
</data>
<data name="VaultTimeoutToLarge" xml:space="preserve">
<value>Le délai d'expiration de votre coffre dépasse les restrictions définies par votre organisation.</value>
</data>
<data name="DisablePersonalVaultExportPolicyInEffect" xml:space="preserve">
<value>Une ou plusieurs politiques d'organisation vous empêchent d'exporter votre coffre personnel.</value>
<value>Une ou plusieurs politiques de sécurité de l'organisation vous empêchent d'exporter votre coffre individuel.</value>
</data>
<data name="AddAccount" xml:space="preserve">
<value>Ajouter un compte</value>
@@ -2591,4 +2592,16 @@ Voulez-vous basculer vers ce compte ?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Identifiant SSO de l'organisation requis.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Ajouter la clé à un élément existant ou nouveau</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Il n'y a pas d'éléments dans votre coffre qui correspondent à "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Rechercher un élément ou ajouter un nouvel élément</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Il n'y a pas d'éléments qui correspondent à la recherche</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2594,4 +2594,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2593,4 +2593,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2589,4 +2589,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -186,7 +186,7 @@
<comment>Short label for an email address.</comment>
</data>
<data name="EmailAddress" xml:space="preserve">
<value>E-mail-cím</value>
<value>Email cím</value>
<comment>Full label for a email address.</comment>
</data>
<data name="EmailUs" xml:space="preserve">
@@ -232,7 +232,7 @@
<value>A mappa mentésre került.</value>
</data>
<data name="GoToWebsite" xml:space="preserve">
<value>Weboldal megnyitása</value>
<value>Ugrás a webhelyre</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="HelpAndFeedback" xml:space="preserve">
@@ -251,7 +251,7 @@
<comment>Title for the alert when internet connection is required to continue.</comment>
</data>
<data name="InvalidMasterPassword" xml:space="preserve">
<value>A mesterjelszó érvénytelen. Próbálkozz újra.</value>
<value>A mesterjelszó érvénytelen. Próbáljuk újra.</value>
</data>
<data name="InvalidPIN" xml:space="preserve">
<value>A pinkód érvénytelen. Próbáljuk újra.</value>
@@ -553,10 +553,10 @@
<value>Azonnal</value>
</data>
<data name="VaultTimeout" xml:space="preserve">
<value>Széf időkorlátja</value>
<value>Széf időkifutás</value>
</data>
<data name="VaultTimeoutAction" xml:space="preserve">
<value>Művelet a széf időkorlátjának túllépésekor</value>
<value>Széf időkifutás művelet</value>
</data>
<data name="VaultTimeoutLogOutConfirmation" xml:space="preserve">
<value>Kijelentkezve az összes széf elérés eltávolításra kerül és webes hitelesítésre van szükség az időkifutás után. Biztosan szeretnénk használni ezt a beállítást?</value>
@@ -578,7 +578,7 @@
<value>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.</value>
</data>
<data name="MasterPasswordHint" xml:space="preserve">
<value>Mesterjelszó-emlékeztető (nem kötelező)</value>
<value>Mesterjelszó emlékeztető (nem kötelező)</value>
</data>
<data name="MasterPasswordHintDescription" xml:space="preserve">
<value>A mesterjelszó emlékeztető segíthet emlékezni a jelszavadra ha elfejetetted volna.</value>
@@ -632,13 +632,13 @@
<value>Egyéb</value>
</data>
<data name="PasswordGenerated" xml:space="preserve">
<value>Jelszó generálva.</value>
<value>A jelszó generálásra került.</value>
</data>
<data name="PasswordGenerator" xml:space="preserve">
<value>Jelszógenerátor</value>
</data>
<data name="PasswordHint" xml:space="preserve">
<value>Jelszó-emlékeztető</value>
<value>Jelszó emlékeztető</value>
</data>
<data name="PasswordHintAlert" xml:space="preserve">
<value>Elküldtünk neked egy E-mailt mely tartalmazza a mesterjelszó emlékeztetődet.</value>
@@ -647,7 +647,7 @@
<value>Biztosan felül akarod írni a jelenlegi jelszót?</value>
</data>
<data name="PushNotificationAlert" xml:space="preserve">
<value>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.</value>
<value>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.</value>
<comment>Push notifications for apple products</comment>
</data>
<data name="RateTheApp" xml:space="preserve">
@@ -660,7 +660,7 @@
<value>Jelszó újragenerálása</value>
</data>
<data name="RetypeMasterPassword" xml:space="preserve">
<value>Írd be újra a mesterjelszavad</value>
<value>Mesterjelszó ismételt beírása</value>
</data>
<data name="SearchVault" xml:space="preserve">
<value>Keresés a széfben</value>
@@ -678,7 +678,7 @@
<value>Egy 4 számjegyű PIN-kód beállítása az alkalmazás kinyitásához.</value>
</data>
<data name="ItemInformation" xml:space="preserve">
<value>Elem adatai</value>
<value>Elem információ</value>
</data>
<data name="ItemUpdated" xml:space="preserve">
<value>Az elem frissítésre került.</value>
@@ -708,7 +708,7 @@
<value>Kétlépcsős bejelentkezés</value>
</data>
<data name="TwoStepLoginConfirmation" xml:space="preserve">
<value>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?</value>
<value>A kétlépcsős bejelentkezés biztonságosabbá teszi a fiókot, mert egy másik eszközzel, például biztonsági kulccsal, hitelesítőalkalmazással, sms- segítségével, telefonhívással vagy emaillel is jóvá kell hagyni a bejelentkezést. A kétlépcsős bejelentkezés a bitwarden.com webes széfjében kapcsolható be. Megnyitásra kerüljön a webhely most?</value>
</data>
<data name="UnlockWith" xml:space="preserve">
<value>Kinyitás ezzel: {0}</value>
@@ -737,7 +737,7 @@
<comment>Screen title</comment>
</data>
<data name="ExtensionActivated" xml:space="preserve">
<value>A kiegészítő aktiválva.</value>
<value>A kiegészítő bekapcsolásra került.</value>
</data>
<data name="Icons" xml:space="preserve">
<value>Ikonok</value>
@@ -796,10 +796,10 @@
<value>Biztos, hogy automatikusan kitöltésre kerüljön ez az elem? Nem teljesen egyezik: {0}.</value>
</data>
<data name="MatchingItems" xml:space="preserve">
<value>Talált elemek</value>
<value>Megegyező elemek</value>
</data>
<data name="PossibleMatchingItems" xml:space="preserve">
<value>Lehetséges találatok</value>
<value>Lehetséges megfelelő elemek</value>
</data>
<data name="Search" xml:space="preserve">
<value>Keresés</value>
@@ -815,7 +815,7 @@
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
</data>
<data name="AuthenticatorAppTitle" xml:space="preserve">
<value>Hitelesítőalkalmazás</value>
<value>Hitelesítő alkalmazás</value>
<comment>For 2FA</comment>
</data>
<data name="EnterVerificationCodeApp" xml:space="preserve">
@@ -827,11 +827,11 @@
<comment>For 2FA</comment>
</data>
<data name="LoginUnavailable" xml:space="preserve">
<value>Nem érhető el bejelentkezés</value>
<value>A bejelentkezés nem érhető el.</value>
<comment>For 2FA whenever there are no available providers on this device.</comment>
</data>
<data name="NoTwoStepAvailable" xml:space="preserve">
<value>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).</value>
<value>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áljunk 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).</value>
</data>
<data name="RecoveryCodeTitle" xml:space="preserve">
<value>Helyreállító kód</value>
@@ -856,7 +856,7 @@
<comment>For 2FA</comment>
</data>
<data name="VerificationEmailSent" xml:space="preserve">
<value>Az ellenőrzőkódot tartalmazó e-mail elküldve.</value>
<value>Az ellenőrző kódot tartalmazó email elküldésre került.</value>
<comment>For 2FA</comment>
</data>
<data name="YubiKeyInstruction" xml:space="preserve">
@@ -900,7 +900,7 @@
<value>Nem lehet olvasni a hitelesítő kulcsot.</value>
</data>
<data name="PointYourCameraAtTheQRCode" xml:space="preserve">
<value>Irányítsa a kamerát a QR-kódra.</value>
<value>Irányítsuk a kamerát a QR-kódra.</value>
</data>
<data name="ScanQrTitle" xml:space="preserve">
<value>QR kód beolvasása</value>
@@ -945,7 +945,7 @@
<value>Fájl forrás</value>
</data>
<data name="FeatureUnavailable" xml:space="preserve">
<value>Ez a funkció nem érhető el</value>
<value>Ez a funkció nem érhető el.</value>
</data>
<data name="MaxFileSize" xml:space="preserve">
<value>Maximális fájl méret 100 MB.</value>
@@ -957,10 +957,10 @@
<value>További információ</value>
</data>
<data name="ApiUrl" xml:space="preserve">
<value>API-szerver URL-címe</value>
<value>API szerver webcím</value>
</data>
<data name="CustomEnvironment" xml:space="preserve">
<value>Egyéni környezet</value>
<value>Egyedi környezet</value>
</data>
<data name="CustomEnvironmentFooter" xml:space="preserve">
<value>Haladó felhasználóknak. Minden egyes szolgáltatásnak külön megadhatod az alap URL-t.</value>
@@ -973,7 +973,7 @@
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
</data>
<data name="IdentityUrl" xml:space="preserve">
<value>Identitásszerver URL-címe</value>
<value>Azonosító szerver webcím</value>
<comment>"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management</comment>
</data>
<data name="SelfHostedEnvironment" xml:space="preserve">
@@ -986,13 +986,13 @@
<value>Szerver URL</value>
</data>
<data name="WebVaultUrl" xml:space="preserve">
<value>Webes széf szerverének URL-címe</value>
<value>Webes széf szerver webcím</value>
</data>
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
<value>Koppintunk erre az értesítésre a széfben tárolt elemek megtekintéséhez.</value>
</data>
<data name="CustomFields" xml:space="preserve">
<value>Egyéni mezők</value>
<value>Egyedi mezők</value>
</data>
<data name="CopyNumber" xml:space="preserve">
<value>Szám másolása</value>
@@ -1004,7 +1004,7 @@
<value>Szám</value>
</data>
<data name="SecurityCode" xml:space="preserve">
<value>Biztonsági kód</value>
<value>Biztonsági Kód</value>
</data>
<data name="TypeCard" xml:space="preserve">
<value>Kártya</value>
@@ -1064,7 +1064,7 @@
<value>február</value>
</data>
<data name="FirstName" xml:space="preserve">
<value>Utónév</value>
<value>Személynév</value>
</data>
<data name="January" xml:space="preserve">
<value>január</value>
@@ -1200,7 +1200,7 @@
<value>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 &gt; Rendszer &gt; Nyelv és bevitel &gt; Speciális &gt; Automatikus kitöltés menüpontot.</value>
</data>
<data name="CustomFieldName" xml:space="preserve">
<value>Egyéni mezőnév</value>
<value>Egyedi mezőnév</value>
</data>
<data name="FieldTypeBoolean" xml:space="preserve">
<value>Logikai</value>
@@ -1215,7 +1215,7 @@
<value>Szöveg</value>
</data>
<data name="NewCustomField" xml:space="preserve">
<value>Új egyéni mező</value>
<value>Új egyedi mező</value>
</data>
<data name="SelectTypeField" xml:space="preserve">
<value>Milyen típusú egyéni mező legyen hozzáadva?</value>
@@ -1280,7 +1280,7 @@
<value>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.</value>
</data>
<data name="DatePasswordUpdated" xml:space="preserve">
<value>A jelszó frissítve</value>
<value>A jelszó frissítésre került.</value>
<comment>ex. Date this password was updated</comment>
</data>
<data name="DateUpdated" xml:space="preserve">
@@ -1288,7 +1288,7 @@
<comment>ex. Date this item was updated</comment>
</data>
<data name="AutofillActivated" xml:space="preserve">
<value>Az automatikus kitöltés aktiválva.</value>
<value>Az automatikus kitöltés bekapcsolásra került.</value>
</data>
<data name="MustLogInMainAppAutofill" xml:space="preserve">
<value>Az automatikus kitöltő szolgáltatás használata előtt be kell jelentkezni a fő Bitwarden alkalmazásba.</value>
@@ -1303,13 +1303,13 @@
<value>A széf közvetlenül a billentyűzetről érhető el a jelszavak gyors kitöltéséhez.</value>
</data>
<data name="AutofillTurnOn" xml:space="preserve">
<value>A következő lépésekkel engedélyezheted a jelszó automatikus kitöltését:</value>
<value>A jelszó automatikus kitöltés szolgáltatás engedélyezéséhez kövessük az alábbi utasításokat:</value>
</data>
<data name="AutofillTurnOn1" xml:space="preserve">
<value>1. Lépjünk be az iOS "Beállítások" alkalmazásba</value>
</data>
<data name="AutofillTurnOn2" xml:space="preserve">
<value>2. Válasszuk a "Jelszavak és Fiókok" lehetőséget</value>
<value>2. Válasszuk a "Jelszavak" lehetőséget</value>
</data>
<data name="AutofillTurnOn3" xml:space="preserve">
<value>3. Válasszuk ki az "Jelszavak automatikus kitöltése" lehetőséget</value>
@@ -1342,7 +1342,7 @@
<value>Védett jegyzetek</value>
</data>
<data name="AllItems" xml:space="preserve">
<value>Minden elem</value>
<value>Összes elem</value>
</data>
<data name="URIs" xml:space="preserve">
<value>URI elemek</value>
@@ -1362,13 +1362,13 @@
<value>Ez a jelszó nem érintett egyetlen ismert adatszivárgásban sem. Biztonságos a használata.</value>
</data>
<data name="IdentityName" xml:space="preserve">
<value>Identitásnév</value>
<value>Azonosság név</value>
</data>
<data name="Value" xml:space="preserve">
<value>Érték</value>
</data>
<data name="PasswordHistory" xml:space="preserve">
<value>Korábbi jelszavak</value>
<value>Jelszó előzmények</value>
</data>
<data name="Types" xml:space="preserve">
<value>Típusok</value>
@@ -1383,7 +1383,7 @@
<value>Gyűjtemény keresése</value>
</data>
<data name="SearchFileSends" xml:space="preserve">
<value>Fájl Sends elemek keresése</value>
<value>Sends fájl elemek keresése</value>
</data>
<data name="SearchTextSends" xml:space="preserve">
<value>Szöveges Sends elemek keresése</value>
@@ -1396,7 +1396,7 @@
<value>Típus</value>
</data>
<data name="MoveDown" xml:space="preserve">
<value>Lejjebb</value>
<value>Lefelé mozgatás</value>
</data>
<data name="MoveUp" xml:space="preserve">
<value>Felfelé mozgatás</value>
@@ -1459,7 +1459,7 @@
<value>Nincsenek megjeleníthető mappák.</value>
</data>
<data name="FingerprintPhrase" xml:space="preserve">
<value>Ujjlenyomat-kifejezés</value>
<value>Ujjlenyomat mondat</value>
<comment>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.</comment>
</data>
<data name="YourAccountsFingerprint" xml:space="preserve">
@@ -1558,7 +1558,7 @@
<value>A sötét téma választása használatra, ha az Alapértelmezett (Rendszer) témát használjuk az eszköz bekapcsolt sötét módja mellett.</value>
</data>
<data name="CopyNotes" xml:space="preserve">
<value>Jegyzetek másolása</value>
<value>Jegyzet másolása</value>
</data>
<data name="Exit" xml:space="preserve">
<value>Kilépés</value>
@@ -1597,7 +1597,7 @@
<value>Újraindításkor</value>
</data>
<data name="AutofillServiceNotEnabled" xml:space="preserve">
<value>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 Bitwardenl. Az automatikus kitöltést a Beállítások képernyőn engedélyezheted.</value>
<value>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 Bitwardenl. Az automatikus kitöltés a Bitwardennél a "Beállítások" képernyőn engedélyezhető.</value>
</data>
<data name="ThemeAppliedOnRestart" xml:space="preserve">
<value>A témaváltás az alkalmazás újraindítása után lép életbe.</value>
@@ -1616,7 +1616,7 @@
<value>Megosztott</value>
</data>
<data name="ToggleVisibility" xml:space="preserve">
<value>Láthatóság váltása</value>
<value>Láthatóság váltás</value>
</data>
<data name="LoginExpired" xml:space="preserve">
<value>A bejelentkezési munkamenet lejárt.</value>
@@ -1631,10 +1631,10 @@
<value>Biometria használata a feloldáshoz</value>
</data>
<data name="AccessibilityOverlayPermissionAlert" xml:space="preserve">
<value>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</value>
<value>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</value>
</data>
<data name="BitwardenAutofillServiceOverlayPermission" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="OverlayPermission" xml:space="preserve">
<value>Jogosultság</value>
@@ -1676,7 +1676,7 @@
<value>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.</value>
</data>
<data name="ExportVaultConfirmationTitle" xml:space="preserve">
<value>Széfexportálás megerősítése</value>
<value>Széf export megerősítése</value>
<comment>Title for the alert to confirm vault exports.</comment>
</data>
<data name="Warning" xml:space="preserve">
@@ -1706,7 +1706,7 @@
<value>A melléklet sikeresen mentésre került.</value>
</data>
<data name="AutofillTileAccessibilityRequired" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="AutofillTileUriNotFound" xml:space="preserve">
<value>Nincs érzékelt jelszó mező.</value>
@@ -1728,7 +1728,7 @@
<comment>Message shown when interacting with the server</comment>
</data>
<data name="ItemRestored" xml:space="preserve">
<value>Az elem visszaállítva.</value>
<value>Az elem visszaállításra került.</value>
<comment>Confirmation message after successfully restoring a soft-deleted item</comment>
</data>
<data name="Trash" xml:space="preserve">
@@ -1803,7 +1803,7 @@
<value>{0} speciális karakterekből egyet vagy többet tartalmaz</value>
</data>
<data name="MasterPasswordPolicyValidationTitle" xml:space="preserve">
<value>Érvénytelen jelszó</value>
<value>Érvénytelen jelszó.</value>
</data>
<data name="MasterPasswordPolicyValidationMessage" xml:space="preserve">
<value>A jelszó nem egyezik a szervezeti követelményekhez. Ellenőrizzük a szabály információt és próbáljuk újra.</value>
@@ -1824,46 +1824,46 @@
<value>Adatvédelmi Irányelvek</value>
</data>
<data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>Automatikus kitöltési szolgáltatások</value>
<value>Automatikus kitöltés</value>
</data>
<data name="InlineAutofill" xml:space="preserve">
<value>Szövegközi automatikus kitöltés használata</value>
</data>
<data name="InlineAutofillDescription" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="Accessibility" xml:space="preserve">
<value>Akadálymentes használat</value>
</data>
<data name="AccessibilityDescription" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="AccessibilityDescription2" xml:space="preserve">
<value>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.)</value>
<value>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)</value>
</data>
<data name="AccessibilityDescription3" xml:space="preserve">
<value>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).</value>
<value>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).</value>
</data>
<data name="AccessibilityDescription4" xml:space="preserve">
<value>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).</value>
<value>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).</value>
</data>
<data name="DrawOver" xml:space="preserve">
<value>Átfedő megjelenítés használata</value>
<value>Felülrajzolás használata</value>
</data>
<data name="DrawOverDescription" xml:space="preserve">
<value>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.</value>
<value>Engedélyezve a Bitwarden Akadálymentes Szolgáltatás egy felbukkanó ablakot jelenít meg, amikor a bejelentkezési mezők kiválasztottak.</value>
</data>
<data name="DrawOverDescription2" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="DrawOverDescription3" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="PersonalOwnershipSubmitError" xml:space="preserve">
<value>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.</value>
<value>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.</value>
</data>
<data name="PersonalOwnershipPolicyInEffect" xml:space="preserve">
<value>Egy szervezeti házirend befolyásolja a tulajdonjog beállításait.</value>
@@ -1919,7 +1919,7 @@
<value>Törlési dátum</value>
</data>
<data name="DeletionTime" xml:space="preserve">
<value>Törlési dátum</value>
<value>Törlési időpont</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>A Send véglegesen törlésre kerül a meghatározott időpontban.</value>
@@ -1932,7 +1932,7 @@
<value>Lejárati dátum</value>
</data>
<data name="ExpirationTime" xml:space="preserve">
<value>Lejárati idő</value>
<value>Lejárati időpont</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>Beállítva a hozzáférés ehhez a Send elemhez lejár a meghatározott időpontban.</value>
@@ -2106,10 +2106,10 @@
<value>Mesterjelszó eltávolítása</value>
</data>
<data name="RemoveMasterPasswordWarning" xml:space="preserve">
<value>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.</value>
<value>{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.</value>
</data>
<data name="RemoveMasterPasswordWarning2" xml:space="preserve">
<value>Ha nem szeretnéd eltávolítani a mesterjelszót, kiléphetsz ebből a szervezetből.</value>
<value>Ha nem szeretnénk eltávolítani a mesterjelszót, kiléphetünk ebből a szervezetből.</value>
</data>
<data name="LeaveOrganization" xml:space="preserve">
<value>Kilépés a szervezetből</value>
@@ -2187,7 +2187,7 @@
<value>A fiók véglegesen törlésre került.</value>
</data>
<data name="InvalidVerificationCode" xml:space="preserve">
<value>Az ellenőrzőkód érvénytelen.</value>
<value>A hitelesítő kód érvénytelen.</value>
</data>
<data name="RequestOTP" xml:space="preserve">
<value>Egyszeri jelszó kérése</value>
@@ -2268,7 +2268,7 @@
<value>Összes</value>
</data>
<data name="Totp" xml:space="preserve">
<value>Idő alapú egyszer használatos jelszó (TOTP)</value>
<value>TOTP</value>
</data>
<data name="VerificationCodes" xml:space="preserve">
<value>Hitelesítő kód</value>
@@ -2590,4 +2590,16 @@ Szeretnénk átváltani erre a fiókra?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>A szervezeti SSO azonosító megadása szükséges.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Adjuk hozzá a kulcsot egy meglévő vagy új elemhez.</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Nincs elem a széfben {0} egyezéssel.</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Keressünk egy elemet vagy adjunk hozzá új elemet.</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Nincsenek a keresésnek megfelelő elemek.</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -422,7 +422,7 @@
<value>Usa il servizio di accessibilità di Bitwarden per l'auto-completamento dei tuoi login su app e web.</value>
</data>
<data name="AutofillService" xml:space="preserve">
<value>Servizio di auto-completamento</value>
<value>Servizio di riempimento automatico</value>
</data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>Evita caratteri ambigui</value>
@@ -784,7 +784,7 @@
<value>Stato</value>
</data>
<data name="BitwardenAutofillServiceAlert2" xml:space="preserve">
<value>Il modo più semplice per aggiungere nuovi login alla tua cassaforte è dal servizio di completamento automatico Bitwarden. Scopri di più sull'utilizzo del servizio di completamento automatico di Bitwarden navigando nella schermata "Impostazioni".</value>
<value>Il modo più semplice per aggiungere nuovi login alla tua cassaforte è dal servizio di riempimento automatico di Bitwarden. Scopri di più sull'utilizzo del servizio di riempimento automatico di Bitwarden navigando nella schermata "Impostazioni".</value>
</data>
<data name="Autofill" xml:space="preserve">
<value>Auto-completamento</value>
@@ -915,7 +915,7 @@
<value>Copia TOTP</value>
</data>
<data name="CopyTotpAutomaticallyDescription" xml:space="preserve">
<value>Se un login è dotato di una chiave di autenticazione, copia il codice di verifica TOTP negli appunti all'autocompletamento del login.</value>
<value>Se un login è dotato di una chiave di autenticazione, copia il codice di verifica TOTP negli appunti al riempimento automatico del login.</value>
</data>
<data name="CopyTotpAutomatically" xml:space="preserve">
<value>Copia TOTP automaticamente</value>
@@ -1172,10 +1172,10 @@
<value>Servizio di accessibilità dell'auto-completamento</value>
</data>
<data name="AutofillServiceDescription" xml:space="preserve">
<value>Il servizio di auto-completamento Bitwarden usa l'Android Autofill Framework per assistenza nel completare informazioni su login, carte di credito e identità su altre applicazioni nel tuo dispositivo.</value>
<value>Il servizio di riempimento automatico Bitwarden usa l'Android Autofill Framework per assistenza nel completare informazioni su login, carte di credito e identità su altre applicazioni nel tuo dispositivo.</value>
</data>
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
<value>Usa il servizio di auto-completamento di Bitwarden per riempire le informazioni su login, carte di credito e identità su altre app.</value>
<value>Usa il servizio di riempimento automatico di Bitwarden per riempire le informazioni su login, carte di credito e identità su altre app.</value>
</data>
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
<value>Apri impostazioni di auto-completamento</value>
@@ -1321,7 +1321,7 @@
<value>5. Seleziona "Bitwarden"</value>
</data>
<data name="PasswordAutofill" xml:space="preserve">
<value>Completamento automatico password</value>
<value>Riempimento automatico password</value>
</data>
<data name="BitwardenAutofillAlert2" xml:space="preserve">
<value>Il modo più semplice per aggiungere nuovi login alla tua cassaforte è l'estensione Bitwarden Password AutoFill. Scopri di più sull'utilizzo dell'estensione Bitwarden Password AutoFill navigando nella schermata "Impostazioni".</value>
@@ -1535,11 +1535,11 @@
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>Rilevamento corrispondenza URI predefinito</value>
<value>Rilevamento di corrispondenza URI predefinito</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
<value>Scegli il modo predefinito in cui il rilevamento della corrispondenza dell'URI viene gestito per gli accessi quando si eseguono azioni come il completamento automatico.</value>
<value>Scegli il modo predefinito in cui il rilevamento della corrispondenza dell'URI viene gestito per gli accessi quando si eseguono azioni come il riempimento automatico.</value>
</data>
<data name="Theme" xml:space="preserve">
<value>Tema</value>
@@ -1582,10 +1582,10 @@
<comment>'Solarized Dark' is the name of a specific color scheme. It should not be translated.</comment>
</data>
<data name="AutofillBlockedUris" xml:space="preserve">
<value>URI per cui l'autocompletamento non è permesso</value>
<value>URI per cui il riempimento automatico non è permesso</value>
</data>
<data name="AutofillBlockedUrisDescription" xml:space="preserve">
<value>L'autocompletamento non sarà proposto per gli URI bloccati. Separa più URI con una virgola. Ad esempio: "https://twitter.com, androidapp://com.twitter.android".</value>
<value>Il riempimento automatico non sarà proposto per gli URI bloccati. Separa più URI con una virgola. Per esempio: "https://twitter.com, androidapp://com.twitter.android".</value>
</data>
<data name="AskToAddLogin" xml:space="preserve">
<value>Chiedi di aggiungere il login</value>
@@ -1597,7 +1597,7 @@
<value>Al riavvio dell'applicazione</value>
</data>
<data name="AutofillServiceNotEnabled" xml:space="preserve">
<value>L'auto-completamento rende facile accedere in modo sicuro alla tua cassaforte Bitwarden da altri siti web e applicazioni. Sembra che tu non abbia abilitato un servizio di completamento automatico per Bitwarden. Abilita l'auto-completamento per Bitwarden dalla schermata "Impostazioni".</value>
<value>Il riempimento automatico rende facile accedere in modo sicuro alla tua cassaforte Bitwarden da altri siti web e applicazioni. Sembra che tu non abbia abilitato un servizio di riempimento automatico per Bitwarden. Abilita il riempimento automatico per Bitwarden dalla schermata "Impostazioni".</value>
</data>
<data name="ThemeAppliedOnRestart" xml:space="preserve">
<value>Le modifiche del tema verranno applicate al riavvio dell'applicazione.</value>
@@ -1631,7 +1631,7 @@
<value>Sblocca con dati biometrici</value>
</data>
<data name="AccessibilityOverlayPermissionAlert" xml:space="preserve">
<value>Bitwarden richiede la tua attenzione - Vedi "Servizio di accessibilità per l'auto-completamento" dalle Impostazioni di Bitwarden</value>
<value>Bitwarden richiede la tua attenzione - Vedi "Servizio di accessibilità per il riempimento automatico" dalle impostazioni di Bitwarden</value>
</data>
<data name="BitwardenAutofillServiceOverlayPermission" xml:space="preserve">
<value>3. Sulla schermata di Impostazioni dell'App Android per Bitwarden, vai alle opzioni "Mostra sulle altre app" (sotto Avanzate) e tocca l'interruttore per abilitare il supporto overlay.</value>
@@ -1706,7 +1706,7 @@
<value>Allegato salvato con successo</value>
</data>
<data name="AutofillTileAccessibilityRequired" xml:space="preserve">
<value>Abilita il "Servizio di accessibilità per il completamento automatico" dalle impostazioni di Bitwarden per utilizzare la funzione di completamento automatico.</value>
<value>Abilita il "Servizio di accessibilità per il riempimento automatico" dalle impostazioni di Bitwarden per utilizzare la funzione di riempimento automatico.</value>
</data>
<data name="AutofillTileUriNotFound" xml:space="preserve">
<value>Nessun campo password rilevato</value>
@@ -1828,7 +1828,7 @@
<value>Bitwarden richiede la tua attenzione - Abilita "Mostra sopra altre app" nelle opzioni di Bitwarden</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>Servizi di auto-completamento</value>
<value>Servizi di riempimento automatico</value>
</data>
<data name="InlineAutofill" xml:space="preserve">
<value>Usa il completamento automatico</value>
@@ -1840,10 +1840,10 @@
<value>Usa accessibilità</value>
</data>
<data name="AccessibilityDescription" xml:space="preserve">
<value>Utilizza il servizio di accessibilità di Bitwarden per l'auto-completamento. Se abilitato, verrà mostrato una finestra a comparsa quando i campi relativi al login sono selezionati.</value>
<value>Utilizza il servizio di accessibilità di Bitwarden per il riempimento automatico. Se abilitato, verrà mostrato una finestra a comparsa quando i campi relativi al login sono selezionati.</value>
</data>
<data name="AccessibilityDescription2" xml:space="preserve">
<value>Utilizza il servizio di accessibilità di Bitwarden per accedere automaticamente sul web e sulle applicazioni tramite autocompletamento (È necessario abilitare "Mostra sopra altre app")</value>
<value>Utilizza il servizio di accessibilità di Bitwarden per riempire automaticamente i tuoi accessi attraverso siti e applicazioni. (è necessario che anche "Mostra sopra altre app" sia abilitato)</value>
</data>
<data name="AccessibilityDescription3" xml:space="preserve">
<value>Abilita il servizio di accessibilità di Bitwarden per usare il riquadro di auto-completamento rapido, e/o mostra una finestra a comparsa quando "Mostra sopra altre app" viene utilizzato (se abilitato).</value>
@@ -1858,7 +1858,7 @@
<value>Se abilitato, permette al servizio di accessibilità di Bitwarden di mostrare un popup quando i campi relativi al login vengono selezionati.</value>
</data>
<data name="DrawOverDescription2" xml:space="preserve">
<value>Se abilitato, il servizio di accessibilità di Bitwarden mostrerà una finestra a comparsa quando i campi login vengono selezionati per aiutarti con l'auto-completamento.</value>
<value>Se abilitato, il servizio di accessibilità di Bitwarden mostrerà una finestra a comparsa quando i campi di accesso vengono selezionati per aiutarti con il riempimento automatico.</value>
</data>
<data name="DrawOverDescription3" xml:space="preserve">
<value>Se abilitato, l'accessibilità mostrerà una finestra a comparsa per aumentare il servizio di auto-completamento per le vecchie applicazioni che non supportano il framework di auto-completamento di Android.</value>
@@ -2541,16 +2541,16 @@ Vuoi passare a questo account?</value>
<value>Abilita i permessi della fotocamera per usare lo scanner</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>Lingua</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>La lingua è stata cambiata a {0}. Riavviare l'app per applicare la modifica</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>La modifica della lingua richiede il riavvio dell'app</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value>
<value>Predefinito (Sistema)</value>
</data>
<data name="Important" xml:space="preserve">
<value>Importante</value>
@@ -2591,4 +2591,16 @@ Vuoi passare a questo account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>L'identificatore SSO dell'organizzazione è necessario.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Aggiungi la chiave a un elemento esistente o nuovo</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Nessun elemento nella tua cassaforte corrisponde a "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Cerca un elemento o aggiungi un nuovo elemento</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Nessun elemento corrisponde alla ricerca</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>組織の SSO IDが必要です。</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>既存または新規アイテムにキーを追加</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>"{0}" に一致するアイテムは保管庫にありません</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>アイテムを検索するか、新しいアイテムを追加</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>検索に一致するアイテムはありません</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2542,16 +2542,16 @@ Ar norite pereiti prie šios paskyros?</value>
<value>Įgalinkite fotoaparato leidimą naudoti skaitytuvą</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>Kalba</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>Kalba pakeista į {0}. Iš naujo paleiskite programą, kad pamatytumėte pakeitimą</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>Keičiant kalbą reikia iš naujo paleisti programą</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value>
<value>Numatyta (System)</value>
</data>
<data name="Important" xml:space="preserve">
<value>Svarbu</value>
@@ -2592,4 +2592,16 @@ Ar norite pereiti prie šios paskyros?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Būtinas organizacijos SSO identifikatorius.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Pridėkite raktą prie esamo ar naujo elemento</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Ieškokite elemento arba pridėkite naują elementą</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Elementų, atitinkančių paiešką, nėra</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Vai pārslēgties uz šo kontu?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Ir nepieciešams apvienības SSO identifikators.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Pievienot atslēgu esošam vai jaunam vienumam</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Glabātavā nav vienumu, kas atbilstu "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Meklēt vienumu vai pievienot jaunu</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Nav vienumu, kas atbilstu meklējumam</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -584,7 +584,7 @@
<value>Et hint om hovedpassordet kan hjelpe deg å huske passordet om du skulle glemme det.</value>
</data>
<data name="MasterPasswordLengthValMessageX" xml:space="preserve">
<value>Master password must be at least {0} characters long.</value>
<value>Hovedpassordet må være minst {0} tegn.</value>
</data>
<data name="MinNumbers" xml:space="preserve">
<value>Minst antall siffer</value>
@@ -604,7 +604,7 @@
<value>Aldri</value>
</data>
<data name="NewItemCreated" xml:space="preserve">
<value>Nytt element opprettet.</value>
<value>Nytt element opprettet</value>
</data>
<data name="NoFavorites" xml:space="preserve">
<value>Det er ingen favoritter i hvelvet ditt.</value>
@@ -2542,16 +2542,16 @@ Vil du bytte til denne kontoen?</value>
<value>Aktiver kameratillatelse for å bruke skanner</value>
</data>
<data name="Language" xml:space="preserve">
<value>Language</value>
<value>Språk</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>Språket er endret til {0}. Start appen på nytt for å se endringen</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>Språkendring krever omstart av appen</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value>
<value>Standard (System)</value>
</data>
<data name="Important" xml:space="preserve">
<value>Viktig</value>
@@ -2590,6 +2590,18 @@ Vil du bytte til denne kontoen?</value>
<value>Svakt passord identifisert og funnet i et databrudd. Bruk et sterkt og unikt passord for å beskytte kontoen din. Er du sikker på at du vil bruke dette passordet?</value>
</data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
<value>Organisasjon SSO identifikator kreves.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Legg nøkkelen til et eksisterende eller nytt element</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Det er ingen elementer i hvelvet ditt som samsvarer med "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Søk etter et element eller legg til et nytt element</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Det er ingen elementer som samsvarer med søket</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Wilt u naar dit account wisselen?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organisatie-identificatie vereist.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>De sleutel aan een bestaand of nieuw item toevoegen</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Er zijn geen items in je kluis die overeenkomen met "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Naar een item zoeken of een nieuw item toevoegen</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Er zijn geen items die overeenkomen met de zoekopdracht</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Czy chcesz przełączyć się na to konto?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Identyfikator organizacji jest wymagany.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Dodaj klucz do istniejącego lub nowego elementu</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>W Twoim sejfie nie ma żadnych elementów, które pasują do "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Wyszukaj element lub dodaj nowy</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Brak elementów, które pasują do wyszukiwania</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Você deseja mudar para esta conta?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Identificador SSO da organização necessário.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Adicionar a chave a um item existente ou novo</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Não existem itens no seu cofre que correspondam a "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Procure por um item ou adicione um novo item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Não há itens que correspondam à pesquisa</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Deseja mudar para esta conta?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Doriți să comutați la acest cont?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Требуется идентификатор SSO организации.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Добавить ключ к существующему или новому элементу</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>В вашем хранилище нет элементов, соответствующих "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Поиск или добавление нового элемента</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Нет элементов, соответствующих запросу</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Chcete prepnúť na toto konto?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Pole identifikátora SSO je povinné.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Pridať kľúč k existujúcej alebo novej položke</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Vo vašom trezore nie sú žiadne položky, ktoré zodpovedajú "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Vyhľadať položku alebo pridať novú položku</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Vyhľadávaniu nezodpovedajú žiadne položky</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2593,4 +2593,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Потребан је SSO идентификатор организације.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Додајте кључ постојећој или новој ставци</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>У вашем сефу нема ставке за "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Потражите ставку или додајте нову</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Нема ставки које одговарају претрази</value>
</data>
</root>

View File

@@ -2546,10 +2546,10 @@ Vill du byta till detta konto?</value>
<value>Språk</value>
</data>
<data name="LanguageChangeXDescription" xml:space="preserve">
<value>The language has been changed to {0}. Please restart the app to see the change</value>
<value>Språket har ändrats till {0}. Starta om appen för att se ändringen</value>
</data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value>
<value>Ändring av språk kräver att appen startas om</value>
</data>
<data name="DefaultSystem" xml:space="preserve">
<value>Standard (System)</value>
@@ -2591,6 +2591,18 @@ Vill du byta till detta konto?</value>
<value>Lösenordet är svagt och avslöjades vid ett dataintrång. Använd ett starkt och unikt lösenord för att skydda ditt konto. Är det säkert att du vill använda detta lösenord?</value>
</data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
<value>Organisationens SSO-identifierare krävs.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Lägg till nyckeln till ett befintligt eller nytt objekt</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Det finns inga objekt i ditt valv som matchar "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Sök efter ett objekt eller lägg till ett nytt objekt</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Det finns inga objekt som matchar sökningen</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2592,4 +2592,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2599,4 +2599,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2498,7 +2498,7 @@ Bu hesaba geçmek ister misiniz?</value>
<value>Ana parola ile giriş yap</value>
</data>
<data name="LogInWithAnotherDevice" xml:space="preserve">
<value>Başka bir cihazla giriş yap</value>
<value>Cihazla giriş yap</value>
</data>
<data name="LogInInitiated" xml:space="preserve">
<value>Giriş başlatıldı</value>
@@ -2522,13 +2522,13 @@ Bu hesaba geçmek ister misiniz?</value>
<value>Bu istek artık geçerli değil</value>
</data>
<data name="PendingLogInRequests" xml:space="preserve">
<value>Bekleyen oturum açma istekleri</value>
<value>Bekleyen giriş istekleri</value>
</data>
<data name="DeclineAllRequests" xml:space="preserve">
<value>Tüm istekleri reddet</value>
</data>
<data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve">
<value>Bekleyen tüm oturum açma isteklerini reddetmek istediğinizden emin misiniz?</value>
<value>Bekleyen tüm giriş isteklerini reddetmek istediğinizden emin misiniz?</value>
</data>
<data name="RequestsDeclined" xml:space="preserve">
<value>İstekler reddedildi</value>
@@ -2590,4 +2590,16 @@ Bu hesaba geçmek ister misiniz?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Kuruluş SSO tanımlayıcısı gereklidir.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Anahtarı mevcut veya yeni bir kayda ekle</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>Kasanızda "{0}" ile eşleşen kayıt yok</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Kayıtlarda ara veya yeni kayıt ekle</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Aramayla eşleşen kayıt yok</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Потрібен SSO-ідентифікатор організації.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Додати ключ до наявного чи нового запису</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>У вашому сховищі немає записів, які відповідають "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Шукати запис або додати новий запис</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Немає записів, що відповідають пошуку</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@ Do you want to switch to this account?</value>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>Organization SSO identifier required.</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -2523,19 +2523,19 @@
<value>请求已失效</value>
</data>
<data name="PendingLogInRequests" xml:space="preserve">
<value>Pending login requests</value>
<value>待定登录请求</value>
</data>
<data name="DeclineAllRequests" xml:space="preserve">
<value>拒绝所有请求</value>
</data>
<data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve">
<value>Are you sure you want to decline all pending login requests?</value>
<value>您确定要拒绝所有待处理的登录请求吗?</value>
</data>
<data name="RequestsDeclined" xml:space="preserve">
<value>请求被拒绝</value>
</data>
<data name="NoPendingRequests" xml:space="preserve">
<value>No pending requests</value>
<value>无待处理请求</value>
</data>
<data name="EnableCamerPermissionToUseTheScanner" xml:space="preserve">
<value>启用相机权限以使用扫描器</value>
@@ -2556,39 +2556,51 @@
<value>重要事项:</value>
</data>
<data name="YourMasterPasswordCannotBeRecoveredIfYouForgetItXCharactersMinimum" xml:space="preserve">
<value>Your master password cannot be recovered if you forget it! {0} characters minimum.</value>
<value>主密码忘记后,将无法恢复!密码不能少于{0}个字符</value>
</data>
<data name="WeakMasterPassword" xml:space="preserve">
<value>Weak Master Password</value>
<value>脆弱的主密码</value>
</data>
<data name="WeakPasswordIdentifiedUseAStrongPasswordToProtectYourAccount" xml:space="preserve">
<value>Weak password identified. Use a strong password to protect your account. Are you sure you want to use a weak password?</value>
<value>发现弱密码。使用一个强密码来保护你的账户。你确定你要使用弱密码吗?</value>
</data>
<data name="Weak" xml:space="preserve">
<value>Weak</value>
<value></value>
</data>
<data name="Good" xml:space="preserve">
<value>Good</value>
<value>良好</value>
</data>
<data name="Strong" xml:space="preserve">
<value>Strong</value>
<value></value>
</data>
<data name="CheckKnownDataBreachesForThisPassword" xml:space="preserve">
<value>Check known data breaches for this password</value>
<value>检查已知的数据泄露是否包含此密码</value>
</data>
<data name="ExposedMasterPassword" xml:space="preserve">
<value>Exposed Master Password</value>
<value>已暴露的主密码</value>
</data>
<data name="PasswordFoundInADataBreachAlertDescription" xml:space="preserve">
<value>Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?</value>
<value>一起数据泄露中存在该密码。使用独特的密码有助保护您的账户。确定要使用曾经暴露的密码吗?</value>
</data>
<data name="WeakAndExposedMasterPassword" xml:space="preserve">
<value>Weak and Exposed Master Password</value>
<value>主密码弱且曾经暴露</value>
</data>
<data name="WeakPasswordIdentifiedAndFoundInADataBreachAlertDescription" xml:space="preserve">
<value>Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?</value>
<value>密码太弱并出现在数据泄露。使用强悍且独特的密码有助保护您的账户。确定继续使用当前密码吗?</value>
</data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>必须填写组织 SSO 标识符。</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>将密钥添加到现有或新项目</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>您的密码库中没有匹配 "{0}" 的项目</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>搜索一个项目或添加一个新项目</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>没有匹配搜索的项目</value>
</data>
</root>

View File

@@ -2591,4 +2591,16 @@
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>需要單一登入 (SSO) 組織識別碼。</value>
</data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value>
</data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value>
</data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value>
</data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value>
</data>
</root>

View File

@@ -1,11 +1,11 @@
using System;
using System.Linq;
using System.Linq;
using System.Threading.Tasks;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models;
using Bit.Core.Models.View;
using Xamarin.Forms;
using MessagePack;
using MessagePack.Resolvers;
namespace Bit.App.Services
{
@@ -124,7 +124,18 @@ namespace Bit.App.Services
await SyncDataToWatchAsync();
}
protected abstract Task SendDataToWatchAsync(WatchDTO watchDto);
protected async Task SendDataToWatchAsync(WatchDTO watchDto)
{
var options = MessagePackSerializerOptions.Standard
.WithResolver(CompositeResolver.Create(
GeneratedResolver.Instance,
StandardResolver.Instance
));
await SendDataToWatchAsync(MessagePackSerializer.Serialize(watchDto, options));
}
protected abstract Task SendDataToWatchAsync(byte[] rawData);
protected abstract void ConnectToWatch();
}

View File

@@ -18,6 +18,8 @@
<None Remove="Microsoft.AppCenter.Crashes" />
<None Remove="Services\Logging\" />
<None Remove="Attributes\" />
<None Remove="MessagePack" />
<None Remove="MessagePack.MSBuild.Tasks" />
</ItemGroup>
<ItemGroup>
@@ -32,6 +34,11 @@
<PackageReference Include="PCLCrypto" Version="2.0.147" />
<PackageReference Include="zxcvbn-core" Version="7.0.92" />
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
<PackageReference Include="MessagePack" Version="2.4.59" />
<PackageReference Include="MessagePack.MSBuild.Tasks" Version="2.4.59">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>

View File

@@ -11,7 +11,7 @@ namespace Bit.Core.Models.Response
public string PublicKey { get; set; }
public string RequestDeviceType { get; set; }
public string RequestIpAddress { get; set; }
public string RequestFingerprint { get; set; }
public string FingerprintPhrase { get; set; }
public string Key { get; set; }
public string MasterPasswordHash { get; set; }
public DateTime CreationDate { get; set; }

View File

@@ -1,11 +1,17 @@
using System.Collections.Generic;
using System.Linq;
using Bit.Core.Enums;
using MessagePack;
namespace Bit.Core.Models.View
{
[MessagePackObject]
public class SimpleCipherView
{
public SimpleCipherView()
{
}
public SimpleCipherView(CipherView c)
{
Id = c.Id;
@@ -22,26 +28,40 @@ namespace Bit.Core.Models.View
}
}
[Key(0)]
public string Id { get; set; }
[Key(1)]
public string Name { get; set; }
public CipherType Type { get; set; }
[IgnoreMember]
public CipherType Type { get; set; } // ignoring on serialization for now, given that all are going to be of type Login
[Key(2)]
public SimpleLoginView Login { get; set; }
}
[MessagePackObject]
public class SimpleLoginView
{
[Key(0)]
public string Username { get; set; }
[Key(1)]
public string Totp { get; set; }
[Key(2)]
public List<SimpleLoginUriView> Uris { get; set; }
}
[MessagePackObject]
public class SimpleLoginUriView
{
public SimpleLoginUriView()
{
}
public SimpleLoginUriView(string uri)
{
Uri = uri;
}
[Key(0)]
public string Uri { get; set; }
}
}

View File

@@ -1,36 +1,56 @@
using System.Collections.Generic;
using Bit.Core.Enums;
using Bit.Core.Models.View;
using MessagePack;
namespace Bit.Core.Models
{
[MessagePackObject]
public class WatchDTO
{
public WatchDTO()
{
}
public WatchDTO(WatchState state)
{
State = state;
}
[Key(0)]
public WatchState State { get; private set; }
[Key(1)]
public List<SimpleCipherView> Ciphers { get; set; }
[Key(2)]
public UserDataDto UserData { get; set; }
[Key(3)]
public EnvironmentUrlDataDto EnvironmentData { get; set; }
//public SettingsDataDto SettingsData { get; set; }
[MessagePackObject]
public class UserDataDto
{
[Key(0)]
public string Id { get; set; }
[Key(1)]
public string Email { get; set; }
[Key(2)]
public string Name { get; set; }
}
[MessagePackObject]
public class EnvironmentUrlDataDto
{
[Key(0)]
public string Base { get; set; }
[Key(1)]
public string Icons { get; set; }
}

View File

@@ -494,18 +494,21 @@ namespace Bit.Core.Services
public async Task<List<PasswordlessLoginResponse>> GetPasswordlessLoginRequestsAsync()
{
return await _apiService.GetAuthRequestAsync();
var response = await _apiService.GetAuthRequestAsync();
return await PopulateFingerprintPhrasesAsync(response);
}
public async Task<List<PasswordlessLoginResponse>> GetActivePasswordlessLoginRequestsAsync()
{
var requests = await GetPasswordlessLoginRequestsAsync();
return requests.Where(r => !r.IsAnswered && !r.IsExpired).OrderByDescending(r => r.CreationDate).ToList();
var activeRequests = requests.Where(r => !r.IsAnswered && !r.IsExpired).OrderByDescending(r => r.CreationDate).ToList();
return await PopulateFingerprintPhrasesAsync(activeRequests);
}
public async Task<PasswordlessLoginResponse> GetPasswordlessLoginRequestByIdAsync(string id)
{
return await _apiService.GetAuthRequestAsync(id);
var response = await _apiService.GetAuthRequestAsync(id);
return await PopulateFingerprintPhraseAsync(response, await _stateService.GetEmailAsync());
}
public async Task<PasswordlessLoginResponse> GetPasswordlessLoginResponseAsync(string id, string accessCode)
@@ -520,7 +523,8 @@ namespace Bit.Core.Services
var encryptedKey = await _cryptoService.RsaEncryptAsync(masterKey.EncKey, publicKey);
var encryptedMasterPassword = await _cryptoService.RsaEncryptAsync(Encoding.UTF8.GetBytes(await _stateService.GetKeyHashAsync()), publicKey);
var deviceId = await _appIdService.GetAppIdAsync();
return await _apiService.PutAuthRequestAsync(id, encryptedKey.EncryptedString, encryptedMasterPassword.EncryptedString, deviceId, requestApproved);
var response = await _apiService.PutAuthRequestAsync(id, encryptedKey.EncryptedString, encryptedMasterPassword.EncryptedString, deviceId, requestApproved);
return await PopulateFingerprintPhraseAsync(response, await _stateService.GetEmailAsync());
}
public async Task<PasswordlessLoginResponse> PasswordlessCreateLoginRequestAsync(string email)
@@ -538,9 +542,30 @@ namespace Bit.Core.Services
{
response.RequestKeyPair = keyPair;
response.RequestAccessCode = accessCode;
response.FingerprintPhrase = fingerprintPhrase;
}
return response;
}
private async Task<List<PasswordlessLoginResponse>> PopulateFingerprintPhrasesAsync(List<PasswordlessLoginResponse> passwordlessLoginList)
{
if (passwordlessLoginList == null)
{
return null;
}
var userEmail = await _stateService.GetEmailAsync();
foreach (var passwordlessLogin in passwordlessLoginList)
{
await PopulateFingerprintPhraseAsync(passwordlessLogin, userEmail);
}
return passwordlessLoginList;
}
private async Task<PasswordlessLoginResponse> PopulateFingerprintPhraseAsync(PasswordlessLoginResponse passwordlessLogin, string userEmail)
{
passwordlessLogin.FingerprintPhrase = string.Join("-", await _cryptoService.GetFingerprintAsync(userEmail, CoreHelpers.Base64UrlDecode(passwordlessLogin.PublicKey)));
return passwordlessLogin;
}
}
}

View File

@@ -32,8 +32,8 @@ namespace Bit.Core.Utilities
if (label.Contains(LABEL_SEPARATOR))
{
var parts = label.Split(LABEL_SEPARATOR);
AccountName = parts[0].Trim();
Issuer = parts[1].Trim();
Issuer = parts[0].Trim();
AccountName = parts[1].Trim();
}
else
{

View File

@@ -3,9 +3,8 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using Bit.App.Services;
using Bit.Core.Abstractions;
using Bit.Core.Models;
using Bit.Core.Utilities;
using Newtonsoft.Json;
using Foundation;
using WatchConnectivity;
namespace Bit.iOS.Core.Services
@@ -15,12 +14,17 @@ namespace Bit.iOS.Core.Services
const string ACTION_MESSAGE_KEY = "actionMessage";
const string TRIGGER_SYNC_ACTION_KEY = "triggerSync";
private readonly ILogger _logger;
public WatchDeviceService(ICipherService cipherService,
IEnvironmentService environmentService,
IStateService stateService,
IVaultTimeoutService vaultTimeoutService)
IVaultTimeoutService vaultTimeoutService,
ILogger logger)
: base(cipherService, environmentService, stateService, vaultTimeoutService)
{
_logger = logger;
WCSessionManager.SharedManager.OnMessagedReceived += OnMessagedReceived;
}
@@ -30,17 +34,24 @@ namespace Bit.iOS.Core.Services
protected override bool IsSupported => WCSession.IsSupported;
protected override Task SendDataToWatchAsync(WatchDTO watchDto)
protected override Task SendDataToWatchAsync(byte[] rawData)
{
var serializedData = JsonConvert.SerializeObject(watchDto);
NSError error = null;
// Lzfse is available on iOS 13+ but we're already constraining that by the constraint of watchOS version
// so there's no way this will be executed on lower than iOS 13. So no condition is needed here.
var data = NSData.FromArray(rawData).Compress(NSDataCompressionAlgorithm.Lzfse, out error);
if (error != null)
{
_logger.Error("Can't compress Lzfse. Error: " + error.LocalizedDescription);
return Task.CompletedTask;
}
// Add time to the key to make it change on every message sent so it's delivered faster.
// If we use the same key then the OS may defer the delivery of the message because of
// resources, reachability and other stuff
WCSessionManager.SharedManager.SendBackgroundHighPriorityMessage(new Dictionary<string, object>
{
[$"watchDto-{DateTime.UtcNow.ToLongTimeString()}"] = serializedData
});
var dict = new NSDictionary<NSString, NSObject>(new NSString($"watchDto-{DateTime.UtcNow.ToLongTimeString()}"), data);
WCSessionManager.SharedManager.SendBackgroundHighPriorityMessage(dict);
return Task.CompletedTask;
}

View File

@@ -74,7 +74,7 @@ namespace WatchConnectivity
Debug.WriteLine($"Watch connectivity Reachable:{(session.Reachable ? '✓' : '✗')}");
}
public void SendBackgroundHighPriorityMessage(Dictionary<string, object> applicationContext)
public void SendBackgroundHighPriorityMessage(NSDictionary<NSString, NSObject> applicationContext)
{
// Application context doesnt need the watch to be reachable, it will be received when opened
if (validSession is null || validSession.ActivationState != WCSessionActivationState.Activated)
@@ -84,10 +84,10 @@ namespace WatchConnectivity
try
{
var sendSuccessfully = validSession.UpdateApplicationContext(applicationContext.ToNSDictionary(), out var error);
var sendSuccessfully = validSession.UpdateApplicationContext(applicationContext, out var error);
if (sendSuccessfully)
{
Debug.WriteLine($"Sent App Context \nPayLoad: {applicationContext.ToNSDictionary().ToString()} \n");
Debug.WriteLine($"Sent App Context \nPayLoad: {applicationContext.ToString()} \n");
}
else
{

View File

@@ -144,7 +144,8 @@ namespace Bit.iOS.Core.Utilities
ServiceContainer.Register<IWatchDeviceService>(new WatchDeviceService(ServiceContainer.Resolve<ICipherService>(),
ServiceContainer.Resolve<IEnvironmentService>(),
ServiceContainer.Resolve<IStateService>(),
ServiceContainer.Resolve<IVaultTimeoutService>()));
ServiceContainer.Resolve<IVaultTimeoutService>(),
ServiceContainer.Resolve<ILogger>()));
}
public static void Bootstrap(Func<Task> postBootstrapFunc = null)

View File

@@ -2,6 +2,12 @@ import Foundation
import CoreData
struct Cipher:Identifiable,Codable{
enum CodingKeys : CodingKey {
case id
case name
case login
}
var id:String
var name:String?
var userId:String?

View File

@@ -9,6 +9,7 @@ enum BWState : Int, Codable {
case syncing = 5
// case needUnlock = 6
case needDeviceOwnerAuth = 7
case debug = 255
var isDestructive: Bool {
return self == .needSetup || self == .needLogin || self == .needPremium || self == .need2FAItem

View File

@@ -3,9 +3,9 @@ import Foundation
extension JSONDecoder.KeyDecodingStrategy {
static var upperToLowerCamelCase: JSONDecoder.KeyDecodingStrategy {
return .custom { codingKeys in
var key = AnyCodingKey(codingKeys.last!)
var key = JSONAnyCodingKey(codingKeys.last!)
if let firstChar = key.stringValue.first {
key.stringValue.replaceSubrange(
...key.stringValue.startIndex, with: String(firstChar).lowercased()
@@ -16,10 +16,10 @@ extension JSONDecoder.KeyDecodingStrategy {
}
}
struct AnyCodingKey : CodingKey {
struct JSONAnyCodingKey : CodingKey {
var stringValue: String
var intValue: Int?
init(_ base: CodingKey) {
self.init(stringValue: base.stringValue, intValue: base.intValue)
}
@@ -27,12 +27,12 @@ struct AnyCodingKey : CodingKey {
init(stringValue: String) {
self.stringValue = stringValue
}
init(intValue: Int) {
self.stringValue = "\(intValue)"
self.intValue = intValue
}
init(stringValue: String, intValue: Int?) {
self.stringValue = stringValue
self.intValue = intValue

View File

@@ -4,7 +4,7 @@ class BWStateViewModel : ObservableObject{
@Published var text:String
@Published var isLoading:Bool = false
init(_ state: BWState){
init(_ state: BWState, _ defaultText: String?){
switch state {
case .needLogin:
text = "LogInToBitwardenOnYourIPhoneToViewVerificationCodes"
@@ -22,7 +22,7 @@ class BWStateViewModel : ObservableObject{
case .needDeviceOwnerAuth:
text = "SetUpAppleWatchPasscodeInOrderToUseBitwarden"
default:
text = ""
text = defaultText ?? ""
}
}
}

View File

@@ -15,6 +15,8 @@ class CipherListViewModel : ObservableObject {
@Published var searchTerm: String = ""
var debugText: String? = nil
private var subscriber: AnyCancellable?
init(_ cipherService: CipherServiceProtocol){
@@ -23,6 +25,7 @@ class CipherListViewModel : ObservableObject {
subscriber = watchConnectivityManager.watchConnectivitySubject.sink { completion in
print("WCM subject: \(completion)")
} receiveValue: { value in
self.debugText = value.debugText
self.checkStateAndFetch(value.state)
}

View File

@@ -3,8 +3,8 @@ import SwiftUI
struct BWStateView: View {
@ObservedObject var viewModel:BWStateViewModel
init(_ state: BWState) {
viewModel = BWStateViewModel(state)
init(_ state: BWState, _ defaultText: String?) {
viewModel = BWStateViewModel(state, defaultText)
}
var body: some View {
@@ -32,6 +32,6 @@ struct BWStateView: View {
struct BWStateView_Previews: PreviewProvider {
static var previews: some View {
BWStateView(.needSetup)
BWStateView(.needSetup, nil)
}
}

View File

@@ -62,7 +62,7 @@ struct CipherListView: View {
#endif
}
.fullScreenCover(isPresented: $viewModel.showingSheet) {
BWStateView(viewModel.currentState)
BWStateView(viewModel.currentState, viewModel.debugText)
}
}

View File

@@ -4,6 +4,7 @@ import WatchConnectivity
struct WatchConnectivityMessage {
var state: BWState?
var debugText: String?
}
final class WatchConnectivityManager: NSObject, ObservableObject {
@@ -76,22 +77,41 @@ extension WatchConnectivityManager: WCSessionDelegate {
k.starts(with: WATCH_DTO_APP_CONTEXT_KEY)
}
guard let dtoKey = watchDtoKey, let serializedDto = applicationContext[dtoKey] as? String else {
return
}
guard KeychainHelper.standard.hasDeviceOwnerAuth() else {
return
}
do {
guard let json = try! JSONSerialization.jsonObject(with: serializedDto.data(using: .utf8)!, options: [.fragmentsAllowed]) as? String else {
guard let dtoKey = watchDtoKey,
let nsRawData = applicationContext[dtoKey] as? NSData,
KeychainHelper.standard.hasDeviceOwnerAuth() else {
return
}
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .upperToLowerCamelCase
let watchDTO = try decoder.decode(WatchDTO.self, from: json.data(using: .utf8)!)
let decoder = MessagePackDecoder()
decoder.userInfo[MessagePackDecoder.dataSpecKey] = DataSpecBuilder()
.append("state")
.appendArray("ciphers", DataSpecBuilder()
.append("id")
.append("name")
.appendObj("login", DataSpecBuilder()
.append("username")
.append("totp")
.appendArray("uris", DataSpecBuilder()
.append("uri")
.build())
.build())
.build())
.appendObj("userData", DataSpecBuilder()
.append("id")
.append("email")
.append("name")
.build())
.appendObj("environmentData", DataSpecBuilder()
.append("base")
.append("icons")
.build())
.build()
let rawData = try nsRawData.decompressed(using: .lzfse)
let watchDTO = try decoder.decode(WatchDTO.self, from: Data(referencing: rawData))
let previousUserId = StateService.shared.getUser()?.id

View File

@@ -27,6 +27,18 @@
1B15615B28B7F3D900610B9B /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1B15615A28B7F3D900610B9B /* Preview Assets.xcassets */; };
1B15616C28B81A2200610B9B /* Cipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B15616B28B81A2200610B9B /* Cipher.swift */; };
1B15616E28B81A4300610B9B /* WatchConnectivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B15616D28B81A4300610B9B /* WatchConnectivityManager.swift */; };
1B2A484029A90D9B00621E13 /* FixedWidthInteger+Bytes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483229A90D9B00621E13 /* FixedWidthInteger+Bytes.swift */; };
1B2A484129A90D9B00621E13 /* UnkeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483429A90D9B00621E13 /* UnkeyedEncodingContainer.swift */; };
1B2A484229A90D9B00621E13 /* SingleValueEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483529A90D9B00621E13 /* SingleValueEncodingContainer.swift */; };
1B2A484329A90D9B00621E13 /* KeyedEncodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483629A90D9B00621E13 /* KeyedEncodingContainer.swift */; };
1B2A484429A90D9B00621E13 /* MessagePackEncoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483729A90D9B00621E13 /* MessagePackEncoder.swift */; };
1B2A484529A90D9B00621E13 /* KeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483929A90D9B00621E13 /* KeyedDecodingContainer.swift */; };
1B2A484629A90D9B00621E13 /* SingleValueDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483A29A90D9B00621E13 /* SingleValueDecodingContainer.swift */; };
1B2A484729A90D9B00621E13 /* MessagePackDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483B29A90D9B00621E13 /* MessagePackDecoder.swift */; };
1B2A484829A90D9B00621E13 /* UnkeyedDecodingContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483C29A90D9B00621E13 /* UnkeyedDecodingContainer.swift */; };
1B2A484929A90D9B00621E13 /* Box.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483D29A90D9B00621E13 /* Box.swift */; };
1B2A484A29A90D9B00621E13 /* DataSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483E29A90D9B00621E13 /* DataSpec.swift */; };
1B2A484B29A90D9B00621E13 /* AnyCodingKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B2A483F29A90D9B00621E13 /* AnyCodingKey.swift */; };
1B5849A7294D1C020055286B /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B5849A6294D1C020055286B /* Queue.swift */; };
1B59EC5729007DEE00A8718D /* BitwardenDB.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 1B59EC5529007DEE00A8718D /* BitwardenDB.xcdatamodeld */; };
1B59EC592900801500A8718D /* StringEncryptionTransformer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B59EC582900801500A8718D /* StringEncryptionTransformer.swift */; };
@@ -140,6 +152,18 @@
1B15615D28B7F3D900610B9B /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = "<group>"; };
1B15616B28B81A2200610B9B /* Cipher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cipher.swift; sourceTree = "<group>"; };
1B15616D28B81A4300610B9B /* WatchConnectivityManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchConnectivityManager.swift; sourceTree = "<group>"; };
1B2A483229A90D9B00621E13 /* FixedWidthInteger+Bytes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "FixedWidthInteger+Bytes.swift"; sourceTree = "<group>"; };
1B2A483429A90D9B00621E13 /* UnkeyedEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnkeyedEncodingContainer.swift; sourceTree = "<group>"; };
1B2A483529A90D9B00621E13 /* SingleValueEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleValueEncodingContainer.swift; sourceTree = "<group>"; };
1B2A483629A90D9B00621E13 /* KeyedEncodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyedEncodingContainer.swift; sourceTree = "<group>"; };
1B2A483729A90D9B00621E13 /* MessagePackEncoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagePackEncoder.swift; sourceTree = "<group>"; };
1B2A483929A90D9B00621E13 /* KeyedDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyedDecodingContainer.swift; sourceTree = "<group>"; };
1B2A483A29A90D9B00621E13 /* SingleValueDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleValueDecodingContainer.swift; sourceTree = "<group>"; };
1B2A483B29A90D9B00621E13 /* MessagePackDecoder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagePackDecoder.swift; sourceTree = "<group>"; };
1B2A483C29A90D9B00621E13 /* UnkeyedDecodingContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnkeyedDecodingContainer.swift; sourceTree = "<group>"; };
1B2A483D29A90D9B00621E13 /* Box.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Box.swift; sourceTree = "<group>"; };
1B2A483E29A90D9B00621E13 /* DataSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataSpec.swift; sourceTree = "<group>"; };
1B2A483F29A90D9B00621E13 /* AnyCodingKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnyCodingKey.swift; sourceTree = "<group>"; };
1B5849A6294D1C020055286B /* Queue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Queue.swift; sourceTree = "<group>"; };
1B5849A92950BC860055286B /* LocalAuthentication.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LocalAuthentication.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS9.1.sdk/System/Library/Frameworks/LocalAuthentication.framework; sourceTree = DEVELOPER_DIR; };
1B59EC5629007DEE00A8718D /* BitwardenDB.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = BitwardenDB.xcdatamodel; sourceTree = "<group>"; };
@@ -288,6 +312,7 @@
1B15614C28B7F3D800610B9B /* bitwarden WatchKit Extension */ = {
isa = PBXGroup;
children = (
1B2A483129A90D9B00621E13 /* MessagePack */,
1B8BF9072919A2BC006F069E /* Controls */,
1B5AFF0629197809004478F9 /* Localization */,
1B59EC5F2900C48300A8718D /* Helpers */,
@@ -320,6 +345,42 @@
path = "Preview Content";
sourceTree = "<group>";
};
1B2A483129A90D9B00621E13 /* MessagePack */ = {
isa = PBXGroup;
children = (
1B2A483229A90D9B00621E13 /* FixedWidthInteger+Bytes.swift */,
1B2A483329A90D9B00621E13 /* Encoder */,
1B2A483829A90D9B00621E13 /* Decoder */,
1B2A483D29A90D9B00621E13 /* Box.swift */,
1B2A483E29A90D9B00621E13 /* DataSpec.swift */,
1B2A483F29A90D9B00621E13 /* AnyCodingKey.swift */,
);
name = MessagePack;
path = ../../../../lib/MessagePack/Sources/MessagePack;
sourceTree = "<group>";
};
1B2A483329A90D9B00621E13 /* Encoder */ = {
isa = PBXGroup;
children = (
1B2A483429A90D9B00621E13 /* UnkeyedEncodingContainer.swift */,
1B2A483529A90D9B00621E13 /* SingleValueEncodingContainer.swift */,
1B2A483629A90D9B00621E13 /* KeyedEncodingContainer.swift */,
1B2A483729A90D9B00621E13 /* MessagePackEncoder.swift */,
);
path = Encoder;
sourceTree = "<group>";
};
1B2A483829A90D9B00621E13 /* Decoder */ = {
isa = PBXGroup;
children = (
1B2A483929A90D9B00621E13 /* KeyedDecodingContainer.swift */,
1B2A483A29A90D9B00621E13 /* SingleValueDecodingContainer.swift */,
1B2A483B29A90D9B00621E13 /* MessagePackDecoder.swift */,
1B2A483C29A90D9B00621E13 /* UnkeyedDecodingContainer.swift */,
);
path = Decoder;
sourceTree = "<group>";
};
1B5849A82950BC860055286B /* Frameworks */ = {
isa = PBXGroup;
children = (
@@ -584,8 +645,12 @@
1BDBFEAC290B4215009C78C7 /* CipherListViewModel.swift in Sources */,
1BF5F6DB29103066002DDC0C /* CipherService.swift in Sources */,
1B5F5E3E293FBB17009B5FCC /* CipherItemView.swift in Sources */,
1B2A484629A90D9B00621E13 /* SingleValueDecodingContainer.swift in Sources */,
1B15616C28B81A2200610B9B /* Cipher.swift in Sources */,
1B2A484A29A90D9B00621E13 /* DataSpec.swift in Sources */,
1B8BF90429199BBB006F069E /* CipherDetailsView.swift in Sources */,
1B2A484229A90D9B00621E13 /* SingleValueEncodingContainer.swift in Sources */,
1B2A484929A90D9B00621E13 /* Box.swift in Sources */,
1B8BF9112919CDBB006F069E /* DateExtensions.swift in Sources */,
1BD291BB2927E9B50004F33F /* WatchDTO.swift in Sources */,
1B11C899291BFAB500CE58D8 /* CryptoFunctionService.swift in Sources */,
@@ -595,32 +660,40 @@
1BD291BD292807240004F33F /* User.swift in Sources */,
1BDBFEB3290B5D07009C78C7 /* CoreDataHelper.swift in Sources */,
1B15615028B7F3D800610B9B /* CipherListView.swift in Sources */,
1B2A484529A90D9B00621E13 /* KeyedDecodingContainer.swift in Sources */,
1B2A484329A90D9B00621E13 /* KeyedEncodingContainer.swift in Sources */,
1BD291BF292D0E6F0004F33F /* JsonDecoderExtensions.swift in Sources */,
1B59EC632901B1C100A8718D /* LoggerHelper.swift in Sources */,
1BD291C329311E1C0004F33F /* VaultTimeoutAction.swift in Sources */,
1B15615628B7F3D800610B9B /* ComplicationController.swift in Sources */,
1B2A484129A90D9B00621E13 /* UnkeyedEncodingContainer.swift in Sources */,
1BD291B9292438830004F33F /* StateService.swift in Sources */,
1BC1CD6329227D3C006540DA /* EnvironmentService.swift in Sources */,
1B8BF9092919A2CC006F069E /* CircularProgressView.swift in Sources */,
1B2A484B29A90D9B00621E13 /* AnyCodingKey.swift in Sources */,
1BD291B7292409410004F33F /* BWState.swift in Sources */,
1B15614E28B7F3D800610B9B /* bitwardenApp.swift in Sources */,
1BC1CD6929228CEB006540DA /* StringExtensions.swift in Sources */,
1BDBFEB1290B5BD3009C78C7 /* DBHelperProtocol.swift in Sources */,
1B2A484429A90D9B00621E13 /* MessagePackEncoder.swift in Sources */,
1B8BF90629199EC5006F069E /* CipherDetailsViewModel.swift in Sources */,
1BF5F6DE29103B86002DDC0C /* CipherServiceMock.swift in Sources */,
1BC1CD672922871A006540DA /* URLExtensions.swift in Sources */,
1B11C89B291C587600CE58D8 /* UInt64Extensions.swift in Sources */,
1B8453ED290C672E00F921E1 /* CipherEntity+CoreDataProperties.swift in Sources */,
1B2A484029A90D9B00621E13 /* FixedWidthInteger+Bytes.swift in Sources */,
1BC1CD6E2922B92B006540DA /* ImageView.swift in Sources */,
1BD291C1292E7E690004F33F /* ErrorExtensions.swift in Sources */,
1B14DF37291186D900EA43F1 /* EmptyStateViewModifier.swift in Sources */,
1BD291B52924047C0004F33F /* BWStateViewModel.swift in Sources */,
1B5849A7294D1C020055286B /* Queue.swift in Sources */,
1B15616E28B81A4300610B9B /* WatchConnectivityManager.swift in Sources */,
1B2A484829A90D9B00621E13 /* UnkeyedDecodingContainer.swift in Sources */,
1B5AFF0329196C81004478F9 /* ColorUtils.swift in Sources */,
1B59EC612900C48E00A8718D /* KeychainHelper.swift in Sources */,
1B5BE453295A08C600E0C323 /* ExtensionDelegate.swift in Sources */,
1B59EC5729007DEE00A8718D /* BitwardenDB.xcdatamodeld in Sources */,
1B2A484729A90D9B00621E13 /* MessagePackDecoder.swift in Sources */,
1B8BF90D2919BED9006F069E /* Base32.swift in Sources */,
1B8453EC290C672E00F921E1 /* CipherEntity+CoreDataClass.swift in Sources */,
1BC1CD6529227F3C006540DA /* IconImageHelper.swift in Sources */,