Merge branch 'master' into feature/maui-migration

Fixed conflicts

# Conflicts:
#	src/App/Resources/AppResources.cs.Designer.cs
#	src/App/Resources/AppResources.da.Designer.cs
#	src/App/Resources/AppResources.de.Designer.cs
#	src/App/Resources/AppResources.es.Designer.cs
#	src/App/Resources/AppResources.fi.Designer.cs
#	src/App/Resources/AppResources.fr.Designer.cs
#	src/App/Resources/AppResources.hi.Designer.cs
#	src/App/Resources/AppResources.hr.Designer.cs
#	src/App/Resources/AppResources.hu.Designer.cs
#	src/App/Resources/AppResources.id.Designer.cs
#	src/App/Resources/AppResources.it.Designer.cs
#	src/App/Resources/AppResources.ja.Designer.cs
#	src/App/Resources/AppResources.nl.Designer.cs
#	src/App/Resources/AppResources.pl.Designer.cs
#	src/App/Resources/AppResources.pt-BR.Designer.cs
#	src/App/Resources/AppResources.pt-PT.Designer.cs
#	src/App/Resources/AppResources.ro.Designer.cs
#	src/App/Resources/AppResources.ru.Designer.cs
#	src/App/Resources/AppResources.sk.Designer.cs
#	src/App/Resources/AppResources.sv.Designer.cs
#	src/App/Resources/AppResources.th.Designer.cs
#	src/App/Resources/AppResources.tr.Designer.cs
#	src/App/Resources/AppResources.uk.Designer.cs
#	src/App/Resources/AppResources.vi.Designer.cs
#	src/App/Resources/AppResources.zh-Hans.Designer.cs
#	src/App/Resources/AppResources.zh-Hant.Designer.cs
#	src/Core/Controls/Settings/BaseSettingControlView.cs
#	src/Core/Pages/Accounts/EnvironmentPageViewModel.cs
#	src/Core/Pages/Accounts/HomePage.xaml.cs
#	src/Core/Pages/Accounts/HomePageViewModel.cs
#	src/Core/Pages/Accounts/SetPasswordPageViewModel.cs
#	src/Core/Pages/Settings/SecuritySettingsPageViewModel.cs
#	src/Core/Pages/TabsPage.cs
#	src/Core/Services/StateMigrationService.cs
#	src/Core/Utilities/BoolToColorConverter.cs
This commit is contained in:
Dinis Vieira 2023-11-19 15:06:02 +00:00
commit eceb506c77
No known key found for this signature in database
GPG key ID: 9389160FF6C295F3
113 changed files with 1474 additions and 593 deletions

9
.github/CODEOWNERS vendored
View file

@ -20,12 +20,15 @@ src/watchOS @bitwarden/team-vault-dev
## Tools team files ## ## Tools team files ##
src/Core/Services/EmailForwarders @bitwarden/team-tools-dev src/Core/Services/EmailForwarders @bitwarden/team-tools-dev
## Crowdin Sync files ## ## Crowdin Sync files ##
src/App/Resources @bitwarden/tech-leads src/App/Resources @bitwarden/team-tools-dev
src/watchOS/bitwarden/bitwarden\ WatchKit\ Extension/Localization @bitwarden/tech-leads src/watchOS/bitwarden/bitwarden\ WatchKit\ Extension/Localization @bitwarden/team-tools-dev
store/apple @bitwarden/team-tools-dev
store/google @bitwarden/team-tools-dev
## Locales ## ## Locales ##
src/App/Resources/AppResources.Designer.cs src/App/Resources/AppResources.Designer.cs
src/App/Resources/AppResources.resx src/App/Resources/AppResources.resx
src/watchOS/bitwarden/bitwarden\ WatchKit\ Extension/Localization/en.lproj src/watchOS/bitwarden/bitwarden\ WatchKit\ Extension/Localization/en.lproj
store/apple/en
store/google/en

View file

@ -24,7 +24,7 @@ jobs:
- name: Retrieve secrets - name: Retrieve secrets
id: retrieve-secrets id: retrieve-secrets
uses: bitwarden/gh-actions/get-keyvault-secrets@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/get-keyvault-secrets@main
with: with:
keyvault: "bitwarden-ci" keyvault: "bitwarden-ci"
secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase" secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"

View file

@ -42,7 +42,7 @@ jobs:
- name: Check Release Version - name: Check Release Version
id: version id: version
uses: bitwarden/gh-actions/release-version-check@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/release-version-check@main
with: with:
release-type: ${{ github.event.inputs.release_type }} release-type: ${{ github.event.inputs.release_type }}
project-type: xamarin project-type: xamarin

View file

@ -28,7 +28,7 @@ jobs:
- name: Retrieve secrets - name: Retrieve secrets
id: retrieve-secrets id: retrieve-secrets
uses: bitwarden/gh-actions/get-keyvault-secrets@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/get-keyvault-secrets@main
with: with:
keyvault: "bitwarden-ci" keyvault: "bitwarden-ci"
secrets: "github-gpg-private-key, github-gpg-private-key-passphrase" secrets: "github-gpg-private-key, github-gpg-private-key-passphrase"
@ -45,31 +45,31 @@ jobs:
run: git switch -c version_bump_${{ github.event.inputs.version_number }} run: git switch -c version_bump_${{ github.event.inputs.version_number }}
- name: Bump Version - Android XML - name: Bump Version - Android XML
uses: bitwarden/gh-actions/version-bump@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/version-bump@main
with: with:
version: ${{ github.event.inputs.version_number }} version: ${{ github.event.inputs.version_number }}
file_path: "./src/Android/Properties/AndroidManifest.xml" file_path: "./src/Android/Properties/AndroidManifest.xml"
- name: Bump Version - iOS.Autofill - name: Bump Version - iOS.Autofill
uses: bitwarden/gh-actions/version-bump@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/version-bump@main
with: with:
version: ${{ github.event.inputs.version_number }} version: ${{ github.event.inputs.version_number }}
file_path: "./src/iOS.Autofill/Info.plist" file_path: "./src/iOS.Autofill/Info.plist"
- name: Bump Version - iOS.Extension - name: Bump Version - iOS.Extension
uses: bitwarden/gh-actions/version-bump@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/version-bump@main
with: with:
version: ${{ github.event.inputs.version_number }} version: ${{ github.event.inputs.version_number }}
file_path: "./src/iOS.Extension/Info.plist" file_path: "./src/iOS.Extension/Info.plist"
- name: Bump Version - iOS.ShareExtension - name: Bump Version - iOS.ShareExtension
uses: bitwarden/gh-actions/version-bump@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/version-bump@main
with: with:
version: ${{ github.event.inputs.version_number }} version: ${{ github.event.inputs.version_number }}
file_path: "./src/iOS.ShareExtension/Info.plist" file_path: "./src/iOS.ShareExtension/Info.plist"
- name: Bump Version - iOS - name: Bump Version - iOS
uses: bitwarden/gh-actions/version-bump@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/version-bump@main
with: with:
version: ${{ github.event.inputs.version_number }} version: ${{ github.event.inputs.version_number }}
file_path: "./src/iOS/Info.plist" file_path: "./src/iOS/Info.plist"

View file

@ -8,4 +8,4 @@ on:
jobs: jobs:
call-workflow: call-workflow:
uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@4a7ddc1b38ca5cb4e3e43578f4df5cabe4f55a67 uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@main

View file

@ -1,11 +1,10 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net;
using System.Net.Http; using System.Net.Http;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Models.Domain; using Bit.Core.Models.Data;
using Bit.Core.Models.Request; using Bit.Core.Models.Request;
using Bit.Core.Models.Response; using Bit.Core.Models.Response;
using DeviceType = Bit.Core.Enums.DeviceType; using DeviceType = Bit.Core.Enums.DeviceType;
@ -52,7 +51,7 @@ namespace Bit.Core.Abstractions
Task<TResponse> SendAsync<TRequest, TResponse>(HttpMethod method, string path, Task<TResponse> SendAsync<TRequest, TResponse>(HttpMethod method, string path,
TRequest body, bool authed, bool hasResponse, Action<HttpRequestMessage> alterRequest, bool logoutOnUnauthorized = true, bool sendToIdentity = false); TRequest body, bool authed, bool hasResponse, Action<HttpRequestMessage> alterRequest, bool logoutOnUnauthorized = true, bool sendToIdentity = false);
Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage, CancellationToken cancellationToken = default); Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage, CancellationToken cancellationToken = default);
void SetUrls(EnvironmentUrls urls); void SetUrls(EnvironmentUrlData urls);
[Obsolete("Mar 25 2021: This method has been deprecated in favor of direct uploads. This method still exists for backward compatibility with old server versions.")] [Obsolete("Mar 25 2021: This method has been deprecated in favor of direct uploads. This method still exists for backward compatibility with old server versions.")]
Task<CipherResponse> PostCipherAttachmentLegacyAsync(string id, MultipartFormDataContent data); Task<CipherResponse> PostCipherAttachmentLegacyAsync(string id, MultipartFormDataContent data);
Task<AttachmentUploadDataResponse> PostCipherAttachmentAsync(string id, AttachmentRequest request); Task<AttachmentUploadDataResponse> PostCipherAttachmentAsync(string id, AttachmentRequest request);

View file

@ -1,5 +1,5 @@
using System.Threading.Tasks; using Bit.Core.Models.Data;
using Bit.Core.Models.Data; using BwRegion = Bit.Core.Enums.Region;
namespace Bit.Core.Abstractions namespace Bit.Core.Abstractions
{ {
@ -12,10 +12,12 @@ namespace Bit.Core.Abstractions
string NotificationsUrl { get; set; } string NotificationsUrl { get; set; }
string WebVaultUrl { get; set; } string WebVaultUrl { get; set; }
string EventsUrl { get; set; } string EventsUrl { get; set; }
BwRegion SelectedRegion { get; set; }
string GetWebVaultUrl(bool returnNullIfDefault = false); string GetWebVaultUrl(bool returnNullIfDefault = false);
string GetWebSendUrl(); string GetWebSendUrl();
Task<EnvironmentUrlData> SetUrlsAsync(EnvironmentUrlData urls); string GetCurrentDomain();
Task SetUrlsFromStorageAsync(); Task SetUrlsFromStorageAsync();
Task<EnvironmentUrlData> SetRegionAsync(BwRegion region, EnvironmentUrlData selfHostedUrls = null);
} }
} }

View file

@ -1,12 +1,9 @@
using System; using Bit.Core.Enums;
using System.Collections.Generic;
using System.Threading.Tasks;
using Bit.Core.Enums;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using Bit.Core.Models.Domain; using Bit.Core.Models.Domain;
using Bit.Core.Models.Response; using Bit.Core.Models.Response;
using Bit.Core.Models.View; using Bit.Core.Models.View;
using Bit.Core.Services; using BwRegion = Bit.Core.Enums.Region;
namespace Bit.Core.Abstractions namespace Bit.Core.Abstractions
{ {
@ -185,6 +182,10 @@ namespace Bit.Core.Abstractions
void SetConfigs(ConfigResponse value); void SetConfigs(ConfigResponse value);
Task<bool> GetShouldTrustDeviceAsync(); Task<bool> GetShouldTrustDeviceAsync();
Task SetShouldTrustDeviceAsync(bool value); Task SetShouldTrustDeviceAsync(bool value);
Task SetUserHasMasterPasswordAsync(bool value, string userId = null);
Task<BwRegion?> GetActiveUserRegionAsync();
Task<BwRegion?> GetPreAuthRegionAsync();
Task SetPreAuthRegionAsync(BwRegion value);
[Obsolete("Use GetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")] [Obsolete("Use GetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")]
Task<string> GetPinProtectedAsync(string userId = null); Task<string> GetPinProtectedAsync(string userId = null);
[Obsolete("Use SetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")] [Obsolete("Use SetPinKeyEncryptedUserKeyAsync instead, left for migration purposes")]

View file

@ -178,6 +178,11 @@ namespace Bit.App
new NavigationPage(new UpdateTempPasswordPage())); new NavigationPage(new UpdateTempPasswordPage()));
}); });
} }
else if (message.Command == Constants.ForceSetPassword)
{
await Device.InvokeOnMainThreadAsync(() => Application.Current.MainPage.Navigation.PushModalAsync(
new NavigationPage(new SetPasswordPage(orgIdentifier: (string)message.Data))));
}
else if (message.Command == "syncCompleted") else if (message.Command == "syncCompleted")
{ {
await _configService.GetAsync(true); await _configService.GetAsync(true);

View file

@ -46,6 +46,7 @@ namespace Bit.Core
public const string PreLoginEmailKey = "preLoginEmailKey"; public const string PreLoginEmailKey = "preLoginEmailKey";
public const string ConfigsKey = "configsKey"; public const string ConfigsKey = "configsKey";
public const string DisplayEuEnvironmentFlag = "display-eu-environment"; public const string DisplayEuEnvironmentFlag = "display-eu-environment";
public const string RegionEnvironment = "regionEnvironment";
/// <summary> /// <summary>
/// This key is used to store the value of "ShouldConnectToWatch" of the last user that had logged in /// This key is used to store the value of "ShouldConnectToWatch" of the last user that had logged in
@ -56,6 +57,7 @@ namespace Bit.Core
public const string AppLocaleKey = "appLocale"; public const string AppLocaleKey = "appLocale";
public const string ClearSensitiveFields = "clearSensitiveFields"; public const string ClearSensitiveFields = "clearSensitiveFields";
public const string ForceUpdatePassword = "forceUpdatePassword"; public const string ForceUpdatePassword = "forceUpdatePassword";
public const string ForceSetPassword = "forceSetPassword";
public const string ShouldTrustDevice = "shouldTrustDevice"; public const string ShouldTrustDevice = "shouldTrustDevice";
public const int SelectFileRequestCode = 42; public const int SelectFileRequestCode = 42;
public const int SelectFilePermissionRequestCode = 43; public const int SelectFilePermissionRequestCode = 43;

View file

@ -6,10 +6,10 @@ namespace Bit.App.Controls
public class BaseSettingItemView : ContentView public class BaseSettingItemView : ContentView
{ {
public static readonly BindableProperty TitleProperty = BindableProperty.Create( public static readonly BindableProperty TitleProperty = BindableProperty.Create(
nameof(Title), typeof(string), typeof(SwitchItemView), null, BindingMode.OneWay); nameof(Title), typeof(string), typeof(SwitchItemView), null);
public static readonly BindableProperty SubtitleProperty = BindableProperty.Create( public static readonly BindableProperty SubtitleProperty = BindableProperty.Create(
nameof(Subtitle), typeof(string), typeof(SwitchItemView), null, BindingMode.OneWay); nameof(Subtitle), typeof(string), typeof(SwitchItemView), null);
public string Title public string Title
{ {

View file

@ -7,7 +7,7 @@ namespace Bit.App.Controls
public partial class SettingChooserItemView : BaseSettingItemView public partial class SettingChooserItemView : BaseSettingItemView
{ {
public static readonly BindableProperty DisplayValueProperty = BindableProperty.Create( public static readonly BindableProperty DisplayValueProperty = BindableProperty.Create(
nameof(DisplayValue), typeof(string), typeof(SettingChooserItemView), null, BindingMode.OneWay); nameof(DisplayValue), typeof(string), typeof(SettingChooserItemView), null);
public static readonly BindableProperty ChooseCommandProperty = BindableProperty.Create( public static readonly BindableProperty ChooseCommandProperty = BindableProperty.Create(
nameof(ChooseCommand), typeof(ICommand), typeof(ExternalLinkItemView)); nameof(ChooseCommand), typeof(ICommand), typeof(ExternalLinkItemView));

10
src/Core/Enums/Region.cs Normal file
View file

@ -0,0 +1,10 @@
namespace Bit.Core.Enums
{
public enum Region
{
US,
EU,
SelfHosted
}
}

View file

@ -1,9 +1,34 @@
namespace Bit.Core.Models.Data using System.Text.RegularExpressions;
using Bit.Core.Utilities;
using BwRegion = Bit.Core.Enums.Region;
namespace Bit.Core.Models.Data
{ {
public class EnvironmentUrlData public class EnvironmentUrlData
{ {
public static EnvironmentUrlData DefaultUS = new EnvironmentUrlData { Base = "https://vault.bitwarden.com" }; public static EnvironmentUrlData DefaultUS = new EnvironmentUrlData
public static EnvironmentUrlData DefaultEU = new EnvironmentUrlData { Base = "https://vault.bitwarden.eu" }; {
Base = "https://vault.bitwarden.com",
Api = "https://api.bitwarden.com",
Identity = "https://identity.bitwarden.com",
Icons = "https://icons.bitwarden.net",
WebVault = "https://vault.bitwarden.com",
Notifications = "https://notifications.bitwarden.com",
Events = "https://events.bitwarden.com",
Domain = "bitwarden.com"
};
public static EnvironmentUrlData DefaultEU = new EnvironmentUrlData
{
Base = "https://vault.bitwarden.eu",
Api = "https://api.bitwarden.eu",
Identity = "https://identity.bitwarden.eu",
Icons = "https://icons.bitwarden.eu",
WebVault = "https://vault.bitwarden.eu",
Notifications = "https://notifications.bitwarden.eu",
Events = "https://events.bitwarden.eu",
Domain = "bitwarden.eu"
};
public string Base { get; set; } public string Base { get; set; }
public string Api { get; set; } public string Api { get; set; }
@ -12,6 +37,7 @@
public string Notifications { get; set; } public string Notifications { get; set; }
public string WebVault { get; set; } public string WebVault { get; set; }
public string Events { get; set; } public string Events { get; set; }
public string Domain { get; set; }
public bool IsEmpty => string.IsNullOrEmpty(Base) public bool IsEmpty => string.IsNullOrEmpty(Base)
&& string.IsNullOrEmpty(Api) && string.IsNullOrEmpty(Api)
@ -20,5 +46,63 @@
&& string.IsNullOrEmpty(Notifications) && string.IsNullOrEmpty(Notifications)
&& string.IsNullOrEmpty(WebVault) && string.IsNullOrEmpty(WebVault)
&& string.IsNullOrEmpty(Events); && string.IsNullOrEmpty(Events);
public BwRegion Region
{
get
{
if (Base == BwRegion.US.BaseUrl())
{
return BwRegion.US;
}
if (Base == BwRegion.EU.BaseUrl())
{
return BwRegion.EU;
}
return BwRegion.SelfHosted;
}
}
public EnvironmentUrlData FormatUrls()
{
return new EnvironmentUrlData
{
Base = FormatUrl(Base),
Api = FormatUrl(Api),
Identity = FormatUrl(Identity),
Icons = FormatUrl(Icons),
Notifications = FormatUrl(Notifications),
WebVault = FormatUrl(WebVault),
Events = FormatUrl(Events)
};
}
private string FormatUrl(string url)
{
if (string.IsNullOrWhiteSpace(url))
{
return null;
}
url = Regex.Replace(url, "\\/+$", string.Empty);
if (!url.StartsWith("http://") && !url.StartsWith("https://"))
{
url = string.Concat("https://", url);
}
return url.Trim();
}
public string GetDomainOrHostname()
{
var url = WebVault ?? Base ?? Api ?? Identity;
if (string.IsNullOrWhiteSpace(url))
{
return string.Empty;
}
if (url.Contains(BwRegion.US.Domain()) || url.Contains(BwRegion.EU.Domain()))
{
return CoreHelpers.GetDomain(url);
}
return CoreHelpers.GetHostname(url);
}
} }
} }

View file

@ -15,5 +15,6 @@
public bool ManagePolicies { get; set; } public bool ManagePolicies { get; set; }
public bool ManageSso { get; set; } public bool ManageSso { get; set; }
public bool ManageUsers { get; set; } public bool ManageUsers { get; set; }
public bool ManageResetPassword { get; set; }
} }
} }

View file

@ -1,6 +1,6 @@
using System; using Bit.Core.Enums;
using Bit.Core.Enums;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using BwRegion = Bit.Core.Enums.Region;
namespace Bit.Core.Models.Domain namespace Bit.Core.Models.Domain
{ {
@ -102,12 +102,14 @@ namespace Bit.Core.Models.Domain
return; return;
} }
Region = copy.Region;
EnvironmentUrls = copy.EnvironmentUrls; EnvironmentUrls = copy.EnvironmentUrls;
VaultTimeout = copy.VaultTimeout; VaultTimeout = copy.VaultTimeout;
VaultTimeoutAction = copy.VaultTimeoutAction; VaultTimeoutAction = copy.VaultTimeoutAction;
ScreenCaptureAllowed = copy.ScreenCaptureAllowed; ScreenCaptureAllowed = copy.ScreenCaptureAllowed;
} }
public BwRegion? Region;
public EnvironmentUrlData EnvironmentUrls; public EnvironmentUrlData EnvironmentUrls;
[Obsolete("Feb 10 2023: VaultTimeout has been deprecated in favor of stored prefs to retain value after logout. It remains here to allow for migration during app upgrade.")] [Obsolete("Feb 10 2023: VaultTimeout has been deprecated in favor of stored prefs to retain value after logout. It remains here to allow for migration during app upgrade.")]
public int? VaultTimeout; public int? VaultTimeout;

View file

@ -1,10 +0,0 @@
namespace Bit.Core.Models.Domain
{
public class EnvironmentUrls
{
public string Base { get; set; }
public string Api { get; set; }
public string Identity { get; set; }
public string Events { get; set; }
}
}

View file

@ -11,6 +11,12 @@
/// Occurs when a user logs in with a master password that does not meet an organization's master password /// Occurs when a user logs in with a master password that does not meet an organization's master password
/// policy that is enforced on login. /// policy that is enforced on login.
/// </summary> /// </summary>
WeakMasterPasswordOnLogin WeakMasterPasswordOnLogin,
/// <summary>
/// Occurs when a TDE user without a password obtains the password reset permission.
/// Set post login & decryption client side and by server in sync (to catch logged in users).
/// </summary>
TdeUserWithoutPasswordHasPasswordResetPermission,
} }
} }

View file

@ -46,7 +46,11 @@ namespace Bit.Core.Models.Domain
case ForwardedEmailServiceType.DuckDuckGo: case ForwardedEmailServiceType.DuckDuckGo:
return new ForwarderOptions { ApiKey = DuckDuckGoApiKey }; return new ForwarderOptions { ApiKey = DuckDuckGoApiKey };
case ForwardedEmailServiceType.Fastmail: case ForwardedEmailServiceType.Fastmail:
return new ForwarderOptions { ApiKey = FastMailApiKey }; return new FastmailForwarderOptions
{
ApiKey = FastMailApiKey,
Website = EmailWebsite
};
case ForwardedEmailServiceType.FirefoxRelay: case ForwardedEmailServiceType.FirefoxRelay:
return new ForwarderOptions { ApiKey = FirefoxRelayApiAccessToken }; return new ForwarderOptions { ApiKey = FirefoxRelayApiAccessToken };
case ForwardedEmailServiceType.SimpleLogin: case ForwardedEmailServiceType.SimpleLogin:

View file

@ -7,7 +7,7 @@ namespace Bit.Core.Models.Request
public string MasterPasswordHash { get; set; } public string MasterPasswordHash { get; set; }
public string Key { get; set; } public string Key { get; set; }
public string MasterPasswordHint { get; set; } public string MasterPasswordHint { get; set; }
public KeysRequest Keys { get; set; } public KeysRequest? Keys { get; set; }
public KdfType Kdf { get; set; } public KdfType Kdf { get; set; }
public int KdfIterations { get; set; } public int KdfIterations { get; set; }
public int? KdfMemory { get; set; } public int? KdfMemory { get; set; }

View file

@ -20,5 +20,6 @@ namespace Bit.Core.Models.Response
public List<ProfileOrganizationResponse> Organizations { get; set; } public List<ProfileOrganizationResponse> Organizations { get; set; }
public bool UsesKeyConnector { get; set; } public bool UsesKeyConnector { get; set; }
public string AvatarColor { get; set; } public string AvatarColor { get; set; }
public bool HasManageResetPasswordPermission { get; set; }
} }
} }

View file

