diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index ffd331900..a47d79835 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -57,7 +57,7 @@ jobs:
android:
name: Android
- runs-on: windows-2019
+ runs-on: windows-2022
needs: setup
steps:
- name: Setup NuGet
@@ -68,6 +68,26 @@ jobs:
- name: Set up MSBuild
uses: microsoft/setup-msbuild@ab534842b4bdf384b8aaf93765dc6f721d9f5fab
+ - name: Work Around for broken Windows 2022 Runner Image
+ run: |
+ Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
+ $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
+ $componentsToAdd = @(
+ "Component.Xamarin"
+ )
+ [string]$workloadArgs = $componentsToAdd | ForEach-Object {" --add " + $_}
+ $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
+ $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
+ if ($process.ExitCode -eq 0)
+ {
+ Write-Host "components have been successfully added"
+ }
+ else
+ {
+ Write-Host "components were not installed"
+ exit 1
+ }
+
- name: Print environment
run: |
nuget help | grep Version
@@ -212,7 +232,7 @@ jobs:
f-droid:
name: F-Droid Build
- runs-on: windows-2019
+ runs-on: windows-2022
steps:
- name: Setup NuGet
uses: nuget/setup-nuget@b2bc17b761a1d88cab755a776c7922eb26eefbfa # v1.0.6
@@ -222,6 +242,26 @@ jobs:
- name: Set up MSBuild
uses: microsoft/setup-msbuild@ab534842b4bdf384b8aaf93765dc6f721d9f5fab
+ - name: Work Around for broken Windows 2022 Runner Image
+ run: |
+ Set-Location "C:\Program Files (x86)\Microsoft Visual Studio\Installer\"
+ $InstallPath = "C:\Program Files\Microsoft Visual Studio\2022\Enterprise"
+ $componentsToAdd = @(
+ "Component.Xamarin"
+ )
+ [string]$workloadArgs = $componentsToAdd | ForEach-Object {" --add " + $_}
+ $Arguments = ('/c', "vs_installer.exe", 'modify', '--installPath', "`"$InstallPath`"",$workloadArgs, '--quiet', '--norestart', '--nocache')
+ $process = Start-Process -FilePath cmd.exe -ArgumentList $Arguments -Wait -PassThru -WindowStyle Hidden
+ if ($process.ExitCode -eq 0)
+ {
+ Write-Host "components have been successfully added"
+ }
+ else
+ {
+ Write-Host "components were not installed"
+ exit 1
+ }
+
- name: Print environment
run: |
nuget help | grep Version
diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml
index 782af2d0d..90fb1f826 100644
--- a/.github/workflows/crowdin-pull.yml
+++ b/.github/workflows/crowdin-pull.yml
@@ -30,7 +30,7 @@ jobs:
secrets: "crowdin-api-token"
- name: Download translations
- uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea
+ uses: crowdin/github-action@12143a68c213f3c6d9913c9e5023224f7231face
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index ef5c19d2b..b6a054d25 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -53,6 +53,17 @@ jobs:
BRANCH_NAME=$(basename ${{ github.ref }})
echo "::set-output name=branch-name::$BRANCH_NAME"
+ - name: Create GitHub deployment
+ uses: chrnorm/deployment-action@1b599fe41a0ef1f95191e7f2eec4743f2d7dfc48
+ id: deployment
+ with:
+ token: '${{ secrets.GITHUB_TOKEN }}'
+ initial-status: 'in_progress'
+ environment: 'production'
+ description: 'Deployment ${{ steps.version.outputs.version }} from branch ${{ steps.branch.outputs.branch-name }}'
+ task: release
+
+
- name: Download all artifacts
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
uses: dawidd6/action-download-artifact@575b1e4167df67acf7e692af784566618b23c71e # v2.17.10
@@ -87,6 +98,22 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
+ - name: Update deployment status to Success
+ if: ${{ success() }}
+ uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86
+ with:
+ token: '${{ secrets.GITHUB_TOKEN }}'
+ state: 'success'
+ deployment-id: ${{ steps.deployment.outputs.deployment_id }}
+
+ - name: Update deployment status to Failure
+ if: ${{ failure() }}
+ uses: chrnorm/deployment-status@07b3930847f65e71c9c6802ff5a402f6dfb46b86
+ with:
+ token: '${{ secrets.GITHUB_TOKEN }}'
+ state: 'failure'
+ deployment-id: ${{ steps.deployment.outputs.deployment_id }}
+
f-droid:
name: F-Droid Release
diff --git a/.github/workflows/version-auto-bump.yml b/.github/workflows/version-auto-bump.yml
index f632f99bd..fefb1f191 100644
--- a/.github/workflows/version-auto-bump.yml
+++ b/.github/workflows/version-auto-bump.yml
@@ -1,15 +1,67 @@
+---
name: Version Auto Bump
on:
- # For testing only
- workflow_dispatch:
- inputs: {}
+ release:
+ types: [published]
jobs:
setup:
name: "Setup"
runs-on: ubuntu-20.04
+ outputs:
+ version_number: ${{ steps.version.outputs.new-version }}
steps:
- - name: Stub for testing
- run: echo "this is a stub"
\ No newline at end of file
+ - name: Checkout Branch
+ uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
+
+ - name: Get version to bump
+ id: version
+ env:
+ RELEASE_TAG: ${{ github.event.release.tag }}
+ run: |
+ CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\1/')
+ CURR_VER=$(echo $RELEASE_TAG | sed -r 's/v([0-9]{4}\.[0-9]\.)([0-9])/\2/')
+ echo $CURR_VER
+
+ ((CURR_VER++))
+ NEW_VER=$CURR_MAJOR$CURR_VER
+
+ echo $NEW_VER
+
+ echo "::set-output name=new-version::$NEW_VER"
+
+ trigger_version_bump:
+ name: "Trigger version bump workflow"
+ runs-on: ubuntu-20.04
+ needs:
+ - setup
+ steps:
+ - name: Login to Azure
+ uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010
+ with:
+ creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }}
+
+ - name: Retrieve secrets
+ id: retrieve-secrets
+ env:
+ KEYVAULT: bitwarden-prod-kv
+ SECRET: "github-pat-bitwarden-devops-bot-repo-scope"
+ run: |
+ VALUE=$(az keyvault secret show --vault-name $KEYVAULT --name $SECRET --query value --output tsv)
+ echo "::add-mask::$VALUE"
+ echo "::set-output name=$SECRET::$VALUE"
+
+ - name: Call GitHub API to trigger workflow bump
+ env:
+ TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }}
+ VERSION: ${{ needs.setup.outputs.version_number}}
+ run: |
+ JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION")
+ curl \
+ -X POST \
+ -i -u bitwarden-devops-bot:$TOKEN \
+ -H "Accept: application/vnd.github.v3+json" \
+ https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \
+ -d $JSON_STRING
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 000000000..6c498a64b
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,22 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": [
+ "config:base",
+ "schedule:monthly",
+ ":maintainLockFilesMonthly",
+ ":preserveSemverRanges",
+ ":rebaseStalePrs",
+ ":disableDependencyDashboard"
+ ],
+ "enabledManagers": [
+ "nuget"
+ ],
+ "packageRules": [
+ {
+ "matchManagers": ["nuget"],
+ "groupName": "Nuget updates",
+ "groupSlug": "nuget",
+ "separateMajorMinor": false
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 8826eb443..f85cd5c15 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -151,6 +151,7 @@
+
diff --git a/src/Android/Effects/NoEmojiKeyboardEffect.cs b/src/Android/Effects/NoEmojiKeyboardEffect.cs
new file mode 100644
index 000000000..618d9d487
--- /dev/null
+++ b/src/Android/Effects/NoEmojiKeyboardEffect.cs
@@ -0,0 +1,24 @@
+using Android.Widget;
+using Bit.Droid.Effects;
+using Xamarin.Forms;
+using Xamarin.Forms.Platform.Android;
+
+[assembly: ExportEffect(typeof(NoEmojiKeyboardEffect), nameof(NoEmojiKeyboardEffect))]
+namespace Bit.Droid.Effects
+{
+ public class NoEmojiKeyboardEffect : PlatformEffect
+ {
+ protected override void OnAttached()
+ {
+ if (Control is EditText editText)
+ {
+ editText.InputType = Android.Text.InputTypes.ClassText | Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagMultiLine;
+ }
+ }
+
+ protected override void OnDetached()
+ {
+ }
+ }
+}
+
diff --git a/src/Android/Properties/AndroidManifest.xml b/src/Android/Properties/AndroidManifest.xml
index 6cc83c347..12fe37d13 100644
--- a/src/Android/Properties/AndroidManifest.xml
+++ b/src/Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
@@ -9,6 +9,7 @@
+
diff --git a/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml b/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml
new file mode 100644
index 000000000..00ecc3415
--- /dev/null
+++ b/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml.cs b/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml.cs
new file mode 100644
index 000000000..e4a53c988
--- /dev/null
+++ b/src/App/Controls/AuthenticatorViewCell/AuthenticatorViewCell.xaml.cs
@@ -0,0 +1,67 @@
+using System;
+using Bit.App.Pages;
+using Bit.App.Utilities;
+using Bit.Core.Models.View;
+using Bit.Core.Utilities;
+using Xamarin.Forms;
+
+namespace Bit.App.Controls
+{
+ public partial class AuthenticatorViewCell : ExtendedGrid
+ {
+ public static readonly BindableProperty CipherProperty = BindableProperty.Create(
+ nameof(Cipher), typeof(CipherView), typeof(AuthenticatorViewCell), default(CipherView), BindingMode.TwoWay);
+
+ public static readonly BindableProperty WebsiteIconsEnabledProperty = BindableProperty.Create(
+ nameof(WebsiteIconsEnabled), typeof(bool?), typeof(AuthenticatorViewCell));
+
+ public static readonly BindableProperty TotpSecProperty = BindableProperty.Create(
+ nameof(TotpSec), typeof(long), typeof(AuthenticatorViewCell));
+
+ public AuthenticatorViewCell()
+ {
+ InitializeComponent();
+ }
+
+ public Command CopyCommand { get; set; }
+
+ public CipherView Cipher
+ {
+ get => GetValue(CipherProperty) as CipherView;
+ set => SetValue(CipherProperty, value);
+ }
+
+ public bool? WebsiteIconsEnabled
+ {
+ get => (bool)GetValue(WebsiteIconsEnabledProperty);
+ set => SetValue(WebsiteIconsEnabledProperty, value);
+ }
+
+ public long TotpSec
+ {
+ get => (long)GetValue(TotpSecProperty);
+ set => SetValue(TotpSecProperty, value);
+ }
+
+ public bool ShowIconImage
+ {
+ get => WebsiteIconsEnabled ?? false
+ && !string.IsNullOrWhiteSpace(Cipher.Login?.Uri)
+ && IconImageSource != null;
+ }
+
+ private string _iconImageSource = string.Empty;
+ public string IconImageSource
+ {
+ get
+ {
+ if (_iconImageSource == string.Empty) // default value since icon source can return null
+ {
+ _iconImageSource = IconImageHelper.GetLoginIconImage(Cipher);
+ }
+ return _iconImageSource;
+ }
+
+ }
+ }
+}
diff --git a/src/App/Controls/CircularProgressbarView.cs b/src/App/Controls/CircularProgressbarView.cs
new file mode 100644
index 000000000..56e8a6c43
--- /dev/null
+++ b/src/App/Controls/CircularProgressbarView.cs
@@ -0,0 +1,139 @@
+using System;
+using System.Runtime.CompilerServices;
+using SkiaSharp;
+using SkiaSharp.Views.Forms;
+using Xamarin.Essentials;
+using Xamarin.Forms;
+
+namespace Bit.App.Controls
+{
+ public class CircularProgressbarView : SKCanvasView
+ {
+ private Circle _circle;
+
+ public static readonly BindableProperty ProgressProperty = BindableProperty.Create(
+ nameof(Progress), typeof(double), typeof(CircularProgressbarView), propertyChanged: OnProgressChanged);
+
+ public static readonly BindableProperty RadiusProperty = BindableProperty.Create(
+ nameof(Radius), typeof(float), typeof(CircularProgressbarView), 15f);
+
+ public static readonly BindableProperty StrokeWidthProperty = BindableProperty.Create(
+ nameof(StrokeWidth), typeof(float), typeof(CircularProgressbarView), 3f);
+
+ public static readonly BindableProperty ProgressColorProperty = BindableProperty.Create(
+ nameof(ProgressColor), typeof(Color), typeof(CircularProgressbarView), Color.Default);
+
+ public static readonly BindableProperty EndingProgressColorProperty = BindableProperty.Create(
+ nameof(EndingProgressColor), typeof(Color), typeof(CircularProgressbarView), Color.Default);
+
+ public static readonly BindableProperty BackgroundProgressColorProperty = BindableProperty.Create(
+ nameof(BackgroundProgressColor), typeof(Color), typeof(CircularProgressbarView), Color.Default);
+
+ public double Progress
+ {
+ get { return (double)GetValue(ProgressProperty); }
+ set { SetValue(ProgressProperty, value); }
+ }
+
+ public float Radius
+ {
+ get => (float)GetValue(RadiusProperty);
+ set => SetValue(RadiusProperty, value);
+ }
+ public float StrokeWidth
+ {
+ get => (float)GetValue(StrokeWidthProperty);
+ set => SetValue(StrokeWidthProperty, value);
+ }
+
+ public Color ProgressColor
+ {
+ get => (Color)GetValue(ProgressColorProperty);
+ set => SetValue(ProgressColorProperty, value);
+ }
+
+ public Color EndingProgressColor
+ {
+ get => (Color)GetValue(EndingProgressColorProperty);
+ set => SetValue(EndingProgressColorProperty, value);
+ }
+
+ public Color BackgroundProgressColor
+ {
+ get => (Color)GetValue(BackgroundProgressColorProperty);
+ set => SetValue(BackgroundProgressColorProperty, value);
+ }
+
+ private static void OnProgressChanged(BindableObject bindable, object oldvalue, object newvalue)
+ {
+ var context = bindable as CircularProgressbarView;
+ context.InvalidateSurface();
+ }
+
+ protected override void OnPropertyChanged([CallerMemberName] string propertyName = null)
+ {
+ base.OnPropertyChanged(propertyName);
+ if (propertyName == nameof(Progress))
+ {
+ _circle = new Circle(Radius * (float)DeviceDisplay.MainDisplayInfo.Density, (info) => new SKPoint((float)info.Width / 2, (float)info.Height / 2));
+ }
+ }
+
+ protected override void OnPaintSurface(SKPaintSurfaceEventArgs e)
+ {
+ base.OnPaintSurface(e);
+ if (_circle != null)
+ {
+ _circle.CalculateCenter(e.Info);
+ e.Surface.Canvas.Clear();
+ DrawCircle(e.Surface.Canvas, _circle, StrokeWidth * (float)DeviceDisplay.MainDisplayInfo.Density, BackgroundProgressColor.ToSKColor());
+ DrawArc(e.Surface.Canvas, _circle, () => (float)Progress, StrokeWidth * (float)DeviceDisplay.MainDisplayInfo.Density, ProgressColor.ToSKColor(), EndingProgressColor.ToSKColor());
+ }
+ }
+
+ private void DrawCircle(SKCanvas canvas, Circle circle, float strokewidth, SKColor color)
+ {
+ canvas.DrawCircle(circle.Center, circle.Redius,
+ new SKPaint()
+ {
+ StrokeWidth = strokewidth,
+ Color = color,
+ IsStroke = true,
+ IsAntialias = true
+ });
+ }
+
+ private void DrawArc(SKCanvas canvas, Circle circle, Func progress, float strokewidth, SKColor color, SKColor progressEndColor)
+ {
+ var progressValue = progress();
+ var angle = progressValue * 3.6f;
+ canvas.DrawArc(circle.Rect, 270, angle, false,
+ new SKPaint()
+ {
+ StrokeWidth = strokewidth,
+ Color = progressValue < 20f ? progressEndColor : color,
+ IsStroke = true,
+ IsAntialias = true
+ });
+ }
+ }
+
+ public class Circle
+ {
+ private readonly Func _centerFunc;
+
+ public Circle(float redius, Func centerFunc)
+ {
+ _centerFunc = centerFunc;
+ Redius = redius;
+ }
+ public SKPoint Center { get; set; }
+ public float Redius { get; set; }
+ public SKRect Rect => new SKRect(Center.X - Redius, Center.Y - Redius, Center.X + Redius, Center.Y + Redius);
+
+ public void CalculateCenter(SKImageInfo argsInfo)
+ {
+ Center = _centerFunc(argsInfo);
+ }
+ }
+}
diff --git a/src/App/Effects/NoEmojiKeyboardEffect.cs b/src/App/Effects/NoEmojiKeyboardEffect.cs
new file mode 100644
index 000000000..285d2b032
--- /dev/null
+++ b/src/App/Effects/NoEmojiKeyboardEffect.cs
@@ -0,0 +1,12 @@
+using System;
+using Xamarin.Forms;
+
+namespace Bit.App.Effects
+{
+ public class NoEmojiKeyboardEffect : RoutingEffect
+ {
+ public NoEmojiKeyboardEffect()
+ : base("Bitwarden.NoEmojiKeyboardEffect")
+ { }
+ }
+}
diff --git a/src/App/Pages/Accounts/HintPage.xaml b/src/App/Pages/Accounts/HintPage.xaml
index 1514acfbc..6eb09e2f3 100644
--- a/src/App/Pages/Accounts/HintPage.xaml
+++ b/src/App/Pages/Accounts/HintPage.xaml
@@ -14,7 +14,7 @@
-
+
diff --git a/src/App/Pages/Accounts/HintPage.xaml.cs b/src/App/Pages/Accounts/HintPage.xaml.cs
index 178ad5db1..b1f1d762a 100644
--- a/src/App/Pages/Accounts/HintPage.xaml.cs
+++ b/src/App/Pages/Accounts/HintPage.xaml.cs
@@ -1,5 +1,4 @@
-using System;
-using Xamarin.Forms;
+using Xamarin.Forms;
namespace Bit.App.Pages
{
@@ -24,14 +23,6 @@ namespace Bit.App.Pages
RequestFocus(_email);
}
- private async void Submit_Clicked(object sender, EventArgs e)
- {
- if (DoOnce())
- {
- await _vm.SubmitAsync();
- }
- }
-
private async void Close_Clicked(object sender, System.EventArgs e)
{
if (DoOnce())
diff --git a/src/App/Pages/Accounts/HintPageViewModel.cs b/src/App/Pages/Accounts/HintPageViewModel.cs
index b074012e8..2e59f98c9 100644
--- a/src/App/Pages/Accounts/HintPageViewModel.cs
+++ b/src/App/Pages/Accounts/HintPageViewModel.cs
@@ -1,10 +1,11 @@
using System.Threading.Tasks;
+using System.Windows.Input;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Bit.Core.Abstractions;
using Bit.Core.Exceptions;
using Bit.Core.Utilities;
-using Xamarin.Forms;
+using Xamarin.CommunityToolkit.ObjectModel;
namespace Bit.App.Pages
{
@@ -13,18 +14,26 @@ namespace Bit.App.Pages
private readonly IDeviceActionService _deviceActionService;
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IApiService _apiService;
+ private readonly ILogger _logger;
public HintPageViewModel()
{
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_apiService = ServiceContainer.Resolve("apiService");
+ _logger = ServiceContainer.Resolve();
PageTitle = AppResources.PasswordHint;
- SubmitCommand = new Command(async () => await SubmitAsync());
+ SubmitCommand = new AsyncCommand(SubmitAsync,
+ onException: ex =>
+ {
+ _logger.Exception(ex);
+ _deviceActionService.DisplayAlertAsync(AppResources.AnErrorHasOccurred, AppResources.GenericErrorMessage, AppResources.Ok).FireAndForget();
+ },
+ allowsMultipleExecutions: false);
}
- public Command SubmitCommand { get; }
+ public ICommand SubmitCommand { get; }
public string Email { get; set; }
public async Task SubmitAsync()
@@ -37,14 +46,14 @@ namespace Bit.App.Pages
}
if (string.IsNullOrWhiteSpace(Email))
{
- await Page.DisplayAlert(AppResources.AnErrorHasOccurred,
+ await _deviceActionService.DisplayAlertAsync(AppResources.AnErrorHasOccurred,
string.Format(AppResources.ValidationFieldRequired, AppResources.EmailAddress),
AppResources.Ok);
return;
}
if (!Email.Contains("@"))
{
- await Page.DisplayAlert(AppResources.AnErrorHasOccurred, AppResources.InvalidEmail, AppResources.Ok);
+ await _deviceActionService.DisplayAlertAsync(AppResources.AnErrorHasOccurred, AppResources.InvalidEmail, AppResources.Ok);
return;
}
@@ -54,7 +63,7 @@ namespace Bit.App.Pages
await _apiService.PostPasswordHintAsync(
new Core.Models.Request.PasswordHintRequest { Email = Email });
await _deviceActionService.HideLoadingAsync();
- await Page.DisplayAlert(null, AppResources.PasswordHintAlert, AppResources.Ok);
+ await _deviceActionService.DisplayAlertAsync(null, AppResources.PasswordHintAlert, AppResources.Ok);
await Page.Navigation.PopModalAsync();
}
catch (ApiException e)
diff --git a/src/App/Pages/Accounts/LoginPage.xaml b/src/App/Pages/Accounts/LoginPage.xaml
index 3975a0ccb..e1627cb04 100644
--- a/src/App/Pages/Accounts/LoginPage.xaml
+++ b/src/App/Pages/Accounts/LoginPage.xaml
@@ -55,6 +55,7 @@
diff --git a/src/App/Pages/Accounts/LoginPage.xaml.cs b/src/App/Pages/Accounts/LoginPage.xaml.cs
index 22e3f49e2..b6e74e1c9 100644
--- a/src/App/Pages/Accounts/LoginPage.xaml.cs
+++ b/src/App/Pages/Accounts/LoginPage.xaml.cs
@@ -1,8 +1,8 @@
using System;
using System.Threading.Tasks;
using Bit.App.Models;
-using Bit.App.Resources;
using Bit.App.Utilities;
+using Bit.Core.Abstractions;
using Bit.Core.Utilities;
using Xamarin.Forms;
@@ -15,6 +15,8 @@ namespace Bit.App.Pages
private bool _inputFocused;
+ readonly LazyResolve _logger = new LazyResolve("logger");
+
public LoginPage(string email = null, AppOptions appOptions = null)
{
_appOptions = appOptions;
@@ -30,11 +32,10 @@ namespace Bit.App.Pages
await _accountListOverlay.HideAsync();
await Navigation.PopModalAsync();
};
- if (!string.IsNullOrWhiteSpace(email))
- {
- _email.IsEnabled = false;
- }
- else
+ _vm.IsEmailEnabled = string.IsNullOrWhiteSpace(email);
+ _vm.IsIosExtension = _appOptions?.IosExtension ?? false;
+
+ if (_vm.IsEmailEnabled)
{
_vm.ShowCancelButton = true;
}
@@ -53,7 +54,7 @@ namespace Bit.App.Pages
ToolbarItems.Add(_getPasswordHint);
}
- if (Device.RuntimePlatform == Device.Android && !_email.IsEnabled)
+ if (Device.RuntimePlatform == Device.Android && !_vm.IsEmailEnabled)
{
ToolbarItems.Add(_removeAccount);
}
@@ -110,7 +111,7 @@ namespace Bit.App.Pages
{
if (DoOnce())
{
- await _vm.LogInAsync(true, _email.IsEnabled);
+ await _vm.LogInAsync(true, _vm.IsEmailEnabled);
}
}
@@ -139,26 +140,16 @@ namespace Bit.App.Pages
}
}
- private async void More_Clicked(object sender, System.EventArgs e)
+ private async void More_Clicked(object sender, EventArgs e)
{
- await _accountListOverlay.HideAsync();
- if (!DoOnce())
+ try
{
- return;
+ await _accountListOverlay.HideAsync();
+ _vm.MoreCommand.Execute(null);
}
-
- var buttons = _email.IsEnabled ? new[] { AppResources.GetPasswordHint }
- : new[] { AppResources.GetPasswordHint, AppResources.RemoveAccount };
- var selection = await DisplayActionSheet(AppResources.Options,
- AppResources.Cancel, null, buttons);
-
- if (selection == AppResources.GetPasswordHint)
+ catch (Exception ex)
{
- await Navigation.PushModalAsync(new NavigationPage(new HintPage()));
- }
- else if (selection == AppResources.RemoveAccount)
- {
- await _vm.RemoveAccountAsync();
+ _logger.Value.Exception(ex);
}
}
diff --git a/src/App/Pages/Accounts/LoginPageViewModel.cs b/src/App/Pages/Accounts/LoginPageViewModel.cs
index 60cc5a247..593b55e91 100644
--- a/src/App/Pages/Accounts/LoginPageViewModel.cs
+++ b/src/App/Pages/Accounts/LoginPageViewModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
+using System.Windows.Input;
using Bit.App.Abstractions;
using Bit.App.Controls;
using Bit.App.Resources;
@@ -8,6 +9,7 @@ using Bit.Core;
using Bit.Core.Abstractions;
using Bit.Core.Exceptions;
using Bit.Core.Utilities;
+using Xamarin.CommunityToolkit.ObjectModel;
using Xamarin.Forms;
namespace Bit.App.Pages
@@ -28,6 +30,7 @@ namespace Bit.App.Pages
private bool _showCancelButton;
private string _email;
private string _masterPassword;
+ private bool _isEmailEnabled;
public LoginPageViewModel()
{
@@ -44,6 +47,7 @@ namespace Bit.App.Pages
PageTitle = AppResources.Bitwarden;
TogglePasswordCommand = new Command(TogglePassword);
LogInCommand = new Command(async () => await LogInAsync());
+ MoreCommand = new AsyncCommand(MoreAsync, onException: _logger.Exception, allowsMultipleExecutions: false);
AccountSwitchingOverlayViewModel = new AccountSwitchingOverlayViewModel(_stateService, _messagingService, _logger)
{
@@ -81,10 +85,19 @@ namespace Bit.App.Pages
set => SetProperty(ref _masterPassword, value);
}
+ public bool IsEmailEnabled
+ {
+ get => _isEmailEnabled;
+ set => SetProperty(ref _isEmailEnabled, value);
+ }
+
+ public bool IsIosExtension { get; set; }
+
public AccountSwitchingOverlayViewModel AccountSwitchingOverlayViewModel { get; }
public Command LogInCommand { get; }
public Command TogglePasswordCommand { get; }
+ public ICommand MoreCommand { get; internal set; }
public string ShowPasswordIcon => ShowPassword ? BitwardenIcons.EyeSlash : BitwardenIcons.Eye;
public string PasswordVisibilityAccessibilityText => ShowPassword ? AppResources.PasswordIsVisibleTapToHide : AppResources.PasswordIsNotVisibleTapToShow;
public Action StartTwoFactorAction { get; set; }
@@ -201,6 +214,28 @@ namespace Bit.App.Pages
}
}
+ private async Task MoreAsync()
+ {
+ var buttons = IsEmailEnabled
+ ? new[] { AppResources.GetPasswordHint }
+ : new[] { AppResources.GetPasswordHint, AppResources.RemoveAccount };
+ var selection = await _deviceActionService.DisplayActionSheetAsync(AppResources.Options, AppResources.Cancel, null, buttons);
+
+ if (selection == AppResources.GetPasswordHint)
+ {
+ var hintNavigationPage = new NavigationPage(new HintPage());
+ if (IsIosExtension)
+ {
+ ThemeManager.ApplyResourcesTo(hintNavigationPage);
+ }
+ await Page.Navigation.PushModalAsync(hintNavigationPage);
+ }
+ else if (selection == AppResources.RemoveAccount)
+ {
+ await RemoveAccountAsync();
+ }
+ }
+
public void TogglePassword()
{
ShowPassword = !ShowPassword;
diff --git a/src/App/Pages/Accounts/LoginSsoPage.xaml.cs b/src/App/Pages/Accounts/LoginSsoPage.xaml.cs
index 5b7878e55..3871dc8e5 100644
--- a/src/App/Pages/Accounts/LoginSsoPage.xaml.cs
+++ b/src/App/Pages/Accounts/LoginSsoPage.xaml.cs
@@ -69,12 +69,12 @@ namespace Bit.App.Pages
}
}
- private async void LogIn_Clicked(object sender, EventArgs e)
+ private void LogIn_Clicked(object sender, EventArgs e)
{
if (DoOnce())
{
CopyAppOptions();
- await _vm.LogInAsync();
+ _vm.LogInCommand.Execute(null);
}
}
diff --git a/src/App/Pages/Accounts/LoginSsoPageViewModel.cs b/src/App/Pages/Accounts/LoginSsoPageViewModel.cs
index 61dad0114..616e3ad40 100644
--- a/src/App/Pages/Accounts/LoginSsoPageViewModel.cs
+++ b/src/App/Pages/Accounts/LoginSsoPageViewModel.cs
@@ -1,5 +1,6 @@
using System;
using System.Threading.Tasks;
+using System.Windows.Input;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Bit.App.Utilities;
@@ -8,13 +9,15 @@ using Bit.Core.Enums;
using Bit.Core.Exceptions;
using Bit.Core.Models.Domain;
using Bit.Core.Utilities;
+using Xamarin.CommunityToolkit.ObjectModel;
using Xamarin.Essentials;
-using Xamarin.Forms;
namespace Bit.App.Pages
{
public class LoginSsoPageViewModel : BaseViewModel
{
+ private const string REDIRECT_URI = "bitwarden://sso-callback";
+
private readonly IDeviceActionService _deviceActionService;
private readonly IAuthService _authService;
private readonly ISyncService _syncService;
@@ -23,6 +26,7 @@ namespace Bit.App.Pages
private readonly ICryptoFunctionService _cryptoFunctionService;
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IStateService _stateService;
+ private readonly ILogger _logger;
private string _orgIdentifier;
@@ -37,9 +41,11 @@ namespace Bit.App.Pages
_cryptoFunctionService = ServiceContainer.Resolve("cryptoFunctionService");
_platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_stateService = ServiceContainer.Resolve("stateService");
+ _logger = ServiceContainer.Resolve("logger");
+
PageTitle = AppResources.Bitwarden;
- LogInCommand = new Command(async () => await LogInAsync());
+ LogInCommand = new AsyncCommand(LogInAsync, allowsMultipleExecutions: false);
}
public string OrgIdentifier
@@ -48,7 +54,7 @@ namespace Bit.App.Pages
set => SetProperty(ref _orgIdentifier, value);
}
- public Command LogInCommand { get; }
+ public ICommand LogInCommand { get; }
public Action StartTwoFactorAction { get; set; }
public Action StartSetPasswordAction { get; set; }
public Action SsoAuthSuccessAction { get; set; }
@@ -65,81 +71,91 @@ namespace Bit.App.Pages
public async Task LogInAsync()
{
- if (Connectivity.NetworkAccess == NetworkAccess.None)
- {
- await _platformUtilsService.ShowDialogAsync(AppResources.InternetConnectionRequiredMessage,
- AppResources.InternetConnectionRequiredTitle);
- return;
- }
- if (string.IsNullOrWhiteSpace(OrgIdentifier))
- {
- await _platformUtilsService.ShowDialogAsync(
- string.Format(AppResources.ValidationFieldRequired, AppResources.OrgIdentifier),
- AppResources.AnErrorHasOccurred,
- AppResources.Ok);
- return;
- }
-
- await _deviceActionService.ShowLoadingAsync(AppResources.LoggingIn);
- string ssoToken;
-
try
{
+ if (Connectivity.NetworkAccess == NetworkAccess.None)
+ {
+ await _platformUtilsService.ShowDialogAsync(AppResources.InternetConnectionRequiredMessage,
+ AppResources.InternetConnectionRequiredTitle);
+ return;
+ }
+ if (string.IsNullOrWhiteSpace(OrgIdentifier))
+ {
+ await _platformUtilsService.ShowDialogAsync(
+ string.Format(AppResources.ValidationFieldRequired, AppResources.OrgIdentifier),
+ AppResources.AnErrorHasOccurred,
+ AppResources.Ok);
+ return;
+ }
+
+ await _deviceActionService.ShowLoadingAsync(AppResources.LoggingIn);
+
var response = await _apiService.PreValidateSso(OrgIdentifier);
- ssoToken = response.Token;
+
+ if (string.IsNullOrWhiteSpace(response?.Token))
+ {
+ _logger.Error(response is null ? "Login SSO Error: response is null" : "Login SSO Error: response.Token is null or whitespace");
+ await _deviceActionService.HideLoadingAsync();
+ await _platformUtilsService.ShowDialogAsync(AppResources.LoginSsoError);
+ return;
+ }
+
+ var ssoToken = response.Token;
+
+
+ var passwordOptions = new PasswordGenerationOptions(true);
+ passwordOptions.Length = 64;
+
+ var codeVerifier = await _passwordGenerationService.GeneratePasswordAsync(passwordOptions);
+ var codeVerifierHash = await _cryptoFunctionService.HashAsync(codeVerifier, CryptoHashAlgorithm.Sha256);
+ var codeChallenge = CoreHelpers.Base64UrlEncode(codeVerifierHash);
+
+ var state = await _passwordGenerationService.GeneratePasswordAsync(passwordOptions);
+
+ var url = _apiService.IdentityBaseUrl + "/connect/authorize?" +
+ "client_id=" + _platformUtilsService.GetClientType().GetString() + "&" +
+ "redirect_uri=" + Uri.EscapeDataString(REDIRECT_URI) + "&" +
+ "response_type=code&scope=api%20offline_access&" +
+ "state=" + state + "&code_challenge=" + codeChallenge + "&" +
+ "code_challenge_method=S256&response_mode=query&" +
+ "domain_hint=" + Uri.EscapeDataString(OrgIdentifier) + "&" +
+ "ssoToken=" + Uri.EscapeDataString(ssoToken);
+
+ WebAuthenticatorResult authResult = null;
+
+ authResult = await WebAuthenticator.AuthenticateAsync(new Uri(url),
+ new Uri(REDIRECT_URI));
+
+
+ var code = GetResultCode(authResult, state);
+ if (!string.IsNullOrEmpty(code))
+ {
+ await LogIn(code, codeVerifier, OrgIdentifier);
+ }
+ else
+ {
+ await _deviceActionService.HideLoadingAsync();
+ await _platformUtilsService.ShowDialogAsync(AppResources.LoginSsoError,
+ AppResources.AnErrorHasOccurred);
+ }
}
catch (ApiException e)
{
+ _logger.Exception(e);
await _deviceActionService.HideLoadingAsync();
- await _platformUtilsService.ShowDialogAsync(
- (e?.Error != null ? e.Error.GetSingleMessage() : AppResources.LoginSsoError),
+ await _platformUtilsService.ShowDialogAsync(e?.Error?.GetSingleMessage() ?? AppResources.LoginSsoError,
AppResources.AnErrorHasOccurred);
- return;
- }
-
- var passwordOptions = new PasswordGenerationOptions(true);
- passwordOptions.Length = 64;
-
- var codeVerifier = await _passwordGenerationService.GeneratePasswordAsync(passwordOptions);
- var codeVerifierHash = await _cryptoFunctionService.HashAsync(codeVerifier, CryptoHashAlgorithm.Sha256);
- var codeChallenge = CoreHelpers.Base64UrlEncode(codeVerifierHash);
-
- var state = await _passwordGenerationService.GeneratePasswordAsync(passwordOptions);
-
- var redirectUri = "bitwarden://sso-callback";
-
- var url = _apiService.IdentityBaseUrl + "/connect/authorize?" +
- "client_id=" + _platformUtilsService.GetClientType().GetString() + "&" +
- "redirect_uri=" + Uri.EscapeDataString(redirectUri) + "&" +
- "response_type=code&scope=api%20offline_access&" +
- "state=" + state + "&code_challenge=" + codeChallenge + "&" +
- "code_challenge_method=S256&response_mode=query&" +
- "domain_hint=" + Uri.EscapeDataString(OrgIdentifier) + "&" +
- "ssoToken=" + Uri.EscapeDataString(ssoToken);
-
- WebAuthenticatorResult authResult = null;
- try
- {
- authResult = await WebAuthenticator.AuthenticateAsync(new Uri(url),
- new Uri(redirectUri));
}
catch (TaskCanceledException)
{
// user canceled
await _deviceActionService.HideLoadingAsync();
- return;
}
-
- var code = GetResultCode(authResult, state);
- if (!string.IsNullOrEmpty(code))
- {
- await LogIn(code, codeVerifier, redirectUri, OrgIdentifier);
- }
- else
+ catch (Exception ex)
{
+ _logger.Exception(ex);
await _deviceActionService.HideLoadingAsync();
- await _platformUtilsService.ShowDialogAsync(AppResources.LoginSsoError,
- AppResources.AnErrorHasOccurred);
+ await _platformUtilsService.ShowDialogAsync(AppResources.GenericErrorMessage, AppResources.AnErrorHasOccurred);
}
}
@@ -158,11 +174,11 @@ namespace Bit.App.Pages
return code;
}
- private async Task LogIn(string code, string codeVerifier, string redirectUri, string orgId)
+ private async Task LogIn(string code, string codeVerifier, string orgId)
{
try
{
- var response = await _authService.LogInSsoAsync(code, codeVerifier, redirectUri, orgId);
+ var response = await _authService.LogInSsoAsync(code, codeVerifier, REDIRECT_URI, orgId);
await AppHelpers.ResetInvalidUnlockAttemptsAsync();
await _stateService.SetRememberedOrgIdentifierAsync(OrgIdentifier);
await _deviceActionService.HideLoadingAsync();
diff --git a/src/App/Pages/Accounts/RegisterPage.xaml b/src/App/Pages/Accounts/RegisterPage.xaml
index 1fa519145..b6db138f4 100644
--- a/src/App/Pages/Accounts/RegisterPage.xaml
+++ b/src/App/Pages/Accounts/RegisterPage.xaml
@@ -132,7 +132,7 @@
IsToggled="{Binding AcceptPolicies}"
StyleClass="box-value"
HorizontalOptions="Start"
- Margin="{Binding SwitchMargin}"/>
+ Margin="0, 0, 10, 0"/>
@@ -244,7 +265,7 @@
Grid.Row="1"
Grid.Column="0"
IsVisible="{Binding ShowCardNumber}" />
-
-
-
-
+ StyleClass="box-value" />
@@ -590,7 +611,7 @@
StyleClass="box-value"
IsVisible="{Binding ShowHiddenValue, Converter={StaticResource inverseBool}}" />
-
-
-
+
\ No newline at end of file
diff --git a/src/App/Pages/Vault/CipherDetailsPage.xaml.cs b/src/App/Pages/Vault/CipherDetailsPage.xaml.cs
index 5465d601a..52c9cbf7e 100644
--- a/src/App/Pages/Vault/CipherDetailsPage.xaml.cs
+++ b/src/App/Pages/Vault/CipherDetailsPage.xaml.cs
@@ -111,8 +111,8 @@ namespace Bit.App.Pages
{
base.OnDisappearing();
IsBusy = false;
+ _vm.StopCiphersTotpTick().FireAndForget();
_broadcasterService.Unsubscribe(nameof(CipherDetailsPage));
- _vm.CleanUp();
}
private async void PasswordHistory_Tapped(object sender, System.EventArgs e)
diff --git a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
index 15e238414..e5d172a46 100644
--- a/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
+++ b/src/App/Pages/Vault/CipherDetailsPageViewModel.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using Bit.App.Abstractions;
@@ -21,6 +22,7 @@ namespace Bit.App.Pages
{
private readonly ICipherService _cipherService;
private readonly IStateService _stateService;
+ private readonly IAuditService _auditService;
private readonly ITotpService _totpService;
private readonly IMessagingService _messagingService;
private readonly IEventService _eventService;
@@ -42,11 +44,15 @@ namespace Bit.App.Pages
private byte[] _attachmentData;
private string _attachmentFilename;
private bool _passwordReprompted;
+ private TotpHelper _totpTickHelper;
+ private CancellationTokenSource _totpTickCancellationToken;
+ private Task _totpTickTask;
public CipherDetailsPageViewModel()
{
_cipherService = ServiceContainer.Resolve("cipherService");
_stateService = ServiceContainer.Resolve("stateService");
+ _auditService = ServiceContainer.Resolve("auditService");
_totpService = ServiceContainer.Resolve("totpService");
_messagingService = ServiceContainer.Resolve("messagingService");
_eventService = ServiceContainer.Resolve("eventService");
@@ -91,6 +97,7 @@ namespace Bit.App.Pages
nameof(ShowIdentityAddress),
nameof(IsDeleted),
nameof(CanEdit),
+ nameof(ShowUpgradePremiumTotpText)
};
public List Fields
{
@@ -191,21 +198,22 @@ namespace Bit.App.Pages
return fs;
}
}
+
+ public bool ShowUpgradePremiumTotpText => !CanAccessPremium && ShowTotp;
public bool ShowUris => IsLogin && Cipher.Login.HasUris;
public bool ShowIdentityAddress => IsIdentity && (
!string.IsNullOrWhiteSpace(Cipher.Identity.Address1) ||
!string.IsNullOrWhiteSpace(Cipher.Identity.City) ||
!string.IsNullOrWhiteSpace(Cipher.Identity.Country));
public bool ShowAttachments => Cipher.HasAttachments && (CanAccessPremium || Cipher.OrganizationId != null);
- public bool ShowTotp => IsLogin && !string.IsNullOrWhiteSpace(Cipher.Login.Totp) &&
- !string.IsNullOrWhiteSpace(TotpCodeFormatted);
+ public bool ShowTotp => IsLogin && !string.IsNullOrWhiteSpace(Cipher.Login.Totp);
public string ShowPasswordIcon => ShowPassword ? BitwardenIcons.EyeSlash : BitwardenIcons.Eye;
public string ShowCardNumberIcon => ShowCardNumber ? BitwardenIcons.EyeSlash : BitwardenIcons.Eye;
public string ShowCardCodeIcon => ShowCardCode ? BitwardenIcons.EyeSlash : BitwardenIcons.Eye;
public string PasswordVisibilityAccessibilityText => ShowPassword ? AppResources.PasswordIsVisibleTapToHide : AppResources.PasswordIsNotVisibleTapToShow;
public string TotpCodeFormatted
{
- get => _totpCodeFormatted;
+ get => _canAccessPremium ? _totpCodeFormatted : string.Empty;
set => SetProperty(ref _totpCodeFormatted, value,
additionalPropertyNames: new string[]
{
@@ -215,7 +223,11 @@ namespace Bit.App.Pages
public string TotpSec
{
get => _totpSec;
- set => SetProperty(ref _totpSec, value);
+ set => SetProperty(ref _totpSec, value,
+ additionalPropertyNames: new string[]
+ {
+ nameof(TotpProgress)
+ });
}
public bool TotpLow
{
@@ -226,12 +238,12 @@ namespace Bit.App.Pages
Page.Resources["textTotp"] = ThemeManager.Resources()[value ? "text-danger" : "text-default"];
}
}
+ public double TotpProgress => string.IsNullOrEmpty(TotpSec) ? 0 : double.Parse(TotpSec) * 100 / 30;
public bool IsDeleted => Cipher.IsDeleted;
public bool CanEdit => !Cipher.IsDeleted;
public async Task LoadAsync(Action finishedLoadingAction = null)
{
- CleanUp();
var cipher = await _cipherService.GetAsync(CipherId);
if (cipher == null)
{
@@ -245,19 +257,10 @@ namespace Bit.App.Pages
if (Cipher.Type == Core.Enums.CipherType.Login && !string.IsNullOrWhiteSpace(Cipher.Login.Totp) &&
(Cipher.OrganizationUseTotp || CanAccessPremium))
{
- await TotpUpdateCodeAsync();
- var interval = _totpService.GetTimeInterval(Cipher.Login.Totp);
- await TotpTickAsync(interval);
- _totpInterval = DateTime.UtcNow;
- Device.StartTimer(new TimeSpan(0, 0, 1), () =>
- {
- if (_totpInterval == null)
- {
- return false;
- }
- var task = TotpTickAsync(interval);
- return true;
- });
+ _totpTickHelper = new TotpHelper(Cipher);
+ _totpTickCancellationToken?.Cancel();
+ _totpTickCancellationToken = new CancellationTokenSource();
+ _totpTickTask = new TimerTask(_logger, StartCiphersTotpTick, _totpTickCancellationToken).RunPeriodic();
}
if (_previousCipherId != CipherId)
{
@@ -268,9 +271,27 @@ namespace Bit.App.Pages
return true;
}
- public void CleanUp()
+ private async void StartCiphersTotpTick()
{
- _totpInterval = null;
+ try
+ {
+ await _totpTickHelper.GenerateNewTotpValues();
+ TotpSec = _totpTickHelper.TotpSec;
+ TotpCodeFormatted = _totpTickHelper.TotpCodeFormatted;
+ }
+ catch (Exception ex)
+ {
+ _logger.Exception(ex);
+ }
+ }
+
+ public async Task StopCiphersTotpTick()
+ {
+ _totpTickCancellationToken?.Cancel();
+ if (_totpTickTask != null)
+ {
+ await _totpTickTask;
+ }
}
public async void TogglePassword()
@@ -592,7 +613,7 @@ namespace Bit.App.Pages
}
else if (id == "LoginTotp")
{
- text = _totpCode;
+ text = TotpCodeFormatted.Replace(" ", string.Empty);
name = AppResources.VerificationCodeTotp;
}
else if (id == "LoginUri")
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml b/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml
index 6b46ab330..b68e6a9ce 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPage.xaml
@@ -6,6 +6,7 @@
xmlns:u="clr-namespace:Bit.App.Utilities"
xmlns:effects="clr-namespace:Bit.App.Effects"
xmlns:controls="clr-namespace:Bit.App.Controls"
+ xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
xmlns:core="clr-namespace:Bit.Core;assembly=BitwardenCore"
x:DataType="pages:GroupingsPageViewModel"
Title="{Binding PageTitle}"
@@ -89,6 +90,13 @@
BackgroundColor="{DynamicResource BackgroundColor}"/>
+
+
+
@@ -142,6 +150,7 @@
HeaderTemplate="{StaticResource headerTemplate}"
CipherTemplate="{StaticResource cipherTemplate}"
GroupTemplate="{StaticResource groupTemplate}"
+ AuthenticatorTemplate="{StaticResource authenticatorTemplate}"
LoginCipherTemplate="{StaticResource loginCipherTemplate}" />
@@ -168,7 +177,6 @@
AutomationProperties.IsInAccessibleTree="True"
AutomationProperties.Name="{u:I18n Filter}" />
-
("vaultTimeoutService");
_cipherService = ServiceContainer.Resolve("cipherService");
_deviceActionService = ServiceContainer.Resolve("deviceActionService");
+ _platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
_vm = BindingContext as GroupingsPageViewModel;
_vm.Page = this;
_vm.MainPage = mainPage;
@@ -61,6 +63,7 @@ namespace Bit.App.Pages
_vm.FolderId = folderId;
_vm.CollectionId = collectionId;
_vm.Deleted = deleted;
+ _vm.ShowTotp = showTotp;
_previousPage = previousPage;
if (pageTitle != null)
{
@@ -82,7 +85,7 @@ namespace Bit.App.Pages
ToolbarItems.Add(_lockItem);
ToolbarItems.Add(_exitItem);
}
- if (deleted)
+ if (deleted || showTotp)
{
_absLayout.Children.Remove(_fab);
ToolbarItems.Remove(_addItem);
@@ -202,10 +205,11 @@ namespace Bit.App.Pages
return false;
}
- protected override void OnDisappearing()
+ protected override async void OnDisappearing()
{
base.OnDisappearing();
IsBusy = false;
+ _vm.StopCiphersTotpTick().FireAndForget();
_broadcasterService.Unsubscribe(_pageName);
_vm.DisableRefreshing();
_accountAvatar?.OnDisappearing();
@@ -213,35 +217,54 @@ namespace Bit.App.Pages
private async void RowSelected(object sender, SelectionChangedEventArgs e)
{
- ((ExtendedCollectionView)sender).SelectedItem = null;
- if (!DoOnce())
+ try
{
- return;
- }
- if (!(e.CurrentSelection?.FirstOrDefault() is GroupingsPageListItem item))
- {
- return;
- }
+ ((ExtendedCollectionView)sender).SelectedItem = null;
+ if (!DoOnce())
+ {
+ return;
+ }
- if (item.IsTrash)
- {
- await _vm.SelectTrashAsync();
+ if (e.CurrentSelection?.FirstOrDefault() is GroupingsPageTOTPListItem totpItem)
+ {
+ await _vm.SelectCipherAsync(totpItem.Cipher);
+ return;
+ }
+
+ if (!(e.CurrentSelection?.FirstOrDefault() is GroupingsPageListItem item))
+ {
+ return;
+ }
+
+ if (item.IsTrash)
+ {
+ await _vm.SelectTrashAsync();
+ }
+ else if (item.IsTotpCode)
+ {
+ await _vm.SelectTotpCodesAsync();
+ }
+ else if (item.Cipher != null)
+ {
+ await _vm.SelectCipherAsync(item.Cipher);
+ }
+ else if (item.Folder != null)
+ {
+ await _vm.SelectFolderAsync(item.Folder);
+ }
+ else if (item.Collection != null)
+ {
+ await _vm.SelectCollectionAsync(item.Collection);
+ }
+ else if (item.Type != null)
+ {
+ await _vm.SelectTypeAsync(item.Type.Value);
+ }
}
- else if (item.Cipher != null)
+ catch (Exception ex)
{
- await _vm.SelectCipherAsync(item.Cipher);
- }
- else if (item.Folder != null)
- {
- await _vm.SelectFolderAsync(item.Folder);
- }
- else if (item.Collection != null)
- {
- await _vm.SelectCollectionAsync(item.Collection);
- }
- else if (item.Type != null)
- {
- await _vm.SelectTypeAsync(item.Type.Value);
+ LoggerHelper.LogEvenIfCantBeResolved(ex);
+ _platformUtilsService.ShowDialogAsync(AppResources.AnErrorHasOccurred, AppResources.GenericErrorMessage, AppResources.Ok).FireAndForget();
}
}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListGroup.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListGroup.cs
index 1702aa85f..bb059c989 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListGroup.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListGroup.cs
@@ -2,13 +2,13 @@
namespace Bit.App.Pages
{
- public class GroupingsPageListGroup : List
+ public class GroupingsPageListGroup : List
{
public GroupingsPageListGroup(string name, int count, bool doUpper = true, bool first = false)
- : this(new List(), name, count, doUpper, first)
+ : this(new List(), name, count, doUpper, first)
{ }
- public GroupingsPageListGroup(List groupItems, string name, int count,
+ public GroupingsPageListGroup(IEnumerable groupItems, string name, int count,
bool doUpper = true, bool first = false)
{
AddRange(groupItems);
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItem.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItem.cs
index 34674d961..2df0350af 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItem.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItem.cs
@@ -17,6 +17,7 @@ namespace Bit.App.Pages
public string ItemCount { get; set; }
public bool FuzzyAutofill { get; set; }
public bool IsTrash { get; set; }
+ public bool IsTotpCode { get; set; }
public string Name
{
@@ -38,6 +39,10 @@ namespace Bit.App.Pages
{
_name = Collection.Name;
}
+ else if (IsTotpCode)
+ {
+ _name = AppResources.VerificationCodes;
+ }
else if (Type != null)
{
switch (Type.Value)
@@ -82,6 +87,10 @@ namespace Bit.App.Pages
{
_icon = BitwardenIcons.Collection;
}
+ else if (IsTotpCode)
+ {
+ _icon = BitwardenIcons.Clock;
+ }
else if (Type != null)
{
switch (Type.Value)
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItemSelector.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItemSelector.cs
index 84f4868a4..cf4706250 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItemSelector.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageListItemSelector.cs
@@ -8,6 +8,7 @@ namespace Bit.App.Pages
public DataTemplate CipherTemplate { get; set; }
public DataTemplate GroupTemplate { get; set; }
public DataTemplate LoginCipherTemplate { get; set; }
+ public DataTemplate AuthenticatorTemplate { get; set; }
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
@@ -16,6 +17,11 @@ namespace Bit.App.Pages
return HeaderTemplate;
}
+ if (item is GroupingsPageTOTPListItem)
+ {
+ return AuthenticatorTemplate;
+ }
+
if (item is GroupingsPageListItem listItem)
{
if (listItem.Cipher is null)
@@ -27,6 +33,7 @@ namespace Bit.App.Pages
? LoginCipherTemplate
: CipherTemplate;
}
+
return null;
}
}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs
new file mode 100644
index 000000000..7a49ef857
--- /dev/null
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageTOTPListItem.cs
@@ -0,0 +1,123 @@
+using System;
+using System.Threading.Tasks;
+using Bit.App.Resources;
+using Bit.App.Utilities;
+using Bit.Core.Abstractions;
+using Bit.Core.Models.View;
+using Bit.Core.Utilities;
+using Xamarin.CommunityToolkit.ObjectModel;
+using Xamarin.Essentials;
+using Xamarin.Forms;
+
+namespace Bit.App.Pages
+{
+ public class GroupingsPageTOTPListItem : ExtendedViewModel, IGroupingsPageListItem
+ {
+ private readonly LazyResolve _logger = new LazyResolve("logger");
+ private readonly ITotpService _totpService;
+ private readonly IPlatformUtilsService _platformUtilsService;
+ private readonly IClipboardService _clipboardService;
+ private CipherView _cipher;
+
+ private bool _websiteIconsEnabled;
+ private string _iconImageSource = string.Empty;
+
+ public int interval { get; set; }
+ private double _progress;
+ private string _totpSec;
+ private string _totpCodeFormatted;
+ private TotpHelper _totpTickHelper;
+
+
+ public GroupingsPageTOTPListItem(CipherView cipherView, bool websiteIconsEnabled)
+ {
+ _totpService = ServiceContainer.Resolve("totpService");
+ _platformUtilsService = ServiceContainer.Resolve("platformUtilsService");
+ _clipboardService = ServiceContainer.Resolve("clipboardService");
+
+ Cipher = cipherView;
+ WebsiteIconsEnabled = websiteIconsEnabled;
+ interval = _totpService.GetTimeInterval(Cipher.Login.Totp);
+ CopyCommand = new AsyncCommand(CopyToClipboardAsync,
+ onException: ex => _logger.Value.Exception(ex),
+ allowsMultipleExecutions: false);
+ _totpTickHelper = new TotpHelper(cipherView);
+ }
+
+ public AsyncCommand CopyCommand { get; set; }
+
+ public CipherView Cipher
+ {
+ get => _cipher;
+ set => SetProperty(ref _cipher, value);
+ }
+
+ public string TotpCodeFormatted
+ {
+ get => _totpCodeFormatted;
+ set => SetProperty(ref _totpCodeFormatted, value,
+ additionalPropertyNames: new string[]
+ {
+ nameof(TotpCodeFormattedStart),
+ nameof(TotpCodeFormattedEnd),
+ });
+ }
+
+ public string TotpSec
+ {
+ get => _totpSec;
+ set => SetProperty(ref _totpSec, value);
+ }
+ public double Progress
+ {
+ get => _progress;
+ set => SetProperty(ref _progress, value);
+ }
+ public bool WebsiteIconsEnabled
+ {
+ get => _websiteIconsEnabled;
+ set => SetProperty(ref _websiteIconsEnabled, value);
+ }
+
+ public bool ShowIconImage
+ {
+ get => WebsiteIconsEnabled
+ && !string.IsNullOrWhiteSpace(Cipher.Login?.Uri)
+ && IconImageSource != null;
+ }
+
+ public string IconImageSource
+ {
+ get
+ {
+ if (_iconImageSource == string.Empty) // default value since icon source can return null
+ {
+ _iconImageSource = IconImageHelper.GetLoginIconImage(Cipher);
+ }
+ return _iconImageSource;
+ }
+
+ }
+
+ public string TotpCodeFormattedStart => TotpCodeFormatted?.Split(' ')[0];
+
+ public string TotpCodeFormattedEnd => TotpCodeFormatted?.Split(' ')[1];
+
+ public async Task CopyToClipboardAsync()
+ {
+ await _clipboardService.CopyTextAsync(TotpCodeFormatted?.Replace(" ", string.Empty));
+ _platformUtilsService.ShowToast("info", null, string.Format(AppResources.ValueHasBeenCopied, AppResources.VerificationCodeTotp));
+ }
+
+ public async Task TotpTickAsync()
+ {
+ await _totpTickHelper.GenerateNewTotpValues();
+ MainThread.BeginInvokeOnMainThread(() =>
+ {
+ TotpSec = _totpTickHelper.TotpSec;
+ Progress = _totpTickHelper.Progress;
+ TotpCodeFormatted = _totpTickHelper.TotpCodeFormatted;
+ });
+ }
+ }
+}
diff --git a/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs b/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
index eea5aa10e..1987b0518 100644
--- a/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
+++ b/src/App/Pages/Vault/GroupingsPage/GroupingsPageViewModel.cs
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
+using System.Windows.Input;
using Bit.App.Abstractions;
using Bit.App.Controls;
using Bit.App.Resources;
@@ -29,13 +31,16 @@ namespace Bit.App.Pages
private bool _showList;
private bool _websiteIconsEnabled;
private bool _syncRefreshing;
+ private bool _showTotpFilter;
+ private bool _totpFilterEnable;
private string _noDataText;
private List _allCiphers;
private Dictionary _folderCounts = new Dictionary();
private Dictionary _collectionCounts = new Dictionary();
private Dictionary _typeCounts = new Dictionary();
private int _deletedCount = 0;
-
+ private CancellationTokenSource _totpTickCts;
+ private Task _totpTickTask;
private readonly ICipherService _cipherService;
private readonly IFolderService _folderService;
private readonly ICollectionService _collectionService;
@@ -76,6 +81,9 @@ namespace Bit.App.Pages
CipherOptionsCommand = new Command(CipherOptionsAsync);
CopyUsernameItemCommand = new AsyncCommand(CopyUsernameItemAsync, onException: ex => _logger.Exception(ex), allowsMultipleExecutions: false);
CopyPasswordItemCommand = new AsyncCommand(CopyPasswordItemAsync, onException: ex => _logger.Exception(ex), allowsMultipleExecutions: false);
+ VaultFilterCommand = new AsyncCommand(VaultFilterOptionsAsync,
+ onException: ex => _logger.Exception(ex),
+ allowsMultipleExecutions: false);
AccountSwitchingOverlayViewModel = new AccountSwitchingOverlayViewModel(_stateService, _messagingService, _logger)
{
@@ -96,6 +104,7 @@ namespace Bit.App.Pages
&& NoFolderCiphers.Count < NoFolderListSize
&& (Collections is null || !Collections.Any());
public List Ciphers { get; set; }
+ public List TOTPCiphers { get; set; }
public List FavoriteCiphers { get; set; }
public List NoFolderCiphers { get; set; }
public List Folders { get; set; }
@@ -153,9 +162,12 @@ namespace Bit.App.Pages
get => _websiteIconsEnabled;
set => SetProperty(ref _websiteIconsEnabled, value);
}
-
+ public bool ShowTotp
+ {
+ get => _showTotpFilter;
+ set => SetProperty(ref _showTotpFilter, value);
+ }
public AccountSwitchingOverlayViewModel AccountSwitchingOverlayViewModel { get; }
-
public ObservableRangeCollection GroupedItems { get; set; }
public Command RefreshCommand { get; set; }
public Command CipherOptionsCommand { get; set; }
@@ -193,13 +205,14 @@ namespace Bit.App.Pages
{
PageTitle = ShowVaultFilter ? AppResources.Vaults : AppResources.MyVault;
}
-
+ var canAccessPremium = await _stateService.CanAccessPremiumAsync();
_doingLoad = true;
LoadedOnce = true;
ShowNoData = false;
Loading = true;
ShowList = false;
ShowAddCipherButton = !Deleted;
+
var groupedItems = new List();
var page = Page as GroupingsPage;
@@ -223,6 +236,8 @@ namespace Bit.App.Pages
}
if (MainPage)
{
+ AddTotpGroupItem(canAccessPremium, groupedItems, uppercaseGroupNames);
+
groupedItems.Add(new GroupingsPageListGroup(
AppResources.Types, 4, uppercaseGroupNames, !hasFavorites)
{
@@ -279,10 +294,12 @@ namespace Bit.App.Pages
}
if (Ciphers?.Any() ?? false)
{
- var ciphersListItems = Ciphers.Where(c => c.IsDeleted == Deleted)
- .Select(c => new GroupingsPageListItem { Cipher = c }).ToList();
- groupedItems.Add(new GroupingsPageListGroup(ciphersListItems, AppResources.Items,
- ciphersListItems.Count, uppercaseGroupNames, !MainPage && !groupedItems.Any()));
+ CreateCipherGroupedItems(groupedItems);
+ }
+ if (ShowTotp && (!TOTPCiphers?.Any() ?? false))
+ {
+ Page.Navigation.PopAsync();
+ return;
}
if (ShowNoFolderCipherGroup)
{
@@ -370,6 +387,60 @@ namespace Bit.App.Pages
}
}
+ private void AddTotpGroupItem(bool canAccessPremium, List groupedItems, bool uppercaseGroupNames)
+ {
+ if (canAccessPremium && TOTPCiphers?.Any() == true)
+ {
+ groupedItems.Insert(0, new GroupingsPageListGroup(
+ AppResources.Totp, 1, uppercaseGroupNames, false)
+ {
+ new GroupingsPageListItem
+ {
+ IsTotpCode = true,
+ Type = CipherType.Login,
+ ItemCount = TOTPCiphers.Count().ToString("N0")
+ }
+ });
+ }
+ }
+
+ private void CreateCipherGroupedItems(List groupedItems)
+ {
+ var uppercaseGroupNames = _deviceActionService.DeviceType == DeviceType.iOS;
+ _totpTickCts?.Cancel();
+ if (ShowTotp)
+ {
+ var ciphersListItems = TOTPCiphers.Select(c => new GroupingsPageTOTPListItem(c, true)).ToList();
+ groupedItems.Add(new GroupingsPageListGroup(ciphersListItems, AppResources.Items,
+ ciphersListItems.Count, uppercaseGroupNames, !MainPage && !groupedItems.Any()));
+
+ StartCiphersTotpTick(ciphersListItems);
+ }
+ else
+ {
+ var ciphersListItems = Ciphers.Where(c => c.IsDeleted == Deleted)
+ .Select(c => new GroupingsPageListItem { Cipher = c }).ToList();
+ groupedItems.Add(new GroupingsPageListGroup(ciphersListItems, AppResources.Items,
+ ciphersListItems.Count, uppercaseGroupNames, !MainPage && !groupedItems.Any()));
+ }
+ }
+
+ private void StartCiphersTotpTick(List ciphersListItems)
+ {
+ _totpTickCts?.Cancel();
+ _totpTickCts = new CancellationTokenSource();
+ _totpTickTask = new TimerTask(logger, () => ciphersListItems.ForEach(i => i.TotpTickAsync()), _totpTickCts).RunPeriodic();
+ }
+
+ public async Task StopCiphersTotpTick()
+ {
+ _totpTickCts?.Cancel();
+ if (_totpTickTask != null)
+ {
+ await _totpTickTask;
+ }
+ }
+
public void DisableRefreshing()
{
Refreshing = false;
@@ -430,6 +501,13 @@ namespace Bit.App.Pages
await Page.Navigation.PushAsync(page);
}
+ public async Task SelectTotpCodesAsync()
+ {
+ var page = new GroupingsPage(false, CipherType.Login, null, null, AppResources.VerificationCodes, _vaultFilterSelection, null,
+ false, true);
+ await Page.Navigation.PushAsync(page);
+ }
+
public async Task ExitAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.ExitConfirmation,
@@ -467,6 +545,7 @@ namespace Bit.App.Pages
NoDataText = AppResources.NoItems;
_allCiphers = await GetAllCiphersAsync();
HasCiphers = _allCiphers.Any();
+ TOTPCiphers = _allCiphers.Where(c => c.IsDeleted == Deleted && c.Type == CipherType.Login && !string.IsNullOrEmpty(c.Login?.Totp)).ToList();
FavoriteCiphers?.Clear();
NoFolderCiphers?.Clear();
_folderCounts.Clear();
@@ -492,6 +571,10 @@ namespace Bit.App.Pages
Filter = c => c.IsDeleted;
NoDataText = AppResources.NoItemsTrash;
}
+ else if (ShowTotp)
+ {
+ Filter = c => c.Type == CipherType.Login && !c.IsDeleted && !string.IsNullOrEmpty(c.Login?.Totp);
+ }
else if (Type != null)
{
Filter = c => c.Type == Type.Value && !c.IsDeleted;
diff --git a/src/App/Pages/Vault/ScanPage.xaml b/src/App/Pages/Vault/ScanPage.xaml
index d90c5a2b7..9c1b31346 100644
--- a/src/App/Pages/Vault/ScanPage.xaml
+++ b/src/App/Pages/Vault/ScanPage.xaml
@@ -1,13 +1,26 @@
-
-
+
+ Title="{Binding ScanQrPageTitle}">
+
+
+
+
+
+
+
+
+
+
@@ -16,67 +29,114 @@
-
+
+
+
+
+
-
-
-
+
-
-
-
-
-
+ IsVisible="{Binding ShowScanner}"
+ Grid.Column="0"
+ Grid.Row="0"
+ Grid.RowSpan="2"
+ Margin="30,0">
-
-
-
+ PaintSurface="OnCanvasViewPaintSurface"/>
-
+
+
+
-
-
+
+
+
+
+
+
-
+
+
+
-
-
+ Margin="0,15"
+ StyleClass="text-sm"
+ FontAttributes="Bold"
+ VerticalOptions="End"
+ HorizontalOptions="Center" >
+
+
+
+
-
-
+
\ No newline at end of file
diff --git a/src/App/Pages/Vault/ScanPage.xaml.cs b/src/App/Pages/Vault/ScanPage.xaml.cs
index d0a149621..4f87d1b72 100644
--- a/src/App/Pages/Vault/ScanPage.xaml.cs
+++ b/src/App/Pages/Vault/ScanPage.xaml.cs
@@ -1,19 +1,31 @@
using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Threading;
using System.Threading.Tasks;
+using Bit.App.Utilities;
using Bit.Core.Abstractions;
using Bit.Core.Utilities;
+using SkiaSharp;
+using SkiaSharp.Views.Forms;
+using Xamarin.Essentials;
using Xamarin.Forms;
namespace Bit.App.Pages
{
public partial class ScanPage : BaseContentPage
{
+ private ScanPageViewModel ViewModel => BindingContext as ScanPageViewModel;
private readonly Action _callback;
-
private CancellationTokenSource _autofocusCts;
private Task _continuousAutofocusTask;
+ private readonly Color _greenColor;
+ private readonly SKColor _blueSKColor;
+ private readonly SKColor _greenSKColor;
+ private readonly Stopwatch _stopwatch;
+ private bool _pageIsActive;
+ private bool _qrcodeFound;
+ private float _scale;
private readonly LazyResolve _logger = new LazyResolve("logger");
@@ -32,6 +44,12 @@ namespace Bit.App.Pages
{
ToolbarItems.RemoveAt(0);
}
+
+ _greenColor = ThemeManager.GetResourceColor("SuccessColor");
+ _greenSKColor = _greenColor.ToSKColor();
+ _blueSKColor = ThemeManager.GetResourceColor("PrimaryColor").ToSKColor();
+ _stopwatch = new Stopwatch();
+ _qrcodeFound = false;
}
protected override void OnAppearing()
@@ -58,7 +76,14 @@ namespace Bit.App.Pages
{
if (!autofocusCts.IsCancellationRequested)
{
- _zxing.AutoFocus();
+ try
+ {
+ _zxing.AutoFocus();
+ }
+ catch (Exception ex)
+ {
+ _logger.Value.Exception(ex);
+ }
}
});
}
@@ -69,49 +94,70 @@ namespace Bit.App.Pages
_logger.Value.Exception(ex);
}
}, autofocusCts.Token);
+ _pageIsActive = true;
+ AnimationLoopAsync();
}
protected override async void OnDisappearing()
{
_autofocusCts?.Cancel();
-
if (_continuousAutofocusTask != null)
{
await _continuousAutofocusTask;
}
_zxing.IsScanning = false;
-
+ _pageIsActive = false;
base.OnDisappearing();
}
- private void OnScanResult(ZXing.Result result)
+ private async void OnScanResult(ZXing.Result result)
{
- // Stop analysis until we navigate away so we don't keep reading barcodes
- _zxing.IsAnalyzing = false;
- _zxing.IsScanning = false;
- var text = result?.Text;
- if (!string.IsNullOrWhiteSpace(text))
+ try
{
- if (text.StartsWith("otpauth://totp"))
+ // Stop analysis until we navigate away so we don't keep reading barcodes
+ _zxing.IsAnalyzing = false;
+ var text = result?.Text;
+ if (!string.IsNullOrWhiteSpace(text))
{
- _callback(text);
- return;
- }
- else if (Uri.TryCreate(text, UriKind.Absolute, out Uri uri) &&
- !string.IsNullOrWhiteSpace(uri?.Query))
- {
- var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
- foreach (var part in queryParts)
+ if (text.StartsWith("otpauth://totp"))
{
- if (part.StartsWith("secret="))
+ await QrCodeFoundAsync();
+ _callback(text);
+ return;
+ }
+ else if (Uri.TryCreate(text, UriKind.Absolute, out Uri uri) &&
+ !string.IsNullOrWhiteSpace(uri?.Query))
+ {
+ var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
+ foreach (var part in queryParts)
{
- _callback(part.Substring(7)?.ToUpperInvariant());
- return;
+ if (part.StartsWith("secret="))
+ {
+ await QrCodeFoundAsync();
+ var subResult = part.Substring(7);
+ if (!string.IsNullOrEmpty(subResult))
+ {
+ _callback(subResult.ToUpperInvariant());
+ }
+ return;
+ }
}
}
}
+ _callback(null);
}
- _callback(null);
+ catch (Exception ex)
+ {
+ _logger?.Value?.Exception(ex);
+ }
+ }
+
+ private async Task QrCodeFoundAsync()
+ {
+ _qrcodeFound = true;
+ Vibration.Vibrate();
+ await Task.Delay(1000);
+ _zxing.IsScanning = false;
}
private async void Close_Clicked(object sender, System.EventArgs e)
@@ -121,5 +167,89 @@ namespace Bit.App.Pages
await Navigation.PopModalAsync();
}
}
+
+ private void AddAuthenticationKey_OnClicked(object sender, EventArgs e)
+ {
+ if (!string.IsNullOrWhiteSpace(ViewModel.TotpAuthenticationKey))
+ {
+ _callback(ViewModel.TotpAuthenticationKey);
+ return;
+ }
+ _callback(null);
+ }
+
+ private void ToggleScanMode_OnTapped(object sender, EventArgs e)
+ {
+ ViewModel.ToggleScanModeCommand.Execute(null);
+ if (!ViewModel.ShowScanner)
+ {
+ _authenticationKeyEntry.Focus();
+ }
+ }
+
+ private void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
+ {
+ var info = args.Info;
+ var surface = args.Surface;
+ var canvas = surface.Canvas;
+ var margins = 20;
+ var maxSquareSize = (Math.Min(info.Height, info.Width) * 0.9f - margins) * _scale;
+ var squareSize = maxSquareSize;
+ var lineSize = squareSize * 0.15f;
+ var startXPoint = (info.Width / 2) - (squareSize / 2);
+ var startYPoint = (info.Height / 2) - (squareSize / 2);
+ canvas.Clear(SKColors.Transparent);
+
+ using (var strokePaint = new SKPaint
+ {
+ Color = _qrcodeFound ? _greenSKColor : _blueSKColor,
+ StrokeWidth = 9 * _scale,
+ StrokeCap = SKStrokeCap.Round,
+ })
+ {
+ canvas.Scale(1, 1);
+ //top left
+ canvas.DrawLine(startXPoint, startYPoint, startXPoint, startYPoint + lineSize, strokePaint);
+ canvas.DrawLine(startXPoint, startYPoint, startXPoint + lineSize, startYPoint, strokePaint);
+ //bot left
+ canvas.DrawLine(startXPoint, startYPoint + squareSize, startXPoint, startYPoint + squareSize - lineSize, strokePaint);
+ canvas.DrawLine(startXPoint, startYPoint + squareSize, startXPoint + lineSize, startYPoint + squareSize, strokePaint);
+ //top right
+ canvas.DrawLine(startXPoint + squareSize, startYPoint, startXPoint + squareSize - lineSize, startYPoint, strokePaint);
+ canvas.DrawLine(startXPoint + squareSize, startYPoint, startXPoint + squareSize, startYPoint + lineSize, strokePaint);
+ //bot right
+ canvas.DrawLine(startXPoint + squareSize, startYPoint + squareSize, startXPoint + squareSize - lineSize, startYPoint + squareSize, strokePaint);
+ canvas.DrawLine(startXPoint + squareSize, startYPoint + squareSize, startXPoint + squareSize, startYPoint + squareSize - lineSize, strokePaint);
+ }
+ }
+
+ async Task AnimationLoopAsync()
+ {
+ try
+ {
+ _stopwatch.Start();
+ while (_pageIsActive)
+ {
+ var t = _stopwatch.Elapsed.TotalSeconds % 2 / 2;
+ _scale = (20 - (1 - (float)Math.Sin(4 * Math.PI * t))) / 20;
+ SkCanvasView.InvalidateSurface();
+ await Task.Delay(TimeSpan.FromSeconds(1.0 / 30));
+ if (_qrcodeFound && _scale > 0.98f)
+ {
+ _checkIcon.TextColor = _greenColor;
+ SkCanvasView.InvalidateSurface();
+ break;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ _logger?.Value?.Exception(ex);
+ }
+ finally
+ {
+ _stopwatch?.Stop();
+ }
+ }
}
}
diff --git a/src/App/Pages/Vault/ScanPageViewModel.cs b/src/App/Pages/Vault/ScanPageViewModel.cs
new file mode 100644
index 000000000..00405756b
--- /dev/null
+++ b/src/App/Pages/Vault/ScanPageViewModel.cs
@@ -0,0 +1,61 @@
+using Bit.App.Resources;
+using Bit.App.Utilities;
+using Bit.Core.Abstractions;
+using Xamarin.Forms;
+
+namespace Bit.App.Pages
+{
+ public class ScanPageViewModel : BaseViewModel
+ {
+ private bool _showScanner = true;
+ private string _totpAuthenticationKey;
+
+ public ScanPageViewModel()
+ {
+ ToggleScanModeCommand = new Command(() => ShowScanner = !ShowScanner);
+ }
+
+ public Command ToggleScanModeCommand { get; set; }
+ public string ScanQrPageTitle => ShowScanner ? AppResources.ScanQrTitle : AppResources.AuthenticatorKeyScanner;
+ public string CameraInstructionTop => ShowScanner ? AppResources.PointYourCameraAtTheQRCode : AppResources.OnceTheKeyIsSuccessfullyEntered;
+ public string TotpAuthenticationKey
+ {
+ get => _totpAuthenticationKey;
+ set => SetProperty(ref _totpAuthenticationKey, value,
+ additionalPropertyNames: new string[]
+ {
+ nameof(ToggleScanModeLabel)
+ });
+ }
+ public bool ShowScanner
+ {
+ get => _showScanner;
+ set => SetProperty(ref _showScanner, value,
+ additionalPropertyNames: new string[]
+ {
+ nameof(ToggleScanModeLabel),
+ nameof(ScanQrPageTitle),
+ nameof(CameraInstructionTop)
+ });
+ }
+
+ public FormattedString ToggleScanModeLabel
+ {
+ get
+ {
+ var fs = new FormattedString();
+ fs.Spans.Add(new Span
+ {
+ Text = ShowScanner ? AppResources.CannotScanQRCode : AppResources.CannotAddAuthenticatorKey,
+ TextColor = ThemeManager.GetResourceColor("TitleTextColor")
+ });
+ fs.Spans.Add(new Span
+ {
+ Text = ShowScanner ? AppResources.EnterKeyManually : AppResources.ScanQRCode,
+ TextColor = ThemeManager.GetResourceColor("ScanningToggleModeTextColor")
+ });
+ return fs;
+ }
+ }
+ }
+}
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 13728fd05..437781261 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -353,6 +353,12 @@ namespace Bit.App.Resources {
}
}
+ public static string Authenticator {
+ get {
+ return ResourceManager.GetString("Authenticator", resourceCulture);
+ }
+ }
+
public static string Name {
get {
return ResourceManager.GetString("Name", resourceCulture);
@@ -1457,15 +1463,9 @@ namespace Bit.App.Resources {
}
}
- public static string CameraInstructionBottom {
+ public static string PointYourCameraAtTheQRCode {
get {
- return ResourceManager.GetString("CameraInstructionBottom", resourceCulture);
- }
- }
-
- public static string CameraInstructionTop {
- get {
- return ResourceManager.GetString("CameraInstructionTop", resourceCulture);
+ return ResourceManager.GetString("PointYourCameraAtTheQRCode", resourceCulture);
}
}
@@ -4049,6 +4049,78 @@ namespace Bit.App.Resources {
}
}
+ public static string Totp {
+ get {
+ return ResourceManager.GetString("Totp", resourceCulture);
+ }
+ }
+
+ public static string VerificationCodes {
+ get {
+ return ResourceManager.GetString("VerificationCodes", resourceCulture);
+ }
+ }
+
+ public static string PremiumSubscriptionRequired {
+ get {
+ return ResourceManager.GetString("PremiumSubscriptionRequired", resourceCulture);
+ }
+ }
+
+ public static string CannotAddAuthenticatorKey {
+ get {
+ return ResourceManager.GetString("CannotAddAuthenticatorKey", resourceCulture);
+ }
+ }
+
+ public static string ScanQRCode {
+ get {
+ return ResourceManager.GetString("ScanQRCode", resourceCulture);
+ }
+ }
+
+ public static string CannotScanQRCode {
+ get {
+ return ResourceManager.GetString("CannotScanQRCode", resourceCulture);
+ }
+ }
+
+ public static string AuthenticatorKeyScanner {
+ get {
+ return ResourceManager.GetString("AuthenticatorKeyScanner", resourceCulture);
+ }
+ }
+
+ public static string EnterKeyManually {
+ get {
+ return ResourceManager.GetString("EnterKeyManually", resourceCulture);
+ }
+ }
+
+ public static string AddTotp {
+ get {
+ return ResourceManager.GetString("AddTotp", resourceCulture);
+ }
+ }
+
+ public static string SetupTotp {
+ get {
+ return ResourceManager.GetString("SetupTotp", resourceCulture);
+ }
+ }
+
+ public static string OnceTheKeyIsSuccessfullyEntered {
+ get {
+ return ResourceManager.GetString("OnceTheKeyIsSuccessfullyEntered", resourceCulture);
+ }
+ }
+
+ public static string SelectAddTotpToStoreTheKeySafely {
+ get {
+ return ResourceManager.GetString("SelectAddTotpToStoreTheKeySafely", resourceCulture);
+ }
+ }
+
public static string NeverLockWarning {
get {
return ResourceManager.GetString("NeverLockWarning", resourceCulture);
diff --git a/src/App/Resources/AppResources.af.resx b/src/App/Resources/AppResources.af.resx
index 9d0d8633d..a7be7bcbf 100644
--- a/src/App/Resources/AppResources.af.resx
+++ b/src/App/Resources/AppResources.af.resx
@@ -276,16 +276,16 @@
Is u seker u wil uitteken?
- Remove Account
+ Verwyder rekening
- Are you sure you want to remove this account?
+ Is u seker u wil hierdie rekening verwyder?
- Account Already Added
+ Rekening reeds toegevoeg
- Would you like to switch to it now?
+ Wil u nou daarheen wissel?Hoofwagwoord
@@ -299,6 +299,10 @@
My kluisThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NaamLabel for an entity name.
@@ -770,6 +774,12 @@
Geaktiveer
+
+ Af
+
+
+ Aan
+
Status
@@ -889,11 +899,9 @@
Kan nie waarmerksleutel lees nie.
-
- Skandering gebeur outomaties.
-
-
- Rig u kamera op die QR-kode.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Skandeer QR-kode
@@ -907,11 +915,11 @@
Kopieer TOTP
-
- Indien u aantekening aan ’n bevestigingskode gekoppel is, word die TOTP-bevestigingskode outomaties na die knipbord gekopieer by die aantekening se outovul.
+
+ Indien ’n aantekening ’n waarmerksleutel het, kopieer die TOTP-bevestigingskope na u knipbord wanneer u die aantekening outo-invul.
-
- Deaktiveer outomatiese kopieëring van TOTP
+
+ Kopieer TOTP outomaties’n Premie-lidmaatskap is nodig om hierdie funksie te gebruik.
@@ -1128,11 +1136,11 @@
Vervaldatum
-
- Deaktiveer webwerfikone
+
+ Toon webwerfikone
-
- Webwerfikone verskaf ’n herkenbare beeld langs elke aantekenitem in u kluis.
+
+ Toon ’n herkenbare prent langs elke aantekening.Ikoonbedienerbronadres
@@ -1372,11 +1380,15 @@
Deursoek versameling
-
- Deursoek vouer
+
+ Deursoek lêer-Sends
-
- Deursoek tipe
+
+ Deursoek teks-Sends
+
+
+ Soek {0}
+ ex: Search LoginsTipe
@@ -1537,6 +1549,12 @@
Verstek (Stelsel)
+
+ Verstekdonkertema
+
+
+ Kies welke donkertema om te gebruik as stelseltema wanneer u toestel se donkertema geaktiveer is.
+
Kopieer notas
@@ -1553,17 +1571,21 @@
SwartThe color black
-
- Versperde URI’s
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URI’s op die swartlys word nie outomaties ingevul nie. Die lys moet met komma’s geskei wees. Bv. “https://twitter.com, androidapp://com.twitter.android”.
+
+ Versperde URI’s vir outovul
-
- Deaktiveer bewaarpor
+
+ Outovul sal nie vir versperde URI’s gebied word nie. Skei meerdere URI’s met ’n komma. Byvoorbeeld: “https://twitter.com, androidapp://com.twitter.android”.
-
- Die “bewaarpor” vra u outomaties om nuwe items in u kluis te bewaar wanneer u dit vir die eerste maal invoer.
+
+ Vra om aantekening toe te voeg
+
+
+ Vra om ’n item toe te voeg indien een nie in u kluis gevind word nie.Nadat toep herbegin is
@@ -1856,6 +1878,9 @@
’n Vriendelike naam om hierdie Send te beskryf.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Teks
+
Teks
@@ -1872,6 +1897,18 @@
Die lêer wat u wil verstuur.
+
+ Lêertipe is gekies.
+
+
+ Lêertipe is nie gekies nie, tik om te kies.
+
+
+ Tekstipe is gekies.
+
+
+ Tekstipe is nie gekies nie, tik om te kies.
+
Skrapdatum
@@ -2105,28 +2142,28 @@
Een of meer organisasiebeleide verhoed u om u persoonlike kluis uit te stuur.
- Add Account
+ Voeg rekening toe
- Unlocked
+ Ontgrendel
- Locked
+ Vergrendel
- Logged Out
+ Uitgeteken
- Switched to next available account
+ Oorgeskakel na volgende beskikbare rekening
- Account Locked
+ Rekening is vergrendel
- Account logged out successfully
+ Rekening suksesvol uitgeteken
- Account removed successfully
+ Rekening suksesvol verwyderSkrap rekening
@@ -2147,7 +2184,7 @@
Ongeldige bevestigingskode.
- Request one-time password
+ Versoek eenmalige wagwoordVerstuur kode
@@ -2156,24 +2193,124 @@
Verstuur
- Copy Send link on save
+ Kopieer Send-skakel by bewaar
- Sending code
+ Verstuur tans kode
- Verifying
+ Bevestiging
- Resend Code
+ Stuur kode weer
- A verification code was sent to your email
+ ’n Bevestigingskakel is na u e-pos gestuur
- An error occurred while sending a verification code to your email. Please try again
+ ’n fout het voorgekom toe ’n bevestigingskakel na u e-pos gestuur is. Probeer asb. weer
- Enter the verification code that was sent to your email
+ Voer die bevestigingskakel wat na u e-pos gestuur is, in
+
+
+ Dien uitbomverslae in
+
+
+ Help Bitwarden om toepstabiliteit te verbeter deur uitbomverslae in te dien.
+
+
+ Opsies is uitgevou, tik om in te vou.
+
+
+ Opsies is ingevou, tik om uit te vou.
+
+
+ Hoofletters (A tot Z)
+
+
+ Kleinletters (A tot Z)
+
+
+ Syfers (0 tot 9)
+
+
+ Spesiale karakters (!@#$%^&*)
+
+
+ Tik om terug te gaan
+
+
+ Wagwoord is sigbaar, tik om te verberg.
+
+
+ Wagwoord is nie sigbaar, tik om te toon.
+
+
+ Filter items per kluis
+
+
+ Alle kluise
+
+
+ Kluise
+
+
+ Kluis: {0}
+
+
+ Alle
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Deur u vergrendelopsies na “Nooit” te stel, is u kluis beskikbaar aan enigeen met toegang tot u toestel. Indien u hierdie opsie gebruik moet u seker maak dat u u toestel voldoende beskerm.
+
+
+ Een of meer ingevoerde bronadresse is ongeldig. Hersien dit asb. en probeer weer bewaar.
+
+
+ Ons kon nie u versoek verwerk nie. Probeer asb. weer of kontak ons.
+
+
+ Laat skermopname toe
+
+
+ Is u seker u wil skermopname aktiveer?
diff --git a/src/App/Resources/AppResources.ar.resx b/src/App/Resources/AppResources.ar.resx
new file mode 100644
index 000000000..9d8fe1e8b
--- /dev/null
+++ b/src/App/Resources/AppResources.ar.resx
@@ -0,0 +1,2317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ حول
+
+
+ إضافة
+ Add/create a new entity (verb).
+
+
+ إضافة مجلد
+
+
+ إضافة عنصر
+ The title for the add item page.
+
+
+ كان هناك خطأ.
+ Alert title when something goes wrong.
+
+
+ رجوع
+ Navigate back to the previous screen.
+
+
+ bitwarden
+ App name. Shouldn't ever change.
+
+
+ إلغاء
+ Cancel an operation.
+
+
+ نسخ
+ Copy some value to your clipboard.
+
+
+ نسخ كلمة المرور
+ The button text that allows a user to copy the login's password to their clipboard.
+
+
+ المصادقة باستخدام FIDO2 WebAuthn، يمكنك المصادقة باستخدام مفتاح أمان خارجي.
+ The button text that allows a user to copy the login's username to their clipboard.
+
+
+ شكر
+ Title for page that we use to give credit to resources that we use.
+
+
+ حذف
+ Delete an entity (verb).
+
+
+ حذف ...
+ Message shown when interacting with the server
+
+
+ هل أنت متأكد من أنك تريد الحذف؟ لا يمكن إلغاؤه
+ Confirmation alert message when deleteing something.
+
+
+ تعديل
+
+
+ تعديل مجلد
+
+
+ بريد الكتروني
+ Short label for an email address.
+
+
+ عنوان بريد الكتروني
+ Full label for a email address.
+
+
+ اكتب إلينا
+
+
+ اتصل بنا مباشرة للحصول على المساعدة أو التعليق.
+
+
+ أدخل رقم التعريف الشخصي الخاص بك.
+
+
+ المفضلات
+ Title for your favorite items in the vault.
+
+
+ إرسال تقرير خطأ
+
+
+ افتح تذكرة في مستودع Github لدينا.
+
+
+ استخدم بصمة إصبعك للتعريف بنفسك.
+
+
+ مجلد
+ Label for a folder.
+
+
+ مجلد جديد أنشئ
+
+
+ مجلد محذوف
+
+
+ لا مجلد
+ Items that have no folder specified go in this special "catch-all" folder.
+
+
+ مجلدات
+
+
+ مجلد محدّث
+
+
+ زر الموقع الالكتروني
+ The button text that allows user to launch the website to their web browser.
+
+
+ مساعدة ورجوع
+
+
+ إخفاء
+ Hide a secret value that is currently shown (password).
+
+
+ عليك الاتصال بالانترنت قبل المواصلة
+ Description message for the alert when internet connection is required to continue.
+
+
+ اتصال بالانترنت مطلوب
+ Title for the alert when internet connection is required to continue.
+
+
+ كلمة المرور الرئيسية خاطئة. الرجاء المحاولة مرة أخرى.
+
+
+ رقم التعريف الشخصي غير صالح. الرجاء المحاولة مرة أخرى.
+
+
+ بدء
+ The button text that allows user to launch the website to their web browser.
+
+
+ تعريف
+ The login button text (verb).
+
+
+ اسم المستخدم
+ Title for login page. (noun)
+
+
+ تسجيل الخروج
+ The log out button text (verb).
+
+
+ هل أنت متأكد من أنك تريد تسجيل الخروج؟
+
+
+ إزالة الحساب
+
+
+ هل أنت متأكد من أنك تريد إزالة هذا الحساب؟
+
+
+ تمت إضافة الحساب بالفعل
+
+
+ هل ترغب في التبديل إليه الآن؟
+
+
+ كلمة المرور الرئيسية
+ Label for a master password.
+
+
+ المزيد
+ Text to define that there are more options things to see.
+
+
+ خزانتي
+ The title for the vault page.
+
+
+ Authenticator
+ Authenticator TOTP feature
+
+
+ الاسم
+ Label for an entity name.
+
+
+ لا
+
+
+ ملاحظات
+ Label for notes.
+
+
+ موافق
+ Acknowledgement.
+
+
+ كلمة المرور
+ Label for a password.
+
+
+ تسجيل
+ Button text for a save operation (verb).
+
+
+ نقل
+
+
+ تسجيل ...
+ Message shown when interacting with the server
+
+
+ إعدادات
+ The title for the settings page.
+
+
+ إظهار
+ Reveal a hidden value (password).
+
+
+ تم حذف العنصر.
+ Confirmation message after successfully deleting a login.
+
+
+ إرسال
+
+
+ مزامنة
+ The title for the sync page.
+
+
+ شكرا
+
+
+ أدوات
+ The title for the tools page.
+
+
+ الرابط
+ Label for a uri/url.
+
+
+ استخدام بصمة إصبعك لإلغاء القفل
+
+
+ اسم المستخدم
+ Label for a username.
+
+
+ حقل {0} مطلوب.
+ Validation message for when a form field is left blank and is required to be entered.
+
+
+ {0} تم نسخه
+ Confirmation message after suceessfully copying a value to the clipboard.
+
+
+ التحقق من بصمة الإصبع
+
+
+ التحقق من كلمة المرور الرئيسية
+
+
+ التحقق من رقم التعريف الشخصي
+
+
+ إصدار
+
+
+ انظر
+
+
+ زيارة موقعنا على الانترنت
+
+
+ قم بزيارة موقعنا الإلكتروني للحصول على المساعدة، واقرأ الأخبار، واكتب لنا و/أو تعلم كيفية استخدام bitwarden بشكل أفضل.
+
+
+ موقع الويب
+ Label for a website.
+
+
+ نعم
+
+
+ حساب
+
+
+ تم إنشاء حسابك الجديد! الآن يمكنك التعريف بنفسك.
+
+
+ إضافة عنصر
+
+
+ امتداد التطبيق
+
+
+ استخدم خدمة الوصول إلى Bitwarden لملء تسجيلات الدخول الخاصة بك تلقائياً عبر التطبيقات و الويب.
+
+
+ خدمة التعبئة التلقائية
+
+
+ تجنب الأحرف الغامضة
+
+
+ ملحق تطبيق Bitwarden
+
+
+ أسهل طريقة لإضافة تسجيلات دخول جديدة إلى المخزن الخاص بك هي من امتداد تطبيق Bitwarden . تعلم المزيد حول استخدام ملحق تطبيق Bitwarden عن طريق الانتقال إلى شاشة "إعدادات".
+
+
+ استخدم bitwarden في Safari والتطبيقات الأخرى لملء بيانات اعتمادك تلقائيًا.
+
+
+ خدمة التعبئة التلقائية من bitwarden
+
+
+ استخدم خدمة الوصول إلى Bitwarden لملء تسجيل الدخول الخاص بك تلقائيا.
+
+
+ تغيير البريد الإلكتروني
+
+
+ يمكنك تغيير عنوان بريدك الإلكتروني من خزنة الويب على bitwarden.com. هل تريد زيارة الموقع الآن؟
+
+
+ تغيير كلمة المرور الرئيسية
+
+
+ يمكنك تغيير كلمة المرور الرئيسية من خزنة الويب في bitwarden.com. هل تريد زيارة الموقع الآن؟
+
+
+ إغلاق
+
+
+ متابعة
+
+
+ إنشاء حساب
+
+
+ إنشاء الحساب...
+ Message shown when interacting with the server
+
+
+ تعديل العنصر
+
+
+ تشغيل المزامنة التلقائية
+
+
+ أدخل عنوان البريد الإلكتروني لحسابك لتلقي دليل كلمة المرور الرئيسية.
+
+
+ تشغيل ملحق التطبيق مرة أخرى
+
+
+ لقد شارف الأمر على الانتهاء!
+
+
+ تشغيل ملحق التطبيق
+
+
+ في Safari، ابحث عن bitwarden باستخدام رمز المشاركة (المساعدة: انتقل إلى اليمين في السطر السفلي من القائمة).
+ Safari is the name of apple's web browser
+
+
+ احصل على إمكانية الوصول الفوري إلى كلمات المرور الخاصة بك!
+
+
+ أنت مستعد للتعريف بنفسك!
+
+
+ يمكن الآن الوصول إلى المعرفات الخاصة بك بسهولة من Safari وChrome والتطبيقات الأخرى المدعومة.
+
+
+ في Safari و Chrome، ابحث عن bitwarden باستخدام رمز المشاركة (المساعدة: انتقل إلى اليمين في السطر السفلي من القائمة).
+
+
+ اضغط على رمز bitwarden في القائمة لإطلاق الملحق.
+
+
+ لتنشيط bitwarden على Safari والتطبيقات الأخرى، اضغط على رمز "المزيد" على السطر السفلي من القائمة.
+
+
+ المفضلة
+
+
+ البصمة
+
+
+ إنشاء كلمة مرور
+
+
+ الحصول على دليل كلمة المرور الرئيسية
+
+
+ استيراد العناصر
+
+
+ يمكنك استيراد العناصر بالجملة من مخزن الويب bitwarden.com . هل تريد زيارة الموقع الآن؟
+
+
+ قم باستيراد العناصر الخاصة بك من تطبيقات إدارة كلمة المرور الأخرى بشكل سريع.
+
+
+ آخر مزامنة:
+
+
+ طول
+
+
+ قفل
+
+
+ 15 دقيقة
+
+
+ ساعة واحدة
+
+
+ 1 دقيقة
+
+
+ 4 ساعات
+
+
+ فورًا
+
+
+ مهلة الخزنة
+
+
+ إجراء مهلة الخزنة
+
+
+ سيؤدي تسجيل الخروج إلى إزالة جميع الوصول إلى الخزنة الخاصة بك ويتطلب المصادقة عبر الإنترنت بعد انتهاء المهلة. هل أنت متأكد من أنك تريد استخدام هذا الإعداد؟
+
+
+ تعريف...
+ Message shown when interacting with the server
+
+
+ قم بالتسجيل أو إنشاء حساب جديد للوصول إلى خزنتك الآمنة.
+
+
+ إدارة
+
+
+ تأكيد كلمة المرور غير صحيح.
+
+
+ كلمة المرور الرئيسية هي كلمة المرور المستخدمة للوصول إلى الخزنة الخاصة بك. من المهم جدا ً ألا تنسى ذلك. لا توجد طريقة للعثور عليها إذا نسيت.
+
+
+ فهرس كلمة المرور الرئيسية (اختياري)
+
+
+ يمكن أن تساعدك فكرة كلمة المرور الرئيسية على تذكر كلمة المرور الخاصة بك إذا نسيت.
+
+
+ يجب أن تكون كلمة المرور الرئيسية أكثر من 8 أحرف.
+
+
+ الحد الأدنى للأرقام
+ Minimum numeric characters for password generator settings
+
+
+ الحد الأدنى من الأحرف الخاصة
+ Minimum special characters for password generator settings
+
+
+ المزيد من الإعدادات
+
+
+ تحتاج إلى التعريف بنفسك على التطبيق bitwarden الرئيسي قبل استخدام الامتداد.
+
+
+ أبداً
+
+
+ تم إنشاء عنصر جديد.
+
+
+ لا توجد عناصر مفضلة في خزنتك.
+
+
+ لا توجد عناصر في خزنتك.
+
+
+ لا توجد في خزنتك عناصر لهذا الموقع/التطبيق. انقر لإضافة واحد.
+
+
+ لا يحتوي هذا المعرّف على اسم مستخدم أو كلمة مرور تم تكوينها.
+
+
+ حسنا، فهمت!
+ Confirmation, like "Ok, I understand it"
+
+
+ يتم تعيين الخيارات الافتراضية من أداة إنشاء كلمة المرور في تطبيق bitwarden الرئيسي.
+
+
+ خيارات
+
+
+ الأخرى
+
+
+ كلمة المرور التي تم إنشاؤها.
+
+
+ مولد كلمة المرور
+
+
+ فهرس كلمة المرور
+
+
+ أرسلنا بريدًا إلكترونيًا مع دليل كلمة المرور الخاص بك.
+
+
+ هل أنت متأكد من أنك تريد سحق كلمة المرور الموجودة؟
+
+
+ bitwarden تلقائيا يحافظ على خزنتك في المزامنة باستخدام دفع الإخطارات. للحصول على أفضل تجربة ممكنة، يرجى اختيار "موافق" على مربع الحوار التالي (تفعيل دفع الإخطارات ).
+ Push notifications for apple products
+
+
+ قيّم التطبيق
+
+
+ شكرا على مساعدتنا من خلال كتابة تعليق إيجابي!
+
+
+ إعادة إنشاء كلمة مرور
+
+
+ إعادة إدخال كلمة المرور الرئيسية
+
+
+ البحث في الخزنة
+
+
+ الأمان
+
+
+ تحديد
+
+
+ تعيين رقم التعريف الشخصي
+
+
+ أدخل رقم تعريف شخصي مكون من 4 أرقام لإلغاء تأمين التطبيق.
+
+
+ معلومات العنصر
+
+
+ تم تحديث العنصر
+
+
+ تقديم...
+ Message shown when interacting with the server
+
+
+ المزامنة...
+ Message shown when interacting with the server
+
+
+ اكتمال المزامنة.
+
+
+ فشل المزامنة.
+
+
+ مزامنة الخزنة الآن
+
+
+ Touch ID معرف اتصال
+ What Apple calls their fingerprint reader.
+
+
+ تحديد المصادقة الثنائية
+
+
+ تجعل المصادقة الثنائية المعامل حسابك أكثر أمانًا من خلال طلب إدخال رمز أمان مع كل معرف من تطبيق المصادقة. يمكن تنشيط تعريف العامل المزدوج في خزنة الويب في bitwarden.com. هل تريد زيارة الموقع الآن؟
+
+
+ فتح مع {0}
+
+
+ إلغاء القفل باستخدام رقم التعريف الشخصي
+
+
+ التحقق
+ Message shown when interacting with the server
+
+
+ رمز التحقق
+
+
+ عرض العنصر
+
+
+ خزنة الويب Bitwarden
+
+
+ هل تم فقدان تطبيق المصادقة؟
+
+
+ العناصر
+ Screen title
+
+
+ تم تمكين الامتداد!
+
+
+ أيقونات
+
+
+ ترجمات
+
+
+ عناصر لـ {0}
+ This is used for the autofill service. ex. "Logins for twitter.com"
+
+
+ لا توجد عناصر في خزنتك لـ {0}.
+ This is used for the autofill service. ex. "There are no items in your vault for twitter.com".
+
+
+ عند تحديد حقل الإدخال ومشاهدة تراكب الملء التلقائي لـ Bitwarden ، يمكنك النقر عليه لتشغيل خدمة الملء التلقائي.
+
+
+ اضغط على هذا الإشعار لملء معلومات تسجيل الدخول تلقائيًا من خزنتك.
+
+
+ فتح إعدادات إمكانية الوصول
+
+
+ 1. في إعدادات إمكانية الوصول إلى Android، حدد "bitwarden" في قسم "الخدمات".
+
+
+ 2. قم بتنشيط المفتاح واضغط على موافق للقبول.
+
+
+ تعطيل
+
+
+ تفعيل
+
+
+ إيقاف
+
+
+ تشغيل
+
+
+ الحالة
+
+
+ أسهل طريقة لإضافة تسجيلات دخول جديدة إلى خزنتك هي من خدمة التعبئة التلقائية Bitwarden تعرف على المزيد حول استخدام خدمة الملء التلقائي لـ Bitwarden عن طريق الانتقال إلى شاشة "إعدادات".
+
+
+ التعبئة التلقائية
+
+
+ هل تريد الملأ التلقائي أو رؤية هذا المعرّف؟
+
+
+ هل أنت متأكد من أنك تريد ملء هذا المعرف تلقائيًا؟ لا يتوافق تماما مع "{0}".
+
+
+ عناصر مطابقة
+
+
+ عناصر مطابقة محتملة
+
+
+ بحث
+
+
+ أنت تبحث عن معرف لملء "{0}" تلقائيًا.
+
+
+ تعرف على المؤسسات
+
+
+ لا يمكن فتح التطبيق "{0}".
+ Message shown when trying to launch an app that does not exist on the user's device.
+
+
+ تطبيق المُصادَقة
+ For 2FA
+
+
+ أدخل رمز التحقق من 6 أرقام من تطبيق المصادقة الخاص بك.
+ For 2FA
+
+
+ أدخل رمز التحقق المكون من 6 أرقام الذي تم ارساله إلى {0}.
+ For 2FA
+
+
+ تسجيل الدخول غير متاح
+ For 2FA whenever there are no available providers on this device.
+
+
+ هذا الحساب لديه تسجيل الدخول بخطوتين، ومع ذلك، لا يتم دعم أي من مقدمي الخدمات المكونة من خطوتين على هذا الجهاز. الرجاء استخدام جهاز مدعوم و/أو إضافة موفرين إضافيين مدعومين بشكل أفضل عبر الأجهزة (مثل تطبيق مصادقة).
+
+
+ رمز الاسترداد
+ For 2FA
+
+
+ تذكرني
+ Remember my two-step login
+
+
+ إرسال بريد إلكتروني رمز التحقق مرة أخرى
+ For 2FA
+
+
+ خيارات تسجيل الدخول بخطوتين
+
+
+ استخدام طريقة أخرى لتسجيل الدخول بخطوتين
+
+
+ تعذر إرسال رسالة التحقق عبر البريد. حاول مرة أخرى.
+ For 2FA
+
+
+ تم إرسال رسالة تحقق للبريد الإلكتروني
+ For 2FA
+
+
+ للمتابعة، اضغط مع الاستمرار على YubiKey NEO من الجزء الخلفي من الجهاز أو أدخل مفتاح YubiKey في منفذ USB بجهازك، ثم المس الزر الخاص به.
+
+
+ مفتاح أمان YubiKey
+ "YubiKey" is the product name and should not be translated.
+
+
+ إضافة مرفق جديد
+
+
+ مرفقات
+
+
+ تعذر تنزيل الملف.
+
+
+ لا يمكن لجهازك فتح هذا النوع من الملفات.
+
+
+ تحميل...
+ Message shown when downloading a file
+
+
+ حجم هذا المرفق {0}. هل أنت متأكد أنك تريد تنزيله على جهازك؟
+ The placeholder will show the file size of the attachment. Ex "25 MB"
+
+
+ مفتاح المصادقة (TOTP)
+
+
+ رمز التحقق (TOTP)
+ Totp code label
+
+
+ تم إضافة مفتاح المصادقة.
+
+
+ لا يمكن قراءة مفتاح المصادقة.
+
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.
+
+
+ مسح رمز QR
+
+
+ الكاميرا
+
+
+ الصور
+
+
+ نسخ TOTP
+
+
+ إذا كان تسجيل الدخول يحتوي على مفتاح مصادقة، انسخ رمز التحقق TOTP إلى الحافظة الخاصة بك عند ملء تسجيل الدخول تلقائيا.
+
+
+ نسخ TOTP تلقائياً
+
+
+ هذه المِيزة متاحة فقط للعضوية المميزة.
+
+
+ تم إضافة المرفق
+
+
+ تم حذف المرفق
+
+
+ اختيار ملف
+
+
+ ملف
+
+
+ لم يتم اختيار ملف
+
+
+ لا توجد مرفقات.
+
+
+ مصدر الملف
+
+
+ الميزة غير متوفرة
+
+
+ الحد الأقصى لحجم الملف هو 100 ميغابايت.
+
+
+ لا يمكنك استخدام هذه الميزة حتى تقوم بتحديث مفتاح التشفير الخاص بك.
+
+
+ اعرف المزيد
+
+
+ رابط خادم API
+
+
+ بيئة مخصصة
+
+
+ للمستخدمين المتقدمين. يمكنك تحديد عنوان URL الأساسي لكل خدمة بشكل مستقل.
+
+
+ تم حفظ عناوين URL للبيئة.
+
+
+ {0} لم يتم تنسيقه بشكل صحيح.
+ Validation error when something is not formatted correctly, such as a URL or email address.
+
+
+ رابط خادم الهوية
+ "Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
+
+
+ البيئة المستضافة ذاتيا
+
+
+ حدد عنوان URL الأساسي الخاص بك على الفرضية المستضيفة Bitwarden
+
+
+ رابط الخادم
+
+
+ رابط خادم مخزن الويب
+
+
+ اضغط على هذا الإشعار لعرض العناصر من الخزنة الخاصة بك.
+
+
+ حقول مخصصة
+
+
+ نسخ الرقم
+
+
+ نسخ رمز الأمان
+
+
+ رقم
+
+
+ رمز الأمان
+
+
+ بطاقة
+
+
+ الهوية
+
+
+ تسجيل الدخول
+
+
+ ملاحظة آمنة
+
+
+ العنوان 1
+
+
+ العنوان 2
+
+
+ العنوان 3
+
+
+ أبريل/نيسان
+
+
+ أغسطس
+
+
+ العلامة
+
+
+ اسم حامل البطاقة
+
+
+ المدينة / البلدة
+
+
+ الشركة
+
+
+ الدولة
+
+
+ ديسمبر
+
+
+ د
+
+
+ شهر انتهاء الصلاحية
+
+
+ سنة انتهاء الصلاحية
+
+
+ فبراير
+
+
+ الاسم الأول
+
+
+ يناير
+
+
+ يوليو
+
+
+ يونيو
+
+
+ اسم العائلة
+
+
+ الاسم الكامل
+
+
+ رقم الرخصة
+
+
+ مارس
+
+
+ مايو
+
+
+ الإسم الأوسط
+
+
+ السيد
+
+
+ السيدة
+
+
+ آنسة
+
+
+ نوفمبر
+
+
+ أكتوبر
+
+
+ رقم جواز السفر
+
+
+ الهاتف
+
+
+ سبتمبر
+
+
+ رقم الضمان الاجتماعي
+
+
+ الولاية / المقاطعة
+
+
+ اللقب
+
+
+ الرمز البريدي
+
+
+ العنوان
+
+
+ تاريخ الانتهاء
+
+
+ إظهار أيقونات الموقع
+
+
+ إظهار صورة قابلة للتعرف بجانب كل تسجيل دخول.
+
+
+ رابط ملقم الأيقونات
+
+
+ ملء تلقائي باستخدام Bitwarden
+
+
+ الخزنة مقفلة
+
+
+ اذهب لخزنتي
+
+
+ المختارات
+
+
+ لا توجد عناصر في هذه المجموعة.
+
+
+ لا توجد عناصر في هذا المجلد.
+
+
+ لا توجد عناصر في سلة المهملات.
+
+
+ الوصول لخدمة الملء التلقائي
+
+
+ تستخدم خدمة Bitwarden للتعبئة التلقائية إطار التشغيل التلقائي لأندرويد للمساعدة في ملء معلومات تسجيل الدخول في تطبيقات أخرى على جهازك.
+
+
+ استخدم خدمة إمكانية الوصول إلى bitwarden لملء بيانات الاعتماد الخاصة بك تلقائيًا.
+
+
+ فتح إعدادات الملء التلقائي
+
+
+ معرف الوجه
+ What Apple calls their facial recognition reader.
+
+
+ استخدم معرف الوجه للتحقق.
+
+
+ استخدم معرف الوجه للفتح
+
+
+ التحقق من هوية الوجه
+
+
+ ويندوز هيلو
+
+
+ لم نتمكن من فتح قائمة إعدادات الملء التلقائي لنظام Android نيابةً عنك. يمكنك الانتقال إلى قائمة إعدادات الملء التلقائي يدويًا من إعدادات Android & GT ؛ نظام & GT. اللغات والمدخلات & GT. متقدم & GT. خدمة الملء التلقائي.
+
+
+ اسم الحقل المخصص
+
+
+ قيمة منطقية
+
+
+ مخفي
+
+
+ مرتبط
+
+
+ نص
+
+
+ حقل مخصص جديد
+
+
+ ما نوع الحقل المخصص الذي تريد إضافته؟
+
+
+ إزالة
+
+
+ رابط جديد
+
+
+ رابط {0}
+ Label for a uri/url with position. i.e. URI 1, URI 2, etc
+
+
+ النطاق الأساسي
+
+
+ الافتراضي
+
+
+ بالضبط
+
+
+ المضيف
+ A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.
+
+
+ التعبير الاعتيادي
+ A programming term, also known as 'RegEx'.
+
+
+ يبدأ بـ
+
+
+ كشف مطابقة URI
+
+
+ كشف المطابقة
+ URI match detection for auto-fill.
+
+
+ نعم، وحفظ
+
+
+ التعبئة التلقائية والحفظ
+
+
+ المؤسسة
+ An entity of multiple related people (ex. a team or business organization).
+
+
+ اضغط على Yubikey بالقرب من الجزء العلوي من الجهاز.
+
+
+ حاول مرة أخرى
+
+
+ للمتابعة، استمر بالضغط على Yubikey NEO على ظهر الجهاز.
+
+
+ قد تكون خدمة الوصول مفيدة للاستخدام عندما لا تدعم التطبيقات خدمة الملء التلقائي القياسية.
+
+
+ تم تحديث كلمة المرور
+ ex. Date this password was updated
+
+
+ تم التحديث
+ ex. Date this item was updated
+
+
+ تفعيل التعبئة التلقائية!
+
+
+ يجب عليك تسجيل الدخول إلى تطبيق Bitwarden الرئيسي قبل أن تتمكن من استخدام AutoFill.
+
+
+ تسجيلات الدخول الخاصة بك الآن يمكن الوصول إليها بسهولة من لوحة المفاتيح الخاصة بك أثناء تسجيل الدخول إلى التطبيقات ومواقع الويب.
+
+
+ نوصي بتعطيل أي تطبيقات أخرى من تطبيقات التعبئة التلقائية تحت الإعدادات إذا كنت لا تخطط لاستخدامها.
+
+
+ الوصول إلى الخزن, الخاص, بك مباشرة من لوحة المفاتيح الخاصة بك لملء كلمات المرور تلقائياً بسرعة.
+
+
+ لتمكين التعبئة التلقائية لكلمة المرور على جهازك، اتبع هذه التعليمات:
+
+
+ 1. انتقل إلى تطبيق "إعدادات" iOS
+
+
+ 2. انقر فوق "كلمات المرور"
+
+
+ 3. انقر فوق "ملء كلمة المرور تلقائياً"
+
+
+ 4. تشغيل التعبئة التلقائية
+
+
+ 5. حدد "Bitwarden"
+
+
+ تعبئة تلقائية لكلمة المرور
+
+
+ أسهل طريقة لإضافة تسجيلات دخول جديدة إلى خزنتك هي من خدمة التعبئة التلقائية Bitwarden. تعرف على المزيد حول استخدام خدمة الملء التلقائي لـ Bitwarden عن طريق الانتقال إلى شاشة "إعدادات".
+
+
+ عنوان البريد الإلكتروني غير صالح.
+
+
+ البطاقات
+
+
+ الهويات
+
+
+ معرفات
+
+
+ ملاحظات آمنة
+
+
+ كافة العناصر
+
+
+ الرابط
+ Plural form of a URI
+
+
+ التحقق من كلمة المرور...
+ A loading message when doing an exposed password check.
+
+
+ تحقق مما إذا تم الكشف عن كلمة المرور.
+
+
+ تم كشف كلمة المرور هذه {0} مرة (مرات) في عمليات اختراق البيانات. يجب عليك تغييرها.
+
+
+ لم يتم العثور على كلمة المرور هذه في أي عمليات اختراق معروفة للبيانات. يجب أن تكون آمنة للاستخدام.
+
+
+ اسم الهوية
+
+
+ القيمة
+
+
+ سجل كلمة المرور
+
+
+ أنواع
+
+
+ لا توجد كلمات مرور للقائمة.
+
+
+ لا توجد عناصر للقائمة.
+
+
+ مجموعة البحث
+
+
+ إرسال ملف البحث
+
+
+ إرسال نص البحث
+
+
+ البحث عن {0}
+ ex: Search Logins
+
+
+ نوع
+
+
+ تحريك للأسفل
+
+
+ التحريك للاعلى
+
+
+ متفرقات
+
+
+ المالك
+
+
+ من يملك هذا العنصر؟
+
+
+ لا توجد مجموعات لسردها.
+
+
+ {0} نقل إلى {1}.
+ ex: Item moved to Organization.
+
+
+ تمت مشاركة العنصر.
+
+
+ يجب عليك تحديد مجموعة واحدة على الأقل.
+
+
+ مشاركة
+
+
+ مشاركة عنصر
+
+
+ نقل إلى مؤسسة
+
+
+ لا توجد مؤسسات لسردها.
+
+
+ اختر المؤسسة التي ترغب في نقل هذا العنصر إليها. يؤدي الانتقال إلى مؤسسة إلى نقل ملكية العنصر إلى تلك المؤسسة. لن تكون المالك المباشر لهذا العنصر بعد نقله.
+
+
+ عدد الكلمات
+
+
+ جملة المرور
+
+
+ فاصل الكلمات
+
+
+ مسح
+ To clear something out. example: To clear browser history.
+
+
+ المولّد
+ Short for "Password Generator"
+
+
+ لا توجد مجلّدات لسردها.
+
+
+ عبارة بصمة الإصبع
+ A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
+
+
+ عبارة بصمة حسابك
+ A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
+
+
+ يسمح لك Bitwarden بمشاركة عناصر خزنتك مع الآخرين باستخدام حساب المؤسسة. هل ترغب في زيارة موقع bitwarden.com لمعرفة المزيد؟
+
+
+ تصدير الخزنة
+
+
+ إقفل الآن
+
+
+ رقم تعريف شخصي
+
+
+ إلغاء القفل
+
+
+ افتح الحافظة
+
+
+ 30 دقيقة
+
+
+ تعيين رمز PIN الخاص بك لإلغاء قفل Bitwarden. سيتم إعادة تعيين إعدادات PIN الخاصة بك إذا قمت بتسجيل الخروج بالكامل من التطبيق.
+
+
+ تم تسجيل الدخول كـ {0} في {1}.
+ ex: Logged in as user@example.com on bitwarden.com.
+
+
+ خزنتك مقفلة. تحقق من كلمة المرور الرئيسية للمتابعة.
+
+
+ خزنتك مقفلة. تحقق من رمز PIN الخاص بك للمتابعة.
+
+
+ خزنتك مقفلة. تحقق من هويتك للمتابعة.
+
+
+ داكن
+ A dark color
+
+
+ فاتح
+ A light color
+
+
+ 5 دقائق
+
+
+ 10 ثوانِ
+
+
+ 30 ثانية
+
+
+ 20 ثانية
+
+
+ دقيقتان
+
+
+ مسح الحافظة
+ Clipboard is the operating system thing where you copy/paste data to on your device.
+
+
+ مسح القيم المنسوخة تلقائيًا من حافظتك.
+ Clipboard is the operating system thing where you copy/paste data to on your device.
+
+
+ كشف تطابق الرابط الافتراضي
+ Default URI match detection for auto-fill.
+
+
+ اختر الطريقة الافتراضية التي يتم بها معالجة اكتشاف تطابق الرابط لعمليات تسجيل الدخول عند تنفيذ إجراءات مثل الملء التلقائي.
+
+
+ المظهر
+ Color theme
+
+
+ تغيير سمة لون التطبيق.
+
+
+ الافتراضي (النظام)
+
+
+ السمة المظلمة الافتراضية
+
+
+ اختر السمة المظلمة لاستخدامها عند استخدام السمة الافتراضية (النظام) أثناء تمكين الوضع المظلم لجهازك
+
+
+ نسخ الملاحظة
+
+
+ الخروج
+
+
+ هل أنت متأكد من أنك تريد الخروج من Bitwarden؟
+
+
+ هل تريد طلب إلغاء القفل باستخدام كلمة المرور الرئيسية عند إعادة تشغيل التطبيق؟
+
+
+ أسود
+ The color black
+
+
+ نورد
+ 'Nord' is the name of a specific color scheme. It should not be translated.
+
+
+ تعبئة العناوين المحجوبة تلقائياً
+
+
+ لن يتم عرض التعبئة التلقائية للعناوين المحجوبة. افصل عناوين متعددة بفاصلة. مثال: "https://twitter.com, androidapp://com.twitter.android".
+
+
+ اطلب إضافة تسجيل الدخول
+
+
+ اطلب إضافة عنصر إذا لم يتم العثور عليه في خزنتك.
+
+
+ عند إعادة تشغيل التطبيق
+
+
+ التعبئة التلقائية تجعل من السهل الوصول بشكل آمن إلى خزنة Bitwarden الخاصة بك من مواقع الويب والتطبيقات الأخرى. يبدو أنك لم تقم بتمكين خدمة التعبئة التلقائية لـ Bitwarden. تمكين التعبئة التلقائية لـ Bitwarden من شاشة "الإعدادات".
+
+
+ سيتم تطبيق تغييرات السمة الخاصة بك عند إعادة تشغيل التطبيق.
+
+
+ كبّر الحروف
+ ex. Uppercase the first character of a word.
+
+
+ تضمين الرقم
+
+
+ تنزيل
+
+
+ تمت المشاركة
+
+
+ إظهار / إخفاء
+
+
+ انتهت صلاحية جلسة تسجيل الدخول الخاصة بك.
+
+
+ المصادقة البيومترية
+
+
+ البصمات
+
+
+ استخدام القياسات الحيوية للفتح
+
+
+ Bitwarden بحاجة إلى الاهتمام - انظر "خدمة الوصول إلى الملء التلقائي" من إعدادات Bitwarden
+
+
+ 3. على شاشة إعدادات تطبيق Android لـ Bitwarden، انتقل إلى خيارات "العرض فوق التطبيقات الأخرى" (تحت خيارات متقدمة) وانقر على زر التبديل لتمكين دعم التراكب.
+
+
+ الصلاحية
+
+
+ فتح إعدادات أذونات التراكب
+
+
+ 3. في شاشة إعدادات تطبيقات Android لـ Bitwarden، حدد "العرض فوق التطبيقات الأخرى" (ضمن "خيارات متقدمة") وقم بتشغيل مفتاح التبديل للسماح بالتراكب.
+
+
+ تم رفضه
+
+
+ تم المنح
+
+
+ صيغة الملف
+
+
+ أدخل كلمة المرور الرئيسية لتصدير بيانات خزنتك.
+
+
+ إرسال رمز التحقق إلى بريدك الإلكتروني
+
+
+ تم إرسال الرمز
+
+
+ قم بتأكيد هويتك للمتابعة.
+
+
+ يحتوي هذا التصدير على بيانات خزنتك بتنسيق غير مشفر. لا يجب عليك تخزين أو إرسال الملف الذي تم تصديره عبر قنوات غير آمنة (مثل البريد الإلكتروني). احذفه مباشرة بعد انتهائك من استخدامه.
+
+
+ يقوم هذا التصدير بتشفير بياناتك باستخدام مفتاح تشفير حسابك. إذا قمت بتدوير مفتاح تشفير حسابك يجب عليك التصدير مرة أخرى لأنك لن تتمكن من فك تشفير ملف التصدير هذا.
+
+
+ مفاتيح تشفير الحساب فريدة من نوعها لكل حساب مستخدم Bitwarden، لذلك لا يمكنك استيراد تصدير مشفر إلى حساب آخر.
+
+
+ تأكيد تصدير الخزنة
+ Title for the alert to confirm vault exports.
+
+
+ تحذير
+
+
+ كانت هناك مشكلة في تصدير خزنتك. إذا استمرت المشكلة، ستحتاج إلى التصدير من خزانة الويب.
+
+
+ تم تصدير الخزنة بنجاح
+
+
+ استنساخ
+ Clone an entity (verb).
+
+
+ واحدة أو أكثر من سياسات المؤسسة تؤثر على إعدادات المولد الخاص بك
+
+
+ فتح
+ Button text for an open operation (verb).
+
+
+ كانت هناك مشكلة في حفظ هذا المرفق. إذا استمرت المشكلة ، يمكنك حفظها من خزنة الويب.
+
+
+ تم حفظ المرفق بنجاح
+
+
+ الرجاء تمكين "خدمة الوصول إلى الملء التلقائي" من إعدادات Bitwarden لاستخدام الملء التلقائي.
+
+
+ لم يتم العثور على حقول كلمة المرور
+
+
+ إرسال إلى سلة المهملات...
+ Message shown when interacting with the server
+
+
+ تم إرسال العنصر إلى سلة المهملات.
+ Confirmation message after successfully soft-deleting a login
+
+
+ استعادة
+ Restores an entity (verb).
+
+
+ إستعادة...
+ Message shown when interacting with the server
+
+
+ تم استعادة العنصر.
+ Confirmation message after successfully restoring a soft-deleted item
+
+
+ سلة المهملات
+ (noun) Location of deleted items which have not yet been permanently deleted
+
+
+ البحث عن سلة المهملات
+ (action prompt) Label for the search text field when viewing the trash folder
+
+
+ هل تريد حقاً الحذف نهائيًا؟ لا يمكن التراجع عن ذلك.
+ Confirmation alert message when permanently deleteing a cipher.
+
+
+ هل تريد حقاً استعادة هذا العنصر؟
+ Confirmation alert message when restoring a soft-deleted cipher.
+
+
+ هل تريد حقاً أن ترسل إلى سلة المهملات؟
+ Confirmation alert message when soft-deleting a cipher.
+
+
+ تم تعطيل فتح القفل الحيوي في انتظار التحقق من كلمة المرور الرئيسية.
+
+
+ تم تعطيل إلغاء القفل البيومتري للملء التلقائي في انتظار التحقق من كلمة المرور الرئيسية.
+
+
+ تمكين المزامنة عند التحديث
+
+
+ مزامنة الخزنة مع إيماءة السحب لأسفل.
+
+
+ تسجيل الدخول الفردي للمؤسسة
+
+
+ قم بتسجيل الدخول بسرعة باستخدام بوابة تسجيل الدخول الوحيدة لمؤسستك. الرجاء إدخال معرف مؤسستك للبدء.
+
+
+ معرف المؤسسة
+
+
+ غير قادر حاليا على تسجيل الدخول باستخدام SSO
+
+
+ تعيين كلمة المرور الرئيسية
+
+
+ من أجل إكمال تسجيل الدخول باستخدام SSO، يرجى تعيين كلمة مرور رئيسية للوصول وحماية خزنتك.
+
+
+ 1 - تتطلب سياسة واحدة أو أكثر من سياسات المؤسسة كلمة مرورك الرئيسية لتلبية المتطلبات التالية:
+
+
+ الحد الأدنى لدرجة التعقيد {0}
+
+
+ الحد الأدنى لطول {0}
+
+
+ يحتوي على حرف كبير واحد أو أكثر
+
+
+ يحتوي على واحد أو أكثر من الأحرف الصغيرة
+
+
+ يحتوي على رقم واحد أو أكثر
+
+
+ يحتوي على واحد أو أكثر من الأحرف الخاصة التالية: {0}
+
+
+ كلمة المرور غير صالحة
+
+
+ كلمة المرور لا تفي بمتطلبات المؤسسة. الرجاء التحقق من معلومات السياسة وحاول مرة أخرى.
+
+
+ جار التحميل
+
+
+ بتفعيل هذا التبديل فإنك توافق على ما يلي:
+
+
+
+ لم يتم الاعتراف بشروط الخدمة وسياسة الخصوصية.
+
+
+ اتفاقية خدمة المستخدم
+
+
+ سياسة الخصوصيّة
+
+
+ يحتاج Bitwarden إلى الاهتمام - قم بتمكين "السحب" في "خدمات الملء التلقائي" من إعدادات Bitwarden
+
+
+ خدمات التعبئة التلقائية
+
+
+ استخدم "الملء التلقائي المضمن"
+
+
+ استخدم التعبئة التلقائية المضمنة إذا دعمتها لوحة المفاتيح المحددة. إذا كان إعداداتك غير مدعوم (أو تم تعطيل هذا الخيار)، سيتم استخدام تراكب ملء تلقائي الافتراضي.
+
+
+ استخدام إمكانية الوصول
+
+
+ استخدم خدمة إمكانية الوصول إلى Bitwarden لملء تسجيلات الدخول الخاصة بك تلقائياً عبر التطبيقات و الويب. عند التمكين، سوف نعرض نافذة منبثقة عند تحديد حقول تسجيل الدخول.
+
+
+ استخدم خدمة إمكانية الوصول إلى Bitwarden لملء تسجيلات الدخول الخاصة بك تلقائياً عبر التطبيقات و الويب. (يتطلب السحب من أجل تمكينه أيضا)
+
+
+ استخدم خدمة الوصول Bitwarden لاستخدام ساحة التعبئة التلقائية السريعة، و/أو إظهار نافذة منبثقة باستخدام السحب فوق (إذا تم تفعيلها).
+
+
+ مطلوب لاستخدام ساحة التعبئة التلقائية للإجراء السريع، أو لزيادة خدمة التعبئة التلقائية باستخدام السحب فوق (إذا تم تمكينه).
+
+
+ إستخدام السحب
+
+
+ عند التمكين، يسمح لخدمة الوصول إلى Bitwarden لعرض نافذة منبثقة عند تحديد حقول الدخول.
+
+
+ في حالة التمكين، ستعرض خدمة Bitwarden إمكانية الوصول نافذة منبثقة عند تحديد حقول تسجيل الدخول للمساعدة في ملء تسجيلات الدخول الخاصة بك تلقائيا.
+
+
+ في حالة التمكين، سيظهر الوصول نافذة منبثقة لزيادة خدمة التعبئة التلقائية للتطبيقات القديمة التي لا تدعم إطار التشغيل التلقائي للإندرويد.
+
+
+ بسبب سياسة المؤسسة، أنت محظور عليك حفظ العناصر في خزانتك الشخصية. تغيير خيار الملكية إلى مؤسسة واختيار من المجموعات المتاحة.
+
+
+ تؤثر سياسة مؤسسة على خيارات الملكية الخاصة بك.
+
+
+ إرسال
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ كل الإرسالات
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إرسالات
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ اسم ودي لوصف هذا الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ نص
+
+
+ نص
+
+
+ النص الذي تريد إرساله.
+
+
+ عند الوصول إلى الإرسال، إخفاء النص بشكل افتراضي
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ ملف
+
+
+ الملف الذي تريد إرساله.
+
+
+ تم تحديد نوع الملف.
+
+
+ لم يتم تحديد نوع الملف، انقر للتحديد.
+
+
+ تم تحديد نوع النص.
+
+
+ لم يتم تحديد نوع النص، انقر للتحديد.
+
+
+ تاريخ الحذف
+
+
+ وقت الحذف
+
+
+ سيتم حذف الإرسال بشكل دائم في التاريخ والوقت المحددين.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ في انتظار الحذف
+
+
+ تاريخ انتهاء الصلاحية
+
+
+ وقت انتهاء الصلاحية
+
+
+ في حالة التعيين، ستنتهي صلاحية الوصول إلى هذا الإرسال في التاريخ والوقت المحددين.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ منتهية الصلاحية
+
+
+ الحد الأقصى لعدد الوصول
+
+
+ في حالة التعيين، لن يتمكن المستخدمون من الوصول إلى هذا الإرسال بمجرد الوصول إلى الحد الأقصى لعدد الوصول.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ تم بلوغ الحد الأقصى لعدد الدخول
+
+
+ العد الحالي للوصول
+
+
+ كلمة المرور الجديدة
+
+
+ بشكل اختياري يتطلب كلمة مرور للمستخدمين للوصول إلى هذا الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إزالة كلمة المرور
+
+
+ هل أنت متأكد من أنك تريد إزالة كلمة المرور؟
+
+
+ إزالة كلمة المرور
+
+
+ تم إزالة كلمة المرور
+
+
+ ملاحظات خاصة حول هذا الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ قم بتعطيل هذا الإرسال حتى لا يتمكن أي شخص من الوصول إليه
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ لا توجد إرسالات في حسابك.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إضافة إرسال
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ نسخ الرابط
+
+
+ مشاركة الرّابط
+
+
+ إرسال رابط
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ بحث عن الإرسالات
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ عدّل الإرسال
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إضافة إرسال
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ هل أنت متأكد من أنك تريد حذف هذا الإرسال؟
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ تم حذف الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ تم تحديث الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ تم إنشاء إرسال جديد.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ يوم واحد
+
+
+ يومان
+
+
+ 3 أيام
+
+
+ 7 أيام
+
+
+ 30 يوماً
+
+
+ مُخصّص
+
+
+ شارك هذا الإرسال عند الحفظ
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ بسبب سياسة المؤسسة، يمكنك فقط حذف إرسال موجود بالفعل.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ حول إرسال
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إخفاء عنوان البريد الإلكتروني الخاص بي من المستلمين
+
+
+ واحدة أو أكثر من سياسات المؤسسة تؤثر على خيارات إرسال الخاص بك.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ الحسابات المجانية مقيدة بمشاركة النص فقط. مطلوب عضوية مميزة لاستخدام الملفات مع الإرسال.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ يجب عليك التحقق من بريدك الإلكتروني لاستخدام الملفات مع الإرسال. يمكنك التحقق من بريدك الإلكتروني في خزانة الويب.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ إعادة توجيه كلمة المرور الرئيسية
+
+
+ تأكيد كلمة المرور الرئيسية
+
+
+ هذا الإجراء محمي، للاستمرار أعد إدخال كلمة المرور الرئيسية للتحقق من هويتك.
+
+
+ كلمة التحقق مطلوبة
+
+
+ فشلت كلمة التحقق. الرجاء المحاولة مرة أخرى.
+
+
+ تحديث كلمة المرور الرئيسية
+
+
+ تحديث كلمة المرور الرئيسية
+
+
+ تم تغيير كلمة المرور الرئيسية الخاصة بك مؤخرًا من قبل مسؤول في مؤسستك. من أجل الوصول إلى الخزانة، يجب عليك تحديث كلمة المرور الرئيسية الآن. سيتم تسجيل خروجك من الجلسة الحالية، مما يتطلب منك تسجيل الدخول مرة أخرى. وقد تظل الجلسات النشطة على أجهزة أخرى نشطة لمدة تصل إلى ساعة واحدة.
+
+
+ تحديث كلمة المرور
+
+
+ غير قادر حاليا على تحديث كلمة المرور
+
+
+ إزالة كلمة المرور الرئيسية
+
+
+ {0} يستخدم SSO مع التشفير الذي يديره العملاء. الاستمرار سيزيل كلمة المرور الرئيسية الخاصة بك من حسابك ويتطلب تسجيل الدخول.
+
+
+ إذا كنت لا تريد إزالة كلمة المرور الرئيسية الخاصة بك، فيمكنك مغادرة هذه المؤسسة.
+
+
+ مغادرة المؤسسة
+
+
+ مغادرة {0}؟
+
+
+ FIDO2 WebAuthn
+
+
+ للمتابعة، قم بتجهيز مفتاح الأمان الخاص بك FIDO2 WebAuthn ، ثم اتبع التعليمات بعد النقر فوق 'مصادقة WebAuthn' على الشاشة التالية.
+
+
+ المصادقة باستخدام FIDO2 WebAuthn ، يمكنك المصادقة باستخدام مفتاح أمان خارجي.
+
+
+ مصادقة WebAuthn
+
+
+ الرجوع إلى التطبيق
+
+
+ يرجى التأكد من أن المتصفح الافتراضي الخاص بك يدعم WebAuthn وحاول مرة أخرى.
+
+
+ هذه المؤسسة لديها سياسة الشركة التي ستقوم تلقائياً بتسجيلك في إعادة تعيين كلمة المرور. التسجيل سيسمح لمسؤولي المؤسسة بتغيير كلمة المرور الرئيسية الخاصة بك.
+
+
+ سياسات مؤسستك تؤثر على مهلة الخزنة الخاص بك. الحد الأقصى المسموح به لمهلة الخزنة هو {0} ساعة و {1} دقيقة
+
+
+ مهلة خزنتك تتجاوز القيود التي تضعها مؤسستك.
+
+
+ واحدة أو أكثر من سياسات المؤسسة تمنعك من تصدير خزانتك الشخصية.
+
+
+ إضافة حساب
+
+
+ غير مقفل
+
+
+ مقفل
+
+
+ الخروج
+
+
+ التحول إلى الحساب التالي المتاح
+
+
+ تم تأمين الحساب
+
+
+ تم تسجيل الخروج من الحساب بنجاح
+
+
+ أُزيل الحساب بنجاح
+
+
+ حذف الحساب
+
+
+ حذف حسابك نهائي
+
+
+ سيتم محو حسابك وجميع البيانات المرتبطة به ولن يمكن استردادها. هل أنت متأكد أنك تريد الاستمرار؟
+
+
+ حذف حسابك
+
+
+ تم حذف حسابك بشكل دائم
+
+
+ رقم التحقق خاطئ
+
+
+ اطلب كلمة مرور لمرة واحدة
+
+
+ إرسال الرمز
+
+
+ جار الإرسال
+
+
+ انسخ رابط الإرسال عند الحفظ
+
+
+ جار إرسال الرمز
+
+
+ جارٍ التحقق
+
+
+ إعادة إرسال الرمز
+
+
+ تم إرسال رمز التحقق إلى بريدك الإلكتروني
+
+
+ حدث خطأ أثناء إرسال رمز التحقق إلى بريدك الإلكتروني. حاول مرة أخرى
+
+
+ أدخِل رمز التحقق الذي أرسل إلى بريدك الإلكتروني.
+
+
+ إرسال سجلات الأعطال
+
+
+ ساعد Bitwarden في تحسين استقرار التطبيق من خلال إرسال تقارير الأعطال.
+
+
+ يتم توسيع الخيارات، انقر للتصغير.
+
+
+ تم تصغير الخيارات، انقر للتوسيع.
+
+
+ أحرف كبيرة (من A إلى Z)
+
+
+ أحرف صغيرة (من A إلى Z)
+
+
+ الأعداد (من 0 حتى 9)
+
+
+ أحرف خاصة (!@#$%^&*)
+
+
+ اضغط للعودة
+
+
+ كلمة المرور مرئية، انقر للإخفاء.
+
+
+ كلمة المرور مخفية، انقر للإظهار.
+
+
+ تصفية العناصر حسب الخزنات
+
+
+ جميع الخزنات
+
+
+ الخزنات
+
+
+ الخزنة: {0}
+
+
+ الكل
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ تعيين خيارات قفل الخاص بك إلى "مطلقا" يبقي خزنتك متاحةً لأي شخص لديه حق الوصول إلى جهازك. إذا كنت تستخدم هذا الخيار، يجب أن تتأكد من الحفاظ على حماية جهازك بشكل صحيح.
+
+
+ واحد أو أكثر من عناوين URL التي تم إدخالها غير صالحة. الرجاء مراجعتها ومحاولة الحفظ مرة أخرى.
+
+
+ لم نتمكن من معالجة طلبك. الرجاء المحاولة مرة أخرى أو الاتصال بنا.
+
+
+ السماح بالتقاط الشاشة
+
+
+ هل أنت متأكد من أنك تريد تمكين التقاط الشاشة؟
+
+
diff --git a/src/App/Resources/AppResources.az.resx b/src/App/Resources/AppResources.az.resx
index 1f48ad319..00b9ba77d 100644
--- a/src/App/Resources/AppResources.az.resx
+++ b/src/App/Resources/AppResources.az.resx
@@ -299,6 +299,10 @@
AnbarımThe title for the vault page.
+
+ Kimlik təsdiqləyici
+ Authenticator TOTP feature
+
AdLabel for an entity name.
@@ -770,6 +774,12 @@
Fəallaşdırıldı
+
+ Bağlı
+
+
+ Açıq
+
Vəziyyət
@@ -889,11 +899,9 @@
Kimlik təsdiqləyici açarı oxuna bilmir.
-
- Skan avtomatik olaraq icra ediləcək.
-
-
- Kameranı QR koduna yönləndirin.
+
+ Kameranızı QR koduna yönəldin.
+Skan prosesi avtomatik baş tutacaq.QR kodu skan edin
@@ -907,11 +915,11 @@
TOTP-ni kopyala
-
- Hesabınıza əlavə edilən kimlik təsdiqləyici açarı varsa, giriş məlumatları avto-doldurulanda TOTP təsdiqləmə kodu da avtomatik olaraq lövhəyə kopyalanacaq.
+
+ Bir girişin, kimlik təsdiqləyici açarı varsa, giriş məlumatları avto-doldurulanda TOTP təsdiqləmə kodunu kopyalayın.
-
- Avtomatik TOTP kopyalamasını sıradan çıxart
+
+ TOTP-ni avtomatik kopyalaBu özəlliyi istifadə etmək üçün premium üzvlük lazımdır.
@@ -1128,11 +1136,11 @@
Bitmə vaxtı
-
- Veb sayt nişanlarını sıradan çıxart
+
+ Veb sayt nişanlarını göstər
-
- Veb sayt nişanları, anbarınızda hər bir giriş elementinin yanında tanımağınıza kömək edən bir təsvir təqdim edir.
+
+ Hər girişin yanında tanına bilən təsvir göstər.Nişan server URL-si
@@ -1372,11 +1380,15 @@
Kolleksiya axtar
-
- Qovluq axtar
+
+ Fayl "Send"lərini axtar
-
- Axtarış növü
+
+ Mətn "Send"lərini axtar
+
+
+ Axtar: {0}
+ ex: Search LoginsNöv
@@ -1537,6 +1549,12 @@
İlkin (Sistem)
+
+ İlkin tünd tema
+
+
+ Cihazınızda tünd rejim fəal olanda İlkin (Sistem) temanı istifadə edərkən istifadə ediləcək tünd temanı seçin
+
Qeydləri kopyala
@@ -1553,17 +1571,21 @@
QaraThe color black
-
- Qara siyahıdakı URI-lər
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Qara siyahıdakı URI-lərə avto-doldurma təklif edilməyəcək. Siyahı vergüllə ayrılmalıdır. Məs. "https://twitter.com, androidapp://com.twitter.android".
+
+ Əngəllənən URI-lərin avto-doldurulması
-
- Saxlama istəyini sıradan çıxart
+
+ Əngəllənən URI-lər üçün avto-doldurma təklif edilmir. Çoxlu URI-ni vergüllə ayırır. Nümunə: "https://twitter.com, androidapp://com.twitter.android".
-
- "Saxlama istəyi", ilk dəfə istifadə etdiyiniz məlumatları anbarda saxlamaq istəyib-istəmədiyinizi avtomatik olaraq soruşur.
+
+ Giriş əlavə etmək üçün soruş
+
+
+ Anbarınızda yoxdursa, bir element əlavə etməyi soruşun.Tətbiq yenidən başladılanda
@@ -1856,6 +1878,9 @@
Bu "Send"i açıqlayan bir ad.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Mətn
+
Mətn
@@ -1872,6 +1897,18 @@
Göndərmək istədiyiniz fayl.
+
+ Fayl növü seçildi.
+
+
+ Fayl növü seçilmədi, seçmək üçün toxunun.
+
+
+ Mətn növü seçildi.
+
+
+ Mətn növü seçilmədi, seçmək üçün toxunun.
+
Silinmə tarixi
@@ -2176,4 +2213,103 @@
E-poçtunuza göndərilmiş təsdiqləmə kodunu daxil edin
+
+ Çökmə jurnallarını göndər
+
+
+ Çökmə hesabatlarını göndərərək Bitwarden-in tətbiq stabilliyini yaxşılaşdırmasına kömək edin.
+
+
+ Seçimlər genişləndirildi, yığcamlaşdırmaq üçün toxunun.
+
+
+ Seçimlər yığcamlaşdırıldı, genişləndirmək üçün toxunun.
+
+
+ Böyük hərf (A-Z)
+
+
+ Kiçik hərf (Z-A)
+
+
+ Rəqəmlər (0-9)
+
+
+ Xüsusi simvollar (!@#$%^&*)
+
+
+ Geriyə getmək üçün toxun
+
+
+ Parol görünür, gizlətmək üçün toxunun.
+
+
+ Parol görünmür, göstərmək üçün toxunun.
+
+
+ Elementləri anbara görə filtrlə
+
+
+ Bütün anbarlar
+
+
+ Anbarlar
+
+
+ Anbar: {0}
+
+
+ Hamısı
+
+
+ TOTP
+
+
+ Təsdiqləmə kodları
+
+
+ Premium abunəlik tələb olunur
+
+
+ Kimlik təsdiqləyici açarı oxuna bilmir?
+
+
+ QR kodu skan edin
+
+
+ QR kodunu skan edə bilmədiniz?
+
+
+ Kimlik təsdiqləyici açarı
+
+
+ Kodu əllə daxil et
+
+
+ TOTP əlavə et
+
+
+ TOTP quraşdır
+
+
+ Açar uğurla daxil edildikdən sonra, açarı güvənli şəkildə saxlamaq üçün "TOTP əlavə et"i seçin
+
+
+
+
+
+ Kilid seçimlərini "Heç vaxt" olaraq tənzimləmək, anbarınızı cihazınıza müraciəti olan hər kəsə əlçatan edir. Bu seçimi istifadə etsəniz, cihazınızı düzgün qoruduğunuza əmin olmalısınız.
+
+
+ Daxil edilən bir və ya daha çox URL yararsızdır. Zəhmət olmasa nəzər salın və yenidən saxlamağa çalışın.
+
+
+ Tələbinizi emal edə bilmədik. Zəhmət olmasa yenidən sınayın və ya bizimlə əlaqə saxlayın.
+
+
+ Ekranı çəkməyə icazə ver
+
+
+ Ekranın çəkilməsini fəallaşdırmaq istədiyinizə əminsiniz?
+
diff --git a/src/App/Resources/AppResources.be.resx b/src/App/Resources/AppResources.be.resx
index 8883b51c3..3cd5af874 100644
--- a/src/App/Resources/AppResources.be.resx
+++ b/src/App/Resources/AppResources.be.resx
@@ -276,16 +276,16 @@
Вы ўпэўнены, што хочаце выйсці?
- Remove Account
+ Выдаліць уліковы запіс
- Are you sure you want to remove this account?
+ Вы ўпэўнены, што хочаце выдаліць уліковы запіс?
- Account Already Added
+ Уліковы запіс ужо дададзены
- Would you like to switch to it now?
+ Хочаце пераключыцца на яго зараз?Асноўны пароль
@@ -299,6 +299,10 @@
Маё сховішчаThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
НазваLabel for an entity name.
@@ -770,6 +774,12 @@
Уключана
+
+ Off
+
+
+ On
+
Стан
@@ -798,7 +808,7 @@
Вы шукаеце элемент аўтазапаўнення для "{0}".
- Learn About Organizations
+ Learn about organizationsНемагчыма адкрыць праграму "{0}".
@@ -889,11 +899,9 @@
Немагчыма прачытаць ключ праверкі аутэнтычнасці.
-
- Сканіраванне будзе адбывацца аўтаматычна.
-
-
- Навядзіце камеру на QR-код.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Сканаваць QR -код
@@ -907,11 +915,11 @@
Капіяваць TOTP
-
- Калі да вашых уліковых даных прымацаваны ключ праверкі сапраўднасці, то код пацвярджэння TOTP будзе скапіяваны пры аўтазапаўненні ўліковых даных.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Адключыць аўтаматычнае капіяванне TOTP
+
+ Copy TOTP automaticallyДля выкарыстання гэтай функцыі патрабуецца прэміяльны статус.
@@ -1128,11 +1136,11 @@
Тэрмін дзеяння
-
- Адключыць значкі вэб-сайтаў
+
+ Show website icons
-
- Значкі вэб-сайтаў паказваюцца з кожным элементам у вашым сховішчы.
+
+ Show a recognizable image next to each login.URL-адрас сервера значкоў
@@ -1372,11 +1380,15 @@
Пошук у калекцыі
-
- Пошук у папцы
+
+ Search File Sends
-
- Пошук па тыпу
+
+ Search Text Sends
+
+
+ Search {0}
+ ex: Search LoginsТып
@@ -1537,6 +1549,12 @@
Default (System)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Капіяваць нататк
@@ -1553,17 +1571,21 @@
ЧорнаяThe color black
-
- URI у чорным спісе
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Аўтазапаўненне не будзе прапаноўвацца для URI з чорнага спіса. Элементы гэтага спіса трэба падзяляць коскай. Напрыклад: "https://twitter.com, androidapp://com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Выключыць запыт на захаванне.
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- Апавяшчэнне аб захаванні аўтаматычна прапануе вам захаваць новыя элементы ў сховішчы пасля іх дадання.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.Пры перазапуску
@@ -1856,6 +1878,9 @@
Зразумелая назва для апісання адпраўлення'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Тэкст
@@ -1872,6 +1897,18 @@
Файл, які вы хочаце адправіць.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Дата выдалення
@@ -2129,13 +2166,13 @@
Account removed successfully
- Delete Account
+ Delete accountDeleting your account is permanent
- Your account and all associated data will be erased and unrecoverable. Are you sure you want to continue?
+ Your account and all vault data will be erased and unrecoverable. Are you sure you want to continue?Deleting your account
@@ -2176,4 +2213,104 @@
Enter the verification code that was sent to your email
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.bg.resx b/src/App/Resources/AppResources.bg.resx
index 3bacc6460..ef66085c0 100644
--- a/src/App/Resources/AppResources.bg.resx
+++ b/src/App/Resources/AppResources.bg.resx
@@ -261,11 +261,11 @@
The button text that allows user to launch the website to their web browser.
- Вписване
+ ВходThe login button text (verb).
- Вписване
+ ВходTitle for login page. (noun)
@@ -299,6 +299,10 @@
Моят трезорThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
ИмеLabel for an entity name.
@@ -393,7 +397,7 @@
Посетете нашия сайт
- Посетете сайта ни за помощ, новини, начини да се свържете с нас и как да ползвате Битуорден.
+ Посетете сайта ни за помощ, новини, начини да се свържете с нас и как да ползвате Bitwarden.Сайт
@@ -415,7 +419,7 @@
Разширение
- Автоматично дописване на полетата във формулярите в приложенията и уеб чрез услугата за достъпност на Битуорден.
+ Автоматично дописване на полетата във формулярите в приложенията и уеб чрез услугата за достъпност на Bitwarden.Услуга за автоматично дописване
@@ -424,7 +428,7 @@
Без нееднозначни знаци
- Разширение за програмите на Битуорден
+ Разширение за програмите на BitwardenНай-лесният начин да добавяте нови записи в трезора е чрез разширението за програмите на Битуорден. Може да научите повече за него в екрана за настройките.
@@ -439,7 +443,7 @@
Автоматично дописване на формулярите за вписване с услугата за достъпност на Битуорден.
- Промяна на адреса за е-поща
+ Промяна на имейлаАдресът ви за е-поща може да се промени чрез сайта bitwarden.com. Искате ли да го посетите?
@@ -457,7 +461,7 @@
Продължаване
- Създаване на абонамент
+ РегистрацияСъздаване на сметката...
@@ -510,7 +514,7 @@
Отпечатък
- Нова парола
+ Генериране на паролаПолучаване на подсказка за главната парола
@@ -562,7 +566,7 @@
Message shown when interacting with the server
- Впишете се или създайте нов абонамент, за да достъпите защитен трезор.
+ Влезте или се регистрирайте, за да имате достъп до вашия защитен трезор.Управление
@@ -770,6 +774,12 @@
Включено
+
+ Изключено
+
+
+ Включено
+
Състояние
@@ -889,11 +899,9 @@
Удостоверителният ключ не може да се прочете.
-
- Сканирането става автоматично.
-
-
- Насочете камерата към QR кода.
+
+ Насочете камерата към QR кода.
+Сканирането ще се извърши автоматично.Сканиране на QR код
@@ -907,11 +915,11 @@
Копиране на кода за потвърждаване
-
+
Ако към вписването има и удостоверителен ключ, кодът за потвърждаване се копира автоматично в буфера при автоматично дописване.
-
- Без автоматично копиране на временни, еднократни пароли
+
+ Автоматично копиране на TOTPЗа да се възползвате от тази възможност, трябва да ползвате платен абонамент.
@@ -1057,7 +1065,7 @@
февруари
- Собствено име
+ Имеянуари
@@ -1069,7 +1077,7 @@
юни
- Фамилно име
+ ФамилияПълно име
@@ -1128,17 +1136,17 @@
Изтичане
-
- Изключване на иконките на сайтовете
+
+ Показване на иконките на уеб сайтовете
-
- Иконките на сайтовете са разпознаваемо изображение за всеки запис в трезора.
+
+ Показване на разпознаваемо изображение до всеки запис.Адрес на сървъра с иконки
- Автоматично дописване с Битуорден
+ Автоматично дописване с BitwardenТрезорът е заключен
@@ -1372,11 +1380,15 @@
Търсене в колекцията
-
- Търсене в папката
+
+ Търсене в изпратените файлове
-
- Търсене по вид
+
+ Търсене в изпратените текстове
+
+
+ Търсене на {0}
+ ex: Search LoginsВид
@@ -1537,6 +1549,12 @@
По подразбиране (от системата)
+
+ Стандартен тъмен облик
+
+
+ Изберете тъмния облик, който да се ползва, когато е избран стандартният (от системата) облик и тъмният режим на устройството Ви е включен.
+
Копиране на бележките
@@ -1553,17 +1571,21 @@
ЗапретThe color black
-
- Адреси под запрет
+
+ Норд
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Няма да се предлага автоматично дописване във формулярите с адреси под запрет. За разделител в списъка ползвайте запетая. Напр: „https://twitter.com, androidapp://com.twitter.android“.
+
+ Блокирани за авт. попълване адреси
-
- Без напомняне за запомняне
+
+ За посочените блокирани адреси няма да се прави автоматично попълване. Разделяйте отделните адреси със запетая. Пример: „https://twitter.com, androidapp://com.twitter.android“.
-
- Дали да бъдете автоматично подканени да запазите в трезора данни за вписване, които въвеждате за първи път.
+
+ Питане за добавяне на запис
+
+
+ Питане за добавяне на запис, ако такъв не бъде намерен в трезора Ви.При рестартиране на приложението
@@ -1856,6 +1878,9 @@
Описателно име за това изпращане.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Текст
+
Текст
@@ -1872,6 +1897,18 @@
Файл за изпращане.
+
+ Избран е файлов тип.
+
+
+ Не е избран файлов тип. Докоснете за избор.
+
+
+ Избран е текстов тип.
+
+
+ Не е избран текстов тип. Докоснете за избор.
+
Дата на изтриване
@@ -2177,4 +2214,104 @@
Въведете кода за потвърждаване, който беше изпратен на Вашата е-поща
+
+ Изпращане на доклади за сривовете
+
+
+ Помогнете на Битуордън в подобряването на стабилността на приложението, като изпращате доклади относно сривовете.
+
+
+ Възможностите са разгънати. Докоснете за свиване.
+
+
+ Възможностите са свити. Докоснете за разгъване.
+
+
+ Главни букви (A-Z)
+
+
+ Малки букви (a-z)
+
+
+ Числа (0-9)
+
+
+ Специални знаци (!@#$%^&*)
+
+
+ Досокнете за връщане назад
+
+
+ Паролата е видима. Докоснете за скриване.
+
+
+ Паролата не е видима. Докоснете за показване.
+
+
+ Филтриране на записите по трезор
+
+
+ Всички трезори
+
+
+ Трезори
+
+
+ Трезор: {0}
+
+
+ Всички
+
+
+ TOTP
+
+
+ Кодове за потвърждаване
+
+
+ Изисква се платен абонамент
+
+
+ Не можете да добавите удостоверителен ключ?
+
+
+ Сканиране на QR код
+
+
+ Не можете да сканирате QR кода?
+
+
+ Ключ за удостоверяване
+
+
+ Ръчно въвеждане на кода
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Ако изберете „Никога“ като настройка за заключването, трезорът Ви ще бъде достъпен за всеки, който има досег с устройството. Ако използвате тази настройка, трябва да се уверите, че устройството Ви е удачно защитено.
+
+
+ Един или повече от въведените адреси са неправилни. Прегледайте ги и ги поправете, а след това опитайте да запазите отново.
+
+
+ Не може да обработим заявката ви. Моля опитайте отново или се свържете с нас.
+
+
+ Позволяване на заснемане на екрана
+
+
+ Наистина ли искате да разрешите заснемането на екрана?
+
diff --git a/src/App/Resources/AppResources.bn.resx b/src/App/Resources/AppResources.bn.resx
index 15255c198..a8c39b945 100644
--- a/src/App/Resources/AppResources.bn.resx
+++ b/src/App/Resources/AppResources.bn.resx
@@ -299,6 +299,10 @@
আমার ভল্টThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
নামLabel for an entity name.
@@ -412,13 +416,13 @@
Add an Item
- App Extension
+ App extensionUse the Bitwarden accessibility service to auto-fill your logins across apps and the web.
- Auto-fill Service
+ Auto-fill serviceAvoid Ambiguous Characters
@@ -473,13 +477,13 @@
আপনার প্রধান পাসওয়ার্ডের ইঙ্গিতটি পেতে আপনার অ্যাকাউন্টের ইমেল ঠিকানা প্রবেশ করুন।
- Re-enable App Extension
+ Re-enable app extensionAlmost done!
- Enable App Extension
+ Enable app extensionIn Safari, find Bitwarden using the share icon (hint: scroll to the right on the bottom row of the menu).
@@ -647,7 +651,7 @@
Push notifications for apple products
- Rate the App
+ Rate the appদয়া করে একটি ভাল পর্যালোচনার মাধ্যমে সাহায্য করতে আমাদের বিবেচনা করুন!
@@ -694,14 +698,14 @@
Syncing failed.
- Sync Vault Now
+ Sync vault nowTouch IDWhat Apple calls their fingerprint reader.
- Two-step Login
+ Two-step loginTwo-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?
@@ -710,7 +714,7 @@
Unlock with {0}
- Unlock with PIN Code
+ Unlock with PIN codeValidating
@@ -723,7 +727,7 @@
View Item
- Bitwarden Web Vault
+ Bitwarden web vaultLost authenticator app?
@@ -733,7 +737,7 @@
Screen title
- Extension Activated!
+ Extension activated!Icons
@@ -770,6 +774,12 @@
Enabled
+
+ Off
+
+
+ On
+
Status
@@ -798,7 +808,7 @@
You are searching for an auto-fill item for "{0}".
- Learn About Organizations
+ Learn about organizationsCannot open the app "{0}".
@@ -889,11 +899,9 @@
Cannot read authenticator key.
-
- Scanning will happen automatically.
-
-
- Point your camera at the QR code.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Scan QR Code
@@ -907,11 +915,11 @@
Copy TOTP
-
- If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Disable Automatic TOTP Copy
+
+ Copy TOTP automaticallyA premium membership is required to use this feature.
@@ -1128,11 +1136,11 @@
Expiration
-
- Disable Website Icons
+
+ Show website icons
-
- Website Icons provide a recognizable image next to each login item in your vault.
+
+ Show a recognizable image next to each login.Icons Server URL
@@ -1311,7 +1319,7 @@
5. Select "Bitwarden"
- Password AutoFill
+ Password auto-fillThe easiest way to add new logins to your vault is by using the Bitwarden Password AutoFill extension. Learn more about using the Bitwarden Password AutoFill extension by navigating to the "Settings" screen.
@@ -1372,11 +1380,15 @@
সংগ্রহ অনুসন্ধান
-
- ফোল্ডার অনুসন্ধান
+
+ Search File Sends
-
- অনুসন্ধানের ধরন
+
+ Search Text Sends
+
+
+ Search {0}
+ ex: Search Loginsধরন
@@ -1445,7 +1457,7 @@
There are no folders to list.
- Fingerprint Phrase
+ Fingerprint phraseA '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.
@@ -1456,10 +1468,10 @@
Bitwarden allows you to share your vault items with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?
- Export Vault
+ Export vault
- Lock Now
+ Lock nowPIN
@@ -1537,8 +1549,14 @@
Default (System)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
- Copy Notes
+ Copy Noteপ্রস্থান
@@ -1553,20 +1571,24 @@
কালোThe color black
-
- Blacklisted URIs
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs that are blacklisted will not offer auto-fill. The list should be comma separated. Ex: "https://twitter.com, androidapp://com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Disable Save Prompt
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- The "Save Prompt" automatically prompts you to save new items to your vault whenever you enter them for the first time.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.
- On App Restart
+ On app restartAuto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.
@@ -1800,16 +1822,16 @@
Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
- Auto-fill Services
+ Auto-fill services
- Use Inline Autofill
+ Use inline autofillUse inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
- Use Accessibility
+ Use accessibilityUse the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
@@ -1824,7 +1846,7 @@
Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).
- Use Draw-Over
+ Use draw-overWhen enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
@@ -1857,6 +1879,9 @@
A friendly name to describe this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1873,6 +1898,18 @@
The file you want to send.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Deletion Date
@@ -2130,13 +2167,13 @@
Account removed successfully
- Delete Account
+ Delete accountDeleting your account is permanent
- Your account and all associated data will be erased and unrecoverable. Are you sure you want to continue?
+ Your account and all vault data will be erased and unrecoverable. Are you sure you want to continue?Deleting your account
@@ -2177,4 +2214,104 @@
Enter the verification code that was sent to your email
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.bs.resx b/src/App/Resources/AppResources.bs.resx
index 3a11f45f2..f3ed9e704 100644
--- a/src/App/Resources/AppResources.bs.resx
+++ b/src/App/Resources/AppResources.bs.resx
@@ -299,6 +299,10 @@
Moj trezorThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
ImeLabel for an entity name.
@@ -770,6 +774,12 @@
Omogućeno
+
+ Off
+
+
+ On
+
Status
@@ -889,11 +899,9 @@
Ne može se pročitati ključ autentifikatora.
-
- Skeniranje će se odviti automatski.
-
-
- Usmerite kameru prema QR kodu.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Skenirajte QR kod
@@ -907,11 +915,11 @@
Iskopirajte TOTP
-
- Ako je za Vašu prijavu priložen autentifikacioni ključ, TOTP verifikacioni kod se automatski kopira u Vašu memoriju kad god automatski popunite prijavu.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Onemogućite automatsko TOTP kopiranje
+
+ Copy TOTP automaticallyZa korišćenje ove funkcije potrebno je premium članstvo.
@@ -1128,11 +1136,11 @@
Rok upotrebe
-
- Onemogućite ikone veb lokacije
+
+ Show website icons
-
- Ikone veb lokacije pružaju prepoznatljivu sliku pored svake stavke za prijavu u Vaš trezor.
+
+ Show a recognizable image next to each login.URL adresa servera ikona
@@ -1372,11 +1380,15 @@
Pretraži kolekciju
-
- Pretraži folder
+
+ Pretraži datoteke za slanje
-
- Tip pretrage
+
+ Pretraži tekstove za slanje
+
+
+ Pretraži {0}
+ ex: Search LoginsVrsta
@@ -1537,6 +1549,12 @@
Zadano (Sistem)
+
+ Zadana tamna tema
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Kopiraj bilješke
@@ -1553,17 +1571,21 @@
CrnaThe color black
-
- Crna lista URI-ja
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URI koji su na crnoj listi neće nuditi auto-ispunu. Popis treba odvojiti zarezima. Npr.: „https://webstranica.com, androidapp://com.aplikcacija.android”.
+
+ Auto-fill blocked URIs
-
- Onemogući upit za spremanje
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- Upit za spremanje novih stavki automatski se pojavlju nakon prepoznatog prvog unosa novih stavki.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.Kod ponovnog pokretanja
@@ -1856,6 +1878,9 @@
Nadimak za ovaj Send'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Tekst
@@ -1872,6 +1897,18 @@
Datoteka koju želiš poslati
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Datum brisanja
@@ -2176,4 +2213,104 @@
Unesi verifikacijski kod koji je poslan na tvoj E-Mail
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.ca.resx b/src/App/Resources/AppResources.ca.resx
index 50b44fb16..fd0890a27 100644
--- a/src/App/Resources/AppResources.ca.resx
+++ b/src/App/Resources/AppResources.ca.resx
@@ -299,6 +299,10 @@
La meua caixa fortaThe title for the vault page.
+
+ Autenticador
+ Authenticator TOTP feature
+
NomLabel for an entity name.
@@ -770,6 +774,12 @@
Habilitat
+
+ Desactivat
+
+
+ Activat
+
Estat
@@ -889,11 +899,9 @@
No es pot llegir la clau d'autenticació.
-
- L'escaneig serà automàtic.
-
-
- Dirigiu la càmera al codi QR.
+
+ Apunteu la càmera cap al codi QR.
+L'escaneig es farà automàticament.Escaneja el codi QR
@@ -907,11 +915,11 @@
Copia TOTP
-
+
Si el vostre inici de sessió té una clau d'autenticació associada, el codi de verificació TOTP es copiarà al vostre porta-retalls quan s'òmpliga automàticament l'inici de sessió.
-
- Deshabilita la còpia TOTP automàtica
+
+ Copia TOTP automaticamentCal una subscripció premium per utilitzar aquesta característica.
@@ -1128,11 +1136,11 @@
Caducitat
-
- Deshabilita icones del lloc web
+
+ Mostra les icones del lloc web
-
- Les icones del lloc web proporcionen una imatge que es pot reconèixer al costat de cada element d'inici de sessió a la vostra caixa forta.
+
+ Mostra una imatge reconeixible al costat de cada inici de sessió.URL del servidor d'icones
@@ -1299,7 +1307,7 @@
1. Aneu a l'aplicació "Configuració" de l'iOS
- 2. Toqueu "Contrasenyes i comptes"
+ 2. Toqueu "Contrasenyes"3. Toqueu "Emplenament automàtic de contrasenyes"
@@ -1372,11 +1380,15 @@
Cerca a la col·lecció
-
- Cerca a la carpeta
+
+ Cerca fitxers Sends
-
- Tipus de cerca
+
+ Cerca Sends de text
+
+
+ Cerca {0}
+ ex: Search LoginsTipus
@@ -1513,7 +1525,7 @@
2 minuts
- Neteja el porta-retalls
+ Buida el porta-retallsClipboard is the operating system thing where you copy/paste data to on your device.
@@ -1537,8 +1549,14 @@
Per defecte (Sistema)
+
+ Tema fosc per defecte
+
+
+ Tria el tema fosc quan feu servir el tema predeterminat (sistema) mentre el mode fosc del vostre dispositiu està habilitat
+
- Copia notes
+ Copia notaTanca
@@ -1553,17 +1571,21 @@
NegreThe color black
-
- URl a la llista negra
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Els URI que es mostren a la llista negra no oferiran l’emplenament automàtic. La llista ha de estar separada per comes. Ex: "https://twitter.com, androidapp: //com.twitter.android".
+
+ Emplena automàticament els URI bloquejats
-
- Desactiva Guarda elements nous
+
+ L'emplenament automàtic no s'oferirà per als URI bloquejats. Separeu diversos URI amb una coma. Per exemple: "https://twitter.com, androidapp://com.twitter.android".
-
- "Guarda elements nous" demanarà automàticament que guardeu elements nous al magatzem cada volta que els introduïu per primera vegada.
+
+ Sol·licita afegir els inicis de sessió
+
+
+ Sol·licita afegir un element si no se'n troba cap a la caixa forta.En reiniciar l'aplicació
@@ -1856,6 +1878,9 @@
Un nom apropiat per descriure aquest Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1872,6 +1897,18 @@
El fitxer que voleu enviar.
+
+ El tipus de fitxer està seleccionat.
+
+
+ El tipus de fitxer no està seleccionat, toqueu per a seleccionar-lo.
+
+
+ El tipus de text està seleccionat.
+
+
+ El tipus de text no està seleccionat, toqueu per a seleccionar-lo.
+
Data de supressió
@@ -2176,4 +2213,104 @@
Introduïu el codi de verificació que s’ha enviat al vostre correu
+
+ Envieu registres d'error
+
+
+ Ajudeu Bitwarden a millorar l'estabilitat de l'aplicació enviant els registres d'error
+
+
+ Les opcions estan ampliades, toqueu per contraure.
+
+
+ Les opcions estan reduïdes, toqueu per ampliar.
+
+
+ Majúscules (A a la Z)
+
+
+ Minúscules (A a la Z)
+
+
+ Números (0 al 9)
+
+
+ Caràcters especials (!@#$%^&*)
+
+
+ Toca per a tornar arrere
+
+
+ La contrasenya és visible, toqueu per amagar-la.
+
+
+ La contrasenya no és visible, toqueu per mostrar-la.
+
+
+ Filtra artícless per caixa forta
+
+
+ Totes les caixes fortes
+
+
+ Caixes fortes
+
+
+ Caixa forta: {0}
+
+
+ Totes
+
+
+ TOTP
+
+
+ Codis de verificació
+
+
+ Cal una subscripció premium
+
+
+ No es pot afegir la clau d'autenticació?
+
+
+ Escaneja el codi QR
+
+
+ No podeu escanejar el codi QR?
+
+
+ Clau autenticadora
+
+
+ Introdueix la clau manualment
+
+
+ Afegeix TOTP
+
+
+ Configura TOTP
+
+
+ Una vegada introduïda la clau correctament,
+seleccioneu Afegeix TOTP per emmagatzemar la clau de manera segura
+
+
+
+
+
+ Si configureu les opcions de bloqueig a "Mai", la vostra caixa forta està disponible per a qualsevol persona amb accés al vostre dispositiu. Si utilitzeu aquesta opció, hauríeu d'assegurar-vos de mantenir el vostre dispositiu correctament protegit.
+
+
+ Un o més dels URL introduïts no són vàlids. Reviseu-ho i torneu a provar de guardar-ho.
+
+
+ No hem pogut processar la vostra sol·licitud. Torneu-ho a provar o contacteu amb nosaltres.
+
+
+ Permet capturar la pantalla
+
+
+ Segur que voleu activar la captura de pantalla?
+
diff --git a/src/App/Resources/AppResources.cs.resx b/src/App/Resources/AppResources.cs.resx
index 5cc2b11d3..1e41c2fa3 100644
--- a/src/App/Resources/AppResources.cs.resx
+++ b/src/App/Resources/AppResources.cs.resx
@@ -299,6 +299,10 @@
Můj trezorThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NázevLabel for an entity name.
@@ -770,6 +774,12 @@
Povoleno
+
+ Off
+
+
+ On
+
Stav
@@ -889,11 +899,9 @@
Nelze přečíst ověřovací klíč.
-
- Načtení proběhne automaticky.
-
-
- Namiřte fotoaparát na QR kód.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Načíst QR kód
@@ -907,11 +915,11 @@
Zkopírovat ověřovací kód (TOTP)
-
- Pokud mají vaše přihlašovací údaje přidán autentizační klíč pro TOTP, vygenerovaný ověřovací kód (TOTP) se automaticky zkopíruje do schránky při každém automatickém vyplnění přihlašovacích údajů.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Zakázat automatické kopírování TOTP kódu
+
+ Copy TOTP automaticallyPro použití této funkce je potřebné prémiové členství.
@@ -1128,11 +1136,11 @@
Expirace
-
- Zakázat ikonky webových stránek
+
+ Show website icons
-
- Ikonky webových stránek zobrazí snadno rozeznatelný obrázek vedle každé položky ve vašem trezoru.
+
+ Show a recognizable image next to each login.URL serveru ikonek
@@ -1372,11 +1380,15 @@
Vyledat v kolekci
-
- Vyhledat ve složce
+
+ Search File Sends
-
- Typ hledání
+
+ Search Text Sends
+
+
+ Hledat {0}
+ ex: Search LoginsTyp
@@ -1537,6 +1549,12 @@
Výchozí (Systémový)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Kopírovat poznámky
@@ -1553,17 +1571,21 @@
ČernáThe color black
-
- URI na černé listině
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Pro URI na černé listině nebude nabízeno automatické vyplnění. Záznamy oddělujte čárkou. Např.: „https://twitter.com, androidapp://com.twitter.android“.
+
+ Automatické vyplňování blokovaných URI
-
- Zakázat výzvu o uložení
+
+ Automatické vyplňování nebude nabídnuto pro blokované URI. Oddělte více URI čárkou. Například: "https://twitter.com, androidapp://com.twitter.android".
-
- „Výzva k uložení“ vás automaticky vyzve k uložení nových položek do trezoru, kdykoli je poprvé zadáte.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.Při restartu aplikace
@@ -1856,6 +1878,9 @@
Přátelský název pro popis tohoto Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1872,6 +1897,18 @@
Soubor, který chcete odeslat.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Datum odstranění
@@ -2087,7 +2124,7 @@
Authenticate WebAuthn
- Return to App
+ Zpět do aplikacePlease make sure your default browser supports WebAuthn and try again.
@@ -2123,7 +2160,7 @@
Account Locked
- Account logged out successfully
+ Odhlášení proběhlo úspěšněAccount removed successfully
@@ -2171,9 +2208,109 @@
Ověřovací kód byl odeslán na váš e-mail
- An error occurred while sending a verification code to your email. Please try again
+ Při odesílání ověřovacího kódu na váš e-mail došlo k chybě. Zkuste to prosím znovu
- Enter the verification code that was sent to your email
+ Zadejte ověřovací kód, který byl odeslán na %@
+
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Heslo je viditelné, klepněte pro skrytí
+
+
+ Heslo není viditelné, klepněte pro zobrazení.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
diff --git a/src/App/Resources/AppResources.da.resx b/src/App/Resources/AppResources.da.resx
index 62fbe7124..86e1bf6fa 100644
--- a/src/App/Resources/AppResources.da.resx
+++ b/src/App/Resources/AppResources.da.resx
@@ -299,6 +299,10 @@
Min boksThe title for the vault page.
+
+ Autentifikator
+ Authenticator TOTP feature
+
NavnLabel for an entity name.
@@ -770,6 +774,12 @@
Aktiveret
+
+ Fra
+
+
+ Til
+
Status
@@ -889,11 +899,9 @@
Kan ikke læse autentificeringsnøgle.
-
- Skanning vil ske automatisk.
-
-
- Peg dit kamera mod QR-koden.
+
+ Ret kameraet mod QR-koden.
+Skanning vil ske automatisk.Skan QR-kode
@@ -907,11 +915,11 @@
Kopiér TOTP
-
- Hvis dit login har en autentificeringsnøgle tilknyttet, kopieres TOTP verifikationskoden automatisk til din udklipsholder når du auto-udfylder login.
+
+ Har et login en godkendelsesnøgle, så kopiér TOTP-bekræftelseskoden til udklipsholderen, når login auto-udfyldes.
-
- Deaktivér automatisk TOTP kopiering
+
+ Kopiér TOTP automatiskPremium-medlemskab kræves for at anvende denne funktion.
@@ -1128,11 +1136,11 @@
Udløb
-
- Slå webikoner fra
+
+ Vis webstedsikoner
-
- Webikoner vises som et genkendeligt billede ved siden af hvert loginelement i din boks.
+
+ Vis et genkendeligt billede ud for hvert login.Ikonserver URL
@@ -1299,7 +1307,7 @@
1. Åbn iOS-appen "Indstillinger"
- 2. Tryk på "Adgangskoder & konti"
+ 2. Tryk på "Adgangskoder"3. Tryk på "Autoudfyld adgangskoder"
@@ -1311,7 +1319,7 @@
5. Vælg "Bitwarden"
- Adgangskode Autoudfyld
+ Adgangskode autoudfyldDen letteste måde at tilføje nye logins til din boks er ved at bruge Bitwarden adgangskode Autoudfyld udvidelsen. Få mere at vide om brugen af Bitwarden adgangskode Autoudfyld udvidelsen ved at navigere til skærmbilledet "Indstillinger".
@@ -1372,11 +1380,15 @@
Søg i samling
-
- Søg i mappe
+
+ Søg fil Sends
-
- Søgetype
+
+ Søg tekst Sends
+
+
+ Søg {0}
+ ex: Search LoginsType
@@ -1537,8 +1549,14 @@
Standard (system)
+
+ Standard mørkt tema
+
+
+ Vælg det mørke tema, der skal bruges, når Standard (system) temaet bruges, mens din enheds mørke tilstand er aktiveret.
+
- Kopiér notater
+ Kopiér notatAfslut
@@ -1553,17 +1571,21 @@
SortThe color black
-
- Sortlistede URI'er
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Sortlistede URI'er tilbyder ikke autoudfyldning. Listen skal være kommasepareret. F.eks: "https://twitter.com, androidapp: //com.twitter.android".
+
+ Autoudfyld blokerede URI'er
-
- Deaktivér gem-forespørgsel
+
+ Autoudfyldning tilbydes ikke for blokerede URI'er. Adskil flere URI'er med komma. F.eks.: "https://twitter.com, androidapp://com.twitter.android".
-
- "Gem"-forespørgslen beder dig automatisk gemme nye emner i din boks, når du angiver dem for første gang.
+
+ Spørg om at tilføje login
+
+
+ Spørg om at tilføje et element, hvis et ikke findes i din boks.Ved app-genstart
@@ -1802,13 +1824,13 @@
Autoudfyldtjeneste
- Brug indbygget Autoudfyld
+ Brug integreret autoudfyldBrug indbygget autofyld, hvis dit valgte IME (tastatur) understøtter det. Hvis din konfiguration ikke understøttes (eller denne indstilling er deaktiveret), benyttes standard overlejret Autoudfyld.
- Brug Tilgængelighed
+ Brug tilgængelighedBrug Bitwarden-tilgængelighedstjenesten til at autoudfylde dine logins i apps og på internettet. Når aktiveret, vises en popup, når login-felter vælges.
@@ -1856,6 +1878,9 @@
Et venligt navn til at beskrive denne Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Tekst
+
Tekst
@@ -1872,6 +1897,18 @@
Den fil, du vil sende.
+
+ Filtype er valgt.
+
+
+ Filtype er ikke valgt, tryk for at vælge.
+
+
+ Teksttype er valgt.
+
+
+ Teksttype er ikke valgt, tryk for at vælge.
+
Sletningsdato
@@ -2176,4 +2213,104 @@
Indtast den bekræftelseskode, der blev sendt til din e-mail
+
+ Indsend nedbrudslogger
+
+
+ Hjælp Bitwarden med at forbedre app-stabiliteten ved at indsende nedbrudsrapporter.
+
+
+ Indstillinger er udvidet, tryk for at kollapse.
+
+
+ Indstillinger er kollapset, tryk for at udvide.
+
+
+ Store bogstaver (A til Z)
+
+
+ Små bogstaver (A til Z)
+
+
+ Tal (0 til 9)
+
+
+ Specialtegn (!@#$%^&*)
+
+
+ Tryk for at gå tilbage
+
+
+ Adgangskode er synlig, tryk for at skjule.
+
+
+ Adgangskode er ikke synlig, tryk for at vise.
+
+
+ Filtrér elementer efter boks
+
+
+ Alle bokse
+
+
+ Bokse
+
+
+ Boks: {0}
+
+
+ Alle
+
+
+ TOTP
+
+
+ Bekræftelseskoder
+
+
+ Premium-abonnement kræves
+
+
+ Kan ikke tilføje autentificeringsnøgle?
+
+
+ Skan QR-kode
+
+
+ Kan ikke skanne QR-kode?
+
+
+ Autentificeringsnøgle
+
+
+ Angiv nøgle manuelt
+
+
+ Tilføj TOTP
+
+
+ Opsæt TOTP
+
+
+ Når nøglen er angivet,
+vælg Tilføj TOTP for at gemme nøglen sikkert
+
+
+
+
+
+ Sættes låseindstillingen til “Aldrig”, er din boks tilgængelig for alle med adgang til enheden. Bruges denne mulighed, så vær sikker på, at din enhed er ordentligt beskyttet.
+
+
+ En eller flere af de angivne URL'er er ugyldige. Ret fejlen(e) og prøv at gemme igen.
+
+
+ Vi kunne ikke behandle din anmodning. Prøv venligst igen eller kontakt os.
+
+
+ Tillad skærmoptagelse
+
+
+ Er du sikker på, at du vil aktivere skærmoptagelse?
+
diff --git a/src/App/Resources/AppResources.de.resx b/src/App/Resources/AppResources.de.resx
index 1544aa920..9845affd1 100644
--- a/src/App/Resources/AppResources.de.resx
+++ b/src/App/Resources/AppResources.de.resx
@@ -279,13 +279,13 @@
Konto entfernen
- Möchten Sie das Konto wirklich entfernen?
+ Möchtest du dieses Konto wirklich entfernen?Konto bereits hinzugefügt
- Möchten Sie jetzt darauf umschalten?
+ Möchtest du jetzt darauf umschalten?Masterpasswort
@@ -299,6 +299,10 @@
Mein TresorThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NameLabel for an entity name.
@@ -770,6 +774,12 @@
Aktiviert
+
+ Aus
+
+
+ Ein
+
Status
@@ -889,11 +899,9 @@
Authentifizierungsschlüssel kann nicht gelesen werden.
-
- Der Scan wird automatisch durchgeführt.
-
-
- Richte deine Kamera auf den QR Code.
+
+ Richte deine Kamera auf den QR Code.
+Das Scannen erfolgt automatisch.QR Code scannen
@@ -907,11 +915,11 @@
TOTP kopieren
-
- Ist ein Authentifizierungsschlüssel mit deinen Zugangsdaten verknüpft, wird der TOTP Bestätigungscode automatisch in die Zwischenablage kopiert, wenn du die Zugangsdaten einfügen lässt.
+
+ Falls Zugangsdaten einen Authentifizierungsschlüssel haben, den TOTP-Verifizierungsscode nach dem automatischen Ausfüllen in die Zwischenablage kopieren.
-
- Automatisches Kopieren des TOTP deaktivieren
+
+ TOTP automatisch kopierenFür diese Funktion benötigst du eine Premiummitgliedschaft.
@@ -1128,11 +1136,11 @@
Gültig bis
-
- Icons der Website deaktivieren
+
+ Zeige Webseiten-Icons
-
- Website-Symbole zeigen ein erkennbares Bild neben jedem Login in deinem Tresor.
+
+ Ein wiedererkennbares Bild neben jeden Zugangsdaten anzeigen.Icons Server URL
@@ -1372,11 +1380,15 @@
Sammlung durchsuchen
-
- Ordner durchsuchen
+
+ Versendete Dateien suchen
-
- Suchmodus
+
+ Versendete Texte suchen
+
+
+ Suche {0}
+ ex: Search LoginsTyp
@@ -1445,7 +1457,7 @@
Keine Ordner zum Auflisten vorhanden.
- Prüfschlüssel
+ Fingerabdruck-PhraseA '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.
@@ -1537,6 +1549,12 @@
Standard (System)
+
+ Dunkles Standard Design
+
+
+ Wähle das zu verwendende dunkle Design aus, das bei der Auswahl vom Standard (System) Design verwendet werden soll, während der Dunkelmodus deines Geräts aktiviert ist
+
Notizen kopieren
@@ -1553,20 +1571,24 @@
SchwarzThe color black
-
- Gesperrte URIs
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs auf der Sperrliste, werden nicht automatisch ausgefüllt. Die Listeneinträge sollten durch Komma getrennt sein. Z.B.: "https://twitter.com, androidapp://com.twitter.android".
+
+ Blockierte URIs automatisch ausfüllen
-
- Speicherdialog deaktivieren
+
+ Auto-Ausfüllen wird für blockierte URIs nicht angeboten. Trenne mehrere URIs mit einem Komma. Beispiel: "https://twitter.com, androidapp://com.twitter.android".
-
- Der "Speicherdialog" fordert dich automatisch dazu auf, neue Einträge in deinem Tresor zu speichern, wenn du diese zum ersten Mal eingibst.
+
+ Danach fragen Zugangsdaten hinzuzufügen
+
+
+ Wenn ein Eintrag nicht in deinem Tresor gefunden wurde, danach fragen.
- Bei App Neustart
+ Beim Neustart der AppAutomatisches Ausfüllen vereinfacht es, sicher auf deinen Bitwarden Tresor über andere Webseiten und Apps zuzugreifen. Es sieht aus, als ob du den automatischen Ausfülldienst für Bitwarden nicht aktiviert hast. Aktiviere automatisches Ausfüllen in der "Einstellungen" Ansicht.
@@ -1575,7 +1597,7 @@
Deine Änderungen am Aussehen der App werden beim nächsten Neustart der App angewendet.
- Großschreiben
+ Wortanfänge großschreibenex. Uppercase the first character of a word.
@@ -1665,7 +1687,7 @@
Clone an entity (verb).
- Eine oder mehrere Organisationsrichtlinien beeinflussen dein Generator-Einstellungen.
+ Eine oder mehrere Organisationsrichtlinien beeinflussen deine Generator-EinstellungenÖffnen
@@ -1856,6 +1878,9 @@
Ein eigener Name, um dieses Send zu beschreiben.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1872,6 +1897,18 @@
Die Datei, die du senden möchtest.
+
+ Dateityp ist ausgewählt.
+
+
+ Dateityp ist nicht ausgewählt, tippen zum Auswählen.
+
+
+ Texttyp ist ausgewählt.
+
+
+ Texttyp ist nicht ausgewählt, tippen zum Auswählen.
+
Löschdatum
@@ -2015,7 +2052,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Meine E-Mail-Adresse vor den Empfängern ausblenden.
+ Meine E-Mail-Adresse vor den Empfängern verstecken.Eine oder mehrere Organisationsrichtlinien beeinflussen deine Send Einstellungen.
@@ -2026,7 +2063,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Du musst deine E-Mail verifizieren, um diese Funktion nutzen zu können.
+ Du musst deine E-Mail verifizieren, um Dateien mit Send zu verwenden. Du kannst deine E-Mail im Web-Tresor verifizieren.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2126,7 +2163,7 @@
Konto erfolgreich abgemeldet
- Konto erfolgreich gelöscht
+ Konto erfolgreich entferntKonto löschen
@@ -2176,4 +2213,103 @@
Gib den Bestätigungscode ein, der an deine E-Mail-Adresse gesendet wurde
+
+ Absturzprotokolle senden
+
+
+ Hilf Bitwarden die Stabilität der App zu verbessern, indem du Absturzberichte sendest.
+
+
+ Optionen sind ausgeklappt, tippen zum einklappen.
+
+
+ Optionen sind eingeklappt, tippe zum ausklappen.
+
+
+ Großbuchstaben (A bis Z)
+
+
+ Kleinbuchstaben (A bis Z)
+
+
+ Zahlen (0 bis 9)
+
+
+ Sonderzeichen (!@#$%^&*)
+
+
+ Tippen, um zurück zu gehen
+
+
+ Passwort ist sichtbar, tippen um es auszublenden.
+
+
+ Passwort ist nicht sichtbar, tippen um es einzublenden.
+
+
+ Objekte nach Tresor filtern
+
+
+ Alle Tresore
+
+
+ Tresore
+
+
+ Tresor: {0}
+
+
+ Alle
+
+
+ TOTP
+
+
+ Verifizierungscodes
+
+
+ Premium-Abonnement erforderlich
+
+
+ Authentifizierungsschlüssel lässt sich nicht hinzufügen?
+
+
+ QR Code scannen
+
+
+ QR Code kann nicht gescannt werden?
+
+
+ Authentifizierungsschlüssel
+
+
+ Schlüssel manuell eingeben
+
+
+ TOTP hinzufügen
+
+
+ TOTP einrichten
+
+
+ Sobald der Schlüssel erfolgreich eingegeben wurde, wähle TOTP hinzufügen, um den Schlüssel sicher abzuspeichern
+
+
+
+
+
+ Wenn du deine Sperroptionen auf „Nie“ einstellst, bleibt dein Tresor für jeden zugänglich, der Zugriff auf dein Gerät hat. Wenn du diese Option verwendest, solltest du sicherstellen, dass du dein Gerät angemessen schützt.
+
+
+ Eine oder mehrere der eingegebenen URLs sind ungültig. Bitte überprüfe sie und versuche erneut zu speichern.
+
+
+ Wir konnten deine Anfrage nicht bearbeiten. Bitte versuche es erneut oder kontaktiere uns.
+
+
+ Bildschirmaufnahme erlauben
+
+
+ Bist du sicher, dass du die Bildschirmaufnahme aktivieren möchtest?
+
diff --git a/src/App/Resources/AppResources.el.resx b/src/App/Resources/AppResources.el.resx
index 554bcb0a6..ceaad4bdd 100644
--- a/src/App/Resources/AppResources.el.resx
+++ b/src/App/Resources/AppResources.el.resx
@@ -300,6 +300,10 @@
Το Vault μουThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
ΌνομαLabel for an entity name.
@@ -771,6 +775,12 @@
Ενεργοποιημένο
+
+ Off
+
+
+ On
+
Κατάσταση
@@ -890,11 +900,9 @@
Αδυναμία ανάγνωσης κλειδιού επαλήθευσης.
-
- Η σάρωση θα γίνει αυτόματα.
-
-
- Στρέψτε την κάμερα στον κώδικα QR.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Σάρωση κώδικα QR
@@ -908,11 +916,11 @@
Αντιγραφή TOTP
-
- Εάν η σύνδεση σας έχει συνημμένο κλειδί επαλήθευσης, ο κωδικός επαλήθευσης TOTP αντιγράφεται αυτόματα στο πρόχειρο κάθε φορά που συμπληρώνετε τα στοιχεία σύνδεσης.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Απενεργοποίηση Aυτόματης Aντιγραφής TOTP
+
+ Copy TOTP automaticallyΓια να χρησιμοποιήσετε αυτό το χαρακτηριστικό, απαιτείται η έκδοση premium.
@@ -1129,11 +1137,11 @@
Λήξη
-
- Απενεργοποίηση Εικονιδίων Ιστοσελίδας
+
+ Show website icons
-
- Τα εικονίδια ιστοσελίδων παρέχουν μια αναγνωρίσιμη εικόνα δίπλα σε κάθε στοιχείο σύνδεσης στο vault σας.
+
+ Show a recognizable image next to each login.Εικονίδια Διακομιστή URL
@@ -1373,11 +1381,15 @@
Αναζήτηση στη συλλογή
-
- Αναζήτηση σε φάκελο
+
+ Search File Sends
-
- Τύπος αναζήτησης
+
+ Search Text Sends
+
+
+ Αναζήτηση {0}
+ ex: Search LoginsΤύπος
@@ -1538,6 +1550,12 @@
Προεπιλογή (σύστημα)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Αντιγραφή Σημειώσεων
@@ -1554,17 +1572,21 @@
ΜαύροThe color black
-
- Μαύρη λίστα URIs
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Τα URI που βρίσκονται στη μαύρη λίστα δεν προσφέρουν αυτόματη συμπλήρωση. Ο κατάλογος πρέπει να διαχωριστεί με κόμμα. Παράδειγμα: "https://twitter.com, androidapp: //com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Απενεργοποίηση Προτροπής Αποθήκευσης
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- Η "προτροπή αποθήκευσης" σας ζητάει αυτόματα να αποθηκεύετε νέα στοιχεία στο vault σας, κάθε φορά που τα εισάγετε για πρώτη φορά.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.Κατά την Επανεκκίνηση Εφαρμογής
@@ -1857,6 +1879,9 @@
Ένα φιλικό όνομα για την περιγραφή αυτού του Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Κείμενο
+
Κείμενο
@@ -1873,6 +1898,18 @@
Το αρχείο που θέλετε να στείλετε.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Ημερομηνία διαγραφής
@@ -2177,4 +2214,104 @@
Εισάγετε τον κωδικό επαλήθευσης που έχει σταλεί στο email σας
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ Όλα τα Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ Όλα
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.en-GB.resx b/src/App/Resources/AppResources.en-GB.resx
index 88b07e85e..8b5e78979 100644
--- a/src/App/Resources/AppResources.en-GB.resx
+++ b/src/App/Resources/AppResources.en-GB.resx
@@ -275,6 +275,18 @@
Are you sure you want to log out?
+
+ Remove Account
+
+
+ Are you sure you want to remove this account?
+
+
+ Account Already Added
+
+
+ Would you like to switch to it now?
+
Master passwordLabel for a master password.
@@ -287,6 +299,10 @@
My vaultThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NameLabel for an entity name.
@@ -647,7 +663,7 @@
Re-type master password
- Search vault
+ Search VaultSecurity
@@ -758,6 +774,12 @@
Enabled
+
+ Off
+
+
+ On
+
Status
@@ -786,7 +808,7 @@
You are searching for an auto-fill item for "{0}".
- Learn About Organizations
+ Learn about organisationsCannot open the app "{0}".
@@ -877,11 +899,9 @@
Cannot read authenticator key.
-
- Scanning will happen automatically.
-
-
- Point your camera at the QR code.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Scan QR code
@@ -895,11 +915,11 @@
Copy TOTP
-
- If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clipboard when you auto-fill the login.
-
- Disable automatic TOTP Copy
+
+ Copy TOTP automaticallyA premium membership is required to use this feature.
@@ -1059,6 +1079,9 @@
Last name
+
+ Full Name
+
Licence number
@@ -1113,11 +1136,11 @@
Expiration
-
- Disable website icons
+
+ Show website icons
-
- Website icons provide a recognisable image next to each login item in your vault.
+
+ Show a recognisable image next to each login.Icons server URL
@@ -1147,10 +1170,10 @@
Auto-fill accessibility service
- The Bitwarden auto-fill service uses the Android autofill framework to assist in filling logins, credit cards, and identity information into other apps on your device.
+ The Bitwarden auto-fill service uses the Android Autofill Framework to assist in filling login information into other apps on your device.
- Use the Bitwarden auto-fill service to fill logins, credit cards, and identity information into other apps.
+ Use the Bitwarden auto-fill service to fill login information into other apps.Open auto-fill settings
@@ -1183,6 +1206,9 @@
Hidden
+
+ Linked
+
Text
@@ -1281,7 +1307,7 @@
1. Go to the iOS "Settings" app
- 2. Tap "Passwords & Accounts"
+ 2. Tap "Passwords"3. Tap "AutoFill Passwords"
@@ -1293,7 +1319,7 @@
5. Select "Bitwarden"
- Password AutoFill
+ Password auto-fillThe easiest way to add new logins to your vault is by using the Bitwarden Password AutoFill extension. Learn more about using the Bitwarden Password AutoFill extension by navigating to the "Settings" screen.
@@ -1354,11 +1380,15 @@
Search collection
-
- Search folder
+
+ Search File Sends
-
- Search type
+
+ Search Text Sends
+
+
+ Search {0}
+ ex: Search LoginsType
@@ -1398,13 +1428,13 @@
Share item
- Move to Organization
+ Move to OrganisationNo organisations to list.
- Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.
+ Choose an organisation that you wish to move this item to. Moving to an organisation transfers ownership of the item to that organisation. You will no longer be the direct owner of this item once it has been moved.Number of words
@@ -1435,7 +1465,7 @@
A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
- Bitwarden allows you to share your vault items with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?
+ Bitwarden allows you to share your vault items with others by using an organisation account. Would you like to visit the bitwarden.com website to learn more?Export vault
@@ -1449,6 +1479,9 @@
Unlock
+
+ Unlock Vault
+
30 minutes
@@ -1465,6 +1498,9 @@
Your vault is locked. Verify your PIN code to continue.
+
+ Your vault is locked. Verify your identity to continue.
+
DarkA dark color
@@ -1497,7 +1533,7 @@
Clipboard is the operating system thing where you copy/paste data to on your device.
- Default URI Match Detection
+ Default URI match detectionDefault URI match detection for auto-fill.
@@ -1513,8 +1549,14 @@
Default (System)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
- Copy notes
+ Copy NoteExit
@@ -1529,17 +1571,21 @@
BlackThe color black
-
- Blacklisted URIs
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs that are blacklisted will not offer auto-fill. The list of apps should be comma separated. E.g. "https://twitter.com, androidapp://com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Disable save prompt
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- The "save prompt" automatically prompts you to save new items to your vault whenever you enter them for the first time.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.On app restart
@@ -1605,6 +1651,15 @@
Enter your master password to export your vault data.
+
+ Send a verification code to your email
+
+
+ Code Sent!
+
+
+ Confirm your identity to continue.
+
This export contains your vault data in an unencrypted format. You should not store or send the exported file over insecure channels (such as email). Delete it immediately after you are done using it.
@@ -1767,20 +1822,17 @@
- Auto-fill Services
-
+ Auto-fill services
- Use Inline Autofill
-
+ Use inline autofillUse inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.
- Use Accessibility
-
+ Use accessibilityUse the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. When enabled, we'll display a popup when login fields are selected.
@@ -1799,8 +1851,7 @@
- Use Draw-Over
-
+ Use draw-overWhen enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.
@@ -1836,6 +1887,9 @@
A friendly name to describe this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1852,6 +1906,18 @@
The file you want to send.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Deletion Date
@@ -1915,7 +1981,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it.
+ Disable this Send so that no one can access it'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1983,7 +2049,7 @@
Custom
- Share this Send upon save.
+ Share this Send upon save'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -1995,7 +2061,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Hide my email address from recipients.
+ Hide my email address from recipientsOne or more organisation policies are affecting your Send options.
@@ -2031,7 +2097,7 @@
Update Master Password
- Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your Master Password was recently changed by an administrator in your organisation. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.Updating Password
@@ -2039,6 +2105,21 @@
Currently unable to update password
+
+ Remove Master Password
+
+
+ {0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
+
+
+ If you do not want to remove your Master Password, you may leave this organisation.
+
+
+ Leave Organisation
+
+
+ Leave {0}?
+
FIDO2 WebAuthn
@@ -2058,15 +2139,187 @@
Please make sure your default browser supports WebAuthn and try again.
- This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
+ This organisation has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organisation administrators to change your master password.
- Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organisation policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
- Your vault timeout exceeds the restrictions set by your organization.
+ Your vault timeout exceeds the restrictions set by your organisation.
- One or more organization policies prevents your from exporting your personal vault.
+ One or more organisation policies prevents your from exporting your personal vault.
+
+
+ Add Account
+
+
+ Unlocked
+
+
+ Locked
+
+
+ Logged Out
+
+
+ Switched to next available account
+
+
+ Account Locked
+
+
+ Account logged out successfully
+
+
+ Account removed successfully
+
+
+ Delete account
+
+
+ Deleting your account is permanent
+
+
+ Your account and all vault data will be erased and unrecoverable. Are you sure you want to continue?
+
+
+ Deleting your account
+
+
+ Your account has been permanently deleted
+
+
+ Invalid Verification Code.
+
+
+ Request one-time password
+
+
+ Send Code
+
+
+ Sending
+
+
+ Copy Send link on save
+
+
+ Sending code
+
+
+ Verifying
+
+
+ Resend Code
+
+
+ A verification code was sent to your email
+
+
+ An error occurred while sending a verification code to your email. Please try again
+
+
+ Enter the verification code that was sent to your email
+
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
diff --git a/src/App/Resources/AppResources.en-IN.resx b/src/App/Resources/AppResources.en-IN.resx
index d388d7f4a..fda856747 100644
--- a/src/App/Resources/AppResources.en-IN.resx
+++ b/src/App/Resources/AppResources.en-IN.resx
@@ -299,6 +299,10 @@
My vaultThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NameLabel for an entity name.
@@ -770,6 +774,12 @@
Enabled
+
+ Off
+
+
+ On
+
Status
@@ -798,7 +808,7 @@
You are searching for an auto-fill item for "{0}".
- Learn About Organisations
+ Learn about organizationsCannot open the app "{0}".
@@ -889,11 +899,9 @@
Cannot read authenticator key.
-
- Scanning will happen automatically.
-
-
- Point your camera at the QR code.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Scan QR code
@@ -907,11 +915,11 @@
Copy TOTP
-
- If your login has an authenticator key attached to it, the TOTP verification code is automatically copied to your clipboard whenever you auto-fill the login.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Disable automatic TOTP Copy
+
+ Copy TOTP automaticallyA premium membership is required to use this feature.
@@ -1111,10 +1119,10 @@
September
- National Insurance number
+ Aadhar Number
- County
+ State / Union territoryTitle
@@ -1128,11 +1136,11 @@
Expiration
-
- Disable website icons
+
+ Show website icons
-
- Website icons provide a recognisable image next to each login item in your vault.
+
+ Show a recognizable image next to each login.Icons server URL
@@ -1372,11 +1380,15 @@
Search collection
-
- Search folder
+
+ Search File Sends
-
- Search type
+
+ Search Text Sends
+
+
+ Search {0}
+ ex: Search LoginsType
@@ -1416,13 +1428,13 @@
Share item
- Move to Organisation
+ Move to OrganizationNo organisations to list.
- Choose an organisation that you wish to move this item to. Moving to an organisation transfers ownership of the item to that organisation. You will no longer be the direct owner of this item once it has been moved.
+ Choose an organization that you wish to move this item to. Moving to an organization transfers ownership of the item to that organization. You will no longer be the direct owner of this item once it has been moved.Number of words
@@ -1453,7 +1465,7 @@
A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.
- Bitwarden allows you to share your vault items with others by using an organisation account. Would you like to visit the bitwarden.com website to learn more?
+ Bitwarden allows you to share your vault items with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?Export vault
@@ -1537,6 +1549,12 @@
Default (System)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Copy notes
@@ -1553,17 +1571,21 @@
BlackThe color black
-
- Blacklisted URIs
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs that are blacklisted will not offer auto-fill. The list of apps should be comma separated. E.g. "https://twitter.com, androidapp://com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Disable save prompt
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- The "save prompt" automatically prompts you to save new items to your vault whenever you enter them for the first time.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.On app restart
@@ -1724,7 +1746,7 @@
Confirmation alert message when soft-deleting a cipher.
- Biometric unlock disabled pending verification of master password.
+ Biometric change detected, login using master password to enable again.Biometric unlock for autofill disabled pending verification of master password.
@@ -1784,16 +1806,17 @@
Loading
- By activating this switch you agree to the following:
+ By activating this switch you agree to the following:
+Terms of Service and Privacy Policy have not been acknowledged.
- Terms of service
+ Terms of Service
- Privacy policy
+ Privacy PolicyBitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings
@@ -1848,10 +1871,10 @@
- Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organisation and choose from available Collections.
+ Due to an Enterprise Policy, you are restricted from saving items to your personal vault. Change the Ownership option to an organization and choose from available Collections.
- An organisation policy is affecting your ownership options.
+ An organization policy is affecting your ownership options.Send
@@ -1869,6 +1892,9 @@
A friendly name to describe this Send.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Text
+
Text
@@ -1885,6 +1911,18 @@
The file you want to send.
+
+ File type is selected.
+
+
+ File type is not selected, tap to select.
+
+
+ Text type is selected.
+
+
+ Text type is not selected, tap to select.
+
Deletion Date
@@ -1948,11 +1986,11 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Disable this Send so that no one can access it
+ Disable this Send so that no one can access it.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- There are no Sends in your account.
+ There are no sends in your account.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2016,7 +2054,7 @@
Custom
- Share this Send upon save
+ Share this Send upon save.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
@@ -2028,7 +2066,7 @@
'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
- Hide my email address from recipients
+ Hide my email address from recipients.One or more organisation policies are affecting your Send options.
@@ -2064,7 +2102,7 @@
Update Master Password
- Your Master Password was recently changed by an administrator in your organisation. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.
+ Your Master Password was recently changed by an administrator in your organization. In order to access the vault, you must update your Master Password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour.Updating Password
@@ -2079,10 +2117,10 @@
{0} is using SSO with customer-managed encryption. Continuing will remove your Master Password from your account and require SSO to login.
- If you do not want to remove your Master Password, you may leave this organisation.
+ If you do not want to remove your Master Password, you may leave this organization.
- Leave Organisation
+ Leave OrganizationLeave {0}?
@@ -2106,16 +2144,16 @@
Please make sure your default browser supports WebAuthn and try again.
- This organisation has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organisation administrators to change your master password.
+ This organization has an enterprise policy that will automatically enroll you in password reset. Enrollment will allow organization administrators to change your master password.
- Your organisation policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
+ Your organization policies are affecting your vault timeout. Maximum allowed Vault Timeout is {0} hour(s) and {1} minute(s)
- Your vault timeout exceeds the restrictions set by your organisation.
+ Your vault timeout exceeds the restrictions set by your organization.
- One or more organisation policies prevents your from exporting your personal vault.
+ One or more organization policies prevents your from exporting your personal vault.Add Account
@@ -2142,13 +2180,13 @@
Account removed successfully
- Delete Account
+ Delete accountDeleting your account is permanent
- Your account and all associated data will be erased and unrecoverable. Are you sure you want to continue?
+ Your account and all vault data will be erased and unrecoverable. Are you sure you want to continue?Deleting your account
@@ -2189,4 +2227,104 @@
Enter the verification code that was sent to your email
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Options are expanded, tap to collapse.
+
+
+ Options are collapsed, tap to expand.
+
+
+ Uppercase (A to Z)
+
+
+ Lowercase (A to Z)
+
+
+ Numbers (0 to 9)
+
+
+ Special Characters (!@#$%^&*)
+
+
+ Tap to go back
+
+
+ Password is visible, tap to hide.
+
+
+ Password is not visible, tap to show.
+
+
+ Filter items by vault
+
+
+ All Vaults
+
+
+ Vaults
+
+
+ Vault: {0}
+
+
+ All
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.es.resx b/src/App/Resources/AppResources.es.resx
index 3bd88ff26..88336f3e2 100644
--- a/src/App/Resources/AppResources.es.resx
+++ b/src/App/Resources/AppResources.es.resx
@@ -299,6 +299,10 @@
Mi caja fuerteThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
NombreLabel for an entity name.
@@ -418,7 +422,7 @@
Utiliza el servicio de accesibilidad de Bitwarden para autorellenar entradas entre aplicaciones y sitios web.
- Servicio de autocompletado
+ Servicio de autorrellenadoEvitar caracteres ambiguos
@@ -770,6 +774,12 @@
Activado
+
+ Off
+
+
+ On
+
Estado
@@ -889,11 +899,9 @@
No se pudo leer la clave de autenticación.
-
- El escaneo será automático.
-
-
- Apunta tu cámara el código QR.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.Escanear código QR
@@ -907,11 +915,11 @@
Copiar código TOTP
-
- Si tu entrada tiene una clave de autenticación adjunta, el código de verificación TOTP es copiado automáticamente al portapapeles cuando autorellenas una entrada.
+
+ If a login has an authenticator key, copy the TOTP verification code to your clip-board when you auto-fill the login.
-
- Deshabilitar copiado automático de códigos TOTP
+
+ Copy TOTP automaticallySe quiere membrasía Premium para poder utilizar esta característica.
@@ -1128,11 +1136,11 @@
Expiración
-
- Deshabilitar iconos del sitio web
+
+ Show website icons
-
- Los iconos del sitio web añaden una imagen reconocible al lado de cada entrada de tu caja fuerte.
+
+ Show a recognizable image next to each login.URL del servidor de iconos
@@ -1372,11 +1380,15 @@
Buscar colección
-
- Buscar carpeta
+
+ Buscar Sends de archivos
-
- Tipo de búsqueda
+
+ Buscar Sends de texto
+
+
+ Buscar {0}
+ ex: Search LoginsTipo
@@ -1537,6 +1549,12 @@
Por defecto (Sistema)
+
+ Default dark theme
+
+
+ Choose the dark theme to use when using Default (System) theme while your device's dark mode is enabled.
+
Copiar notas
@@ -1553,17 +1571,21 @@
NegroThe color black
-
- URIs en lista negra
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs que están en la lista negra no ofrecerán auto-relleno. La lista de aplicaciones debe ser separada por comas. Ej: "https://twitter.com, androidapp://com.twitter.android".
+
+ Auto-fill blocked URIs
-
- Desactivar el aviso de guardado
+
+ Auto-fill will not be offered for blocked URIs. Separate multiple URIs with a comma. For example: "https://twitter.com, androidapp://com.twitter.android".
-
- El "aviso de guardado" pregunta automáticamente si quiere guardar nuevas entradas en su caja fuerte cuando se identifica en un sitio web por primera vez.
+
+ Ask to add login
+
+
+ Ask to add an item if one isn't found in your vault.Al reiniciar la aplicación
@@ -1856,6 +1878,9 @@
Un nombre amigable para describir este Envío.'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Texto
+
Texto
@@ -1872,6 +1897,18 @@
El archivo que quieres enviar.
+
+ El tipo de archivo está seleccionado.
+
+
+ El tipo de archivo no está seleccionado, toque para seleccionar.
+
+
+ El tipo de texto está seleccionado.
+
+
+ El tipo de texto no está seleccionado, toque para seleccionar.
+
Fecha de eliminación
@@ -2120,13 +2157,13 @@
Cambiado a la siguiente cuenta disponible
- Account Locked
+ Cuenta bloqueada
- Account logged out successfully
+ Sesión cerrada con éxito
- Account removed successfully
+ Cuenta eliminada con éxitoEliminar cuenta
@@ -2176,4 +2213,105 @@
Introduce el código de verificación enviado a tu correo electrónico
+
+ Submit crash logs
+
+
+ Help Bitwarden improve app stability by submitting crash reports.
+
+
+ Las opciones están expandidas, toque para colapsar.
+
+
+ Las opciones están colapsadas, toque para expandir.
+
+
+ Mayúsculas (A a la Z)
+
+
+ Minúsculas (A a la Z)
+
+
+
+ Números (0 al 9)
+
+
+ Carácteres especiales (!@#$%^&*)
+
+
+ Toque para regresar
+
+
+ La contraseña es visible, toque para ocultar.
+
+
+ La contraseña no está visible, toque para mostrar.
+
+
+ Filtrar elementos por bóveda
+
+
+ Todas las bóvedas
+
+
+ Bóvedas
+
+
+ Bóveda: {0}
+
+
+ Todo
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Setting your lock options to “Never” keeps your vault available to anyone with access to your device. If you use this option, you should ensure that you keep your device properly protected.
+
+
+ One or more of the URLs entered are invalid. Please revise it and try to save again.
+
+
+ We were unable to process your request. Please try again or contact us.
+
+
+ Allow screen capture
+
+
+ Are you sure you want to enable Screen Capture?
+
diff --git a/src/App/Resources/AppResources.et.resx b/src/App/Resources/AppResources.et.resx
index 3d47f34d3..8a78e1de4 100644
--- a/src/App/Resources/AppResources.et.resx
+++ b/src/App/Resources/AppResources.et.resx
@@ -299,6 +299,10 @@
Minu hoidlaThe title for the vault page.
+
+ Autentikaator
+ Authenticator TOTP feature
+
NimiLabel for an entity name.
@@ -770,6 +774,12 @@
Lubatud
+
+ Väljas
+
+
+ Sees
+
Olek:
@@ -889,11 +899,9 @@
Autentimise võtme lugemine nurjus.
-
- Skaneering toimub automaatselt.
-
-
- Suuna telefoni kaamera QR koodile.
+
+ Suuna kaamera QR koodile.
+Skaneerimine toimub automaatselt.Skanneeri QR kood
@@ -907,11 +915,11 @@
Kopeeri TOTP
-
- Kui sinu sisselogimise andmetele on juurde lisatud autentimise võti, kopeeritakse TOTP kood automaattäite kasutamisel lõikepuhvrisse.
+
+ Kui sisselogimise andmetele on juurde lisatud autentimise võti, kopeeri TOTP kood automaattäite kasutamisel lõikepuhvrisse.
-
- Keela automaatne TOTP kopeerimine
+
+ TOTP automaatne kopeerimineSelle funktsiooni kasutamiseks on vajalik tasulist kontot omada.
@@ -1128,11 +1136,11 @@
Aegumine
-
- Keela veebilehel ikoonid
+
+ Kuva veebilehtede ikoone
-
- Ikoonid aitavad hoidlas olevaid veebilehti paremini ära tunda.
+
+ Kuva iga kirje kõrval lehekülje ikooni.Ikoonide serveri URL
@@ -1372,11 +1380,15 @@
Otsi kogumikku
-
- Otsi kausta
+
+ Otsi failiga Sende
-
- Otsingu tüüp
+
+ Otsi tekstiga Sende
+
+
+ Otsi {0}
+ ex: Search LoginsTüüp
@@ -1537,6 +1549,12 @@
Vaikeväärtus (süsteem)
+
+ Vaikimisi tume teema
+
+
+ Kui kasutad vaikimisi (süsteemset) teemat ja seadme tume režiim on sisse lülitatud, siis valitakse vaikimisi tume teema
+
Kopeeri märkus
@@ -1553,17 +1571,21 @@
MustThe color black
-
- Musta nimekirja URI-d
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- Musta nimekirja pandud URI-de puhul ei pakuta automaattäitmist. Eralda nimed komaga. Nt: "https://twitter.com, androidapp://com.twitter.android".
+
+ Täida blokeeritud URId automaatselt
-
- Keela "Lisa konto andmed"
+
+ Blokeeritud URIdele ei pakuta automaattäidet. Eralda erinevad URId komaga. Nt nagu: "https://twitter.com, androidapp://com.twitter.android".
-
- "Lisa konto andmed" märguanne ilmub pärast esimest sisselogimist ning võimaldab kontoandmeid salvestada.
+
+ Küsi "Lisa konto andmed"
+
+
+ Pakub kontoandmete salvestamist, kui see on hoidlast puudu.Äpi taaskäivitamisel
@@ -1856,6 +1878,9 @@
Sisesta Sendi nimi (kohustuslik).'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+ Tekst
+
Tekst
@@ -1872,6 +1897,18 @@
Fail, mida soovid saata.
+
+ Failitüüp on valitud.
+
+
+ Failitüüp pole valitud. Vajuta, et valida.
+
+
+ Tekstitüüp on valitud.
+
+
+ Tekstitüüp pole valitud. Vajuta, et valida.
+
Kustutamise kuupäev
@@ -2176,4 +2213,104 @@
Kinnituskood on edukalt e-posti aadressile saadetud.
+
+ Saada krahhiaruandeid
+
+
+ Aita Bitwardenil rakendust paremaks muuta, teavitades programmi tõrgetest.
+
+
+ Valikud on avatud. Vajuta, et need peita.
+
+
+ Valikud on peidetud. Vajuta, et need kuvada.
+
+
+ Suurtähed (A-Z)
+
+
+ Väiketähed (A-Z)
+
+
+ Numbrid (0-9)
+
+
+ Erimärgid (!@#$%^&*)
+
+
+ Vajuta tagasi minemiseks
+
+
+ Salasõna on nähtav. Vajuta, et see peita.
+
+
+ Salasõna ei ole nähtav. Vajuta, et seda kuvada.
+
+
+ Sorteeri kirjeid hoidla alusel
+
+
+ Kõik hoidlad
+
+
+ Hoidlad
+
+
+ Hoidla: {0}
+
+
+ Kõik
+
+
+ TOTP
+
+
+ Kinnituskoodid
+
+
+ Vajalik on Premium versioon
+
+
+ Ei suuda autentimise võtit lisada?
+
+
+ Skanneeri QR kood
+
+
+ Ei suuda QR koodi skaneerida?
+
+
+ Autentimise võti
+
+
+ Sisesta kood käsitsi
+
+
+ Lisa TOTP
+
+
+ Seadista TOTP
+
+
+ Pärast võtme edukat sisestamist vajuta
+"Lisa TOTP", et see võti turvaliselt talletada
+
+
+
+
+
+ Kõik, kes pääsevad sinu telefoni, saavad valikuga "Mitte kunagi" ka sinu hoidlat vaadata. Veendu, et seda tõesti teha soovid.
+
+
+ Üks või enam sisestatud URLi on valed. Palun kontrolli neid ja proovi seejärel uuesti.
+
+
+ Päringu töötlemine ebaõnnestus. Palun proovi uuesti või võta meiega ühendust.
+
+
+ Luba ekraanikuva salvestamine
+
+
+ Oled kindel, et soovid lubada ekraanikuva salvestamist?
+
diff --git a/src/App/Resources/AppResources.eu.resx b/src/App/Resources/AppResources.eu.resx
new file mode 100644
index 000000000..2699c8157
--- /dev/null
+++ b/src/App/Resources/AppResources.eu.resx
@@ -0,0 +1,2317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Honi buruz
+
+
+ Gehitu
+ Add/create a new entity (verb).
+
+
+ Gehitu karpeta
+
+
+ Gehitu elementua
+ The title for the add item page.
+
+
+ Akats bat gertatu da.
+ Alert title when something goes wrong.
+
+
+ Itzuli
+ Navigate back to the previous screen.
+
+
+ Bitwarden
+ App name. Shouldn't ever change.
+
+
+ Ezeztatu
+ Cancel an operation.
+
+
+ Kopiatu
+ Copy some value to your clipboard.
+
+
+ Kopiatu pasahitza
+ The button text that allows a user to copy the login's password to their clipboard.
+
+
+ Kopiatu erabiltzaile-izena
+ The button text that allows a user to copy the login's username to their clipboard.
+
+
+ Kredituak
+ Title for page that we use to give credit to resources that we use.
+
+
+ Ezabatu
+ Delete an entity (verb).
+
+
+ Ezabatzen...
+ Message shown when interacting with the server
+
+
+ Ziur al zaude benetan ezabatu nahi duzula? Eragiketa hau ezin da desegin!
+ Confirmation alert message when deleteing something.
+
+
+ Editatu
+
+
+ Editatu Karpeta
+
+
+ Emaila
+ Short label for an email address.
+
+
+ Email helbidea
+ Full label for a email address.
+
+
+ Bidaliguzu email bat
+
+
+ Bidaliguzu email bat zuzenean laguntza lortzeko edo iruzkinak uzteko.
+
+
+ Sartu PIN kodea.
+
+
+ Gogokoak
+ Title for your favorite items in the vault.
+
+
+ Akats-txostena bidali
+
+
+ Ireki arazo bat gure GitHub biltegian.
+
+
+ Egiaztatzeko, erabili hatz-marka.
+
+
+ Karpeta
+ Label for a folder.
+
+
+ Karpeta berria sortua.
+
+
+ Karpeta ezabatu da.
+
+
+ Karpetarik ez
+ Items that have no folder specified go in this special "catch-all" folder.
+
+
+ Karpetak
+
+
+ Karpeta eguneratua.
+
+
+ Joan webgunera
+ The button text that allows user to launch the website to their web browser.
+
+
+ Laguntza eta iritziak
+
+
+ Ezkutatu
+ Hide a secret value that is currently shown (password).
+
+
+ Mesedez, konektatu internetera jarraitu aurretik.
+ Description message for the alert when internet connection is required to continue.
+
+
+ Internet konexioa beharrezkoa da
+ Title for the alert when internet connection is required to continue.
+
+
+ Pasahitz nagusi baliogabea. Saiatu berriro.
+
+
+ PIN baliogabea. Saiatu berriro.
+
+
+ Abiarazi
+ The button text that allows user to launch the website to their web browser.
+
+
+ Hasi saioa
+ The login button text (verb).
+
+
+ Saio-hasiera
+ Title for login page. (noun)
+
+
+ Itxi saioa
+ The log out button text (verb).
+
+
+ Ziur zaude saioa itxi nahi duzula?
+
+
+ Kendu kontua
+
+
+ Ziur al zaude kontu hau kendu nahi duzula?
+
+
+ Kontua gehitu da
+
+
+ Orain aldatu nahi duzu?
+
+
+ Pasahitz nagusia
+ Label for a master password.
+
+
+ Gehiago
+ Text to define that there are more options things to see.
+
+
+ Nire Kutxa Gotorra
+ The title for the vault page.
+
+
+ Authenticator
+ Authenticator TOTP feature
+
+
+ Izena
+ Label for an entity name.
+
+
+ Ez
+
+
+ Oharrak
+ Label for notes.
+
+
+ Ados
+ Acknowledgement.
+
+
+ Pasahitza
+ Label for a password.
+
+
+ Gorde
+ Button text for a save operation (verb).
+
+
+ Mugitu
+
+
+ Gordetzen...
+ Message shown when interacting with the server
+
+
+ Ezarpenak
+ The title for the settings page.
+
+
+ Erakutsi
+ Reveal a hidden value (password).
+
+
+ Elementua ezabatu da.
+ Confirmation message after successfully deleting a login.
+
+
+ Bidali
+
+
+ Sinkronizatu
+ The title for the sync page.
+
+
+ Eskerrik asko
+
+
+ Tresnak
+ The title for the tools page.
+
+
+ URI
+ Label for a uri/url.
+
+
+ Erabili hatz-marka desblokeatzeko
+
+
+ Erabiltzaile izena
+ Label for a username.
+
+
+ {0} eremua ezinbestekoa da.
+ Validation message for when a form field is left blank and is required to be entered.
+
+
+ {0} kopiatu da.
+ Confirmation message after suceessfully copying a value to the clipboard.
+
+
+ Egiaztatu hatz-marka
+
+
+ Egiaztatu pasahitz nagusia
+
+
+ Egiaztatu PIN-a
+
+
+ Bertsioa
+
+
+ Erakutsi
+
+
+ Bisitatu gure webgunea
+
+
+ Zatoz gure webgunera laguntza eta albisteak jasotzeko, emailez hitz egiteko eta/edo Bitwarden nola erabili ikasteko.
+
+
+ Webgunea
+ Label for a website.
+
+
+ Bai
+
+
+ Kontua
+
+
+ Zure kontua egina dago. Orain saioa has dezakezu.
+
+
+ Gehitu elementua
+
+
+ Aplikazioaren gehigarria
+
+
+ Erabili Bitwarden-en erabilerraztasun zerbitzua zure saio hasierak auto-betetzeko aplikazio eta webguneetan zehar.
+
+
+ Auto-betetze zerbitzua
+
+
+ Saihestu karaktere anbiguoak
+
+
+ Bitwarden aplikazioaren gehigarria
+
+
+ Zure kutxa gotorrean saio hasiera berriak gehitzeko modurik errazena Bitwarden aplikazioaren gehigarria zabaltzea da. Eskuratu informazio gehiago "Ezarpenak" eremuan.
+
+
+ Erabili Bitwarden Safari-n eta beste aplikazio batzuetan zure saio hasierak auto-betetzeko.
+
+
+ Bitwarden auto-betetze zerbitzua
+
+
+ Erabili Bitwarden-en erabilerraztasun zerbitzua zure saio hasierak auto-betetzeko.
+
+
+ Aldatu emaila
+
+
+ Zure emaila alda dezakezu bitwarden.com webgunean. Orain joan nahi duzu webgunera?
+
+
+ Aldatu pasahitz nagusia
+
+
+ Zure pasahitz nagusia alda dezakezu bitwarden.com webgunean. Orain joan nahi duzu webgunera?
+
+
+ Itxi
+
+
+ Jarraitu
+
+
+ Sortu kontua
+
+
+ Kontua sortzen...
+ Message shown when interacting with the server
+
+
+ Editatu elementua
+
+
+ Gaitu sinkronizazio automatikoa
+
+
+ Sartu zure kontuko emaila pasahitz nagusiaren pista jasotzeko.
+
+
+ Gaitu berriro aplikazio gehigarria
+
+
+ Ia-ia amaitua!
+
+
+ Gaitu aplikazio gehigarria
+
+
+ Safari-n, aurkitu Bitwarden konpartitzeko ikonoa erabiliz (pista: mugitu eskuinerantz menuaren beheko lerroan).
+ Safari is the name of apple's web browser
+
+
+ Eskuratu zure pasahitzak berehala!
+
+
+ Saioa hasteko prest zaude!
+
+
+ Orain, saio hasierak erraz eskura daitezke Safari, Chrome eta beste aplikazio bateragarri batzuetatik.
+
+
+ Safari-n eta Chrome-en, aurkitu Bitwarden konpartitzeko ikonoa erabiliz (pista: mugitu eskuinerantz menuaren beheko lerroan).
+
+
+ Sakatu Bitwarden ikonoa menuan, gehigarria abiarazteko.
+
+
+ Safari-n eta beste aplikazio batzuetan Bitwarden aktibatzeko, sakatu "gehiago" ikonoa menuaren beheko lerroan.
+
+
+ Gogokoa
+
+
+ Hatz-marka
+
+
+ Sortu pasahitza
+
+
+ Jaso zure pasahitz nagusiaren pista
+
+
+ Inportatu elementuak
+
+
+ Zure elementuen inportazioa bitwarden.com webguneko kutxa gotorrean kudeatu dezakezu. Orain bisitatu nahi duzu webgunea?
+
+
+ Inportatu berehala zure elementuak pasahitzak kudeatzeko beste aplikazio batzuetatik.
+
+
+ Azken sinkronizazioa:
+
+
+ Luzera
+
+
+ Blokeatu
+
+
+ 15 minutu
+
+
+ Ordu 1
+
+
+ Minutu 1
+
+
+ 4 ordu
+
+
+ Berehala
+
+
+ Kutxa gotorraren itxaronaldia
+
+
+ Kutxa gotorraren itxaronaldiaren ekintza
+
+
+ Saioa ixteak kutxa gotorreko sarrera guztia kenduko du eta itxaronaldiaren ondoren lineako autentifikazioa eskatuko du. Ziur al zaude hau egin nahi duzula?
+
+
+ Saioa hasten...
+ Message shown when interacting with the server
+
+
+ Saioa hasi edo sortu kontu berri bat zure kutxa gotorrera sartzeko.
+
+
+ Kudeatu
+
+
+ Pasahitzaren baieztapena ez da zuzena.
+
+
+ Pasahitz nagusia, kutxa gotorrera sartzeko erabiltzen duzun pasahitza da. Oso garrantzitsua da ez ahaztea, ahazten baduzu, ez dago pasahitza berreskuratzeko modurik.
+
+
+ Pasahitz nagusirako pista (aukerakoa)
+
+
+ Pasahitz nagusia ahazten baduzu, pista batek pasahitza gogoratzen lagunduko dizu.
+
+
+ Pasahitz nagusiak gutxienez 8 karaktere izan behar ditu.
+
+
+ Gutxieneko zenbaki kopurua
+ Minimum numeric characters for password generator settings
+
+
+ Gutxieneko karaktere bereziak
+ Minimum special characters for password generator settings
+
+
+ Ezarpen gehiago
+
+
+ Saioa hasi behar duzu Bitwarden aplikazioan, gehigarria erabili aurretik.
+
+
+ Inoiz ez
+
+
+ Elementu berria sortua.
+
+
+ Kutxa gotorrean ez dago gogokorik.
+
+
+ Kutxa gotorrean ez dago elementurik.
+
+
+ Kutxa gotorrean ez dago elementurik webgune/aplikazio honentzat. Sakatu bat gehitzeko.
+
+
+ Saio hasiera honek ez du ezarritako erabiltzaile izen edo pasahitzik.
+
+
+ Ongi, aurrera!
+ Confirmation, like "Ok, I understand it"
+
+
+ Aukera lehenetsiak Bitwarden aplikazioaren pasahitzak sortzeko ataletik ezartzen dira.
+
+
+ Aukerak
+
+
+ Bestelakoak
+
+
+ Pasahitza sortua.
+
+
+ Pasahitz sortzailea
+
+
+ Pasahitza gogoratzeko pista
+
+
+ Mezu elektroniko bat bidali dizugu zure pasahitz nagusiaren pistarekin.
+
+
+ Ziur al zaude pasahitza berridatzi nahi duzula?
+
+
+ Bitwardenek automatikoki sinkronizatzen du kutxa gotorra, push jakinarazpenak erabiliz. Ahalik eta esperientziarik onena lortzeko, hautatu "Baimendu" hurrengo jakinarazpenean, push jakinarazpenak gaitzeko eskatzen zaizunean.
+ Push notifications for apple products
+
+
+ Baloratu aplikazioa
+
+
+ Mesedez, aipu on batekin lagundu!
+
+
+ Berrezarri pasahitza
+
+
+ Idatzi berriro pasahitz nagusia
+
+
+ Kutxa Gotorrean bilatu
+
+
+ Segurtasuna
+
+
+ Hautatu
+
+
+ Ezarri PIN-a
+
+
+ Sartu 4 digituko PIN kode bat aplikazioa desblokeatzeko.
+
+
+ Elementuaren informazioa
+
+
+ Elementua eguneratu da.
+
+
+ Bidaltzen...
+ Message shown when interacting with the server
+
+
+ Sinkronizatzen...
+ Message shown when interacting with the server
+
+
+ Sinkronizatu da.
+
+
+ Sinkronizazioak huts egin du.
+
+
+ Sinkronizatu kutxa gotorra orain
+
+
+ Touch ID
+ What Apple calls their fingerprint reader.
+
+
+ Bi urratseko saio hasiera
+
+
+ Bi urratseko saio hasiera dela eta, zure kontua seguruagoa da, beste aplikazio/gailu batekin saioa hastea eskatzen baitizu; adibidez, segurtasun-gako, autentifikazio aplikazio, SMS, telefono dei edo email bidez. Bi urratseko saio hasiera bitwarden.com webgunean aktibatu daiteke. Orain joan nahi duzu webgunera?
+
+
+ {0}-arekin desblokeatu
+
+
+ PIN kodearekin desblokeatu
+
+
+ Baliozkotzen
+ Message shown when interacting with the server
+
+
+ Egiaztatze-kodea
+
+
+ Bistaratu elementua
+
+
+ Bitwarden kutxa gotorra
+
+
+ Autentifikazio aplikazioa galdu duzu?
+
+
+ Elementuak
+ Screen title
+
+
+ Gehigarria gaitu da!
+
+
+ Ikonoak
+
+
+ Itzulpenak
+
+
+ {0}-entzako elementuak
+ This is used for the autofill service. ex. "Logins for twitter.com"
+
+
+ Kutxa gotorrean ez dago elementurik {0}-entzako.
+ This is used for the autofill service. ex. "There are no items in your vault for twitter.com".
+
+
+ Sarrera-eremu bat hautatu eta Bitwarden auto-betetzerako gainjartze bat ikusten duzunean, bere kasa betetzeko erabil dezakezu.
+
+
+ Sakatu jakinarazpen hau kutxa gotorreko elementu bat auto-betetzeko.
+
+
+ Ireki erabilerraztasun ezarpenak
+
+
+ 1. Androiderako erabilerraztasun ezarpenetan, sakatu "Bitwarden" zerbitzuetan.
+
+
+ 2. Gaitu eta sakatu OK onartzeko.
+
+
+ Desgaitua
+
+
+ Gaituta
+
+
+ Itzalita
+
+
+ Piztuta
+
+
+ Egoera
+
+
+ Zure kutxa gotorrean saio hasiera berriak gehitzeko modurik errazena Bitwarden auto-betetze zerbitzua erabiltzea da. Eskuratu informazio gehiago "Ezarpenak" eremuan.
+
+
+ Auto-betetzea
+
+
+ Elementu hau ikusi edo auto-bete nahi duzu?
+
+
+ Ziur al zaude elementu hau auto-bete nahi duzula? Ez dago kointzidentzia osorik “{0}"-entzat.
+
+
+ Kointzidentzia duten elementuak
+
+
+ Kointzidentzia posible bat duten elementuak
+
+
+ Bilatu
+
+
+ "{0}"-entzat auto-betetzeko elementu baten bila zabiltza.
+
+
+ Erakundeak ezagutu
+
+
+ Ezin da "{0}" aplikazioa ireki.
+ Message shown when trying to launch an app that does not exist on the user's device.
+
+
+ Autentifikazio aplikazioa
+ For 2FA
+
+
+ Sartu zure autentifikazio aplikazioaren 6 digituko egiaztatze-kodea.
+ For 2FA
+
+
+ Sartu {0}-era bidalitako 6 digituko egiaztatze-kodea.
+ For 2FA
+
+
+ Ez dago eskuragarri saio-hasierarik
+ For 2FA whenever there are no available providers on this device.
+
+
+ Kontu honek bi urratseko saio hasiera du gaituta, baina ezarritako bi urratsen hornitzaileak ez dira gailu honetan bateragarriak. Mesedez, erabili gailu bateragarri bat eta/edo gehitu beste hornitzaile bat, gailu guztietan bateragarriago direnak (adibidez, autentifikazio aplikazio bat).
+
+
+ Berreskuratze-kodea
+ For 2FA
+
+
+ Gogora nazazu
+ Remember my two-step login
+
+
+ Berbidali email bidezko egiaztatze-kodea
+ For 2FA
+
+
+ Bi urratseko saio hasieraren aukerak
+
+
+ Erabili bi urratseko saio hasierarako beste modu bat
+
+
+ Ezin izan da egiaztatze-emailik bidali. Saiatu berriro.
+ For 2FA
+
+
+ Egiaztatze-emaila bidali da.
+ For 2FA
+
+
+ Aurrera egiteko, mantendu zure NEO YubiKey gailuaren atzeko aldean edo sartu YubiKey zure gailuaren USB atakan. Ondoren, sakatu botoia.
+
+
+ YubiKey segurtasun-gakoa
+ "YubiKey" is the product name and should not be translated.
+
+
+ Gehitu eranskin berria
+
+
+ Eranskinak
+
+
+ Ezin da fitxategia deskargatu.
+
+
+ Zure gailuak ezin du fitxategi mota hau ireki.
+
+
+ Deskargatzen...
+ Message shown when downloading a file
+
+
+ Eranskin honek {0}-eko tamaina du. Ziur al zaude zure gailuan deskargatu nahi duzula?
+ The placeholder will show the file size of the attachment. Ex "25 MB"
+
+
+ Autentifikazio-gakoa (TOTP)
+
+
+ Egiaztatze-kodea (TOTP)
+ Totp code label
+
+
+ Autentifikazio-gakoa gehitu da.
+
+
+ Ezin da autentifikazio-gakoa irakurri.
+
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.
+
+
+ Eskaneatu QR kodea
+
+
+ Kamera
+
+
+ Argazkiak
+
+
+ Kopiatu TOTP-a
+
+
+ Saio hasiera batek autentifikazio-gakoa badu, TOTP egiaztatze-kodea arbelean automatikoki kopiatuko da saio hasiera bat auto-betetzean.
+
+
+ Kopiatu TOTO automatikoki
+
+
+ Premium bazkidetza beharrezkoa da ezaugarri hau erabiltzeko.
+
+
+ Eranskina gehitu da
+
+
+ Eranskina ezabatu da
+
+
+ Hautatu fitxategia
+
+
+ Fitxategia
+
+
+ Ez da fitxategirik hautatu
+
+
+ Ez dago eranskinik.
+
+
+ Fitxategiaren iturria
+
+
+ Ezaugarria ez dago erabilgarri
+
+
+ Eranskinaren gehienezko tamaina 100MB.
+
+
+ Ezin duzu ezaugarri hau erabili zifratze-gakoa eguneratu arte.
+
+
+ Gehiago ezagutu
+
+
+ API zerbitzariaren URL-a
+
+
+ Ingurune pertsonalizatua
+
+
+ Erabiltzaile aurreratuentzat. Zerbitzu bakoitzarentzako oinarrizko URL-a zehaztu dezakezu independienteki.
+
+
+ Inguruneko URL-ak gorde dira.
+
+
+ {0} ez dago behar bezala formateatuta.
+ Validation error when something is not formatted correctly, such as a URL or email address.
+
+
+ Identitate zerbitzariaren URL-a
+ "Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management
+
+
+ Ostatze ingurune propioa
+
+
+ Bitwarden instalatzeko, zehaztu ostatatze propioaren oinarrizko URL-a.
+
+
+ Zerbitzariaren URL-a
+
+
+ Web kutxa gotorreko zerbitzariaren URL-a
+
+
+ Sakatu jakinarazpen hau kutxa gotorreko elementu bat ikusteko.
+
+
+ Eremu pertsonalizatuak
+
+
+ Kopiatu zenbakia
+
+
+ Kopiatu segurtasun-kodea
+
+
+ Zenbakia
+
+
+ Segurtasun-kodea
+
+
+ Txartela
+
+
+ Identitatea
+
+
+ Saio-hasiera
+
+
+ Ohar segurua
+
+
+ 1go helbidea
+
+
+ 2. helbidea
+
+
+ 3. helbidea
+
+
+ Apirila
+
+
+ Abuztua
+
+
+ Marka
+
+
+ Txartelaren titularraren izena
+
+
+ Hiria / Herria
+
+
+ Enpresa
+
+
+ Herrialdea
+
+
+ Abendua
+
+
+ Jn.
+
+
+ Iraungitze hilabetea
+
+
+ Iraungitze urtea
+
+
+ Otsaila
+
+
+ Izena
+
+
+ Urtarrila
+
+
+ Uztaila
+
+
+ Ekaina
+
+
+ Abizena
+
+
+ Izen osoa
+
+
+ Lizentzia zenbakia
+
+
+ Martxoa
+
+
+ Maiatza
+
+
+ Bigarren izena
+
+
+ Jn.
+
+
+ And.
+
+
+ And.
+
+
+ Azaroa
+
+
+ Urria
+
+
+ Pasaporte zenbakia
+
+
+ Telefonoa
+
+
+ Iraila
+
+
+ Segurtasun sozialaren zenbakia
+
+
+ Estatua / Probintzia
+
+
+ Titulua
+
+
+ Posta kodea
+
+
+ Helbidea
+
+
+ Iraungitze data
+
+
+ Erakutsi webguneko ikonoak
+
+
+ Erakutsi irudi bat saio-hasiera bakoitzaren ondoan.
+
+
+ Ikonoen zerbitzariaren URL-a
+
+
+ Bitwardenekin auto-bete
+
+
+ Kutxa gotorra blokeatuta dago
+
+
+ Joan nire kutxa gotorrera
+
+
+ Bildumak
+
+
+ Bilduma honetan ez dago elementurik.
+
+
+ Karpeta honetan ez dago elementurik.
+
+
+ Zakarrontzian ez dago elementurik.
+
+
+ Auto-betetze erabilerraztasun zerbitzua
+
+
+ Bitwarden auto-betetze zerbitzuak Android Autofill Framework erabiltzen du zure gailuko beste aplikazio batzuetan saio-hasierako informazioa betetzen laguntzeko.
+
+
+ Erabili Bitwarden auto-betetze zerbitzua saio-hasierako informazioa beste aplikazio batzuetan betetzeko.
+
+
+ Ireki auto-betetze ezarpenak
+
+
+ Face ID
+ What Apple calls their facial recognition reader.
+
+
+ Egiaztatzeko erabili Face ID.
+
+
+ Desblokeatzeko erabili Face ID.
+
+
+ Egiaztatu Face ID.
+
+
+ Windows Hello
+
+
+ Ezin izan dugu automatikoki ireki Android-en auto-betetzerako ezarpenen menua. Auto-betetzerako ezarpenen menura eskuz nabiga dezakezu, Android-en Ezarpenak > Sistema > Hizkuntzak eta idazketa > Hobespen aurreratuak > Betetze automatikoaren zerbitzutik.
+
+
+ Eremu pertsonalizatuaren izena
+
+
+ Boolearra
+
+
+ Ezkutatua
+
+
+ Lotuta
+
+
+ Testua
+
+
+ Eremu pertsonalizatu berria
+
+
+ Zein eremu pertsonalizatu mota gehitu nahi duzu?
+
+
+ Ezabatu
+
+
+ URI berria
+
+
+ URI {0}
+ Label for a uri/url with position. i.e. URI 1, URI 2, etc
+
+
+ Oinarrizko domeinua
+
+
+ Lehenetsia
+
+
+ Zehatza
+
+
+ Ostalaria
+ A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.
+
+
+ Expresio erregularra
+ A programming term, also known as 'RegEx'.
+
+
+ Hasi honekin
+
+
+ URI detekzio modua
+
+
+ Detekzio modua
+ URI match detection for auto-fill.
+
+
+ Bai, eta gorde
+
+
+ Auto-bete eta gorde
+
+
+ Erakundea
+ An entity of multiple related people (ex. a team or business organization).
+
+
+ Mantendu Yubikey gailuaren goiko aldetik gertu.
+
+
+ Saiatu berriro
+
+
+ Aurrera egiteko, mantendu YubiKey NEO gailuaren atzeko aldean.
+
+
+ Erabilerraztasun zerbitzua erabilgarria izan daiteke aplikazioak bere kabuz auto-betetzeko zerbitzu estandarra jasaten ez dutenean.
+
+
+ Pasahitza eguneratu da
+ ex. Date this password was updated
+
+
+ Eguneratua
+ ex. Date this item was updated
+
+
+ Auto-betetzea gaituta!
+
+
+ Saioa hasi behar duzu Bitwarden aplikazioan, auto-betetzea erabili aurretik.
+
+
+ Orain, zure saio hasierak erraz eskura ditzakezu zure teklatutik, aplikazio eta webguneetan erregistratzen diren bitartean.
+
+
+ Ezarpenak atalean auto-betetze aplikazioak desaktibatzea gomendatzen dugu, erabili nahi ez badituzu.
+
+
+ Sartu kutxa gotorrera zuzenean teklatutik, pasahitzak azkar auto-betetzeko.
+
+
+ Zure gailuan pasahitza auto-betetzeko aukera gaitzeko, jarraitu jarraibide hauei:
+
+
+ 1. Joan iOS "Ezarpenak" aplikaziora
+
+
+ 2. Sakatu "Pasahitzak"
+
+
+ 3. Sakatu "Pasahitzak automatikoki bete"
+
+
+ 4. Piztu Automatikoki bete
+
+
+ 5. Hautatu "Bitwarden"
+
+
+ Pasahitza auto-bete
+
+
+ Zure kutxa gotorrean saio hasiera berriak gehitzeko modurik errazena Bitwarden pasahitzak auto-betetzea gehigarria erabiltzea da. Eskuratu Bitwarden pasahitzak auto-betetzea gehigarriaren erabilerari buruzko informazio gehiago "Ezarpenak" eremuan.
+
+
+ Email helbide baliogabea.
+
+
+ Txartelak
+
+
+ Identitateak
+
+
+ Saio-hasierak
+
+
+ Ohar seguruak
+
+
+ Elementu guztiak
+
+
+ URI-ak
+ Plural form of a URI
+
+
+ Pasahitza egiaztatzen...
+ A loading message when doing an exposed password check.
+
+
+ Egiaztatu pasahitza konprometituta dagoen.
+
+
+ Pasahitz hau {0} aldiz datu-iragazketetan aurkitu da. Aldatu egin beharko zenuke.
+
+
+ Pasahitz hau ez da inongo datu-filtrazio ezagunetan aurkitu. Erabiltzea segurua izan beharko luke.
+
+
+ Identitate izena
+
+
+ Balioa
+
+
+ Pasahitz historia
+
+
+ Motak
+
+
+ Ez dago erakusteko pasahitzik.
+
+
+ Ez dago erakusteko elementurik.
+
+
+ Bilatu bilduma
+
+
+ Fitxategi Send-ak bilatu
+
+
+ Testu Send-ak bilatu
+
+
+ Bilatu {0}
+ ex: Search Logins
+
+
+ Mota
+
+
+ Mugitu behera
+
+
+ Mugitu gora
+
+
+ Bestelakoak
+
+
+ Jabetza
+
+
+ Nork du elementu hau?
+
+
+ Ez dago erakusteko bildumarik.
+
+
+ {0} {1}-era mugitu da.
+ ex: Item moved to Organization.
+
+
+ Elementua partekatu da.
+
+
+ Gutxienez bilduma bat aukeratu behar duzu.
+
+
+ Partekatu
+
+
+ Partekatu elementua
+
+
+ Mugitu erakundera
+
+
+ Ez dago erakunderik erakusteko.
+
+
+ Aukeratu elementu hau zein erakundetara eraman nahi duzun. Erakunde batera pasatzeak elementuaren jabetza erakunde horretara transferitzen du. Zu ez zara elementu honen jabe zuzena izango mugitzen duzunean.
+
+
+ Hitz kopurua
+
+
+ Pasaesaldia
+
+
+ Hitz banatzailea
+
+
+ Ezabatu
+ To clear something out. example: To clear browser history.
+
+
+ Sortzailea
+ Short for "Password Generator"
+
+
+ Ez dago erakusteko karpetarik.
+
+
+ Hatz-marka digitalaren esaldia
+ 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.
+
+
+ Zure kontuaren hatz-marka esaldia
+ 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.
+
+
+ Bitwardek kutxa gotorreko elementuak beste batzuekin partekatzeko aukera ematen dizu erakunde kontu bat erabiliz. Gehiago jakiteko, bitwarden.com webgunea bisitatu nahi duzu?
+
+
+ Esportatu kutxa gotorra
+
+
+ Blokeatu orain
+
+
+ PIN-a
+
+
+ Desblokeatu
+
+
+ Desblokeatu kutxa gotorra
+
+
+ 30 minutu
+
+
+ Ezarri zure PIN kodea Bitwarden desblokeatzeko. Zure PIN-aren konfigurazioa berrezarriko da, noizbait aplikaziotik erabat saioa ixten baduzu.
+
+
+ {1}-en {0} bezala saioa hasita.
+ ex: Logged in as user@example.com on bitwarden.com.
+
+
+ Zure kutxa gotorra blokeatuta dago. Egiaztatu zure pasahitz nagusia jarraitzeko.
+
+
+ Zure kutxa gotorra blokeatuta dago. Egiaztatu zure PIN kodea jarraitzeko.
+
+
+ Zure kutxa gotorra blokeatuta dago. Egiaztatu zure identitatea jarraitzeko.
+
+
+ Iluna
+ A dark color
+
+
+ Argia
+ A light color
+
+
+ 5 minutu
+
+
+ 10 segundu
+
+
+ 30 segundu
+
+
+ 20 segundu
+
+
+ 2 minutu
+
+
+ Hustu arbela
+ Clipboard is the operating system thing where you copy/paste data to on your device.
+
+
+ Ezabatu automatikoki arbelean kopiatutako balioak.
+ Clipboard is the operating system thing where you copy/paste data to on your device.
+
+
+ Lehenetsitako detekzioa URI kointzidentziarako
+ Default URI match detection for auto-fill.
+
+
+ Hautatu auto-betetzea bezalako saio-hasierako ekintzetarako erabiliko den URI kointzidentzia detektatzeko modu lehenetsia.
+
+
+ Gaia
+ Color theme
+
+
+ Aldatu aplikaziorako kolore gaia.
+
+
+ Lehenetsia (Sistema)
+
+
+ Lehehetsia gai iluna
+
+
+ Hautatu gai iluna lehenetsitako gaia (sistema) erabiltzen duzuenean, gailuaren modu iluna gaituta dagoen bitartean
+
+
+ Kopiatu oharra
+
+
+ Irten
+
+
+ Zihur al zaude Bitwardenetik irten nahi duzula?
+
+
+ Aplikazioa berrabiarazten denean, pasahitz nagusiarekin desblokeatu nahi duzu?
+
+
+ Beltza
+ The color black
+
+
+ Nord
+ 'Nord' is the name of a specific color scheme. It should not be translated.
+
+
+ Auto-bete blokeatutako URI-ak
+
+
+ Blokeatutako URI-ei ez zaie berez auto-betetzea eskainiko. Koma batekin URI-ak bereizi. Adibidez: "https://twitter.com, androidapp://com.twitter.android".
+
+
+ Galdetu saio-hasiera gehitzeko
+
+
+ Elementu bat gehitu nahi duzun galdetu, elementu hau zure kutxa gotorrean ez badago.
+
+
+ Aplikazioa berrabiarazten denean
+
+
+ Auto-betetzeak Bitwarden-en kutxa gotorra segurtasunez erabiltzeko aukera ematen du beste webgune eta aplikazio batzuetatik. Badirudi ez duzula Bitwardenentzat auto-betetzeko zerbitzurik jarri. "Ezarpenak" atalean gaitu dezakezu.
+
+
+ Aplikazioa berrabiarazten denean aplikatuko dira gai aldaketak.
+
+
+ Hasierako letra larria
+ ex. Uppercase the first character of a word.
+
+
+ Sartu zenbakia
+
+
+ Deskargatu
+
+
+ Partekatua
+
+
+ Txandakatu ikusgarritasuna
+
+
+ Saioa amaitu da.
+
+
+ Autentifikazio biometrikoa
+
+
+ Biometriak
+
+
+ Erabili biometria desblokeatzeko
+
+
+ Bitwardenek laguntza behar du - Kontsultatu Bitwarden ezarpenetann "auto-betetzerako erabilerraztasun zerbitzua"
+
+
+ 3. Bitwarden aplikazioko Androiden konfigurazioa pantailan, joan "Erakutsi beste aplikazio batzuetan" aukerara (Aurreratua) eta gaitu gainjartzea.
+
+
+ Baimena
+
+
+ Ireki gainjartze baimenaren ezarpenak
+
+
+ 3. Bitwarden aplikazioko Androiden konfigurazioa pantailan, aukeratu "Erakutsi beste aplikazio batzuetan" aukera (Aurreratua) eta gaitu gainjartzea.
+
+
+ Ukatua
+
+
+ Eman da
+
+
+ Fitxategiaren formatua
+
+
+ Sartu pasahitz nagusia kutxa gotorreko datuak esportatzeko.
+
+
+ Bidali egiaztatze-kodea zure emailera
+
+
+ Kodea bidalia!
+
+
+ Jarraitzeko, berretsi zure identitatea.
+
+
+ Esportazio honek kutxa gotorraren datuak zifratu gabeko formatuan biltzen ditu. Ez zenuke gorde edo kanal ez-seguruetaik (emaila, adibidez) bidali behar. Erabili eta berehala ezabatu.
+
+
+ Esportazio honek zure datuak zifratzen ditu zure kontuaren zifratze-gakoa erabiliz. Inoiz zure kontuko zifratze-gakoa berrituz gero, berriro esportatu beharko duzu, ezin izango baituzu fitxategi hori deszifratu.
+
+
+ Kontua zifratzeko gakoak Bitwarden erabiltzaile bakoitzarentzako bakarrik dira; beraz, ezin da inportatu beste kontu batean zifratutako esportazio bat.
+
+
+ Baieztatu kutxa gotorra esportatzea
+ Title for the alert to confirm vault exports.
+
+
+ Kontuz
+
+
+ Kutxa gotorra esportatzean arazo bat izan da. Arazoak bere horretan jarraitzen badu, kutxa gotorretik esportatu beharko duzu.
+
+
+ Kutxa gotorra ongi esportatu da
+
+
+ Klonatu
+ Clone an entity (verb).
+
+
+ Erakundeko politika batek edo gehiagok sortzailearen konfigurazioari eragiten diote
+
+
+ Ireki
+ Button text for an open operation (verb).
+
+
+ Arazo bat egon da eranskin hau atxikitzean. Arazoak bere horretan jarraitzen badu, webguneko kutxa gotorretik atxiki dezakezu.
+
+
+ Eranskina ondo atxiki da
+
+
+ Mesedez, gaitu Bitwardeneko ezarpenetan "auto-betetze erabilerraztasun zerbitzua", auto-betetzea erabiltzeko.
+
+
+ Ez da pasahitz eremurik detektatu
+
+
+ Zakarrontzira bidaltzen...
+ Message shown when interacting with the server
+
+
+ Elementua zakarrontzira bidali da.
+ Confirmation message after successfully soft-deleting a login
+
+
+ Berreskuratu
+ Restores an entity (verb).
+
+
+ Berreskuratzen...
+ Message shown when interacting with the server
+
+
+ Elementua berreskuratu da.
+ Confirmation message after successfully restoring a soft-deleted item
+
+
+ Zakarrontzia
+ (noun) Location of deleted items which have not yet been permanently deleted
+
+
+ Bilatu zakarrontzian
+ (action prompt) Label for the search text field when viewing the trash folder
+
+
+ Ziur al zaude betirako ezabatu nahi duzula? Eragiketa hau ezin da desegin.
+ Confirmation alert message when permanently deleteing a cipher.
+
+
+ Ziur al zaude elementu hau berreskuratu nahi duzula?
+ Confirmation alert message when restoring a soft-deleted cipher.
+
+
+ Ziur zaude elementu hau zakarrontzira bidali nahi duzula?
+ Confirmation alert message when soft-deleting a cipher.
+
+
+ Desblokeatze biometrikoa desgaituta dago, pasahitz nagusiarekin saioa hasi zain.
+
+
+ Auto-betetzerako desblokeatze biometrikoa desgaituta dago, pasahitz nagusiarekin saioa hasi zain.
+
+
+ Gaitu eguneratzean sinkronizatzea
+
+
+ Sinkronizatu kutxa gotorra beherantz arrastatzeko keinuarekin.
+
+
+ Enpresentzako saio hasiera bakarra (SSO)
+
+
+ Hasi saioa zure erakundeko atari bakarra erabiliz. Sartu zure erakundearen identifikatzailea hasteko.
+
+
+ Erakundearen identifikatzailea
+
+
+ Une honetan SSO-rekin saioa hastea ez dago gaituta
+
+
+ Ezarri pasahitz nagusia
+
+
+ SSO-rekin saioa hasteko, mesedez, ezarri pasahitz nagusi bat kutxa gotorrera sartu eta babesteko.
+
+
+ Erakundeko politika batek edo gehiagok pasahitz nagusia behar dute baldintza hauek betetzeko:
+
+
+ {0}-en gutxieneko konplexutasun puntuazioa
+
+
+ Gutxienezko luzera {0} da
+
+
+ Karaktere larri bat edo gehiago edukitzea
+
+
+ Karaktere txiki bat edo gehiago edukitzea
+
+
+ Zenbaki bat edo gehiago edukitzea
+
+
+ Karaktere berezi hauetako {0} bat edo gehiago edukitzea
+
+
+ Pasahitzak ez du balio
+
+
+ Pasahitzak ez ditu erakundearen baldintzak betetzen. Mesedez, berrikusi politika eta saiatu berriro.
+
+
+ Kargatzen
+
+
+ Gaitzean, honakoa onartzen duzu:
+
+
+
+ Zerbitzuaren baldintzak eta pribatutasun politika ez dira onartu.
+
+
+ Zerbitzuaren baldintzak
+
+
+ Pribatutasun politika
+
+
+ Bitwardenek laguntza behar du - Gainjartzea gaitu behar duzu Bitwarden ezarpenetako "auto-betetze zerbitzua"-n
+
+
+ Auto-betetze zerbitzuak
+
+
+ Erabili lineako auto-betetzea
+
+
+ Erabili lineako auto-betetzea, hautatutako IME-ak (teklatua) onartzen badu. Ezarpenak ez badira bateragarriak (edo aukera hau desgaituta badago), auto-betetze gainjartzea erabiliko da lehenespenez.
+
+
+ Erabili erabilerraztasuna
+
+
+ Erabili Bitwarden erabilerraztasun zerbitzua zure saio hasierak aplikazioen eta webgunearen bidez automatizatzeko. Gaituta dagoenean, popup bat agertuko da saio-hasierako eremuak hautatzean.
+
+
+ Erabili Bitwarden erabilerraztasun zerbitzua zure saio hasierak aplikazioen eta webgunearen bidez automatizatzeko. (Gainjartzea gaituta egotea behar du)
+
+
+ Erabili Bitwarden erabilerraztasun zerbitzua auto-betetze ekintza azkarreko mosaikoa erabiltzeko eta/edo erakutsi popup bat gainjartzea erabiliz (gaituta badago).
+
+
+ Ekintza azkarreko mosaikoa erabili behar da auto-betetzerako, edo auto-betetze zerbitzua hobetu, gainjartzea erabiliz (gaituta badago).
+
+
+ Erabili gainjartzea
+
+
+ Gaituta dagoenean, Bitwarden erabilerraztasun zerbitzuari popup bat erakusteko aukera ematen dio sarbide eremuak hautatzean.
+
+
+ Gaituta badago, Bitwarden erabilerraztasun zerbitzuak popup bat erakutsiko du saio-hasierako eremuak hautatzen direnean, saio hasierak bere kasa betetzen laguntzeko.
+
+
+ Gaituz gero, Android-en auto-betetze Framework-arekin bateragarri ez diren aplikazio zaharragoen auto-betetze zerbitzua handitzeko popup bat erakutsiko du erabilerraztasunak.
+
+
+ Erakundeko politika bat dela eta, ezin dituzu elementuak zure kutxa gotor pertsonalean gorde. Aldatu jabe aukera erakunde aukera batera, eta aukeratu bilduma erabilgarrien artean.
+
+
+ Erakunde politika batek, jabetza aukerei eragiten die.
+
+
+ Send
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send guztiak
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send-ak
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send hau deskribatzeko izena.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Testua
+
+
+ Testua
+
+
+ Bidali nahi duzun testua.
+
+
+ Send-era sartzean, ezkutatu testua modu lehenetsian
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Fitxategia
+
+
+ Bidali nahi duzun fitxategia.
+
+
+ Fitxategi mota hautatu da.
+
+
+ Fitxategi mota ez da hautatu, sakatu hautatzeko.
+
+
+ Testu mota hautatu da.
+
+
+ Testu mota ez da hautatu, sakatu hautatzeko.
+
+
+ Ezabatze data
+
+
+ Ezabatutako unea
+
+
+ Send-a betiko ezabatuko da zehaztutako datan eta orduan.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Ezabatzea egiteke
+
+
+ Iraungitze data
+
+
+ Iraungitze unea
+
+
+ Hala ezartzen bada, Send honetarako sarbidea zehaztutako egunean eta orduan amaituko da.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Iraungita
+
+
+ Sarbide kopuru maximoa
+
+
+ Hala ezartzen bada, erabiltzaileak ezin izango dira Send honetara sartu gehienezko sarbide kopurura iritsi ondoren.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Sarbide kopuru maximoa gaindituta
+
+
+ Uneko sarbide kopurua
+
+
+ Pasahitz berria
+
+
+ Nahi izanez gero, pasahitza eskatu erabiltzaileak bidalketa honetara sar daitezen.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Kendu pasahitza
+
+
+ Ziur al zaude pasahitz hau ezabatu nahi duzula?
+
+
+ Pasahitza kentzen
+
+
+ Pasahitza kendu da.
+
+
+ Send honi buruzko ohar pribatuak.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Desgaitu Send hau inor sar ez dadin
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Zure kontuan ez dago Send-ik.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Gehitu Send-a
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Kopiatu esteka
+
+
+ Partekatu esteka
+
+
+ Send esteka
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send-ak bilatu
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Editatu Send-a
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Gehitu Send-a
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Ziur al zaude Send hau ezabatu nahi duzula?
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send-a ezabatu da.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send-a eguneratu da.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send berria sortua.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Egun 1
+
+
+ 2 egun
+
+
+ 3 egun
+
+
+ 7 egun
+
+
+ 30 egun
+
+
+ Pertsonalizatua
+
+
+ Send hau gordetzean partekatu
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Enpresa-politika baten ondorioz, lehendik dagoen Send-a bakarrik ezaba dezakezu.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Send-i buruz
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Ezkutatu nire emaila hartzaileei
+
+
+ Erakundeko politika batek edo gehiagok Send-eko aukerei eragiten diote.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Doako kontuak testuak partekatzera mugatzen dira. Premium bazkidetza behar da Send-ekin fitxategiak partekatzeko.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Emaila egiaztatu behar duzu fitxategiak Send-ekin partekatzeko. Emaila webguneko kutxa gotorrean egiazta dezakezu.
+ 'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.
+
+
+ Berriro eskatu pasahitz nagusia
+
+
+ Baieztatu pasahitz nagusia
+
+
+ Ekintza hau babestuta dago. Jarraitzeko, mesedez, sartu berriro pasahitz nagusia zure identitatea egiaztatzeko.
+
+
+ Captcha beharrezkoa da
+
+
+ Captcha-k huts egin du. Saiatu berriro.
+
+
+ Pasahitz nagusia eguneratuta
+
+
+ Pasahitz nagusia eguneratu
+
+
+ Zure erakundeko administratzaile batek pasahitz nagusia aldatu berri du. Kutxa gotorrera sartzeko, pasahitz nagusia orain eguneratu behar duzu. Beraz, oraingo saiotik atera eta saioa hasteko eskatuko zaizu. Beste gailu batzuetako saio aktiboek ordubete iraun dezakete aktibo.
+
+
+ Pasahitza eguneratzen
+
+
+ Orain ezin da pasahitza eguneratu
+
+
+ Ezabatu pasahitz nagusia
+
+
+ {0} bezeroak kudeatutako zifratua duen SSO erabiltzen ari da. Jarraitzeak zure kontuko pasahitz nagusia ezabatuko du, eta SSO eskatuko du saioa hasteko.
+
+
+ Zure pasahitz nagusia ezabatu nahi ez baduzu, erakundea utzi beharko duzu.
+
+
+ Utzi erakundea
+
+
+ {0} utzi?
+
+
+ FIDO2 WebAuthn
+
+
+ Aurrera egiteko, gaituta duzun segurtasun-gakoa (FIDO 2 WebAuthn) prest eduki, ondoren, jarraitu jarraibideei hurrengo pantailan "WebAuthn autentifikatu" sakatutakoan.
+
+
+ FIDO 2 WebAuthn bidezko autentifikazioa kanpoko segurtasun-gako bat erabiliz kudeatu ahal da.
+
+
+ WebAuthn autentifikatu
+
+
+ Itzuli aplikaziora
+
+
+ Mesedez, ziurtatu zure nabigatzaile lehenetsiak WebAuthn onartzen duela eta saiatu berriro.
+
+
+ Erakunde honen enpresa politika baten ondorioz, automatikoki pasahitza berrezartzean izen-emango zaitu. Izen-emateak aukera emango die erakundeko administratzaileei pasahitz nagusia aldatzeko.
+
+
+ Zure erakundearen politikek zure itxaronaldiari eragiten diote. Itxaronaldiak gehienez ere {0} ordu eta {1} minutu izango ditu
+
+
+ Zure kutxa gotorreko itxaronaldiak, zure erakundeak ezarritako murrizpenak gainditzen ditu.
+
+
+ Erakundeko politika batek edo gehiagok kutxa gotorra esportatzea galarazten dute.
+
+
+ Gehitu kontua
+
+
+ Desblokeatuta
+
+
+ Blokeatuta
+
+
+ Saioa itxita
+
+
+ Hurrengo kontu erabilgarrira aldatu
+
+
+ Kontua blokeatuta
+
+
+ Kontuko saioa ondo itxi da
+
+
+ Kontua ezabatu da
+
+
+ Ezabatu kontua
+
+
+ Kontua ezabatzea itzulezina da
+
+
+ Zure kontua eta kutxa gotorraren datu guztiak ezabatu eta berreskuraezinak izango dira. Ziur al zaude jarraitu nahi duzula?
+
+
+ Zure kontua ezabatzen
+
+
+ Zure kontua betirako ezabatu da
+
+
+ Egiaztatze-kodea ez da baliozkoa.
+
+
+ Behin bakarrik erabiltzeko pasahitza eskatu
+
+
+ Bidali kodea
+
+
+ Bidaltzen
+
+
+ Kopiatu Send esteka gordetzean
+
+
+ Kodea bidaltzen
+
+
+ Egiaztatzen
+
+
+ Berbidali kodea
+
+
+ Egiaztatze-kodea zure emailera bidali da
+
+
+ Akats bat gertatu da egiaztatze-kodea emailera bidaltzean. Mesedez, saiatu berriro
+
+
+ Sartu zure emailera bidali den egiaztatze-kodea
+
+
+ Bidali akatsen txostena
+
+
+ Lagundu Bitwarden aplikazioaren egonkortasuna hobetzen, akatsen txostenak bidaliz.
+
+
+ Aukerak zabaldu egin dira, sakatu multzokatzeko.
+
+
+ Aukerak multzokatuta daude, sakatu zabaltzeko.
+
+
+ Letra larria (A-Z)
+
+
+ Letra txikia (a-z)
+
+
+ Zenbakiak (0-9)
+
+
+ Karaktere bereziak (!@#$%^&*)
+
+
+ Sakatu itzultzeko
+
+
+ Pasahitza ikusgai dago, sakatu ezkutatzeko.
+
+
+ Pasahitza ezkutatuta dago, sakatu bistaratzeko.
+
+
+ Iragazi elementuak kutxa gotorraren arabera
+
+
+ Kutxa gotor guztiak
+
+
+ Kutxa Gotorrak
+
+
+ Kutxa gotorra: {0}
+
+
+ Guztiak
+
+
+ TOTP
+
+
+ Verification Codes
+
+
+ Premium subscription required
+
+
+ Cannot add authenticator key?
+
+
+ Scan QR Code
+
+
+ Cannot scan QR Code?
+
+
+ Authenticator Key
+
+
+ Enter Key Manually
+
+
+ Add TOTP
+
+
+ Set up TOTP
+
+
+ Once the key is successfully entered,
+select Add TOTP to store the key safely
+
+
+
+
+
+ Zure blokeo aukerak "inoiz ez" bezala ezartzen badituzu, gailura sarbidea duen edonork izango du kutxa gotorra eskuragarri. Aukera hau erabiltzen baduzu, gailua behar bezala babestuta duzula ziurtatu behar duzu.
+
+
+ Sartutako URL batek edo gehiagok ez dute balio. Mesedez, berrikusi eta saiatu berriro gordetzen.
+
+
+ Ezin izan dugu zure eskaera bideratu. Mesedez, saiatu berriro edo jarri gurekin harremanetan.
+
+
+ Baimendu pantaila-argazkia
+
+
+ Ziur al zaude pantaila-argazkia gaitu nahi duzula?
+
+
diff --git a/src/App/Resources/AppResources.fa.resx b/src/App/Resources/AppResources.fa.resx
index 24713ec5d..14821a614 100644
--- a/src/App/Resources/AppResources.fa.resx
+++ b/src/App/Resources/AppResources.fa.resx
@@ -299,6 +299,10 @@
گاوصندوق منThe title for the vault page.
+
+ Authenticator
+ Authenticator TOTP feature
+
نامLabel for an entity name.
@@ -770,6 +774,12 @@
فعال شد
+
+ خاموش
+
+
+ روشن
+
وضعیت
@@ -813,7 +823,7 @@
For 2FA
- کد ۶ رقمی تایید را که به {0} رایانامه شده را وارد کنید.
+ کد ۶ رقمی تأیید را که به {0} رایانامه شده را وارد کنید.For 2FA
@@ -889,11 +899,9 @@
کلید تأیید کننده را نمیتوان خواند.
-
- اسکن خودکار رخ می دهد.
-
-
- دوربین خود را بر روی کد QR قرار دهید.
+
+ Point your camera at the QR Code.
+Scanning will happen automatically.اسکن کد QR
@@ -907,11 +915,11 @@
رونوشت TOTP
-
- اگر ورود شما دارای یک کلید تأیید کننده میباشد که به آن متصل شده است، هر زمان که وارد سایت شوید کد تأیید TOTP بصورت خودکار به کلیپ بورد شما کپی می شود.
+
+ اگر یک ورود دارای یک کلید احراز هویت باشد، هنگام تکمیل خودکار ورود، کد تأیید TOTP را در کلیپ برد خود کپی کن.
-
- غیرفعال کردن کپی خودکار TOTP
+
+ TOTP را به صورت خودکار کپی کنبرای استفاده از این ویژگی عضویت پرمیوم لازم است.
@@ -1128,11 +1136,11 @@
انقضاء
-
- غیرفعال سازی آیکون های وب سایت
+
+ نمایش نمادهای وب سایت
-
- آیکون های وب سایت یک تصویر مشخص در کنار هر داده ورودی ارائه میدهد.
+
+ یک تصویر قابل تشخیص در کنار هر ورود نشان دهید.آدرس سرور آیکون ها
@@ -1372,11 +1380,15 @@
جستجوی مجموعه
-
- جستجوی پوشه
+
+ ارسال های فایل را جستجو کن
-
- جستجوی نوع
+
+ ارسال های متن را جستجو کن
+
+
+ جستوجو {0}
+ ex: Search Loginsنوع
@@ -1487,7 +1499,7 @@
گاوصندوق شما قفل شده است. برای ادامه کد پین خود را تأیید کنید.
- گاوصندوق شما قفل شده است. برای ادامه هویت خود را تایید کنید.
+ گاوصندوق شما قفل شده است. برای ادامه هویت خود را تأیید کنید.تیره
@@ -1537,6 +1549,12 @@
پیش فرض (سیستم)
+
+ تم تیره پیشفرض
+
+
+ هنگام استفاده از طرح زمینه پیشفرض (سیستم) در حالی که حالت تاریک دستگاه شما فعال است، تم تیره را انتخاب کنید
+
رونوشت یادداشتها
@@ -1553,17 +1571,21 @@
سیاهThe color black
-
- فهرست سیاه آدرس های اینترنتی
+
+ نُرد
+ 'Nord' is the name of a specific color scheme. It should not be translated.
-
- URIs that are blacklisted will not offer auto-fill. The list of apps should be comma separated. Ex: "https://twitter.com, androidapp://com.twitter.android".
+
+ پر کردن خودکار URI های مسدود شده
-
- غیر فعال کردن ذخیره سریع
+
+ تکمیل خودکار برای URI های مسدود شده ارائه نمی شود. چندین URI را با کاما جدا کنید. به عنوان مثال: "https://twitter.com، androidapp://com.twitter.android".
-
- "ذخیره سریع" به صورت خودکار باعث افزایش سرعت شما برای ذخیره موارد جدید در گاوصندوقتان می شود زمانی که شما آنها را برای اولین بار وارد میکند.
+
+