1
0
mirror of https://github.com/bitwarden/mobile synced 2026-01-21 11:53:15 +00:00

Compare commits

...

24 Commits

Author SHA1 Message Date
Matt Portune
c1461ab16b FIDO2 implementation using Google Play Services on Android 2021-08-30 13:38:03 -04:00
Matt Portune
307a5a5843 FIDO2 WebAuthn support for mobile (#1519)
* FIDO2 / WebAuthn support for mobile

* fixes
2021-08-30 12:44:12 -04:00
Joseph Flinn
d050215ebc Simplifying Crowdin sync workflow (#1517) 2021-08-27 10:08:40 -07:00
Matt Portune
67e26c778b Revert "bump MinimumOSVersion to 12.0 (#1508)" (#1515)
This reverts commit 745b54bf2a.
2021-08-25 17:03:33 -04:00
Matt Portune
efb10d155d Revert "enable LLVM in iOS builds (#1510)" (#1514)
This reverts commit 244a6a7f41.
2021-08-25 17:03:02 -04:00
Matt Portune
913c673773 Revert "enable LLVM in iOS extensions (#1511)" (#1513)
This reverts commit 380c3583fb.
2021-08-25 17:02:49 -04:00
Joseph Flinn
339decafe4 Reverting changes to Chinese and Portuguese translations (#1512) 2021-08-24 11:57:34 -07:00
Matt Portune
380c3583fb enable LLVM in iOS extensions (#1511) 2021-08-23 11:40:16 -04:00
Matt Portune
244a6a7f41 enable LLVM in iOS builds (#1510) 2021-08-23 10:16:46 -04:00
Matt Portune
745b54bf2a bump MinimumOSVersion to 12.0 (#1508) 2021-08-20 09:54:39 -04:00
Joseph Flinn
4f86bb2043 Reverting English changes from the Auto Crowdin Sync (#1507) 2021-08-19 10:47:15 -07:00
github-actions[bot]
ada8a73849 Autosync Crowdin Translations (#1498)
* Autosync Crowdin translations

* Autosync Crowdin translations

Co-authored-by: github-actions <>
2021-08-18 15:14:15 -07:00
Matt Gibson
1e3204f91d Version bump to 2.12.0 (#1505) 2021-08-17 14:02:00 -05:00
Joseph Flinn
b5c6a57fa0 Crowdin sync workflow (#1499)
* Initial addition of the crowdin sync workflow for testing

* adding logic to handle the case where there are no Crowdin updates
2021-08-13 13:28:07 -07:00
Joseph Flinn
6ca5b66aa7 stubbing out the crowdin sync workflow (#1497) 2021-08-13 07:31:36 -07:00
Matt Gibson
24a0396d0f Fix iphone captcha throws (#1495) 2021-08-12 08:23:02 -05:00
Chad Scharf
7f7b673b0a Fix for EMM system configuration for mobile (#1434) 2021-08-11 10:36:36 -04:00
Matt Gibson
f79ff3fd63 Encode auth email for unicode email support (#1491) 2021-08-10 11:48:51 -05:00
Matt Gibson
2f2fa8a25b Feature/use hcaptcha if bot (#1476)
* Add captcha to login models and methods

* Add captcha web auth to login

* Extract captcha to abstract base class

* Add Captcha to register

* Null out captcha token after each successful challenge

* Cancel > close
2021-08-04 14:47:23 -05:00
Matt Gibson
9042b1009e Revert "Revert "Redefine cipher "share" to "move to organization""" (#1459)
* Revert "Revert "Redefine cipher "share" to "move to organization" (#1433)" (#1440)"

This reverts commit bd4a275558.

* Cancel > close
2021-08-04 14:46:28 -05:00
Vince Grassia
dbc0f490c5 Add Release workflow stub (#1482) 2021-07-27 13:25:12 -04:00
Matt Portune
6d8f627772 disable send test (#1481) 2021-07-27 10:51:47 -04:00
Jonathan Browne
b4c016c9d4 Change Close to Cancel in editing prompts. (#1480) 2021-07-27 09:25:42 -04:00
howyay
ae763ebca8 Add support for Mull browser (#1435) 2021-07-26 09:20:47 -04:00
146 changed files with 8262 additions and 1978 deletions

48
.github/workflows/crowdin-sync.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Crowdin Sync
on:
workflow_dispatch:
inputs: {}
#schedule:
# - cron: '0 0 * * *'
jobs:
crowdin-sync:
name: Autosync
runs-on: ubuntu-20.04
env:
_CROWDIN_PROJECT_ID: "269690"
steps:
- name: Checkout repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
- name: Login to Azure
uses: Azure/login@77f1b2e3fb80c0e8645114159d17008b8a2e475a
with:
creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }}
- name: Retrieve secrets
id: retrieve-secrets
uses: Azure/get-keyvault-secrets@80ccd3fafe5662407cc2e55f202ee34bfff8c403
with:
keyvault: "bitwarden-prod-kv"
secrets: "crowdin-api-token"
- name: Download translations
uses: crowdin/github-action@e39093fd75daae7859c68eded4b43d42ec78d8ea
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
with:
config: crowdin.yml
crowdin_branch_name: master
upload_sources: false
upload_translations: false
download_translations: true
github_user_name: "github-actions"
github_user_email: "<>"
commit_message: "Autosync the updated translations"
localization_branch_name: crowdin-auto-sync
create_pull_request: true
pull_request_title: "Autosync Crowdin Translations"
pull_request_body: "Autosync the updated translations"

21
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Release
on:
workflow_dispatch:
jobs:
cloc:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
- name: Set up cloc
run: |
sudo apt-get update
sudo apt-get -y install cloc
- name: Print lines of code
run: cloc --vcs git --exclude-dir Resources,store,test,Properties --include-lang C#,XAML

View File

@@ -1,3 +1,5 @@
project_id_env: _CROWDIN_PROJECT_ID
api_token_env: CROWDIN_API_TOKEN
files:
- source: /src/App/Resources/AppResources.resx
translation: /src/App/Resources/AppResources.%two_letters_code%.resx

View File

@@ -109,6 +109,7 @@ namespace Bit.Droid.Accessibility
new Browser("org.torproject.torbrowser_alpha", "mozac_browser_toolbar_url_view,url_bar_title"), // 2nd = Legacy (before v10.0a8)
new Browser("org.ungoogled.chromium.extensions.stable", "url_bar"),
new Browser("org.ungoogled.chromium.stable", "url_bar"),
new Browser("us.spotco.fennec_dos", "mozac_browser_toolbar_url_view,url_bar_title"), // 2nd = Legacy
// [Section B] Entries only present here
//

View File

@@ -92,6 +92,7 @@
</PackageReference>
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.3.0.1" />
<PackageReference Include="Xamarin.Google.Dagger" Version="2.37.0" />
<PackageReference Include="Xamarin.GooglePlayServices.Fido" Version="118.1.0" />
<PackageReference Include="Xamarin.GooglePlayServices.SafetyNet">
<Version>117.0.0</Version>
</PackageReference>
@@ -115,6 +116,8 @@
<Compile Include="Effects\FixedSizeEffect.cs" />
<Compile Include="Effects\SelectableLabelEffect.cs" />
<Compile Include="Effects\TabBarEffect.cs" />
<Compile Include="Fido2System\Fido2BuilderObject.cs" />
<Compile Include="Fido2System\Fido2Service.cs" />
<Compile Include="Push\FirebaseMessagingService.cs" />
<Compile Include="Receivers\ClearClipboardAlarmReceiver.cs" />
<Compile Include="Receivers\RestrictionsChangedReceiver.cs" />

View File

@@ -122,6 +122,7 @@ namespace Bit.Droid.Autofill
"org.torproject.torbrowser_alpha",
"org.ungoogled.chromium.extensions.stable",
"org.ungoogled.chromium.stable",
"us.spotco.fennec_dos",
};
// The URLs are blacklisted from autofilling

View File

@@ -0,0 +1,106 @@
#if !FDROID
using System.Collections.Generic;
using Android.Gms.Fido.Common;
using Android.Gms.Fido.Fido2.Api.Common;
using Bit.Core.Models.Data;
using Bit.Core.Models.Response;
using Bit.Core.Utilities;
using Java.Lang;
using Newtonsoft.Json.Linq;
namespace Bit.Droid.Fido2System
{
class Fido2BuilderObject
{
public static PublicKeyCredentialRequestOptions ParsePublicKeyCredentialRequestOptions(
Fido2AuthenticationChallengeResponse data)
{
if (data == null)
{
return null;
}
var builder = new PublicKeyCredentialRequestOptions.Builder();
if (!string.IsNullOrEmpty(data.Challenge))
{
builder.SetChallenge(CoreHelpers.Base64UrlDecode(data.Challenge));
}
if (data.AllowCredentials != null && data.AllowCredentials.Count > 0)
{
builder.SetAllowList(ParseCredentialDescriptors(data.AllowCredentials));
}
if (!string.IsNullOrEmpty(data.RpId))
{
builder.SetRpId(data.RpId);
}
if (data.Timeout > 0)
{
builder.SetTimeoutSeconds((Double)(data.Timeout / 1000));
}
if (data.Extensions != null)
{
builder.SetAuthenticationExtensions(ParseExtensions((JObject)data.Extensions));
}
return builder.Build();
}
private static List<PublicKeyCredentialDescriptor> ParseCredentialDescriptors(
List<Fido2CredentialDescriptor> listData)
{
if (listData == null || listData.Count == 0)
{
return new List<PublicKeyCredentialDescriptor>();
}
var credentials = new List<PublicKeyCredentialDescriptor>();
foreach (var data in listData)
{
string id = null;
string type = null;
var transports = new List<Transport>();
if (!string.IsNullOrEmpty(data.Id))
{
id = data.Id;
}
if (!string.IsNullOrEmpty(data.Type))
{
type = data.Type;
}
if (data.Transports != null && data.Transports.Count > 0)
{
foreach (var transport in data.Transports)
{
transports.Add(Transport.FromString(transport));
}
}
credentials.Add(new PublicKeyCredentialDescriptor(type, CoreHelpers.Base64UrlDecode(id), transports));
}
return credentials;
}
private static AuthenticationExtensions ParseExtensions(JObject extensions)
{
var builder = new AuthenticationExtensions.Builder();
if (extensions.ContainsKey("appid"))
{
var appId = new FidoAppIdExtension((string)extensions.GetValue("appid"));
builder.SetFido2Extension(appId);
}
if (extensions.ContainsKey("uvm"))
{
var uvm = new UserVerificationMethodExtension((bool)extensions.GetValue("uvm"));
builder.SetUserVerificationMethodExtension(uvm);
}
return builder.Build();
}
}
}
#endif

View File

@@ -0,0 +1,249 @@
#if !FDROID
using Android.App;
using Android.Content;
using Android.Gms.Fido;
using Android.Gms.Fido.Fido2;
using Android.Gms.Fido.Fido2.Api.Common;
using Android.Gms.Tasks;
using Android.Util;
using AndroidX.AppCompat.App;
using Bit.App.Services;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
using Bit.Core.Models.Request;
using Bit.Core.Models.Response;
using Bit.Core.Utilities;
using Java.Lang;
using Newtonsoft.Json;
using Xamarin.Forms;
using Enum = System.Enum;
namespace Bit.Droid.Fido2System
{
public class Fido2Service
{
public static readonly string _tag_log = "Fido2Service";
public static Fido2Service INSTANCE = new Fido2Service();
private readonly MobileI18nService _i18nService;
private readonly IPlatformUtilsService _platformUtilsService;
private AppCompatActivity _activity;
private Fido2ApiClient _fido2ApiClient;
private Fido2CodesTypes _fido2CodesType;
public Fido2Service()
{
_i18nService = ServiceContainer.Resolve<II18nService>("i18nService") as MobileI18nService;
_platformUtilsService = ServiceContainer.Resolve<IPlatformUtilsService>("platformUtilsService");
}
public void Start(AppCompatActivity activity)
{
_activity = activity;
_fido2ApiClient = Fido.GetFido2ApiClient(_activity);
}
public void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if (resultCode == Result.Ok && Enum.IsDefined(typeof(Fido2CodesTypes), requestCode))
{
switch ((Fido2CodesTypes)requestCode)
{
case Fido2CodesTypes.RequestSignInUser:
var errorExtra = data?.GetByteArrayExtra(Fido.Fido2KeyErrorExtra);
if (errorExtra != null)
{
HandleErrorCode(errorExtra);
}
else
{
if (data != null)
{
SignInUserResponse(data);
}
}
break;
// TODO: Key registration, should we ever choose to implement client-side
/*case Fido2CodesTypes.RequestRegisterNewKey:
errorExtra = data?.GetByteArrayExtra(Fido.Fido2KeyErrorExtra);
if (errorExtra != null)
{
HandleErrorCode(errorExtra);
}
else
{
if (data != null)
{
// begin registration flow
}
}
break;*/
}
}
else if (resultCode == Result.Canceled && Enum.IsDefined(typeof(Fido2CodesTypes), requestCode))
{
Log.Info(_tag_log, "cancelled");
_platformUtilsService.ShowDialogAsync(_i18nService.T("Fido2AbortError"),
_i18nService.T("Fido2Title"));
}
}
public void OnSuccess(Object result)
{
if (result != null && Enum.IsDefined(typeof(Fido2CodesTypes), _fido2CodesType))
{
try
{
_activity.StartIntentSenderForResult(((PendingIntent)result).IntentSender, (int)_fido2CodesType,
null, 0, 0, 0);
}
catch (System.Exception e)
{
Log.Error(_tag_log, e.Message);
_platformUtilsService.ShowDialogAsync(_i18nService.T("Fido2SomethingWentWrong"),
_i18nService.T("Fido2Title"));
}
}
}
public void OnFailure(Exception e)
{
Log.Error(_tag_log, e.Message ?? "OnFailure: No error message returned");
_platformUtilsService.ShowDialogAsync(_i18nService.T("Fido2SomethingWentWrong"),
_i18nService.T("Fido2Title"));
}
public void OnComplete(Task task)
{
Log.Debug(_tag_log, "OnComplete");
}
public async System.Threading.Tasks.Task SignInUserRequestAsync(string dataJson)
{
try
{
var dataObject = JsonConvert.DeserializeObject<Fido2AuthenticationChallengeResponse>(dataJson);
_fido2CodesType = Fido2CodesTypes.RequestSignInUser;
var options = Fido2BuilderObject.ParsePublicKeyCredentialRequestOptions(dataObject);
var task = _fido2ApiClient.GetSignPendingIntent(options);
task.AddOnSuccessListener((IOnSuccessListener)_activity)
.AddOnFailureListener((IOnFailureListener)_activity)
.AddOnCompleteListener((IOnCompleteListener)_activity);
}
catch (System.Exception e)
{
Log.Error(_tag_log, e.StackTrace);
await _platformUtilsService.ShowDialogAsync(_i18nService.T("Fido2SomethingWentWrong"),
_i18nService.T("Fido2Title"));
}
finally
{
Log.Info(_tag_log, "SignInUserRequest() -> finally()");
}
}
private void SignInUserResponse(Intent data)
{
try
{
var response =
AuthenticatorAssertionResponse.DeserializeFromBytes(
data.GetByteArrayExtra(Fido.Fido2KeyResponseExtra));
var responseJson = JsonConvert.SerializeObject(new Fido2AuthenticationChallengeRequest
{
Id = CoreHelpers.Base64UrlEncode(response.GetKeyHandle()),
RawId = CoreHelpers.Base64UrlEncode(response.GetKeyHandle()),
Type = "public-key",
Response = new Fido2AssertionResponse
{
AuthenticatorData = CoreHelpers.Base64UrlEncode(response.GetAuthenticatorData()),
ClientDataJson = CoreHelpers.Base64UrlEncode(response.GetClientDataJSON()),
Signature = CoreHelpers.Base64UrlEncode(response.GetSignature()),
UserHandle = (response.GetUserHandle() != null
? CoreHelpers.Base64UrlEncode(response.GetUserHandle()) : null),
},
Extensions = null
}
);
Device.BeginInvokeOnMainThread(() => ((MainActivity)_activity).Fido2Submission(responseJson));
}
catch (System.Exception e)
{
Log.Error(_tag_log, e.Message);
_platformUtilsService.ShowDialogAsync(_i18nService.T("Fido2SomethingWentWrong"),
_i18nService.T("Fido2Title"));
}
finally
{
Log.Info(_tag_log, "SignInUserResponse() -> finally()");
}
}
public void HandleErrorCode(byte[] errorExtra)
{
var error = AuthenticatorErrorResponse.DeserializeFromBytes(errorExtra);
if (error.ErrorMessage.Length > 0)
{
Log.Info(_tag_log, error.ErrorMessage);
}
string message = "";
if (error.ErrorCode == ErrorCode.AbortErr)
{
message = "Fido2AbortError";
}
else if (error.ErrorCode == ErrorCode.TimeoutErr)
{
message = "Fido2TimeoutError";
}
else if (error.ErrorCode == ErrorCode.AttestationNotPrivateErr)
{
message = "Fido2PrivacyError";
}
else if (error.ErrorCode == ErrorCode.ConstraintErr)
{
message = "Fido2SomethingWentWrong";
}
else if (error.ErrorCode == ErrorCode.DataErr)
{
message = "Fido2ServerDataFail";
}
else if (error.ErrorCode == ErrorCode.EncodingErr)
{
message = "Fido2SomethingWentWrong";
}
else if (error.ErrorCode == ErrorCode.InvalidStateErr)
{
message = "Fido2SomethingWentWrong";
}
else if (error.ErrorCode == ErrorCode.NetworkErr)
{
message = "Fido2NetworkFail";
}
else if (error.ErrorCode == ErrorCode.NotAllowedErr)
{
message = "Fido2NoPermission";
}
else if (error.ErrorCode == ErrorCode.NotSupportedErr)
{
message = "Fido2NotSupportedError";
}
else if (error.ErrorCode == ErrorCode.SecurityErr)
{
message = "Fido2SecurityError";
}
else if (error.ErrorCode == ErrorCode.UnknownErr)
{
message = "Fido2SomethingWentWrong";
}
else
{
message = "Fido2SomethingWentWrong";
}
_platformUtilsService.ShowDialogAsync(_i18nService.T(message), _i18nService.T("Fido2Title"));
}
}
}
#endif

View File

@@ -9,6 +9,7 @@ using Bit.Core.Utilities;
using Bit.Core.Abstractions;
using System.IO;
using System;
using System.Collections.Generic;
using Android.Content;
using Bit.Droid.Utilities;
using Bit.Droid.Receivers;
@@ -17,7 +18,11 @@ using Bit.Core.Enums;
using Android.Nfc;
using Bit.App.Utilities;
using System.Threading.Tasks;
using Android.Util;
using AndroidX.Core.Content;
#if !FDROID
using Bit.Droid.Fido2System;
#endif
using ZXing.Net.Mobile.Android;
namespace Bit.Droid
@@ -42,7 +47,10 @@ namespace Bit.Droid
@"text/*"
})]
[Register("com.x8bit.bitwarden.MainActivity")]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity,
Android.Gms.Tasks.IOnSuccessListener,
Android.Gms.Tasks.IOnCompleteListener,
Android.Gms.Tasks.IOnFailureListener
{
private IDeviceActionService _deviceActionService;
private IMessagingService _messagingService;
@@ -57,6 +65,7 @@ namespace Bit.Droid
private string _activityKey = $"{nameof(MainActivity)}_{Java.Lang.JavaSystem.CurrentTimeMillis().ToString()}";
private Java.Util.Regex.Pattern _otpPattern =
Java.Util.Regex.Pattern.Compile("^.*?([cbdefghijklnrtuv]{32,64})$");
private string _fidoDataJson;
protected override void OnCreate(Bundle savedInstanceState)
{
@@ -91,6 +100,7 @@ namespace Bit.Droid
#if !FDROID
var appCenterHelper = new AppCenterHelper(_appIdService, _userService);
var appCenterTask = appCenterHelper.InitAsync();
Fido2Service.INSTANCE.Start(this);
#endif
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
@@ -112,6 +122,14 @@ namespace Bit.Droid
{
Xamarin.Forms.Device.BeginInvokeOnMainThread(() => Finish());
}
else if (message.Command == "listenFido2")
{
ListenFido2((Dictionary<string, object>)message.Data);
}
else if (message.Command == "listenFido2TryAgain")
{
ListenFido2();
}
else if (message.Command == "listenYubiKeyOTP")
{
ListenYubiKey((bool)message.Data);
@@ -149,7 +167,9 @@ namespace Bit.Droid
}
catch { }
}
var setRestrictions = AndroidHelpers.SetPreconfiguredRestrictionSettingsAsync(this);
AndroidHelpers.SetPreconfiguredRestrictionSettingsAsync(this)
.GetAwaiter()
.GetResult();
}
protected override void OnNewIntent(Intent intent)
@@ -258,6 +278,34 @@ namespace Bit.Droid
return;
}
}
else if (resultCode == Result.Ok &&
Enum.IsDefined(typeof(Fido2CodesTypes), requestCode))
{
#if !FDROID
Fido2Service.INSTANCE.OnActivityResult(requestCode, resultCode, data);
#endif
}
}
public void OnSuccess(Java.Lang.Object result)
{
#if !FDROID
Fido2Service.INSTANCE.OnSuccess(result);
#endif
}
public void OnComplete(Android.Gms.Tasks.Task task)
{
#if !FDROID
Fido2Service.INSTANCE.OnComplete(task);
#endif
}
public void OnFailure(Java.Lang.Exception e)
{
#if !FDROID
Fido2Service.INSTANCE.OnFailure(e);
#endif
}
protected override void OnDestroy()
@@ -266,6 +314,41 @@ namespace Bit.Droid
_broadcasterService.Unsubscribe(_activityKey);
}
private void ListenFido2(Dictionary<string, object> data = null)
{
if (!_deviceActionService.SupportsFido2())
{
return;
}
#if !FDROID
RunOnUiThread(async () =>
{
try
{
if (data != null)
{
_fidoDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(data);
await Fido2Service.INSTANCE.SignInUserRequestAsync(_fidoDataJson);
}
else
{
await Fido2Service.INSTANCE.SignInUserRequestAsync(_fidoDataJson);
}
}
catch (Exception e)
{
Log.Error(Fido2Service._tag_log, e.Message);
}
});
#endif
}
public void Fido2Submission(string token)
{
_messagingService.Send("gotFido2Token", token);
}
private void ListenYubiKey(bool listen)
{
if (!_deviceActionService.SupportsNfc())

View File

@@ -3,7 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="1"
android:versionName="2.11.3"
android:versionName="2.12.0"
android:installLocation="internalOnly"
package="com.x8bit.bitwarden">

View File

@@ -233,4 +233,7 @@
<compatibility-package
android:name="org.ungoogled.chromium.stable"
android:maxLongVersionCode="10000000000"/>
<compatibility-package
android:name="us.spotco.fennec_dos"
android:maxLongVersionCode="10000000000"/>
</autofill-service>

View File

@@ -776,6 +776,17 @@ namespace Bit.Droid.Services
_messagingService.Send("finishMainActivity");
}
public bool SupportsFido2()
{
#if !FDROID
if ((int)Build.VERSION.SdkInt >= 21)
{
return true;
}
#endif
return false;
}
private bool DeleteDir(Java.IO.File dir)
{
if (dir != null && dir.IsDirectory)

View File

@@ -45,5 +45,6 @@ namespace Bit.App.Abstractions
bool UsingDarkTheme();
long GetActiveTime();
void CloseMainApp();
bool SupportsFido2();
}
}

View File

@@ -80,7 +80,7 @@
VerticalOptions="Center"
StyleClass="list-title-icon"
Margin="5, 0, 0, 0"
Text="&#xf1e0;"
Text="&#xf1b2;"
IsVisible="{Binding Cipher.Shared, Mode=OneTime}"
AutomationProperties.IsInAccessibleTree="True"
AutomationProperties.Name="{u:I18n Shared}" />

View File

@@ -13,7 +13,7 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Save}" Clicked="Submit_Clicked" />
</ContentPage.ToolbarItems>

View File

@@ -13,7 +13,7 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Submit}" Clicked="Submit_Clicked" />
</ContentPage.ToolbarItems>

View File

@@ -16,6 +16,8 @@ namespace Bit.App.Pages
private readonly LoginPageViewModel _vm;
private readonly AppOptions _appOptions;
private bool _inputFocused;
public LoginPage(string email = null, AppOptions appOptions = null)
{
_storageService = ServiceContainer.Resolve<IStorageService>("storageService");
@@ -58,13 +60,10 @@ namespace Bit.App.Pages
{
base.OnAppearing();
await _vm.InitAsync();
if (string.IsNullOrWhiteSpace(_vm.Email))
if (!_inputFocused)
{
RequestFocus(_email);
}
else
{
RequestFocus(_masterPassword);
RequestFocus(string.IsNullOrWhiteSpace(_vm.Email) ? _email : _masterPassword);
_inputFocused = true;
}
}

View File

@@ -8,10 +8,15 @@ using System;
using System.Threading.Tasks;
using Bit.App.Utilities;
using Xamarin.Forms;
using Newtonsoft.Json;
using System.Text;
using Xamarin.Essentials;
using System.Text.RegularExpressions;
using Bit.Core.Services;
namespace Bit.App.Pages
{
public class LoginPageViewModel : BaseViewModel
public class LoginPageViewModel : CaptchaProtectedViewModel
{
private const string Keys_RememberedEmail = "rememberedEmail";
private const string Keys_RememberEmail = "rememberEmail";
@@ -22,6 +27,8 @@ namespace Bit.App.Pages
private readonly IStorageService _storageService;
private readonly IPlatformUtilsService _platformUtilsService;
private readonly IStateService _stateService;
private readonly IEnvironmentService _environmentService;
private readonly II18nService _i18nService;
private bool _showPassword;
private string _email;
@@ -35,6 +42,8 @@ namespace Bit.App.Pages
_storageService = ServiceContainer.Resolve<IStorageService>("storageService");
_platformUtilsService = ServiceContainer.Resolve<IPlatformUtilsService>("platformUtilsService");
_stateService = ServiceContainer.Resolve<IStateService>("stateService");
_environmentService = ServiceContainer.Resolve<IEnvironmentService>("environmentService");
_i18nService = ServiceContainer.Resolve<II18nService>("i18nService");
PageTitle = AppResources.Bitwarden;
TogglePasswordCommand = new Command(TogglePassword);
@@ -70,7 +79,12 @@ namespace Bit.App.Pages
public Action StartTwoFactorAction { get; set; }
public Action LogInSuccessAction { get; set; }
public Action CloseAction { get; set; }
protected override II18nService i18nService => _i18nService;
protected override IEnvironmentService environmentService => _environmentService;
protected override IDeviceActionService deviceActionService => _deviceActionService;
protected override IPlatformUtilsService platformUtilsService => _platformUtilsService;
public async Task InitAsync()
{
if (string.IsNullOrWhiteSpace(Email))
@@ -81,7 +95,7 @@ namespace Bit.App.Pages
RememberEmail = rememberEmail.GetValueOrDefault(true);
}
public async Task LogInAsync()
public async Task LogInAsync(bool showLoading = true)
{
if (Xamarin.Essentials.Connectivity.NetworkAccess == Xamarin.Essentials.NetworkAccess.None)
{
@@ -115,9 +129,12 @@ namespace Bit.App.Pages
ShowPassword = false;
try
{
await _deviceActionService.ShowLoadingAsync(AppResources.LoggingIn);
var response = await _authService.LogInAsync(Email, MasterPassword);
MasterPassword = string.Empty;
if (showLoading)
{
await _deviceActionService.ShowLoadingAsync(AppResources.LoggingIn);
}
var response = await _authService.LogInAsync(Email, MasterPassword, _captchaToken);
if (RememberEmail)
{
await _storageService.SaveAsync(Keys_RememberedEmail, Email);
@@ -127,7 +144,21 @@ namespace Bit.App.Pages
await _storageService.RemoveAsync(Keys_RememberedEmail);
}
await AppHelpers.ResetInvalidUnlockAttemptsAsync();
if (response.CaptchaNeeded)
{
if (await HandleCaptchaAsync(response.CaptchaSiteKey))
{
await LogInAsync(false);
_captchaToken = null;
}
return;
}
MasterPassword = string.Empty;
_captchaToken = null;
await _deviceActionService.HideLoadingAsync();
if (response.TwoFactor)
{
StartTwoFactorAction?.Invoke();
@@ -142,6 +173,8 @@ namespace Bit.App.Pages
}
catch (ApiException e)
{
_captchaToken = null;
MasterPassword = string.Empty;
await _deviceActionService.HideLoadingAsync();
if (e?.Error != null)
{

View File

@@ -13,7 +13,7 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
</ContentPage.ToolbarItems>
<ScrollView>

View File

@@ -123,43 +123,28 @@ namespace Bit.App.Pages
"domain_hint=" + Uri.EscapeDataString(OrgIdentifier);
WebAuthenticatorResult authResult = null;
bool cancelled = false;
try
{
authResult = await WebAuthenticator.AuthenticateAsync(new Uri(url),
new Uri(redirectUri));
}
catch (TaskCanceledException taskCanceledException)
catch (TaskCanceledException)
{
// user canceled
await _deviceActionService.HideLoadingAsync();
return;
}
var code = GetResultCode(authResult, state);
if (!string.IsNullOrEmpty(code))
{
await LogIn(code, codeVerifier, redirectUri);
}
else
{
await _deviceActionService.HideLoadingAsync();
cancelled = true;
}
catch (Exception e)
{
// WebAuthenticator throws NSErrorException if iOS flow is cancelled - by setting cancelled to true
// here we maintain the appearance of a clean cancellation (we don't want to do this across the board
// because we still want to present legitimate errors). If/when this is fixed, we can remove this
// particular catch block (catching taskCanceledException above must remain)
// https://github.com/xamarin/Essentials/issues/1240
if (Device.RuntimePlatform == Device.iOS)
{
await _deviceActionService.HideLoadingAsync();
cancelled = true;
}
}
if (!cancelled)
{
var code = GetResultCode(authResult, state);
if (!string.IsNullOrEmpty(code))
{
await LogIn(code, codeVerifier, redirectUri);
}
else
{
await _deviceActionService.HideLoadingAsync();
await _platformUtilsService.ShowDialogAsync(AppResources.LoginSsoError,
AppResources.AnErrorHasOccurred);
}
await _platformUtilsService.ShowDialogAsync(AppResources.LoginSsoError,
AppResources.AnErrorHasOccurred);
}
}

View File

@@ -20,7 +20,7 @@
</ContentPage.Resources>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Submit}" Clicked="Submit_Clicked" />
</ContentPage.ToolbarItems>

View File

@@ -11,6 +11,8 @@ namespace Bit.App.Pages
private readonly IMessagingService _messagingService;
private readonly RegisterPageViewModel _vm;
private bool _inputFocused;
public RegisterPage(HomePage homePage)
{
_messagingService = ServiceContainer.Resolve<IMessagingService>("messagingService");
@@ -45,7 +47,11 @@ namespace Bit.App.Pages
protected override void OnAppearing()
{
base.OnAppearing();
RequestFocus(_email);
if (!_inputFocused)
{
RequestFocus(_email);
_inputFocused = true;
}
}
private async void Submit_Clicked(object sender, EventArgs e)

View File

@@ -12,9 +12,11 @@ using Xamarin.Forms;
namespace Bit.App.Pages
{
public class RegisterPageViewModel : BaseViewModel
public class RegisterPageViewModel : CaptchaProtectedViewModel
{
private readonly IDeviceActionService _deviceActionService;
private readonly II18nService _i18nService;
private readonly IEnvironmentService _environmentService;
private readonly IApiService _apiService;
private readonly ICryptoService _cryptoService;
private readonly IPlatformUtilsService _platformUtilsService;
@@ -27,6 +29,8 @@ namespace Bit.App.Pages
_apiService = ServiceContainer.Resolve<IApiService>("apiService");
_cryptoService = ServiceContainer.Resolve<ICryptoService>("cryptoService");
_platformUtilsService = ServiceContainer.Resolve<IPlatformUtilsService>("platformUtilsService");
_i18nService = ServiceContainer.Resolve<II18nService>("i18nService");
_environmentService = ServiceContainer.Resolve<IEnvironmentService>("environmentService");
PageTitle = AppResources.CreateAccount;
TogglePasswordCommand = new Command(TogglePassword);
@@ -76,7 +80,12 @@ namespace Bit.App.Pages
public Action RegistrationSuccess { get; set; }
public Action CloseAction { get; set; }
public async Task SubmitAsync()
protected override II18nService i18nService => _i18nService;
protected override IEnvironmentService environmentService => _environmentService;
protected override IDeviceActionService deviceActionService => _deviceActionService;
protected override IPlatformUtilsService platformUtilsService => _platformUtilsService;
public async Task SubmitAsync(bool showLoading = true)
{
if (Xamarin.Essentials.Connectivity.NetworkAccess == Xamarin.Essentials.NetworkAccess.None)
{
@@ -123,6 +132,11 @@ namespace Bit.App.Pages
}
// TODO: Password strength check?
if (showLoading)
{
await _deviceActionService.ShowLoadingAsync(AppResources.CreatingAccount);
}
Name = string.IsNullOrWhiteSpace(Name) ? null : Name;
Email = Email.Trim().ToLower();
@@ -145,13 +159,13 @@ namespace Bit.App.Pages
{
PublicKey = keys.Item1,
EncryptedPrivateKey = keys.Item2.EncryptedString
}
},
CaptchaResponse = _captchaToken,
};
// TODO: org invite?
try
{
await _deviceActionService.ShowLoadingAsync(AppResources.CreatingAccount);
await _apiService.PostRegisterAsync(request);
await _deviceActionService.HideLoadingAsync();
_platformUtilsService.ShowToast("success", null, AppResources.AccountCreated,
@@ -163,6 +177,15 @@ namespace Bit.App.Pages
}
catch (ApiException e)
{
if (e?.Error != null && e.Error.CaptchaRequired)
{
if (await HandleCaptchaAsync(e.Error.CaptchaSiteKey))
{
await SubmitAsync(false);
_captchaToken = null;
}
return;
}
await _deviceActionService.HideLoadingAsync();
if (e?.Error != null)
{

View File

@@ -102,6 +102,30 @@
</StackLayout>
</StackLayout>
</StackLayout>
<StackLayout Spacing="20" Padding="0" IsVisible="{Binding Fido2Method, Mode=OneWay}">
<Label
Text="{u:I18n Fido2Instruction}"
Margin="10, 20, 10, 0"
HorizontalTextAlignment="Center" />
<Image
Source="yubikey.png"
Margin="10, 0"
WidthRequest="266"
HeightRequest="160"
HorizontalOptions="Center" />
<StackLayout StyleClass="box">
<StackLayout StyleClass="box-row, box-row-switch">
<Label
Text="{u:I18n RememberMe}"
StyleClass="box-label-regular"
HorizontalOptions="StartAndExpand" />
<Switch
IsToggled="{Binding Remember}"
StyleClass="box-value"
HorizontalOptions="End" />
</StackLayout>
</StackLayout>
</StackLayout>
<StackLayout Spacing="0" Padding="0" IsVisible="{Binding DuoMethod, Mode=OneWay}"
VerticalOptions="FillAndExpand">
<controls:HybridWebView

View File

@@ -75,6 +75,18 @@ namespace Bit.App.Pages
});
}
}
else if (message.Command == "gotFido2Token")
{
var token = (string)message.Data;
if (!string.IsNullOrWhiteSpace(token))
{
Device.BeginInvokeOnMainThread(async () =>
{
_vm.Token = token;
await _vm.SubmitAsync();
});
}
}
else if (message.Command == "resumeYubiKey")
{
if (_vm.YubikeyMethod)
@@ -168,11 +180,22 @@ namespace Bit.App.Pages
}
}
private void TryAgain_Clicked(object sender, EventArgs e)
private async void TryAgain_Clicked(object sender, EventArgs e)
{
if (DoOnce())
{
if (_vm.YubikeyMethod)
if (_vm.Fido2Method)
{
if (Device.RuntimePlatform == Device.Android)
{
_messagingService.Send("listenFido2TryAgain", true);
}
else
{
await _vm.Fido2AuthenticateAsync();
}
}
else if (_vm.YubikeyMethod)
{
_messagingService.Send("listenYubiKeyOTP", true);
}

View File

@@ -7,9 +7,15 @@ using Bit.Core.Exceptions;
using Bit.Core.Models.Request;
using Bit.Core.Utilities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Bit.App.Utilities;
using Newtonsoft.Json;
using Xamarin.Essentials;
using Xamarin.Forms;
namespace Bit.App.Pages
@@ -27,7 +33,6 @@ namespace Bit.App.Pages
private readonly IBroadcasterService _broadcasterService;
private readonly IStateService _stateService;
private bool _u2fSupported = false;
private TwoFactorProviderType? _selectedProviderType;
private string _totpInstruction;
private string _webVaultUrl = "https://vault.bitwarden.com";
@@ -65,6 +70,8 @@ namespace Bit.App.Pages
public bool DuoMethod => SelectedProviderType == TwoFactorProviderType.Duo ||
SelectedProviderType == TwoFactorProviderType.OrganizationDuo;
public bool Fido2Method => SelectedProviderType == TwoFactorProviderType.Fido2WebAuthn;
public bool YubikeyMethod => SelectedProviderType == TwoFactorProviderType.YubiKey;
public bool AuthenticatorMethod => SelectedProviderType == TwoFactorProviderType.Authenticator;
@@ -73,7 +80,7 @@ namespace Bit.App.Pages
public bool TotpMethod => AuthenticatorMethod || EmailMethod;
public bool ShowTryAgain => YubikeyMethod && Device.RuntimePlatform == Device.iOS;
public bool ShowTryAgain => (YubikeyMethod && Device.RuntimePlatform == Device.iOS) || Fido2Method;
public bool ShowContinue
{
@@ -97,6 +104,7 @@ namespace Bit.App.Pages
{
nameof(EmailMethod),
nameof(DuoMethod),
nameof(Fido2Method),
nameof(YubikeyMethod),
nameof(AuthenticatorMethod),
nameof(TotpMethod),
@@ -128,10 +136,7 @@ namespace Bit.App.Pages
_webVaultUrl = _environmentService.WebVaultUrl;
}
// TODO: init U2F
_u2fSupported = false;
SelectedProviderType = _authService.GetDefaultTwoFactorProvider(_u2fSupported);
SelectedProviderType = _authService.GetDefaultTwoFactorProvider(_platformUtilsService.SupportsFido2());
Load();
}
@@ -147,8 +152,15 @@ namespace Bit.App.Pages
var providerData = _authService.TwoFactorProvidersData[SelectedProviderType.Value];
switch (SelectedProviderType.Value)
{
case TwoFactorProviderType.U2f:
// TODO
case TwoFactorProviderType.Fido2WebAuthn:
if (Device.RuntimePlatform == Device.Android)
{
_messagingService.Send("listenFido2", providerData);
}
else
{
Fido2AuthenticateAsync(providerData);
}
break;
case TwoFactorProviderType.YubiKey:
_messagingService.Send("listenYubiKeyOTP", true);
@@ -183,10 +195,73 @@ namespace Bit.App.Pages
{
_messagingService.Send("listenYubiKeyOTP", false);
}
ShowContinue = !(SelectedProviderType == null || DuoMethod);
ShowContinue = !(SelectedProviderType == null || DuoMethod || Fido2Method);
}
public async Task SubmitAsync()
public async Task Fido2AuthenticateAsync(Dictionary<string, object> providerData = null)
{
await _deviceActionService.ShowLoadingAsync(AppResources.Validating);
if (providerData == null)
{
providerData = _authService.TwoFactorProvidersData[TwoFactorProviderType.Fido2WebAuthn];
}
var callbackUri = "bitwarden://webauthn-callback";
var data = AppHelpers.EncodeDataParameter(new
{
callbackUri = callbackUri,
data = JsonConvert.SerializeObject(providerData),
btnText = AppResources.Fido2AuthenticateWebAuthn,
});
var url = _webVaultUrl + "/webauthn-mobile-connector.html?" + "data=" + data +
"&parent=" + Uri.EscapeDataString(callbackUri) + "&v=2";
WebAuthenticatorResult authResult = null;
try
{
var options = new WebAuthenticatorOptions
{
Url = new Uri(url),
CallbackUrl = new Uri(callbackUri),
PrefersEphemeralWebBrowserSession = true,
};
authResult = await WebAuthenticator.AuthenticateAsync(options);
}
catch (TaskCanceledException)
{
// user canceled
await _deviceActionService.HideLoadingAsync();
return;
}
string response = null;
if (authResult != null && authResult.Properties.TryGetValue("data", out var resultData))
{
response = Uri.UnescapeDataString(resultData);
}
if (!string.IsNullOrWhiteSpace(response))
{
Token = response;
await SubmitAsync(false);
}
else
{
await _deviceActionService.HideLoadingAsync();
if (authResult != null && authResult.Properties.TryGetValue("error", out var resultError))
{
await _platformUtilsService.ShowDialogAsync(resultError, AppResources.AnErrorHasOccurred);
}
else
{
await _platformUtilsService.ShowDialogAsync(AppResources.Fido2SomethingWentWrong,
AppResources.AnErrorHasOccurred);
}
}
}
public async Task SubmitAsync(bool showLoading = true)
{
if (SelectedProviderType == null)
{
@@ -213,7 +288,10 @@ namespace Bit.App.Pages
try
{
await _deviceActionService.ShowLoadingAsync(AppResources.Validating);
if (showLoading)
{
await _deviceActionService.ShowLoadingAsync(AppResources.Validating);
}
var result = await _authService.LogInTwoFactorAsync(SelectedProviderType.Value, Token, Remember);
var task = Task.Run(() => _syncService.FullSyncAsync(true));
await _deviceActionService.HideLoadingAsync();

View File

@@ -0,0 +1,64 @@
using System;
using System.Threading.Tasks;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Bit.App.Utilities;
using Bit.Core.Abstractions;
using Xamarin.Essentials;
namespace Bit.App.Pages
{
public abstract class CaptchaProtectedViewModel : BaseViewModel
{
protected abstract II18nService i18nService { get; }
protected abstract IEnvironmentService environmentService { get; }
protected abstract IDeviceActionService deviceActionService { get; }
protected abstract IPlatformUtilsService platformUtilsService { get; }
protected string _captchaToken = null;
protected async Task<bool> HandleCaptchaAsync(string CaptchaSiteKey)
{
var callbackUri = "bitwarden://captcha-callback";
var data = AppHelpers.EncodeDataParameter(new
{
siteKey = CaptchaSiteKey,
locale = i18nService.Culture.TwoLetterISOLanguageName,
callbackUri = callbackUri,
captchaRequiredText = AppResources.CaptchaRequired,
});
var url = environmentService.GetWebVaultUrl() + "/captcha-mobile-connector.html?" + "data=" + data +
"&parent=" + Uri.EscapeDataString(callbackUri) + "&v=1";
WebAuthenticatorResult authResult = null;
bool cancelled = false;
try
{
var options = new WebAuthenticatorOptions
{
Url = new Uri(url),
CallbackUrl = new Uri(callbackUri),
PrefersEphemeralWebBrowserSession = true,
};
authResult = await WebAuthenticator.AuthenticateAsync(options);
}
catch (TaskCanceledException)
{
await deviceActionService.HideLoadingAsync();
cancelled = true;
}
if (cancelled == false && authResult != null &&
authResult.Properties.TryGetValue("token", out _captchaToken))
{
return true;
}
else
{
await platformUtilsService.ShowDialogAsync(AppResources.CaptchaFailed,
AppResources.CaptchaRequired);
return false;
}
}
}
}

View File

@@ -15,7 +15,7 @@
<ContentPage.Resources>
<ResourceDictionary>
<u:InverseBoolConverter x:Key="inverseBool" />
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
x:Name="_closeItem" x:Key="closeItem" />
<ToolbarItem Text="{u:I18n Select}"
Clicked="Select_Clicked"

View File

@@ -23,7 +23,7 @@
<u:InverseBoolConverter x:Key="inverseBool" />
<u:IsNullConverter x:Key="null" />
<u:IsNotNullConverter x:Key="notNull" />
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
x:Key="closeItem" x:Name="_closeItem" />
<ToolbarItem Icon="more_vert.png" Clicked="More_Clicked" Order="Primary" x:Name="_moreItem"
x:Key="moreItem"
@@ -137,8 +137,6 @@
AutomationProperties.Name="{u:I18n File}"
Grid.Column="0">
<VisualStateManager.VisualStateGroups>
<!-- Rider users, if the x:Name values below are red, it's a known issue: -->
<!-- https://youtrack.jetbrains.com/issue/RSRP-479388 -->
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
@@ -163,8 +161,6 @@
AutomationProperties.Name="{u:I18n Text}"
Grid.Column="1">
<VisualStateManager.VisualStateGroups>
<!-- Rider users, if the x:Name values below are red, it's a known issue: -->
<!-- https://youtrack.jetbrains.com/issue/RSRP-479388 -->
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>

View File

@@ -21,7 +21,7 @@
</ContentPage.Resources>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" />
</ContentPage.ToolbarItems>
<ScrollView>

View File

@@ -13,7 +13,7 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Save}" Clicked="Save_Clicked" Order="Primary" />
<ToolbarItem Text="{u:I18n Delete}"
Clicked="Delete_Clicked"

View File

@@ -103,7 +103,7 @@ namespace Bit.App.Pages
{
await Navigation.PushModalAsync(new NavigationPage(new ExportVaultPage()));
}
else if (item.Name == AppResources.ShareVault)
else if (item.Name == AppResources.LearnOrg)
{
await _vm.ShareAsync();
}

View File

@@ -150,8 +150,8 @@ namespace Bit.App.Pages
public async Task ShareAsync()
{
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.ShareVaultConfirmation,
AppResources.ShareVault, AppResources.Yes, AppResources.Cancel);
var confirmed = await _platformUtilsService.ShowDialogAsync(AppResources.LearnOrgConfirmation,
AppResources.LearnOrg, AppResources.Yes, AppResources.Cancel);
if (confirmed)
{
_platformUtilsService.LaunchUri("https://help.bitwarden.com/article/what-is-an-organization/");
@@ -393,7 +393,7 @@ namespace Bit.App.Pages
};
if (IncludeLinksWithSubscriptionInfo())
{
toolsItems.Add(new SettingsPageListItem { Name = AppResources.ShareVault });
toolsItems.Add(new SettingsPageListItem { Name = AppResources.LearnOrg });
toolsItems.Add(new SettingsPageListItem { Name = AppResources.WebVault });
}
var otherItems = new List<SettingsPageListItem>

View File

@@ -23,14 +23,14 @@
<u:InverseBoolConverter x:Key="inverseBool" />
<u:StringHasValueConverter x:Key="stringHasValue" />
<u:IsNotNullConverter x:Key="notNull" />
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1"
x:Key="closeItem" x:Name="_closeItem" />
<ToolbarItem Text="{u:I18n Collections}"
x:Key="collectionsItem"
x:Name="_collectionsItem"
Clicked="Collections_Clicked"
Order="Secondary" />
<ToolbarItem Text="{u:I18n Share}"
<ToolbarItem Text="{u:I18n MoveToOrganization}"
x:Key="shareItem"
x:Name="_shareItem"
Clicked="Share_Clicked"

View File

@@ -284,7 +284,7 @@ namespace Bit.App.Pages
var options = new List<string> { AppResources.Attachments };
if (_vm.EditMode)
{
options.Add(_vm.Cipher.OrganizationId == null ? AppResources.Share : AppResources.Collections);
options.Add(_vm.Cipher.OrganizationId == null ? AppResources.MoveToOrganization : AppResources.Collections);
}
var selection = await DisplayActionSheet(AppResources.Options, AppResources.Cancel,
(_vm.EditMode && !_vm.CloneMode) ? AppResources.Delete : null, options.ToArray());
@@ -305,7 +305,7 @@ namespace Bit.App.Pages
var page = new CollectionsPage(_vm.CipherId);
await Navigation.PushModalAsync(new Xamarin.Forms.NavigationPage(page));
}
else if (selection == AppResources.Share)
else if (selection == AppResources.MoveToOrganization)
{
var page = new SharePage(_vm.CipherId);
await Navigation.PushModalAsync(new Xamarin.Forms.NavigationPage(page));

View File

@@ -14,7 +14,7 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Save}" Clicked="Save_Clicked" />
</ContentPage.ToolbarItems>

View File

@@ -10,7 +10,7 @@
Title="{u:I18n ScanQrTitle}">
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
</ContentPage.ToolbarItems>
<Grid

View File

@@ -14,8 +14,8 @@
</ContentPage.BindingContext>
<ContentPage.ToolbarItems>
<ToolbarItem Text="{u:I18n Close}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Save}" Clicked="Save_Clicked" />
<ToolbarItem Text="{u:I18n Cancel}" Clicked="Close_Clicked" Order="Primary" Priority="-1" />
<ToolbarItem Text="{u:I18n Move}" Clicked="Save_Clicked" />
</ContentPage.ToolbarItems>
<ContentPage.Resources>
@@ -46,7 +46,7 @@
StyleClass="box-value" />
</StackLayout>
<Label
Text="{u:I18n ShareDesc}"
Text="{u:I18n MoveToOrgDesc}"
StyleClass="box-footer-label" />
</StackLayout>
<StackLayout StyleClass="box"

View File

@@ -33,7 +33,7 @@ namespace Bit.App.Pages
_collectionService = ServiceContainer.Resolve<ICollectionService>("collectionService");
Collections = new ExtendedObservableCollection<CollectionViewModel>();
OrganizationOptions = new List<KeyValuePair<string, string>>();
PageTitle = AppResources.Share;
PageTitle = AppResources.MoveToOrganization;
}
public string CipherId { get; set; }
@@ -109,7 +109,9 @@ namespace Bit.App.Pages
await _deviceActionService.ShowLoadingAsync(AppResources.Saving);
await _cipherService.ShareWithServerAsync(cipherView, OrganizationId, checkedCollectionIds);
await _deviceActionService.HideLoadingAsync();
_platformUtilsService.ShowToast("success", null, AppResources.ItemShared);
var movedItemToOrgText = string.Format(AppResources.MovedItemToOrg, cipherView.Name,
(await _userService.GetOrganizationAsync(OrganizationId)).Name);
_platformUtilsService.ShowToast("success", null, movedItemToOrgText);
await Page.Navigation.PopModalAsync();
return true;
}

View File

@@ -25,7 +25,7 @@
x:Name="_collectionsItem"
Clicked="Collections_Clicked"
Order="Secondary" />
<ToolbarItem Text="{u:I18n Share}"
<ToolbarItem Text="{u:I18n MoveToOrganization}"
x:Key="shareItem"
x:Name="_shareItem"
Clicked="Share_Clicked"

View File

@@ -220,7 +220,7 @@ namespace Bit.App.Pages
if (_vm.Cipher.OrganizationId == null)
{
options.Add(AppResources.Clone);
options.Add(AppResources.Share);
options.Add(AppResources.MoveToOrganization);
}
else
{
@@ -252,7 +252,7 @@ namespace Bit.App.Pages
var page = new CollectionsPage(_vm.CipherId);
await Navigation.PushModalAsync(new NavigationPage(page));
}
else if (selection == AppResources.Share)
else if (selection == AppResources.MoveToOrganization)
{
var page = new SharePage(_vm.CipherId);
await Navigation.PushModalAsync(new NavigationPage(page));

View File

@@ -363,6 +363,12 @@ namespace Bit.App.Resources {
}
}
public static string Move {
get {
return ResourceManager.GetString("Move", resourceCulture);
}
}
public static string Saving {
get {
return ResourceManager.GetString("Saving", resourceCulture);
@@ -1257,9 +1263,9 @@ namespace Bit.App.Resources {
}
}
public static string ShareVault {
public static string LearnOrg {
get {
return ResourceManager.GetString("ShareVault", resourceCulture);
return ResourceManager.GetString("LearnOrg", resourceCulture);
}
}
@@ -2397,6 +2403,12 @@ namespace Bit.App.Resources {
}
}
public static string MovedItemToOrg {
get {
return ResourceManager.GetString("MovedItemToOrg", resourceCulture);
}
}
public static string ItemShared {
get {
return ResourceManager.GetString("ItemShared", resourceCulture);
@@ -2421,15 +2433,21 @@ namespace Bit.App.Resources {
}
}
public static string MoveToOrganization {
get {
return ResourceManager.GetString("MoveToOrganization", resourceCulture);
}
}
public static string NoOrgsToList {
get {
return ResourceManager.GetString("NoOrgsToList", resourceCulture);
}
}
public static string ShareDesc {
public static string MoveToOrgDesc {
get {
return ResourceManager.GetString("ShareDesc", resourceCulture);
return ResourceManager.GetString("MoveToOrgDesc", resourceCulture);
}
}
@@ -2481,9 +2499,9 @@ namespace Bit.App.Resources {
}
}
public static string ShareVaultConfirmation {
public static string LearnOrgConfirmation {
get {
return ResourceManager.GetString("ShareVaultConfirmation", resourceCulture);
return ResourceManager.GetString("LearnOrgConfirmation", resourceCulture);
}
}
@@ -3512,25 +3530,113 @@ namespace Bit.App.Resources {
return ResourceManager.GetString("SendFileEmailVerificationRequired", resourceCulture);
}
}
public static string PasswordPrompt
{
get
{
public static string PasswordPrompt {
get {
return ResourceManager.GetString("PasswordPrompt", resourceCulture);
}
}
public static string PasswordConfirmation
{
get
{
public static string PasswordConfirmation {
get {
return ResourceManager.GetString("PasswordConfirmation", resourceCulture);
}
}public static string PasswordConfirmationDesc
{
get
{
}
public static string PasswordConfirmationDesc {
get {
return ResourceManager.GetString("PasswordConfirmationDesc", resourceCulture);
}
}
public static string CaptchaRequired {
get {
return ResourceManager.GetString("CaptchaRequired", resourceCulture);
}
}
public static string CaptchaFailed {
get {
return ResourceManager.GetString("CaptchaFailed", resourceCulture);
}
}
public static string Fido2Title {
get {
return ResourceManager.GetString("Fido2Title", resourceCulture);
}
}
public static string Fido2Instruction {
get {
return ResourceManager.GetString("Fido2Instruction", resourceCulture);
}
}
public static string Fido2Desc {
get {
return ResourceManager.GetString("Fido2Desc", resourceCulture);
}
}
public static string Fido2AuthenticateWebAuthn {
get {
return ResourceManager.GetString("Fido2AuthenticateWebAuthn", resourceCulture);
}
}
public static string Fido2SomethingWentWrong {
get {
return ResourceManager.GetString("Fido2SomethingWentWrong", resourceCulture);
}
}
public static string Fido2AbortError {
get {
return ResourceManager.GetString("Fido2AbortError", resourceCulture);
}
}
public static string Fido2NetworkFail {
get {
return ResourceManager.GetString("Fido2NetworkFail", resourceCulture);
}
}
public static string Fido2NoPermission {
get {
return ResourceManager.GetString("Fido2NoPermission", resourceCulture);
}
}
public static string Fido2NotSupportedError {
get {
return ResourceManager.GetString("Fido2NotSupportedError", resourceCulture);
}
}
public static string Fido2PrivacyError {
get {
return ResourceManager.GetString("Fido2PrivacyError", resourceCulture);
}
}
public static string Fido2SecurityError {
get {
return ResourceManager.GetString("Fido2SecurityError", resourceCulture);
}
}
public static string Fido2ServerDataFail {
get {
return ResourceManager.GetString("Fido2ServerDataFail", resourceCulture);
}
}
public static string Fido2TimeoutError {
get {
return ResourceManager.GetString("Fido2TimeoutError", resourceCulture);
}
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -604,7 +604,7 @@
<comment>Confirmation, like "Ok, I understand it"</comment>
</data>
<data name="OptionDefaults" xml:space="preserve">
<value>Налады па змаўчанні задаюцца з генератара пароляў асноўнай праграмы Bitwarden.</value>
<value>Прадвызначаныя налады вызначаюцца з генератара пароляў асноўнай праграмы Bitwarden.</value>
</data>
<data name="Options" xml:space="preserve">
<value>Параметры</value>
@@ -759,7 +759,7 @@
<value>Стан</value>
</data>
<data name="BitwardenAutofillServiceAlert2" xml:space="preserve">
<value>Самы просты спосаб дадаць новыя імёны карыстальінка ў ваша сховішча гэта служба аўтазапаўнення Bitwarden. Дадатковыя звесткі пра выкарыстанне службы аўтазапаўнення Bitwarden знаходзяцца ў раздзеле 'Налады'.</value>
<value>Самы просты спосаб дадаць новыя лагіны ў ваша сховішча - служба аўтазапаўнення Bitwarden. Дадатковыя звесткі пра выкарыстанне службы аўтазапаўнення Bitwarden можна знайсці ў раздзеле "Налады".</value>
</data>
<data name="Autofill" xml:space="preserve">
<value>Аўтазапаўненне</value>
@@ -1203,7 +1203,7 @@
<value>Асноўны дамен</value>
</data>
<data name="Default" xml:space="preserve">
<value>Па змаўчанні</value>
<value>Прадвызначана</value>
</data>
<data name="Exact" xml:space="preserve">
<value>Дакладна</value>
@@ -1487,11 +1487,11 @@
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>Выяўленне супадзення URI па змаўчанні</value>
<value>Прадвызначанае выяўленне супадзення URI</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
<value>Выберыце спосаб па змаўчанні, які выкарыстоўваецца пры вызначэнні адпаведнасці URI для ўліковых даных пры выкананні такіх дзеянняў, як аўтаматычнае запаўненне.</value>
<value>Выберыце прадвызначаны спосаб, які выкарыстоўваецца пры вызначэнні адпаведнасці URI для ўліковых даных пры выкананні такіх дзеянняў, як аўтаматычнае запаўненне.</value>
</data>
<data name="Theme" xml:space="preserve">
<value>Тэма</value>
@@ -1527,7 +1527,7 @@
<value>URI у чорным спісе</value>
</data>
<data name="BlacklistedUrisDescription" xml:space="preserve">
<value>Аўтазапаўненне не прапануецца для URI з чорнага спісу. Элементы гэтага спісу павінны быць раздзелены коскай. Напрыклад: "https://twitter.com, androidapp://com.twitter.android".</value>
<value>Аўтазапаўненне не будзе прапаноўвацца для URI з чорнага спіса. Элементы гэтага спіса трэба падзяляць коскай. Напрыклад: "https://twitter.com, androidapp://com.twitter.android".</value>
</data>
<data name="DisableSavePrompt" xml:space="preserve">
<value>Выключыць запыт на захаванне.</value>
@@ -1709,7 +1709,7 @@
<value>Часова немагчыма зайсці праз адзіны ўваход (SSO).</value>
</data>
<data name="SetMasterPassword" xml:space="preserve">
<value>Задаць асноўны пароль</value>
<value>Прызначыць асноўны пароль</value>
</data>
<data name="SetMasterPasswordSummary" xml:space="preserve">
<value>Для завяршэння ўваходу праз SSO, усталюйце галоўны пароль для доступу і абароны вашаго сховішча.</value>
@@ -1766,7 +1766,7 @@
<value>Выкарыстоўваць убудаванае аўтазапаўненне</value>
</data>
<data name="InlineAutofillDescription" xml:space="preserve">
<value>Выкарыстоўваць убудаванае аўтазапаўненне, калі выбраны спосаб уводу (клавіятура) яго падтрымлівае. Калі вашая канфігурацыя не падтрымліваецца (або гэты параметр адключаны), будзе выкарыстоўвацца аўтазапаўненне накладаннем па змаўчанні.</value>
<value>Выкарыстоўваць убудаванае аўтазапаўненне, калі выбраны спосаб уводу (клавіятура) яго падтрымлівае. Калі вашая канфігурацыя не падтрымліваецца (або гэты параметр адключаны), будзе выкарыстоўвацца прадвызначанае аўтазапаўненне.</value>
</data>
<data name="Accessibility" xml:space="preserve">
<value>Спецыяльныя магчымасці</value>
@@ -1802,55 +1802,55 @@
<value>An organization policy is affecting your ownership options.</value>
</data>
<data name="Send" xml:space="preserve">
<value>Send</value>
<value>Адпраўленне</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AllSends" xml:space="preserve">
<value>All Sends</value>
<value>Усе адпраўленні</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Sends" xml:space="preserve">
<value>Sends</value>
<value>Адпраўленні</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NameInfo" xml:space="preserve">
<value>A friendly name to describe this Send.</value>
<value>Зразумелая назва для апісання адпраўлення</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="TypeText" xml:space="preserve">
<value>Text</value>
<value>Тэкст</value>
</data>
<data name="TypeTextInfo" xml:space="preserve">
<value>The text you want to send.</value>
<value>Тэкст, які вы хочаце адправіць.</value>
</data>
<data name="HideTextByDefault" xml:space="preserve">
<value>When accessing the Send, hide the text by default</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="TypeFile" xml:space="preserve">
<value>File</value>
<value>Файл</value>
</data>
<data name="TypeFileInfo" xml:space="preserve">
<value>The file you want to send.</value>
<value>Файл, які вы хочаце адправіць.</value>
</data>
<data name="DeletionDate" xml:space="preserve">
<value>Deletion Date</value>
<value>Дата выдалення</value>
</data>
<data name="DeletionTime" xml:space="preserve">
<value>Deletion Time</value>
<value>Час выдалення</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>The Send will be permanently deleted on the specified date and time.</value>
<value>Гэтае адпраўленне аўтаматычна выдаліцца ў вызначаную дату і час.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PendingDelete" xml:space="preserve">
<value>Pending deletion</value>
<value>Чаканне выдалення</value>
</data>
<data name="ExpirationDate" xml:space="preserve">
<value>Expiration Date</value>
<value>Дата завяршэння</value>
</data>
<data name="ExpirationTime" xml:space="preserve">
<value>Expiration Time</value>
<value>Час завяршэння</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>If set, access to this Send will expire on the specified date and time.</value>
@@ -1904,82 +1904,82 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Дадаць Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy Link</value>
<value>Капіяваць спасылку</value>
</data>
<data name="ShareLink" xml:space="preserve">
<value>Share Link</value>
<value>Падзяліцца спасылкай</value>
</data>
<data name="SendLink" xml:space="preserve">
<value>Send link</value>
<value>Спасылка на адпраўленне</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SearchSends" xml:space="preserve">
<value>Search Sends</value>
<value>Пошук адпраўленняў</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="EditSend" xml:space="preserve">
<value>Edit Send</value>
<value>Рэдагаваць адпраўленне</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddSend" xml:space="preserve">
<value>Add Send</value>
<value>Дадаць адпраўленне</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AreYouSureDeleteSend" xml:space="preserve">
<value>Are you sure you want to delete this Send?</value>
<value>Сапраўды хочаце выдаліць адпраўленне?</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDeleted" xml:space="preserve">
<value>Send has been deleted.</value>
<value>Адпраўленне выдалена.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendUpdated" xml:space="preserve">
<value>Send updated.</value>
<value>Адпраўленне абноўлена.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NewSendCreated" xml:space="preserve">
<value>New send created.</value>
<value>Новае адпраўленне створана.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="OneDay" xml:space="preserve">
<value>1 day</value>
<value>1 дзень</value>
</data>
<data name="TwoDays" xml:space="preserve">
<value>2 days</value>
<value>2 дні</value>
</data>
<data name="ThreeDays" xml:space="preserve">
<value>3 days</value>
<value>3 дні</value>
</data>
<data name="SevenDays" xml:space="preserve">
<value>7 days</value>
<value>7 дзён</value>
</data>
<data name="ThirtyDays" xml:space="preserve">
<value>30 days</value>
<value>30 дзён</value>
</data>
<data name="Custom" xml:space="preserve">
<value>Custom</value>
<value>Адвольны</value>
</data>
<data name="ShareOnSave" xml:space="preserve">
<value>Share this Send upon save.</value>
<value>Падзяліцца адпраўленнем пасля захавання.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDisabledWarning" xml:space="preserve">
<value>Due to an enterprise policy, you are only able to delete an existing Send.</value>
<value>Згодна з карпаратыўнай палітыкай вы можаце выдаліць толькі існае адпраўленне.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AboutSend" xml:space="preserve">
<value>About Send</value>
<value>Пра адпраўленне</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>Хаваць адрас электроннай пошты ад атрымальнікаў.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>На параметры адпраўлення ўплываюць карпаратыўныя палітыкі.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Для адпраўлення файлаў патрэбна пацвердзіць свой адрас электроннай пошты.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Паўторны запыт галоўнага пароля</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Пацверджанне галоўнага пароля</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Гэтае дзеянне ахоўваецца, для працягу зноў увядзіце пароль для верыфікацыі асобы.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Добавяне на изпращане</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Повторно запитване за главната парола</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Потвърждение на главната парола</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Това действие е защитено. За да продължите, въведете отново главната си парола, за да потвърдите самоличността си.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Přidat Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Zeptat se znovu na hlavní heslo</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Potvrzení hlavního hesla</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Tato akce je chráněna. Chcete-li pokračovat, zadejte znovu vaše hlavní heslo, abychom ověřili vaší totožnost.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Tilføj en Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Du skal bekræfte din e-mail for brug af filer med Send.</value>
<value>Du skal bekræfte din e-mail for at bruge filer med Send. Du kan bekræfte din e-mail i web-boksen.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Genanmodning om hovedadgangskode</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Bekræftelse af hovedadgangskode</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Denne handling er beskyttet. Angiv hovedadgangskoden igen for at bekræfte din identitet og fortsætte.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send hinzufügen</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Master-Passwort erneut abfragen</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Master-Passwort bestätigen</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Diese Aktion ist geschützt. Um fortzufahren, gib bitte dein Master-Passwort erneut ein, um deine Identität zu bestätigen.</value>
</data>
</root>

View File

@@ -1905,7 +1905,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Προσθήκη Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1992,12 +1992,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Προτροπή κύριου κωδικού πρόσβασης</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Επιβεβαίωση κύριου κωδικού πρόσβασης</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Αυτή η ενέργεια προστατεύεται, για να συνεχίσετε, πληκτρολογήστε ξανά τον κύριο κωδικό πρόσβασης για να επαληθεύσετε την ταυτότητά σας.</value>
</data>
</root>

View File

@@ -1603,10 +1603,10 @@
<value>Ésta exportación contiene sus datos de la caja fuerte en un formato no cifrado. No debería almacenar o enviar el archivo exportado por canales no seguros (como el correo electrónico). Elimínelo inmediatamente cuando termine de utilizarlo.</value>
</data>
<data name="EncExportKeyWarning" xml:space="preserve">
<value>This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file.</value>
<value>Esta exportación encripta sus datos usando la clave de cifrado de su cuenta. Si alguna vez gira la clave de cifrado de su cuenta debe volver a exportar, ya que no podrá descifrar este archivo de exportación.</value>
</data>
<data name="EncExportAccountWarning" xml:space="preserve">
<value>Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.</value>
<value>Las claves de cifrado de cuenta son únicas para cada cuenta de usuario de Bitwarden, por lo que no puede importar una exportación cifrada a una cuenta diferente.</value>
</data>
<data name="ExportVaultConfirmationTitle" xml:space="preserve">
<value>Confirmar exportación de bóveda</value>
@@ -1757,16 +1757,16 @@
<value>Política de privacidad</value>
</data>
<data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve">
<value>Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings</value>
<value>Bitwarden necesita atención - Activar "Sobrescribir" en "Servicios de Auto-llenado" desde la configuración de Bitwarden</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>Servicios de autocompletado</value>
<value>Servicios de Autollenado</value>
</data>
<data name="InlineAutofill" xml:space="preserve">
<value>Usar Autorrelleno en Linea</value>
</data>
<data name="InlineAutofillDescription" xml:space="preserve">
<value>Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.</value>
<value>Utilice el autorelleno en línea si el IME (teclado) seleccionado lo soporta. Si su configuración no está soportada (o esta opción está desactivada), se utilizará la superposición de autorrelleno por defecto.</value>
</data>
<data name="Accessibility" xml:space="preserve">
<value>Usar accesibilidad</value>
@@ -1775,16 +1775,16 @@
<value>Utilice el Servicio de Accesibilidad de Bitwarden para rellenar automáticamente sus entradas a través de aplicaciones y la web. Cuando esté habilitado, mostraremos una ventana emergente cuando se seleccionen los campos de inicio de sesión.</value>
</data>
<data name="AccessibilityDescription2" xml:space="preserve">
<value>Use the Bitwarden Accessibility Service to auto-fill your logins across apps and the web. (Requires Draw-Over to be enabled as well)</value>
<value>Utilice el Servicio de Accesibilidad de Bitwarden para auto-llenar sus entradas a través de aplicaciones y la web. (Requiere que se habilite Sobrescribir también)</value>
</data>
<data name="AccessibilityDescription3" xml:space="preserve">
<value>Use the Bitwarden Accessibility Service to use the Autofill Quick-Action Tile, and/or show a popup using Draw-Over (if enabled).</value>
<value>Utilice el Servicio de Accesibilidad de Bitwarden para usar el Tile de Acción de Autorelleno, y/o mostrar una ventana emergente usando Draw-Over (si está habilitado).</value>
</data>
<data name="AccessibilityDescription4" xml:space="preserve">
<value>Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).</value>
<value>Requerida para utilizar el Tile de Acción de Autorelleno, o para aumentar el servicio de autorelleno usando Draw-Over (si está habilitado).</value>
</data>
<data name="DrawOver" xml:space="preserve">
<value>Use Draw-Over</value>
<value>Usar Sobrescribir</value>
</data>
<data name="DrawOverDescription" xml:space="preserve">
<value>Cuando está habilitado, permite que el Servicio de Accesibilidad de Bitwarden muestre una ventana emergente cuando se seleccionan los campos de acceso.</value>
@@ -1793,13 +1793,13 @@
<value>Si está activado, el Servicio de Accesibilidad de Bitwarden mostrará una ventana emergente cuando se seleccionen los campos de inicio de sesión para ayudar a rellenar automáticamente sus inicios de sesión.</value>
</data>
<data name="DrawOverDescription3" xml:space="preserve">
<value>If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.</value>
<value>Si está activado, la accesibilidad mostrará una ventana emergente para aumentar el servicio de autorelleno para aplicaciones antiguas que no soportan la estructura de autorelleno de Android.</value>
</data>
<data name="PersonalOwnershipSubmitError" xml:space="preserve">
<value>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.</value>
<value>Debido a una Política Empresarial, usted está restringido a guardar elementos en su bóveda personal. Cambie la opción Propiedad a una organización y elija de entre las colecciones disponibles.</value>
</data>
<data name="PersonalOwnershipPolicyInEffect" xml:space="preserve">
<value>An organization policy is affecting your ownership options.</value>
<value>Una política de organización está afectando sus opciones de propiedad.</value>
</data>
<data name="Send" xml:space="preserve">
<value>Envío</value>
@@ -1834,62 +1834,62 @@
<value>El archivo que quieres enviar.</value>
</data>
<data name="DeletionDate" xml:space="preserve">
<value>Deletion Date</value>
<value>Fecha de eliminación</value>
</data>
<data name="DeletionTime" xml:space="preserve">
<value>Deletion Time</value>
<value>Tiempo de eliminación</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>The Send will be permanently deleted on the specified date and time.</value>
<value>El Send se eliminará permanentemente en la fecha y hora especificada.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PendingDelete" xml:space="preserve">
<value>Eliminación pendiente</value>
</data>
<data name="ExpirationDate" xml:space="preserve">
<value>Expiration Date</value>
<value>Fecha de caducidad</value>
</data>
<data name="ExpirationTime" xml:space="preserve">
<value>Expiration Time</value>
<value>Tiempo de caducidad</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>If set, access to this Send will expire on the specified date and time.</value>
<value>Si se configura, el acceso a este Send caducará en la fecha y hora especificada.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Expired" xml:space="preserve">
<value>Expired</value>
<value>Caducó</value>
</data>
<data name="MaximumAccessCount" xml:space="preserve">
<value>Maximum Access Count</value>
<value>Número máximo de accesos</value>
</data>
<data name="MaximumAccessCountInfo" xml:space="preserve">
<value>If set, users will no longer be able to access this send once the maximum access count is reached.</value>
<value>Si se configura, los usuarios ya no podrán acceder a este Send una vez que se alcance el número máximo de accesos.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="MaximumAccessCountReached" xml:space="preserve">
<value>Max access count reached</value>
<value>Número máximo de accesos alcanzado</value>
</data>
<data name="CurrentAccessCount" xml:space="preserve">
<value>Current Access Count</value>
<value>Número de acceso actual</value>
</data>
<data name="NewPassword" xml:space="preserve">
<value>Nueva contraseña</value>
</data>
<data name="PasswordInfo" xml:space="preserve">
<value>Optionally require a password for users to access this Send.</value>
<value>Opcionalmente requieren una contraseña para que los usuarios accedan al Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="RemovePassword" xml:space="preserve">
<value>Remove Password</value>
<value>Eliminar contraseña</value>
</data>
<data name="AreYouSureRemoveSendPassword" xml:space="preserve">
<value>Are you sure you want to remove the password?</value>
<value>¿Está seguro que desea eliminar la contraseña?</value>
</data>
<data name="RemovingSendPassword" xml:space="preserve">
<value>Removing password</value>
<value>Eliminando contraseña</value>
</data>
<data name="SendPasswordRemoved" xml:space="preserve">
<value>Password has been removed.</value>
<value>La contraseña ha sido eliminada.</value>
</data>
<data name="NotesInfo" xml:space="preserve">
<value>Notas privadas sobre este Envío.</value>
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Añadir un Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1961,42 +1961,42 @@
<value>30 días</value>
</data>
<data name="Custom" xml:space="preserve">
<value>Custom</value>
<value>Personalizado</value>
</data>
<data name="ShareOnSave" xml:space="preserve">
<value>Compartir este Envío al guardarlo.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDisabledWarning" xml:space="preserve">
<value>Due to an enterprise policy, you are only able to delete an existing Send.</value>
<value>Debido a una política empresarial, sólo puede eliminar un Send existente.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AboutSend" xml:space="preserve">
<value>About Send</value>
<value>Acerca de Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>Ocultar mi dirección de correo electrónico a los destinatarios.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>Una o más políticas de organización están afectando sus opciones del Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
<value>Free accounts are restricted to sharing text only. A premium membership is required to use files with Send.</value>
<value>Las cuentas gratuitas están restringidas a compartir texto solamente. Se requiere una membresía premium para usar archivos con Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Debes verificar tu correo electrónico para usar archivos con el Send. Puedes verificar tu correo electrónico en la bóveda web.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Volver a preguntar contraseña maestra</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Confirmación de contraseña maestra</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Esta acción está protegida, para continuar por favor vuelva a introducir su contraseña maestra para verificar su identidad.</value>
</data>
</root>

View File

@@ -1425,7 +1425,7 @@
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="ShareVaultConfirmation" xml:space="preserve">
<value>Bitwardeniga saad oma hoidlat teistega jagada, kasutades seleks organisatsiooni kontot. Kas soovid selle kohta lisateavet ja avada bitwarden.com veebilehe?</value>
<value>Bitwarden võimaldab sul hoidla sisu teiste kasutajatega jagada, kasutades selleks organisatsiooni kontot. Soovid külastada lehekülge bitwarden.com ja selle kohta rohkem lugeda?</value>
</data>
<data name="ExportVault" xml:space="preserve">
<value>Ekspordi hoidla</value>
@@ -1487,7 +1487,7 @@
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>Vaikse URI sobivuse tuvastamine</value>
<value>Vaike URI sobivuse tuvastamine</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
@@ -1514,7 +1514,7 @@
<value>Välju</value>
</data>
<data name="ExitConfirmation" xml:space="preserve">
<value>Kas soovid tõesti Bitwardeni sulgeda?</value>
<value>Soovid tõesti Bitwardeni sulgeda?</value>
</data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve">
<value>You you want to require unlocking with your master password when the application is restarted?</value>
@@ -1814,7 +1814,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NameInfo" xml:space="preserve">
<value>Sisesta Sendi nimi.</value>
<value>Sisesta Sendi nimi (kohustuslik).</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="TypeText" xml:space="preserve">
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Lisa Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Nõutav on ülemparool</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Ülemparooli kinnitamine</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>See tegevus on kaitstud. Jätkamiseks sisesta oma ülemparool.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>افزودن یک ارسال</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>کلمه عبور اصلی دوباره تولید می شود</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>تأیید کلمه عبور اصلی</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>این عمل محافظت می شود. برای ادامه، لطفاً کلمه ورود اصلی خود را دوباره وارد کنید تا هویتان را تأیید کنید.</value>
</data>
</root>

View File

@@ -172,7 +172,7 @@
<comment>Message shown when interacting with the server</comment>
</data>
<data name="DoYouReallyWantToDelete" xml:space="preserve">
<value>Haluatko varmasti poistaa? Tätä toimintoa ei voi peruuttaa.</value>
<value>Haluatko varmasti poistaa? Toiminnon peruminen ei ole mahdollista.</value>
<comment>Confirmation alert message when deleteing something.</comment>
</data>
<data name="Edit" xml:space="preserve">
@@ -597,7 +597,7 @@
<value>Holvissasi ei ole kohteita tälle sivustolle/sovellukselle. Lisää kohde napauttamalla.</value>
</data>
<data name="NoUsernamePasswordConfigured" xml:space="preserve">
<value>Tähän kirjautumistietoon ei ole määritetty käyttäjätunnusta tai salasanaa.</value>
<value>Kirjautumistiedolle ei ole määritetty käyttäjätunnusta tai salasanaa.</value>
</data>
<data name="OkGotIt" xml:space="preserve">
<value>Ymmärrän!</value>
@@ -1673,7 +1673,7 @@
<comment>(action prompt) Label for the search text field when viewing the trash folder</comment>
</data>
<data name="DoYouReallyWantToPermanentlyDeleteCipher" xml:space="preserve">
<value>Haluatko varmasti poistaa pysyvästi? Tätä ei voi perua.</value>
<value>Haluatko varmasti poistaa pysyvästi? Toiminnon peruminen ei ole mahdollista.</value>
<comment>Confirmation alert message when permanently deleteing a cipher.</comment>
</data>
<data name="DoYouReallyWantToRestoreCipher" xml:space="preserve">
@@ -1834,26 +1834,26 @@
<value>Tiedosto, jonka haluat lähettää.</value>
</data>
<data name="DeletionDate" xml:space="preserve">
<value>Poistopäivä</value>
<value>Poistoajankohta</value>
</data>
<data name="DeletionTime" xml:space="preserve">
<value>Poistoaika</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>Send poistetaan pysyvästi määritettynä ajankohtana.</value>
<value>Send poistuu pysyvästi määritettynä ajankohtana.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PendingDelete" xml:space="preserve">
<value>Odottaa poistoa</value>
</data>
<data name="ExpirationDate" xml:space="preserve">
<value>Erääntymispäivä</value>
<value>Erääntymisajankohta</value>
</data>
<data name="ExpirationTime" xml:space="preserve">
<value>Erääntymisaika</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>Jos määritetty, Send erääntyy määritettynä ajankohtana.</value>
<value>Send erääntyy määritettynä ajankohtana.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Expired" xml:space="preserve">
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Lisää Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Sinun on vahvistettava sähköpostiosoitteesi, jotta voit käyttää tiedostoja Sendeissä.</value>
<value>Sinun on vahvistettava sähköpostiosoitteesi käyttääksesi tiedostoja Sendeissä. Voit vahvistaa osoitteesi verkkoholvissa.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Pääsalasanan uudelleenkysely</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Pääsalasanan vahvistus</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Toiminto on suojattu. Jatkaaksesi, syötä pääsalasanasi uudelleen vahvistaaksesi henkilöllisyytesi.</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Ajouter un Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Vous devez vérifier votre e-mail pour utiliser des fichiers avec Send.</value>
<value>Vous devez vérifier votre adresse e-mail pour utiliser des fichiers avec Send. Vous pouvez vérifier votre adresse e-mail dans le coffre web.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Ressaisie du mot de passe maître</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Confirmation du mot de passe maître</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Cette action est protégée. Pour continuer, veuillez ressaisir votre mot de passe maître pour vérifier votre identité.</value>
</data>
</root>

View File

@@ -846,7 +846,7 @@
<value>Add New Attachment</value>
</data>
<data name="Attachments" xml:space="preserve">
<value>Attachments</value>
<value>अटॅचमेंट्स</value>
</data>
<data name="UnableToDownloadFile" xml:space="preserve">
<value>Unable to download file.</value>
@@ -855,7 +855,7 @@
<value>Your device cannot open this type of file.</value>
</data>
<data name="Downloading" xml:space="preserve">
<value>Downloading...</value>
<value>डाउनलोड कर रहा है...</value>
<comment>Message shown when downloading a file</comment>
</data>
<data name="AttachmentLargeWarning" xml:space="preserve">

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Dodaj Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Moraš ovjeriti svoju e-poštu za koritšenje datoteka sa Sendom.</value>
<value>Moraš ovjeriti svoju e-poštu u mrežnom trezoru za koritšenje datoteka sa Sendom.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Ponovno zatraži glavnu lozinku</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Potvrda glavne lozinke</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Ova radnja je zaštićena. Za nastavak i potvrdu identiteta, unesi svoju glavnu lozinku.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send hozzáadása</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Mesterjelszó újbóli bekérése</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Mesterjelszó megerősítése</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Ez a művelet védett. A folytatásért ismételten meg kell adni a mesterjelszőt az személyazonosság ellenőrzéséhez.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Tambahkan Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1976,27 +1976,27 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>Sembunyikan alamat surel saya dari penerima.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>Satu atau lebih kebijakan orgnanisasi mempengaruhi pilihan Send Anda.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
<value>Free accounts are restricted to sharing text only. A premium membership is required to use files with Send.</value>
<value>Akun gratis dibatasi hanya untuk berbagi teks. Keanggotaan premium diperlukan untuk menggunakan berkas dengan Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Anda harus memverifikasi email Anda untuk menggunakan berkas dengan Send. Anda dapat memverifikasi email Anda di brankas web.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Pengingat ulang sandi utama</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Konfirmasi sandi utama</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Tindakan ini dilindungi, untuk melanjutkan harap masukkan ulang sandi utama Anda untuk memverifikasi identitas Anda.</value>
</data>
</root>

View File

@@ -1296,7 +1296,7 @@
<value>Il modo più semplice per aggiungere nuovi login alla tua cassaforte è l'estensione Bitwarden Password AutoFill. Scopri di più sull'utilizzo dell'estensione Bitwarden Password AutoFill navigando nella schermata "Impostazioni".</value>
</data>
<data name="InvalidEmail" xml:space="preserve">
<value>Indirizzo mail non valido.</value>
<value>Indirizzo email non valido.</value>
</data>
<data name="Cards" xml:space="preserve">
<value>Carte</value>
@@ -1707,7 +1707,7 @@ bitwarden.com per saperne di più?</value>
<value>Identificativo dell'organizzazione</value>
</data>
<data name="LoginSsoError" xml:space="preserve">
<value>Attualmente non sei in grado di effettuare il login con SSO</value>
<value>Attualmente non sei in grado di effettuare l'accesso con SSO</value>
</data>
<data name="SetMasterPassword" xml:space="preserve">
<value>Imposta la password principale</value>
@@ -1746,7 +1746,8 @@ bitwarden.com per saperne di più?</value>
<value>Caricamento</value>
</data>
<data name="AcceptPolicies" xml:space="preserve">
<value>Selezionando la casella accetti quanto segue:</value>
<value>Selezionando la casella accetti quanto segue:
</value>
</data>
<data name="AcceptPoliciesError" xml:space="preserve">
<value>I termini di servizio e l'informativa sulla privacy non sono stati accettati.</value>
@@ -1871,7 +1872,7 @@ bitwarden.com per saperne di più?</value>
<value>Numero massimo di accessi raggiunto</value>
</data>
<data name="CurrentAccessCount" xml:space="preserve">
<value>Numero accessi corrente</value>
<value>Numero di accessi attuale</value>
</data>
<data name="NewPassword" xml:space="preserve">
<value>Nuova password</value>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send を追加</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>マスターパスワードの再要求</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>マスターパスワードの確認</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>この操作は保護されています。続行するには、確認のためにマスターパスワードを再入力してください。</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1691,7 +1691,7 @@
<value>마스터 비밀번호 인증을 하기 전에는 생체 인식을 사용한 자동 채우기가 비활성화됩니다.</value>
</data>
<data name="EnableSyncOnRefresh" xml:space="preserve">
<value>새로고침할 동기화 활성화</value>
<value>새로고침할 동기화 사용</value>
</data>
<data name="EnableSyncOnRefreshDescription" xml:space="preserve">
<value>아래로 끌어내리면 보관함을 동기화합니다.</value>
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send 추가</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>마스터 비밀번호 재확인</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>마스터 비밀번호 확인</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>이 작업은 보호되어 있습니다. 계속하려면 마스터 비밀번호를 입력하여 신원을 인증하세요.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Pievienot "Send'</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Galvenās paroles pārvaicāšana</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Galvenās paroles apstiprināšana</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Šī darbība ir aizsargāta, lai turpinātu, ir jāievada galvenā parole, lai apstiprinātu identitāti.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>ഒരു Send ചേർക്കുക</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">

View File

@@ -1603,10 +1603,10 @@
<value>Denne eksporten inneholder hvelvdataene dine i et ukryptert format. Du skal ikke lagre eller sende den eksporterte filen over usikre kanaler (for eksempel e-post). Slett den umiddelbart etter at du er ferdig med å bruke den.</value>
</data>
<data name="EncExportKeyWarning" xml:space="preserve">
<value>This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file.</value>
<value>Denne eksporten krypterer dataene dine ved hjelp av kontoen din sin krypteringsnøkkel. Hvis du noen gang endrer krypteringsnøkkelen til kontoen din, bør du eksportere dataene igjen, ettersom du da ikke vil kunne dekryptere denne eksportfilen.</value>
</data>
<data name="EncExportAccountWarning" xml:space="preserve">
<value>Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.</value>
<value>Kontokrypteringsnøkler er unike for hver Bitwarden sin brukerkonto, og du kan ikke importere en kryptert eksport til en annen konto.</value>
</data>
<data name="ExportVaultConfirmationTitle" xml:space="preserve">
<value>Bekreft eksport av hvelvet</value>
@@ -1700,7 +1700,7 @@
<value>Bedriftsinnlogging (SSO)</value>
</data>
<data name="LogInSsoSummary" xml:space="preserve">
<value>Quickly log in using your organization's single sign-on portal. Please enter your organization's identifier to begin.</value>
<value>Logg raskt inn med din organisasjons enkelte logg-på portal. Angi din organisasjons identifikator for å begynne.</value>
</data>
<data name="OrgIdentifier" xml:space="preserve">
<value>Organisasjons identifikator</value>
@@ -1791,7 +1791,7 @@
<value>Når dette er aktivert, tillater Bitwarden å vise et sprettoppvindu når innloggingsfelt velges.</value>
</data>
<data name="DrawOverDescription2" xml:space="preserve">
<value>If enabled, the Bitwarden Accessibility Service will display a popup when login fields are selected to assist with auto-filling your logins.</value>
<value>Dersom det er aktivert, vil Bitwarden sin tilgjengelighetstjeneste vise en popup når innloggingsfelt er valgt for å hjelpe deg med automatisk utfylling av dine innlogginger.</value>
</data>
<data name="DrawOverDescription3" xml:space="preserve">
<value>If enabled, accessibility will show a popup to augment the Autofill Service for older apps that don't support the Android Autofill Framework.</value>
@@ -1977,18 +1977,18 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>Skjul min e-postadresse fra mottakere.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>En eller flere av organisasjons retningslinjer påvirker generatorinnstillingene dine.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
<value>Free accounts are restricted to sharing text only. A premium membership is required to use files with Send.</value>
<value>Gratis kontoer kan bare dele tekst. Et premiummedlemskap kreves for å bruke filer med Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Du må bekrefte e-posten din for å bruke filer med Send. Du kan bekrefte e-postadressen din i netthvelvet.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
@@ -1998,6 +1998,6 @@
<value>Master password confirmation</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Denne handlingen er beskyttet, for å fortsette å skrive inn superpassordet på nytt for å verifisere din identitet.</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send toevoegen</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Hoofdwachtwoord opnieuw vragen</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Hoofdwachtwoord bevestigen</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Deze actie is beveiligd. Voer je hoofdwachtwoord opnieuw in om je identiteit vast te stellen en door te gaan.</value>
</data>
</root>

View File

@@ -504,7 +504,7 @@
<value>Importuj elementy</value>
</data>
<data name="ImportItemsConfirmation" xml:space="preserve">
<value>Możesz zaimportować wiele elementów z sejfu internetowego bitwarden. Czy chcesz przejść do tej strony?</value>
<value>Możesz zaimportować wiele elementów z sejfu internetowego bitwarden.com. Czy chcesz przejść do tej strony?</value>
</data>
<data name="ImportItemsDescription" xml:space="preserve">
<value>Szybko zaimportuj wiele elementów z innych menedżerów haseł.</value>
@@ -556,7 +556,7 @@
<value>Potwierdzenie hasła nie pasuje.</value>
</data>
<data name="MasterPasswordDescription" xml:space="preserve">
<value>Hasło główne zapewnia dostęp do sejfu. To bardzo ważne, abyś je pamiętał. Jeśli je zapomnisz, nie będzie możliwości, aby je przywrócić.</value>
<value>Hasło główne zapewnia dostęp do sejfu. To bardzo ważne, aby je pamiętać, ponieważ zapomnianego hasła nie będzie można odzyskać.</value>
</data>
<data name="MasterPasswordHint" xml:space="preserve">
<value>Podpowiedź do hasła głównego (opcjonalnie)</value>
@@ -1425,7 +1425,7 @@
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="ShareVaultConfirmation" xml:space="preserve">
<value>Bitwarden pozwala na udostępnianie zawartości skarbca innym osobom, przy użyciu konta organizacji. Czy chcesz odwiedź witrynę bitwarden.com, aby dowiedzieć się więcej?</value>
<value>Bitwarden pozwala na udostępnianie zawartości sejfu innym osobom za pośrednictwem organizacji. Czy chcesz odwiedzić stronę bitwarden.com, aby dowiedzieć się więcej?</value>
</data>
<data name="ExportVault" xml:space="preserve">
<value>Eksportuj sejf</value>
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Dodaj wysyłkę</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Powtórz hasło główne</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Potwierdź hasło główne</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Ta operacja jest chroniona. Aby kontynuować, wpisz ponownie hasło główne.</value>
</data>
</root>

View File

@@ -310,6 +310,9 @@
<value>Save</value>
<comment>Button text for a save operation (verb).</comment>
</data>
<data name="Move" xml:space="preserve">
<value>Move</value>
</data>
<data name="Saving" xml:space="preserve">
<value>Saving...</value>
<comment>Message shown when interacting with the server</comment>
@@ -782,8 +785,8 @@
<data name="BitwardenAutofillServiceSearch" xml:space="preserve">
<value>You are searching for an auto-fill item for "{0}".</value>
</data>
<data name="ShareVault" xml:space="preserve">
<value>Share Your Vault</value>
<data name="LearnOrg" xml:space="preserve">
<value>Learn About Organizations</value>
</data>
<data name="CannotOpenApp" xml:space="preserve">
<value>Cannot open the app "{0}".</value>
@@ -1378,6 +1381,10 @@
<data name="NoCollectionsToList" xml:space="preserve">
<value>There are no collections to list.</value>
</data>
<data name="MovedItemToOrg" xml:space="preserve">
<value>{0} moved to {1}.</value>
<comment>ex: Item moved to Organization.</comment>
</data>
<data name="ItemShared" xml:space="preserve">
<value>Item has been shared.</value>
</data>
@@ -1390,11 +1397,14 @@
<data name="ShareItem" xml:space="preserve">
<value>Share Item</value>
</data>
<data name="MoveToOrganization" xml:space="preserve">
<value>Move to Organization</value>
</data>
<data name="NoOrgsToList" xml:space="preserve">
<value>No organizations to list.</value>
</data>
<data name="ShareDesc" xml:space="preserve">
<value>Choose an organization that you wish to share this item with. Sharing transfers ownership of the item to the organization. You will no longer be the direct owner of this item once it has been shared.</value>
<data name="MoveToOrgDesc" xml:space="preserve">
<value>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.</value>
</data>
<data name="NumberOfWords" xml:space="preserve">
<value>Number of Words</value>
@@ -1424,8 +1434,8 @@
<value>Your account's fingerprint phrase</value>
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="ShareVaultConfirmation" xml:space="preserve">
<value>Bitwarden allows you to share your vault with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?</value>
<data name="LearnOrgConfirmation" xml:space="preserve">
<value>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?</value>
</data>
<data name="ExportVault" xml:space="preserve">
<value>Export Vault</value>
@@ -2000,4 +2010,49 @@
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
</data>
<data name="CaptchaRequired" xml:space="preserve">
<value>Captcha Required</value>
</data>
<data name="CaptchaFailed" xml:space="preserve">
<value>Captcha Failed. Please try again.</value>
</data>
<data name="Fido2Title" xml:space="preserve">
<value>FIDO2 WebAuthn</value>
</data>
<data name="Fido2Instruction" xml:space="preserve">
<value>To continue, have your FIDO2 WebAuthn enabled security key ready, then follow the instructions after clicking 'Authenticate WebAuthn' on the next screen.</value>
</data>
<data name="Fido2Desc" xml:space="preserve">
<value>Authentication using FIDO2 WebAuthn, you can authenticate using an external security key.</value>
</data>
<data name="Fido2AuthenticateWebAuthn" xml:space="preserve">
<value>Authenticate WebAuthn</value>
</data>
<data name="Fido2SomethingWentWrong" xml:space="preserve">
<value>Something Went Wrong. Try again.</value>
</data>
<data name="Fido2AbortError" xml:space="preserve">
<value>Aborted FIDO2 operation. Try again.</value>
</data>
<data name="Fido2NetworkFail" xml:space="preserve">
<value>No internet connection. Try again.</value>
</data>
<data name="Fido2NoPermission" xml:space="preserve">
<value>Permission was not given. Try again.</value>
</data>
<data name="Fido2NotSupportedError" xml:space="preserve">
<value>Unsupported device.</value>
</data>
<data name="Fido2PrivacyError" xml:space="preserve">
<value>Privacy issues encountered. Try again.</value>
</data>
<data name="Fido2SecurityError" xml:space="preserve">
<value>Security issues encountered.</value>
</data>
<data name="Fido2ServerDataFail" xml:space="preserve">
<value>The server returned invalid data. Try again.</value>
</data>
<data name="Fido2TimeoutError" xml:space="preserve">
<value>Timeout for FIDO2. Try again</value>
</data>
</root>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Adăugați un Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1976,27 +1976,27 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>Ascundeți adresa mea de e-mail de la destinatari.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>Una sau mai multe politici organizaționale vă afectează opțiunile Send-ului.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
<value>Free accounts are restricted to sharing text only. A premium membership is required to use files with Send.</value>
<value>Conturile gratuite sunt limitate la partajarea de text. Trebuie să fiți membrii Premium pentru a utiliza fișiere cu Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Trebuie să vă verificați e-mailul pentru a utiliza fișiere cu Send. Vă puteți verifica e-mailul în seiful web.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Re-solicitare parolă principală</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Confirmare parolă principală</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Această acțiune este protejată. Pentru a continua, vă rugăm să reintroduceți parola principală pentru a vă verifica identitatea.</value>
</data>
</root>

View File

@@ -118,14 +118,14 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About" xml:space="preserve">
<value>About</value>
<value>පිලිබඳව</value>
</data>
<data name="Add" xml:space="preserve">
<value>Add</value>
<value>එකතු කරන්න</value>
<comment>Add/create a new entity (verb).</comment>
</data>
<data name="AddFolder" xml:space="preserve">
<value>Add Folder</value>
<value>බහාලුම එකතු කරන්න</value>
</data>
<data name="AddItem" xml:space="preserve">
<value>Add Item</value>
@@ -136,27 +136,27 @@
<comment>Alert title when something goes wrong.</comment>
</data>
<data name="Back" xml:space="preserve">
<value>Back</value>
<value>ආපසු</value>
<comment>Navigate back to the previous screen.</comment>
</data>
<data name="Bitwarden" xml:space="preserve">
<value>Bitwarden</value>
<value>බිට්වාඩන්</value>
<comment>App name. Shouldn't ever change.</comment>
</data>
<data name="Cancel" xml:space="preserve">
<value>Cancel</value>
<value>අවලංගු කරන්න</value>
<comment>Cancel an operation.</comment>
</data>
<data name="Copy" xml:space="preserve">
<value>Copy</value>
<value>පිටපත්</value>
<comment>Copy some value to your clipboard.</comment>
</data>
<data name="CopyPassword" xml:space="preserve">
<value>Copy Password</value>
<value>මුරපදය පිටපත් කරන්න</value>
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
</data>
<data name="CopyUsername" xml:space="preserve">
<value>Copy Username</value>
<value>පරිශීලකනාමය පිටපත් කරන්න</value>
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
</data>
<data name="Credits" xml:space="preserve">
@@ -176,17 +176,17 @@
<comment>Confirmation alert message when deleteing something.</comment>
</data>
<data name="Edit" xml:space="preserve">
<value>Edit</value>
<value>සංස්කරණය</value>
</data>
<data name="EditFolder" xml:space="preserve">
<value>Edit Folder</value>
</data>
<data name="Email" xml:space="preserve">
<value>Email</value>
<value>වි-තැපෑල</value>
<comment>Short label for an email address.</comment>
</data>
<data name="EmailAddress" xml:space="preserve">
<value>Email Address</value>
<value>වි-තැපැල් ලිපිනය</value>
<comment>Full label for a email address.</comment>
</data>
<data name="EmailUs" xml:space="preserve">
@@ -199,7 +199,7 @@
<value>Enter your PIN code.</value>
</data>
<data name="Favorites" xml:space="preserve">
<value>Favorites</value>
<value>ප්‍රියතමයන්</value>
<comment>Title for your favorite items in the vault.</comment>
</data>
<data name="FileBugReport" xml:space="preserve">
@@ -212,7 +212,7 @@
<value>Use your fingerprint to verify.</value>
</data>
<data name="Folder" xml:space="preserve">
<value>Folder</value>
<value>බහාලුම</value>
<comment>Label for a folder.</comment>
</data>
<data name="FolderCreated" xml:space="preserve">
@@ -222,24 +222,24 @@
<value>Folder deleted.</value>
</data>
<data name="FolderNone" xml:space="preserve">
<value>No Folder</value>
<value>බහාලුමක් නැත</value>
<comment>Items that have no folder specified go in this special "catch-all" folder.</comment>
</data>
<data name="Folders" xml:space="preserve">
<value>Folders</value>
<value>බහාලුම්</value>
</data>
<data name="FolderUpdated" xml:space="preserve">
<value>Folder updated.</value>
</data>
<data name="GoToWebsite" xml:space="preserve">
<value>Go To Website</value>
<value>වියමන අඩවියට යන්න</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="HelpAndFeedback" xml:space="preserve">
<value>Help and Feedback</value>
</data>
<data name="Hide" xml:space="preserve">
<value>Hide</value>
<value>සඟවන්න</value>
<comment>Hide a secret value that is currently shown (password).</comment>
</data>
<data name="InternetConnectionRequiredMessage" xml:space="preserve">
@@ -257,23 +257,23 @@
<value>Invalid PIN. Try again.</value>
</data>
<data name="Launch" xml:space="preserve">
<value>Launch</value>
<value>දියත් කරන්න</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="LogIn" xml:space="preserve">
<value>Log In</value>
<value>පිවිසෙන්න</value>
<comment>The login button text (verb).</comment>
</data>
<data name="LogInNoun" xml:space="preserve">
<value>Login</value>
<value>පිවිසෙන්න</value>
<comment>Title for login page. (noun)</comment>
</data>
<data name="LogOut" xml:space="preserve">
<value>Log Out</value>
<value>නික්මෙන්න</value>
<comment>The log out button text (verb).</comment>
</data>
<data name="LogoutConfirmation" xml:space="preserve">
<value>Are you sure you want to log out?</value>
<value>ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?</value>
</data>
<data name="MasterPassword" xml:space="preserve">
<value>Master Password</value>
@@ -288,38 +288,38 @@
<comment>The title for the vault page.</comment>
</data>
<data name="Name" xml:space="preserve">
<value>Name</value>
<value>නම</value>
<comment>Label for an entity name.</comment>
</data>
<data name="No" xml:space="preserve">
<value>No</value>
<value>නැහැ</value>
</data>
<data name="Notes" xml:space="preserve">
<value>Notes</value>
<value>සටහන්</value>
<comment>Label for notes.</comment>
</data>
<data name="Ok" xml:space="preserve">
<value>Ok</value>
<value>හරි</value>
<comment>Acknowledgement.</comment>
</data>
<data name="Password" xml:space="preserve">
<value>Password</value>
<value>මුරපදය</value>
<comment>Label for a password.</comment>
</data>
<data name="Save" xml:space="preserve">
<value>Save</value>
<value>සුරකින්න</value>
<comment>Button text for a save operation (verb).</comment>
</data>
<data name="Saving" xml:space="preserve">
<value>Saving...</value>
<value>සුරැකෙමින්...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="Settings" xml:space="preserve">
<value>Settings</value>
<value>සැකසුම්</value>
<comment>The title for the settings page.</comment>
</data>
<data name="Show" xml:space="preserve">
<value>Show</value>
<value>පෙන්වන්න</value>
<comment>Reveal a hidden value (password).</comment>
</data>
<data name="ItemDeleted" xml:space="preserve">
@@ -334,10 +334,10 @@
<comment>The title for the sync page.</comment>
</data>
<data name="ThankYou" xml:space="preserve">
<value>Thank You</value>
<value>ඔබට ස්තූතියි</value>
</data>
<data name="Tools" xml:space="preserve">
<value>Tools</value>
<value>මෙවලම්</value>
<comment>The title for the tools page.</comment>
</data>
<data name="URI" xml:space="preserve">
@@ -348,7 +348,7 @@
<value>Use Fingerprint to Unlock</value>
</data>
<data name="Username" xml:space="preserve">
<value>Username</value>
<value>පරිශීලක නාමය</value>
<comment>Label for a username.</comment>
</data>
<data name="ValidationFieldRequired" xml:space="preserve">
@@ -369,7 +369,7 @@
<value>Verify PIN</value>
</data>
<data name="Version" xml:space="preserve">
<value>Version</value>
<value>අනුවාදය</value>
</data>
<data name="View" xml:space="preserve">
<value>View</value>
@@ -381,14 +381,14 @@
<value>Visit our website to get help, news, email us, and/or learn more about how to use Bitwarden.</value>
</data>
<data name="Website" xml:space="preserve">
<value>Website</value>
<value>වියමන අඩවිය</value>
<comment>Label for a website.</comment>
</data>
<data name="Yes" xml:space="preserve">
<value>Yes</value>
<value>ඔව්</value>
</data>
<data name="Account" xml:space="preserve">
<value>Account</value>
<value>ගිණුම</value>
</data>
<data name="AccountCreated" xml:space="preserve">
<value>Your new account has been created! You may now log in.</value>
@@ -436,16 +436,16 @@
<value>You can change your master password on the bitwarden.com web vault. Do you want to visit the website now?</value>
</data>
<data name="Close" xml:space="preserve">
<value>Close</value>
<value>වසන්න</value>
</data>
<data name="Continue" xml:space="preserve">
<value>Continue</value>
<value>ඉදිරියට</value>
</data>
<data name="CreateAccount" xml:space="preserve">
<value>Create Account</value>
<value>ගිණුමක් සාදන්න</value>
</data>
<data name="CreatingAccount" xml:space="preserve">
<value>Creating account...</value>
<value>ගිණුම සාදමින්...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="EditItem" xml:space="preserve">
@@ -489,7 +489,7 @@
<value>To turn on Bitwarden in Safari and other apps, tap the "more" icon on the bottom row of the menu.</value>
</data>
<data name="Favorite" xml:space="preserve">
<value>Favorite</value>
<value>ප්‍රියතමය</value>
</data>
<data name="Fingerprint" xml:space="preserve">
<value>Fingerprint</value>
@@ -519,16 +519,16 @@
<value>Lock</value>
</data>
<data name="FifteenMinutes" xml:space="preserve">
<value>15 minutes</value>
<value>විනාඩි 15</value>
</data>
<data name="OneHour" xml:space="preserve">
<value>1 hour</value>
<value>පැය 1</value>
</data>
<data name="OneMinute" xml:space="preserve">
<value>1 minute</value>
<value>විනාඩි 1</value>
</data>
<data name="FourHours" xml:space="preserve">
<value>4 hours</value>
<value>පැය 4</value>
</data>
<data name="Immediately" xml:space="preserve">
<value>Immediately</value>
@@ -543,7 +543,7 @@
<value>Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?</value>
</data>
<data name="LoggingIn" xml:space="preserve">
<value>Logging in...</value>
<value>පිවිසෙමින්...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="LoginOrCreateNewAccount" xml:space="preserve">
@@ -607,10 +607,10 @@
<value>Option defaults are set from the main Bitwarden app's password generator tool.</value>
</data>
<data name="Options" xml:space="preserve">
<value>Options</value>
<value>විකල්ප</value>
</data>
<data name="Other" xml:space="preserve">
<value>Other</value>
<value>වෙනත්</value>
</data>
<data name="PasswordGenerated" xml:space="preserve">
<value>Password generated.</value>
@@ -647,7 +647,7 @@
<value>Search vault</value>
</data>
<data name="Security" xml:space="preserve">
<value>Security</value>
<value>ආරක්ෂාව</value>
</data>
<data name="Select" xml:space="preserve">
<value>Select</value>
@@ -724,7 +724,7 @@
<value>Icons</value>
</data>
<data name="Translations" xml:space="preserve">
<value>Translations</value>
<value>පරිවර්තන</value>
</data>
<data name="ItemsForUri" xml:space="preserve">
<value>Items for {0}</value>
@@ -753,16 +753,16 @@
<value>Disabled</value>
</data>
<data name="Enabled" xml:space="preserve">
<value>Enabled</value>
<value>සබල කර ඇත</value>
</data>
<data name="Status" xml:space="preserve">
<value>Status</value>
<value>තත්වය</value>
</data>
<data name="BitwardenAutofillServiceAlert2" xml:space="preserve">
<value>The easiest way to add new logins to your vault is from the Bitwarden Auto-fill Service. Learn more about using the Bitwarden Auto-fill Service by navigating to the "Settings" screen.</value>
</data>
<data name="Autofill" xml:space="preserve">
<value>Auto-fill</value>
<value>ස්වයං-පිරවීම</value>
</data>
<data name="AutofillOrView" xml:space="preserve">
<value>Do you want to auto-fill or view this item?</value>
@@ -777,7 +777,7 @@
<value>Possible Matching Items</value>
</data>
<data name="Search" xml:space="preserve">
<value>Search</value>
<value>සොයන්න</value>
</data>
<data name="BitwardenAutofillServiceSearch" xml:space="preserve">
<value>You are searching for an auto-fill item for "{0}".</value>
@@ -809,7 +809,7 @@
<value>This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).</value>
</data>
<data name="RecoveryCodeTitle" xml:space="preserve">
<value>Recovery Code</value>
<value>ප්‍රතිසාධන කේතය</value>
<comment>For 2FA</comment>
</data>
<data name="RememberMe" xml:space="preserve">
@@ -854,7 +854,7 @@
<value>Your device cannot open this type of file.</value>
</data>
<data name="Downloading" xml:space="preserve">
<value>Downloading...</value>
<value>බාගත වෙමින්…</value>
<comment>Message shown when downloading a file</comment>
</data>
<data name="AttachmentLargeWarning" xml:space="preserve">
@@ -911,7 +911,7 @@
<value>Choose File</value>
</data>
<data name="File" xml:space="preserve">
<value>File</value>
<value>ගොනුව</value>
</data>
<data name="NoFileChosen" xml:space="preserve">
<value>No file chosen</value>
@@ -979,37 +979,37 @@
<value>Copy Security Code</value>
</data>
<data name="Number" xml:space="preserve">
<value>Number</value>
<value>අංකය</value>
</data>
<data name="SecurityCode" xml:space="preserve">
<value>Security Code</value>
<value>ආරක්ෂිත කේතය</value>
</data>
<data name="TypeCard" xml:space="preserve">
<value>Card</value>
<value>පත</value>
</data>
<data name="TypeIdentity" xml:space="preserve">
<value>Identity</value>
<value>අනන්‍යතාව</value>
</data>
<data name="TypeLogin" xml:space="preserve">
<value>Login</value>
<value>පිවිසෙන්න</value>
</data>
<data name="TypeSecureNote" xml:space="preserve">
<value>Secure Note</value>
</data>
<data name="Address1" xml:space="preserve">
<value>Address 1</value>
<value>ලිපිනය 1</value>
</data>
<data name="Address2" xml:space="preserve">
<value>Address 2</value>
<value>ලිපිනය 2</value>
</data>
<data name="Address3" xml:space="preserve">
<value>Address 3</value>
<value>ලිපිනය 3</value>
</data>
<data name="April" xml:space="preserve">
<value>April</value>
<value>බක්</value>
</data>
<data name="August" xml:space="preserve">
<value>August</value>
<value>නිකිණි</value>
</data>
<data name="Brand" xml:space="preserve">
<value>Brand</value>
@@ -1021,13 +1021,13 @@
<value>City / Town</value>
</data>
<data name="Company" xml:space="preserve">
<value>Company</value>
<value>සමාගම</value>
</data>
<data name="Country" xml:space="preserve">
<value>Country</value>
<value>රට</value>
</data>
<data name="December" xml:space="preserve">
<value>December</value>
<value>උඳුවප්</value>
</data>
<data name="Dr" xml:space="preserve">
<value>Dr</value>
@@ -1039,19 +1039,19 @@
<value>Expiration Year</value>
</data>
<data name="February" xml:space="preserve">
<value>February</value>
<value>නවම්</value>
</data>
<data name="FirstName" xml:space="preserve">
<value>First Name</value>
</data>
<data name="January" xml:space="preserve">
<value>January</value>
<value>දුරුතු</value>
</data>
<data name="July" xml:space="preserve">
<value>July</value>
<value>ඇසළ</value>
</data>
<data name="June" xml:space="preserve">
<value>June</value>
<value>පොසොන්</value>
</data>
<data name="LastName" xml:space="preserve">
<value>Last Name</value>
@@ -1060,10 +1060,10 @@
<value>License Number</value>
</data>
<data name="March" xml:space="preserve">
<value>March</value>
<value>මැදින්</value>
</data>
<data name="May" xml:space="preserve">
<value>May</value>
<value>වෙසක්</value>
</data>
<data name="MiddleName" xml:space="preserve">
<value>Middle Name</value>
@@ -1078,10 +1078,10 @@
<value>Ms</value>
</data>
<data name="November" xml:space="preserve">
<value>November</value>
<value>ඉල්</value>
</data>
<data name="October" xml:space="preserve">
<value>October</value>
<value>වප්</value>
</data>
<data name="PassportNumber" xml:space="preserve">
<value>Passport Number</value>
@@ -1090,7 +1090,7 @@
<value>Phone</value>
</data>
<data name="September" xml:space="preserve">
<value>September</value>
<value>බිනර</value>
</data>
<data name="SSN" xml:space="preserve">
<value>Social Security Number</value>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Pridať Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1991,12 +1991,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Znova zadajte hlavné heslo</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Potvrdenie hlavného hesla</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Táto akcia je chránená. Ak chcete pokračovať, znova zadajte hlavné heslo a overte svoju totožnosť.</value>
</data>
</root>

View File

@@ -534,10 +534,10 @@
<value>Nemudoma</value>
</data>
<data name="VaultTimeout" xml:space="preserve">
<value>Vault Timeout</value>
<value>Časovna omejitev trezorja</value>
</data>
<data name="VaultTimeoutAction" xml:space="preserve">
<value>Vault Timeout Action</value>
<value>Dejanje po časovni omejitvi trezorja</value>
</data>
<data name="VaultTimeoutLogOutConfirmation" xml:space="preserve">
<value>Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?</value>
@@ -644,13 +644,13 @@
<value>Re-type Master Password</value>
</data>
<data name="SearchVault" xml:space="preserve">
<value>Search vault</value>
<value>Išči v trezorju</value>
</data>
<data name="Security" xml:space="preserve">
<value>Security</value>
<value>Varnost</value>
</data>
<data name="Select" xml:space="preserve">
<value>Select</value>
<value>Izberi</value>
</data>
<data name="SetPIN" xml:space="preserve">
<value>Nastavi PIN</value>
@@ -665,18 +665,18 @@
<value>Item updated.</value>
</data>
<data name="Submitting" xml:space="preserve">
<value>Submitting...</value>
<value>Pošiljanje...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="Syncing" xml:space="preserve">
<value>Syncing...</value>
<value>Sinhronizacija...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="SyncingComplete" xml:space="preserve">
<value>Syncing complete.</value>
<value>Sinhronizacija končana.</value>
</data>
<data name="SyncingFailed" xml:space="preserve">
<value>Syncing failed.</value>
<value>Sinhronizacija neuspešna.</value>
</data>
<data name="SyncVaultNow" xml:space="preserve">
<value>Sync Vault Now</value>
@@ -692,17 +692,17 @@
<value>Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?</value>
</data>
<data name="UnlockWith" xml:space="preserve">
<value>Unlock with {0}</value>
<value>Odkleni z {0}</value>
</data>
<data name="UnlockWithPIN" xml:space="preserve">
<value>Unlock with PIN Code</value>
<value>Odklepanje s PIN kodo</value>
</data>
<data name="Validating" xml:space="preserve">
<value>Validating</value>
<value>Preverjanje veljavnosti</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="VerificationCode" xml:space="preserve">
<value>Verification Code</value>
<value>Verifikacijska koda</value>
</data>
<data name="ViewItem" xml:space="preserve">
<value>Ogled vnosa</value>
@@ -809,7 +809,7 @@
<value>This account has two-step login enabled, however, none of the configured two-step providers are supported on this device. Please use a supported device and/or add additional providers that are better supported across devices (such as an authenticator app).</value>
</data>
<data name="RecoveryCodeTitle" xml:space="preserve">
<value>Recovery Code</value>
<value>Koda za obnovitev</value>
<comment>For 2FA</comment>
</data>
<data name="RememberMe" xml:space="preserve">
@@ -824,7 +824,7 @@
<value>Možnosti dvostopenjskega vpisa</value>
</data>
<data name="UseAnotherTwoStepMethod" xml:space="preserve">
<value>Use another two-step login method</value>
<value>Uporabi drug dvostopenjski način vpisa</value>
</data>
<data name="VerificationEmailNotSent" xml:space="preserve">
<value>Could not send verification email. Try again.</value>
@@ -878,16 +878,16 @@
<value>Scanning will happen automatically.</value>
</data>
<data name="CameraInstructionTop" xml:space="preserve">
<value>Point your camera at the QR code.</value>
<value>Usmerite fotoaparat proti QR kodi.</value>
</data>
<data name="ScanQrTitle" xml:space="preserve">
<value>Scan QR Code</value>
<value>Skeniraj QR kodo</value>
</data>
<data name="Camera" xml:space="preserve">
<value>Camera</value>
<value>Fotoaparat</value>
</data>
<data name="Photos" xml:space="preserve">
<value>Photos</value>
<value>Fotografije</value>
</data>
<data name="CopyTotp" xml:space="preserve">
<value>Copy TOTP</value>
@@ -902,40 +902,40 @@
<value>A premium membership is required to use this feature.</value>
</data>
<data name="AttachementAdded" xml:space="preserve">
<value>Attachment added</value>
<value>Priloga dodana</value>
</data>
<data name="AttachmentDeleted" xml:space="preserve">
<value>Attachment deleted</value>
<value>Priloga izbrisana</value>
</data>
<data name="ChooseFile" xml:space="preserve">
<value>Choose File</value>
<value>Izberite datoteko</value>
</data>
<data name="File" xml:space="preserve">
<value>File</value>
<value>Datoteka</value>
</data>
<data name="NoFileChosen" xml:space="preserve">
<value>No file chosen</value>
<value>Nobena datoteka izbrana</value>
</data>
<data name="NoAttachments" xml:space="preserve">
<value>There are no attachments.</value>
<value>Ni prilog.</value>
</data>
<data name="FileSource" xml:space="preserve">
<value>File Source</value>
</data>
<data name="FeatureUnavailable" xml:space="preserve">
<value>Feature Unavailable</value>
<value>Funkcija ni na voljo</value>
</data>
<data name="MaxFileSize" xml:space="preserve">
<value>Maximum file size is 100 MB.</value>
<value>Največja velikost datoteke je 100 MB.</value>
</data>
<data name="UpdateKey" xml:space="preserve">
<value>You cannot use this feature until you update your encryption key.</value>
</data>
<data name="LearnMore" xml:space="preserve">
<value>Learn More</value>
<value>Preberite več</value>
</data>
<data name="ApiUrl" xml:space="preserve">
<value>API Server URL</value>
<value>URL naslov API strežnika</value>
</data>
<data name="CustomEnvironment" xml:space="preserve">
<value>Custom Environment</value>
@@ -961,7 +961,7 @@
<value>Specify the base URL of your on-premise hosted Bitwarden installation.</value>
</data>
<data name="ServerUrl" xml:space="preserve">
<value>Server URL</value>
<value>URL naslov strežnika</value>
</data>
<data name="WebVaultUrl" xml:space="preserve">
<value>Web Vault Server URL</value>
@@ -970,19 +970,19 @@
<value>Tap this notification to view items from your vault.</value>
</data>
<data name="CustomFields" xml:space="preserve">
<value>Custom Fields</value>
<value>Polja po meri</value>
</data>
<data name="CopyNumber" xml:space="preserve">
<value>Copy Number</value>
<value>Kopiraj številko</value>
</data>
<data name="CopySecurityCode" xml:space="preserve">
<value>Copy Security Code</value>
<value>Kopiraj varnostno kodo</value>
</data>
<data name="Number" xml:space="preserve">
<value>Number</value>
<value>Številka</value>
</data>
<data name="SecurityCode" xml:space="preserve">
<value>Security Code</value>
<value>Varnostna koda</value>
</data>
<data name="TypeCard" xml:space="preserve">
<value>Kartica</value>
@@ -997,148 +997,148 @@
<value>Varni zapisek</value>
</data>
<data name="Address1" xml:space="preserve">
<value>Address 1</value>
<value>Naslov 1</value>
</data>
<data name="Address2" xml:space="preserve">
<value>Address 2</value>
<value>Naslov 2</value>
</data>
<data name="Address3" xml:space="preserve">
<value>Address 3</value>
<value>Naslov 3</value>
</data>
<data name="April" xml:space="preserve">
<value>April</value>
</data>
<data name="August" xml:space="preserve">
<value>August</value>
<value>Avgust</value>
</data>
<data name="Brand" xml:space="preserve">
<value>Brand</value>
</data>
<data name="CardholderName" xml:space="preserve">
<value>Cardholder Name</value>
<value>Imetnik kartice</value>
</data>
<data name="CityTown" xml:space="preserve">
<value>City / Town</value>
<value>Mesto</value>
</data>
<data name="Company" xml:space="preserve">
<value>Company</value>
<value>Podjetje</value>
</data>
<data name="Country" xml:space="preserve">
<value>Country</value>
<value>Država</value>
</data>
<data name="December" xml:space="preserve">
<value>December</value>
</data>
<data name="Dr" xml:space="preserve">
<value>Dr</value>
<value>Dr.</value>
</data>
<data name="ExpirationMonth" xml:space="preserve">
<value>Expiration Month</value>
<value>Mesec poteka</value>
</data>
<data name="ExpirationYear" xml:space="preserve">
<value>Expiration Year</value>
<value>Leto poteka</value>
</data>
<data name="February" xml:space="preserve">
<value>February</value>
<value>Februar</value>
</data>
<data name="FirstName" xml:space="preserve">
<value>First Name</value>
<value>Ime</value>
</data>
<data name="January" xml:space="preserve">
<value>January</value>
<value>Januar</value>
</data>
<data name="July" xml:space="preserve">
<value>July</value>
<value>Julij</value>
</data>
<data name="June" xml:space="preserve">
<value>June</value>
<value>Junij</value>
</data>
<data name="LastName" xml:space="preserve">
<value>Last Name</value>
<value>Priimek</value>
</data>
<data name="LicenseNumber" xml:space="preserve">
<value>License Number</value>
<value>Številka vozniškega dovoljenja</value>
</data>
<data name="March" xml:space="preserve">
<value>March</value>
<value>Marec</value>
</data>
<data name="May" xml:space="preserve">
<value>May</value>
<value>Maj</value>
</data>
<data name="MiddleName" xml:space="preserve">
<value>Middle Name</value>
<value>Srednje ime</value>
</data>
<data name="Mr" xml:space="preserve">
<value>Mr</value>
<value>G.</value>
</data>
<data name="Mrs" xml:space="preserve">
<value>Mrs</value>
<value>Ga.</value>
</data>
<data name="Ms" xml:space="preserve">
<value>Ms</value>
<value>Gdč.</value>
</data>
<data name="November" xml:space="preserve">
<value>November</value>
</data>
<data name="October" xml:space="preserve">
<value>October</value>
<value>Oktober</value>
</data>
<data name="PassportNumber" xml:space="preserve">
<value>Passport Number</value>
<value>Številka potnega lista</value>
</data>
<data name="Phone" xml:space="preserve">
<value>Phone</value>
<value>Telefon</value>
</data>
<data name="September" xml:space="preserve">
<value>September</value>
</data>
<data name="SSN" xml:space="preserve">
<value>Social Security Number</value>
<value>EMŠO</value>
</data>
<data name="StateProvince" xml:space="preserve">
<value>State / Province</value>
<value>Regija / provinca</value>
</data>
<data name="Title" xml:space="preserve">
<value>Title</value>
<value>Naziv</value>
</data>
<data name="ZipPostalCode" xml:space="preserve">
<value>Zip / Postal Code</value>
<value>Poštna številka</value>
</data>
<data name="Address" xml:space="preserve">
<value>Address</value>
<value>Naslov</value>
</data>
<data name="Expiration" xml:space="preserve">
<value>Expiration</value>
<value>Datum poteka</value>
</data>
<data name="DisableWebsiteIcons" xml:space="preserve">
<value>Disable Website Icons</value>
<value>Onemogoči ikone spletnih mest</value>
</data>
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
<value>Website Icons provide a recognizable image next to each login item in your vault.</value>
<value>Ikone spletnih mest ponujajo prepoznavne ikone zraven prijav v vašem trezorju.</value>
</data>
<data name="IconsUrl" xml:space="preserve">
<value>Icons Server URL</value>
<value>Ikone URL strežnikov</value>
</data>
<data name="AutofillWithBitwarden" xml:space="preserve">
<value>Auto-fill with Bitwarden</value>
</data>
<data name="VaultIsLocked" xml:space="preserve">
<value>Vault is locked</value>
<value>Trezor je zaklenjen.</value>
</data>
<data name="GoToMyVault" xml:space="preserve">
<value>Go to my vault</value>
<value>Pojdi v moj trezor.</value>
</data>
<data name="Collections" xml:space="preserve">
<value>Collections</value>
<value>Zbirke</value>
</data>
<data name="NoItemsCollection" xml:space="preserve">
<value>There are no items in this collection.</value>
<value>Ta zbirka še nima zapisov.</value>
</data>
<data name="NoItemsFolder" xml:space="preserve">
<value>There are no items in this folder.</value>
<value>V tej mapi ni zapisov.</value>
</data>
<data name="NoItemsTrash" xml:space="preserve">
<value>There are no items in the trash.</value>
<value>Koš je prazen.</value>
</data>
<data name="AutofillAccessibilityService" xml:space="preserve">
<value>Auto-fill Accessibility Service</value>
@@ -1150,7 +1150,7 @@
<value>Use the Bitwarden auto-fill service to fill logins, credit cards, and identity information into other apps.</value>
</data>
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
<value>Open Autofill Settings</value>
<value>Nastavitve samodejnega izpolnjevanja</value>
</data>
<data name="FaceID" xml:space="preserve">
<value>Face ID</value>
@@ -1172,28 +1172,28 @@
<value>We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings &gt; System &gt; Languages and input &gt; Advanced &gt; Autofill service.</value>
</data>
<data name="CustomFieldName" xml:space="preserve">
<value>Custom Field Name</value>
<value>Ime polja po meri</value>
</data>
<data name="FieldTypeBoolean" xml:space="preserve">
<value>Boolean</value>
</data>
<data name="FieldTypeHidden" xml:space="preserve">
<value>Hidden</value>
<value>Skrito</value>
</data>
<data name="FieldTypeText" xml:space="preserve">
<value>Text</value>
<value>Besedilo</value>
</data>
<data name="NewCustomField" xml:space="preserve">
<value>New Custom Field</value>
<value>Novo polje po meri</value>
</data>
<data name="SelectTypeField" xml:space="preserve">
<value>What type of custom field do you want to add?</value>
</data>
<data name="Remove" xml:space="preserve">
<value>Remove</value>
<value>Odstrani</value>
</data>
<data name="NewUri" xml:space="preserve">
<value>New URI</value>
<value>Nov URI</value>
</data>
<data name="URIPosition" xml:space="preserve">
<value>URI {0}</value>
@@ -1203,17 +1203,17 @@
<value>Base domain</value>
</data>
<data name="Default" xml:space="preserve">
<value>Default</value>
<value>Privzeto</value>
</data>
<data name="Exact" xml:space="preserve">
<value>Exact</value>
<value>Točno</value>
</data>
<data name="Host" xml:space="preserve">
<value>Host</value>
<value>Gostitelj</value>
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
</data>
<data name="RegEx" xml:space="preserve">
<value>Regular expression</value>
<value>Regularni izraz</value>
<comment>A programming term, also known as 'RegEx'.</comment>
</data>
<data name="StartsWith" xml:space="preserve">
@@ -1296,117 +1296,117 @@
<value>The easiest way to add new logins to your vault is by using the Bitwarden Password AutoFill extension. Learn more about using the Bitwarden Password AutoFill extension by navigating to the "Settings" screen.</value>
</data>
<data name="InvalidEmail" xml:space="preserve">
<value>Invalid email address.</value>
<value>Neveljaven e-poštni naslov.</value>
</data>
<data name="Cards" xml:space="preserve">
<value>Cards</value>
<value>Plačilne kartice</value>
</data>
<data name="Identities" xml:space="preserve">
<value>Identities</value>
<value>Identitete</value>
</data>
<data name="Logins" xml:space="preserve">
<value>Prijave</value>
</data>
<data name="SecureNotes" xml:space="preserve">
<value>Secure Notes</value>
<value>Varni zapiski</value>
</data>
<data name="AllItems" xml:space="preserve">
<value>All Items</value>
<value>Vsi elementi</value>
</data>
<data name="URIs" xml:space="preserve">
<value>URIs</value>
<comment>Plural form of a URI</comment>
</data>
<data name="CheckingPassword" xml:space="preserve">
<value>Checking password...</value>
<value>Preverjanje gesla...</value>
<comment>A loading message when doing an exposed password check.</comment>
</data>
<data name="CheckPassword" xml:space="preserve">
<value>Check if password has been exposed.</value>
<value>Preveri ali je bilo geslo izpostavljeno.</value>
</data>
<data name="PasswordExposed" xml:space="preserve">
<value>This password has been exposed {0} time(s) in data breaches. You should change it.</value>
<value>To geslo je bilo med ukradenimi podatki izpostavljeno $VALUE$ krat. Morali bi ga zamenjati.</value>
</data>
<data name="PasswordSafe" xml:space="preserve">
<value>This password was not found in any known data breaches. It should be safe to use.</value>
<value>To geslo ni bilo najdeno med do sedaj znanimi krajami podatkov. Njegova uporaba bi morala biti varna.</value>
</data>
<data name="IdentityName" xml:space="preserve">
<value>Identity Name</value>
<value>Ime identitete</value>
</data>
<data name="Value" xml:space="preserve">
<value>Value</value>
<value>Vrednost</value>
</data>
<data name="PasswordHistory" xml:space="preserve">
<value>Password History</value>
<value>Zgodovina gesla</value>
</data>
<data name="Types" xml:space="preserve">
<value>Types</value>
<value>Vrste</value>
</data>
<data name="NoPasswordsToList" xml:space="preserve">
<value>No passwords to list.</value>
<value>Ni gesel za prikazat.</value>
</data>
<data name="NoItemsToList" xml:space="preserve">
<value>There are no items to list.</value>
<value>Ni vnosov za prikazat.</value>
</data>
<data name="SearchCollection" xml:space="preserve">
<value>Search collection</value>
<value>Preišči zbirko</value>
</data>
<data name="SearchFolder" xml:space="preserve">
<value>Search folder</value>
<value>Preišči mapo</value>
</data>
<data name="SearchType" xml:space="preserve">
<value>Search type</value>
<value>Način iskanja</value>
</data>
<data name="Type" xml:space="preserve">
<value>Type</value>
<value>Vrsta</value>
</data>
<data name="MoveDown" xml:space="preserve">
<value>Move Down</value>
<value>Premakni navzdol</value>
</data>
<data name="MoveUp" xml:space="preserve">
<value>Move Up</value>
<value>Premakni navzgor</value>
</data>
<data name="Miscellaneous" xml:space="preserve">
<value>Miscellaneous</value>
<value>Razno</value>
</data>
<data name="Ownership" xml:space="preserve">
<value>Ownership</value>
<value>Lastništvo</value>
</data>
<data name="WhoOwnsThisItem" xml:space="preserve">
<value>Who owns this item?</value>
<value>Kdo je lastnik tega vnosa?</value>
</data>
<data name="NoCollectionsToList" xml:space="preserve">
<value>There are no collections to list.</value>
<value>Ni zbirk za prikazat.</value>
</data>
<data name="ItemShared" xml:space="preserve">
<value>Item has been shared.</value>
<value>Vnos je bil deljen.</value>
</data>
<data name="SelectOneCollection" xml:space="preserve">
<value>You must select at least one collection.</value>
<value>Izbrati moraš vsaj eno zbirko.</value>
</data>
<data name="Share" xml:space="preserve">
<value>Share</value>
<value>Deli</value>
</data>
<data name="ShareItem" xml:space="preserve">
<value>Share Item</value>
<value>Delite vnos</value>
</data>
<data name="NoOrgsToList" xml:space="preserve">
<value>No organizations to list.</value>
<value>Ni organizacij za prikazat.</value>
</data>
<data name="ShareDesc" xml:space="preserve">
<value>Choose an organization that you wish to share this item with. Sharing transfers ownership of the item to the organization. You will no longer be the direct owner of this item once it has been shared.</value>
<value>Izberite organizacijo s katero želite deliti ta predmet. Lastništvo predmeta se ob deljenju prenese na organizacijo s katero predmet delite.</value>
</data>
<data name="NumberOfWords" xml:space="preserve">
<value>Number of Words</value>
<value>Število besed</value>
</data>
<data name="Passphrase" xml:space="preserve">
<value>Passphrase</value>
<value>Šifrirna fraza</value>
</data>
<data name="WordSeparator" xml:space="preserve">
<value>Word Separator</value>
<value>Ločilo besed</value>
</data>
<data name="Clear" xml:space="preserve">
<value>Clear</value>
<value>Počisti</value>
<comment>To clear something out. example: To clear browser history.</comment>
</data>
<data name="Generator" xml:space="preserve">
@@ -1414,7 +1414,7 @@
<comment>Short for "Password Generator"</comment>
</data>
<data name="NoFoldersToList" xml:space="preserve">
<value>There are no folders to list.</value>
<value>Ni map za prikazat.</value>
</data>
<data name="FingerprintPhrase" xml:space="preserve">
<value>Fingerprint Phrase</value>
@@ -1425,13 +1425,13 @@
<comment>A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing.</comment>
</data>
<data name="ShareVaultConfirmation" xml:space="preserve">
<value>Bitwarden allows you to share your vault with others by using an organization account. Would you like to visit the bitwarden.com website to learn more?</value>
<value>Bitwaren omogoča delitev vašega trezorja z drugimi s pomočjo organizacijskega računa. Želite obiskati bitwarden.com spletno stran za več informacij?</value>
</data>
<data name="ExportVault" xml:space="preserve">
<value>Export Vault</value>
<value>Izvoz trezorja</value>
</data>
<data name="LockNow" xml:space="preserve">
<value>Lock Now</value>
<value>Zakleni zdaj</value>
</data>
<data name="PIN" xml:space="preserve">
<value>PIN</value>
@@ -1440,81 +1440,81 @@
<value>Odkleni</value>
</data>
<data name="ThirtyMinutes" xml:space="preserve">
<value>30 minutes</value>
<value>30 minut</value>
</data>
<data name="SetPINDescription" xml:space="preserve">
<value>Set your PIN code for unlocking Bitwarden. Your PIN settings will be reset if you ever fully log out of the application.</value>
</data>
<data name="LoggedInAsOn" xml:space="preserve">
<value>Logged in as {0} on {1}.</value>
<value>Prijavljeni kot {0} na {1}.</value>
<comment>ex: Logged in as user@example.com on bitwarden.com.</comment>
</data>
<data name="VaultLockedMasterPassword" xml:space="preserve">
<value>Your vault is locked. Verify your master password to continue.</value>
<value>Vaš trezor je zaklenjen. Potrdite vaše glavno geslo za nadaljevanje.</value>
</data>
<data name="VaultLockedPIN" xml:space="preserve">
<value>Your vault is locked. Verify your PIN code to continue.</value>
<value>Vaš trezor je zaklenjen. Potrdite PIN kodo za nadaljevanje.</value>
</data>
<data name="Dark" xml:space="preserve">
<value>Dark</value>
<value>Temno</value>
<comment>A dark color</comment>
</data>
<data name="Light" xml:space="preserve">
<value>Light</value>
<value>Svetlo</value>
<comment>A light color</comment>
</data>
<data name="FiveMinutes" xml:space="preserve">
<value>5 minutes</value>
<value>5 minut</value>
</data>
<data name="TenSeconds" xml:space="preserve">
<value>10 seconds</value>
<value>10 sekund</value>
</data>
<data name="ThirtySeconds" xml:space="preserve">
<value>30 seconds</value>
<value>30 sekund</value>
</data>
<data name="TwentySeconds" xml:space="preserve">
<value>20 seconds</value>
<value>20 sekund</value>
</data>
<data name="TwoMinutes" xml:space="preserve">
<value>2 minutes</value>
<value>2 minuti</value>
</data>
<data name="ClearClipboard" xml:space="preserve">
<value>Clear Clipboard</value>
<value>Počisti odložišče</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="ClearClipboardDescription" xml:space="preserve">
<value>Automatically clear copied values from your clipboard.</value>
<value>Samodejno počisti kopirane vrednosti iz odložišča.</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>Default URI Match Detection</value>
<value>Privzet način ujemanja URI</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
<value>Choose the default way that URI match detection is handled for logins when performing actions such as auto-fill.</value>
<value>Izberi privzet način URI ujemanja med prijavljanjem s samodejnim izpolnjevanjem.</value>
</data>
<data name="Theme" xml:space="preserve">
<value>Theme</value>
<value>Tema</value>
<comment>Color theme</comment>
</data>
<data name="ThemeDescription" xml:space="preserve">
<value>Change the application's color theme.</value>
</data>
<data name="RestartIsRequired" xml:space="preserve">
<value>Restart is required.</value>
<value>Potreben je ponovni zagon.</value>
<comment>Referring to restarting the application.</comment>
</data>
<data name="Restarting" xml:space="preserve">
<value>Restarting...</value>
<value>Ponovni zagon...</value>
</data>
<data name="CopyNotes" xml:space="preserve">
<value>Copy Notes</value>
</data>
<data name="Exit" xml:space="preserve">
<value>Exit</value>
<value>Zapri</value>
</data>
<data name="ExitConfirmation" xml:space="preserve">
<value>Are you sure you want to exit Bitwarden?</value>
<value>Ali res želite zapustiti Bitwarden?</value>
</data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve">
<value>Do you want to require unlocking with your master password when the application is restarted?</value>
@@ -1552,13 +1552,13 @@
<value>Include Number</value>
</data>
<data name="Download" xml:space="preserve">
<value>Download</value>
<value>Prenesi</value>
</data>
<data name="Shared" xml:space="preserve">
<value>Shared</value>
<value>V skupni rabi</value>
</data>
<data name="ToggleVisibility" xml:space="preserve">
<value>Toggle Visibility</value>
<value>Preklopi vidljivost</value>
</data>
<data name="LoginExpired" xml:space="preserve">
<value>Your login session has expired.</value>
@@ -1645,7 +1645,7 @@
<value>No password fields detected</value>
</data>
<data name="SoftDeleting" xml:space="preserve">
<value>Sending to trash...</value>
<value>Pošiljanje v koš...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="ItemSoftDeleted" xml:space="preserve">
@@ -1653,35 +1653,35 @@
<comment>Confirmation message after successfully soft-deleting a login</comment>
</data>
<data name="Restore" xml:space="preserve">
<value>Restore</value>
<value>Obnovi</value>
<comment>Restores an entity (verb).</comment>
</data>
<data name="Restoring" xml:space="preserve">
<value>Restoring...</value>
<value>Obnavljanje...</value>
<comment>Message shown when interacting with the server</comment>
</data>
<data name="ItemRestored" xml:space="preserve">
<value>Item has been restored.</value>
<value>Vnos je bil obnovljen.</value>
<comment>Confirmation message after successfully restoring a soft-deleted item</comment>
</data>
<data name="Trash" xml:space="preserve">
<value>Trash</value>
<value>Koš</value>
<comment>(noun) Location of deleted items which have not yet been permanently deleted</comment>
</data>
<data name="SearchTrash" xml:space="preserve">
<value>Search trash</value>
<value>Preišči koš</value>
<comment>(action prompt) Label for the search text field when viewing the trash folder</comment>
</data>
<data name="DoYouReallyWantToPermanentlyDeleteCipher" xml:space="preserve">
<value>Do you really want to permanently delete? This cannot be undone.</value>
<value>Ste prepričani, da želite trajno izbrisati? Tega ni mogoče povrniti.</value>
<comment>Confirmation alert message when permanently deleteing a cipher.</comment>
</data>
<data name="DoYouReallyWantToRestoreCipher" xml:space="preserve">
<value>Do you really want to restore this item?</value>
<value>Ali res želite povrniti ta vnos?</value>
<comment>Confirmation alert message when restoring a soft-deleted cipher.</comment>
</data>
<data name="DoYouReallyWantToSoftDeleteCipher" xml:space="preserve">
<value>Do you really want to send to the trash?</value>
<value>Ali res želite poslati v koš?</value>
<comment>Confirmation alert message when soft-deleting a cipher.</comment>
</data>
<data name="BiometricInvalidated" xml:space="preserve">
@@ -1736,13 +1736,13 @@
<value>Contain one or more of the following special characters: {0}</value>
</data>
<data name="MasterPasswordPolicyValidationTitle" xml:space="preserve">
<value>Invalid Password</value>
<value>Napačno geslo</value>
</data>
<data name="MasterPasswordPolicyValidationMessage" xml:space="preserve">
<value>Password does not meet organization requirements. Please check the policy information and try again.</value>
</data>
<data name="Loading" xml:space="preserve">
<value>Loading</value>
<value>Nalaganje</value>
</data>
<data name="AcceptPolicies" xml:space="preserve">
<value>By activating this switch you agree to the following:
@@ -1803,15 +1803,15 @@
<value>An organization policy is affecting your ownership options.</value>
</data>
<data name="Send" xml:space="preserve">
<value>Send</value>
<value>Pošlji</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AllSends" xml:space="preserve">
<value>All Sends</value>
<value>Vso poslano</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Sends" xml:space="preserve">
<value>Sends</value>
<value>Poslano</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NameInfo" xml:space="preserve">
@@ -1858,7 +1858,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Expired" xml:space="preserve">
<value>Expired</value>
<value>Poteklo</value>
</data>
<data name="MaximumAccessCount" xml:space="preserve">
<value>Maximum Access Count</value>
@@ -1874,23 +1874,23 @@
<value>Current Access Count</value>
</data>
<data name="NewPassword" xml:space="preserve">
<value>New Password</value>
<value>Novo geslo</value>
</data>
<data name="PasswordInfo" xml:space="preserve">
<value>Optionally require a password for users to access this Send.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="RemovePassword" xml:space="preserve">
<value>Remove Password</value>
<value>Odstrani geslo</value>
</data>
<data name="AreYouSureRemoveSendPassword" xml:space="preserve">
<value>Are you sure you want to remove the password?</value>
<value>Ste prepričani, da želite odstraniti geslo?</value>
</data>
<data name="RemovingSendPassword" xml:space="preserve">
<value>Removing password</value>
<value>Odstranjevanje gesla</value>
</data>
<data name="SendPasswordRemoved" xml:space="preserve">
<value>Password has been removed.</value>
<value>Geslo je bilo odstranjeno.</value>
</data>
<data name="NotesInfo" xml:space="preserve">
<value>Private notes about this Send.</value>
@@ -1909,63 +1909,63 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
<value>Copy Link</value>
<value>Kopiraj povezavo</value>
</data>
<data name="ShareLink" xml:space="preserve">
<value>Share Link</value>
<value>Deli povezavo</value>
</data>
<data name="SendLink" xml:space="preserve">
<value>Send link</value>
<value>Pošlji povezavo</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SearchSends" xml:space="preserve">
<value>Search Sends</value>
<value>Išči poslano</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="EditSend" xml:space="preserve">
<value>Edit Send</value>
<value>Uredi poslano</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddSend" xml:space="preserve">
<value>Add Send</value>
<value>Dodaj poslano</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AreYouSureDeleteSend" xml:space="preserve">
<value>Are you sure you want to delete this Send?</value>
<value>Ali želite izbrisati to poslano?</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDeleted" xml:space="preserve">
<value>Send has been deleted.</value>
<value>Poslano je bilo izbrisano.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendUpdated" xml:space="preserve">
<value>Send updated.</value>
<value>Poslano posodobljeno.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NewSendCreated" xml:space="preserve">
<value>New send created.</value>
<value>Ustvarjeno novo poslano.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="OneDay" xml:space="preserve">
<value>1 day</value>
<value>1 dan</value>
</data>
<data name="TwoDays" xml:space="preserve">
<value>2 days</value>
<value>2 dneva</value>
</data>
<data name="ThreeDays" xml:space="preserve">
<value>3 days</value>
<value>3 dni</value>
</data>
<data name="SevenDays" xml:space="preserve">
<value>7 days</value>
<value>7 dni</value>
</data>
<data name="ThirtyDays" xml:space="preserve">
<value>30 days</value>
<value>30 dni</value>
</data>
<data name="Custom" xml:space="preserve">
<value>Custom</value>
<value>Po meri</value>
</data>
<data name="ShareOnSave" xml:space="preserve">
<value>Share this Send upon save.</value>
<value>Deli to poslano po shranjevanju.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDisabledWarning" xml:space="preserve">
@@ -1973,7 +1973,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AboutSend" xml:space="preserve">
<value>About Send</value>
<value>O poslanem</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Додај „Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1992,12 +1992,12 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Поновно тражење главне лозинке</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Потврда главне лозинке</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Ова акција је заштићена, да бисте наставили, поново унесите своју главну лозинку да бисте проверили идентитет.</value>
</data>
</root>

View File

@@ -1905,7 +1905,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Lägg till en Send</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1988,16 +1988,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Du måste verifiera din e-post för att använda filer med Send. </value>
<value>Du måste verifiera din e-postadress för att använda filer med Send. Du kan verifiera din e-postadress i webbvalvet.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Återupprepa huvudlösenord</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Bekräfta huvudlösenord</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Denna åtgärd är skyddad. För att fortsätta, vänligen verifiera din identitet genom att ange ditt huvudlösenord.</value>
</data>
</root>

View File

@@ -206,7 +206,7 @@
<value>பிழையறிக்கை தாக்கல் செய்</value>
</data>
<data name="FileBugReportDescription" xml:space="preserve">
<value>Open an issue at our GitHub repository.</value>
<value>GitHub களஞ்சியத்தில் ஒரு சிக்கலைத் திற.</value>
</data>
<data name="FingerprintDirection" xml:space="preserve">
<value>உங்கள் கைரேகையைப் பயன்படுத்தி சரிபார்க்கவும்</value>
@@ -341,7 +341,7 @@
<comment>The title for the tools page.</comment>
</data>
<data name="URI" xml:space="preserve">
<value>யுஆர்ஐ</value>
<value>உரலி</value>
<comment>Label for a uri/url.</comment>
</data>
<data name="UseFingerprintToUnlock" xml:space="preserve">
@@ -406,7 +406,7 @@
<value>தன்னிரப்பி சேவை</value>
</data>
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
<value>தெளிவற்ற எழுத்துக்களைத் தவிர்க்கவும்</value>
<value>தெளிவற்ற எழுத்துக்களைத் தவிர்</value>
</data>
<data name="BitwardenAppExtension" xml:space="preserve">
<value>Bitwarden செயலி நீட்டிப்பு</value>
@@ -540,7 +540,7 @@
<value>பெட்டகம் நேரமுடிவு செயல்</value>
</data>
<data name="VaultTimeoutLogOutConfirmation" xml:space="preserve">
<value>Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?</value>
<value>வெளியேறுதல் உமது பெட்டகத்திற்கான எல்லா அணுகலையும் அகற்றும் மற்றும் நேரமுடிவு காலத்திற்குப் பிறகு இயங்கலை அங்கீகாரம் தேவைப்படுகிறது. இவ்வமைப்பை உறுதியாக பயன்படுத்த வேண்டுமா?</value>
</data>
<data name="LoggingIn" xml:space="preserve">
<value>உள்நுழைகிறது...</value>
@@ -604,7 +604,7 @@
<comment>Confirmation, like "Ok, I understand it"</comment>
</data>
<data name="OptionDefaults" xml:space="preserve">
<value>Option defaults are set from the main Bitwarden app's password generator tool.</value>
<value>விருப்ப இயல்புநிலைகள் முதன்மை Bitwarden செயலியின் கடவுச்சொல் உருவாக்கி கருவியிலிருந்து அமைக்கப்படுகிறது.</value>
</data>
<data name="Options" xml:space="preserve">
<value>விருப்பங்கள்</value>
@@ -628,7 +628,7 @@
<value>தற்போதைய கடவுச்சொல்லை மேலெழுத உறுதியா?</value>
</data>
<data name="PushNotificationAlert" xml:space="preserve">
<value>Bitwarden keeps your vault automatically synced by using push notifications. For the best possible experience, please select "Allow" on the following prompt when asked to enable push notifications.</value>
<value>push அறிவிப்புகள் பயன்படுத்தி Bitwarden உம் பெட்டகத்தை தானாக ஒத்திசைகிறது. சிறந்த சாத்தியமான அனுபவத்திற்கு, பின்வரும் தூண்டியில் push அறிவிப்புகளை இயக்கச்சொல்லி கேட்டால் "அனுமதி"ஐ தேர்ந்தெடுக்கவும்.</value>
<comment>Push notifications for apple products</comment>
</data>
<data name="RateTheApp" xml:space="preserve">
@@ -689,7 +689,7 @@
<value>இரு-படி உள்நுழைவு</value>
</data>
<data name="TwoStepLoginConfirmation" xml:space="preserve">
<value>Two-step login makes your account more secure by requiring you to verify your login with another device such as a security key, authenticator app, SMS, phone call, or email. Two-step login can be enabled on the bitwarden.com web vault. Do you want to visit the website now?</value>
<value>பாதுகாப்பு விசை, அங்கீகார செயலி, குறுஞ்செய்தி, தொலைபேசி அழைப்பு அ மின்னஞ்சல் போன்ற மற்றொரு சாதனத்துடன் உங்கள் உள்நுழைவை சரிபார்க்குமாறு கோருவதன் மூலம் இரு-படி உள்நுழைவு உங்கள் கணக்கை மிகவும் பாதுகாப்பாக்குகிறது. bitwarden.com வலை பெட்டகத்தில் இரு-படி உள்நுழைவை இயக்க முடியும். நீங்கள் இப்போது வலைத்தளத்தைப் பார்வையிட வேண்டுமா?</value>
</data>
<data name="UnlockWith" xml:space="preserve">
<value>{0} மூலம் பூட்டவிழ்</value>
@@ -735,7 +735,7 @@
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
</data>
<data name="BitwardenAutofillServiceOverlay" xml:space="preserve">
<value>When you select an input field and see a Bitwarden auto-fill overlay, you can tap it to launch the auto-fill service.</value>
<value>நீங்கள் ஓர் உள்ளீடு புலத்தை தேர்ந்து Bitwarden தன்னிரப்பி மேலடுக்கை பார்க்கும்போது, தன்னிரப்பி சேவையை தொடங்க நீங்கள் அதை தட்டலாம்.</value>
</data>
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
<value>உங்கள் பெட்டகத்திலிருந்து உருப்படியைத் தானாக-நிரப்ப இந்த அறிவிப்பைத் தட்டவும்.</value>
@@ -744,10 +744,10 @@
<value>அணுகல்தன்மை அமைவுகளைத் திற</value>
</data>
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
<value>1. On the Android Accessibility Settings screen, touch "Bitwarden" under the Services heading.</value>
<value>௧. Android அணுகல்தன்மை அமைப்புகள் திரையில், சேவைகள் தலைப்பின் கீழ் "Bitwarden" ஐத் தொடு.</value>
</data>
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
<value>2. Switch on the toggle and press OK to accept.</value>
<value>. நிலைமாற்றியை இயக்கி ஏற்றுக்கொள்ள சரியை அழுத்து.</value>
</data>
<data name="Disabled" xml:space="preserve">
<value>முடக்கப்பட்டது</value>
@@ -759,7 +759,7 @@
<value>நிலை</value>
</data>
<data name="BitwardenAutofillServiceAlert2" xml:space="preserve">
<value>The easiest way to add new logins to your vault is from the Bitwarden Auto-fill Service. Learn more about using the Bitwarden Auto-fill Service by navigating to the "Settings" screen.</value>
<value>உம் பெட்டகத்திற்கு புது உள்நுழைவுகளை சேர்ப்பதற்கான மிக எளிய வழி Bitwarden தன்னிரப்பி சேவையிலிருந்தே. "அமைப்புகள்" திரைக்கு சென்று Bitwarden தன்னிரப்பி சேவையை பயன்படுத்துவது பற்றி மேலும் அறிக.</value>
</data>
<data name="Autofill" xml:space="preserve">
<value>தானாக-நிரப்பு</value>
@@ -768,7 +768,7 @@
<value>இவ்வுருப்படியை தானாக நிரப்ப அ பார்க்க வேண்டுமா?</value>
</data>
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
<value>Are you sure you want to auto-fill this item? It is not a complete match for "{0}".</value>
<value>இவ்வுருப்படியை உறுதியாக தன்னிரப்ப வேண்டுமா? இது "{0}"க்கான முழுமையான பொருத்தமல்ல.</value>
</data>
<data name="MatchingItems" xml:space="preserve">
<value>பொருந்தும் உருப்படிகள்</value>
@@ -780,7 +780,7 @@
<value>தேடுக</value>
</data>
<data name="BitwardenAutofillServiceSearch" xml:space="preserve">
<value>You are searching for an auto-fill item for "{0}".</value>
<value>"{0}"க்கான தண்னிரப்ப உருப்படியை தேடிக்கொண்டிருக்கிறீர்கள்.</value>
</data>
<data name="ShareVault" xml:space="preserve">
<value>உங்கள் பெட்டகத்தைப் பகிர்</value>
@@ -900,7 +900,7 @@
<value>Disable Automatic TOTP Copy</value>
</data>
<data name="PremiumRequired" xml:space="preserve">
<value>A premium membership is required to use this feature.</value>
<value>இவ்வம்சத்தை பயன்படுத்த உயர்தர உறுப்பினர் தகுதி தேவை.</value>
</data>
<data name="AttachementAdded" xml:space="preserve">
<value>இணைப்பு சேர்க்கப்பட்டது</value>
@@ -936,36 +936,36 @@
<value>மேலும் அறிக</value>
</data>
<data name="ApiUrl" xml:space="preserve">
<value>API Server URL</value>
<value>API தேக்க உரலி</value>
</data>
<data name="CustomEnvironment" xml:space="preserve">
<value>Custom Environment</value>
<value>விருப்பிற்கேற்ற சுற்றுசூழல்</value>
</data>
<data name="CustomEnvironmentFooter" xml:space="preserve">
<value>For advanced users. You can specify the base URL of each service independently.</value>
<value>மேம்பட்ட பயனர்களுக்காக. ஒவ்வொரு சேவைக்கும் அடித்தள உரலியை சார்பின்றி குறிப்பிடலாம்.</value>
</data>
<data name="EnvironmentSaved" xml:space="preserve">
<value>The environment URLs have been saved.</value>
<value>சுற்றுசூழல் உரலிகள் சேமிக்கப்பட்டன.</value>
</data>
<data name="FormattedIncorrectly" xml:space="preserve">
<value>{0} சரியாக வடிவமைக்கப்படவில்லை.</value>
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
</data>
<data name="IdentityUrl" xml:space="preserve">
<value>Identity Server URL</value>
<value>அடையாள தேக்க உரலி</value>
<comment>"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management</comment>
</data>
<data name="SelfHostedEnvironment" xml:space="preserve">
<value>Self-hosted Environment</value>
<value>சுய-வழங்கப்பட்ட சுற்றுசூழல்</value>
</data>
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
<value>Specify the base URL of your on-premise hosted Bitwarden installation.</value>
</data>
<data name="ServerUrl" xml:space="preserve">
<value>தேக்க யுஆர்எல்</value>
<value>தேக்க உரலி</value>
</data>
<data name="WebVaultUrl" xml:space="preserve">
<value>வலை பெட்டக தேக்க யுஆர்எல்</value>
<value>வலை பெட்டக தேக்க உரலி</value>
</data>
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
<value>உம் பெட்டகத்திலிருந்து உருப்படிகளைக் காண இவ்வறிவிப்பை தட்டவும்.</value>
@@ -1013,7 +1013,7 @@
<value>ஆகஸ்ட்</value>
</data>
<data name="Brand" xml:space="preserve">
<value>Brand</value>
<value>சூட்டுக்குறி</value>
</data>
<data name="CardholderName" xml:space="preserve">
<value>அட்டைதாரரின் பெயர்</value>
@@ -1115,10 +1115,10 @@
<value>வலைத்தள படவுருக்களை முடக்கு</value>
</data>
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
<value>Website Icons provide a recognizable image next to each login item in your vault.</value>
<value>வலைத்தள படவுருக்கள் உம் பெட்டகத்தின் ஒவ்வொரு உள்நுழைவு உருப்படிக்கும் அடுத்ததாக அடையாளங்காணக்கூடிய படத்தை வழங்கும்.</value>
</data>
<data name="IconsUrl" xml:space="preserve">
<value>Icons Server URL</value>
<value>படவுரு தேக்க உரலி</value>
</data>
<data name="AutofillWithBitwarden" xml:space="preserve">
<value>Bitwarden உடன் தானாக-நிரப்புதல்</value>
@@ -1145,10 +1145,10 @@
<value>தன்னிரப்பி அணுகல்தன்மை சேவை</value>
</data>
<data name="AutofillServiceDescription" xml:space="preserve">
<value>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.</value>
<value>Bitwarden தன்னிரப்பி சேவை உள்நுழைவுகள், கடனட்டைகள், மற்றும் அடையாள தகவலை உம் சாதனத்திலிருக்கும் பிற செயலிகளினுள்ளே நிரப்புதலில் உதவ Android தன்னிரப்பி சட்டகத்தை பயன்படுத்துகிறது.</value>
</data>
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
<value>Use the Bitwarden auto-fill service to fill logins, credit cards, and identity information into other apps.</value>
<value>உள்நுழைவுகள், கடனட்டைகள், மற்றும் அடையாள தகவலை பிற செயலிகளினுள்ளே நிரப்ப Bitwarden தன்னிரப்பி சேவையை பயன்படுத்து.</value>
</data>
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
<value>தானாக நிரப்புதல் அமைப்புகளைத் திற</value>
@@ -1167,7 +1167,7 @@
<value>முக அடையாளத்தை சரிபார்க்கவும்</value>
</data>
<data name="WindowsHello" xml:space="preserve">
<value>Windows Hello</value>
<value>விண்டோஸ் ஹலோ</value>
</data>
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
<value>We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings &gt; System &gt; Languages and input &gt; Advanced &gt; Autofill service.</value>
@@ -1194,14 +1194,14 @@
<value>அகற்று</value>
</data>
<data name="NewUri" xml:space="preserve">
<value>New URI</value>
<value>புது உரலி</value>
</data>
<data name="URIPosition" xml:space="preserve">
<value>URI {0}</value>
<value>உரலி {0}</value>
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
</data>
<data name="BaseDomain" xml:space="preserve">
<value>Base domain</value>
<value>அடித்தள களம்</value>
</data>
<data name="Default" xml:space="preserve">
<value>இயல்புநிலை</value>
@@ -1210,18 +1210,18 @@
<value>சரியான</value>
</data>
<data name="Host" xml:space="preserve">
<value>Host</value>
<value>வழங்கி</value>
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
</data>
<data name="RegEx" xml:space="preserve">
<value>Regular expression</value>
<value>சுருங்குறித்தொடர்</value>
<comment>A programming term, also known as 'RegEx'.</comment>
</data>
<data name="StartsWith" xml:space="preserve">
<value>தொடக்கம்</value>
</data>
<data name="URIMatchDetection" xml:space="preserve">
<value>URI Match Detection</value>
<value>உரலி பொருத்தம் கண்டறிதல்</value>
</data>
<data name="MatchDetection" xml:space="preserve">
<value>பொருத்தம் கண்டறிதல்</value>
@@ -1315,7 +1315,7 @@
<value>அனைத்து உருப்படிகளும்</value>
</data>
<data name="URIs" xml:space="preserve">
<value>யுஆர்ஐகள்</value>
<value>உரலிகள்</value>
<comment>Plural form of a URI</comment>
</data>
<data name="CheckingPassword" xml:space="preserve">
@@ -1480,15 +1480,15 @@
<value>௨ நிமிடங்கள்</value>
</data>
<data name="ClearClipboard" xml:space="preserve">
<value>Clear Clipboard</value>
<value>கவ்வுபலகையை துடை</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="ClearClipboardDescription" xml:space="preserve">
<value>Automatically clear copied values from your clipboard.</value>
<value>நகலெடுத்த மதிப்புகளை கவ்வுபலகையிலிருந்து தானாக துடை</value>
<comment>Clipboard is the operating system thing where you copy/paste data to on your device.</comment>
</data>
<data name="DefaultUriMatchDetection" xml:space="preserve">
<value>Default URI Match Detection</value>
<value>இயல்புநிலை உரலி பொருத்தம் கண்டறிதல்</value>
<comment>Default URI match detection for auto-fill.</comment>
</data>
<data name="DefaultUriMatchDetectionDescription" xml:space="preserve">
@@ -1518,20 +1518,20 @@
<value>Bitwarden இலிருந்து வெளியேற விரும்புகிறீர்களா?</value>
</data>
<data name="PINRequireMasterPasswordRestart" xml:space="preserve">
<value>Do you want to require unlocking with your master password when the application is restarted?</value>
<value>செயலி மறுதுவக்கத்தில் பூட்டவிழ்க்க உங்கள் பிரதான கடவுச்சொல்லை கோர வேண்டுமா?</value>
</data>
<data name="Black" xml:space="preserve">
<value>கருப்பு</value>
<comment>The color black</comment>
</data>
<data name="BlacklistedUris" xml:space="preserve">
<value>Blacklisted URIs</value>
<value>தடுப்புப்பட்டியலிடப்பட்ட உரலிகள்</value>
</data>
<data name="BlacklistedUrisDescription" xml:space="preserve">
<value>URIs that are blacklisted will not offer auto-fill. The list should be comma separated. Ex: "https://twitter.com, androidapp://com.twitter.android".</value>
</data>
<data name="DisableSavePrompt" xml:space="preserve">
<value>Disable Save Prompt</value>
<value>சேமிப்பு தூண்டியை முடக்கு</value>
</data>
<data name="DisableSavePromptDescription" xml:space="preserve">
<value>The "Save Prompt" automatically prompts you to save new items to your vault whenever you enter them for the first time.</value>
@@ -1543,7 +1543,7 @@
<value>Auto-fill makes it easy to securely access your Bitwarden vault from other websites and apps. It looks like you have not enabled an auto-fill service for Bitwarden. Enable auto-fill for Bitwarden from the "Settings" screen.</value>
</data>
<data name="ThemeAppliedOnRestart" xml:space="preserve">
<value>Your theme changes will apply when the app is restarted.</value>
<value>உமது தோற்ற மாற்றங்கள் செயலி மறுதுவக்கும்போது செயலாகும்.</value>
</data>
<data name="Capitalize" xml:space="preserve">
<value>பேரெழுத்தாக்கு</value>
@@ -1574,19 +1574,19 @@
<value>பூட்டவிழ்க்க உயிரியளவுகளை பயன்படுத்து</value>
</data>
<data name="AccessibilityOverlayPermissionAlert" xml:space="preserve">
<value>Bitwarden needs attention - See "Auto-fill Accessibility Service" from Bitwarden Settings</value>
<value>Bitwardenக்கு கவனம் தேவை - Bitwarden அமைப்புகளிலிருந்து "தன்னிரப்பி அணுகல்தன்மை சேவை" ஐப் பார்</value>
</data>
<data name="BitwardenAutofillServiceOverlayPermission" xml:space="preserve">
<value>3. On the Android App Settings screen for Bitwarden, go to the "Display over other apps" options (under Advanced) and tap the toggle to enable overlay support.</value>
<value>. Bitwarden-க்கான Android செயலி அமைப்புகள் திரையில், "பிற ஆப்ஸின் மேலே காட்டு" தெரிவுகளுக்கு (மேம்பட்டவை அடியில்) செல் மற்றும் மேலடுக்கு ஆதரவை இயக்க நிலைமாற்றியை தட்டுக.</value>
</data>
<data name="OverlayPermission" xml:space="preserve">
<value>அனுமதி</value>
</data>
<data name="BitwardenAutofillServiceOpenOverlayPermissionSettings" xml:space="preserve">
<value>Open Overlay Permission Settings</value>
<value>மேலடுக்கு அனுமதி அமைப்புகளை திற</value>
</data>
<data name="BitwardenAutofillServiceStep3" xml:space="preserve">
<value>3. On the Android App Settings screen for Bitwarden, select "Display over other apps" (under "Advanced") and switch on the toggle to allow the overlay.</value>
<value>. Bitwarden-க்கான Android செயலி அமைப்புகள் திரையில், "பிற ஆப்ஸின் மேலே காட்டு" (மேம்பட்டவை அடியில்) என்பதை தேர்ந்தெடு மற்றும் மேலடுக்கை அனுமதிக்க நிலைமாற்றியை இயக்குக.</value>
</data>
<data name="Denied" xml:space="preserve">
<value>மறுக்கப்பட்டது</value>
@@ -1601,13 +1601,13 @@
<value>உம் பெட்டக தரவை ஏற்றுமதி செய்ய பிரதான கடவுச்சொல்லை உள்ளிடு.</value>
</data>
<data name="ExportVaultWarning" xml:space="preserve">
<value>This export contains your vault data in an unencrypted format. You should not store or send the exported file over unsecure channels (such as email). Delete it immediately after you are done using it.</value>
<value>இவ்வேற்றுமதி உம் பெட்டக தரவை மறையாக்கப்படா வடிவில் கொண்டுள்ளது. சேமிக்கவோ பாதுகாப்பற்ற தடங்களில் (மின்னஞ்சல் போன்றவை) அனுப்பவோ கூடாது. பயன்படுத்தியவுடன் அழித்துவிடவும்.</value>
</data>
<data name="EncExportKeyWarning" xml:space="preserve">
<value>This export encrypts your data using your account's encryption key. If you ever rotate your account's encryption key you should export again since you will not be able to decrypt this export file.</value>
</data>
<data name="EncExportAccountWarning" xml:space="preserve">
<value>Account encryption keys are unique to each Bitwarden user account, so you can't import an encrypted export into a different account.</value>
<value>கணக்கு மறையாக்க விசைகள் ஒவ்வொரு Bitwarden பயனர் கணக்கிற்கும் தனித்துவமானது, ஆக ஒரு மறையாக்கப்பட்ட ஏற்றுமதியை வேறொரு கணக்கினுள்ளே இறக்க இயலாது.</value>
</data>
<data name="ExportVaultConfirmationTitle" xml:space="preserve">
<value>பெட்டக ஏற்றுமதியை உறுதிசெய்</value>
@@ -1627,23 +1627,23 @@
<comment>Clone an entity (verb).</comment>
</data>
<data name="PasswordGeneratorPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your generator settings</value>
<value>ஒன்று அ மேற்பட்ட நிறுவன கொள்கைகள் உமது உருவாக்கி அமைப்புகளை பாதிக்கிறது</value>
</data>
<data name="Open" xml:space="preserve">
<value>திற</value>
<comment>Button text for an open operation (verb).</comment>
</data>
<data name="UnableToSaveAttachment" xml:space="preserve">
<value>There was a problem saving this attachment. If the problem persists, you can save it from the web vault.</value>
<value>இவ்விணைப்பை சேமிப்பதில் சிக்கல் ஏற்பட்டது. சிக்கல் தொடர்ந்தால், வலை பெட்டகத்திலிருந்து இதை சேமிக்கலாம்.</value>
</data>
<data name="SaveAttachmentSuccess" xml:space="preserve">
<value>Attachment saved successfully</value>
<value>சேர்ப்பு வெற்றிகரமாக சேமிக்கப்பட்டது</value>
</data>
<data name="AutofillTileAccessibilityRequired" xml:space="preserve">
<value>Please enable "Auto-fill Accessibility Service" from Bitwarden Settings to use the Auto-fill tile.</value>
<value>தன்னிரப்பி ஓட்டைப் பயன்படுத்த Bitwarden அமைவுகளிலிருந்து "தன்னிரப்பி அணுகல்தன்மை சேவை"-ஐ இயக்கவும்.</value>
</data>
<data name="AutofillTileUriNotFound" xml:space="preserve">
<value>No password fields detected</value>
<value>கடவுச்சொல் புலங்களேதும் கண்டறியப்படவில்லை</value>
</data>
<data name="SoftDeleting" xml:space="preserve">
<value>குப்பைக்கு அனுப்புகிறது...</value>
@@ -1686,10 +1686,10 @@
<comment>Confirmation alert message when soft-deleting a cipher.</comment>
</data>
<data name="BiometricInvalidated" xml:space="preserve">
<value>Biometric unlock disabled pending verification of master password.</value>
<value>உயிரியளவு பூட்டவிழ்த்தல் முடக்கப்பட்டது பிரதான கடவுச்சொல் சரிபார்ப்பு நிலுவையிலுள்ளது.</value>
</data>
<data name="BiometricInvalidatedExtension" xml:space="preserve">
<value>Biometric unlock for autofill disabled pending verification of master password.</value>
<value>தன்னிரப்பலுக்கான உயிரியளவு பூட்டவிழ்த்தல் முடக்கப்பட்டது பிரதான கடவுச்சொல் சரிபார்ப்பு நிலுவையிலுள்ளது.</value>
</data>
<data name="EnableSyncOnRefresh" xml:space="preserve">
<value>புதுப்பித்தலில் ஒத்திசைவை இயக்கவும்</value>
@@ -1707,7 +1707,7 @@
<value>நிர்வாக அடையாளங்காட்டி</value>
</data>
<data name="LoginSsoError" xml:space="preserve">
<value>Currently unable to login with SSO</value>
<value>SSO கொண்டு தற்போது உள்நுழைய இயலாது</value>
</data>
<data name="SetMasterPassword" xml:space="preserve">
<value>பிரதான கடவுச்சொல்லை அமை</value>
@@ -1716,10 +1716,10 @@
<value>In order to complete logging in with SSO, please set a master password to access and protect your vault.</value>
</data>
<data name="MasterPasswordPolicyInEffect" xml:space="preserve">
<value>One or more organization policies require your master password to meet the following requirements:</value>
<value>ஒன்று அ மேற்பட்ட நிறுவன கொள்கைகளுக்கு உமது பிரதான கடவுச்சொல் தேவை பின்வரும் தேவைகளை பூர்த்தி செய்ய:</value>
</data>
<data name="PolicyInEffectMinComplexity" xml:space="preserve">
<value>Minimum complexity score of {0}</value>
<value>குறைந்பட்ச உட்சிக்கல் மதிப்பெண்ணான {0}</value>
</data>
<data name="PolicyInEffectMinLength" xml:space="preserve">
<value>{0} இன் குறைந்தபட்ச நீளம்</value>
@@ -1734,13 +1734,13 @@
<value>ஒன்று அ அதற்கு மேற்பட்ட எண்களைக் கொண்டிரு</value>
</data>
<data name="PolicyInEffectSpecial" xml:space="preserve">
<value>Contain one or more of the following special characters: {0}</value>
<value>பின்வரும் சிறப்பு வரியுருகளுள் ஒன்று அ பலவற்றை கொண்டிரு: {0}</value>
</data>
<data name="MasterPasswordPolicyValidationTitle" xml:space="preserve">
<value>செல்லாத கடவுச்சொல்</value>
</data>
<data name="MasterPasswordPolicyValidationMessage" xml:space="preserve">
<value>Password does not meet organization requirements. Please check the policy information and try again.</value>
<value>கடவுச்சொல் நிறுவன தேவைகளை சந்திக்கவில்லை. கொள்கை தகவலை சரிபார்த்து மீண்டும் முயலவும்.</value>
</data>
<data name="Loading" xml:space="preserve">
<value>ஏற்றுகிறது</value>
@@ -1758,13 +1758,13 @@
<value>தனியுரிமை கொள்கை</value>
</data>
<data name="AccessibilityDrawOverPermissionAlert" xml:space="preserve">
<value>Bitwarden needs attention - Enable "Draw-Over" in "Auto-fill Services" from Bitwarden Settings</value>
<value>Bitwardenக்கு கவனம் தேவை - Bitwarden அமைப்புகளிலிருந்து "தன்னிரப்பி சேவைகள்"-இல் "மேலே-வரைதல்"-ஐ இயக்குக</value>
</data>
<data name="AutofillServices" xml:space="preserve">
<value>தன்னிரப்பி சேவைகள்</value>
</data>
<data name="InlineAutofill" xml:space="preserve">
<value>Use Inline Autofill</value>
<value>உள்-வரி தன்னிரப்பியை பயன்படுத்து</value>
</data>
<data name="InlineAutofillDescription" xml:space="preserve">
<value>Use inline autofill if your selected IME (keyboard) supports it. If your configuration is not supported (or this option is disabled), the default Autofill overlay will be used.</value>
@@ -1785,7 +1785,7 @@
<value>Required to use the Autofill Quick-Action Tile, or to augment the Autofill Service by using Draw-Over (if enabled).</value>
</data>
<data name="DrawOver" xml:space="preserve">
<value>Use Draw-Over</value>
<value>மேலே-வரைதல் பயன்படுத்து</value>
</data>
<data name="DrawOverDescription" xml:space="preserve">
<value>When enabled, allows the Bitwarden Accessibility Service to display a popup when login fields are selected.</value>
@@ -1807,7 +1807,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AllSends" xml:space="preserve">
<value>All Sends</value>
<value>எல்லா Sends</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Sends" xml:space="preserve">
@@ -1815,7 +1815,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NameInfo" xml:space="preserve">
<value>A friendly name to describe this Send.</value>
<value>இந்த Send ஐ விளக்க ஒரு நட்பார்ந்த பெயர்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="TypeText" xml:space="preserve">
@@ -1825,7 +1825,7 @@
<value>நீங்கள் அனுப்ப விரும்பும் சொற்சரம்.</value>
</data>
<data name="HideTextByDefault" xml:space="preserve">
<value>When accessing the Send, hide the text by default</value>
<value>Send ஐ அணுகும்போது, இயல்புநிலையில் சொற்சரத்தை மறை</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="TypeFile" xml:space="preserve">
@@ -1841,11 +1841,11 @@
<value>அழிக்கும் நேரம்</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>The Send will be permanently deleted on the specified date and time.</value>
<value>குறிப்பிடப்பட்ட தேதி மற்றும் நேரத்தில் Send நிரந்தரமாக அழிக்கப்படும்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PendingDelete" xml:space="preserve">
<value>Pending deletion</value>
<value>அழித்தல் நிலுவையில்</value>
</data>
<data name="ExpirationDate" xml:space="preserve">
<value>காலாவதி தேதி</value>
@@ -1854,7 +1854,7 @@
<value>காலாவதி நேரம்</value>
</data>
<data name="ExpirationDateInfo" xml:space="preserve">
<value>If set, access to this Send will expire on the specified date and time.</value>
<value>அமைத்தால், குறிப்பிடப்பட்ட தேதி மற்றும் நேரத்தில் இந்த Send க்கான அணுகல் காலாவதியாகும்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="Expired" xml:space="preserve">
@@ -1877,7 +1877,7 @@
<value>புது கடவுச்சொல்</value>
</data>
<data name="PasswordInfo" xml:space="preserve">
<value>Optionally require a password for users to access this Send.</value>
<value>விருப்பப்பட்டால் பயனர்கள் இந்த Send ஐ அணுக கடவுச்சொல் வேண்டு.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="RemovePassword" xml:space="preserve">
@@ -1893,19 +1893,19 @@
<value>கடவுச்சொல் அகற்றப்பட்டது.</value>
</data>
<data name="NotesInfo" xml:space="preserve">
<value>Private notes about this Send.</value>
<value>இந்த Send பற்றிய தனிப்பட்ட குறிப்புகள்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="DisableSend" xml:space="preserve">
<value>Disable this Send so that no one can access it.</value>
<value>இந்த Send-ஐ முடக்குக எனவே யாரும் இதை அணுக இயலாது.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NoSends" xml:space="preserve">
<value>There are no Sends in your account.</value>
<value>உம் கணக்கில் Sends எவையுமில்லை.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>ஒரு Send சேர்</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1915,35 +1915,35 @@
<value>இணைப்பை பகிர்</value>
</data>
<data name="SendLink" xml:space="preserve">
<value>இணைப்பை அனுப்பு</value>
<value>Send தொடுப்பு</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SearchSends" xml:space="preserve">
<value>Search Sends</value>
<value>Sends தேடு</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="EditSend" xml:space="preserve">
<value>Edit Send</value>
<value>Send திருத்து</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddSend" xml:space="preserve">
<value>Add Send</value>
<value>Send சேர்</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AreYouSureDeleteSend" xml:space="preserve">
<value>Are you sure you want to delete this Send?</value>
<value>இந்த Send ஐ அழிக்க உறுதியா?</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDeleted" xml:space="preserve">
<value>Send has been deleted.</value>
<value>Send அழிக்கப்பட்டது.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendUpdated" xml:space="preserve">
<value>Send updated.</value>
<value>Send புதுப்பிக்கப்பட்டது.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="NewSendCreated" xml:space="preserve">
<value>New send created.</value>
<value>புது Send உருவாக்கப்பட்டது.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="OneDay" xml:space="preserve">
@@ -1965,7 +1965,7 @@
<value>தனிபயன்</value>
</data>
<data name="ShareOnSave" xml:space="preserve">
<value>Share this Send upon save.</value>
<value>சேமிப்பின்மீது இந்த Send ஐ பகிர்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendDisabledWarning" xml:space="preserve">
@@ -1973,31 +1973,31 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AboutSend" xml:space="preserve">
<value>About Send</value>
<value>Send பற்றி</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="HideEmail" xml:space="preserve">
<value>Hide my email address from recipients.</value>
<value>பெருநர்களிடமிருந்து என் மின்னஞ்சல் முகவரியை மறை.</value>
</data>
<data name="SendOptionsPolicyInEffect" xml:space="preserve">
<value>One or more organization policies are affecting your Send options.</value>
<value>ஒன்று அ மேற்பட்ட நிறுவன கொள்கைகள் உமது Send தெரிவுகளை பாதிக்கிறது.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFilePremiumRequired" xml:space="preserve">
<value>Free accounts are restricted to sharing text only. A premium membership is required to use files with Send.</value>
<value>இலவச கணக்குகள் சொற்சரம் மட்டும் பகிர்தலுக்கு கட்டுப்படுத்தப்பட்டுள்ளது. Send உடன் கோப்புகளை பயன்படுத்த உயர்தர உறுப்பினர் தகுதி தேவை.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>You must verify your email to use files with Send. You can verify your email in the web vault.</value>
<value>Send உடன் கோப்புகளை பயன்படுத்த உம் மின்னஞ்சலை கட்டாயம் நிச்சயப்படுத்தவும். உம் மின்னஞ்சலை வலை பெட்டகத்தில் நிச்சயப்படுத்தலாம்.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>பிரதான கடவுச்சொல் மறு-தூண்டி</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>பிரதான கடவுச்சொல் உறுதியாக்கம்</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>இச்செயல் பாதுகாக்கப்பட்டது, தொடர உம் பிரதான கடவுச்சொல்லை மறு-உள்ளிட்டு உம் அடையாளத்தை நிச்சயப்படுத்தவும்.</value>
</data>
</root>

View File

@@ -1410,7 +1410,7 @@
<comment>To clear something out. example: To clear browser history.</comment>
</data>
<data name="Generator" xml:space="preserve">
<value>สร้าง</value>
<value>สุ่มรหัส</value>
<comment>Short for "Password Generator"</comment>
</data>
<data name="NoFoldersToList" xml:space="preserve">
@@ -1718,10 +1718,10 @@
<value>One or more organization policies require your master password to meet the following requirements:</value>
</data>
<data name="PolicyInEffectMinComplexity" xml:space="preserve">
<value>Minimum complexity score of {0}</value>
<value>คะแนนความซับซ้อนขั้นต่ำของ {0}</value>
</data>
<data name="PolicyInEffectMinLength" xml:space="preserve">
<value>Minimum length of {0}</value>
<value>ความยาวขั้นต่ำของ {0}</value>
</data>
<data name="PolicyInEffectUppercase" xml:space="preserve">
<value>Contain one or more uppercase characters</value>

View File

@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Send ekle</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Send ile dosya paylaşmak için e-postanızı doğrulamalısınız.</value>
<value>Send ile dosya paylaşmak için e-postanızı doğrulamalısınız. E-postanızı web kasası üzerinden doğrulayabilirsiniz.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Ana parolayı yeniden iste</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Ana parola onayı</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Bu işlem korumalıdır. İşleme devam etmek için lütfen ana parolanızı yeniden girin.</value>
</data>
</root>

View File

@@ -1715,7 +1715,7 @@
<value>Щоб завершити налаштування входу з SSO, встановіть головний пароль для доступу і захисту сховища.</value>
</data>
<data name="MasterPasswordPolicyInEffect" xml:space="preserve">
<value>Одна або декілька політик організації зобов'язують дотримання таких вимог для головного пароля:</value>
<value>Одна або декілька політик організації вимагають дотримання таких вимог для головного пароля:</value>
</data>
<data name="PolicyInEffectMinComplexity" xml:space="preserve">
<value>Мінімальний рівень складності {0}</value>
@@ -1904,7 +1904,7 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="AddASend" xml:space="preserve">
<value>Add a Send</value>
<value>Додати відправлення</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="CopyLink" xml:space="preserve">
@@ -1987,16 +1987,16 @@
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="SendFileEmailVerificationRequired" xml:space="preserve">
<value>Для відправлення файлів необхідно підтвердити електронну пошту.</value>
<value>Для відправлення файлів необхідно підтвердити електронну пошту. Ви можете виконати підтвердження у веб сховищі.</value>
<comment>'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated.</comment>
</data>
<data name="PasswordPrompt" xml:space="preserve">
<value>Master password re-prompt</value>
<value>Повторний запит головного пароля</value>
</data>
<data name="PasswordConfirmation" xml:space="preserve">
<value>Master password confirmation</value>
<value>Підтвердження головного пароля</value>
</data>
<data name="PasswordConfirmationDesc" xml:space="preserve">
<value>This action is protected, to continue please re-enter your master password to verify your identity.</value>
<value>Ця дія захищена. Щоб продовжити, повторно введіть головний пароль.</value>
</data>
</root>

View File

@@ -1837,7 +1837,7 @@
<value>Deletion Date</value>
</data>
<data name="DeletionTime" xml:space="preserve">
<value>Deletion Time</value>
<value>Thời gian xóa</value>
</data>
<data name="DeletionDateInfo" xml:space="preserve">
<value>Send sẽ được xóa vĩnh viễn vào ngày và giờ được chỉ định.</value>

View File

@@ -129,9 +129,9 @@ namespace Bit.App.Services
return true;
}
public bool SupportsU2f()
public bool SupportsFido2()
{
return false;
return _deviceActionService.SupportsFido2();
}
public void ShowToast(string type, string title, string text, Dictionary<string, object> options = null)

View File

@@ -8,10 +8,13 @@ using Bit.Core.Models.View;
using Bit.Core.Utilities;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Bit.App.Models;
using Bit.Core.Enums;
using Bit.Core.Exceptions;
using Newtonsoft.Json;
using Xamarin.Essentials;
using Xamarin.Forms;
@@ -381,7 +384,7 @@ namespace Bit.App.Utilities
public static async Task SetPreconfiguredSettingsAsync(IDictionary<string, string> configSettings)
{
if (configSettings?.Any() ?? true)
if (configSettings?.Any() != true)
{
return;
}
@@ -403,7 +406,7 @@ namespace Bit.App.Utilities
Icons = environmentService.IconsUrl
});
}
break;
return;
default:
break;
}
@@ -470,5 +473,17 @@ namespace Bit.App.Utilities
}
return false;
}
public static string EncodeDataParameter(object obj)
{
string EncodeMultibyte(Match match)
{
return Convert.ToChar(Convert.ToUInt32($"0x{match.Groups[1].Value}", 16)).ToString();
}
var escaped = Uri.EscapeDataString(JsonConvert.SerializeObject(obj));
var multiByteEscaped = Regex.Replace(escaped, "%([0-9A-F]{2})", EncodeMultibyte);
return Convert.ToBase64String(Encoding.UTF8.GetBytes(multiByteEscaped));
}
}
}

View File

@@ -30,7 +30,7 @@ namespace Bit.Core.Abstractions
Task<CipherResponse> PostCipherAsync(CipherRequest request);
Task<CipherResponse> PostCipherCreateAsync(CipherCreateRequest request);
Task<FolderResponse> PostFolderAsync(FolderRequest request);
Task<Tuple<IdentityTokenResponse, IdentityTwoFactorResponse>> PostIdentityTokenAsync(TokenRequest request);
Task<IdentityResponse> PostIdentityTokenAsync(TokenRequest request);
Task PostPasswordHintAsync(PasswordHintRequest request);
Task SetPasswordAsync(SetPasswordRequest request);
Task<PreloginResponse> PostPreloginAsync(PreloginRequest request);

View File

@@ -17,11 +17,11 @@ namespace Bit.Core.Abstractions
Dictionary<TwoFactorProviderType, TwoFactorProvider> TwoFactorProviders { get; set; }
Dictionary<TwoFactorProviderType, Dictionary<string, object>> TwoFactorProvidersData { get; set; }
TwoFactorProviderType? GetDefaultTwoFactorProvider(bool u2fSupported);
TwoFactorProviderType? GetDefaultTwoFactorProvider(bool fido2Supported);
bool AuthingWithSso();
bool AuthingWithPassword();
List<TwoFactorProvider> GetSupportedTwoFactorProviders();
Task<AuthResult> LogInAsync(string email, string masterPassword);
Task<AuthResult> LogInAsync(string email, string masterPassword, string captchaToken);
Task<AuthResult> LogInSsoAsync(string code, string codeVerifier, string redirectUrl);
Task<AuthResult> LogInCompleteAsync(string email, string masterPassword, TwoFactorProviderType twoFactorProvider, string twoFactorToken, bool? remember = null);
Task<AuthResult> LogInTwoFactorAsync(TwoFactorProviderType twoFactorProvider, string twoFactorToken, bool? remember = null);

View File

@@ -25,7 +25,7 @@ namespace Bit.Core.Abstractions
Task<bool> ShowPasswordDialogAsync(string title, string body, Func<string, Task<bool>> validator);
void ShowToast(string type, string title, string text, Dictionary<string, object> options = null);
void ShowToast(string type, string title, string[] text, Dictionary<string, object> options = null);
bool SupportsU2f();
bool SupportsFido2();
bool SupportsDuo();
Task<bool> SupportsBiometricAsync();
Task<bool> AuthenticateBiometricAsync(string text = null, string fallbackText = null, Action fallback = null);

View File

@@ -0,0 +1,8 @@
namespace Bit.Core.Enums
{
public enum Fido2CodesTypes
{
RequestSignInUser = 994,
RequestRegisterNewKey = 995,
}
}

View File

@@ -8,6 +8,7 @@
YubiKey = 3,
U2f = 4,
Remember = 5,
OrganizationDuo = 6
OrganizationDuo = 6,
Fido2WebAuthn = 7,
}
}

View File

@@ -0,0 +1,16 @@
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2AssertionResponse : Data
{
[JsonProperty("authenticatorData")]
public string AuthenticatorData { get; set; }
[JsonProperty("signature")]
public string Signature { get; set; }
[JsonProperty("clientDataJson")]
public string ClientDataJson { get; set; }
[JsonProperty("userHandle")]
public string UserHandle { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2AuthenticatorSelection : Data
{
[JsonProperty("authenticatorAttachment")]
public string AuthenticatorAttachment { get; set; }
[JsonProperty("userVerification")]
public string UserVerification { get; set; }
[JsonProperty("requireResidentKey")]
public string RequireResidentKey { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System.Collections.Generic;
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2CredentialDescriptor : Data
{
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("transports", NullValueHandling = NullValueHandling.Ignore)]
public List<string> Transports { get; set; }
}
}

View File

@@ -0,0 +1,12 @@
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2PubKeyCredParam : Data
{
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("alg")]
public int Alg { get; set; }
}
}

View File

@@ -0,0 +1,14 @@
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2RP : Data
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("icon")]
public string Icon { get; set; }
}
}

View File

@@ -0,0 +1,16 @@
using Newtonsoft.Json;
namespace Bit.Core.Models.Data
{
public class Fido2User : Data
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("displayName")]
public string DisplayName { get; set; }
[JsonProperty("icon")]
public string Icon { get; set; }
}
}

View File

@@ -6,6 +6,8 @@ namespace Bit.Core.Models.Domain
public class AuthResult
{
public bool TwoFactor { get; set; }
public bool CaptchaNeeded => !string.IsNullOrWhiteSpace(CaptchaSiteKey);
public string CaptchaSiteKey { get; set; }
public bool ResetMasterPassword { get; set; }
public Dictionary<TwoFactorProviderType, Dictionary<string, object>> TwoFactorProviders { get; set; }
}

View File

@@ -0,0 +1,19 @@
using Bit.Core.Models.Data;
using Newtonsoft.Json;
namespace Bit.Core.Models.Request
{
public class Fido2AuthenticationChallengeRequest
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("rawId")]
public string RawId { get; set; }
[JsonProperty("response")]
public Fido2AssertionResponse Response { get; set; }
[JsonProperty("type")]
public string Type { get; set; }
[JsonProperty("extensions", NullValueHandling = NullValueHandling.Ignore)]
public string Extensions { get; set; }
}
}

View File

@@ -15,5 +15,6 @@ namespace Bit.Core.Models.Request
public Guid? OrganizationUserId { get; set; }
public KdfType? Kdf { get; set; }
public int? KdfIterations { get; set; }
public string CaptchaResponse { get; set; }
}
}

View File

@@ -1,4 +1,5 @@
using Bit.Core.Enums;
using Bit.Core.Utilities;
using System;
using System.Collections.Generic;
using System.Net.Http.Headers;
@@ -16,10 +17,11 @@ namespace Bit.Core.Models.Request
public string Token { get; set; }
public TwoFactorProviderType? Provider { get; set; }
public bool? Remember { get; set; }
public string CaptchaToken { get; set; }
public DeviceRequest Device { get; set; }
public TokenRequest(string[] credentials, string[] codes, TwoFactorProviderType? provider, string token,
bool? remember, DeviceRequest device = null)
bool? remember, string captchaToken, DeviceRequest device = null)
{
if (credentials != null && credentials.Length > 1)
{
@@ -36,6 +38,7 @@ namespace Bit.Core.Models.Request
Provider = provider;
Remember = remember;
Device = device;
CaptchaToken = captchaToken;
}
public Dictionary<string, string> ToIdentityToken(string clientId)
@@ -77,6 +80,11 @@ namespace Bit.Core.Models.Request
obj.Add("twoFactorProvider", ((int)Provider.Value).ToString());
obj.Add("twoFactorRemember", Remember.GetValueOrDefault() ? "1" : "0");
}
if (CaptchaToken != null)
{
obj.Add("captchaResponse", CaptchaToken);
}
return obj;
}
@@ -84,7 +92,7 @@ namespace Bit.Core.Models.Request
{
if (MasterPasswordHash != null && Email != null)
{
headers.Add("Auth-Email", Email);
headers.Add("Auth-Email", CoreHelpers.Base64UrlEncode(Encoding.UTF8.GetBytes(Email)));
}
}
}

View File

@@ -29,7 +29,11 @@ namespace Bit.Core.Models.Response
{
var model = errorModel.ToObject<ErrorModel>();
Message = model.Message;
ValidationErrors = model.ValidationErrors;
ValidationErrors = model.ValidationErrors ?? new Dictionary<string, List<string>>();
CaptchaSiteKey = ValidationErrors.ContainsKey("HCaptcha_SiteKey") ?
ValidationErrors["HCaptcha_SiteKey"]?.FirstOrDefault() :
null;
CaptchaRequired = !string.IsNullOrWhiteSpace(CaptchaSiteKey);
}
else
{
@@ -44,6 +48,8 @@ namespace Bit.Core.Models.Response
public string Message { get; set; }
public Dictionary<string, List<string>> ValidationErrors { get; set; }
public HttpStatusCode StatusCode { get; set; }
public string CaptchaSiteKey { get; set; }
public bool CaptchaRequired { get; set; } = false;
public string GetSingleMessage()
{

View File

@@ -0,0 +1,22 @@
using System.Collections.Generic;
using Bit.Core.Models.Data;
using Newtonsoft.Json;
namespace Bit.Core.Models.Response
{
public class Fido2AuthenticationChallengeResponse
{
[JsonProperty("challenge")]
public string Challenge { get; set; }
[JsonProperty("rpId")]
public string RpId { get; set; }
[JsonProperty("timeout")]
public double Timeout { get; set; }
[JsonProperty("allowCredentials")]
public List<Fido2CredentialDescriptor> AllowCredentials { get; set; }
[JsonProperty("userVerification")]
public string UserVerification { get; set; }
[JsonProperty("extensions", NullValueHandling = NullValueHandling.Ignore)]
public object Extensions { get; set; }
}
}

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