@ -22,21 +22,7 @@ namespace Bit.Core.Models.View
Email = a.Profile?.Email; Email = a.Profile?.Email;
Name = a.Profile?.Name; Name = a.Profile?.Name;
AvatarColor = a.Profile?.AvatarColor; AvatarColor = a.Profile?.AvatarColor;
Hostname = ParseEndpoint(a.Settings?.EnvironmentUrls); Hostname = a.Settings?.EnvironmentUrls?.GetDomainOrHostname();
}
private string ParseEndpoint(EnvironmentUrlData urls)
{
var url = urls?.WebVault ?? urls?.Base;
if (!string.IsNullOrWhiteSpace(url))
{
if (url.Contains("bitwarden.com") || url.Contains("bitwarden.eu"))
{
return CoreHelpers.GetDomain(url);
}
return CoreHelpers.GetHostname(url);
}
return string.Empty;
} }
public bool IsAccount { get; set; } public bool IsAccount { get; set; }

View file

@ -1,8 +1,8 @@
using System.Windows.Input; using System.Windows.Input;
using Bit.Core.Resources.Localization; using Bit.Core.Resources.Localization;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Models.Data;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using BwRegion = Bit.Core.Enums.Region;
namespace Bit.App.Pages namespace Bit.App.Pages
{ {
@ -16,14 +16,25 @@ namespace Bit.App.Pages
_environmentService = ServiceContainer.Resolve<IEnvironmentService>("environmentService"); _environmentService = ServiceContainer.Resolve<IEnvironmentService>("environmentService");
PageTitle = AppResources.Settings; PageTitle = AppResources.Settings;
BaseUrl = _environmentService.BaseUrl == EnvironmentUrlData.DefaultEU.Base || EnvironmentUrlData.DefaultUS.Base == _environmentService.BaseUrl ? SubmitCommand = CreateDefaultAsyncRelayCommand(SubmitAsync, onException: OnSubmitException, allowsMultipleExecutions: false);
string.Empty : _environmentService.BaseUrl; Init();
}
public void Init()
{
if (_environmentService.SelectedRegion != BwRegion.SelfHosted ||
_environmentService.BaseUrl == BwRegion.US.BaseUrl() ||
_environmentService.BaseUrl == BwRegion.EU.BaseUrl())
{
return;
}
BaseUrl = _environmentService.BaseUrl;
WebVaultUrl = _environmentService.WebVaultUrl; WebVaultUrl = _environmentService.WebVaultUrl;
ApiUrl = _environmentService.ApiUrl; ApiUrl = _environmentService.ApiUrl;
IdentityUrl = _environmentService.IdentityUrl; IdentityUrl = _environmentService.IdentityUrl;
IconsUrl = _environmentService.IconsUrl; IconsUrl = _environmentService.IconsUrl;
NotificationsUrls = _environmentService.NotificationsUrl; NotificationsUrls = _environmentService.NotificationsUrl;
SubmitCommand = CreateDefaultAsyncRelayCommand(SubmitAsync, onException: OnSubmitException, allowsMultipleExecutions: false);
} }
public ICommand SubmitCommand { get; } public ICommand SubmitCommand { get; }
@ -43,8 +54,7 @@ namespace Bit.App.Pages
await Page.DisplayAlert(AppResources.AnErrorHasOccurred, AppResources.EnvironmentPageUrlsError, AppResources.Ok); await Page.DisplayAlert(AppResources.AnErrorHasOccurred, AppResources.EnvironmentPageUrlsError, AppResources.Ok);
return; return;
} }
var urls = new Core.Models.Data.EnvironmentUrlData
var resUrls = await _environmentService.SetUrlsAsync(new Core.Models.Data.EnvironmentUrlData
{ {
Base = BaseUrl, Base = BaseUrl,
Api = ApiUrl, Api = ApiUrl,
@ -52,7 +62,8 @@ namespace Bit.App.Pages
WebVault = WebVaultUrl, WebVault = WebVaultUrl,
Icons = IconsUrl, Icons = IconsUrl,
Notifications = NotificationsUrls Notifications = NotificationsUrls
}); };
var resUrls = await _environmentService.SetRegionAsync(urls.Region, urls);
// re-set urls since service can change them, ex: prefixing https:// // re-set urls since service can change them, ex: prefixing https://
BaseUrl = resUrls.Base; BaseUrl = resUrls.Base;

View file

@ -58,7 +58,6 @@ namespace Bit.App.Pages
try try
{ {
_accountAvatar?.OnAppearing(); _accountAvatar?.OnAppearing();
if (!_appOptions?.HideAccountSwitcher ?? false) if (!_appOptions?.HideAccountSwitcher ?? false)
{ {
await MainThread.InvokeOnMainThreadAsync(async () => _vm.AvatarImageSource = await GetAvatarImageSourceAsync(false)); await MainThread.InvokeOnMainThreadAsync(async () => _vm.AvatarImageSource = await GetAvatarImageSourceAsync(false));
@ -71,14 +70,14 @@ namespace Bit.App.Pages
} }
}); });
await _vm.UpdateEnvironment(); await _vm.UpdateEnvironmentAsync();
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.Value?.Exception(ex); _logger.Value?.Exception(ex);
} }
} }
protected override void OnNavigatingFrom(NavigatingFromEventArgs args) protected override void OnNavigatingFrom(NavigatingFromEventArgs args)
{ {
base.OnNavigatingFrom(args); base.OnNavigatingFrom(args);
@ -89,7 +88,7 @@ namespace Bit.App.Pages
protected override bool OnBackButtonPressed() protected override bool OnBackButtonPressed()
{ {
if (_accountListOverlay.IsVisible) if (_accountListOverlay.IsVisible)
{ {
_accountListOverlay.HideAsync().FireAndForget(); _accountListOverlay.HideAsync().FireAndForget();
return true; return true;

View file

@ -1,24 +1,17 @@
using System; using Bit.App.Abstractions;
using System.Threading.Tasks;
using Bit.App.Abstractions;
using Bit.App.Controls; using Bit.App.Controls;
using Bit.Core.Resources.Localization; using Bit.Core.Resources.Localization;
using Bit.App.Utilities; using Bit.App.Utilities;
using Bit.Core; using Bit.Core;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Models.Data;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using BwRegion = Bit.Core.Enums.Region;
using Microsoft.Maui.Controls;
using Microsoft.Maui;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
namespace Bit.App.Pages namespace Bit.App.Pages
{ {
public class HomeViewModel : BaseViewModel public class HomeViewModel : BaseViewModel
{ {
private const string LOGGING_IN_ON_US = "bitwarden.com";
private const string LOGGING_IN_ON_EU = "bitwarden.eu";
private readonly IStateService _stateService; private readonly IStateService _stateService;
private readonly IMessagingService _messagingService; private readonly IMessagingService _messagingService;
@ -167,10 +160,10 @@ namespace Bit.App.Pages
{ {
_displayEuEnvironment = await _configService.GetFeatureFlagBoolAsync(Constants.DisplayEuEnvironmentFlag); _displayEuEnvironment = await _configService.GetFeatureFlagBoolAsync(Constants.DisplayEuEnvironmentFlag);
var options = _displayEuEnvironment var options = _displayEuEnvironment
? new string[] { LOGGING_IN_ON_US, LOGGING_IN_ON_EU, AppResources.SelfHosted } ? new string[] { BwRegion.US.Domain(), BwRegion.EU.Domain(), AppResources.SelfHosted }
: new string[] { LOGGING_IN_ON_US, AppResources.SelfHosted }; : new string[] { BwRegion.US.Domain(), AppResources.SelfHosted };
await Device.InvokeOnMainThreadAsync(async () => await MainThread.InvokeOnMainThreadAsync(async () =>
{ {
var result = await Page.DisplayActionSheet(AppResources.LoggingInOn, AppResources.Cancel, null, options); var result = await Page.DisplayActionSheet(AppResources.LoggingInOn, AppResources.Cancel, null, options);
@ -185,35 +178,23 @@ namespace Bit.App.Pages
return; return;
} }
await _environmentService.SetUrlsAsync(result == LOGGING_IN_ON_EU ? EnvironmentUrlData.DefaultEU : EnvironmentUrlData.DefaultUS); await _environmentService.SetRegionAsync(result == BwRegion.EU.Domain() ? BwRegion.EU : BwRegion.US);
await _configService.GetAsync(true); await _configService.GetAsync(true);
SelectedEnvironmentName = result; SelectedEnvironmentName = result;
}); });
} }
public async Task UpdateEnvironment() public async Task UpdateEnvironmentAsync()
{ {
var environmentsSaved = await _stateService.GetPreAuthEnvironmentUrlsAsync(); var region = _environmentService.SelectedRegion;
if (environmentsSaved == null || environmentsSaved.IsEmpty) if (region == BwRegion.SelfHosted)
{ {
await _environmentService.SetUrlsAsync(EnvironmentUrlData.DefaultUS); SelectedEnvironmentName = AppResources.SelfHosted;
environmentsSaved = EnvironmentUrlData.DefaultUS; await _configService.GetAsync(true);
SelectedEnvironmentName = LOGGING_IN_ON_US;
return;
}
if (environmentsSaved.Base == EnvironmentUrlData.DefaultUS.Base)
{
SelectedEnvironmentName = LOGGING_IN_ON_US;
}
else if (environmentsSaved.Base == EnvironmentUrlData.DefaultEU.Base)
{
SelectedEnvironmentName = LOGGING_IN_ON_EU;
} }
else else
{ {
await _configService.GetAsync(true); SelectedEnvironmentName = region.Domain();
SelectedEnvironmentName = AppResources.SelfHosted;
} }
} }
} }

View file

@ -208,13 +208,8 @@ namespace Bit.App.Pages
_logger.Exception(new NullReferenceException("Email not found in storage")); _logger.Exception(new NullReferenceException("Email not found in storage"));
return; return;
} }
var webVault = _environmentService.GetWebVaultUrl(true);
if (string.IsNullOrWhiteSpace(webVault)) LoggedInAsText = string.Format(AppResources.LoggedInAsOn, _email, _environmentService.GetCurrentDomain());
{
webVault = "https://bitwarden.com";
}
var webVaultHostname = CoreHelpers.GetHostname(webVault);
LoggedInAsText = string.Format(AppResources.LoggedInAsOn, _email, webVaultHostname);
if (PinEnabled) if (PinEnabled)
{ {
PageTitle = AppResources.VerifyPIN; PageTitle = AppResources.VerifyPIN;

View file

@ -163,7 +163,7 @@ namespace Bit.App.Pages
Email = await _stateService.GetRememberedEmailAsync(); Email = await _stateService.GetRememberedEmailAsync();
} }
CanRemoveAccount = await _stateService.GetActiveUserEmailAsync() != Email; CanRemoveAccount = await _stateService.GetActiveUserEmailAsync() != Email;
EnvironmentDomainName = CoreHelpers.GetDomain((await _stateService.GetPreAuthEnvironmentUrlsAsync())?.Base); EnvironmentDomainName = _environmentService.GetCurrentDomain();
IsKnownDevice = await _apiService.GetKnownDeviceAsync(Email, await _appIdService.GetAppIdAsync()); IsKnownDevice = await _apiService.GetKnownDeviceAsync(Email, await _appIdService.GetAppIdAsync());
} }
catch (ApiException apiEx) when (apiEx.Error.StatusCode == System.Net.HttpStatusCode.Unauthorized) catch (ApiException apiEx) when (apiEx.Error.StatusCode == System.Net.HttpStatusCode.Unauthorized)

View file

@ -231,19 +231,18 @@ namespace Bit.App.Pages
StartDeviceApprovalOptionsAction?.Invoke(); StartDeviceApprovalOptionsAction?.Invoke();
return; return;
} }
// If user doesn't have a MP, but has reset password permission, they must set a MP
if (!decryptOptions.HasMasterPassword &&
decryptOptions.TrustedDeviceOption.HasManageResetPasswordPermission)
{
StartSetPasswordAction?.Invoke();
return;
}
// Update temp password only if the device is trusted and therefore has a decrypted User Key set // Update temp password only if the device is trusted and therefore has a decrypted User Key set
if (response.ForcePasswordReset) if (response.ForcePasswordReset)
{ {
UpdateTempPasswordAction?.Invoke(); UpdateTempPasswordAction?.Invoke();
return; return;
} }
// If user doesn't have a MP, but has reset password permission, they must set a MP
if (!decryptOptions.HasMasterPassword &&
decryptOptions.TrustedDeviceOption.HasManageResetPasswordPermission)
{
await _stateService.SetForcePasswordResetReasonAsync(ForcePasswordResetReason.TdeUserWithoutPasswordHasPasswordResetPermission);
}
// Device is trusted and has keys, so we can decrypt // Device is trusted and has keys, so we can decrypt
_syncService.FullSyncAsync(true).FireAndForget(); _syncService.FullSyncAsync(true).FireAndForget();
SsoAuthSuccessAction?.Invoke(); SsoAuthSuccessAction?.Invoke();

View file

@ -29,7 +29,7 @@
<StackLayout Spacing="20"> <StackLayout Spacing="20">
<StackLayout StyleClass="box"> <StackLayout StyleClass="box">
<StackLayout StyleClass="box-row"> <StackLayout StyleClass="box-row">
<Label Text="{u:I18n SetMasterPasswordSummary}" <Label Text="{Binding SetMasterPasswordSummary}"
StyleClass="text-md" StyleClass="text-md"
HorizontalTextAlignment="Start"></Label> HorizontalTextAlignment="Start"></Label>
</StackLayout> </StackLayout>

View file

@ -1,11 +1,7 @@
using System; using System.Text;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Bit.App.Abstractions; using Bit.App.Abstractions;
using Bit.Core.Resources.Localization; using Bit.Core.Resources.Localization;
using Bit.App.Utilities;
using Bit.Core; using Bit.Core;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Enums; using Bit.Core.Enums;
@ -13,9 +9,6 @@ using Bit.Core.Exceptions;
using Bit.Core.Models.Domain; using Bit.Core.Models.Domain;
using Bit.Core.Models.Request; using Bit.Core.Models.Request;
using Bit.Core.Utilities; using Bit.Core.Utilities;
using Microsoft.Maui.Networking;
using Microsoft.Maui.Controls;
using Microsoft.Maui;
namespace Bit.App.Pages namespace Bit.App.Pages
{ {
@ -29,6 +22,7 @@ namespace Bit.App.Pages
private readonly IPolicyService _policyService; private readonly IPolicyService _policyService;
private readonly IPasswordGenerationService _passwordGenerationService; private readonly IPasswordGenerationService _passwordGenerationService;
private readonly II18nService _i18nService; private readonly II18nService _i18nService;
private readonly ISyncService _syncService;
private bool _showPassword; private bool _showPassword;
private bool _isPolicyInEffect; private bool _isPolicyInEffect;
@ -47,6 +41,7 @@ namespace Bit.App.Pages
_passwordGenerationService = _passwordGenerationService =
ServiceContainer.Resolve<IPasswordGenerationService>("passwordGenerationService"); ServiceContainer.Resolve<IPasswordGenerationService>("passwordGenerationService");
_i18nService = ServiceContainer.Resolve<II18nService>("i18nService"); _i18nService = ServiceContainer.Resolve<II18nService>("i18nService");
_syncService = ServiceContainer.Resolve<ISyncService>();
PageTitle = AppResources.SetMasterPassword; PageTitle = AppResources.SetMasterPassword;
TogglePasswordCommand = new Command(TogglePassword); TogglePasswordCommand = new Command(TogglePassword);
@ -101,11 +96,17 @@ namespace Bit.App.Pages
public Action CloseAction { get; set; } public Action CloseAction { get; set; }
public string OrgIdentifier { get; set; } public string OrgIdentifier { get; set; }
public string OrgId { get; set; } public string OrgId { get; set; }
public ForcePasswordResetReason? ForceSetPasswordReason { get; private set; }
public string SetMasterPasswordSummary => ForceSetPasswordReason == ForcePasswordResetReason.TdeUserWithoutPasswordHasPasswordResetPermission
? AppResources.YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword
: AppResources.YourOrganizationRequiresYouToSetAMasterPassword;
public async Task InitAsync() public async Task InitAsync()
{ {
await CheckPasswordPolicy(); await CheckPasswordPolicy();
ForceSetPasswordReason = await _stateService.GetForcePasswordResetReasonAsync();
TriggerPropertyChanged(nameof(SetMasterPasswordSummary));
try try
{ {
var response = await _apiService.GetOrganizationAutoEnrollStatusAsync(OrgIdentifier); var response = await _apiService.GetOrganizationAutoEnrollStatusAsync(OrgIdentifier);
@ -172,8 +173,7 @@ namespace Bit.App.Pages
var (newUserKey, newProtectedUserKey) = await _cryptoService.EncryptUserKeyWithMasterKeyAsync(newMasterKey, var (newUserKey, newProtectedUserKey) = await _cryptoService.EncryptUserKeyWithMasterKeyAsync(newMasterKey,
await _cryptoService.GetUserKeyAsync() ?? await _cryptoService.MakeUserKeyAsync()); await _cryptoService.GetUserKeyAsync() ?? await _cryptoService.MakeUserKeyAsync());
var keysRequest = await GetKeysForSetPasswordRequestAsync(newUserKey);
var (newPublicKey, newProtectedPrivateKey) = await _cryptoService.MakeKeyPairAsync(newUserKey);
var request = new SetPasswordRequest var request = new SetPasswordRequest
{ {
MasterPasswordHash = masterPasswordHash, MasterPasswordHash = masterPasswordHash,
@ -184,16 +184,12 @@ namespace Bit.App.Pages
KdfMemory = kdfConfig.Memory, KdfMemory = kdfConfig.Memory,
KdfParallelism = kdfConfig.Parallelism, KdfParallelism = kdfConfig.Parallelism,
OrgIdentifier = OrgIdentifier, OrgIdentifier = OrgIdentifier,
Keys = new KeysRequest Keys = keysRequest
{
PublicKey = newPublicKey,
EncryptedPrivateKey = newProtectedPrivateKey.EncryptedString
}
}; };
try try
{ {
await _deviceActionService.ShowLoadingAsync(AppResources.CreatingAccount); await _deviceActionService.ShowLoadingAsync(AppResources.Loading);
// Set Password and relevant information // Set Password and relevant information
await _apiService.SetPasswordAsync(request); await _apiService.SetPasswordAsync(request);
await _stateService.SetKdfConfigurationAsync(kdfConfig); await _stateService.SetKdfConfigurationAsync(kdfConfig);
@ -201,7 +197,13 @@ namespace Bit.App.Pages
await _cryptoService.SetMasterKeyAsync(newMasterKey); await _cryptoService.SetMasterKeyAsync(newMasterKey);
await _cryptoService.SetMasterKeyHashAsync(localMasterPasswordHash); await _cryptoService.SetMasterKeyHashAsync(localMasterPasswordHash);
await _cryptoService.SetMasterKeyEncryptedUserKeyAsync(newProtectedUserKey.EncryptedString); await _cryptoService.SetMasterKeyEncryptedUserKeyAsync(newProtectedUserKey.EncryptedString);
await _cryptoService.SetUserPrivateKeyAsync(newProtectedPrivateKey.EncryptedString);
// Set private key only for new JIT provisioned users in MP encryption orgs
// Existing TDE users will have private key set on sync or on login
if (keysRequest != null)
{
await _cryptoService.SetUserPrivateKeyAsync(keysRequest.EncryptedPrivateKey);
}
if (ResetPasswordAutoEnroll) if (ResetPasswordAutoEnroll)
{ {
@ -222,6 +224,9 @@ namespace Bit.App.Pages
await _apiService.PutOrganizationUserResetPasswordEnrollmentAsync(OrgId, userId, resetRequest); await _apiService.PutOrganizationUserResetPasswordEnrollmentAsync(OrgId, userId, resetRequest);
} }
await _stateService.SetForcePasswordResetReasonAsync(null);
await _stateService.SetUserHasMasterPasswordAsync(true);
await _syncService.FullSyncAsync(true);
await _deviceActionService.HideLoadingAsync(); await _deviceActionService.HideLoadingAsync();
SetPasswordSuccessAction?.Invoke(); SetPasswordSuccessAction?.Invoke();
} }
@ -236,6 +241,21 @@ namespace Bit.App.Pages
} }
} }
private async Task<KeysRequest> GetKeysForSetPasswordRequestAsync(UserKey newUserKey)
{
if (ForceSetPasswordReason == ForcePasswordResetReason.TdeUserWithoutPasswordHasPasswordResetPermission)
{
return null;
}
var (newPublicKey, newProtectedPrivateKey) = await _cryptoService.MakeKeyPairAsync(newUserKey);
return new KeysRequest
{
PublicKey = newPublicKey,
EncryptedPrivateKey = newProtectedPrivateKey.EncryptedString
};
}
public void TogglePassword() public void TogglePassword()
{ {
ShowPassword = !ShowPassword; ShowPassword = !ShowPassword;

View file

@ -10,6 +10,7 @@ using Bit.App.Utilities;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
using Bit.Core.Models.Domain;
using Bit.Core.Models.Request; using Bit.Core.Models.Request;
using Bit.Core.Services; using Bit.Core.Services;
using Bit.Core.Utilities; using Bit.Core.Utilities;
@ -338,20 +339,18 @@ Device.RuntimePlatform == Device.iOS ? AppResources.YubiKeyInstructionIos :
StartDeviceApprovalOptionsAction?.Invoke(); StartDeviceApprovalOptionsAction?.Invoke();
return; return;
} }
// If user doesn't have a MP, but has reset password permission, they must set a MP
if (!decryptOptions.HasMasterPassword &&
decryptOptions.TrustedDeviceOption.HasManageResetPasswordPermission)
{
StartSetPasswordAction?.Invoke();
return;
}
// Update temp password only if the device is trusted and therefore has a decrypted User Key set // Update temp password only if the device is trusted and therefore has a decrypted User Key set
if (result.ForcePasswordReset) if (result.ForcePasswordReset)
{ {
UpdateTempPasswordAction?.Invoke(); UpdateTempPasswordAction?.Invoke();
return; return;
} }
// If user doesn't have a MP, but has reset password permission, they must set a MP
if (!decryptOptions.HasMasterPassword &&
decryptOptions.TrustedDeviceOption.HasManageResetPasswordPermission)
{
await _stateService.SetForcePasswordResetReasonAsync(ForcePasswordResetReason.TdeUserWithoutPasswordHasPasswordResetPermission);
}
// Device is trusted and has keys, so we can decrypt // Device is trusted and has keys, so we can decrypt
_syncService.FullSyncAsync(true).FireAndForget(); _syncService.FullSyncAsync(true).FireAndForget();
await TwoFactorAuthSuccessAsync(); await TwoFactorAuthSuccessAsync();

View file

@ -53,6 +53,7 @@
Title="{u:I18n AllowScreenCapture}" Title="{u:I18n AllowScreenCapture}"
IsToggled="{Binding IsScreenCaptureAllowed}" IsToggled="{Binding IsScreenCaptureAllowed}"
IsEnabled="{Binding CanToggleeScreenCaptureAllowed}" IsEnabled="{Binding CanToggleeScreenCaptureAllowed}"
IsVisible="{OnPlatform Android=True, iOS=False}"
AutomationId="AllowScreenCaptureSwitch" AutomationId="AllowScreenCaptureSwitch"
StyleClass="settings-item-view" StyleClass="settings-item-view"
HorizontalOptions="FillAndExpand" /> HorizontalOptions="FillAndExpand" />

View file

@ -67,7 +67,7 @@
<controls:CustomLabel <controls:CustomLabel
Text="{u:I18n SessionTimeout}" Text="{u:I18n SessionTimeout}"
StyleClass="settings-header" /> StyleClass="settings-header" />
<Frame <Frame
IsVisible="{Binding ShowVaultTimeoutPolicyInfo}" IsVisible="{Binding ShowVaultTimeoutPolicyInfo}"
Padding="10" Padding="10"
@ -109,8 +109,10 @@
<controls:SettingChooserItemView <controls:SettingChooserItemView
Title="{u:I18n SessionTimeoutAction}" Title="{u:I18n SessionTimeoutAction}"
Subtitle="{Binding SetUpUnlockMethodLabel}"
DisplayValue="{Binding VaultTimeoutActionPickerViewModel.SelectedValue}" DisplayValue="{Binding VaultTimeoutActionPickerViewModel.SelectedValue}"
ChooseCommand="{Binding VaultTimeoutActionPickerViewModel.SelectOptionCommand}" ChooseCommand="{Binding VaultTimeoutActionPickerViewModel.SelectOptionCommand}"
IsEnabled="{Binding IsVaultTimeoutActionLockAllowed}"
AutomationId="VaultTimeoutActionChooser" AutomationId="VaultTimeoutActionChooser"
StyleClass="settings-item-view" StyleClass="settings-item-view"
HorizontalOptions="FillAndExpand"/> HorizontalOptions="FillAndExpand"/>
@ -147,6 +149,7 @@
<controls:CustomLabel <controls:CustomLabel
Text="{u:I18n LockNow}" Text="{u:I18n LockNow}"
IsVisible="{Binding IsVaultTimeoutActionLockAllowed}"
StyleClass="settings-navigatable-label" StyleClass="settings-navigatable-label"
AutomationId="LockNowLabel"> AutomationId="LockNowLabel">
<Label.GestureRecognizers> <Label.GestureRecognizers>

View file

@ -70,7 +70,7 @@ namespace Bit.App.Pages
_logger, _logger,
OnVaultTimeoutActionChangingAsync, OnVaultTimeoutActionChangingAsync,
AppResources.SessionTimeoutAction, AppResources.SessionTimeoutAction,
() => _inited && !HasVaultTimeoutActionPolicy, () => _inited && !HasVaultTimeoutActionPolicy && IsVaultTimeoutActionLockAllowed,
ex => HandleException(ex)); ex => HandleException(ex));
ToggleUseThisDeviceToApproveLoginRequestsCommand = CreateDefaultAsyncRelayCommand(ToggleUseThisDeviceToApproveLoginRequestsAsync, () => _inited, allowsMultipleExecutions: false); ToggleUseThisDeviceToApproveLoginRequestsCommand = CreateDefaultAsyncRelayCommand(ToggleUseThisDeviceToApproveLoginRequestsAsync, () => _inited, allowsMultipleExecutions: false);
@ -123,6 +123,7 @@ namespace Bit.App.Pages
get => _canUnlockWithBiometrics; get => _canUnlockWithBiometrics;
set set
{ {
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
if (SetProperty(ref _canUnlockWithBiometrics, value)) if (SetProperty(ref _canUnlockWithBiometrics, value))
{ {
((ICommand)ToggleCanUnlockWithBiometricsCommand).Execute(null); ((ICommand)ToggleCanUnlockWithBiometricsCommand).Execute(null);
@ -135,6 +136,7 @@ namespace Bit.App.Pages
get => _canUnlockWithPin; get => _canUnlockWithPin;
set set
{ {
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
if (SetProperty(ref _canUnlockWithPin, value)) if (SetProperty(ref _canUnlockWithPin, value))
{ {
((ICommand)ToggleCanUnlockWithPinCommand).Execute(null); ((ICommand)ToggleCanUnlockWithPinCommand).Execute(null);
@ -142,6 +144,10 @@ namespace Bit.App.Pages
} }
} }
public bool IsVaultTimeoutActionLockAllowed => _hasMasterPassword || _canUnlockWithBiometrics || _canUnlockWithPin;
public string SetUpUnlockMethodLabel => IsVaultTimeoutActionLockAllowed ? null : AppResources.SetUpAnUnlockOptionToChangeYourVaultTimeoutAction;
public TimeSpan? CustomVaultTimeoutTime public TimeSpan? CustomVaultTimeoutTime
{ {
get => _customVaultTimeoutTime; get => _customVaultTimeoutTime;
@ -158,6 +164,7 @@ namespace Bit.App.Pages
MainThread.BeginInvokeOnMainThread(() => SetProperty(ref _customVaultTimeoutTime, oldValue)); MainThread.BeginInvokeOnMainThread(() => SetProperty(ref _customVaultTimeoutTime, oldValue));
}); });
} }
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
} }
} }
@ -197,8 +204,6 @@ namespace Bit.App.Pages
public bool ShowChangeMasterPassword { get; private set; } public bool ShowChangeMasterPassword { get; private set; }
private bool IsVaultTimeoutActionLockAllowed => _hasMasterPassword || _canUnlockWithBiometrics || _canUnlockWithPin;
private int? CurrentVaultTimeout => GetRawVaultTimeoutFrom(VaultTimeoutPickerViewModel.SelectedKey); private int? CurrentVaultTimeout => GetRawVaultTimeoutFrom(VaultTimeoutPickerViewModel.SelectedKey);
private bool IncludeLinksWithSubscriptionInfo => DeviceInfo.Platform != DevicePlatform.iOS; private bool IncludeLinksWithSubscriptionInfo => DeviceInfo.Platform != DevicePlatform.iOS;
@ -247,6 +252,7 @@ namespace Bit.App.Pages
TriggerPropertyChanged(nameof(VaultTimeoutPolicyDescription)); TriggerPropertyChanged(nameof(VaultTimeoutPolicyDescription));
TriggerPropertyChanged(nameof(ShowChangeMasterPassword)); TriggerPropertyChanged(nameof(ShowChangeMasterPassword));
TriggerUpdateCustomVaultTimeoutPicker(); TriggerUpdateCustomVaultTimeoutPicker();
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
ToggleUseThisDeviceToApproveLoginRequestsCommand.NotifyCanExecuteChanged(); ToggleUseThisDeviceToApproveLoginRequestsCommand.NotifyCanExecuteChanged();
ToggleCanUnlockWithBiometricsCommand.NotifyCanExecuteChanged(); ToggleCanUnlockWithBiometricsCommand.NotifyCanExecuteChanged();
ToggleCanUnlockWithPinCommand.NotifyCanExecuteChanged(); ToggleCanUnlockWithPinCommand.NotifyCanExecuteChanged();
@ -299,6 +305,7 @@ namespace Bit.App.Pages
{ {
_customVaultTimeoutTime = TimeSpan.FromMinutes(vaultTimeout); _customVaultTimeoutTime = TimeSpan.FromMinutes(vaultTimeout);
} }
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
} }
private async Task InitVaultTimeoutActionPickerAsync() private async Task InitVaultTimeoutActionPickerAsync()
@ -318,6 +325,7 @@ namespace Bit.App.Pages
} }
VaultTimeoutActionPickerViewModel.Init(options, timeoutAction, IsVaultTimeoutActionLockAllowed ? VaultTimeoutAction.Lock : VaultTimeoutAction.Logout); VaultTimeoutActionPickerViewModel.Init(options, timeoutAction, IsVaultTimeoutActionLockAllowed ? VaultTimeoutAction.Lock : VaultTimeoutAction.Logout);
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
} }
private async Task ToggleUseThisDeviceToApproveLoginRequestsAsync() private async Task ToggleUseThisDeviceToApproveLoginRequestsAsync()
@ -354,6 +362,7 @@ namespace Bit.App.Pages
{ {
if (!_canUnlockWithBiometrics) if (!_canUnlockWithBiometrics)
{ {
MainThread.BeginInvokeOnMainThread(() => TriggerPropertyChanged(nameof(CanUnlockWithBiometrics)));
await UpdateVaultTimeoutActionIfNeededAsync(); await UpdateVaultTimeoutActionIfNeededAsync();
await _biometricsService.SetCanUnlockWithBiometricsAsync(CanUnlockWithBiometrics); await _biometricsService.SetCanUnlockWithBiometricsAsync(CanUnlockWithBiometrics);
return; return;
@ -369,11 +378,12 @@ namespace Bit.App.Pages
} }
await _biometricsService.SetCanUnlockWithBiometricsAsync(CanUnlockWithBiometrics); await _biometricsService.SetCanUnlockWithBiometricsAsync(CanUnlockWithBiometrics);
await InitVaultTimeoutActionPickerAsync();
} }
public async Task ToggleCanUnlockWithPinAsync() public async Task ToggleCanUnlockWithPinAsync()
{ {
if (!CanUnlockWithPin) if (!_canUnlockWithPin)
{ {
await _vaultTimeoutService.ClearAsync(); await _vaultTimeoutService.ClearAsync();
await UpdateVaultTimeoutActionIfNeededAsync(); await UpdateVaultTimeoutActionIfNeededAsync();
@ -397,10 +407,12 @@ namespace Bit.App.Pages
AppResources.No); AppResources.No);
await _userPinService.SetupPinAsync(newPin, requireMasterPasswordOnRestart); await _userPinService.SetupPinAsync(newPin, requireMasterPasswordOnRestart);
await InitVaultTimeoutActionPickerAsync();
} }
private async Task UpdateVaultTimeoutActionIfNeededAsync() private async Task UpdateVaultTimeoutActionIfNeededAsync()
{ {
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
if (IsVaultTimeoutActionLockAllowed) if (IsVaultTimeoutActionLockAllowed)
{ {
return; return;
@ -461,6 +473,16 @@ namespace Bit.App.Pages
TriggerPropertyChanged(nameof(CustomVaultTimeoutTime)); TriggerPropertyChanged(nameof(CustomVaultTimeoutTime));
} }
private void TriggerVaultTimeoutActionLockAllowedPropertyChanged()
{
MainThread.BeginInvokeOnMainThread(() =>
{
TriggerPropertyChanged(nameof(IsVaultTimeoutActionLockAllowed));
TriggerPropertyChanged(nameof(SetUpUnlockMethodLabel));
VaultTimeoutActionPickerViewModel.SelectOptionCommand.NotifyCanExecuteChanged();
});
}
private int? GetRawVaultTimeoutFrom(int vaultTimeoutPickerKey) private int? GetRawVaultTimeoutFrom(int vaultTimeoutPickerKey)
{ {
if (vaultTimeoutPickerKey == NEVER_SESSION_TIMEOUT_VALUE) if (vaultTimeoutPickerKey == NEVER_SESSION_TIMEOUT_VALUE)
@ -495,7 +517,7 @@ namespace Bit.App.Pages
await _vaultTimeoutService.SetVaultTimeoutOptionsAsync(CurrentVaultTimeout, timeoutActionKey); await _vaultTimeoutService.SetVaultTimeoutOptionsAsync(CurrentVaultTimeout, timeoutActionKey);
_messagingService.Send(AppHelpers.VAULT_TIMEOUT_ACTION_CHANGED_MESSAGE_COMMAND); _messagingService.Send(AppHelpers.VAULT_TIMEOUT_ACTION_CHANGED_MESSAGE_COMMAND);
TriggerVaultTimeoutActionLockAllowedPropertyChanged();
return true; return true;
} }

View file

@ -1,10 +1,14 @@
using Bit.App.Effects; using System;
using System.Linq;
using System.Threading.Tasks;
using Bit.App.Effects;
using Bit.App.Models; using Bit.App.Models;
using Bit.Core.Resources.Localization; using Bit.Core.Resources.Localization;
using Bit.App.Utilities; using Bit.App.Utilities;
using Bit.Core; using Bit.Core;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Models.Data; using Bit.Core.Models.Data;
using Bit.Core.Models.Domain;
using Bit.Core.Utilities; using Bit.Core.Utilities;
namespace Bit.App.Pages namespace Bit.App.Pages
@ -97,11 +101,38 @@ namespace Bit.App.Pages
_messagingService.Send("convertAccountToKeyConnector"); _messagingService.Send("convertAccountToKeyConnector");
} }
var forcePasswordResetReason = await _stateService.GetForcePasswordResetReasonAsync(); await ForcePasswordResetIfNeededAsync();
}
if (forcePasswordResetReason.HasValue) private async Task ForcePasswordResetIfNeededAsync()
{
var forcePasswordResetReason = await _stateService.GetForcePasswordResetReasonAsync();
switch (forcePasswordResetReason)
{ {
_messagingService.Send(Constants.ForceUpdatePassword); case ForcePasswordResetReason.TdeUserWithoutPasswordHasPasswordResetPermission:
// TDE users should only have one org
var userOrgs = await _stateService.GetOrganizationsAsync();
if (userOrgs != null && userOrgs.Any())
{
_messagingService.Send(Constants.ForceSetPassword, userOrgs.First().Value.Identifier);
return;
}
_logger.Value.Error("TDE user needs to set password but has no organizations.");
var rememberedOrg = _stateService.GetRememberedOrgIdentifierAsync();
if (rememberedOrg == null)
{
_logger.Value.Error("TDE user needs to set password but has no organizations or remembered org identifier.");
return;
}
_messagingService.Send(Constants.ForceSetPassword, rememberedOrg);
return;
case ForcePasswordResetReason.AdminForcePasswordReset:
case ForcePasswordResetReason.WeakMasterPasswordOnLogin:
_messagingService.Send(Constants.ForceUpdatePassword);
break;
default:
return;
} }
} }

View file

@ -6227,6 +6227,15 @@ namespace Bit.Core.Resources.Localization {
} }
} }
/// <summary>
/// Looks up a localized string similar to Set up an unlock option to change your vault timeout action..
/// </summary>
public static string SetUpAnUnlockOptionToChangeYourVaultTimeoutAction {
get {
return ResourceManager.GetString("SetUpAnUnlockOptionToChangeYourVaultTimeoutAction", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Set up TOTP. /// Looks up a localized string similar to Set up TOTP.
/// </summary> /// </summary>
@ -7766,6 +7775,24 @@ namespace Bit.Core.Resources.Localization {
} }
} }
/// <summary>
/// Looks up a localized string similar to Your organization permissions were updated, requiring you to set a master password..
/// </summary>
public static string YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword {
get {
return ResourceManager.GetString("YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Your organization requires you to set a master password..
/// </summary>
public static string YourOrganizationRequiresYouToSetAMasterPassword {
get {
return ResourceManager.GetString("YourOrganizationRequiresYouToSetAMasterPassword", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Your request has been sent to your admin.. /// Looks up a localized string similar to Your request has been sent to your admin..
/// </summary> /// </summary>

View file

@ -2861,4 +2861,13 @@ Wil u na die rekening omskakel?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2751,109 +2751,109 @@
<value>جارٍ تسجيل الدخول</value> <value>جارٍ تسجيل الدخول</value>
</data> </data>
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>Vault</value> <value>الخزنة</value>
</data> </data>
<data name="Appearance" xml:space="preserve"> <data name="Appearance" xml:space="preserve">
<value>Appearance</value> <value>المظهر</value>
</data> </data>
<data name="AccountSecurity" xml:space="preserve"> <data name="AccountSecurity" xml:space="preserve">
<value>Account security</value> <value>أمان الحساب</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>مركز المساعدة Bitwarden</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <value>اتصل بالدعم Bitwarden</value>
</data> </data>
<data name="CopyAppInformation" xml:space="preserve"> <data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value> <value>نسخ معلومات التطبيق</value>
</data> </data>
<data name="SyncNow" xml:space="preserve"> <data name="SyncNow" xml:space="preserve">
<value>Sync now</value> <value>المزامنة الآن</value>
</data> </data>
<data name="UnlockOptions" xml:space="preserve"> <data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value> <value>خيارات فتح القفل</value>
</data> </data>
<data name="SessionTimeout" xml:space="preserve"> <data name="SessionTimeout" xml:space="preserve">
<value>Session timeout</value> <value>مهلة الجلسة</value>
</data> </data>
<data name="SessionTimeoutAction" xml:space="preserve"> <data name="SessionTimeoutAction" xml:space="preserve">
<value>Session timeout action</value> <value>إجراء مهلة الجلسة</value>
</data> </data>
<data name="AccountFingerprintPhrase" xml:space="preserve"> <data name="AccountFingerprintPhrase" xml:space="preserve">
<value>Account fingerprint phrase</value> <value>عبارة بصمة الحساب</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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value> <value>ساعة واحدة ودقيقة واحدة</value>
</data> </data>
<data name="OneHourAndXMinute" xml:space="preserve"> <data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value> <value>ساعة واحدة و {0} دقيقة</value>
</data> </data>
<data name="XHoursAndOneMinute" xml:space="preserve"> <data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value> <value>{0} ساعات ودقيقة واحدة</value>
</data> </data>
<data name="XHoursAndYMinutes" xml:space="preserve"> <data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value> <value>{0} ساعات و {1} دقيقة</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} ساعات</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>يتم استخدام إطار التعبئة التلقائية لأندرويد للمساعدة في ملء معلومات تسجيل الدخول في تطبيقات أخرى على جهازك.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>استخدم التعبئة التلقائية المضمنة إذا كانت لوحة المفاتيح المحددة تدعمها. وإلا استخدم التراكب الافتراضي.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Additional options</value> <value>خيارات إضافية</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>متابعة إلى تطبيق الويب؟</value>
</data> </data>
<data name="ContinueToX" xml:space="preserve"> <data name="ContinueToX" xml:space="preserve">
<value>Continue to {0}?</value> <value>الإستمرار إلى {0}؟</value>
<comment>The parameter is an URL, like bitwarden.com.</comment> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>هل تريد المتابعة إلى مركز المساعدة؟</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <value>مواصلة الاتصال بالدعم؟</value>
</data> </data>
<data name="ContinueToAppStore" xml:space="preserve"> <data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value> <value>هل تريد المتابعة إلى متجر التطبيقات؟</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value> <value>اجعل حسابك أكثر أمنا من خلال إعداد تسجيل الدخول بخطوتين في تطبيق Bitwarden على شبكة الإنترنت.</value>
</data> </data>
<data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve"> <data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve">
<value>You can change your master password on the Bitwarden web app.</value> <value>يمكنك تغيير كلمة المرور الرئيسية الخاصة بك على تطبيق ويب Bitwarden.</value>
</data> </data>
<data name="YouCanImportDataToYourVaultOnX" xml:space="preserve"> <data name="YouCanImportDataToYourVaultOnX" xml:space="preserve">
<value>You can import data to your vault on {0}.</value> <value>يمكنك استيراد البيانات إلى خزانتك على {0}.</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value> <value>تعرف على المزيد حول كيفية استخدام Bitwarden في مركز المساعدة.</value>
</data> </data>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <value>لا يمكن العثور على ما تبحث عنه؟ قم بالتواصل مع دعم Bitwarden على bitwarden.com.</value>
</data> </data>
<data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve"> <data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve">
<value>Explore more features of your Bitwarden account on the web app.</value> <value>استكشف المزيد من الميزات لحساب Bitwarden الخاص بك على تطبيق الويب.</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value> <value>يتيح لك Bitwarden مشاركة عناصر خزنتك مع الآخرين باستخدام حساب المؤسسة. تعرف على المزيد على موقع bitwarden.com على شبكة الإنترنت.</value>
</data> </data>
<data name="RateAppDescriptionLong" xml:space="preserve"> <data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value> <value>ساعد الآخرين في معرفة ما إذا كان Bitwarden مناسبا لهم. قم بزيارة متجر التطبيقات وترك التقييم الآن.</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>Choose the dark theme to use when your devices dark mode is in use</value> <value>اختر السمة المظلمة لاستخدامها عند استخدام الوضع المظلم لجهازك</value>
</data> </data>
<data name="CreatedXY" xml:space="preserve"> <data name="CreatedXY" xml:space="preserve">
<value>Created {0}, {1}</value> <value>أنشئ {0}، {1}</value>
<comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment> <comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment>
</data> </data>
<data name="TooManyAttempts" xml:space="preserve"> <data name="TooManyAttempts" xml:space="preserve">
@ -2862,4 +2862,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>تم تسجيل الخروج من الحساب.</value> <value>تم تسجيل الخروج من الحساب.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2860,4 +2860,13 @@ Bu hesaba keçmək istəyirsiniz?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Hesabdan çıxış edildi.</value> <value>Hesabdan çıxış edildi.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Təşkilatınızın icazələri güncəlləndi və bir ana parol ayarlamağınızı tələb edir.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Təşkilatınız bir ana parol ayarlamağı tələb edir.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Anbar vaxt bitməsi əməliyyatınızı dəyişdirmək üçün bir kilid açma seçimi qurun.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ select Add TOTP to store the key safely</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Акаунтът е отписан.</value> <value>Акаунтът е отписан.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Правата Ви в организацията бяха променени, необходимо е да зададете главна парола.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Организацията Ви изисква да зададете главна парола.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Задайте начин за отключване, за да може да промените действието при изтичане на времето за достъп до трезора.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2860,4 +2860,13 @@ Skeniranje će biti izvršeno automatski.</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Voleu canviar a aquest compte?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>S'ha tancat la sessió del compte.</value> <value>S'ha tancat la sessió del compte.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Els permisos de la vostra organització s'han actualitzat, cal que establiu una contrasenya mestra.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>La vostra organització requereix que establiu una contrasenya mestra.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Configura una opció de desbloqueig per canviar l'acció de temps d'espera de la caixa forta.</value>
</data>
</root> </root>

View file

@ -375,7 +375,7 @@
<comment>Validation message for when a form field is left blank and is required to be entered.</comment> <comment>Validation message for when a form field is left blank and is required to be entered.</comment>
</data> </data>
<data name="ValueHasBeenCopied" xml:space="preserve"> <data name="ValueHasBeenCopied" xml:space="preserve">
<value>{0} bylo zkopírováno.</value> <value>{0}: zkopírováno</value>
<comment>Confirmation message after successfully copying a value to the clipboard.</comment> <comment>Confirmation message after successfully copying a value to the clipboard.</comment>
</data> </data>
<data name="VerifyFingerprint" xml:space="preserve"> <data name="VerifyFingerprint" xml:space="preserve">
@ -499,7 +499,7 @@
<value>Pro spuštění rozšíření klepněte na ikonu Bitwardenu v menu.</value> <value>Pro spuštění rozšíření klepněte na ikonu Bitwardenu v menu.</value>
</data> </data>
<data name="ExtensionTurnOn" xml:space="preserve"> <data name="ExtensionTurnOn" xml:space="preserve">
<value>Pro zapnutí Bitwardenu v prohlížeči Safari a dalších aplikacích klepněte na ikonu Další“ v dolní části menu.</value> <value>Pro zapnutí Bitwardenu v prohlížeči Safari a dalších aplikacích klepněte na ikonu "Další“ v dolní části menu.</value>
</data> </data>
<data name="Favorite" xml:space="preserve"> <data name="Favorite" xml:space="preserve">
<value>Oblíbené</value> <value>Oblíbené</value>
@ -958,10 +958,10 @@ Načtení proběhne automaticky.</value>
<value>Vlastní prostředí</value> <value>Vlastní prostředí</value>
</data> </data>
<data name="CustomEnvironmentFooter" xml:space="preserve"> <data name="CustomEnvironmentFooter" xml:space="preserve">
<value>Pro pokročilé uživatele. Můžete zadat základní URL adresu každé služby zvlášť.</value> <value>Pro pokročilé uživatele. Můžete zadat základní URL každé služby zvlášť.</value>
</data> </data>
<data name="EnvironmentSaved" xml:space="preserve"> <data name="EnvironmentSaved" xml:space="preserve">
<value>URL adresy vlastního prostředí byly uloženy.</value> <value>URL vlastního prostředí byly uloženy.</value>
</data> </data>
<data name="FormattedIncorrectly" xml:space="preserve"> <data name="FormattedIncorrectly" xml:space="preserve">
<value>{0} nemá správný formát.</value> <value>{0} nemá správný formát.</value>
@ -975,7 +975,7 @@ Načtení proběhne automaticky.</value>
<value>Vlastní hostované prostředí</value> <value>Vlastní hostované prostředí</value>
</data> </data>
<data name="SelfHostedEnvironmentFooter" xml:space="preserve"> <data name="SelfHostedEnvironmentFooter" xml:space="preserve">
<value>Zadejte základní URL adresu vlastní hostované aplikace Bitwarden.</value> <value>Zadejte základní URL vlastní hostované aplikace Bitwarden.</value>
</data> </data>
<data name="ServerUrl" xml:space="preserve"> <data name="ServerUrl" xml:space="preserve">
<value>URL serveru</value> <value>URL serveru</value>
@ -1023,13 +1023,13 @@ Načtení proběhne automaticky.</value>
<value>Adresa 3</value> <value>Adresa 3</value>
</data> </data>
<data name="April" xml:space="preserve"> <data name="April" xml:space="preserve">
<value>Duben</value> <value>duben</value>
</data> </data>
<data name="August" xml:space="preserve"> <data name="August" xml:space="preserve">
<value>Srpen</value> <value>srpen</value>
</data> </data>
<data name="Brand" xml:space="preserve"> <data name="Brand" xml:space="preserve">
<value>Značka</value> <value>Vydavatel</value>
</data> </data>
<data name="CardholderName" xml:space="preserve"> <data name="CardholderName" xml:space="preserve">
<value>Jméno držitele karty</value> <value>Jméno držitele karty</value>
@ -1044,10 +1044,10 @@ Načtení proběhne automaticky.</value>
<value>Stát</value> <value>Stát</value>
</data> </data>
<data name="December" xml:space="preserve"> <data name="December" xml:space="preserve">
<value>Prosinec</value> <value>prosinec</value>
</data> </data>
<data name="Dr" xml:space="preserve"> <data name="Dr" xml:space="preserve">
<value>MUDr.</value> <value>Dr.</value>
</data> </data>
<data name="ExpirationMonth" xml:space="preserve"> <data name="ExpirationMonth" xml:space="preserve">
<value>Měsíc expirace</value> <value>Měsíc expirace</value>
@ -1056,19 +1056,19 @@ Načtení proběhne automaticky.</value>
<value>Rok expirace</value> <value>Rok expirace</value>
</data> </data>
<data name="February" xml:space="preserve"> <data name="February" xml:space="preserve">
<value>Únor</value> <value>únor</value>
</data> </data>
<data name="FirstName" xml:space="preserve"> <data name="FirstName" xml:space="preserve">
<value>Křestní jméno</value> <value>Křestní jméno</value>
</data> </data>
<data name="January" xml:space="preserve"> <data name="January" xml:space="preserve">
<value>Leden</value> <value>leden</value>
</data> </data>
<data name="July" xml:space="preserve"> <data name="July" xml:space="preserve">
<value>Červenec</value> <value>červenec</value>
</data> </data>
<data name="June" xml:space="preserve"> <data name="June" xml:space="preserve">
<value>Červen</value> <value>červen</value>
</data> </data>
<data name="LastName" xml:space="preserve"> <data name="LastName" xml:space="preserve">
<value>Příjmení</value> <value>Příjmení</value>
@ -1080,10 +1080,10 @@ Načtení proběhne automaticky.</value>
<value>Číslo dokladu totožnosti</value> <value>Číslo dokladu totožnosti</value>
</data> </data>
<data name="March" xml:space="preserve"> <data name="March" xml:space="preserve">
<value>Březen</value> <value>březen</value>
</data> </data>
<data name="May" xml:space="preserve"> <data name="May" xml:space="preserve">
<value>Květen</value> <value>květen</value>
</data> </data>
<data name="MiddleName" xml:space="preserve"> <data name="MiddleName" xml:space="preserve">
<value>Prostřední jméno</value> <value>Prostřední jméno</value>
@ -1101,10 +1101,10 @@ Načtení proběhne automaticky.</value>
<value>Neutrální</value> <value>Neutrální</value>
</data> </data>
<data name="November" xml:space="preserve"> <data name="November" xml:space="preserve">
<value>Listopad</value> <value>listopad</value>
</data> </data>
<data name="October" xml:space="preserve"> <data name="October" xml:space="preserve">
<value>Říjen</value> <value>říjen</value>
</data> </data>
<data name="PassportNumber" xml:space="preserve"> <data name="PassportNumber" xml:space="preserve">
<value>Číslo cestovního pasu</value> <value>Číslo cestovního pasu</value>
@ -1113,10 +1113,10 @@ Načtení proběhne automaticky.</value>
<value>Telefon</value> <value>Telefon</value>
</data> </data>
<data name="September" xml:space="preserve"> <data name="September" xml:space="preserve">
<value>Září</value> <value>září</value>
</data> </data>
<data name="SSN" xml:space="preserve"> <data name="SSN" xml:space="preserve">
<value>Číslo sociálního pojištění</value> <value>Rodné číslo</value>
</data> </data>
<data name="StateProvince" xml:space="preserve"> <data name="StateProvince" xml:space="preserve">
<value>Kraj / Provincie</value> <value>Kraj / Provincie</value>
@ -1298,22 +1298,22 @@ Načtení proběhne automaticky.</value>
<value>Přistupujte k Vašemu trezoru přímo z Vaší klávesnice pro rychlejší automatické vyplnění hesel.</value> <value>Přistupujte k Vašemu trezoru přímo z Vaší klávesnice pro rychlejší automatické vyplnění hesel.</value>
</data> </data>
<data name="AutofillTurnOn" xml:space="preserve"> <data name="AutofillTurnOn" xml:space="preserve">
<value>Pokyny pro zapnutí automatického vyplňování hesel na vašem zařízení:</value> <value>Pokyny pro zapnutí automatického vyplňování hesel na Vašem zařízení:</value>
</data> </data>
<data name="AutofillTurnOn1" xml:space="preserve"> <data name="AutofillTurnOn1" xml:space="preserve">
<value>1. Přejděte do aplikace "Nastavení" v iOS</value> <value>1. Přejděte do aplikace "Nastavení" v iOS</value>
</data> </data>
<data name="AutofillTurnOn2" xml:space="preserve"> <data name="AutofillTurnOn2" xml:space="preserve">
<value>2. Klepněte na „Hesla“ > „Volby hesla“</value> <value>2. Klepněte na "Hesla" > "Volby hesla"</value>
</data> </data>
<data name="AutofillTurnOn3" xml:space="preserve"> <data name="AutofillTurnOn3" xml:space="preserve">
<value>3. Povolte „Automatické vyplnění hesel“</value> <value>3. Zapněte přepínač u položky "Automatické vyplnění hesel"</value>
</data> </data>
<data name="AutofillTurnOn4" xml:space="preserve"> <data name="AutofillTurnOn4" xml:space="preserve">
<value>4. Najděte sekci „Povolit vyplňování z“</value> <value>4. Najděte sekci "Povolit vyplňování z:"</value>
</data> </data>
<data name="AutofillTurnOn5" xml:space="preserve"> <data name="AutofillTurnOn5" xml:space="preserve">
<value>5. Zvolte „Bitwarden“</value> <value>5. Zvolte "Bitwarden"</value>
</data> </data>
<data name="PasswordAutofill" xml:space="preserve"> <data name="PasswordAutofill" xml:space="preserve">
<value>Automatické vyplňování hesel</value> <value>Automatické vyplňování hesel</value>
@ -1562,7 +1562,7 @@ Načtení proběhne automaticky.</value>
<value>Chcete po restartování aplikace vyžadovat hlavní heslo pro odemknutí trezoru?</value> <value>Chcete po restartování aplikace vyžadovat hlavní heslo pro odemknutí trezoru?</value>
</data> </data>
<data name="Black" xml:space="preserve"> <data name="Black" xml:space="preserve">
<value>Černá</value> <value>Černý</value>
<comment>The color black</comment> <comment>The color black</comment>
</data> </data>
<data name="Nord" xml:space="preserve"> <data name="Nord" xml:space="preserve">
@ -1570,7 +1570,7 @@ Načtení proběhne automaticky.</value>
<comment>'Nord' is the name of a specific color scheme. It should not be translated.</comment> <comment>'Nord' is the name of a specific color scheme. It should not be translated.</comment>
</data> </data>
<data name="SolarizedDark" xml:space="preserve"> <data name="SolarizedDark" xml:space="preserve">
<value>Tmavý Solarized</value> <value>Tmavý (solární)</value>
<comment>'Solarized Dark' is the name of a specific color scheme. It should not be translated.</comment> <comment>'Solarized Dark' is the name of a specific color scheme. It should not be translated.</comment>
</data> </data>
<data name="AutofillBlockedUris" xml:space="preserve"> <data name="AutofillBlockedUris" xml:space="preserve">
@ -1947,7 +1947,7 @@ Načtení proběhne automaticky.</value>
<value>Nové heslo</value> <value>Nové heslo</value>
</data> </data>
<data name="PasswordInfo" xml:space="preserve"> <data name="PasswordInfo" xml:space="preserve">
<value>Volitelně vyžadovat heslo pro přístup k tomuto Send.</value> <value>Volitelně bude vyžadovat heslo pro přístup k tomuto Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="RemovePassword" xml:space="preserve"> <data name="RemovePassword" xml:space="preserve">
@ -1967,7 +1967,7 @@ Načtení proběhne automaticky.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="DisableSend" xml:space="preserve"> <data name="DisableSend" xml:space="preserve">
<value>Deaktivuje tento Send, díky čemuž k němu nebude moci nikdo přistoupit</value> <value>Deaktivovat tento Send (nikdo k němu nebude mít přístup)</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="NoSends" xml:space="preserve"> <data name="NoSends" xml:space="preserve">
@ -2299,13 +2299,13 @@ Načtení proběhne automaticky.</value>
<value>Nastavení zámku na "Nikdy" ponechá Váš trezor k dispozici komukoli s přístupem k Vašemu zařízení. Používáte-li tuto možnost, měli byste zajistit, aby Vaše zařízení bylo náležitě chráněno.</value> <value>Nastavení zámku na "Nikdy" ponechá Váš trezor k dispozici komukoli s přístupem k Vašemu zařízení. Používáte-li tuto možnost, měli byste zajistit, aby Vaše zařízení bylo náležitě chráněno.</value>
</data> </data>
<data name="EnvironmentPageUrlsError" xml:space="preserve"> <data name="EnvironmentPageUrlsError" xml:space="preserve">
<value>Jedna nebo více zadaných adres URL jsou neplatné. Zkontrolujte je a opakujte akci znovu.</value> <value>Jedna nebo více zadaných URL jsou neplatné. Zkontrolujte je a opakujte akci znovu.</value>
</data> </data>
<data name="GenericErrorMessage" xml:space="preserve"> <data name="GenericErrorMessage" xml:space="preserve">
<value>Nepodařilo se nám zpracovat Váš požadavek. Zkuste to znovu nebo nás kontaktujte.</value> <value>Nepodařilo se nám zpracovat Váš požadavek. Zkuste to znovu nebo nás kontaktujte.</value>
</data> </data>
<data name="AllowScreenCapture" xml:space="preserve"> <data name="AllowScreenCapture" xml:space="preserve">
<value>Povolit záznam obrazovky</value> <value>Zapnout záznam obrazovky</value>
</data> </data>
<data name="AreYouSureYouWantToEnableScreenCapture" xml:space="preserve"> <data name="AreYouSureYouWantToEnableScreenCapture" xml:space="preserve">
<value>Opravdu chcete zapnout záznam obrazovky?</value> <value>Opravdu chcete zapnout záznam obrazovky?</value>
@ -2544,7 +2544,7 @@ Chcete se přepnout na tento účet?</value>
<value>Jazyk byl změněn na {0}. Pro zobrazení změn restartujte aplikaci.</value> <value>Jazyk byl změněn na {0}. Pro zobrazení změn restartujte aplikaci.</value>
</data> </data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve"> <data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Změna jazyku vyžaduje restart aplikace</value> <value>Změna jazyka vyžaduje restart aplikace.</value>
</data> </data>
<data name="DefaultSystem" xml:space="preserve"> <data name="DefaultSystem" xml:space="preserve">
<value>Výchozí (Systémový)</value> <value>Výchozí (Systémový)</value>
@ -2860,4 +2860,13 @@ Chcete se přepnout na tento účet?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Účet byl odhlášen.</value> <value>Účet byl odhlášen.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Oprávnění Vaší organizace byla aktualizována. To vyžaduje nastavení hlavního hesla.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Vaše organizace vyžaduje nastavení hlavního hesla.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Nastavte volbu odemknutí, abyste změnili časový limit Vašeho trezoru.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Vil du skifte til denne konto?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Konto logget ud.</value> <value>Konto logget ud.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Organisationstilladelserne er blevet opdateret, og der kræves nu oprettelse af en hovedadgangskode.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Organisationen kræver, at der oprettes en hovedadgangskode.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Opsæt en oplåsningsmetode for at ændre Bokstimeouthandlingen.</value>
</data>
</root> </root>

View file

@ -946,7 +946,7 @@ Das Scannen erfolgt automatisch.</value>
<value>Du kannst diese Funktion nicht nutzen, solange du deinen Verschlüsselungsschlüssel nicht aktualisiert hast.</value> <value>Du kannst diese Funktion nicht nutzen, solange du deinen Verschlüsselungsschlüssel nicht aktualisiert hast.</value>
</data> </data>
<data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve"> <data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve">
<value>Encryption key migration required. Please login through the web vault to update your encryption key.</value> <value>Verschlüsselungscode-Migration erforderlich. Bitte melde dich über den Web-Tresor an, um deinen Verschlüsselungscode zu aktualisieren.</value>
</data> </data>
<data name="LearnMore" xml:space="preserve"> <data name="LearnMore" xml:space="preserve">
<value>Mehr erfahren</value> <value>Mehr erfahren</value>
@ -2860,4 +2860,13 @@ Möchtest du zu diesem Konto wechseln?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Konto abgemeldet.</value> <value>Konto abgemeldet.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Deine Organisationsberechtigungen wurden aktualisiert und verlangen, dass du ein Master-Passwort festlegen musst.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Deine Organisation verlangt, dass du ein Master-Passwort festlegen musst.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Richte eine Entsperroption ein, um deine Aktion bei Tresor-Timeout zu ändern.</value>
</data>
</root> </root>

View file

@ -247,8 +247,7 @@
<comment>Description message for the alert when internet connection is required to continue.</comment> <comment>Description message for the alert when internet connection is required to continue.</comment>
</data> </data>
<data name="InternetConnectionRequiredTitle" xml:space="preserve"> <data name="InternetConnectionRequiredTitle" xml:space="preserve">
<value>28/5000 <value>Απαιτείται σύνδεση στο διαδίκτυο</value>
Απαιτείται σύνδεση στο διαδίκτυο</value>
<comment>Title for the alert when internet connection is required to continue.</comment> <comment>Title for the alert when internet connection is required to continue.</comment>
</data> </data>
<data name="InvalidMasterPassword" xml:space="preserve"> <data name="InvalidMasterPassword" xml:space="preserve">
@ -946,7 +945,7 @@
<value>Δεν μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα μέχρι να ενημερώσετε το κλειδί κρυπτογράφησης.</value> <value>Δεν μπορείτε να χρησιμοποιήσετε αυτήν τη δυνατότητα μέχρι να ενημερώσετε το κλειδί κρυπτογράφησης.</value>
</data> </data>
<data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve"> <data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve">
<value>Encryption key migration required. Please login through the web vault to update your encryption key.</value> <value>Απαιτείται μεταφορά του κλειδιού κρυπτογράφησης. Παρακαλούμε συνδεθείτε μέσω του web vault για να ενημερώσετε το κλειδί κρυπτογράφησης.</value>
</data> </data>
<data name="LearnMore" xml:space="preserve"> <data name="LearnMore" xml:space="preserve">
<value>Μάθετε Περισσότερα</value> <value>Μάθετε Περισσότερα</value>
@ -2623,28 +2622,28 @@
<value>Τρέχων κύριος κωδικός</value> <value>Τρέχων κύριος κωδικός</value>
</data> </data>
<data name="LoggedIn" xml:space="preserve"> <data name="LoggedIn" xml:space="preserve">
<value>Logged in!</value> <value>Έχετε συνδεθεί!</value>
</data> </data>
<data name="ApproveWithMyOtherDevice" xml:space="preserve"> <data name="ApproveWithMyOtherDevice" xml:space="preserve">
<value>Approve with my other device</value> <value>Έγκριση μέσω άλλης συσκευής μου</value>
</data> </data>
<data name="RequestAdminApproval" xml:space="preserve"> <data name="RequestAdminApproval" xml:space="preserve">
<value>Request admin approval</value> <value>Αίτηση έγκρισης από διαχειριστή</value>
</data> </data>
<data name="ApproveWithMasterPassword" xml:space="preserve"> <data name="ApproveWithMasterPassword" xml:space="preserve">
<value>Approve with master password</value> <value>Έγκριση με τον κύριο κωδικό πρόσβασης</value>
</data> </data>
<data name="TurnOffUsingPublicDevice" xml:space="preserve"> <data name="TurnOffUsingPublicDevice" xml:space="preserve">
<value>Turn off using a public device</value> <value>Απενεργοποίηση με χρήση δημόσιας συσκευής</value>
</data> </data>
<data name="RememberThisDevice" xml:space="preserve"> <data name="RememberThisDevice" xml:space="preserve">
<value>Remember this device</value> <value>Απομνημόνευση αυτής της συσκευής</value>
</data> </data>
<data name="Passkey" xml:space="preserve"> <data name="Passkey" xml:space="preserve">
<value>Συνθηματικό</value> <value>Κλειδί πρόσβασης</value>
</data> </data>
<data name="Passkeys" xml:space="preserve"> <data name="Passkeys" xml:space="preserve">
<value>Συνθηματικά</value> <value>Κλειδιά πρόσβασης</value>
</data> </data>
<data name="Application" xml:space="preserve"> <data name="Application" xml:space="preserve">
<value>Εφαρμογή</value> <value>Εφαρμογή</value>
@ -2659,13 +2658,13 @@
<value>Το κλειδί πρόσβασης δεν θα αντιγραφεί στο κλωνοποιημένο στοιχείο. Θέλετε να συνεχίσετε την κλωνοποίηση αυτού του στοιχείου;</value> <value>Το κλειδί πρόσβασης δεν θα αντιγραφεί στο κλωνοποιημένο στοιχείο. Θέλετε να συνεχίσετε την κλωνοποίηση αυτού του στοιχείου;</value>
</data> </data>
<data name="CopyApplication" xml:space="preserve"> <data name="CopyApplication" xml:space="preserve">
<value>Copy application</value> <value>Αντιγραφή εφαρμογής</value>
</data> </data>
<data name="AvailableForTwoStepLogin" xml:space="preserve"> <data name="AvailableForTwoStepLogin" xml:space="preserve">
<value>Διαθέσιμο για σύνδεση με δύο βήματα</value> <value>Διαθέσιμο για σύνδεση με δύο βήματα</value>
</data> </data>
<data name="MasterPasswordRePromptHelp" xml:space="preserve"> <data name="MasterPasswordRePromptHelp" xml:space="preserve">
<value>Master password re-prompt help</value> <value>Βοήθεια προτροπής κύριου κωδικού πρόσβασης</value>
</data> </data>
<data name="UnlockingMayFailDueToInsufficientMemoryDecreaseYourKDFMemorySettingsToResolve" xml:space="preserve"> <data name="UnlockingMayFailDueToInsufficientMemoryDecreaseYourKDFMemorySettingsToResolve" xml:space="preserve">
<value>Το ξεκλείδωμα μπορεί να αποτύχει λόγω ανεπαρκούς μνήμης. Μειώστε τις ρυθμίσεις μνήμης KDF ή ρυθμίστε το βιομετρικό ξεκλείδωμα για επίλυση.</value> <value>Το ξεκλείδωμα μπορεί να αποτύχει λόγω ανεπαρκούς μνήμης. Μειώστε τις ρυθμίσεις μνήμης KDF ή ρυθμίστε το βιομετρικό ξεκλείδωμα για επίλυση.</value>
@ -2677,188 +2676,197 @@
<value>Μη έγκυρο API token</value> <value>Μη έγκυρο API token</value>
</data> </data>
<data name="AdminApprovalRequested" xml:space="preserve"> <data name="AdminApprovalRequested" xml:space="preserve">
<value>Admin approval requested</value> <value>Ζητήθηκε έγκριση διαχειριστή</value>
</data> </data>
<data name="YourRequestHasBeenSentToYourAdmin" xml:space="preserve"> <data name="YourRequestHasBeenSentToYourAdmin" xml:space="preserve">
<value>Your request has been sent to your admin.</value> <value>Το αίτημά σας έχει σταλεί στον διαχειριστή σας.</value>
</data> </data>
<data name="YouWillBeNotifiedOnceApproved" xml:space="preserve"> <data name="YouWillBeNotifiedOnceApproved" xml:space="preserve">
<value>You will be notified once approved. </value> <value>Θα ειδοποιηθείτε μόλις εγκριθεί. </value>
</data> </data>
<data name="TroubleLoggingIn" xml:space="preserve"> <data name="TroubleLoggingIn" xml:space="preserve">
<value>Trouble logging in?</value> <value>Δεν μπορείτε να συνδεθείτε;</value>
</data> </data>
<data name="LoggingInAsX" xml:space="preserve"> <data name="LoggingInAsX" xml:space="preserve">
<value>Logging in as {0}</value> <value>Σύνδεση ως {0}</value>
</data> </data>
<data name="VaultTimeoutActionChangedToLogOut" xml:space="preserve"> <data name="VaultTimeoutActionChangedToLogOut" xml:space="preserve">
<value>Vault timeout action changed to log out</value> <value>Η ενέργεια στη λήξη χρόνου του vault άλλαξε σε αποσύνδεση</value>
</data> </data>
<data name="BlockAutoFill" xml:space="preserve"> <data name="BlockAutoFill" xml:space="preserve">
<value>Block auto-fill</value> <value>Αποκλείστε την αυτόματη συμπλήρωση</value>
</data> </data>
<data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve"> <data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve">
<value>Auto-fill will not be offered for these URIs.</value> <value>Η αυτόματη συμπλήρωση δε θα προσφέρεται για αυτά τα URI.</value>
</data> </data>
<data name="NewBlockedURI" xml:space="preserve"> <data name="NewBlockedURI" xml:space="preserve">
<value>New blocked URI</value> <value>Νέο αποκλεισμένο URI</value>
</data> </data>
<data name="URISaved" xml:space="preserve"> <data name="URISaved" xml:space="preserve">
<value>URI saved</value> <value>URI αποθηκεύτηκε</value>
</data> </data>
<data name="InvalidFormatUseHttpsHttpOrAndroidApp" xml:space="preserve"> <data name="InvalidFormatUseHttpsHttpOrAndroidApp" xml:space="preserve">
<value>Invalid format. Use https://, http://, or androidapp://</value> <value>Μη έγκυρη μορφή. Χρησιμοποιήστε https://, http://, ή androidapp://</value>
<comment>https://, http://, androidapp:// should not be translated</comment> <comment>https://, http://, androidapp:// should not be translated</comment>
</data> </data>
<data name="EditURI" xml:space="preserve"> <data name="EditURI" xml:space="preserve">
<value>Edit URI</value> <value>Επεξεργασία του URI</value>
</data> </data>
<data name="EnterURI" xml:space="preserve"> <data name="EnterURI" xml:space="preserve">
<value>Enter URI</value> <value>Καταχωρήστε URI</value>
</data> </data>
<data name="FormatXSeparateMultipleURIsWithAComma" xml:space="preserve"> <data name="FormatXSeparateMultipleURIsWithAComma" xml:space="preserve">
<value>Format: {0}. Separate multiple URIs with a comma.</value> <value>Μορφή: {0}. Διαχωρίστε τα πολλαπλά URI με κόμμα.</value>
</data> </data>
<data name="FormatX" xml:space="preserve"> <data name="FormatX" xml:space="preserve">
<value>Format: {0}</value> <value>Μορφή: {0}</value>
</data> </data>
<data name="InvalidURI" xml:space="preserve"> <data name="InvalidURI" xml:space="preserve">
<value>Invalid URI</value> <value>Μη έγκυρο URI</value>
</data> </data>
<data name="URIRemoved" xml:space="preserve"> <data name="URIRemoved" xml:space="preserve">
<value>URI removed</value> <value>Το URI αφαιρέθηκε</value>
</data> </data>
<data name="ThereAreNoBlockedURIs" xml:space="preserve"> <data name="ThereAreNoBlockedURIs" xml:space="preserve">
<value>There are no blocked URIs</value> <value>Δεν υπάρχουν αποκλεισμένα URI</value>
</data> </data>
<data name="TheURIXIsAlreadyBlocked" xml:space="preserve"> <data name="TheURIXIsAlreadyBlocked" xml:space="preserve">
<value>The URI {0} is already blocked</value> <value>Το URI {0} είναι ήδη αποκλεισμένο</value>
</data> </data>
<data name="CannotEditMultipleURIsAtOnce" xml:space="preserve"> <data name="CannotEditMultipleURIsAtOnce" xml:space="preserve">
<value>Cannot edit multiple URIs at once</value> <value>Αδυναμία επεξεργασίας πολλαπλών URI ταυτόχρονα</value>
</data> </data>
<data name="LoginApproved" xml:space="preserve"> <data name="LoginApproved" xml:space="preserve">
<value>Login approved</value> <value>Η σύνδεση εγκρίθηκε</value>
</data> </data>
<data name="LogInWithDeviceMustBeSetUpInTheSettingsOfTheBitwardenAppNeedAnotherOption" xml:space="preserve"> <data name="LogInWithDeviceMustBeSetUpInTheSettingsOfTheBitwardenAppNeedAnotherOption" xml:space="preserve">
<value>Log in with device must be set up in the settings of the Bitwarden app. Need another option?</value> <value>Η σύνδεση με χρήση συσκευής πρέπει να ρυθμιστεί στις ρυθμίσεις της εφαρμογής Bitwarden. Χρειάζεστε άλλη επιλογή;</value>
</data> </data>
<data name="LogInWithDevice" xml:space="preserve"> <data name="LogInWithDevice" xml:space="preserve">
<value>Log in with device</value> <value>Σύνδεση με χρήση συσκευής</value>
</data> </data>
<data name="LoggingInOn" xml:space="preserve"> <data name="LoggingInOn" xml:space="preserve">
<value>Logging in on</value> <value>Σύνδεση στο</value>
</data> </data>
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>Vault</value> <value>Vault</value>
</data> </data>
<data name="Appearance" xml:space="preserve"> <data name="Appearance" xml:space="preserve">
<value>Appearance</value> <value>Εμφάνιση</value>
</data> </data>
<data name="AccountSecurity" xml:space="preserve"> <data name="AccountSecurity" xml:space="preserve">
<value>Account security</value> <value>Ασφάλεια λογαριασμού</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Κέντρο Βοήθειας Bitwarden</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <value>Επικοινωνία με την υποστήριξη του Bitwarden</value>
</data> </data>
<data name="CopyAppInformation" xml:space="preserve"> <data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value> <value>Αντιγραφή πληροφοριών εφαρμογής</value>
</data> </data>
<data name="SyncNow" xml:space="preserve"> <data name="SyncNow" xml:space="preserve">
<value>Sync now</value> <value>Συγχρονισμός τώρα</value>
</data> </data>
<data name="UnlockOptions" xml:space="preserve"> <data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value> <value>Επιλογές Κλειδώματος</value>
</data> </data>
<data name="SessionTimeout" xml:space="preserve"> <data name="SessionTimeout" xml:space="preserve">
<value>Session timeout</value> <value>Χρονικό όριο συνεδρίας</value>
</data> </data>
<data name="SessionTimeoutAction" xml:space="preserve"> <data name="SessionTimeoutAction" xml:space="preserve">
<value>Session timeout action</value> <value>Ενέργεια στη λήξη χρόνου συνεδρίας</value>
</data> </data>
<data name="AccountFingerprintPhrase" xml:space="preserve"> <data name="AccountFingerprintPhrase" xml:space="preserve">
<value>Account fingerprint phrase</value> <value>"Φράση αποτυπώματος" λογαριασμού</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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value> <value>Μία ώρα και ένα λεπτό</value>
</data> </data>
<data name="OneHourAndXMinute" xml:space="preserve"> <data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value> <value>Μία ώρα και {0} λεπτά</value>
</data> </data>
<data name="XHoursAndOneMinute" xml:space="preserve"> <data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value> <value>{0} ώρες και ένα λεπτό</value>
</data> </data>
<data name="XHoursAndYMinutes" xml:space="preserve"> <data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value> <value>{0} ώρες και {1} λεπτά</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} ώρες</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>Το Android Autofill Framework χρησιμοποιείται για να προσφέρει αυτόματη συμπλήρωση στοιχείων σύνδεσης σε άλλες εφαρμογές στη συσκευή σας.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>Χρησιμοποιήστε την ενσωματωμένη αυτόματη συμπλήρωση αν το πληκτρολόγιο σας την υποστηρίζει. Διαφορετικά, χρησιμοποιήστε την προεπιλεγμένη επικάλυψη.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Additional options</value> <value>Πρόσθετες επιλογές</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>Συνέχεια στην εφαρμογή διαδικτύου;</value>
</data> </data>
<data name="ContinueToX" xml:space="preserve"> <data name="ContinueToX" xml:space="preserve">
<value>Continue to {0}?</value> <value>Συνέχεια στο {0};</value>
<comment>The parameter is an URL, like bitwarden.com.</comment> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>Συνέχεια στο κέντρο βοήθειας;</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <value>Συνέχεια στην επικοινωνία με την υποστήριξη;</value>
</data> </data>
<data name="ContinueToAppStore" xml:space="preserve"> <data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value> <value>Συνέχεια στο κατάστημα εφαρμογών;</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value> <value>Κάντε τον λογαριασμό σας πιο ασφαλή με τη ρύθμιση δύο βημάτων σύνδεσης στην εφαρμογή διαδικτύου Bitwarden.</value>
</data> </data>
<data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve"> <data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve">
<value>You can change your master password on the Bitwarden web app.</value> <value>Μπορείτε να αλλάξετε τον κύριο κωδικό πρόσβασης στην εφαρμογή διαδικτύου Bitwarden.</value>
</data> </data>
<data name="YouCanImportDataToYourVaultOnX" xml:space="preserve"> <data name="YouCanImportDataToYourVaultOnX" xml:space="preserve">
<value>You can import data to your vault on {0}.</value> <value>Μπορείτε να εισαγάγετε δεδομένα στο vault σας στο {0}.</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value> <value>Μάθετε περισσότερα για το πώς να χρησιμοποιήσετε το Bitwarden στο κέντρο βοήθειας.</value>
</data> </data>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <value>Δεν μπορείτε να βρείτε αυτό που ψάχνετε; Επικοινωνήστε με την υποστήριξη Bitwarden στο bitwarden.com.</value>
</data> </data>
<data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve"> <data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve">
<value>Explore more features of your Bitwarden account on the web app.</value> <value>Εξερευνήστε περισσότερες δυνατότητες του Bitwarden λογαριασμού σας, στην εφαρμογή διαδικτύου.</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value> <value>Το Bitwarden σας επιτρέπει να μοιράζεστε τα στοιχεία του vault σας με άλλους, χρησιμοποιώντας έναν λογαριασμό οργανισμού. Μάθετε περισσότερα στην ιστοσελίδα bitwarden.com.</value>
</data> </data>
<data name="RateAppDescriptionLong" xml:space="preserve"> <data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value> <value>Βοηθήστε άλλους να μάθουν αν το Bitwarden είναι κατάλληλο για αυτούς. Επισκεφθείτε το κατάστημα εφαρμογών και αφήστε τώρα μια βαθμολογία.</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>Choose the dark theme to use when your devices dark mode is in use</value> <value>Επιλέξτε να χρησιμοποιείται το σκούρο θέμα όταν η συσκευή σας βρίσκεται σε σκοτεινή λειτουργία</value>
</data> </data>
<data name="CreatedXY" xml:space="preserve"> <data name="CreatedXY" xml:space="preserve">
<value>Created {0}, {1}</value> <value>Δημιουργήθηκε {0}, {1}</value>
<comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment> <comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment>
</data> </data>
<data name="TooManyAttempts" xml:space="preserve"> <data name="TooManyAttempts" xml:space="preserve">
<value>Too many attempts</value> <value>Πάρα πολλές προσπάθειες</value>
</data> </data>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Ο λογαριασμός αποσυνδέθηκε.</value>
</data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Τα δικαιώματα του οργανισμού σας ενημερώθηκαν, απαιτώντας από εσάς να ορίσετε έναν κύριο κωδικό πρόσβασης.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Ο οργανισμός σας απαιτεί να ορίσετε έναν κύριο κωδικό πρόσβασης.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Ρυθμίστε μια επιλογή κλειδώματος για να αλλάξετε την ενέργεια στη λήξη χρόνου του vault σας.</value>
</data> </data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2875,4 +2875,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ seleccione Agregar TOTP para almacenar la clave de forma segura</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Soovid selle konto peale lülituda?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2860,4 +2860,13 @@ Kontu honetara aldatu nahi duzu?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>حساب از سیستم خارج شد.</value> <value>حساب از سیستم خارج شد.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Haluatko vaihtaa tähän tiliin?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Tili kirjattiin ulos.</value> <value>Tili kirjattiin ulos.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Organisaatiosi käyttöoikeuksia muutettiin ja tämän seurauksena sinun on asetettava pääsalasana.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Organisaatiosi edellyttää, että asetat pääsalasanan.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Muuta holvisi aikakatkaisutoimintoa määrittämällä lukituksen avaustapa.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Gusto mo bang pumunta sa account na ito?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -455,7 +455,7 @@
<value>Continuer</value> <value>Continuer</value>
</data> </data>
<data name="CreateAccount" xml:space="preserve"> <data name="CreateAccount" xml:space="preserve">
<value>Créer un compte</value> <value>Créez un compte</value>
</data> </data>
<data name="CreatingAccount" xml:space="preserve"> <data name="CreatingAccount" xml:space="preserve">
<value>Création du compte...</value> <value>Création du compte...</value>
@ -686,10 +686,10 @@
<comment>Message shown when interacting with the server</comment> <comment>Message shown when interacting with the server</comment>
</data> </data>
<data name="SyncingComplete" xml:space="preserve"> <data name="SyncingComplete" xml:space="preserve">
<value>Synchronisation terminée</value> <value>Synchronisation achevée</value>
</data> </data>
<data name="SyncingFailed" xml:space="preserve"> <data name="SyncingFailed" xml:space="preserve">
<value>Échec de la synchronisation</value> <value>Synchronisation échouée</value>
</data> </data>
<data name="SyncVaultNow" xml:space="preserve"> <data name="SyncVaultNow" xml:space="preserve">
<value>Synchroniser le coffre maintenant</value> <value>Synchroniser le coffre maintenant</value>
@ -778,7 +778,7 @@
<value>Le moyen le plus simple d'ajouter de nouveaux identifiants à votre coffre est d'utiliser le service de saisie automatique Bitwarden. Pour en savoir davantage sur l'utilisation du service de saisie automatique Bitwarden, naviguez jusqu'à l'écran "Paramètres".</value> <value>Le moyen le plus simple d'ajouter de nouveaux identifiants à votre coffre est d'utiliser le service de saisie automatique Bitwarden. Pour en savoir davantage sur l'utilisation du service de saisie automatique Bitwarden, naviguez jusqu'à l'écran "Paramètres".</value>
</data> </data>
<data name="Autofill" xml:space="preserve"> <data name="Autofill" xml:space="preserve">
<value>Saisir automatiquement</value> <value>Saisie automatique</value>
</data> </data>
<data name="AutofillOrView" xml:space="preserve"> <data name="AutofillOrView" xml:space="preserve">
<value>Voulez-vous saisir automatiquement ou afficher cet élément ?</value> <value>Voulez-vous saisir automatiquement ou afficher cet élément ?</value>
@ -907,7 +907,7 @@ La numérisation se fera automatiquement.</value>
<value>Copier le TOTP</value> <value>Copier le TOTP</value>
</data> </data>
<data name="CopyTotpAutomaticallyDescription" xml:space="preserve"> <data name="CopyTotpAutomaticallyDescription" xml:space="preserve">
<value>Si un identifiant a une clé d'authentification, copier le code de vérification TOTP dans votre presse-papier quand vous remplissez automatiquement l'identifiant.</value> <value>Si un identifiant possède une clé d'authentification, copiez le code de vérification TOTP dans votre presse-papiers lorsque vous saisissez automatiquement l'identifiant.</value>
</data> </data>
<data name="CopyTotpAutomatically" xml:space="preserve"> <data name="CopyTotpAutomatically" xml:space="preserve">
<value>Copier TOTP automatiquement</value> <value>Copier TOTP automatiquement</value>
@ -1134,7 +1134,7 @@ La numérisation se fera automatiquement.</value>
<value>Expiration</value> <value>Expiration</value>
</data> </data>
<data name="ShowWebsiteIcons" xml:space="preserve"> <data name="ShowWebsiteIcons" xml:space="preserve">
<value>Afficher les icônes du site web</value> <value>Afficher les icônes des sites web</value>
</data> </data>
<data name="ShowWebsiteIconsDescription" xml:space="preserve"> <data name="ShowWebsiteIconsDescription" xml:space="preserve">
<value>Affichez une image reconnaissable à côté de chaque identifiant.</value> <value>Affichez une image reconnaissable à côté de chaque identifiant.</value>
@ -1304,13 +1304,13 @@ La numérisation se fera automatiquement.</value>
<value>1. Allez dans l'application "Réglages" d'iOS</value> <value>1. Allez dans l'application "Réglages" d'iOS</value>
</data> </data>
<data name="AutofillTurnOn2" xml:space="preserve"> <data name="AutofillTurnOn2" xml:space="preserve">
<value>2. Appuyez sur "Mots de passe et comptes"</value> <value>2. Appuyez sur "Mots de passe"</value>
</data> </data>
<data name="AutofillTurnOn3" xml:space="preserve"> <data name="AutofillTurnOn3" xml:space="preserve">
<value>3. Appuyez sur "Préremplir mots de passe"</value> <value>3. Appuyez sur "Options des mots de passe"</value>
</data> </data>
<data name="AutofillTurnOn4" xml:space="preserve"> <data name="AutofillTurnOn4" xml:space="preserve">
<value>4. Activez "Préremplir mots de passe"</value> <value>4. Activez "Remplir automatiquement les mots de passe et les clés d'identification"</value>
</data> </data>
<data name="AutofillTurnOn5" xml:space="preserve"> <data name="AutofillTurnOn5" xml:space="preserve">
<value>5. Sélectionnez "Bitwarden"</value> <value>5. Sélectionnez "Bitwarden"</value>
@ -1378,10 +1378,10 @@ La numérisation se fera automatiquement.</value>
<value>Rechercher dans la collection</value> <value>Rechercher dans la collection</value>
</data> </data>
<data name="SearchFileSends" xml:space="preserve"> <data name="SearchFileSends" xml:space="preserve">
<value>Rechercher des fichiers Sends</value> <value>Rechercher des Send fichier</value>
</data> </data>
<data name="SearchTextSends" xml:space="preserve"> <data name="SearchTextSends" xml:space="preserve">
<value>Rechercher des textes Sends</value> <value>Rechercher des Sends texte</value>
</data> </data>
<data name="SearchGroup" xml:space="preserve"> <data name="SearchGroup" xml:space="preserve">
<value>Rechercher {0} :</value> <value>Rechercher {0} :</value>
@ -1400,7 +1400,7 @@ La numérisation se fera automatiquement.</value>
<value>Divers</value> <value>Divers</value>
</data> </data>
<data name="Ownership" xml:space="preserve"> <data name="Ownership" xml:space="preserve">
<value>Propriété</value> <value>Propriétaire</value>
</data> </data>
<data name="WhoOwnsThisItem" xml:space="preserve"> <data name="WhoOwnsThisItem" xml:space="preserve">
<value>À qui appartient cet élément ?</value> <value>À qui appartient cet élément ?</value>
@ -1431,7 +1431,7 @@ La numérisation se fera automatiquement.</value>
<value>Aucune organisation à lister.</value> <value>Aucune organisation à lister.</value>
</data> </data>
<data name="MoveToOrgDesc" xml:space="preserve"> <data name="MoveToOrgDesc" xml:space="preserve">
<value>Choisissez une organisation vers laquelle vous souhaitez déplacer cet élément. Déplacer un élément vers une organisation transfère la propriété de l'élément à cette organisation. Vous ne serez plus le propriétaire direct de cet élément une fois qu'il aura été déplacé.</value> <value>Choisissez une organisation vers laquelle vous souhaitez déplacer cet élément. Le déplacement vers une organisation transfère le Propriétaire de l'élément à cette organisation. Vous ne serez plus le propriétaire direct de cet élément une fois qu'il aura été déplacé.</value>
</data> </data>
<data name="NumberOfWords" xml:space="preserve"> <data name="NumberOfWords" xml:space="preserve">
<value>Nombre de mots</value> <value>Nombre de mots</value>
@ -1526,7 +1526,7 @@ La numérisation se fera automatiquement.</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment> <comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data> </data>
<data name="ClearClipboardDescription" xml:space="preserve"> <data name="ClearClipboardDescription" xml:space="preserve">
<value>Effacer automatiquement de votre presse-papiers les valeurs copiées.</value> <value>Effacez automatiquement les valeurs copiées de votre presse-papiers.</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment> <comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data> </data>
<data name="DefaultUriMatchDetection" xml:space="preserve"> <data name="DefaultUriMatchDetection" xml:space="preserve">
@ -1750,7 +1750,7 @@ La numérisation se fera automatiquement.</value>
<value>Autoriser la synchronisation au rafraîchissement</value> <value>Autoriser la synchronisation au rafraîchissement</value>
</data> </data>
<data name="EnableSyncOnRefreshDescription" xml:space="preserve"> <data name="EnableSyncOnRefreshDescription" xml:space="preserve">
<value>Synchronisation du coffre avec un geste vers le bas</value> <value>Synchronisez le coffre avec un geste vers le bas.</value>
</data> </data>
<data name="LogInSso" xml:space="preserve"> <data name="LogInSso" xml:space="preserve">
<value>Portail de connexion unique d'entreprise</value> <value>Portail de connexion unique d'entreprise</value>
@ -1853,10 +1853,10 @@ La numérisation se fera automatiquement.</value>
<value>Si cette option est activée, l'accessibilité affichera une popup pour améliorer le service de remplissage automatique pour les anciennes applications qui ne prennent pas en charge les outils de remplissage automatique d'Android.</value> <value>Si cette option est activée, l'accessibilité affichera une popup pour améliorer le service de remplissage automatique pour les anciennes applications qui ne prennent pas en charge les outils de remplissage automatique d'Android.</value>
</data> </data>
<data name="PersonalOwnershipSubmitError" xml:space="preserve"> <data name="PersonalOwnershipSubmitError" xml:space="preserve">
<value>En raison d'une Politique d'Entreprise, il vous est interdit d'enregistrer des objets dans votre coffre personnel. Changez l'option Propriété pour une organisation et choisissez parmi les Collections disponibles.</value> <value>En raison d'une politique d'entreprise, il vous est interdit d'enregistrer des éléments dans votre coffre personnel. Changez l'option Propriétaire au profit d'une organisation et choisissez parmi les collections disponibles.</value>
</data> </data>
<data name="PersonalOwnershipPolicyInEffect" xml:space="preserve"> <data name="PersonalOwnershipPolicyInEffect" xml:space="preserve">
<value>Une politique d'organisation affecte vos options de propriété.</value> <value>Une politique d'organisation affecte vos options de Propriétaire.</value>
</data> </data>
<data name="Send" xml:space="preserve"> <data name="Send" xml:space="preserve">
<value>Send</value> <value>Send</value>
@ -1968,7 +1968,7 @@ La numérisation se fera automatiquement.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="DisableSend" xml:space="preserve"> <data name="DisableSend" xml:space="preserve">
<value>Désactiver cet envoi pour que personne ne puisse y accéder.</value> <value>Désactiver ce Send pour que personne ne puisse y accéder</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="NoSends" xml:space="preserve"> <data name="NoSends" xml:space="preserve">
@ -1998,7 +1998,7 @@ La numérisation se fera automatiquement.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="AddSend" xml:space="preserve"> <data name="AddSend" xml:space="preserve">
<value>Ajouter un Send</value> <value>Nouveau Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="AreYouSureDeleteSend" xml:space="preserve"> <data name="AreYouSureDeleteSend" xml:space="preserve">
@ -2006,7 +2006,7 @@ La numérisation se fera automatiquement.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="SendDeleted" xml:space="preserve"> <data name="SendDeleted" xml:space="preserve">
<value>Le Send a été supprimé.</value> <value>Send supprimé</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="SendUpdated" xml:space="preserve"> <data name="SendUpdated" xml:space="preserve">
@ -2014,7 +2014,7 @@ La numérisation se fera automatiquement.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="NewSendCreated" xml:space="preserve"> <data name="NewSendCreated" xml:space="preserve">
<value>Nouveau Send créé.</value> <value>Send créé</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="OneDay" xml:space="preserve"> <data name="OneDay" xml:space="preserve">
@ -2036,7 +2036,7 @@ La numérisation se fera automatiquement.</value>
<value>Personnalisé</value> <value>Personnalisé</value>
</data> </data>
<data name="ShareOnSave" xml:space="preserve"> <data name="ShareOnSave" xml:space="preserve">
<value>Partager ce Send lors de l'enregistrement.</value> <value>Partagez ce Send au moment de l'enregistrement</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment> <comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data> </data>
<data name="SendDisabledWarning" xml:space="preserve"> <data name="SendDisabledWarning" xml:space="preserve">
@ -2355,7 +2355,7 @@ sélectionnez Ajouter TOTP pour stocker la clé en toute sécurité</value>
<value>Approuver les demandes de connexion</value> <value>Approuver les demandes de connexion</value>
</data> </data>
<data name="UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices" xml:space="preserve"> <data name="UseThisDeviceToApproveLoginRequestsMadeFromOtherDevices" xml:space="preserve">
<value>Utiliser cet appareil pour approuver les demandes de connexion faites à partir d'autres appareils.</value> <value>Utiliser cet appareil pour approuver les demandes de connexion faites à partir d'autres appareils</value>
</data> </data>
<data name="AllowNotifications" xml:space="preserve"> <data name="AllowNotifications" xml:space="preserve">
<value>Autoriser les notifications</value> <value>Autoriser les notifications</value>
@ -2546,7 +2546,7 @@ Voulez-vous basculer vers ce compte ?</value>
<value>La langue a été changée en {0}. Veuillez redémarrer l'application pour voir le changement</value> <value>La langue a été changée en {0}. Veuillez redémarrer l'application pour voir le changement</value>
</data> </data>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve"> <data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Le changement de langue nécessite le redémarrage de l'application</value> <value>Le changement de la langue nécessite le redémarrage de l'application.</value>
</data> </data>
<data name="DefaultSystem" xml:space="preserve"> <data name="DefaultSystem" xml:space="preserve">
<value>Par défaut (système)</value> <value>Par défaut (système)</value>
@ -2781,7 +2781,7 @@ Voulez-vous basculer vers ce compte ?</value>
<value>Action après délai d'expiration de la session</value> <value>Action après délai d'expiration de la session</value>
</data> </data>
<data name="AccountFingerprintPhrase" xml:space="preserve"> <data name="AccountFingerprintPhrase" xml:space="preserve">
<value>La phrase d'empreinte du compte</value> <value>Phrase d'empreinte du compte</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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
@ -2862,4 +2862,13 @@ Voulez-vous basculer vers ce compte ?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Compte déconnecté.</value> <value>Compte déconnecté.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Les autorisations de votre organisation ont été mises à jour, vous obligeant à définir un mot de passe principal.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Votre organisation vous demande de définir un mot de passe principal.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Configurez une méthode de déverrouillage pour modifier l'action après délai d'expiration de votre coffre.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2864,4 +2864,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2423,7 +2423,7 @@
<comment>"Fastmail" is the product name and should not be translated.</comment> <comment>"Fastmail" is the product name and should not be translated.</comment>
</data> </data>
<data name="ForwardEmail" xml:space="preserve"> <data name="ForwardEmail" xml:space="preserve">
<value>ForwardEmail</value> <value>FowardEmail</value>
<comment>"ForwardEmail" is the product name and should not be translated.</comment> <comment>"ForwardEmail" is the product name and should not be translated.</comment>
</data> </data>
<data name="APIAccessToken" xml:space="preserve"> <data name="APIAccessToken" xml:space="preserve">
@ -2748,106 +2748,106 @@
<value>Prijava na</value> <value>Prijava na</value>
</data> </data>
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>Vault</value> <value>Trezor</value>
</data> </data>
<data name="Appearance" xml:space="preserve"> <data name="Appearance" xml:space="preserve">
<value>Appearance</value> <value>Izgled</value>
</data> </data>
<data name="AccountSecurity" xml:space="preserve"> <data name="AccountSecurity" xml:space="preserve">
<value>Account security</value> <value>Sigurnost računa</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Bitwarden centar za pomoć</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <value>Kontaktiraj Bitwarden pomoć</value>
</data> </data>
<data name="CopyAppInformation" xml:space="preserve"> <data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value> <value>Kopiraj podake o aplikaciji</value>
</data> </data>
<data name="SyncNow" xml:space="preserve"> <data name="SyncNow" xml:space="preserve">
<value>Sync now</value> <value>Sinkroniziraj</value>
</data> </data>
<data name="UnlockOptions" xml:space="preserve"> <data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value> <value>Otključaj mogućnosti</value>
</data> </data>
<data name="SessionTimeout" xml:space="preserve"> <data name="SessionTimeout" xml:space="preserve">
<value>Session timeout</value> <value>Istek sesije</value>
</data> </data>
<data name="SessionTimeoutAction" xml:space="preserve"> <data name="SessionTimeoutAction" xml:space="preserve">
<value>Session timeout action</value> <value>Radnja kod isteka sesije</value>
</data> </data>
<data name="AccountFingerprintPhrase" xml:space="preserve"> <data name="AccountFingerprintPhrase" xml:space="preserve">
<value>Account fingerprint phrase</value> <value>Jedinstvena fraza računa</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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value> <value>Jedan sat i jedna minuta</value>
</data> </data>
<data name="OneHourAndXMinute" xml:space="preserve"> <data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value> <value>Jedan sat i {0} minuta</value>
</data> </data>
<data name="XHoursAndOneMinute" xml:space="preserve"> <data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value> <value>{0} sat/i i jedna minuta</value>
</data> </data>
<data name="XHoursAndYMinutes" xml:space="preserve"> <data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value> <value>{0} sat/i {1} minuta</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} sat/i</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>Android Autofill Framework se koristi za pomoć pri ispunjavanju prijava, platnih kartica i identifikacijskih podataka u drugim aplikacijama na tvojem uređaju.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>Koristi izravnu auto-ispunu ako ga tvoja odabrana tipkovnica podržava. U suprotnom, koristit će se zadana usluga auto-ispune.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Additional options</value> <value>Dodatne mogućnosti</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>Nastavi na web aplikaciju?</value>
</data> </data>
<data name="ContinueToX" xml:space="preserve"> <data name="ContinueToX" xml:space="preserve">
<value>Continue to {0}?</value> <value>Nastavi na {0}?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>Nastavi u centar za pomoć?</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <value>Kontaktiraj podršku?</value>
</data> </data>
<data name="ContinueToAppStore" xml:space="preserve"> <data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value> <value>Nastavi u trgovinu aplikacijama?</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value> <value>Učini svoj račun sigurnijim uključivanjem prijave dvofaktorskom autentifikacijom u Bitwarden web aplikaciji.</value>
</data> </data>
<data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve"> <data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve">
<value>You can change your master password on the Bitwarden web app.</value> <value>Svoju lozinku možeš promijeniti u Bitwarden web aplikaciji.</value>
</data> </data>
<data name="YouCanImportDataToYourVaultOnX" xml:space="preserve"> <data name="YouCanImportDataToYourVaultOnX" xml:space="preserve">
<value>You can import data to your vault on {0}.</value> <value>Svoje podatke možeš uvesti u trezor na {0}.</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value> <value>Za pomoć oko korištenja Bitwardena posjeti centar za pomoć.</value>
</data> </data>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <value>Ne možeš naći što te zanima? Kontaktiraj Bitwarden podršku na bitwarden.com.</value>
</data> </data>
<data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve"> <data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve">
<value>Explore more features of your Bitwarden account on the web app.</value> <value>Pronađi viđe značajki svojeg Bitwarden računa u web aplikaciji.</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value> <value>Bitwarden omogućuje dijeljenje trezora s drugima pomoću organizacijskog računa. Za više informacija posjeti bitwarden.com.</value>
</data> </data>
<data name="RateAppDescriptionLong" xml:space="preserve"> <data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value> <value>Želiš preporučiti Bitwarden drugima? Posjeti app store i ostavi recenziju.</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>Choose the dark theme to use when your devices dark mode is in use</value> <value>Odaberi tamnu temu kada se tvoj uređaj nalazi u tamnom načinu rada</value>
</data> </data>
<data name="CreatedXY" xml:space="preserve"> <data name="CreatedXY" xml:space="preserve">
<value>Stvoreno {0}, {1}</value> <value>Stvoreno {0}, {1}</value>
@ -2859,4 +2859,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Račun odjavljen.</value> <value>Račun odjavljen.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Moraš postaviti glavnu lozinku jer su dopuštenja tvoje organizacije ažurirana.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Tvoja organizacija zahtijeva da postaviš glavnu lozinku.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Za promjenu vremena isteka trezora, odredi način otključavanja.</value>
</data>
</root> </root>

View file

@ -2860,4 +2860,13 @@ Szeretnénk átváltani erre a fiókra?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>A fiók kijelentkezett.</value> <value>A fiók kijelentkezett.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>A szervezeti jogosultságok frissítésre kerültek, ezért be kell állítani egy mesterjelszót.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>A szervezet megköveteli egy mesterjelszó beállítását.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Állítsunk be egy feloldási módot a széf időkifutási műveletének módosításához.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2695,7 +2695,7 @@ Vuoi passare a questo account?</value>
<value>Azione timeout cassaforte impostata su uscire</value> <value>Azione timeout cassaforte impostata su uscire</value>
</data> </data>
<data name="BlockAutoFill" xml:space="preserve"> <data name="BlockAutoFill" xml:space="preserve">
<value>Bocca riempimento automatico</value> <value>Blocca riempimento automatico</value>
</data> </data>
<data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve"> <data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve">
<value>Il riempimento automatico non sarà offerto per questi URI.</value> <value>Il riempimento automatico non sarà offerto per questi URI.</value>
@ -2861,4 +2861,13 @@ Vuoi passare a questo account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account uscito.</value> <value>Account uscito.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Le autorizzazioni della tua organizzazione sono state aggiornate, obbligandoti a impostare una password principale.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>La tua organizzazione ti obbliga di impostare di una password principale.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Imposta un metodo di sblocco per modificare l'azione timeout cassaforte.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>アカウントからログアウトしました。</value> <value>アカウントからログアウトしました。</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>組織の権限が更新され、マスターパスワードの設定が必要になりました。</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>あなたの組織では、マスターパスワードの設定が義務付けられています。</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>保管庫のタイムアウト動作を変更するには、ロック解除方法を設定してください。</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Ar norite pereiti prie šios paskyros?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Vai pārslēgties uz šo kontu?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Konts tika izrakstīts.</value> <value>Konts tika izrakstīts.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Apvienības atļaujas tika atjauninātas, un tās pieprasa iestatīt galveno paroli.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Apvienība pieprasa iestatīt galveno paroli.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Jāuzstāda atslēgšanas iespēja, lai mainītu glabātavas noildzes darbību.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -946,7 +946,7 @@ Skanning skjer automatisk.</value>
<value>Du kan ikke bruke denne funksjonen før du oppdaterer krypteringsnøkkelen din.</value> <value>Du kan ikke bruke denne funksjonen før du oppdaterer krypteringsnøkkelen din.</value>
</data> </data>
<data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve"> <data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve">
<value>Encryption key migration required. Please login through the web vault to update your encryption key.</value> <value>Krypteringsnøkkelmigrasjon kreves. Logg inn gjennom web-hvelvet ditt for å oppdatere krypteringsnøkkelen din.</value>
</data> </data>
<data name="LearnMore" xml:space="preserve"> <data name="LearnMore" xml:space="preserve">
<value>Lær mer</value> <value>Lær mer</value>
@ -2862,4 +2862,13 @@ Vil du bytte til denne kontoen?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Konto logget ut.</value> <value>Konto logget ut.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Wilt u naar dit account wisselen?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Stel een ontgrendelingsmethode in om je kluis time-out actie te wijzigen.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Czy chcesz przełączyć się na to konto?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Konto wylogowane.</value> <value>Konto wylogowane.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Uprawnienia w Twojej organizacji zostały zaktualizowane, musisz teraz ustawić hasło główne.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Twoja organizacja wymaga ustawienia hasła głównego.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Ustaw opcje odblokowania, aby zmienić czas blokowania sejfu.</value>
</data>
</root> </root>

View file

@ -1116,7 +1116,7 @@ A leitura será feita automaticamente.</value>
<value>Setembro</value> <value>Setembro</value>
</data> </data>
<data name="SSN" xml:space="preserve"> <data name="SSN" xml:space="preserve">
<value>Número de Segurança Social</value> <value>Cadastro de Pessoas Físicas (CPF)</value>
</data> </data>
<data name="StateProvince" xml:space="preserve"> <data name="StateProvince" xml:space="preserve">
<value>Estado / Província</value> <value>Estado / Província</value>
@ -2800,29 +2800,29 @@ Você deseja mudar para esta conta?</value>
<value>{0} horas</value> <value>{0} horas</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>O Framework de Preenchimento Automático do Android é usado para ajudar a preencher informações de login em outros aplicativos do seu dispositivo.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>Use o autopreenchimento interno se o teclado selecionado o suporta. Caso contrário, use a sobreposição padrão.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Opções adicionais</value> <value>Opções adicionais</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>Continuar no aplicativo web?</value>
</data> </data>
<data name="ContinueToX" xml:space="preserve"> <data name="ContinueToX" xml:space="preserve">
<value>Continue to {0}?</value> <value>Continuar para {0}?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>Continuar para o centro de ajuda?</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <value>Continuar e contatar o suporte?</value>
</data> </data>
<data name="ContinueToAppStore" xml:space="preserve"> <data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value> <value>Continuar para a loja de apps?</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value> <value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value>
@ -2850,7 +2850,7 @@ Você deseja mudar para esta conta?</value>
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value> <value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>Choose the dark theme to use when your devices dark mode is in use</value> <value>Usar o tema escuro quando o modo escuro do seu dispositivo estiver ativado</value>
</data> </data>
<data name="CreatedXY" xml:space="preserve"> <data name="CreatedXY" xml:space="preserve">
<value>Criado em {0}, {1}</value> <value>Criado em {0}, {1}</value>
@ -2862,4 +2862,13 @@ Você deseja mudar para esta conta?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Conta desconectada.</value> <value>Conta desconectada.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -1813,7 +1813,7 @@ A leitura será efetuada automaticamente.</value>
<value>Política de privacidade</value> <value>Política de privacidade</value>
</data> </data>
<data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve"> <data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve">
<value>O Bitwarden precisa de atenção - Ative "Aparecer sobre outras" em "Serviços de preenchimento automático" nas definições do Bitwarden</value> <value>O Bitwarden precisa de atenção - Ative a definição "Aparecer sobre outras" em "Serviços de preenchimento automático" nas definições do Bitwarden</value>
</data> </data>
<data name="AutofillServices" xml:space="preserve"> <data name="AutofillServices" xml:space="preserve">
<value>Serviços de preenchimento automático</value> <value>Serviços de preenchimento automático</value>
@ -1831,16 +1831,16 @@ A leitura será efetuada automaticamente.</value>
<value>Utilize o Serviço de acessibilidade do Bitwarden para preencher automaticamente as suas credenciais em aplicações e na web. Quando configurado, exibiremos um pop-up quando os campos de início de sessão forem selecionados.</value> <value>Utilize o Serviço de acessibilidade do Bitwarden para preencher automaticamente as suas credenciais em aplicações e na web. Quando configurado, exibiremos um pop-up quando os campos de início de sessão forem selecionados.</value>
</data> </data>
<data name="AccessibilityDescription2" xml:space="preserve"> <data name="AccessibilityDescription2" xml:space="preserve">
<value>Utilize o Serviço de acessibilidade do Bitwarden para preencher automaticamente as suas credenciais em aplicações e na web. (Requer que a definição Aparecer sobre outras também esteja ativada)</value> <value>Utilize o Serviço de acessibilidade do Bitwarden para preencher automaticamente as suas credenciais em aplicações e na Web. (Requer que a definição "Aparecer sobre outras" também esteja ativada)</value>
</data> </data>
<data name="AccessibilityDescription3" xml:space="preserve"> <data name="AccessibilityDescription3" xml:space="preserve">
<value>Utilize o Serviço de acessibilidade do Bitwarden para utilizar o botão de preenchimento automático do Painel instantâneo e/ou mostrar um pop-up utilizando a definição Aparecer sobre outras (se estiver ativada).</value> <value>Utilize o Serviço de acessibilidade do Bitwarden para utilizar o botão de preenchimento automático do Painel instantâneo e/ou mostrar um pop-up utilizando a definição "Aparecer sobre outras" (se estiver ativada).</value>
</data> </data>
<data name="AccessibilityDescription4" xml:space="preserve"> <data name="AccessibilityDescription4" xml:space="preserve">
<value>Necessário para utilizar o botão de preenchimento automático do Painel instantâneo, ou para aumentar o serviço de preenchimento automático utilizando a definição Aparecer sobre outras (se estiver ativada).</value> <value>Necessário para utilizar o botão de preenchimento automático do Painel instantâneo, ou para aumentar o serviço de preenchimento automático utilizando a definição "Aparecer sobre outras" (se estiver ativada).</value>
</data> </data>
<data name="DrawOver" xml:space="preserve"> <data name="DrawOver" xml:space="preserve">
<value>Utilizar definição Aparecer sobre outras</value> <value>Utilizar a definição "Aparecer sobre outras"</value>
</data> </data>
<data name="DrawOverDescription" xml:space="preserve"> <data name="DrawOverDescription" xml:space="preserve">
<value>Permite que o Serviço de acessibilidade do Bitwarden apresente um pop-up quando os campos de início de sessão são selecionados.</value> <value>Permite que o Serviço de acessibilidade do Bitwarden apresente um pop-up quando os campos de início de sessão são selecionados.</value>
@ -2694,7 +2694,7 @@ Deseja mudar para esta conta?</value>
<value>Ação de tempo limite do cofre alterada para terminar sessão</value> <value>Ação de tempo limite do cofre alterada para terminar sessão</value>
</data> </data>
<data name="BlockAutoFill" xml:space="preserve"> <data name="BlockAutoFill" xml:space="preserve">
<value>Bloquear preenchimento automático</value> <value>Bloquear o preenchimento automático</value>
</data> </data>
<data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve"> <data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve">
<value>O preenchimento automático não será oferecido para estes URIs.</value> <value>O preenchimento automático não será oferecido para estes URIs.</value>
@ -2860,4 +2860,13 @@ Deseja mudar para esta conta?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Conta com sessão terminada.</value> <value>Conta com sessão terminada.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>As permissões da sua organização foram atualizadas, exigindo a definição de uma palavra-passe mestra.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>A sua organização exige a definição de uma palavra-passe mestra.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Configure uma opção de desbloqueio para alterar a ação de tempo limite do seu cofre.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Doriți să comutați la acest cont?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2863,4 +2863,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Аккаунт не авторизован.</value> <value>Аккаунт не авторизован.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Права доступа организации были обновлены, требуется установить мастер-пароль.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Необходимо установить мастер-пароль для организации.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Настройте опцию разблокировки для изменения действия по тайм-ауту хранилища.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Chcete prepnúť na toto konto?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Účet bol odhlásený.</value> <value>Účet bol odhlásený.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Povolenia vašej organizácie boli aktualizované, čo si vyžaduje nastavenie hlavného hesla.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Vaša organizácia vyžaduje, aby ste nastavili hlavné heslo.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Nastavte možnosť odomknutia, aby ste zmenili akciu pri vypršaní času trezoru.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2863,4 +2863,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Налог је одјављен.</value> <value>Налог је одјављен.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Дозволе за вашу организацију су ажуриране, што захтева да поставите главну лозинку.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Ваша организација захтева да поставите главну лозинку.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Подесите опцију откључавања да бисте променили радњу временског ограничења сефа.</value>
</data>
</root> </root>

View file

@ -2863,4 +2863,13 @@ Vill du byta till detta konto?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2797,16 +2797,16 @@
<value>{0} hours and {1} minutes</value> <value>{0} hours and {1} minutes</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} மணிநேரம்</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>தானியங்கு நிரப்புதல் சேவைகள் விளக்கம் இன்னுங்கூடுதலான.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>தானியங்கு நிரப்புதலை பயன்படுத்தவும்.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Additional options</value> <value>கூடுதல் தேர்வுகள்</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>Continue to web app?</value>
@ -2862,4 +2862,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>கணக்கிலிருந்து வெளியேறப்பட்டது.</value> <value>கணக்கிலிருந்து வெளியேறப்பட்டது.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2862,4 +2862,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2869,4 +2869,13 @@ Do you want to switch to this account?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Account logged out.</value> <value>Account logged out.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data>
</root> </root>

View file

@ -2424,7 +2424,7 @@ Kod otomatik olarak taranacaktır.</value>
<comment>"Fastmail" is the product name and should not be translated.</comment> <comment>"Fastmail" is the product name and should not be translated.</comment>
</data> </data>
<data name="ForwardEmail" xml:space="preserve"> <data name="ForwardEmail" xml:space="preserve">
<value>E-posta ilet</value> <value>ForwardEmail</value>
<comment>"ForwardEmail" is the product name and should not be translated.</comment> <comment>"ForwardEmail" is the product name and should not be translated.</comment>
</data> </data>
<data name="APIAccessToken" xml:space="preserve"> <data name="APIAccessToken" xml:space="preserve">
@ -2860,4 +2860,13 @@ Bu hesaba geçmek ister misiniz?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Hesabın oturumu kapatıldı.</value> <value>Hesabın oturumu kapatıldı.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Kuruluş izinleriniz güncellendi ve bir ana parola belirlemeniz gerekiyor.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Kuruluşunuz bir ana parola belirlemenizi gerektiriyor.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Kasa zaman aşımı eyleminizi değiştirmek için bir kilit açma yöntemi ayarlayın.</value>
</data>
</root> </root>

View file

@ -2861,4 +2861,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Ви вийшли з облікового запису.</value> <value>Ви вийшли з облікового запису.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Оновлено дозволи вашої організації вимагається встановлення головного пароля.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Ваша організація вимагає, щоб ви встановили головний пароль.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Налаштуйте спосіб розблокування, щоб змінити час очікування сховища.</value>
</data>
</root> </root>

View file

@ -203,7 +203,7 @@
<comment>Title for your favorite items in the vault.</comment> <comment>Title for your favorite items in the vault.</comment>
</data> </data>
<data name="FileBugReport" xml:space="preserve"> <data name="FileBugReport" xml:space="preserve">
<value>Báo lỗi</value> <value>Gửi báo cáo lỗi</value>
</data> </data>
<data name="FileBugReportDescription" xml:space="preserve"> <data name="FileBugReportDescription" xml:space="preserve">
<value>Tạo một vấn đề tại trang GitHub của chúng tôi.</value> <value>Tạo một vấn đề tại trang GitHub của chúng tôi.</value>
@ -279,7 +279,7 @@
<value>Xóa tài khoản</value> <value>Xóa tài khoản</value>
</data> </data>
<data name="RemoveAccountConfirmation" xml:space="preserve"> <data name="RemoveAccountConfirmation" xml:space="preserve">
<value>Bạn có chắc muốn xóa tài khoản này?</value> <value>Bạn có chắc muốn xóa tài khoản này không?</value>
</data> </data>
<data name="AccountAlreadyAdded" xml:space="preserve"> <data name="AccountAlreadyAdded" xml:space="preserve">
<value>Tài khoản này đã có rồi</value> <value>Tài khoản này đã có rồi</value>
@ -300,7 +300,7 @@
<comment>The title for the vault page.</comment> <comment>The title for the vault page.</comment>
</data> </data>
<data name="Authenticator" xml:space="preserve"> <data name="Authenticator" xml:space="preserve">
<value>Trình xác thực</value> <value>Authenticator</value>
<comment>Authenticator TOTP feature</comment> <comment>Authenticator TOTP feature</comment>
</data> </data>
<data name="Name" xml:space="preserve"> <data name="Name" xml:space="preserve">
@ -371,7 +371,7 @@
<comment>Label for a username.</comment> <comment>Label for a username.</comment>
</data> </data>
<data name="ValidationFieldRequired" xml:space="preserve"> <data name="ValidationFieldRequired" xml:space="preserve">
<value>Trường {0} là bắt buộc.</value> <value>Vui lòng nhập {0}.</value>
<comment>Validation message for when a form field is left blank and is required to be entered.</comment> <comment>Validation message for when a form field is left blank and is required to be entered.</comment>
</data> </data>
<data name="ValueHasBeenCopied" xml:space="preserve"> <data name="ValueHasBeenCopied" xml:space="preserve">
@ -394,7 +394,7 @@
<value>Xem</value> <value>Xem</value>
</data> </data>
<data name="VisitOurWebsite" xml:space="preserve"> <data name="VisitOurWebsite" xml:space="preserve">
<value>Ghé thăm trang chủ</value> <value>Ghé thăm trang web</value>
</data> </data>
<data name="Website" xml:space="preserve"> <data name="Website" xml:space="preserve">
<value>Trang web</value> <value>Trang web</value>
@ -419,7 +419,7 @@
<value>Sử dụng dịch vụ trợ năng của Bitwarden để tự động điền thông tin đăng nhập của bạn vào các ứng dụng và trang web.</value> <value>Sử dụng dịch vụ trợ năng của Bitwarden để tự động điền thông tin đăng nhập của bạn vào các ứng dụng và trang web.</value>
</data> </data>
<data name="AutofillService" xml:space="preserve"> <data name="AutofillService" xml:space="preserve">
<value>Dịch vụ điền tự động</value> <value>Dịch vụ tự động điền</value>
</data> </data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve"> <data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>Tránh các ký tự dễ gây nhầm lẫn</value> <value>Tránh các ký tự dễ gây nhầm lẫn</value>
@ -490,7 +490,7 @@
<value>Bạn đã sẵn sàng để đăng nhập!</value> <value>Bạn đã sẵn sàng để đăng nhập!</value>
</data> </data>
<data name="ExtensionSetup" xml:space="preserve"> <data name="ExtensionSetup" xml:space="preserve">
<value>Dễ dàng truy cập thông tin đăng nhập của bạn từ Safari, Chrome và các ứng dụng được hỗ trợ khác.</value> <value>Thông tin đăng nhập của bạn giờ đây có thể dễ dàng truy cập từ Safari, Chrome và các ứng dụng được hỗ trợ khác.</value>
</data> </data>
<data name="ExtensionSetup2" xml:space="preserve"> <data name="ExtensionSetup2" xml:space="preserve">
<value>Trong Safari và Chrome, tìm Bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn chia sẻ).</value> <value>Trong Safari và Chrome, tìm Bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn chia sẻ).</value>
@ -544,7 +544,7 @@
<value>4 giờ</value> <value>4 giờ</value>
</data> </data>
<data name="Immediately" xml:space="preserve"> <data name="Immediately" xml:space="preserve">
<value>Lập tức</value> <value>Tức thì</value>
</data> </data>
<data name="VaultTimeout" xml:space="preserve"> <data name="VaultTimeout" xml:space="preserve">
<value>Thời gian mở kho</value> <value>Thời gian mở kho</value>
@ -569,7 +569,7 @@
<value>Mật khẩu nhập lại không trùng khớp.</value> <value>Mật khẩu nhập lại không trùng khớp.</value>
</data> </data>
<data name="MasterPasswordDescription" xml:space="preserve"> <data name="MasterPasswordDescription" xml:space="preserve">
<value>Mật khẩu chính là mật khẩu bạn sử dụng để truy cập kho mật khẩu của bạn. Nó rất quan trọng nên bạn không được quên mật khẩu chủ của mình. Không thể khôi phục lại mật khẩu chính nếu bạn quên nó.</value> <value>Mật khẩu chính là mật khẩu bạn sử dụng để truy cập kho mật khẩu của bạn. Nó rất quan trọng vì sẽ không có cách nào để lấy lại mật khẩu nếu bạn quên.</value>
</data> </data>
<data name="MasterPasswordHint" xml:space="preserve"> <data name="MasterPasswordHint" xml:space="preserve">
<value>Gợi ý mật khẩu chính (tùy chọn)</value> <value>Gợi ý mật khẩu chính (tùy chọn)</value>
@ -578,7 +578,7 @@
<value>Một gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chính của bạn nếu bạn quên nó.</value> <value>Một gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chính của bạn nếu bạn quên nó.</value>
</data> </data>
<data name="MasterPasswordLengthValMessageX" xml:space="preserve"> <data name="MasterPasswordLengthValMessageX" xml:space="preserve">
<value>Mật khẩu chính phải tối thiểu {0} kí tự.</value> <value>Mật khẩu chính phải tối thiểu {0} kí tự.</value>
</data> </data>
<data name="MinNumbers" xml:space="preserve"> <data name="MinNumbers" xml:space="preserve">
<value>Số chữ số</value> <value>Số chữ số</value>
@ -607,7 +607,7 @@
<value>Không có mục nào trong kho của bạn.</value> <value>Không có mục nào trong kho của bạn.</value>
</data> </data>
<data name="NoItemsTap" xml:space="preserve"> <data name="NoItemsTap" xml:space="preserve">
<value>Không có mục nào trong kho của bạn cho trang web này. Nhấn để thêm.</value> <value>Không có mục nào trong kho của bạn phù hợp với trang web/app này. Nhấn để thêm.</value>
</data> </data>
<data name="NoUsernamePasswordConfigured" xml:space="preserve"> <data name="NoUsernamePasswordConfigured" xml:space="preserve">
<value>Thông tin đăng nhập này không có tên người dùng hoặc mật khẩu được định cấu hình.</value> <value>Thông tin đăng nhập này không có tên người dùng hoặc mật khẩu được định cấu hình.</value>
@ -806,7 +806,7 @@
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment> <comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
</data> </data>
<data name="AuthenticatorAppTitle" xml:space="preserve"> <data name="AuthenticatorAppTitle" xml:space="preserve">
<value>Ứng dụng xác thực</value> <value>Ứng dụng Authenticator</value>
<comment>For 2FA</comment> <comment>For 2FA</comment>
</data> </data>
<data name="EnterVerificationCodeApp" xml:space="preserve"> <data name="EnterVerificationCodeApp" xml:space="preserve">
@ -822,7 +822,7 @@
<comment>For 2FA whenever there are no available providers on this device.</comment> <comment>For 2FA whenever there are no available providers on this device.</comment>
</data> </data>
<data name="NoTwoStepAvailable" xml:space="preserve"> <data name="NoTwoStepAvailable" xml:space="preserve">
<value>Tài khoản này đã kích hoạt xác minh 2 bước, tuy nhiên dịch vụ xác minh 2 bước đã chọn không được hỗ trợ trên thiết bị này. Vui lòng sử dụng thiết bị được hỗ trợ hoặc cài đặt một ứng dụng xác thực tốt hơn.</value> <value>Tài khoản này đã kích hoạt xác thực 2 bước, tuy nhiên dịch vụ xác thực hai bước đã chọn không được hỗ trợ trên thiết bị này. Vui lòng sử dụng thiết bị được hỗ trợ và/hoặc dịch vụ xác thực bổ sung có thể hoạt động tốt trên thiết bị (chẳng hạn như một ứng dụng Authenticator).</value>
</data> </data>
<data name="RecoveryCodeTitle" xml:space="preserve"> <data name="RecoveryCodeTitle" xml:space="preserve">
<value>Mã khôi phục</value> <value>Mã khôi phục</value>
@ -907,7 +907,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Sao chép TOTP</value> <value>Sao chép TOTP</value>
</data> </data>
<data name="CopyTotpAutomaticallyDescription" xml:space="preserve"> <data name="CopyTotpAutomaticallyDescription" xml:space="preserve">
<value>Nếu thông tin đăng nhập có khóa xác thực, hãy sao chép mã xác minh TOTP vào bộ nhớ tạm khi bạn tự động điền thông tin đăng nhập.</value> <value>Nếu thông tin đăng nhập có khóa xác thực, hãy sao chép mã xác minh TOTP khi bạn tự động điền thông tin đăng nhập.</value>
</data> </data>
<data name="CopyTotpAutomatically" xml:space="preserve"> <data name="CopyTotpAutomatically" xml:space="preserve">
<value>Tự động sao chép mã TOTP</value> <value>Tự động sao chép mã TOTP</value>
@ -987,7 +987,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Chạm vào thông báo này để xem thông tin đăng nhập từ kho của bạn.</value> <value>Chạm vào thông báo này để xem thông tin đăng nhập từ kho của bạn.</value>
</data> </data>
<data name="CustomFields" xml:space="preserve"> <data name="CustomFields" xml:space="preserve">
<value>Mục tùy chỉnh</value> <value>Trường tùy chỉnh</value>
</data> </data>
<data name="CopyNumber" xml:space="preserve"> <data name="CopyNumber" xml:space="preserve">
<value>Chép số</value> <value>Chép số</value>
@ -996,7 +996,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Sao chép mã bảo mật</value> <value>Sao chép mã bảo mật</value>
</data> </data>
<data name="Number" xml:space="preserve"> <data name="Number" xml:space="preserve">
<value>Số</value> <value>Số thẻ</value>
</data> </data>
<data name="SecurityCode" xml:space="preserve"> <data name="SecurityCode" xml:space="preserve">
<value>Mã bảo mật</value> <value>Mã bảo mật</value>
@ -1161,7 +1161,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Không có mục nào trong thư mục này.</value> <value>Không có mục nào trong thư mục này.</value>
</data> </data>
<data name="NoItemsTrash" xml:space="preserve"> <data name="NoItemsTrash" xml:space="preserve">
<value>Không có gì trong thùng rác.</value> <value>Không có gì trong thùng rác</value>
</data> </data>
<data name="AutofillAccessibilityService" xml:space="preserve"> <data name="AutofillAccessibilityService" xml:space="preserve">
<value>Tự động điền bằng trợ năng</value> <value>Tự động điền bằng trợ năng</value>
@ -1195,7 +1195,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Chúng tôi không thể mở cài đặt tự động điền cho bạn. Bạn có thể đi đến cài đặt tự động điền theo cách thủ công bằng cách vào Cài đặt &gt; Hệ thống &gt; Ngôn ngữ và nhập liệu &gt; Nâng cao &gt; Dịch vụ tự động điền.</value> <value>Chúng tôi không thể mở cài đặt tự động điền cho bạn. Bạn có thể đi đến cài đặt tự động điền theo cách thủ công bằng cách vào Cài đặt &gt; Hệ thống &gt; Ngôn ngữ và nhập liệu &gt; Nâng cao &gt; Dịch vụ tự động điền.</value>
</data> </data>
<data name="CustomFieldName" xml:space="preserve"> <data name="CustomFieldName" xml:space="preserve">
<value>Tên mục tùy chỉnh</value> <value>Tên trường tùy chỉnh</value>
</data> </data>
<data name="FieldTypeBoolean" xml:space="preserve"> <data name="FieldTypeBoolean" xml:space="preserve">
<value>Đúng/Sai</value> <value>Đúng/Sai</value>
@ -1210,7 +1210,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Văn bản</value> <value>Văn bản</value>
</data> </data>
<data name="NewCustomField" xml:space="preserve"> <data name="NewCustomField" xml:space="preserve">
<value>Thêm mục tùy chỉnh</value> <value>Trường tùy chỉnh mới</value>
</data> </data>
<data name="SelectTypeField" xml:space="preserve"> <data name="SelectTypeField" xml:space="preserve">
<value>Bạn muốn thêm loại trường tùy chỉnh nào?</value> <value>Bạn muốn thêm loại trường tùy chỉnh nào?</value>
@ -1753,7 +1753,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Đồng bộ kho bằng cách vuốt xuống.</value> <value>Đồng bộ kho bằng cách vuốt xuống.</value>
</data> </data>
<data name="LogInSso" xml:space="preserve"> <data name="LogInSso" xml:space="preserve">
<value>Đăng nhập một lần cho doanh nghiệp</value> <value>Đăng nhập doanh nghiệp</value>
</data> </data>
<data name="LogInSsoSummary" xml:space="preserve"> <data name="LogInSsoSummary" xml:space="preserve">
<value>Đăng nhập nhanh bằng cách sử dụng cổng đăng nhập một lần của tổ chức. Vui lòng nhập thông tin nhận dạng tổ chức để bắt đầu.</value> <value>Đăng nhập nhanh bằng cách sử dụng cổng đăng nhập một lần của tổ chức. Vui lòng nhập thông tin nhận dạng tổ chức để bắt đầu.</value>
@ -1801,7 +1801,7 @@ Quá trình quét sẽ diễn ra tự động.</value>
<value>Đang tải</value> <value>Đang tải</value>
</data> </data>
<data name="AcceptPolicies" xml:space="preserve"> <data name="AcceptPolicies" xml:space="preserve">
<value>Bật tính năng nghĩa là bạn đồng ý các điều kiện sau: <value>Bạn đồng ý các điều kiện sau:
</value> </value>
</data> </data>
<data name="AcceptPoliciesError" xml:space="preserve"> <data name="AcceptPoliciesError" xml:space="preserve">
@ -2600,7 +2600,7 @@ Bạn có muốn chuyển sang tài khoản này không?</value>
<value>Tìm kiếm một mục hoặc thêm mục mới</value> <value>Tìm kiếm một mục hoặc thêm mục mới</value>
</data> </data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve"> <data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>Không có mục nào phù hợp với tìm kiếm</value> <value>Không tìm thấy</value>
</data> </data>
<data name="US" xml:space="preserve"> <data name="US" xml:space="preserve">
<value>Hoa Kỳ</value> <value>Hoa Kỳ</value>
@ -2699,7 +2699,7 @@ Bạn có muốn chuyển sang tài khoản này không?</value>
<value>Chặn tự động điền</value> <value>Chặn tự động điền</value>
</data> </data>
<data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve"> <data name="AutoFillWillNotBeOfferedForTheseURIs" xml:space="preserve">
<value>Tính năng tự động điền sẽ không được cung cấp cho các URI này.</value> <value>Vô hiệu hóa tính năng tự động điền với các URI sau.</value>
</data> </data>
<data name="NewBlockedURI" xml:space="preserve"> <data name="NewBlockedURI" xml:space="preserve">
<value>URI bị chặn mới</value> <value>URI bị chặn mới</value>
@ -2800,10 +2800,10 @@ Bạn có muốn chuyển sang tài khoản này không?</value>
<value>{0} giờ</value> <value>{0} giờ</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>Android Autofill Framework được dùng để hỗ trợ điền thông tin đăng nhập vào các ứng dụng khác trên thiết bị của bạn.</value> <value>Dùng Android Autofill Framework để điền thông tin đăng nhập vào các ứng dụng khác trên thiết bị của bạn.</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Sử dụng tính năng tự động điền nội tuyến nếu bàn phím hỗ trợ tính năng này. Nếu không, hãy sử dụng lớp phủ mặc định.</value> <value>Dùng tính năng tự động điền nội tuyến nếu bàn phím hỗ trợ. Nếu không, sẽ dùng lớp phủ mặc định.</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Tùy chọn bổ sung</value> <value>Tùy chọn bổ sung</value>
@ -2862,4 +2862,13 @@ Bạn có muốn chuyển sang tài khoản này không?</value>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>Đã đăng xuất tài khoản.</value> <value>Đã đăng xuất tài khoản.</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Quyền tổ chức của bạn đã được cập nhật, yêu cầu bạn đặt mật khẩu chính.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Tổ chức của bạn yêu cầu bạn đặt mật khẩu chính.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Thiết lập khóa khi hết thời gian chờ kho.</value>
</data>
</root> </root>

View file

@ -273,13 +273,13 @@
<comment>The log out button text (verb).</comment> <comment>The log out button text (verb).</comment>
</data> </data>
<data name="LogoutConfirmation" xml:space="preserve"> <data name="LogoutConfirmation" xml:space="preserve">
<value>确定要注销吗?</value> <value>确定要注销吗?</value>
</data> </data>
<data name="RemoveAccount" xml:space="preserve"> <data name="RemoveAccount" xml:space="preserve">
<value>移除账户</value> <value>移除账户</value>
</data> </data>
<data name="RemoveAccountConfirmation" xml:space="preserve"> <data name="RemoveAccountConfirmation" xml:space="preserve">
<value>确定要移除此账户吗?</value> <value>确定要移除此账户吗?</value>
</data> </data>
<data name="AccountAlreadyAdded" xml:space="preserve"> <data name="AccountAlreadyAdded" xml:space="preserve">
<value>账户已添加</value> <value>账户已添加</value>
@ -638,7 +638,7 @@
<value>我们已经为您发送了包含主密码提示的邮件。</value> <value>我们已经为您发送了包含主密码提示的邮件。</value>
</data> </data>
<data name="PasswordOverrideAlert" xml:space="preserve"> <data name="PasswordOverrideAlert" xml:space="preserve">
<value>确定要覆盖当前密码吗?</value> <value>确定要覆盖当前密码吗?</value>
</data> </data>
<data name="PushNotificationAlert" xml:space="preserve"> <data name="PushNotificationAlert" xml:space="preserve">
<value>Bitwarden 使用推送通知来自动同步您的密码库。为了获得最佳体验,接下来询问是否开启通知时,请选择「允许」。</value> <value>Bitwarden 使用推送通知来自动同步您的密码库。为了获得最佳体验,接下来询问是否开启通知时,请选择「允许」。</value>
@ -784,7 +784,7 @@
<value>您想自动填充还是查看此项目?</value> <value>您想自动填充还是查看此项目?</value>
</data> </data>
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve"> <data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
<value>确定要自动填充吗?它与「{0}」并不完全匹配。</value> <value>确定要自动填充此项目吗?它与「{0}」并不完全匹配。</value>
</data> </data>
<data name="MatchingItems" xml:space="preserve"> <data name="MatchingItems" xml:space="preserve">
<value>匹配项目</value> <value>匹配项目</value>
@ -874,7 +874,7 @@
<comment>Message shown when downloading a file</comment> <comment>Message shown when downloading a file</comment>
</data> </data>
<data name="AttachmentLargeWarning" xml:space="preserve"> <data name="AttachmentLargeWarning" xml:space="preserve">
<value>此附件大小是 {0} 。您确定要下载到设备吗?</value> <value>此附件大小为 {0} 。确定要将其下载到您的设备上吗?</value>
<comment>The placeholder will show the file size of the attachment. Ex "25 MB"</comment> <comment>The placeholder will show the file size of the attachment. Ex "25 MB"</comment>
</data> </data>
<data name="AuthenticatorKey" xml:space="preserve"> <data name="AuthenticatorKey" xml:space="preserve">
@ -1340,7 +1340,7 @@
<value>所有项目</value> <value>所有项目</value>
</data> </data>
<data name="URIs" xml:space="preserve"> <data name="URIs" xml:space="preserve">
<value>URIs</value> <value>URI</value>
<comment>Plural form of a URI</comment> <comment>Plural form of a URI</comment>
</data> </data>
<data name="CheckingPassword" xml:space="preserve"> <data name="CheckingPassword" xml:space="preserve">
@ -1556,7 +1556,7 @@
<value>退出</value> <value>退出</value>
</data> </data>
<data name="ExitConfirmation" xml:space="preserve"> <data name="ExitConfirmation" xml:space="preserve">
<value>确定要退出 Bitwarden 吗?</value> <value>确定要退出 Bitwarden 吗?</value>
</data> </data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve"> <data name="PINRequireMasterPasswordRestart" xml:space="preserve">
<value>当应用程序重启时,要求使用主密码解锁吗?</value> <value>当应用程序重启时,要求使用主密码解锁吗?</value>
@ -2098,7 +2098,7 @@
<value>{0} 正在使用客户管理加密的 SSO。继续操作将删除您的账户主密码并要求 SSO 登录。</value> <value>{0} 正在使用客户管理加密的 SSO。继续操作将删除您的账户主密码并要求 SSO 登录。</value>
</data> </data>
<data name="RemoveMasterPasswordWarning2" xml:space="preserve"> <data name="RemoveMasterPasswordWarning2" xml:space="preserve">
<value>如果您不想移除您的主密码,您可以退出这个组织。</value> <value>如果您不想移除您的主密码,您可以退出组织。</value>
</data> </data>
<data name="LeaveOrganization" xml:space="preserve"> <data name="LeaveOrganization" xml:space="preserve">
<value>退出组织</value> <value>退出组织</value>
@ -2432,7 +2432,7 @@
<value>API 访问令牌</value> <value>API 访问令牌</value>
</data> </data>
<data name="AreYouSureYouWantToOverwriteTheCurrentUsername" xml:space="preserve"> <data name="AreYouSureYouWantToOverwriteTheCurrentUsername" xml:space="preserve">
<value>确定要覆盖当前用户名吗?</value> <value>确定要覆盖当前用户名吗?</value>
</data> </data>
<data name="GenerateUsername" xml:space="preserve"> <data name="GenerateUsername" xml:space="preserve">
<value>生成用户名</value> <value>生成用户名</value>
@ -2527,7 +2527,7 @@
<value>拒绝所有请求</value> <value>拒绝所有请求</value>
</data> </data>
<data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve"> <data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve">
<value>确定要拒绝所有待处理的登录请求吗?</value> <value>确定要拒绝所有待处理的登录请求吗?</value>
</data> </data>
<data name="RequestsDeclined" xml:space="preserve"> <data name="RequestsDeclined" xml:space="preserve">
<value>请求被拒绝</value> <value>请求被拒绝</value>
@ -2846,7 +2846,7 @@
<value>Bitwarden 允许您使用组织与他人共享您的密码库项目。访问 bitwarden.com 网站以了解更多。</value> <value>Bitwarden 允许您使用组织与他人共享您的密码库项目。访问 bitwarden.com 网站以了解更多。</value>
</data> </data>
<data name="RateAppDescriptionLong" xml:space="preserve"> <data name="RateAppDescriptionLong" xml:space="preserve">
<value>帮助别人了解 Bitwarden 是否适合他们。立即访问应用商店并留下评分。</value> <value>帮助别人了解 Bitwarden 是否适合他们。立即访问 App Store 并留下评分。</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>当设备的深色模式启用时,选择要使用的深色主题。</value> <value>当设备的深色模式启用时,选择要使用的深色主题。</value>
@ -2861,4 +2861,13 @@
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>账户已注销。</value> <value>账户已注销。</value>
</data> </data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>您的组织权限已更新,要求您设置主密码。</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>您的组织要求您设置主密码。</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>设置解锁选项以更改您的密码库超时操作。</value>
</data>
</root> </root>

View file

@ -854,7 +854,7 @@
<value>若要繼續,請將您的 YubiKey 靠在裝置的背面或者將 YubiKey 插入您裝置的 USB 連接埠,然後按下按鈕。</value> <value>若要繼續,請將您的 YubiKey 靠在裝置的背面或者將 YubiKey 插入您裝置的 USB 連接埠,然後按下按鈕。</value>
</data> </data>
<data name="YubiKeyTitle" xml:space="preserve"> <data name="YubiKeyTitle" xml:space="preserve">
<value>YubiKey 安全鑰</value> <value>YubiKey 安全鑰</value>
<comment>"YubiKey" is the product name and should not be translated.</comment> <comment>"YubiKey" is the product name and should not be translated.</comment>
</data> </data>
<data name="AddNewAttachment" xml:space="preserve"> <data name="AddNewAttachment" xml:space="preserve">
@ -946,7 +946,7 @@
<value>更新加密金鑰前不能使用此功能。</value> <value>更新加密金鑰前不能使用此功能。</value>
</data> </data>
<data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve"> <data name="EncryptionKeyMigrationRequiredDescriptionLong" xml:space="preserve">
<value>Encryption key migration required. Please login through the web vault to update your encryption key.</value> <value>需要遷移加密金鑰。請透過網頁版密碼庫登入以更新您的加密金鑰。</value>
</data> </data>
<data name="LearnMore" xml:space="preserve"> <data name="LearnMore" xml:space="preserve">
<value>深入了解</value> <value>深入了解</value>
@ -1180,7 +1180,7 @@
<comment>What Apple calls their facial recognition reader.</comment> <comment>What Apple calls their facial recognition reader.</comment>
</data> </data>
<data name="FaceIDDirection" xml:space="preserve"> <data name="FaceIDDirection" xml:space="preserve">
<value>使用 Face ID 驗證</value> <value>使用 Face ID 驗證</value>
</data> </data>
<data name="UseFaceIDToUnlock" xml:space="preserve"> <data name="UseFaceIDToUnlock" xml:space="preserve">
<value>使用 Face ID 解鎖</value> <value>使用 Face ID 解鎖</value>
@ -1678,7 +1678,7 @@
<value>已成功匯出密碼庫</value> <value>已成功匯出密碼庫</value>
</data> </data>
<data name="Clone" xml:space="preserve"> <data name="Clone" xml:space="preserve">
<value>複製</value> <value>克隆</value>
<comment>Clone an entity (verb).</comment> <comment>Clone an entity (verb).</comment>
</data> </data>
<data name="PasswordGeneratorPolicyInEffect" xml:space="preserve"> <data name="PasswordGeneratorPolicyInEffect" xml:space="preserve">
@ -1741,10 +1741,10 @@
<comment>Confirmation alert message when soft-deleting a cipher.</comment> <comment>Confirmation alert message when soft-deleting a cipher.</comment>
</data> </data>
<data name="AccountBiometricInvalidated" xml:space="preserve"> <data name="AccountBiometricInvalidated" xml:space="preserve">
<value>Biometric unlock for this account is disabled pending verification of master password.</value> <value>該帳戶的生物特徵識別解鎖已被停用,等待驗證主密碼。</value>
</data> </data>
<data name="AccountBiometricInvalidatedExtension" xml:space="preserve"> <data name="AccountBiometricInvalidatedExtension" xml:space="preserve">
<value>Autofill biometric unlock for this account is disabled pending verification of master password.</value> <value>該帳戶的自動填入生物特徵識別解鎖已停用,等待驗證主密碼。</value>
</data> </data>
<data name="EnableSyncOnRefresh" xml:space="preserve"> <data name="EnableSyncOnRefresh" xml:space="preserve">
<value>啟用重新整理時同步</value> <value>啟用重新整理時同步</value>
@ -2110,10 +2110,10 @@
<value>FIDO2 WebAuthn</value> <value>FIDO2 WebAuthn</value>
</data> </data>
<data name="Fido2Instruction" xml:space="preserve"> <data name="Fido2Instruction" xml:space="preserve">
<value>若要繼續,請準備好 FIDO2 WebAuthn 相容的安全鑰,在下個畫面按下 [驗證 WebAuthn],接著遵循指引。</value> <value>若要繼續,請準備好 FIDO2 WebAuthn 相容的安全鑰,在下個畫面按下 [驗證 WebAuthn],接著遵循指引。</value>
</data> </data>
<data name="Fido2Desc" xml:space="preserve"> <data name="Fido2Desc" xml:space="preserve">
<value>使用 FIDO2 WebAuthn 驗證,您可以使用外部安全鑰進行驗證。</value> <value>使用 FIDO2 WebAuthn 驗證,您可以使用外部安全鑰進行驗證。</value>
</data> </data>
<data name="Fido2AuthenticateWebAuthn" xml:space="preserve"> <data name="Fido2AuthenticateWebAuthn" xml:space="preserve">
<value>驗證 WebAuthn</value> <value>驗證 WebAuthn</value>
@ -2131,10 +2131,10 @@
<value>您的組織原則正在影響您的密碼庫逾時時間。密碼庫逾時時間最多可以設定到 {0} 小時 {1} 分鐘。</value> <value>您的組織原則正在影響您的密碼庫逾時時間。密碼庫逾時時間最多可以設定到 {0} 小時 {1} 分鐘。</value>
</data> </data>
<data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve"> <data name="VaultTimeoutPolicyWithActionInEffect" xml:space="preserve">
<value>Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is {0} hour(s) and {1} minute(s). Your vault timeout action is set to {2}.</value> <value>您的組織原則正在影響您的密碼庫逾時時間。密碼庫逾時時間最多可以設定到 {0} 小時 {1} 分鐘。您密碼庫的逾時動作被設定為 {2}。</value>
</data> </data>
<data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve"> <data name="VaultTimeoutActionPolicyInEffect" xml:space="preserve">
<value>Your organization policies have set your vault timeout action to {0}.</value> <value>您的組織原則已將密碼庫逾時動作設定為 {0}。</value>
</data> </data>
<data name="VaultTimeoutToLarge" xml:space="preserve"> <data name="VaultTimeoutToLarge" xml:space="preserve">
<value>您的密碼庫逾時時間超過組織設定的限制。</value> <value>您的密碼庫逾時時間超過組織設定的限制。</value>
@ -2488,7 +2488,7 @@
<value>獲取主密碼提示</value> <value>獲取主密碼提示</value>
</data> </data>
<data name="LoggingInAsXOnY" xml:space="preserve"> <data name="LoggingInAsXOnY" xml:space="preserve">
<value>Logging in as {0} on {1}</value> <value>在 {1} 上以 {0} 身份登入</value>
</data> </data>
<data name="NotYou" xml:space="preserve"> <data name="NotYou" xml:space="preserve">
<value>不是您嗎?</value> <value>不是您嗎?</value>
@ -2524,16 +2524,16 @@
<value>待處理的登入請求。</value> <value>待處理的登入請求。</value>
</data> </data>
<data name="DeclineAllRequests" xml:space="preserve"> <data name="DeclineAllRequests" xml:space="preserve">
<value>Decline all requests</value> <value>拒絕所有要求</value>
</data> </data>
<data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve"> <data name="AreYouSureYouWantToDeclineAllPendingLogInRequests" xml:space="preserve">
<value>Are you sure you want to decline all pending login requests?</value> <value>您確定要拒絕所有待處理的登入要求嗎?</value>
</data> </data>
<data name="RequestsDeclined" xml:space="preserve"> <data name="RequestsDeclined" xml:space="preserve">
<value>Requests declined</value> <value>要求已拒絕</value>
</data> </data>
<data name="NoPendingRequests" xml:space="preserve"> <data name="NoPendingRequests" xml:space="preserve">
<value>No pending requests</value> <value>無待處理的要求</value>
</data> </data>
<data name="EnableCamerPermissionToUseTheScanner" xml:space="preserve"> <data name="EnableCamerPermissionToUseTheScanner" xml:space="preserve">
<value>允許相機權限以使用掃描功能</value> <value>允許相機權限以使用掃描功能</value>
@ -2542,13 +2542,13 @@
<value>語言</value> <value>語言</value>
</data> </data>
<data name="LanguageChangeXDescription" xml:space="preserve"> <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>
<data name="LanguageChangeRequiresAppRestart" xml:space="preserve"> <data name="LanguageChangeRequiresAppRestart" xml:space="preserve">
<value>Language change requires app restart</value> <value>變更語言需要重啓應用程式</value>
</data> </data>
<data name="DefaultSystem" xml:space="preserve"> <data name="DefaultSystem" xml:space="preserve">
<value>Default (System)</value> <value>預設(系統)</value>
</data> </data>
<data name="Important" xml:space="preserve"> <data name="Important" xml:space="preserve">
<value>重要</value> <value>重要</value>
@ -2584,22 +2584,22 @@
<value>強度不足且已暴露的主密碼</value> <value>強度不足且已暴露的主密碼</value>
</data> </data>
<data name="WeakPasswordIdentifiedAndFoundInADataBreachAlertDescription" xml:space="preserve"> <data name="WeakPasswordIdentifiedAndFoundInADataBreachAlertDescription" xml:space="preserve">
<value>是密碼強度不足,且在其他資料庫中找到這個密碼。使用一個強度足夠和獨特的密碼來保護您的帳號。請問您確定要用這個密碼嗎?</value> <value>密碼強度不足,且在資料外洩事件中找到了這個密碼。使用一個強度足夠和獨特的密碼來保護您的帳戶。您確定要使用這個密碼嗎?</value>
</data> </data>
<data name="OrganizationSsoIdentifierRequired" xml:space="preserve"> <data name="OrganizationSsoIdentifierRequired" xml:space="preserve">
<value>需要單一登入 (SSO) 組織識別碼。</value> <value>需要單一登入 (SSO) 組織識別碼。</value>
</data> </data>
<data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve"> <data name="AddTheKeyToAnExistingOrNewItem" xml:space="preserve">
<value>Add the key to an existing or new item</value> <value>將金輪新增到現有或新的項目</value>
</data> </data>
<data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve"> <data name="ThereAreNoItemsInYourVaultThatMatchX" xml:space="preserve">
<value>There are no items in your vault that match "{0}"</value> <value>您的密碼庫中沒有與「{0}」一致的項目</value>
</data> </data>
<data name="SearchForAnItemOrAddANewItem" xml:space="preserve"> <data name="SearchForAnItemOrAddANewItem" xml:space="preserve">
<value>Search for an item or add a new item</value> <value>搜尋項目或新增項目</value>
</data> </data>
<data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve"> <data name="ThereAreNoItemsThatMatchTheSearch" xml:space="preserve">
<value>There are no items that match the search</value> <value>您的密碼庫中沒有與搜尋一致的項目</value>
</data> </data>
<data name="US" xml:space="preserve"> <data name="US" xml:space="preserve">
<value>美國</value> <value>美國</value>
@ -2608,10 +2608,10 @@
<value>歐盟</value> <value>歐盟</value>
</data> </data>
<data name="SelfHosted" xml:space="preserve"> <data name="SelfHosted" xml:space="preserve">
<value>Self-hosted</value> <value>自我裝載</value>
</data> </data>
<data name="DataRegion" xml:space="preserve"> <data name="DataRegion" xml:space="preserve">
<value>Data region</value> <value>資料區域</value>
</data> </data>
<data name="Region" xml:space="preserve"> <data name="Region" xml:space="preserve">
<value>區域</value> <value>區域</value>
@ -2623,76 +2623,76 @@
<value>目前主密碼</value> <value>目前主密碼</value>
</data> </data>
<data name="LoggedIn" xml:space="preserve"> <data name="LoggedIn" xml:space="preserve">
<value>Logged in!</value> <value>已登入!</value>
</data> </data>
<data name="ApproveWithMyOtherDevice" xml:space="preserve"> <data name="ApproveWithMyOtherDevice" xml:space="preserve">
<value>Approve with my other device</value> <value>使用我的其他裝置核准</value>
</data> </data>
<data name="RequestAdminApproval" xml:space="preserve"> <data name="RequestAdminApproval" xml:space="preserve">
<value>Request admin approval</value> <value>要求管理員核准</value>
</data> </data>
<data name="ApproveWithMasterPassword" xml:space="preserve"> <data name="ApproveWithMasterPassword" xml:space="preserve">
<value>Approve with master password</value> <value>使用主密碼核准</value>
</data> </data>
<data name="TurnOffUsingPublicDevice" xml:space="preserve"> <data name="TurnOffUsingPublicDevice" xml:space="preserve">
<value>Turn off using a public device</value> <value>不允許使用公用裝置</value>
</data> </data>
<data name="RememberThisDevice" xml:space="preserve"> <data name="RememberThisDevice" xml:space="preserve">
<value>Remember this device</value> <value>記住這個裝置</value>
</data> </data>
<data name="Passkey" xml:space="preserve"> <data name="Passkey" xml:space="preserve">
<value>Passkey</value> <value>密碼金鑰</value>
</data> </data>
<data name="Passkeys" xml:space="preserve"> <data name="Passkeys" xml:space="preserve">
<value>Passkeys</value> <value>密碼金鑰</value>
</data> </data>
<data name="Application" xml:space="preserve"> <data name="Application" xml:space="preserve">
<value>應用程式</value> <value>應用程式</value>
</data> </data>
<data name="YouCannotEditPasskeyApplicationBecauseItWouldInvalidateThePasskey" xml:space="preserve"> <data name="YouCannotEditPasskeyApplicationBecauseItWouldInvalidateThePasskey" xml:space="preserve">
<value>You cannot edit passkey application because it would invalidate the passkey</value> <value>您不能編輯密碼金鑰應用程式,因為這會使密碼金鑰失效</value>
</data> </data>
<data name="PasskeyWillNotBeCopied" xml:space="preserve"> <data name="PasskeyWillNotBeCopied" xml:space="preserve">
<value>Passkey will not be copied</value> <value>密碼金鑰不會被複製</value>
</data> </data>
<data name="ThePasskeyWillNotBeCopiedToTheClonedItemDoYouWantToContinueCloningThisItem" xml:space="preserve"> <data name="ThePasskeyWillNotBeCopiedToTheClonedItemDoYouWantToContinueCloningThisItem" xml:space="preserve">
<value>The passkey will not be copied to the cloned item. Do you want to continue cloning this item?</value> <value>密碼金鑰不會被複製到克隆的項目。 您想繼續克隆該項目嗎?</value>
</data> </data>
<data name="CopyApplication" xml:space="preserve"> <data name="CopyApplication" xml:space="preserve">
<value>Copy application</value> <value>複製應用程式</value>
</data> </data>
<data name="AvailableForTwoStepLogin" xml:space="preserve"> <data name="AvailableForTwoStepLogin" xml:space="preserve">
<value>Available for two-step login</value> <value>可用於兩步驟登入</value>
</data> </data>
<data name="MasterPasswordRePromptHelp" xml:space="preserve"> <data name="MasterPasswordRePromptHelp" xml:space="preserve">
<value>Master password re-prompt help</value> <value>重新詢問主密碼幫助</value>
</data> </data>
<data name="UnlockingMayFailDueToInsufficientMemoryDecreaseYourKDFMemorySettingsToResolve" xml:space="preserve"> <data name="UnlockingMayFailDueToInsufficientMemoryDecreaseYourKDFMemorySettingsToResolve" xml:space="preserve">
<value>Unlocking may fail due to insufficient memory. Decrease your KDF memory settings or set up biometric unlock to resolve.</value> <value>由於記憶體不足,解鎖可能會失敗。請減少您的 KDF 記憶體設定或設定生物特徵識別解鎖來解決此問題。</value>
</data> </data>
<data name="InvalidAPIKey" xml:space="preserve"> <data name="InvalidAPIKey" xml:space="preserve">
<value>Invalid API key</value> <value>無效的 API 金輪</value>
</data> </data>
<data name="InvalidAPIToken" xml:space="preserve"> <data name="InvalidAPIToken" xml:space="preserve">
<value>Invalid API token</value> <value>無效的 API 權杖</value>
</data> </data>
<data name="AdminApprovalRequested" xml:space="preserve"> <data name="AdminApprovalRequested" xml:space="preserve">
<value>Admin approval requested</value> <value>已要求管理員核准</value>
</data> </data>
<data name="YourRequestHasBeenSentToYourAdmin" xml:space="preserve"> <data name="YourRequestHasBeenSentToYourAdmin" xml:space="preserve">
<value>Your request has been sent to your admin.</value> <value>您的要求已傳送給您的管理員</value>
</data> </data>
<data name="YouWillBeNotifiedOnceApproved" xml:space="preserve"> <data name="YouWillBeNotifiedOnceApproved" xml:space="preserve">
<value>You will be notified once approved. </value> <value>核准後將通知您。 </value>
</data> </data>
<data name="TroubleLoggingIn" xml:space="preserve"> <data name="TroubleLoggingIn" xml:space="preserve">
<value>Trouble logging in?</value> <value>登入時遇到困難?</value>
</data> </data>
<data name="LoggingInAsX" xml:space="preserve"> <data name="LoggingInAsX" xml:space="preserve">
<value>Logging in as {0}</value> <value>正以 {0} 身分登入</value>
</data> </data>
<data name="VaultTimeoutActionChangedToLogOut" xml:space="preserve"> <data name="VaultTimeoutActionChangedToLogOut" xml:space="preserve">
<value>Vault timeout action changed to log out</value> <value>密碼庫逾時動作已變更為登出</value>
</data> </data>
<data name="BlockAutoFill" xml:space="preserve"> <data name="BlockAutoFill" xml:space="preserve">
<value>封鎖表單自動填入功能</value> <value>封鎖表單自動填入功能</value>
@ -2738,127 +2738,136 @@
<value>無法一次編輯多組 URI</value> <value>無法一次編輯多組 URI</value>
</data> </data>
<data name="LoginApproved" xml:space="preserve"> <data name="LoginApproved" xml:space="preserve">
<value>Login approved</value> <value>登入已核准</value>
</data> </data>
<data name="LogInWithDeviceMustBeSetUpInTheSettingsOfTheBitwardenAppNeedAnotherOption" xml:space="preserve"> <data name="LogInWithDeviceMustBeSetUpInTheSettingsOfTheBitwardenAppNeedAnotherOption" xml:space="preserve">
<value>Log in with device must be set up in the settings of the Bitwarden app. Need another option?</value> <value>必須先在 Bitwarden 應用程式設定中開啟後,才可以使用裝置登入。要改用其他選項嗎?</value>
</data> </data>
<data name="LogInWithDevice" xml:space="preserve"> <data name="LogInWithDevice" xml:space="preserve">
<value>Log in with device</value> <value>使用裝置登入</value>
</data> </data>
<data name="LoggingInOn" xml:space="preserve"> <data name="LoggingInOn" xml:space="preserve">
<value>Logging in on</value> <value>正登入到</value>
</data> </data>
<data name="Vault" xml:space="preserve"> <data name="Vault" xml:space="preserve">
<value>Vault</value> <value>密碼庫</value>
</data> </data>
<data name="Appearance" xml:space="preserve"> <data name="Appearance" xml:space="preserve">
<value>Appearance</value> <value>外觀</value>
</data> </data>
<data name="AccountSecurity" xml:space="preserve"> <data name="AccountSecurity" xml:space="preserve">
<value>Account security</value> <value>帳戶安全性</value>
</data> </data>
<data name="BitwardenHelpCenter" xml:space="preserve"> <data name="BitwardenHelpCenter" xml:space="preserve">
<value>Bitwarden Help Center</value> <value>Bitwarden 幫助中心</value>
</data> </data>
<data name="ContactBitwardenSupport" xml:space="preserve"> <data name="ContactBitwardenSupport" xml:space="preserve">
<value>Contact Bitwarden support</value> <value>連絡 Bitwarden 支援</value>
</data> </data>
<data name="CopyAppInformation" xml:space="preserve"> <data name="CopyAppInformation" xml:space="preserve">
<value>Copy app information</value> <value>複製應用程式資訊</value>
</data> </data>
<data name="SyncNow" xml:space="preserve"> <data name="SyncNow" xml:space="preserve">
<value>Sync now</value> <value>立即同步</value>
</data> </data>
<data name="UnlockOptions" xml:space="preserve"> <data name="UnlockOptions" xml:space="preserve">
<value>Unlock options</value> <value>解鎖選項</value>
</data> </data>
<data name="SessionTimeout" xml:space="preserve"> <data name="SessionTimeout" xml:space="preserve">
<value>Session timeout</value> <value>工作階段逾時</value>
</data> </data>
<data name="SessionTimeoutAction" xml:space="preserve"> <data name="SessionTimeoutAction" xml:space="preserve">
<value>Session timeout action</value> <value>工作階段逾時動作</value>
</data> </data>
<data name="AccountFingerprintPhrase" xml:space="preserve"> <data name="AccountFingerprintPhrase" xml:space="preserve">
<value>Account fingerprint phrase</value> <value>帳戶指紋短語</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> <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>
<data name="OneHourAndOneMinute" xml:space="preserve"> <data name="OneHourAndOneMinute" xml:space="preserve">
<value>One hour and one minute</value> <value>1 小時 1 分鐘</value>
</data> </data>
<data name="OneHourAndXMinute" xml:space="preserve"> <data name="OneHourAndXMinute" xml:space="preserve">
<value>One hour and {0} minutes</value> <value>1 小時 {0} 分鐘</value>
</data> </data>
<data name="XHoursAndOneMinute" xml:space="preserve"> <data name="XHoursAndOneMinute" xml:space="preserve">
<value>{0} hours and one minute</value> <value>{0} 小時 1 分鐘</value>
</data> </data>
<data name="XHoursAndYMinutes" xml:space="preserve"> <data name="XHoursAndYMinutes" xml:space="preserve">
<value>{0} hours and {1} minutes</value> <value>{0} 小時 {1} 分鐘</value>
</data> </data>
<data name="XHours" xml:space="preserve"> <data name="XHours" xml:space="preserve">
<value>{0} hours</value> <value>{0} 小時</value>
</data> </data>
<data name="AutofillServicesExplanationLong" xml:space="preserve"> <data name="AutofillServicesExplanationLong" xml:space="preserve">
<value>The Android Autofill Framework is used to assist in filling login information into other apps on your device.</value> <value>Android 自動填入框架用於協助將登入資訊填入裝置上的其他應用程式。</value>
</data> </data>
<data name="UseInlineAutofillExplanationLong" xml:space="preserve"> <data name="UseInlineAutofillExplanationLong" xml:space="preserve">
<value>Use inline autofill if your selected keyboard supports it. Otherwise, use the default overlay.</value> <value>如果您選擇的鍵盤支持,請使用内嵌式自動填入。否則,使用預設覆蓋。</value>
</data> </data>
<data name="AdditionalOptions" xml:space="preserve"> <data name="AdditionalOptions" xml:space="preserve">
<value>Additional options</value> <value>額外選項</value>
</data> </data>
<data name="ContinueToWebApp" xml:space="preserve"> <data name="ContinueToWebApp" xml:space="preserve">
<value>Continue to web app?</value> <value>接下來造訪 Web App 嗎?</value>
</data> </data>
<data name="ContinueToX" xml:space="preserve"> <data name="ContinueToX" xml:space="preserve">
<value>Continue to {0}?</value> <value>接下來造訪 {0} 嗎?</value>
<comment>The parameter is an URL, like bitwarden.com.</comment> <comment>The parameter is an URL, like bitwarden.com.</comment>
</data> </data>
<data name="ContinueToHelpCenter" xml:space="preserve"> <data name="ContinueToHelpCenter" xml:space="preserve">
<value>Continue to Help center?</value> <value>接下來造訪幫助中心嗎?</value>
</data> </data>
<data name="ContinueToContactSupport" xml:space="preserve"> <data name="ContinueToContactSupport" xml:space="preserve">
<value>Continue to contact support?</value> <value>接下來聯絡支援嗎?</value>
</data> </data>
<data name="ContinueToAppStore" xml:space="preserve"> <data name="ContinueToAppStore" xml:space="preserve">
<value>Continue to app store?</value> <value>接下來造訪 App Store 嗎?</value>
</data> </data>
<data name="TwoStepLoginDescriptionLong" xml:space="preserve"> <data name="TwoStepLoginDescriptionLong" xml:space="preserve">
<value>Make your account more secure by setting up two-step login in the Bitwarden web app.</value> <value>在 Bitwarden Web 應用程式中設定兩步驟登入,讓您的帳戶更加安全。</value>
</data> </data>
<data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve"> <data name="ChangeMasterPasswordDescriptionLong" xml:space="preserve">
<value>You can change your master password on the Bitwarden web app.</value> <value>您可以在 Bitwarden Web 應用程式上變更主密碼。</value>
</data> </data>
<data name="YouCanImportDataToYourVaultOnX" xml:space="preserve"> <data name="YouCanImportDataToYourVaultOnX" xml:space="preserve">
<value>You can import data to your vault on {0}.</value> <value>您可以將資料匯入到 {0} 上的密碼庫。</value>
<comment>The parameter is an URL, like vault.bitwarden.com.</comment> <comment>The parameter is an URL, like vault.bitwarden.com.</comment>
</data> </data>
<data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve"> <data name="LearnMoreAboutHowToUseBitwardenOnTheHelpCenter" xml:space="preserve">
<value>Learn more about how to use Bitwarden on the Help center.</value> <value>在幫助中心了解有關如何使用 Bitwarden 的更多資訊。</value>
</data> </data>
<data name="ContactSupportDescriptionLong" xml:space="preserve"> <data name="ContactSupportDescriptionLong" xml:space="preserve">
<value>Cant find what you are looking for? Reach out to Bitwarden support on bitwarden.com.</value> <value>不能找到你想要的?請在 bitwarden.com 上聯絡 Bitwarden 支援。</value>
</data> </data>
<data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve"> <data name="ExploreMoreFeaturesOfYourBitwardenAccountOnTheWebApp" xml:space="preserve">
<value>Explore more features of your Bitwarden account on the web app.</value> <value>在 Web 應用程式上探索 Bitwarden 帳戶的更多功能。</value>
</data> </data>
<data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve"> <data name="LearnAboutOrganizationsDescriptionLong" xml:space="preserve">
<value>Bitwarden allows you to share your vault items with others by using an organization. Learn more on the bitwarden.com website.</value> <value>Bitwarden 可讓您透過組織與其他人共用您的密碼庫項目。請造訪 bitwarden.com 網站以了解更多資訊。</value>
</data> </data>
<data name="RateAppDescriptionLong" xml:space="preserve"> <data name="RateAppDescriptionLong" xml:space="preserve">
<value>Help others find out if Bitwarden is right for them. Visit the app store and leave a rating now.</value> <value>幫助其他人了解 Bitwarden 是否適合他們。立即造訪 App Store 並留下評分。</value>
</data> </data>
<data name="DefaultDarkThemeDescriptionLong" xml:space="preserve"> <data name="DefaultDarkThemeDescriptionLong" xml:space="preserve">
<value>Choose the dark theme to use when your devices dark mode is in use</value> <value>選擇當您的裝置使用深色模式時要使用的深色主題</value>
</data> </data>
<data name="CreatedXY" xml:space="preserve"> <data name="CreatedXY" xml:space="preserve">
<value>Created {0}, {1}</value> <value>建立於 {0}, {1}</value>
<comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment> <comment>To state the date/time in which the cipher was created: Created 03/21/2023, 09:25 AM. First parameter is the date and the second parameter is the time.</comment>
</data> </data>
<data name="TooManyAttempts" xml:space="preserve"> <data name="TooManyAttempts" xml:space="preserve">
<value>嘗試次數過多</value> <value>嘗試次數過多</value>
</data> </data>
<data name="AccountLoggedOutBiometricExceeded" xml:space="preserve"> <data name="AccountLoggedOutBiometricExceeded" xml:space="preserve">
<value>帳號已登出。</value> <value>帳戶已登出。</value>
</data>
<data name="YourOrganizationPermissionsWereUpdatedRequeringYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization permissions were updated, requiring you to set a master password.</value>
</data>
<data name="YourOrganizationRequiresYouToSetAMasterPassword" xml:space="preserve">
<value>Your organization requires you to set a master password.</value>
</data>
<data name="SetUpAnUnlockOptionToChangeYourVaultTimeoutAction" xml:space="preserve">
<value>Set up an unlock option to change your vault timeout action.</value>
</data> </data>
</root> </root>

View file

@ -6,6 +6,7 @@
x:Class="Bit.App.Styles.ControlTemplates"> x:Class="Bit.App.Styles.ControlTemplates">
<u:StringHasValueConverter x:Key="stringHasValueConverter" /> <u:StringHasValueConverter x:Key="stringHasValueConverter" />
<u:BoolEnablementToTextColorConverter x:Key="boolEnablementToTextColorConverter" />
<ControlTemplate x:Key="SettingControlTemplate"> <ControlTemplate x:Key="SettingControlTemplate">
<Grid <Grid
@ -17,6 +18,7 @@
Grid.Column="0" Grid.Column="0"
MaxLines="2" MaxLines="2"
Text="{TemplateBinding Title}" Text="{TemplateBinding Title}"
TextColor="{TemplateBinding IsEnabled, Converter={StaticResource boolEnablementToTextColorConverter}}"
HorizontalOptions="StartAndExpand" HorizontalOptions="StartAndExpand"
LineBreakMode="TailTruncation" /> LineBreakMode="TailTruncation" />

View file

@ -9,7 +9,7 @@ using System.Threading.Tasks;
using Bit.Core.Abstractions; using Bit.Core.Abstractions;
using Bit.Core.Enums; using Bit.Core.Enums;
using Bit.Core.Exceptions; using Bit.Core.Exceptions;
using Bit.Core.Models.Domain; using Bit.Core.Models.Data;
using Bit.Core.Models.Request; using Bit.Core.Models.Request;
using Bit.Core.Models.Response; using Bit.Core.Models.Response;
using Bit.Core.Utilities; using Bit.Core.Utilities;
@ -55,7 +55,7 @@ namespace Bit.Core.Services
public string IdentityBaseUrl { get; set; } public string IdentityBaseUrl { get; set; }
public string EventsBaseUrl { get; set; } public string EventsBaseUrl { get; set; }
public void SetUrls(EnvironmentUrls urls) public void SetUrls(EnvironmentUrlData urls)
{ {
UrlsSet = true; UrlsSet = true;
if (!string.IsNullOrWhiteSpace(urls.Base)) if (!string.IsNullOrWhiteSpace(urls.Base))

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