mirror of
https://github.com/bitwarden/mobile
synced 2026-01-06 10:34:07 +00:00
Compare commits
77 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ad55e8a8c | ||
|
|
a8a1750d5c | ||
|
|
5407e20150 | ||
|
|
58aa37bf8e | ||
|
|
7c781b60c5 | ||
|
|
acdfce7e88 | ||
|
|
4e4b56d7fe | ||
|
|
a3174d7015 | ||
|
|
b595c8aeac | ||
|
|
a9a33ad71e | ||
|
|
4d08ce90cc | ||
|
|
01d9ccc110 | ||
|
|
029f069ad5 | ||
|
|
13b9e01604 | ||
|
|
19c46a472a | ||
|
|
37edfffb97 | ||
|
|
67fa653d06 | ||
|
|
366b9ddc4a | ||
|
|
c9354f79b8 | ||
|
|
d5b3bd5905 | ||
|
|
45dd240415 | ||
|
|
bf99cea004 | ||
|
|
f680b1e856 | ||
|
|
b2f40c7af0 | ||
|
|
82b17677b9 | ||
|
|
b7df2d5441 | ||
|
|
dd511ba365 | ||
|
|
d705e3c1fb | ||
|
|
4bd1322904 | ||
|
|
ac027ee3a0 | ||
|
|
e5e3ebdbba | ||
|
|
993fc2e6f4 | ||
|
|
61c480618c | ||
|
|
db7f2622c8 | ||
|
|
a39e78a989 | ||
|
|
5a461d68a7 | ||
|
|
899816673c | ||
|
|
84a10139c1 | ||
|
|
da3aa56d86 | ||
|
|
a6dcd512ea | ||
|
|
572d32c1de | ||
|
|
e8b67ead1e | ||
|
|
377029226e | ||
|
|
72d1421f1d | ||
|
|
d359547dab | ||
|
|
9523c7ab33 | ||
|
|
7cac07c185 | ||
|
|
a607a7f3ef | ||
|
|
b5277e89d5 | ||
|
|
99713f8ed7 | ||
|
|
145dac500c | ||
|
|
eefd9bf31c | ||
|
|
3f47ca645b | ||
|
|
c906f037b5 | ||
|
|
ffc4e32119 | ||
|
|
51eb46241b | ||
|
|
541416f64b | ||
|
|
14d1d132a3 | ||
|
|
22a0045796 | ||
|
|
2e5ba0335d | ||
|
|
3315704c14 | ||
|
|
f90c407fb6 | ||
|
|
d3646e10a5 | ||
|
|
d3003efe72 | ||
|
|
235ca947be | ||
|
|
e7bc9ed5ba | ||
|
|
740a18dbc0 | ||
|
|
add5189bb1 | ||
|
|
62002b8bb3 | ||
|
|
41b4ee33fe | ||
|
|
85c67ac676 | ||
|
|
4637b7d93f | ||
|
|
8b9a178c87 | ||
|
|
c595c381a9 | ||
|
|
c308d7a610 | ||
|
|
f7570122c6 | ||
|
|
1e5f186b58 |
@@ -8,6 +8,6 @@ We use a translation tool called [Crowdin](https://crowdin.com) to help manage o
|
|||||||
|
|
||||||
If you are interested in helping translate the Bitwarden mobile app into another language (or make a translation correction), please register an account at Crowdin and join our project here: https://crowdin.com/project/bitwarden-mobile
|
If you are interested in helping translate the Bitwarden mobile app into another language (or make a translation correction), please register an account at Crowdin and join our project here: https://crowdin.com/project/bitwarden-mobile
|
||||||
|
|
||||||
If the language that you are interested in translating is not already listed, create a new account on Crowdin, join the project, and contact the project owner (https://crowdin.com/mail/compose/kspearrin).
|
If the language that you are interested in translating is not already listed, create a new account on Crowdin, join the project, and contact the project owner (https://crowdin.com/profile/kspearrin).
|
||||||
|
|
||||||
You can read Crowdin's getting started guide for translators here: https://support.crowdin.com/crowdin-intro/
|
You can read Crowdin's getting started guide for translators here: https://support.crowdin.com/crowdin-intro/
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, UWP, and Xamarin Forms.
|
The Bitwarden mobile application is written in C# with Xamarin Android, Xamarin iOS, UWP, and Xamarin Forms.
|
||||||
|
|
||||||
<img src="https://i.imgur.com/R7H2tkQ.png" alt="" width="300" height="533" /> <img src="https://i.imgur.com/3BO1Wcg.png" alt="" width="300" height="533" />
|
<img src="https://raw.githubusercontent.com/bitwarden/brand/master/screenshots/mobile-android.png" alt="" width="300" height="533" /> <img src="https://raw.githubusercontent.com/bitwarden/brand/master/screenshots/mobile-ios.png" alt="" width="300" height="533" />
|
||||||
|
|
||||||
# Build/Run
|
# Build/Run
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
#install:
|
install:
|
||||||
|
- choco install cloc --no-progress
|
||||||
|
- "cloc --vcs git --exclude-dir Resources,store,test,UWP,Properties --include-lang C#,JavaScript,TypeScript,PowerShell"
|
||||||
# - appveyor DownloadFile https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
|
# - appveyor DownloadFile https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
|
||||||
# - appveyor DownloadFile https://aka.ms/vs/15/release/vs_community.exe
|
# - appveyor DownloadFile https://aka.ms/vs/15/release/vs_community.exe
|
||||||
# - vs_community.exe update --wait --quiet --norestart --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
|
# - vs_community.exe update --wait --quiet --norestart --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
<GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies>
|
||||||
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
|
||||||
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
|
<AndroidUseLatestPlatformSdk>false</AndroidUseLatestPlatformSdk>
|
||||||
<TargetFrameworkVersion>v8.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v8.1</TargetFrameworkVersion>
|
||||||
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
|
<AndroidSupportedAbis>armeabi,armeabi-v7a,x86</AndroidSupportedAbis>
|
||||||
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
|
||||||
<AndroidStoreUncompressedFileExtensions />
|
<AndroidStoreUncompressedFileExtensions />
|
||||||
@@ -858,20 +858,35 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Xamarin.Firebase.Messaging">
|
<PackageReference Include="Xamarin.Firebase.Messaging">
|
||||||
<Version>42.1021.1</Version>
|
<Version>60.1142.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.GooglePlayServices.Analytics">
|
<PackageReference Include="Xamarin.GooglePlayServices.Analytics">
|
||||||
<Version>42.1021.1</Version>
|
<Version>60.1142.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="SimpleInjector">
|
<PackageReference Include="SimpleInjector">
|
||||||
<Version>4.0.12</Version>
|
<Version>4.3.0</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Android.Support.Design">
|
||||||
|
<Version>27.0.2.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Android.Support.v4">
|
||||||
|
<Version>27.0.2.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Android.Support.v7.AppCompat">
|
<PackageReference Include="Xamarin.Android.Support.v7.AppCompat">
|
||||||
<Version>25.4.0.2</Version>
|
<Version>27.0.2.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Android.Support.v7.CardView">
|
||||||
|
<Version>27.0.2.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.Android.Support.v7.MediaRouter">
|
||||||
|
<Version>27.0.2.1</Version>
|
||||||
|
</PackageReference>
|
||||||
|
<PackageReference Include="Xamarin.GooglePlayServices.SafetyNet">
|
||||||
|
<Version>60.1142.1</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="XLabs.IoC.SimpleInjector" Version="2.0.5782" />
|
<PackageReference Include="XLabs.IoC.SimpleInjector" Version="2.0.5782" />
|
||||||
<PackageReference Include="Portable.BouncyCastle" Version="1.8.1.3" />
|
<PackageReference Include="Portable.BouncyCastle" Version="1.8.2" />
|
||||||
<PackageReference Include="Plugin.CurrentActivity" Version="1.0.1" />
|
<PackageReference Include="Plugin.CurrentActivity" Version="2.1.0.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable\bottom_nav_bg.xml" />
|
<AndroidResource Include="Resources\drawable\bottom_nav_bg.xml" />
|
||||||
@@ -990,5 +1005,20 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-xxxhdpi\icon.png" />
|
<AndroidResource Include="Resources\drawable-xxxhdpi\icon.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\upload2.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-hdpi\upload2.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xhdpi\upload2.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xxhdpi\upload2.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable-xxxhdpi\upload2.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -11,7 +11,7 @@ namespace Bit.Android.Autofill
|
|||||||
{
|
{
|
||||||
private List<Field> _passwordFields = null;
|
private List<Field> _passwordFields = null;
|
||||||
private List<Field> _usernameFields = null;
|
private List<Field> _usernameFields = null;
|
||||||
private HashSet<string> _ignoreSearchTerms = new HashSet<string> { "search", "find", "recipient" };
|
private HashSet<string> _ignoreSearchTerms = new HashSet<string> { "search", "find", "recipient", "edit" };
|
||||||
private HashSet<string> _passwordTerms = new HashSet<string> { "password", "pswd" };
|
private HashSet<string> _passwordTerms = new HashSet<string> { "password", "pswd" };
|
||||||
|
|
||||||
public List<AutofillId> AutofillIds { get; private set; } = new List<AutofillId>();
|
public List<AutofillId> AutofillIds { get; private set; } = new List<AutofillId>();
|
||||||
@@ -304,6 +304,20 @@ namespace Bit.Android.Autofill
|
|||||||
f.InputType.HasFlag(InputTypes.TextVariationVisiblePassword) ||
|
f.InputType.HasFlag(InputTypes.TextVariationVisiblePassword) ||
|
||||||
f.InputType.HasFlag(InputTypes.TextVariationWebPassword);
|
f.InputType.HasFlag(InputTypes.TextVariationWebPassword);
|
||||||
|
|
||||||
|
if(!inputTypePassword && f.HtmlInfo != null && f.HtmlInfo.Tag == "input" &&
|
||||||
|
(f.HtmlInfo.Attributes?.Any() ?? false))
|
||||||
|
{
|
||||||
|
foreach(var a in f.HtmlInfo.Attributes)
|
||||||
|
{
|
||||||
|
var key = a.First as Java.Lang.String;
|
||||||
|
var val = a.Second as Java.Lang.String;
|
||||||
|
if(key != null && val != null && key.ToString() == "type" && val.ToString() == "password")
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return inputTypePassword && !ValueContainsAnyTerms(f.IdEntry, _ignoreSearchTerms) &&
|
return inputTypePassword && !ValueContainsAnyTerms(f.IdEntry, _ignoreSearchTerms) &&
|
||||||
!ValueContainsAnyTerms(f.Hint, _ignoreSearchTerms);
|
!ValueContainsAnyTerms(f.Hint, _ignoreSearchTerms);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ namespace Bit.Android.Autofill
|
|||||||
"com.opera.browser.beta","com.opera.mini.native","com.chrome.dev","com.chrome.canary",
|
"com.opera.browser.beta","com.opera.mini.native","com.chrome.dev","com.chrome.canary",
|
||||||
"com.google.android.apps.chrome","com.google.android.apps.chrome_dev","com.yandex.browser",
|
"com.google.android.apps.chrome","com.google.android.apps.chrome_dev","com.yandex.browser",
|
||||||
"com.sec.android.app.sbrowser","com.sec.android.app.sbrowser.beta","org.codeaurora.swe.browser",
|
"com.sec.android.app.sbrowser","com.sec.android.app.sbrowser.beta","org.codeaurora.swe.browser",
|
||||||
"com.amazon.cloud9","org.mozilla.klar", "com.duckduckgo.mobile.android"
|
"com.amazon.cloud9","org.mozilla.klar","com.duckduckgo.mobile.android","mark.via.gp","org.bromite.bromite",
|
||||||
|
"org.chromium.chrome", "com.kiwibrowser.browser", "com.ecosia.android"
|
||||||
};
|
};
|
||||||
|
|
||||||
public static HashSet<string> ExcludedPackageIds = new HashSet<string>
|
public static HashSet<string> ExcludedPackageIds = new HashSet<string>
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ using Android.Content;
|
|||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Android.Runtime;
|
using Android.Runtime;
|
||||||
using Android.Views;
|
using Android.Views;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Bit.Android
|
namespace Bit.Android
|
||||||
{
|
{
|
||||||
[Activity(Theme = "@style/BitwardenTheme.Splash", WindowSoftInputMode = SoftInput.StateHidden)]
|
[Activity(Theme = "@style/BitwardenTheme.Splash", WindowSoftInputMode = SoftInput.StateHidden)]
|
||||||
public class AutofillActivity : Activity
|
public class AutofillActivity : Activity
|
||||||
{
|
{
|
||||||
|
private DateTime? _lastLaunch = null;
|
||||||
private string _lastQueriedUri;
|
private string _lastQueriedUri;
|
||||||
|
|
||||||
public static AutofillCredentials LastCredentials { get; set; }
|
public static AutofillCredentials LastCredentials { get; set; }
|
||||||
@@ -90,6 +92,13 @@ namespace Bit.Android
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var now = DateTime.UtcNow;
|
||||||
|
if(_lastLaunch.HasValue && (now - _lastLaunch.Value <= TimeSpan.FromSeconds(2)))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
_lastLaunch = now;
|
||||||
var intent = new Intent(this, typeof(MainActivity));
|
var intent = new Intent(this, typeof(MainActivity));
|
||||||
if(!callingIntent.Flags.HasFlag(ActivityFlags.LaunchedFromHistory))
|
if(!callingIntent.Flags.HasFlag(ActivityFlags.LaunchedFromHistory))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace Bit.Android
|
|||||||
{
|
{
|
||||||
new Browser("com.android.chrome", "url_bar"),
|
new Browser("com.android.chrome", "url_bar"),
|
||||||
new Browser("com.chrome.beta", "url_bar"),
|
new Browser("com.chrome.beta", "url_bar"),
|
||||||
|
new Browser("org.chromium.chrome", "url_bar"),
|
||||||
new Browser("com.android.browser", "url"),
|
new Browser("com.android.browser", "url"),
|
||||||
new Browser("com.brave.browser", "url_bar"),
|
new Browser("com.brave.browser", "url_bar"),
|
||||||
new Browser("com.opera.browser", "url_field"),
|
new Browser("com.opera.browser", "url_field"),
|
||||||
@@ -63,7 +64,10 @@ namespace Bit.Android
|
|||||||
new Browser("acr.browser.barebones", "search"),
|
new Browser("acr.browser.barebones", "search"),
|
||||||
new Browser("com.microsoft.emmx", "url_bar"),
|
new Browser("com.microsoft.emmx", "url_bar"),
|
||||||
new Browser("com.duckduckgo.mobile.android", "omnibarTextInput"),
|
new Browser("com.duckduckgo.mobile.android", "omnibarTextInput"),
|
||||||
new Browser("mark.via.gp", "aw")
|
new Browser("mark.via.gp", "aw"),
|
||||||
|
new Browser("org.bromite.bromite", "url_bar"),
|
||||||
|
new Browser("com.kiwibrowser.browser", "url_bar"),
|
||||||
|
new Browser("com.ecosia.android", "url_bar"),
|
||||||
}.ToDictionary(n => n.PackageName);
|
}.ToDictionary(n => n.PackageName);
|
||||||
|
|
||||||
// Known packages to skip
|
// Known packages to skip
|
||||||
@@ -123,9 +127,8 @@ namespace Bit.Android
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var testNodes = GetWindowNodes(root, e, n => n.ViewIdResourceName != null && n.Text != null, false);
|
//var testNodes = GetWindowNodes(root, e, n => n.ViewIdResourceName != null && n.Text != null, false);
|
||||||
var testNodesData = testNodes.Select(n => new { id = n.ViewIdResourceName, text = n.Text });
|
//var testNodesData = testNodes.Select(n => new { id = n.ViewIdResourceName, text = n.Text });
|
||||||
testNodes.Dispose();
|
|
||||||
|
|
||||||
var notificationManager = (NotificationManager)GetSystemService(NotificationService);
|
var notificationManager = (NotificationManager)GetSystemService(NotificationService);
|
||||||
var cancelNotification = true;
|
var cancelNotification = true;
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ namespace Bit.Android.Controls
|
|||||||
|
|
||||||
private void Control_EditorAction(object sender, TextView.EditorActionEventArgs e)
|
private void Control_EditorAction(object sender, TextView.EditorActionEventArgs e)
|
||||||
{
|
{
|
||||||
if(_view.ReturnType != ReturnType.Next)
|
if(_view.TargetReturnType != Bit.App.Enums.ReturnType.Next)
|
||||||
{
|
{
|
||||||
_view.Unfocus();
|
_view.Unfocus();
|
||||||
}
|
}
|
||||||
@@ -165,23 +165,23 @@ namespace Bit.Android.Controls
|
|||||||
|
|
||||||
private void SetReturnType(ExtendedEntry view)
|
private void SetReturnType(ExtendedEntry view)
|
||||||
{
|
{
|
||||||
if(view.ReturnType.HasValue)
|
if(view.TargetReturnType.HasValue)
|
||||||
{
|
{
|
||||||
switch(view.ReturnType.Value)
|
switch(view.TargetReturnType.Value)
|
||||||
{
|
{
|
||||||
case ReturnType.Go:
|
case App.Enums.ReturnType.Go:
|
||||||
Control.ImeOptions = ImeAction.Go;
|
Control.ImeOptions = ImeAction.Go;
|
||||||
Control.SetImeActionLabel("Go", ImeAction.Go);
|
Control.SetImeActionLabel("Go", ImeAction.Go);
|
||||||
break;
|
break;
|
||||||
case ReturnType.Next:
|
case App.Enums.ReturnType.Next:
|
||||||
Control.ImeOptions = ImeAction.Next;
|
Control.ImeOptions = ImeAction.Next;
|
||||||
Control.SetImeActionLabel("Next", ImeAction.Next);
|
Control.SetImeActionLabel("Next", ImeAction.Next);
|
||||||
break;
|
break;
|
||||||
case ReturnType.Search:
|
case App.Enums.ReturnType.Search:
|
||||||
Control.ImeOptions = ImeAction.Search;
|
Control.ImeOptions = ImeAction.Search;
|
||||||
Control.SetImeActionLabel("Search", ImeAction.Search);
|
Control.SetImeActionLabel("Search", ImeAction.Search);
|
||||||
break;
|
break;
|
||||||
case ReturnType.Send:
|
case App.Enums.ReturnType.Send:
|
||||||
Control.ImeOptions = ImeAction.Send;
|
Control.ImeOptions = ImeAction.Send;
|
||||||
Control.SetImeActionLabel("Send", ImeAction.Send);
|
Control.SetImeActionLabel("Send", ImeAction.Send);
|
||||||
break;
|
break;
|
||||||
@@ -206,7 +206,7 @@ namespace Bit.Android.Controls
|
|||||||
|
|
||||||
private void SetMaxLength(ExtendedEntry view)
|
private void SetMaxLength(ExtendedEntry view)
|
||||||
{
|
{
|
||||||
Control.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(view.MaxLength) });
|
Control.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(view.TargetMaxLength) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ namespace Bit.Android
|
|||||||
private const string HockeyAppId = "d3834185b4a643479047b86c65293d42";
|
private const string HockeyAppId = "d3834185b4a643479047b86c65293d42";
|
||||||
private Java.Util.Regex.Pattern _otpPattern = Java.Util.Regex.Pattern.Compile("^.*?([cbdefghijklnrtuv]{32,64})$");
|
private Java.Util.Regex.Pattern _otpPattern = Java.Util.Regex.Pattern.Compile("^.*?([cbdefghijklnrtuv]{32,64})$");
|
||||||
private IDeviceActionService _deviceActionService;
|
private IDeviceActionService _deviceActionService;
|
||||||
|
private IDeviceInfoService _deviceInfoService;
|
||||||
|
private IAppSettingsService _appSettingsService;
|
||||||
private ISettings _settings;
|
private ISettings _settings;
|
||||||
private AppOptions _appOptions;
|
private AppOptions _appOptions;
|
||||||
|
|
||||||
@@ -69,6 +71,8 @@ namespace Bit.Android
|
|||||||
.SetValue(null, Color.FromHex("d2d6de"));
|
.SetValue(null, Color.FromHex("d2d6de"));
|
||||||
|
|
||||||
_deviceActionService = Resolver.Resolve<IDeviceActionService>();
|
_deviceActionService = Resolver.Resolve<IDeviceActionService>();
|
||||||
|
_deviceInfoService = Resolver.Resolve<IDeviceInfoService>();
|
||||||
|
_appSettingsService = Resolver.Resolve<IAppSettingsService>();
|
||||||
_settings = Resolver.Resolve<ISettings>();
|
_settings = Resolver.Resolve<ISettings>();
|
||||||
_appOptions = GetOptions();
|
_appOptions = GetOptions();
|
||||||
LoadApplication(new App.App(
|
LoadApplication(new App.App(
|
||||||
@@ -81,7 +85,7 @@ namespace Bit.Android
|
|||||||
Resolver.Resolve<ILockService>(),
|
Resolver.Resolve<ILockService>(),
|
||||||
Resolver.Resolve<ILocalizeService>(),
|
Resolver.Resolve<ILocalizeService>(),
|
||||||
Resolver.Resolve<IAppInfoService>(),
|
Resolver.Resolve<IAppInfoService>(),
|
||||||
Resolver.Resolve<IAppSettingsService>(),
|
_appSettingsService,
|
||||||
_deviceActionService));
|
_deviceActionService));
|
||||||
|
|
||||||
if(_appOptions?.Uri == null)
|
if(_appOptions?.Uri == null)
|
||||||
@@ -134,7 +138,7 @@ namespace Bit.Android
|
|||||||
// ref https://bugzilla.xamarin.com/show_bug.cgi?id=36907
|
// ref https://bugzilla.xamarin.com/show_bug.cgi?id=36907
|
||||||
Task.Delay(10).Wait();
|
Task.Delay(10).Wait();
|
||||||
|
|
||||||
if(Utilities.NfcEnabled())
|
if(_deviceInfoService.NfcEnabled)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -145,6 +149,11 @@ namespace Bit.Android
|
|||||||
System.Diagnostics.Debug.WriteLine(e);
|
System.Diagnostics.Debug.WriteLine(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_appSettingsService.Locked)
|
||||||
|
{
|
||||||
|
MessagingCenter.Send(Xamarin.Forms.Application.Current, "Resumed", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnNewIntent(Intent intent)
|
protected override void OnNewIntent(Intent intent)
|
||||||
@@ -206,7 +215,7 @@ namespace Bit.Android
|
|||||||
|
|
||||||
private void ListenYubiKey(bool listen)
|
private void ListenYubiKey(bool listen)
|
||||||
{
|
{
|
||||||
if(!Utilities.NfcEnabled())
|
if(!_deviceInfoService.NfcEnabled)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -224,8 +233,12 @@ namespace Bit.Android
|
|||||||
ndef.AddDataScheme("https");
|
ndef.AddDataScheme("https");
|
||||||
var filters = new IntentFilter[] { ndef };
|
var filters = new IntentFilter[] { ndef };
|
||||||
|
|
||||||
// register for foreground dispatch so we'll receive tags according to our intent filters
|
try
|
||||||
adapter.EnableForegroundDispatch(this, pendingIntent, filters, null);
|
{
|
||||||
|
// register for foreground dispatch so we'll receive tags according to our intent filters
|
||||||
|
adapter.EnableForegroundDispatch(this, pendingIntent, filters, null);
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,9 +13,9 @@ using Plugin.Fingerprint;
|
|||||||
using Plugin.Settings;
|
using Plugin.Settings;
|
||||||
using XLabs.Ioc;
|
using XLabs.Ioc;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using FFImageLoading.Forms.Droid;
|
|
||||||
using XLabs.Ioc.SimpleInjectorContainer;
|
using XLabs.Ioc.SimpleInjectorContainer;
|
||||||
using SimpleInjector;
|
using SimpleInjector;
|
||||||
|
using Android.Gms.Security;
|
||||||
|
|
||||||
namespace Bit.Android
|
namespace Bit.Android
|
||||||
{
|
{
|
||||||
@@ -24,13 +24,11 @@ namespace Bit.Android
|
|||||||
#else
|
#else
|
||||||
[Application(Debuggable = false)]
|
[Application(Debuggable = false)]
|
||||||
#endif
|
#endif
|
||||||
public class MainApplication : Application, Application.IActivityLifecycleCallbacks
|
public class MainApplication : Application, ProviderInstaller.IProviderInstallListener
|
||||||
{
|
{
|
||||||
private const string FirstLaunchKey = "firstLaunch";
|
private const string FirstLaunchKey = "firstLaunch";
|
||||||
private const string LastVersionCodeKey = "lastVersionCode";
|
private const string LastVersionCodeKey = "lastVersionCode";
|
||||||
|
|
||||||
public static Context AppContext;
|
|
||||||
|
|
||||||
public MainApplication(IntPtr handle, JniHandleOwnership transer)
|
public MainApplication(IntPtr handle, JniHandleOwnership transer)
|
||||||
: base(handle, transer)
|
: base(handle, transer)
|
||||||
{
|
{
|
||||||
@@ -40,6 +38,11 @@ namespace Bit.Android
|
|||||||
{
|
{
|
||||||
SetIoc(this);
|
SetIoc(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(Build.VERSION.SdkInt <= BuildVersionCodes.Kitkat)
|
||||||
|
{
|
||||||
|
ProviderInstaller.InstallIfNeededAsync(ApplicationContext, this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
|
private void AndroidEnvironment_UnhandledExceptionRaiser(object sender, RaiseThrowableEventArgs e)
|
||||||
@@ -56,52 +59,13 @@ namespace Bit.Android
|
|||||||
// workaround for app compat bug
|
// workaround for app compat bug
|
||||||
// ref https://forums.xamarin.com/discussion/62414/app-resuming-results-in-crash-with-formsappcompatactivity
|
// ref https://forums.xamarin.com/discussion/62414/app-resuming-results-in-crash-with-formsappcompatactivity
|
||||||
Task.Delay(10).Wait();
|
Task.Delay(10).Wait();
|
||||||
|
CrossCurrentActivity.Current.Init(this);
|
||||||
RegisterActivityLifecycleCallbacks(this);
|
|
||||||
AppContext = ApplicationContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnTerminate()
|
|
||||||
{
|
|
||||||
base.OnTerminate();
|
|
||||||
UnregisterActivityLifecycleCallbacks(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityCreated(Activity activity, Bundle savedInstanceState)
|
|
||||||
{
|
|
||||||
CrossCurrentActivity.Current.Activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityDestroyed(Activity activity)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityPaused(Activity activity)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityResumed(Activity activity)
|
|
||||||
{
|
|
||||||
CrossCurrentActivity.Current.Activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivitySaveInstanceState(Activity activity, Bundle outState)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityStarted(Activity activity)
|
|
||||||
{
|
|
||||||
CrossCurrentActivity.Current.Activity = activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnActivityStopped(Activity activity)
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetIoc(Application application)
|
public static void SetIoc(Application application)
|
||||||
{
|
{
|
||||||
Refractored.FabControl.Droid.FloatingActionButtonViewRenderer.Init();
|
Refractored.FabControl.Droid.FloatingActionButtonViewRenderer.Init();
|
||||||
CachedImageRenderer.Init(true);
|
FFImageLoading.Forms.Platform.CachedImageRenderer.Init(true);
|
||||||
ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
ZXing.Net.Mobile.Forms.Android.Platform.Init();
|
||||||
CrossFingerprint.SetCurrentActivityResolver(() => CrossCurrentActivity.Current.Activity);
|
CrossFingerprint.SetCurrentActivityResolver(() => CrossCurrentActivity.Current.Activity);
|
||||||
|
|
||||||
@@ -109,8 +73,8 @@ namespace Bit.Android
|
|||||||
var container = new Container();
|
var container = new Container();
|
||||||
|
|
||||||
// Android Stuff
|
// Android Stuff
|
||||||
container.RegisterSingleton(application.ApplicationContext);
|
container.RegisterInstance(application.ApplicationContext);
|
||||||
container.RegisterSingleton<Application>(application);
|
container.RegisterInstance<Application>(application);
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
container.RegisterSingleton<IDatabaseService, DatabaseService>();
|
container.RegisterSingleton<IDatabaseService, DatabaseService>();
|
||||||
@@ -158,9 +122,9 @@ namespace Bit.Android
|
|||||||
container.RegisterSingleton<ICipherCollectionRepository, CipherCollectionRepository>();
|
container.RegisterSingleton<ICipherCollectionRepository, CipherCollectionRepository>();
|
||||||
|
|
||||||
// Other
|
// Other
|
||||||
container.RegisterSingleton(CrossSettings.Current);
|
container.RegisterInstance(CrossSettings.Current);
|
||||||
container.RegisterSingleton(CrossConnectivity.Current);
|
container.RegisterInstance(CrossConnectivity.Current);
|
||||||
container.RegisterSingleton(CrossFingerprint.Current);
|
container.RegisterInstance(CrossFingerprint.Current);
|
||||||
|
|
||||||
// Push
|
// Push
|
||||||
#if FDROID
|
#if FDROID
|
||||||
@@ -174,5 +138,13 @@ namespace Bit.Android
|
|||||||
container.Verify();
|
container.Verify();
|
||||||
Resolver.SetResolver(new SimpleInjectorResolver(container));
|
Resolver.SetResolver(new SimpleInjectorResolver(container));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnProviderInstallFailed(int errorCode, Intent recoveryIntent)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnProviderInstalled()
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.x8bit.bitwarden" android:versionName="1.16.0" android:installLocation="auto" android:versionCode="502" xmlns:tools="http://schemas.android.com/tools">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.x8bit.bitwarden" android:versionName="1.18.0" android:installLocation="auto" android:versionCode="502" xmlns:tools="http://schemas.android.com/tools">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
@@ -31,10 +31,11 @@
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
||||||
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
|
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
|
||||||
<category android:name="${applicationId}" />
|
<category android:name="com.x8bit.bitwarden" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
<activity android:name="net.hockeyapp.android.UpdateActivity" android:exported="false" />
|
<activity android:name="net.hockeyapp.android.UpdateActivity" android:exported="false" />
|
||||||
|
<meta-data android:name="android.max_aspect" android:value="2.1" />
|
||||||
</application>
|
</application>
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
7602
src/Android/Resources/Resource.Designer.cs
generated
7602
src/Android/Resources/Resource.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
BIN
src/Android/Resources/drawable-hdpi/upload2.png
Normal file
BIN
src/Android/Resources/drawable-hdpi/upload2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/Android/Resources/drawable-xhdpi/upload2.png
Normal file
BIN
src/Android/Resources/drawable-xhdpi/upload2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/Android/Resources/drawable-xxhdpi/upload2.png
Normal file
BIN
src/Android/Resources/drawable-xxhdpi/upload2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
BIN
src/Android/Resources/drawable-xxxhdpi/upload2.png
Normal file
BIN
src/Android/Resources/drawable-xxxhdpi/upload2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/Android/Resources/drawable/upload2.png
Normal file
BIN
src/Android/Resources/drawable/upload2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 689 B |
@@ -44,7 +44,15 @@ namespace Bit.Android.Services
|
|||||||
_keyStore = KeyStore.GetInstance(AndroidKeyStore);
|
_keyStore = KeyStore.GetInstance(AndroidKeyStore);
|
||||||
_keyStore.Load(null);
|
_keyStore.Load(null);
|
||||||
|
|
||||||
GenerateStoreKey();
|
try
|
||||||
|
{
|
||||||
|
GenerateStoreKey(true);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
GenerateStoreKey(false);
|
||||||
|
}
|
||||||
|
|
||||||
GenerateAesKey();
|
GenerateAesKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +136,7 @@ namespace Bit.Android.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GenerateStoreKey()
|
private void GenerateStoreKey(bool withDate)
|
||||||
{
|
{
|
||||||
if(_keyStore.ContainsAlias(KeyAlias))
|
if(_keyStore.ContainsAlias(KeyAlias))
|
||||||
{
|
{
|
||||||
@@ -144,27 +152,33 @@ namespace Bit.Android.Services
|
|||||||
{
|
{
|
||||||
var subject = new X500Principal($"CN={KeyAlias}");
|
var subject = new X500Principal($"CN={KeyAlias}");
|
||||||
|
|
||||||
var spec = new KeyPairGeneratorSpec.Builder(Application.Context)
|
var builder = new KeyPairGeneratorSpec.Builder(Application.Context)
|
||||||
.SetAlias(KeyAlias)
|
.SetAlias(KeyAlias)
|
||||||
.SetSubject(subject)
|
.SetSubject(subject)
|
||||||
.SetSerialNumber(BigInteger.Ten)
|
.SetSerialNumber(BigInteger.Ten);
|
||||||
.SetStartDate(new Date(0))
|
|
||||||
.SetEndDate(end.Time)
|
|
||||||
.Build();
|
|
||||||
|
|
||||||
|
if(withDate)
|
||||||
|
{
|
||||||
|
builder.SetStartDate(new Date(0)).SetEndDate(end.Time);
|
||||||
|
}
|
||||||
|
|
||||||
|
var spec = builder.Build();
|
||||||
var gen = KeyPairGenerator.GetInstance(KeyProperties.KeyAlgorithmRsa, AndroidKeyStore);
|
var gen = KeyPairGenerator.GetInstance(KeyProperties.KeyAlgorithmRsa, AndroidKeyStore);
|
||||||
gen.Initialize(spec);
|
gen.Initialize(spec);
|
||||||
gen.GenerateKeyPair();
|
gen.GenerateKeyPair();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var spec = new KeyGenParameterSpec.Builder(KeyAlias, KeyStorePurpose.Decrypt | KeyStorePurpose.Encrypt)
|
var builder = new KeyGenParameterSpec.Builder(KeyAlias, KeyStorePurpose.Decrypt | KeyStorePurpose.Encrypt)
|
||||||
.SetBlockModes(KeyProperties.BlockModeGcm)
|
.SetBlockModes(KeyProperties.BlockModeGcm)
|
||||||
.SetEncryptionPaddings(KeyProperties.EncryptionPaddingNone)
|
.SetEncryptionPaddings(KeyProperties.EncryptionPaddingNone);
|
||||||
.SetKeyValidityStart(new Date(0))
|
|
||||||
.SetKeyValidityEnd(end.Time)
|
|
||||||
.Build();
|
|
||||||
|
|
||||||
|
if(withDate)
|
||||||
|
{
|
||||||
|
builder.SetKeyValidityStart(new Date(0)).SetKeyValidityEnd(end.Time);
|
||||||
|
}
|
||||||
|
|
||||||
|
var spec = builder.Build();
|
||||||
var gen = KeyGenerator.GetInstance(KeyProperties.KeyAlgorithmAes, AndroidKeyStore);
|
var gen = KeyGenerator.GetInstance(KeyProperties.KeyAlgorithmAes, AndroidKeyStore);
|
||||||
gen.Init(spec);
|
gen.Init(spec);
|
||||||
gen.GenerateKey();
|
gen.GenerateKey();
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using Android.App;
|
using Android.App;
|
||||||
|
using Android.Content;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
|
using Android.Nfc;
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
using Android.Views.Autofill;
|
using Android.Views.Autofill;
|
||||||
using Bit.App.Abstractions;
|
using Bit.App.Abstractions;
|
||||||
@@ -45,7 +47,7 @@ namespace Bit.Android.Services
|
|||||||
return 1f;
|
return 1f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool NfcEnabled => Utilities.NfcEnabled();
|
public bool NfcEnabled => NfcIsEnabled();
|
||||||
public bool HasCamera => CrossCurrentActivity.Current.Activity.PackageManager.HasSystemFeature(
|
public bool HasCamera => CrossCurrentActivity.Current.Activity.PackageManager.HasSystemFeature(
|
||||||
PackageManager.FeatureCamera);
|
PackageManager.FeatureCamera);
|
||||||
public bool AutofillServiceSupported => AutofillSupported();
|
public bool AutofillServiceSupported => AutofillSupported();
|
||||||
@@ -56,10 +58,17 @@ namespace Bit.Android.Services
|
|||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var afm = (AutofillManager)CrossCurrentActivity.Current.Activity.GetSystemService(
|
var afm = (AutofillManager)CrossCurrentActivity.Current.Activity.GetSystemService(
|
||||||
Java.Lang.Class.FromType(typeof(AutofillManager)));
|
Java.Lang.Class.FromType(typeof(AutofillManager)));
|
||||||
return afm.IsAutofillSupported;
|
return afm.IsAutofillSupported;
|
||||||
}
|
}
|
||||||
|
public bool NfcIsEnabled()
|
||||||
|
{
|
||||||
|
var activity = CrossCurrentActivity.Current.Activity;
|
||||||
|
var manager = (NfcManager)activity.GetSystemService(Context.NfcService);
|
||||||
|
var adapter = manager.DefaultAdapter;
|
||||||
|
return adapter != null && adapter.IsEnabled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,20 +3,12 @@ using Android.App;
|
|||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Java.Security;
|
using Java.Security;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Android.Nfc;
|
|
||||||
using Android.Provider;
|
using Android.Provider;
|
||||||
|
|
||||||
namespace Bit.Android
|
namespace Bit.Android
|
||||||
{
|
{
|
||||||
public static class Utilities
|
public static class Utilities
|
||||||
{
|
{
|
||||||
public static bool NfcEnabled()
|
|
||||||
{
|
|
||||||
var manager = (NfcManager)Application.Context.GetSystemService("nfc");
|
|
||||||
var adapter = manager.DefaultAdapter;
|
|
||||||
return adapter != null && adapter.IsEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SendCrashEmail(Exception e, bool includeSecurityProviders = true)
|
public static void SendCrashEmail(Exception e, bool includeSecurityProviders = true)
|
||||||
{
|
{
|
||||||
SendCrashEmail(e.Message + "\n\n" + e.StackTrace, includeSecurityProviders);
|
SendCrashEmail(e.Message + "\n\n" + e.StackTrace, includeSecurityProviders);
|
||||||
|
|||||||
@@ -17,5 +17,6 @@ namespace Bit.App.Abstractions
|
|||||||
string ApiUrl { get; set; }
|
string ApiUrl { get; set; }
|
||||||
string IdentityUrl { get; set; }
|
string IdentityUrl { get; set; }
|
||||||
string IconsUrl { get; set; }
|
string IconsUrl { get; set; }
|
||||||
|
bool ClearCiphersCache { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,8 +7,8 @@ namespace Bit.App.Abstractions
|
|||||||
public interface ILockService
|
public interface ILockService
|
||||||
{
|
{
|
||||||
void UpdateLastActivity();
|
void UpdateLastActivity();
|
||||||
Task<LockType> GetLockTypeAsync(bool forceLock);
|
Task<LockType> GetLockTypeAsync(bool forceLock, bool onlyIfAlreadyLocked = false);
|
||||||
Task CheckLockAsync(bool forceLock);
|
Task CheckLockAsync(bool forceLock, bool onlyIfAlreadyLocked = false);
|
||||||
bool TopPageIsLock();
|
bool TopPageIsLock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -78,14 +78,14 @@ namespace Bit.App
|
|||||||
MainPage = new ExtendedNavigationPage(new HomePage());
|
MainPage = new ExtendedNavigationPage(new HomePage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Device.RuntimePlatform == Device.iOS)
|
MessagingCenter.Subscribe<Application, bool>(Current, "Resumed", async (sender, forceLock) =>
|
||||||
{
|
{
|
||||||
MessagingCenter.Subscribe<Application, bool>(Current, "Resumed", async (sender, forceLock) =>
|
Device.BeginInvokeOnMainThread(async () => await _lockService.CheckLockAsync(forceLock));
|
||||||
|
if(Device.RuntimePlatform == Device.iOS)
|
||||||
{
|
{
|
||||||
Device.BeginInvokeOnMainThread(async () => await _lockService.CheckLockAsync(forceLock));
|
|
||||||
await Task.Run(() => FullSyncAsync()).ConfigureAwait(false);
|
await Task.Run(() => FullSyncAsync()).ConfigureAwait(false);
|
||||||
});
|
}
|
||||||
}
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async override void OnStart()
|
protected async override void OnStart()
|
||||||
|
|||||||
@@ -15,10 +15,6 @@
|
|||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)' == 'FDroid|net471|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)' == 'FDroid|net471|AnyCPU'">
|
||||||
<DefineConstants>TRACE;FDROID;NET471</DefineConstants>
|
<DefineConstants>TRACE;FDROID;NET471</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Remove="Resources\AppResources.fa.resx" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="Resources\public_suffix_list.dat" />
|
<None Remove="Resources\public_suffix_list.dat" />
|
||||||
@@ -29,17 +25,17 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="HockeySDK.Xamarin" Version="5.0.0" />
|
<PackageReference Include="HockeySDK.Xamarin" Version="5.1.2" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
|
||||||
<PackageReference Include="PCLCrypto" Version="2.0.147" />
|
<PackageReference Include="PCLCrypto" Version="2.0.147" />
|
||||||
<PackageReference Include="Plugin.Fingerprint" Version="1.4.6-beta4" />
|
<PackageReference Include="Plugin.Fingerprint" Version="1.4.7" />
|
||||||
<PackageReference Include="Refractored.FloatingActionButtonForms" Version="2.1.0" />
|
<PackageReference Include="Refractored.FloatingActionButtonForms" Version="2.1.0" />
|
||||||
<PackageReference Include="sqlite-net-pcl" Version="1.5.166-beta" />
|
<PackageReference Include="sqlite-net-pcl" Version="1.5.166-beta" />
|
||||||
<PackageReference Include="System.Net.Http" Version="4.3.3" />
|
<PackageReference Include="System.Net.Http" Version="4.3.3" />
|
||||||
<PackageReference Include="Xam.Plugin.Connectivity" Version="3.0.3" />
|
<PackageReference Include="Xam.Plugin.Connectivity" Version="3.2.0" />
|
||||||
<PackageReference Include="Xam.Plugins.Settings" Version="3.1.1" />
|
<PackageReference Include="Xam.Plugins.Settings" Version="3.1.1" />
|
||||||
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.3.4" />
|
<PackageReference Include="Xamarin.FFImageLoading.Forms" Version="2.4.3.840" />
|
||||||
<PackageReference Include="Xamarin.Forms" Version="2.5.0.122203" />
|
<PackageReference Include="Xamarin.Forms" Version="3.1.0.697729" />
|
||||||
<PackageReference Include="XLabs.IoC" Version="2.0.5782" />
|
<PackageReference Include="XLabs.IoC" Version="2.0.5782" />
|
||||||
<PackageReference Include="ZXing.Net.Mobile.Forms" Version="2.1.47" />
|
<PackageReference Include="ZXing.Net.Mobile.Forms" Version="2.1.47" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
public const string IdentityUrl = "other:identityUrl";
|
public const string IdentityUrl = "other:identityUrl";
|
||||||
public const string IconsUrl = "other:iconsUrl";
|
public const string IconsUrl = "other:iconsUrl";
|
||||||
public const string FailedPinAttempts = "other:failedPinAttempts";
|
public const string FailedPinAttempts = "other:failedPinAttempts";
|
||||||
|
public const string ClearCiphersCache = "other:clearCiphersCache";
|
||||||
|
|
||||||
public const int SelectFileRequestCode = 42;
|
public const int SelectFileRequestCode = 42;
|
||||||
public const int SelectFilePermissionRequestCode = 43;
|
public const int SelectFilePermissionRequestCode = 43;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ namespace Bit.App.Controls
|
|||||||
BackgroundColor = Color.FromHex("efeff4");
|
BackgroundColor = Color.FromHex("efeff4");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnAppearing()
|
protected async override void OnAppearing()
|
||||||
{
|
{
|
||||||
if(_requireAuth && !_authService.IsAuthenticated)
|
if(_requireAuth && !_authService.IsAuthenticated)
|
||||||
{
|
{
|
||||||
@@ -52,6 +52,7 @@ namespace Bit.App.Controls
|
|||||||
}
|
}
|
||||||
|
|
||||||
_googleAnalyticsService.TrackPage(GetType().Name);
|
_googleAnalyticsService.TrackPage(GetType().Name);
|
||||||
|
await _lockService.CheckLockAsync(false, true);
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ namespace Bit.App.Controls
|
|||||||
public static readonly BindableProperty BottomBorderColorProperty =
|
public static readonly BindableProperty BottomBorderColorProperty =
|
||||||
BindableProperty.Create(nameof(BottomBorderColor), typeof(Color), typeof(ExtendedEntry), Color.Default);
|
BindableProperty.Create(nameof(BottomBorderColor), typeof(Color), typeof(ExtendedEntry), Color.Default);
|
||||||
|
|
||||||
public static readonly BindableProperty MaxLengthProperty =
|
public static readonly BindableProperty TargetMaxLengthProperty =
|
||||||
BindableProperty.Create(nameof(MaxLength), typeof(int), typeof(ExtendedEntry), int.MaxValue);
|
BindableProperty.Create(nameof(TargetMaxLength), typeof(int), typeof(ExtendedEntry), int.MaxValue);
|
||||||
|
|
||||||
public bool HasBorder
|
public bool HasBorder
|
||||||
{
|
{
|
||||||
@@ -46,13 +46,13 @@ namespace Bit.App.Controls
|
|||||||
set { SetValue(BottomBorderColorProperty, value); }
|
set { SetValue(BottomBorderColorProperty, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public int MaxLength
|
public int TargetMaxLength
|
||||||
{
|
{
|
||||||
get { return (int)GetValue(MaxLengthProperty); }
|
get { return (int)GetValue(TargetMaxLengthProperty); }
|
||||||
set { SetValue(MaxLengthProperty, value); }
|
set { SetValue(TargetMaxLengthProperty, value); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public ReturnType? ReturnType { get; set; }
|
public Enums.ReturnType? TargetReturnType { get; set; }
|
||||||
public bool? Autocorrect { get; set; }
|
public bool? Autocorrect { get; set; }
|
||||||
public bool DisableAutocapitalize { get; set; }
|
public bool DisableAutocapitalize { get; set; }
|
||||||
public bool AllowClear { get; set; }
|
public bool AllowClear { get; set; }
|
||||||
|
|||||||
@@ -171,11 +171,11 @@ namespace Bit.App.Controls
|
|||||||
_nextElement = value;
|
_nextElement = value;
|
||||||
if(_nextElement != null && Entry != null)
|
if(_nextElement != null && Entry != null)
|
||||||
{
|
{
|
||||||
Entry.ReturnType = Enums.ReturnType.Next;
|
Entry.TargetReturnType = Enums.ReturnType.Next;
|
||||||
}
|
}
|
||||||
else if(Entry != null)
|
else if(Entry != null)
|
||||||
{
|
{
|
||||||
Entry.ReturnType = null;
|
Entry.TargetReturnType = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ namespace Bit.App.Controls
|
|||||||
Entry = new ExtendedEntry
|
Entry = new ExtendedEntry
|
||||||
{
|
{
|
||||||
Keyboard = Keyboard.Numeric,
|
Keyboard = Keyboard.Numeric,
|
||||||
MaxLength = 4,
|
TargetMaxLength = 4,
|
||||||
HideCursor = true
|
HideCursor = true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -13,12 +13,14 @@ namespace Bit.App.Models.Api
|
|||||||
Uris = cipher.Login.Uris?.Select(u => new LoginUriType(u));
|
Uris = cipher.Login.Uris?.Select(u => new LoginUriType(u));
|
||||||
Username = cipher.Login.Username?.EncryptedString;
|
Username = cipher.Login.Username?.EncryptedString;
|
||||||
Password = cipher.Login.Password?.EncryptedString;
|
Password = cipher.Login.Password?.EncryptedString;
|
||||||
|
PasswordRevisionDate = cipher.Login.PasswordRevisionDate;
|
||||||
Totp = cipher.Login.Totp?.EncryptedString;
|
Totp = cipher.Login.Totp?.EncryptedString;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<LoginUriType> Uris { get; set; }
|
public IEnumerable<LoginUriType> Uris { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public string Password { get; set; }
|
public string Password { get; set; }
|
||||||
|
public System.DateTime? PasswordRevisionDate { get; set; }
|
||||||
public string Totp { get; set; }
|
public string Totp { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,11 @@ namespace Bit.App.Models.Api
|
|||||||
Fields = cipher.Fields.Select(f => new FieldType(f));
|
Fields = cipher.Fields.Select(f => new FieldType(f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(cipher.PasswordHistory != null)
|
||||||
|
{
|
||||||
|
PasswordHistory = cipher.PasswordHistory.Select(h => new PasswordHistoryRequest(h));
|
||||||
|
}
|
||||||
|
|
||||||
switch(Type)
|
switch(Type)
|
||||||
{
|
{
|
||||||
case CipherType.Login:
|
case CipherType.Login:
|
||||||
@@ -46,6 +51,7 @@ namespace Bit.App.Models.Api
|
|||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public IEnumerable<FieldType> Fields { get; set; }
|
public IEnumerable<FieldType> Fields { get; set; }
|
||||||
|
public IEnumerable<PasswordHistoryRequest> PasswordHistory { get; set; }
|
||||||
|
|
||||||
public LoginType Login { get; set; }
|
public LoginType Login { get; set; }
|
||||||
public CardType Card { get; set; }
|
public CardType Card { get; set; }
|
||||||
|
|||||||
14
src/App/Models/Api/Request/PasswordHistoryRequest.cs
Normal file
14
src/App/Models/Api/Request/PasswordHistoryRequest.cs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
namespace Bit.App.Models.Api
|
||||||
|
{
|
||||||
|
public class PasswordHistoryRequest
|
||||||
|
{
|
||||||
|
public PasswordHistoryRequest(PasswordHistory ph)
|
||||||
|
{
|
||||||
|
Password = ph.Password?.EncryptedString;
|
||||||
|
LastUsedDate = ph.LastUsedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Password { get; set; }
|
||||||
|
public System.DateTime LastUsedDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,6 +22,7 @@ namespace Bit.App.Models.Api
|
|||||||
public SecureNoteType SecureNote { get; set; }
|
public SecureNoteType SecureNote { get; set; }
|
||||||
public IEnumerable<FieldType> Fields { get; set; }
|
public IEnumerable<FieldType> Fields { get; set; }
|
||||||
public IEnumerable<AttachmentResponse> Attachments { get; set; }
|
public IEnumerable<AttachmentResponse> Attachments { get; set; }
|
||||||
|
public IEnumerable<PasswordHistoryResponse> PasswordHistory { get; set; }
|
||||||
public IEnumerable<string> CollectionIds { get; set; }
|
public IEnumerable<string> CollectionIds { get; set; }
|
||||||
public DateTime RevisionDate { get; set; }
|
public DateTime RevisionDate { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
8
src/App/Models/Api/Response/PasswordHistoryResponse.cs
Normal file
8
src/App/Models/Api/Response/PasswordHistoryResponse.cs
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
namespace Bit.App.Models.Api
|
||||||
|
{
|
||||||
|
public class PasswordHistoryResponse
|
||||||
|
{
|
||||||
|
public string Password { get; set; }
|
||||||
|
public System.DateTime LastUsedDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ namespace Bit.App.Models
|
|||||||
Edit = data.Edit;
|
Edit = data.Edit;
|
||||||
OrganizationUseTotp = data.OrganizationUseTotp;
|
OrganizationUseTotp = data.OrganizationUseTotp;
|
||||||
Attachments = attachments?.Select(a => new Attachment(a));
|
Attachments = attachments?.Select(a => new Attachment(a));
|
||||||
|
RevisionDate = data.RevisionDateTime;
|
||||||
|
|
||||||
switch(Type)
|
switch(Type)
|
||||||
{
|
{
|
||||||
@@ -52,6 +53,17 @@ namespace Bit.App.Models
|
|||||||
}
|
}
|
||||||
catch(JsonSerializationException) { }
|
catch(JsonSerializationException) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!string.IsNullOrWhiteSpace(data.PasswordHistory))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var phModels = JsonConvert.DeserializeObject<IEnumerable<PasswordHistoryDataModel>>(
|
||||||
|
data.PasswordHistory);
|
||||||
|
PasswordHistory = phModels?.Select(f => new PasswordHistory(f));
|
||||||
|
}
|
||||||
|
catch(JsonSerializationException) { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
@@ -62,14 +74,19 @@ namespace Bit.App.Models
|
|||||||
public CipherString Name { get; set; }
|
public CipherString Name { get; set; }
|
||||||
public CipherString Notes { get; set; }
|
public CipherString Notes { get; set; }
|
||||||
public IEnumerable<Field> Fields { get; set; }
|
public IEnumerable<Field> Fields { get; set; }
|
||||||
|
public IEnumerable<PasswordHistory> PasswordHistory { get; set; }
|
||||||
public bool Favorite { get; set; }
|
public bool Favorite { get; set; }
|
||||||
public bool Edit { get; set; }
|
public bool Edit { get; set; }
|
||||||
public bool OrganizationUseTotp { get; set; }
|
public bool OrganizationUseTotp { get; set; }
|
||||||
public IEnumerable<Attachment> Attachments { get; set; }
|
public IEnumerable<Attachment> Attachments { get; set; }
|
||||||
|
public System.DateTime RevisionDate { get; set; }
|
||||||
|
|
||||||
public Login Login { get; set; }
|
public Login Login { get; set; }
|
||||||
public Identity Identity { get; set; }
|
public Identity Identity { get; set; }
|
||||||
public Card Card { get; set; }
|
public Card Card { get; set; }
|
||||||
public SecureNote SecureNote { get; set; }
|
public SecureNote SecureNote { get; set; }
|
||||||
|
|
||||||
|
public System.DateTime? PasswordRevisionDisplayDate =>
|
||||||
|
Login?.Password == null ? null : Login.PasswordRevisionDate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,16 @@ namespace Bit.App.Models.Data
|
|||||||
}
|
}
|
||||||
catch(JsonSerializationException) { }
|
catch(JsonSerializationException) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(cipher.PasswordHistory != null && cipher.PasswordHistory.Any())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PasswordHistory = JsonConvert.SerializeObject(
|
||||||
|
cipher.PasswordHistory.Select(h => new PasswordHistoryDataModel(h)));
|
||||||
|
}
|
||||||
|
catch(JsonSerializationException) { }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[PrimaryKey]
|
[PrimaryKey]
|
||||||
@@ -75,6 +85,7 @@ namespace Bit.App.Models.Data
|
|||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public string Fields { get; set; }
|
public string Fields { get; set; }
|
||||||
|
public string PasswordHistory { get; set; }
|
||||||
public string Login { get; set; }
|
public string Login { get; set; }
|
||||||
public string Card { get; set; }
|
public string Card { get; set; }
|
||||||
public string Identity { get; set; }
|
public string Identity { get; set; }
|
||||||
|
|||||||
@@ -13,10 +13,12 @@ namespace Bit.App.Models.Data
|
|||||||
Name = cipher.Name;
|
Name = cipher.Name;
|
||||||
Notes = cipher.Notes;
|
Notes = cipher.Notes;
|
||||||
Fields = cipher.Fields?.Select(f => new FieldDataModel(f));
|
Fields = cipher.Fields?.Select(f => new FieldDataModel(f));
|
||||||
|
PasswordHistory = cipher.PasswordHistory?.Select(h => new PasswordHistoryDataModel(h));
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public IEnumerable<FieldDataModel> Fields { get; set; }
|
public IEnumerable<FieldDataModel> Fields { get; set; }
|
||||||
|
public IEnumerable<PasswordHistoryDataModel> PasswordHistory { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace Bit.App.Models.Data
|
|||||||
Uris = response.Login.Uris?.Where(u => u != null).Select(u => new LoginUriDataModel(u));
|
Uris = response.Login.Uris?.Where(u => u != null).Select(u => new LoginUriDataModel(u));
|
||||||
Username = response.Login.Username;
|
Username = response.Login.Username;
|
||||||
Password = response.Login.Password;
|
Password = response.Login.Password;
|
||||||
|
PasswordRevisionDate = response.Login.PasswordRevisionDate;
|
||||||
Totp = response.Login.Totp;
|
Totp = response.Login.Totp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ namespace Bit.App.Models.Data
|
|||||||
public IEnumerable<LoginUriDataModel> Uris { get; set; }
|
public IEnumerable<LoginUriDataModel> Uris { get; set; }
|
||||||
public string Username { get; set; }
|
public string Username { get; set; }
|
||||||
public string Password { get; set; }
|
public string Password { get; set; }
|
||||||
|
public DateTime? PasswordRevisionDate { get; set; }
|
||||||
public string Totp { get; set; }
|
public string Totp { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
src/App/Models/Data/CipherData/PasswordHistoryDataModel.cs
Normal file
18
src/App/Models/Data/CipherData/PasswordHistoryDataModel.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using Bit.App.Models.Api;
|
||||||
|
|
||||||
|
namespace Bit.App.Models.Data
|
||||||
|
{
|
||||||
|
public class PasswordHistoryDataModel
|
||||||
|
{
|
||||||
|
public PasswordHistoryDataModel() { }
|
||||||
|
|
||||||
|
public PasswordHistoryDataModel(PasswordHistoryResponse h)
|
||||||
|
{
|
||||||
|
Password = h.Password;
|
||||||
|
LastUsedDate = h.LastUsedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Password { get; set; }
|
||||||
|
public System.DateTime LastUsedDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,6 +28,7 @@ namespace Bit.App.Models
|
|||||||
|
|
||||||
Username = deserializedData.Username != null ? new CipherString(deserializedData.Username) : null;
|
Username = deserializedData.Username != null ? new CipherString(deserializedData.Username) : null;
|
||||||
Password = deserializedData.Password != null ? new CipherString(deserializedData.Password) : null;
|
Password = deserializedData.Password != null ? new CipherString(deserializedData.Password) : null;
|
||||||
|
PasswordRevisionDate = deserializedData.PasswordRevisionDate;
|
||||||
Totp = deserializedData.Totp != null ? new CipherString(deserializedData.Totp) : null;
|
Totp = deserializedData.Totp != null ? new CipherString(deserializedData.Totp) : null;
|
||||||
Uris = deserializedData.Uris?.Select(u => new LoginUri(u));
|
Uris = deserializedData.Uris?.Select(u => new LoginUri(u));
|
||||||
}
|
}
|
||||||
@@ -35,6 +36,7 @@ namespace Bit.App.Models
|
|||||||
public IEnumerable<LoginUri> Uris { get; set; }
|
public IEnumerable<LoginUri> Uris { get; set; }
|
||||||
public CipherString Username { get; set; }
|
public CipherString Username { get; set; }
|
||||||
public CipherString Password { get; set; }
|
public CipherString Password { get; set; }
|
||||||
|
public DateTime? PasswordRevisionDate { get; set; }
|
||||||
public CipherString Totp { get; set; }
|
public CipherString Totp { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
58
src/App/Models/OtpAuth.cs
Normal file
58
src/App/Models/OtpAuth.cs
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
using Bit.App.Utilities;
|
||||||
|
using PCLCrypto;
|
||||||
|
|
||||||
|
namespace Bit.App.Models
|
||||||
|
{
|
||||||
|
public class OtpAuth
|
||||||
|
{
|
||||||
|
public OtpAuth(string key)
|
||||||
|
{
|
||||||
|
if(key?.ToLowerInvariant().StartsWith("otpauth://") ?? false)
|
||||||
|
{
|
||||||
|
var qsParams = Helpers.GetQueryParams(key);
|
||||||
|
if(qsParams.ContainsKey("digits") && qsParams["digits"] != null &&
|
||||||
|
int.TryParse(qsParams["digits"].Trim(), out var digitParam))
|
||||||
|
{
|
||||||
|
if(digitParam > 10)
|
||||||
|
{
|
||||||
|
Digits = 10;
|
||||||
|
}
|
||||||
|
else if(digitParam > 0)
|
||||||
|
{
|
||||||
|
Digits = digitParam;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(qsParams.ContainsKey("period") && qsParams["period"] != null &&
|
||||||
|
int.TryParse(qsParams["period"].Trim(), out var periodParam) && periodParam > 0)
|
||||||
|
{
|
||||||
|
Period = periodParam;
|
||||||
|
}
|
||||||
|
if(qsParams.ContainsKey("secret") && qsParams["secret"] != null)
|
||||||
|
{
|
||||||
|
Secret = qsParams["secret"];
|
||||||
|
}
|
||||||
|
if(qsParams.ContainsKey("algorithm") && qsParams["algorithm"] != null)
|
||||||
|
{
|
||||||
|
var algParam = qsParams["algorithm"].ToLowerInvariant();
|
||||||
|
if(algParam == "sha256")
|
||||||
|
{
|
||||||
|
Algorithm = MacAlgorithm.HmacSha256;
|
||||||
|
}
|
||||||
|
else if(algParam == "sha512")
|
||||||
|
{
|
||||||
|
Algorithm = MacAlgorithm.HmacSha512;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Secret = key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Period { get; set; } = 30;
|
||||||
|
public int Digits { get; set; } = 6;
|
||||||
|
public MacAlgorithm Algorithm { get; set; } = MacAlgorithm.HmacSha1;
|
||||||
|
public string Secret { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -79,7 +79,7 @@ namespace Bit.App.Models.Page
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
iconsUrl = "https://icons.bitwarden.com";
|
iconsUrl = "https://icons.bitwarden.net";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +172,11 @@ namespace Bit.App.Models.Page
|
|||||||
{
|
{
|
||||||
AddRange(groupItems);
|
AddRange(groupItems);
|
||||||
|
|
||||||
if(doUpper)
|
if(string.IsNullOrWhiteSpace(name))
|
||||||
|
{
|
||||||
|
Name = "-";
|
||||||
|
}
|
||||||
|
else if(doUpper)
|
||||||
{
|
{
|
||||||
Name = name.ToUpperInvariant();
|
Name = name.ToUpperInvariant();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace Bit.App.Models.Page
|
|||||||
{
|
{
|
||||||
private const string MaskedPasswordString = "••••••••";
|
private const string MaskedPasswordString = "••••••••";
|
||||||
|
|
||||||
private string _name, _notes;
|
private string _name, _notes, _reivisonDate, _passwordReivisonDate;
|
||||||
private List<Attachment> _attachments;
|
private List<Attachment> _attachments;
|
||||||
private List<Field> _fields;
|
private List<Field> _fields;
|
||||||
private List<LoginUri> _loginUris;
|
private List<LoginUri> _loginUris;
|
||||||
@@ -23,6 +23,7 @@ namespace Bit.App.Models.Page
|
|||||||
|
|
||||||
// Card
|
// Card
|
||||||
private string _cardName, _cardNumber, _cardBrand, _cardExpMonth, _cardExpYear, _cardCode;
|
private string _cardName, _cardNumber, _cardBrand, _cardExpMonth, _cardExpYear, _cardCode;
|
||||||
|
private bool _cardRevealCardCode;
|
||||||
|
|
||||||
// Identity
|
// Identity
|
||||||
private string _idFirstName, _idLastName, _idMiddleName, _idCompany, _idEmail, _idPhone, _idUsername,
|
private string _idFirstName, _idLastName, _idMiddleName, _idCompany, _idEmail, _idPhone, _idUsername,
|
||||||
@@ -43,6 +44,28 @@ namespace Bit.App.Models.Page
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string RevisionDate
|
||||||
|
{
|
||||||
|
get => _reivisonDate;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_reivisonDate = value;
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(RevisionDate)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string PasswordRevisionDate
|
||||||
|
{
|
||||||
|
get => _passwordReivisonDate;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_passwordReivisonDate = value;
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(PasswordRevisionDate)));
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(ShowPasswordRevisionDate)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public bool ShowPasswordRevisionDate => !string.IsNullOrWhiteSpace(PasswordRevisionDate);
|
||||||
|
|
||||||
public string Notes
|
public string Notes
|
||||||
{
|
{
|
||||||
get => _notes;
|
get => _notes;
|
||||||
@@ -155,8 +178,18 @@ namespace Bit.App.Models.Page
|
|||||||
public bool LoginTotpLow => LoginTotpSecond <= 7;
|
public bool LoginTotpLow => LoginTotpSecond <= 7;
|
||||||
public Color LoginTotpColor => !string.IsNullOrWhiteSpace(LoginTotpCode) && LoginTotpLow ?
|
public Color LoginTotpColor => !string.IsNullOrWhiteSpace(LoginTotpCode) && LoginTotpLow ?
|
||||||
Color.Red : Color.Black;
|
Color.Red : Color.Black;
|
||||||
public string LoginTotpCodeFormatted => !string.IsNullOrWhiteSpace(LoginTotpCode) ?
|
public string LoginTotpCodeFormatted
|
||||||
string.Format("{0} {1}", LoginTotpCode.Substring(0, 3), LoginTotpCode.Substring(3)) : null;
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if(string.IsNullOrWhiteSpace(LoginTotpCode) || LoginTotpCode.Length < 5)
|
||||||
|
{
|
||||||
|
return LoginTotpCode;
|
||||||
|
}
|
||||||
|
var half = (int)Math.Floor((double)LoginTotpCode.Length / 2);
|
||||||
|
return string.Format("{0} {1}", LoginTotpCode.Substring(0, half), LoginTotpCode.Substring(half));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Card
|
// Card
|
||||||
public string CardName
|
public string CardName
|
||||||
@@ -250,6 +283,22 @@ namespace Bit.App.Models.Page
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool ShowCardCode => !string.IsNullOrWhiteSpace(CardCode);
|
public bool ShowCardCode => !string.IsNullOrWhiteSpace(CardCode);
|
||||||
|
public bool RevealCardCode
|
||||||
|
{
|
||||||
|
get => _cardRevealCardCode;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_cardRevealCardCode = value;
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(RevealCardCode)));
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(MaskedCardCode)));
|
||||||
|
PropertyChanged(this, new PropertyChangedEventArgs(nameof(CardCodeShowHideImage)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public string MaskedCardCode => RevealCardCode ?
|
||||||
|
CardCode : CardCode == null ? null : new String('•', CardCode.Length);
|
||||||
|
|
||||||
|
public ImageSource CardCodeShowHideImage => RevealCardCode ?
|
||||||
|
ImageSource.FromFile("eye_slash.png") : ImageSource.FromFile("eye.png");
|
||||||
|
|
||||||
// Identity
|
// Identity
|
||||||
|
|
||||||
@@ -506,6 +555,20 @@ namespace Bit.App.Models.Page
|
|||||||
{
|
{
|
||||||
Name = cipher.Name?.Decrypt(cipher.OrganizationId);
|
Name = cipher.Name?.Decrypt(cipher.OrganizationId);
|
||||||
Notes = cipher.Notes?.Decrypt(cipher.OrganizationId);
|
Notes = cipher.Notes?.Decrypt(cipher.OrganizationId);
|
||||||
|
var revisionDate = DateTime.SpecifyKind(cipher.RevisionDate, DateTimeKind.Utc).ToLocalTime();
|
||||||
|
RevisionDate = revisionDate.ToShortDateString() + " " + revisionDate.ToShortTimeString();
|
||||||
|
|
||||||
|
if(cipher.PasswordRevisionDisplayDate.HasValue)
|
||||||
|
{
|
||||||
|
var passwordRevisionDate = DateTime.SpecifyKind(
|
||||||
|
cipher.PasswordRevisionDisplayDate.Value, DateTimeKind.Utc).ToLocalTime();
|
||||||
|
PasswordRevisionDate = passwordRevisionDate.ToShortDateString() + " " +
|
||||||
|
passwordRevisionDate.ToShortTimeString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PasswordRevisionDate = null;
|
||||||
|
}
|
||||||
|
|
||||||
if(cipher.Attachments != null)
|
if(cipher.Attachments != null)
|
||||||
{
|
{
|
||||||
@@ -676,7 +739,7 @@ namespace Bit.App.Models.Page
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public string Label => IsWebsite ? AppResources.Website : AppResources.URI;
|
public string Label => IsWebsite ? AppResources.Website : AppResources.URI;
|
||||||
public bool IsWebsite => Value == null ? false :
|
public bool IsWebsite => Value == null ? false :
|
||||||
Value.StartsWith("http://") || Value.StartsWith("https://");
|
Value.StartsWith("http://") || Value.StartsWith("https://");
|
||||||
public bool IsApp => Value == null ? false : Value.StartsWith(Constants.AndroidAppProtocol);
|
public bool IsApp => Value == null ? false : Value.StartsWith(Constants.AndroidAppProtocol);
|
||||||
}
|
}
|
||||||
|
|||||||
18
src/App/Models/PasswordHistory.cs
Normal file
18
src/App/Models/PasswordHistory.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
using Bit.App.Models.Data;
|
||||||
|
|
||||||
|
namespace Bit.App.Models
|
||||||
|
{
|
||||||
|
public class PasswordHistory
|
||||||
|
{
|
||||||
|
public PasswordHistory() { }
|
||||||
|
|
||||||
|
public PasswordHistory(PasswordHistoryDataModel model)
|
||||||
|
{
|
||||||
|
Password = model.Password != null ? new CipherString(model.Password) : null;
|
||||||
|
LastUsedDate = model.LastUsedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CipherString Password { get; set; }
|
||||||
|
public System.DateTime LastUsedDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -38,7 +38,7 @@ namespace Bit.App.Pages
|
|||||||
PasswordCell = new FormEntryCell(AppResources.MasterPassword, isPassword: true,
|
PasswordCell = new FormEntryCell(AppResources.MasterPassword, isPassword: true,
|
||||||
useLabelAsPlaceholder: true, imageSource: "lock.png", containerPadding: padding);
|
useLabelAsPlaceholder: true, imageSource: "lock.png", containerPadding: padding);
|
||||||
|
|
||||||
PasswordCell.Entry.ReturnType = Enums.ReturnType.Go;
|
PasswordCell.Entry.TargetReturnType = Enums.ReturnType.Go;
|
||||||
|
|
||||||
var table = new ExtendedTableView
|
var table = new ExtendedTableView
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ namespace Bit.App.Pages
|
|||||||
EmailCell.Entry.Text = lastLoginEmail;
|
EmailCell.Entry.Text = lastLoginEmail;
|
||||||
}
|
}
|
||||||
|
|
||||||
PasswordCell.Entry.ReturnType = Enums.ReturnType.Go;
|
PasswordCell.Entry.TargetReturnType = Enums.ReturnType.Go;
|
||||||
|
|
||||||
var table = new ExtendedTableView
|
var table = new ExtendedTableView
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ namespace Bit.App.Pages
|
|||||||
imageSource: "lock", containerPadding: padding);
|
imageSource: "lock", containerPadding: padding);
|
||||||
|
|
||||||
TokenCell.Entry.Keyboard = Keyboard.Numeric;
|
TokenCell.Entry.Keyboard = Keyboard.Numeric;
|
||||||
TokenCell.Entry.ReturnType = ReturnType.Go;
|
TokenCell.Entry.TargetReturnType = Enums.ReturnType.Go;
|
||||||
|
|
||||||
var table = new TwoFactorTable(
|
var table = new TwoFactorTable(
|
||||||
new TableSection(Helpers.GetEmptyTableSectionTitle())
|
new TableSection(Helpers.GetEmptyTableSectionTitle())
|
||||||
@@ -232,7 +232,8 @@ namespace Bit.App.Pages
|
|||||||
}
|
}
|
||||||
else if(_providerType == TwoFactorProviderType.YubiKey)
|
else if(_providerType == TwoFactorProviderType.YubiKey)
|
||||||
{
|
{
|
||||||
instruction.Text = AppResources.YubiKeyInstruction;
|
instruction.Text = Device.RuntimePlatform == Device.iOS ? AppResources.YubiKeyInstructionIos :
|
||||||
|
AppResources.YubiKeyInstruction;
|
||||||
|
|
||||||
var image = new CachedImage
|
var image = new CachedImage
|
||||||
{
|
{
|
||||||
@@ -244,25 +245,49 @@ namespace Bit.App.Pages
|
|||||||
Margin = new Thickness(0, 0, 0, 25)
|
Margin = new Thickness(0, 0, 0, 25)
|
||||||
};
|
};
|
||||||
|
|
||||||
TokenCell = new FormEntryCell("", isPassword: true, imageSource: "lock", useLabelAsPlaceholder: true);
|
var section = new TableSection(Helpers.GetEmptyTableSectionTitle())
|
||||||
TokenCell.Entry.ReturnType = ReturnType.Go;
|
{
|
||||||
|
RememberCell
|
||||||
|
};
|
||||||
|
|
||||||
var table = new TwoFactorTable(
|
if(Device.RuntimePlatform != Device.iOS)
|
||||||
new TableSection(Helpers.GetEmptyTableSectionTitle())
|
{
|
||||||
{
|
TokenCell = new FormEntryCell("", isPassword: true, imageSource: "lock",
|
||||||
TokenCell,
|
useLabelAsPlaceholder: true);
|
||||||
RememberCell
|
TokenCell.Entry.TargetReturnType = Enums.ReturnType.Go;
|
||||||
});
|
section.Insert(0, TokenCell);
|
||||||
|
}
|
||||||
|
|
||||||
|
var table = new TwoFactorTable(section);
|
||||||
var layout = new RedrawableStackLayout
|
var layout = new RedrawableStackLayout
|
||||||
{
|
{
|
||||||
Children = { instruction, image, table, anotherMethodButton },
|
Children = { instruction, image, table },
|
||||||
Spacing = 0
|
Spacing = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(Device.RuntimePlatform == Device.iOS)
|
||||||
|
{
|
||||||
|
var tryAgainButton = new ExtendedButton
|
||||||
|
{
|
||||||
|
Text = AppResources.TryAgain,
|
||||||
|
Style = (Style)Application.Current.Resources["btn-primaryAccent"],
|
||||||
|
Margin = new Thickness(15, 0, 15, 0),
|
||||||
|
Command = new Command(() => ListenYubiKey(true, true)),
|
||||||
|
Uppercase = false,
|
||||||
|
BackgroundColor = Color.Transparent,
|
||||||
|
VerticalOptions = LayoutOptions.Start
|
||||||
|
};
|
||||||
|
layout.Children.Add(tryAgainButton);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ToolbarItems.Add(continueToolbarItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
layout.Children.Add(anotherMethodButton);
|
||||||
|
|
||||||
table.WrappingStackLayout = () => layout;
|
table.WrappingStackLayout = () => layout;
|
||||||
scrollView.Content = layout;
|
scrollView.Content = layout;
|
||||||
ToolbarItems.Add(continueToolbarItem);
|
|
||||||
|
|
||||||
Title = AppResources.YubiKeyTitle;
|
Title = AppResources.YubiKeyTitle;
|
||||||
Content = scrollView;
|
Content = scrollView;
|
||||||
@@ -310,6 +335,17 @@ namespace Bit.App.Pages
|
|||||||
MessagingCenter.Unsubscribe<Application>(Application.Current, "ResumeYubiKey");
|
MessagingCenter.Unsubscribe<Application>(Application.Current, "ResumeYubiKey");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override bool OnBackButtonPressed()
|
||||||
|
{
|
||||||
|
// ref: https://github.com/bitwarden/mobile/issues/350
|
||||||
|
if(Device.RuntimePlatform == Device.Android && _providerType.HasValue &&
|
||||||
|
_providerType.Value == TwoFactorProviderType.YubiKey)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return base.OnBackButtonPressed();
|
||||||
|
}
|
||||||
|
|
||||||
private async void AnotherMethodAsync()
|
private async void AnotherMethodAsync()
|
||||||
{
|
{
|
||||||
var beforeProviderType = _providerType;
|
var beforeProviderType = _providerType;
|
||||||
@@ -334,7 +370,7 @@ namespace Bit.App.Pages
|
|||||||
{
|
{
|
||||||
var nfcKey = _providers[TwoFactorProviderType.YubiKey].ContainsKey("Nfc") &&
|
var nfcKey = _providers[TwoFactorProviderType.YubiKey].ContainsKey("Nfc") &&
|
||||||
(bool)_providers[TwoFactorProviderType.YubiKey]["Nfc"];
|
(bool)_providers[TwoFactorProviderType.YubiKey]["Nfc"];
|
||||||
if(_deviceInfoService.NfcEnabled && nfcKey || Device.RuntimePlatform == Device.UWP)
|
if((_deviceInfoService.NfcEnabled && nfcKey) || Device.RuntimePlatform != Device.iOS)
|
||||||
{
|
{
|
||||||
options.Add(AppResources.YubiKeyTitle);
|
options.Add(AppResources.YubiKeyTitle);
|
||||||
}
|
}
|
||||||
@@ -486,7 +522,7 @@ namespace Bit.App.Pages
|
|||||||
}
|
}
|
||||||
|
|
||||||
var nfcKey = p.Value.ContainsKey("Nfc") && (bool)p.Value["Nfc"];
|
var nfcKey = p.Value.ContainsKey("Nfc") && (bool)p.Value["Nfc"];
|
||||||
if((!_deviceInfoService.NfcEnabled || !nfcKey) && Device.RuntimePlatform != Device.UWP)
|
if((!_deviceInfoService.NfcEnabled || !nfcKey) && Device.RuntimePlatform == Device.iOS)
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace Bit.App.Pages
|
|||||||
EmailCell = new FormEntryCell(AppResources.EmailAddress, entryKeyboard: Keyboard.Email,
|
EmailCell = new FormEntryCell(AppResources.EmailAddress, entryKeyboard: Keyboard.Email,
|
||||||
useLabelAsPlaceholder: true, imageSource: "envelope.png", containerPadding: padding);
|
useLabelAsPlaceholder: true, imageSource: "envelope.png", containerPadding: padding);
|
||||||
|
|
||||||
EmailCell.Entry.ReturnType = Enums.ReturnType.Go;
|
EmailCell.Entry.TargetReturnType = Enums.ReturnType.Go;
|
||||||
|
|
||||||
var table = new ExtendedTableView
|
var table = new ExtendedTableView
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ namespace Bit.App.Pages
|
|||||||
entryKeyboard: Keyboard.Email, useLabelAsPlaceholder: true, imageSource: "envelope.png",
|
entryKeyboard: Keyboard.Email, useLabelAsPlaceholder: true, imageSource: "envelope.png",
|
||||||
containerPadding: padding);
|
containerPadding: padding);
|
||||||
|
|
||||||
PasswordHintCell.Entry.ReturnType = Enums.ReturnType.Done;
|
PasswordHintCell.Entry.TargetReturnType = Enums.ReturnType.Done;
|
||||||
|
|
||||||
var table = new FormTableView(this)
|
var table = new FormTableView(this)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -118,10 +118,6 @@ namespace Bit.App.Pages
|
|||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
NameCell.InitEvents();
|
NameCell.InitEvents();
|
||||||
if(!_connectivity.IsConnected)
|
|
||||||
{
|
|
||||||
AlertNoConnection();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDisappearing()
|
protected override void OnDisappearing()
|
||||||
|
|||||||
@@ -131,11 +131,6 @@ namespace Bit.App.Pages
|
|||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
NameCell.InitEvents();
|
NameCell.InitEvents();
|
||||||
DeleteCell.Tapped += DeleteCell_Tapped;
|
DeleteCell.Tapped += DeleteCell_Tapped;
|
||||||
|
|
||||||
if(!_connectivity.IsConnected)
|
|
||||||
{
|
|
||||||
AlertNoConnection();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDisappearing()
|
protected override void OnDisappearing()
|
||||||
|
|||||||
@@ -68,10 +68,6 @@ namespace Bit.App.Pages
|
|||||||
protected override void OnAppearing()
|
protected override void OnAppearing()
|
||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
if(!_connectivity.IsConnected)
|
|
||||||
{
|
|
||||||
AlertNoConnection();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetLastSync()
|
private void SetLastSync()
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ namespace Bit.App.Pages
|
|||||||
|
|
||||||
DisabledStackLayout = new StackLayout
|
DisabledStackLayout = new StackLayout
|
||||||
{
|
{
|
||||||
Children = { BuildServiceLabel(), statusDisabledLabel, enableImage, goButton, BuildAccessibilityButton() },
|
Children = { BuildServiceLabel(), statusDisabledLabel, enableImage, goButton },
|
||||||
Orientation = StackOrientation.Vertical,
|
Orientation = StackOrientation.Vertical,
|
||||||
Spacing = 20,
|
Spacing = 20,
|
||||||
Padding = new Thickness(20, 30),
|
Padding = new Thickness(20, 30),
|
||||||
@@ -113,7 +113,7 @@ namespace Bit.App.Pages
|
|||||||
|
|
||||||
EnabledStackLayout = new StackLayout
|
EnabledStackLayout = new StackLayout
|
||||||
{
|
{
|
||||||
Children = { BuildServiceLabel(), statusEnabledLabel, useImage, BuildAccessibilityButton() },
|
Children = { BuildServiceLabel(), statusEnabledLabel, useImage },
|
||||||
Orientation = StackOrientation.Vertical,
|
Orientation = StackOrientation.Vertical,
|
||||||
Spacing = 20,
|
Spacing = 20,
|
||||||
Padding = new Thickness(20, 30),
|
Padding = new Thickness(20, 30),
|
||||||
@@ -166,22 +166,5 @@ namespace Bit.App.Pages
|
|||||||
FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label))
|
FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label))
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private ExtendedButton BuildAccessibilityButton()
|
|
||||||
{
|
|
||||||
return new ExtendedButton
|
|
||||||
{
|
|
||||||
Text = AppResources.AutofillAccessibilityService,
|
|
||||||
Command = new Command(async () =>
|
|
||||||
{
|
|
||||||
await Navigation.PushAsync(new ToolsAccessibilityServicePage());
|
|
||||||
}),
|
|
||||||
VerticalOptions = LayoutOptions.End,
|
|
||||||
HorizontalOptions = LayoutOptions.Fill,
|
|
||||||
Style = (Style)Application.Current.Resources["btn-primaryAccent"],
|
|
||||||
Uppercase = false,
|
|
||||||
BackgroundColor = Color.Transparent
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ namespace Bit.App.Pages
|
|||||||
public ToolsViewCell ImportCell { get; set; }
|
public ToolsViewCell ImportCell { get; set; }
|
||||||
public ToolsViewCell ExtensionCell { get; set; }
|
public ToolsViewCell ExtensionCell { get; set; }
|
||||||
public ToolsViewCell AutofillCell { get; set; }
|
public ToolsViewCell AutofillCell { get; set; }
|
||||||
|
public ToolsViewCell AccessibilityCell { get; set; }
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
{
|
{
|
||||||
@@ -46,11 +47,17 @@ namespace Bit.App.Pages
|
|||||||
}
|
}
|
||||||
if(Device.RuntimePlatform == Device.Android)
|
if(Device.RuntimePlatform == Device.Android)
|
||||||
{
|
{
|
||||||
var desc = _deviceInfoService.AutofillServiceSupported ?
|
var accessibilityDesc = AppResources.BitwardenAutofillAccessibilityServiceDescription;
|
||||||
AppResources.BitwardenAutofillServiceDescription :
|
if(_deviceInfoService.AutofillServiceSupported)
|
||||||
AppResources.BitwardenAutofillAccessibilityServiceDescription;
|
{
|
||||||
AutofillCell = new ToolsViewCell(AppResources.BitwardenAutofillService, desc, "upload.png");
|
AutofillCell = new ToolsViewCell(AppResources.AutofillService,
|
||||||
section.Add(AutofillCell);
|
AppResources.BitwardenAutofillServiceDescription, "upload2.png");
|
||||||
|
section.Add(AutofillCell);
|
||||||
|
accessibilityDesc += (" " + AppResources.BitwardenAutofillAccessibilityServiceDescription2);
|
||||||
|
}
|
||||||
|
AccessibilityCell = new ToolsViewCell(AppResources.AutofillAccessibilityService,
|
||||||
|
accessibilityDesc, "upload.png");
|
||||||
|
section.Add(AccessibilityCell);
|
||||||
}
|
}
|
||||||
|
|
||||||
section.Add(WebCell);
|
section.Add(WebCell);
|
||||||
@@ -96,6 +103,10 @@ namespace Bit.App.Pages
|
|||||||
{
|
{
|
||||||
AutofillCell.Tapped += AutofillCell_Tapped;
|
AutofillCell.Tapped += AutofillCell_Tapped;
|
||||||
}
|
}
|
||||||
|
if(AccessibilityCell != null)
|
||||||
|
{
|
||||||
|
AccessibilityCell.Tapped += AccessibilityCell_Tapped;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDisappearing()
|
protected override void OnDisappearing()
|
||||||
@@ -112,7 +123,10 @@ namespace Bit.App.Pages
|
|||||||
{
|
{
|
||||||
AutofillCell.Tapped -= AutofillCell_Tapped;
|
AutofillCell.Tapped -= AutofillCell_Tapped;
|
||||||
}
|
}
|
||||||
|
if(AccessibilityCell != null)
|
||||||
|
{
|
||||||
|
AccessibilityCell.Tapped -= AccessibilityCell_Tapped;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnBackButtonPressed()
|
protected override bool OnBackButtonPressed()
|
||||||
@@ -128,14 +142,12 @@ namespace Bit.App.Pages
|
|||||||
|
|
||||||
private void AutofillCell_Tapped(object sender, EventArgs e)
|
private void AutofillCell_Tapped(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if(_deviceInfoService.AutofillServiceSupported)
|
Navigation.PushModalAsync(new ExtendedNavigationPage(new ToolsAutofillServicePage()));
|
||||||
{
|
}
|
||||||
Navigation.PushModalAsync(new ExtendedNavigationPage(new ToolsAutofillServicePage()));
|
|
||||||
}
|
private void AccessibilityCell_Tapped(object sender, EventArgs e)
|
||||||
else
|
{
|
||||||
{
|
Navigation.PushModalAsync(new ExtendedNavigationPage(new ToolsAccessibilityServicePage()));
|
||||||
Navigation.PushModalAsync(new ExtendedNavigationPage(new ToolsAccessibilityServicePage()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExtensionCell_Tapped(object sender, EventArgs e)
|
private void ExtensionCell_Tapped(object sender, EventArgs e)
|
||||||
|
|||||||
@@ -400,7 +400,9 @@ namespace Bit.App.Pages
|
|||||||
LengthSlider = new Slider(5, 64, _settings.GetValueOrDefault(Constants.PasswordGeneratorLength, 10))
|
LengthSlider = new Slider(5, 64, _settings.GetValueOrDefault(Constants.PasswordGeneratorLength, 10))
|
||||||
{
|
{
|
||||||
HorizontalOptions = LayoutOptions.FillAndExpand,
|
HorizontalOptions = LayoutOptions.FillAndExpand,
|
||||||
VerticalOptions = LayoutOptions.CenterAndExpand
|
VerticalOptions = LayoutOptions.CenterAndExpand,
|
||||||
|
MaximumTrackColor = Color.LightGray,
|
||||||
|
MinimumTrackColor = Color.LightGray,
|
||||||
};
|
};
|
||||||
|
|
||||||
Value = new Label
|
Value = new Label
|
||||||
@@ -408,7 +410,8 @@ namespace Bit.App.Pages
|
|||||||
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
|
FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Label)),
|
||||||
HorizontalOptions = LayoutOptions.End,
|
HorizontalOptions = LayoutOptions.End,
|
||||||
VerticalOptions = LayoutOptions.CenterAndExpand,
|
VerticalOptions = LayoutOptions.CenterAndExpand,
|
||||||
Style = (Style)Application.Current.Resources["text-muted"]
|
Style = (Style)Application.Current.Resources["text-muted"],
|
||||||
|
FontFamily = Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier"),
|
||||||
};
|
};
|
||||||
|
|
||||||
Value.SetBinding(Label.TextProperty, nameof(PasswordGeneratorPageModel.Length));
|
Value.SetBinding(Label.TextProperty, nameof(PasswordGeneratorPageModel.Length));
|
||||||
|
|||||||
@@ -177,10 +177,6 @@ namespace Bit.App.Pages
|
|||||||
protected override void OnAppearing()
|
protected override void OnAppearing()
|
||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
if(!_connectivity.IsConnected)
|
|
||||||
{
|
|
||||||
AlertNoConnection();
|
|
||||||
}
|
|
||||||
|
|
||||||
NameCell.InitEvents();
|
NameCell.InitEvents();
|
||||||
NotesCell.InitEvents();
|
NotesCell.InitEvents();
|
||||||
@@ -215,6 +211,7 @@ namespace Bit.App.Pages
|
|||||||
CardExpYearCell.InitEvents();
|
CardExpYearCell.InitEvents();
|
||||||
CardNameCell.InitEvents();
|
CardNameCell.InitEvents();
|
||||||
CardNumberCell.InitEvents();
|
CardNumberCell.InitEvents();
|
||||||
|
CardCodeCell.Button1.Clicked += CardCodeButton_Clicked;
|
||||||
break;
|
break;
|
||||||
case CipherType.Identity:
|
case CipherType.Identity:
|
||||||
IdTitleCell.InitEvents();
|
IdTitleCell.InitEvents();
|
||||||
@@ -292,7 +289,7 @@ namespace Bit.App.Pages
|
|||||||
LoginPasswordCell.Dispose();
|
LoginPasswordCell.Dispose();
|
||||||
LoginUsernameCell.Dispose();
|
LoginUsernameCell.Dispose();
|
||||||
LoginPasswordCell.Button1.Clicked -= PasswordButton_Clicked;
|
LoginPasswordCell.Button1.Clicked -= PasswordButton_Clicked;
|
||||||
LoginPasswordCell.Button2.Clicked += PasswordButton2_Clicked;
|
LoginPasswordCell.Button2.Clicked -= PasswordButton2_Clicked;
|
||||||
if(LoginTotpCell?.Button1 != null)
|
if(LoginTotpCell?.Button1 != null)
|
||||||
{
|
{
|
||||||
LoginTotpCell.Button1.Clicked -= TotpButton_Clicked;
|
LoginTotpCell.Button1.Clicked -= TotpButton_Clicked;
|
||||||
@@ -305,6 +302,7 @@ namespace Bit.App.Pages
|
|||||||
CardExpYearCell.Dispose();
|
CardExpYearCell.Dispose();
|
||||||
CardNameCell.Dispose();
|
CardNameCell.Dispose();
|
||||||
CardNumberCell.Dispose();
|
CardNumberCell.Dispose();
|
||||||
|
CardCodeCell.Button1.Clicked -= CardCodeButton_Clicked;
|
||||||
break;
|
break;
|
||||||
case CipherType.Identity:
|
case CipherType.Identity:
|
||||||
IdTitleCell.Dispose();
|
IdTitleCell.Dispose();
|
||||||
@@ -384,6 +382,13 @@ namespace Bit.App.Pages
|
|||||||
await Navigation.PushModalAsync(new ExtendedNavigationPage(scanPage));
|
await Navigation.PushModalAsync(new ExtendedNavigationPage(scanPage));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CardCodeButton_Clicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CardCodeCell.Entry.InvokeToggleIsPassword();
|
||||||
|
CardCodeCell.Button1.Image =
|
||||||
|
"eye" + (!CardCodeCell.Entry.IsPasswordFromToggled ? "_slash" : string.Empty) + ".png";
|
||||||
|
}
|
||||||
|
|
||||||
private void AlertNoConnection()
|
private void AlertNoConnection()
|
||||||
{
|
{
|
||||||
DisplayAlert(AppResources.InternetConnectionRequiredTitle, AppResources.InternetConnectionRequiredMessage,
|
DisplayAlert(AppResources.InternetConnectionRequiredTitle, AppResources.InternetConnectionRequiredMessage,
|
||||||
@@ -452,11 +457,14 @@ namespace Bit.App.Pages
|
|||||||
else if(_type == CipherType.Card)
|
else if(_type == CipherType.Card)
|
||||||
{
|
{
|
||||||
CardCodeCell = new FormEntryCell(AppResources.SecurityCode, Keyboard.Numeric,
|
CardCodeCell = new FormEntryCell(AppResources.SecurityCode, Keyboard.Numeric,
|
||||||
nextElement: NotesCell.Editor);
|
isPassword: true, nextElement: NotesCell.Editor, button1: "eye.png");
|
||||||
if(!string.IsNullOrWhiteSpace(_defaultCardCode))
|
if(!string.IsNullOrWhiteSpace(_defaultCardCode))
|
||||||
{
|
{
|
||||||
CardCodeCell.Entry.Text = _defaultCardCode;
|
CardCodeCell.Entry.Text = _defaultCardCode;
|
||||||
}
|
}
|
||||||
|
CardCodeCell.Entry.FontFamily =
|
||||||
|
Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier");
|
||||||
|
|
||||||
CardExpYearCell = new FormEntryCell(AppResources.ExpirationYear, Keyboard.Numeric,
|
CardExpYearCell = new FormEntryCell(AppResources.ExpirationYear, Keyboard.Numeric,
|
||||||
nextElement: CardCodeCell.Entry);
|
nextElement: CardCodeCell.Entry);
|
||||||
if(!string.IsNullOrWhiteSpace(_defaultCardExpYear))
|
if(!string.IsNullOrWhiteSpace(_defaultCardExpYear))
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ namespace Bit.App.Pages
|
|||||||
private readonly IDeviceInfoService _deviceInfo;
|
private readonly IDeviceInfoService _deviceInfo;
|
||||||
private readonly IGoogleAnalyticsService _googleAnalyticsService;
|
private readonly IGoogleAnalyticsService _googleAnalyticsService;
|
||||||
private DateTime? _lastAction;
|
private DateTime? _lastAction;
|
||||||
|
private string _originalLoginPassword = null;
|
||||||
|
private List<Tuple<string, string>> _originalHiddenFields = new List<Tuple<string, string>>();
|
||||||
|
|
||||||
public VaultEditCipherPage(string cipherId)
|
public VaultEditCipherPage(string cipherId)
|
||||||
{
|
{
|
||||||
@@ -169,7 +171,7 @@ namespace Bit.App.Pages
|
|||||||
// Types
|
// Types
|
||||||
if(Cipher.Type == CipherType.Login)
|
if(Cipher.Type == CipherType.Login)
|
||||||
{
|
{
|
||||||
LoginTotpCell = new FormEntryCell(AppResources.AuthenticatorKey,
|
LoginTotpCell = new FormEntryCell(AppResources.AuthenticatorKey,
|
||||||
button1: _deviceInfo.HasCamera ? "camera.png" : null);
|
button1: _deviceInfo.HasCamera ? "camera.png" : null);
|
||||||
LoginTotpCell.Entry.Text = Cipher.Login?.Totp?.Decrypt(Cipher.OrganizationId);
|
LoginTotpCell.Entry.Text = Cipher.Login?.Totp?.Decrypt(Cipher.OrganizationId);
|
||||||
LoginTotpCell.Entry.DisableAutocapitalize = true;
|
LoginTotpCell.Entry.DisableAutocapitalize = true;
|
||||||
@@ -179,7 +181,8 @@ namespace Bit.App.Pages
|
|||||||
|
|
||||||
LoginPasswordCell = new FormEntryCell(AppResources.Password, isPassword: true,
|
LoginPasswordCell = new FormEntryCell(AppResources.Password, isPassword: true,
|
||||||
nextElement: LoginTotpCell.Entry, button1: "eye.png", button2: "refresh_alt.png");
|
nextElement: LoginTotpCell.Entry, button1: "eye.png", button2: "refresh_alt.png");
|
||||||
LoginPasswordCell.Entry.Text = Cipher.Login?.Password?.Decrypt(Cipher.OrganizationId);
|
LoginPasswordCell.Entry.Text = _originalLoginPassword =
|
||||||
|
Cipher.Login?.Password?.Decrypt(Cipher.OrganizationId);
|
||||||
LoginPasswordCell.Entry.DisableAutocapitalize = true;
|
LoginPasswordCell.Entry.DisableAutocapitalize = true;
|
||||||
LoginPasswordCell.Entry.Autocorrect = false;
|
LoginPasswordCell.Entry.Autocorrect = false;
|
||||||
LoginPasswordCell.Entry.FontFamily =
|
LoginPasswordCell.Entry.FontFamily =
|
||||||
@@ -211,7 +214,7 @@ namespace Bit.App.Pages
|
|||||||
foreach(var uri in Cipher.Login.Uris)
|
foreach(var uri in Cipher.Login.Uris)
|
||||||
{
|
{
|
||||||
var value = uri.Uri?.Decrypt(Cipher.OrganizationId);
|
var value = uri.Uri?.Decrypt(Cipher.OrganizationId);
|
||||||
UrisSection.Insert(UrisSection.Count - 1,
|
UrisSection.Insert(UrisSection.Count - 1,
|
||||||
Helpers.MakeUriCell(value, uri.Match, UrisSection, this));
|
Helpers.MakeUriCell(value, uri.Match, UrisSection, this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -219,8 +222,10 @@ namespace Bit.App.Pages
|
|||||||
else if(Cipher.Type == CipherType.Card)
|
else if(Cipher.Type == CipherType.Card)
|
||||||
{
|
{
|
||||||
CardCodeCell = new FormEntryCell(AppResources.SecurityCode, Keyboard.Numeric,
|
CardCodeCell = new FormEntryCell(AppResources.SecurityCode, Keyboard.Numeric,
|
||||||
nextElement: NotesCell.Editor);
|
isPassword: true, nextElement: NotesCell.Editor, button1: "eye.png");
|
||||||
CardCodeCell.Entry.Text = Cipher.Card.Code?.Decrypt(Cipher.OrganizationId);
|
CardCodeCell.Entry.Text = Cipher.Card.Code?.Decrypt(Cipher.OrganizationId);
|
||||||
|
CardCodeCell.Entry.FontFamily =
|
||||||
|
Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier");
|
||||||
|
|
||||||
CardExpYearCell = new FormEntryCell(AppResources.ExpirationYear, Keyboard.Numeric,
|
CardExpYearCell = new FormEntryCell(AppResources.ExpirationYear, Keyboard.Numeric,
|
||||||
nextElement: CardCodeCell.Entry);
|
nextElement: CardCodeCell.Entry);
|
||||||
@@ -413,6 +418,11 @@ namespace Bit.App.Pages
|
|||||||
{
|
{
|
||||||
FieldsSection.Add(cell);
|
FieldsSection.Add(cell);
|
||||||
}
|
}
|
||||||
|
if(!string.IsNullOrWhiteSpace(label) && !string.IsNullOrWhiteSpace(value) &&
|
||||||
|
field.Type == FieldType.Hidden)
|
||||||
|
{
|
||||||
|
_originalHiddenFields.Add(new Tuple<string, string>(label, value));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AddFieldCell = new ExtendedTextCell
|
AddFieldCell = new ExtendedTextCell
|
||||||
@@ -490,6 +500,7 @@ namespace Bit.App.Pages
|
|||||||
NotesCell.Editor.Text.Encrypt(Cipher.OrganizationId);
|
NotesCell.Editor.Text.Encrypt(Cipher.OrganizationId);
|
||||||
Cipher.Favorite = FavoriteCell.On;
|
Cipher.Favorite = FavoriteCell.On;
|
||||||
|
|
||||||
|
var passwordHistory = Cipher.PasswordHistory?.ToList() ?? new List<PasswordHistory>();
|
||||||
switch(Cipher.Type)
|
switch(Cipher.Type)
|
||||||
{
|
{
|
||||||
case CipherType.Login:
|
case CipherType.Login:
|
||||||
@@ -501,8 +512,21 @@ namespace Bit.App.Pages
|
|||||||
LoginPasswordCell.Entry.Text.Encrypt(Cipher.OrganizationId),
|
LoginPasswordCell.Entry.Text.Encrypt(Cipher.OrganizationId),
|
||||||
Totp = string.IsNullOrWhiteSpace(LoginTotpCell.Entry.Text) ? null :
|
Totp = string.IsNullOrWhiteSpace(LoginTotpCell.Entry.Text) ? null :
|
||||||
LoginTotpCell.Entry.Text.Encrypt(Cipher.OrganizationId),
|
LoginTotpCell.Entry.Text.Encrypt(Cipher.OrganizationId),
|
||||||
|
PasswordRevisionDate = Cipher.Login.PasswordRevisionDate,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(!string.IsNullOrWhiteSpace(_originalLoginPassword) &&
|
||||||
|
LoginPasswordCell.Entry.Text != _originalLoginPassword)
|
||||||
|
{
|
||||||
|
var now = DateTime.UtcNow;
|
||||||
|
passwordHistory.Insert(0, new PasswordHistory
|
||||||
|
{
|
||||||
|
LastUsedDate = now,
|
||||||
|
Password = _originalLoginPassword.Encrypt(Cipher.OrganizationId),
|
||||||
|
});
|
||||||
|
Cipher.Login.PasswordRevisionDate = now;
|
||||||
|
}
|
||||||
|
|
||||||
Helpers.ProcessUrisSectionForSave(UrisSection, Cipher);
|
Helpers.ProcessUrisSectionForSave(UrisSection, Cipher);
|
||||||
break;
|
break;
|
||||||
case CipherType.SecureNote:
|
case CipherType.SecureNote:
|
||||||
@@ -637,7 +661,18 @@ namespace Bit.App.Pages
|
|||||||
Cipher.FolderId = null;
|
Cipher.FolderId = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Helpers.ProcessFieldsSectionForSave(FieldsSection, Cipher);
|
var hiddenFields = Helpers.ProcessFieldsSectionForSave(FieldsSection, Cipher);
|
||||||
|
var changedFields = _originalHiddenFields.Where(of =>
|
||||||
|
hiddenFields.Any(f => f.Item1 == of.Item1 && f.Item2 != of.Item2));
|
||||||
|
foreach(var cf in changedFields)
|
||||||
|
{
|
||||||
|
passwordHistory.Insert(0, new PasswordHistory
|
||||||
|
{
|
||||||
|
LastUsedDate = DateTime.UtcNow,
|
||||||
|
Password = (cf.Item1 + ": " + cf.Item2).Encrypt(Cipher.OrganizationId),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Cipher.PasswordHistory = (passwordHistory?.Count ?? 0) > 0 ? passwordHistory.Take(5) : null;
|
||||||
|
|
||||||
await _deviceActionService.ShowLoadingAsync(AppResources.Saving);
|
await _deviceActionService.ShowLoadingAsync(AppResources.Saving);
|
||||||
var saveTask = await _cipherService.SaveAsync(Cipher);
|
var saveTask = await _cipherService.SaveAsync(Cipher);
|
||||||
@@ -665,11 +700,6 @@ namespace Bit.App.Pages
|
|||||||
protected override void OnAppearing()
|
protected override void OnAppearing()
|
||||||
{
|
{
|
||||||
base.OnAppearing();
|
base.OnAppearing();
|
||||||
if(!_connectivity.IsConnected)
|
|
||||||
{
|
|
||||||
AlertNoConnection();
|
|
||||||
}
|
|
||||||
|
|
||||||
NameCell?.InitEvents();
|
NameCell?.InitEvents();
|
||||||
NotesCell?.InitEvents();
|
NotesCell?.InitEvents();
|
||||||
FolderCell?.InitEvents();
|
FolderCell?.InitEvents();
|
||||||
@@ -717,6 +747,10 @@ namespace Bit.App.Pages
|
|||||||
CardExpYearCell?.InitEvents();
|
CardExpYearCell?.InitEvents();
|
||||||
CardNameCell?.InitEvents();
|
CardNameCell?.InitEvents();
|
||||||
CardNumberCell?.InitEvents();
|
CardNumberCell?.InitEvents();
|
||||||
|
if(CardCodeCell?.Button1 != null)
|
||||||
|
{
|
||||||
|
CardCodeCell.Button1.Clicked += CardCodeButton_Clicked;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CipherType.Identity:
|
case CipherType.Identity:
|
||||||
IdTitleCell?.InitEvents();
|
IdTitleCell?.InitEvents();
|
||||||
@@ -797,6 +831,10 @@ namespace Bit.App.Pages
|
|||||||
CardExpYearCell?.Dispose();
|
CardExpYearCell?.Dispose();
|
||||||
CardNameCell?.Dispose();
|
CardNameCell?.Dispose();
|
||||||
CardNumberCell?.Dispose();
|
CardNumberCell?.Dispose();
|
||||||
|
if(CardCodeCell?.Button1 != null)
|
||||||
|
{
|
||||||
|
CardCodeCell.Button1.Clicked -= CardCodeButton_Clicked;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case CipherType.Identity:
|
case CipherType.Identity:
|
||||||
IdTitleCell?.Dispose();
|
IdTitleCell?.Dispose();
|
||||||
@@ -821,7 +859,7 @@ namespace Bit.App.Pages
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Helpers.DisposeSectionEvents(FieldsSection);
|
Helpers.DisposeSectionEvents(FieldsSection);
|
||||||
Helpers.DisposeSectionEvents(UrisSection);
|
Helpers.DisposeSectionEvents(UrisSection);
|
||||||
}
|
}
|
||||||
@@ -871,6 +909,13 @@ namespace Bit.App.Pages
|
|||||||
await Navigation.PushModalAsync(new ExtendedNavigationPage(scanPage));
|
await Navigation.PushModalAsync(new ExtendedNavigationPage(scanPage));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CardCodeButton_Clicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
CardCodeCell.Entry.InvokeToggleIsPassword();
|
||||||
|
CardCodeCell.Button1.Image =
|
||||||
|
"eye" + (!CardCodeCell.Entry.IsPasswordFromToggled ? "_slash" : string.Empty) + ".png";
|
||||||
|
}
|
||||||
|
|
||||||
private async void AttachmentsCell_Tapped(object sender, EventArgs e)
|
private async void AttachmentsCell_Tapped(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var page = new ExtendedNavigationPage(new VaultAttachmentsPage(_cipherId));
|
var page = new ExtendedNavigationPage(new VaultAttachmentsPage(_cipherId));
|
||||||
|
|||||||
@@ -257,7 +257,8 @@ namespace Bit.App.Pages
|
|||||||
searchFilter = searchFilter.ToLower();
|
searchFilter = searchFilter.ToLower();
|
||||||
var filteredCiphers = Ciphers
|
var filteredCiphers = Ciphers
|
||||||
.Where(s => s.Name.ToLower().Contains(searchFilter) ||
|
.Where(s => s.Name.ToLower().Contains(searchFilter) ||
|
||||||
(s.Subtitle?.ToLower().Contains(searchFilter) ?? false))
|
(s.Subtitle?.ToLower().Contains(searchFilter) ?? false) ||
|
||||||
|
(s.LoginUri?.ToLower().Contains(searchFilter) ?? false))
|
||||||
.TakeWhile(s => !ct.IsCancellationRequested)
|
.TakeWhile(s => !ct.IsCancellationRequested)
|
||||||
.ToArray();
|
.ToArray();
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ namespace Bit.App.Pages
|
|||||||
private TableSection NotesSection { get; set; }
|
private TableSection NotesSection { get; set; }
|
||||||
private TableSection AttachmentsSection { get; set; }
|
private TableSection AttachmentsSection { get; set; }
|
||||||
private TableSection FieldsSection { get; set; }
|
private TableSection FieldsSection { get; set; }
|
||||||
|
public TableSection OtherSection { get; set; }
|
||||||
public LabeledValueCell NotesCell { get; set; }
|
public LabeledValueCell NotesCell { get; set; }
|
||||||
private EditCipherToolBarItem EditItem { get; set; }
|
private EditCipherToolBarItem EditItem { get; set; }
|
||||||
public List<LabeledValueCell> FieldsCells { get; set; }
|
public List<LabeledValueCell> FieldsCells { get; set; }
|
||||||
@@ -51,6 +52,7 @@ namespace Bit.App.Pages
|
|||||||
// Login
|
// Login
|
||||||
public LabeledValueCell LoginUsernameCell { get; set; }
|
public LabeledValueCell LoginUsernameCell { get; set; }
|
||||||
public LabeledValueCell LoginPasswordCell { get; set; }
|
public LabeledValueCell LoginPasswordCell { get; set; }
|
||||||
|
public LabeledValueCell LoginPasswordRevisionDateCell { get; set; }
|
||||||
public LabeledValueCell LoginTotpCodeCell { get; set; }
|
public LabeledValueCell LoginTotpCodeCell { get; set; }
|
||||||
|
|
||||||
// Card
|
// Card
|
||||||
@@ -111,6 +113,10 @@ namespace Bit.App.Pages
|
|||||||
NotesCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.Notes));
|
NotesCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.Notes));
|
||||||
NotesCell.Value.LineBreakMode = LineBreakMode.WordWrap;
|
NotesCell.Value.LineBreakMode = LineBreakMode.WordWrap;
|
||||||
|
|
||||||
|
var revisionDateCell = new LabeledValueCell(AppResources.DateUpdated);
|
||||||
|
revisionDateCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.RevisionDate));
|
||||||
|
revisionDateCell.Value.LineBreakMode = LineBreakMode.WordWrap;
|
||||||
|
|
||||||
switch(_type)
|
switch(_type)
|
||||||
{
|
{
|
||||||
case CipherType.Login:
|
case CipherType.Login:
|
||||||
@@ -152,6 +158,12 @@ namespace Bit.App.Pages
|
|||||||
nameof(VaultViewCipherPageModel.LoginTotpColor));
|
nameof(VaultViewCipherPageModel.LoginTotpColor));
|
||||||
LoginTotpCodeCell.Value.FontFamily =
|
LoginTotpCodeCell.Value.FontFamily =
|
||||||
Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier");
|
Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier");
|
||||||
|
|
||||||
|
// Password Revision Date
|
||||||
|
LoginPasswordRevisionDateCell = new LabeledValueCell(AppResources.DatePasswordUpdated);
|
||||||
|
LoginPasswordRevisionDateCell.Value.SetBinding(Label.TextProperty,
|
||||||
|
nameof(VaultViewCipherPageModel.PasswordRevisionDate));
|
||||||
|
LoginPasswordRevisionDateCell.Value.LineBreakMode = LineBreakMode.WordWrap;
|
||||||
break;
|
break;
|
||||||
case CipherType.Card:
|
case CipherType.Card:
|
||||||
CardNameCell = new LabeledValueCell(AppResources.CardholderName);
|
CardNameCell = new LabeledValueCell(AppResources.CardholderName);
|
||||||
@@ -168,9 +180,15 @@ namespace Bit.App.Pages
|
|||||||
CardExpCell = new LabeledValueCell(AppResources.Expiration);
|
CardExpCell = new LabeledValueCell(AppResources.Expiration);
|
||||||
CardExpCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.CardExp));
|
CardExpCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.CardExp));
|
||||||
|
|
||||||
CardCodeCell = new LabeledValueCell(AppResources.SecurityCode, button1Image: "clipboard.png");
|
CardCodeCell = new LabeledValueCell(AppResources.SecurityCode, button1Image: string.Empty,
|
||||||
CardCodeCell.Button1.Command = new Command(() => Copy(Model.CardCode, AppResources.SecurityCode));
|
button2Image: "clipboard.png");
|
||||||
CardCodeCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.CardCode));
|
CardCodeCell.Value.SetBinding(Label.TextProperty, nameof(VaultViewCipherPageModel.MaskedCardCode));
|
||||||
|
CardCodeCell.Button1.SetBinding(Button.ImageProperty,
|
||||||
|
nameof(VaultViewCipherPageModel.CardCodeShowHideImage));
|
||||||
|
CardCodeCell.Button1.Command = new Command(() => Model.RevealCardCode = !Model.RevealCardCode);
|
||||||
|
CardCodeCell.Button2.Command = new Command(() => Copy(Model.CardCode, AppResources.SecurityCode));
|
||||||
|
CardCodeCell.Value.FontFamily =
|
||||||
|
Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier");
|
||||||
break;
|
break;
|
||||||
case CipherType.Identity:
|
case CipherType.Identity:
|
||||||
IdNameCell = new LabeledValueCell(AppResources.Name);
|
IdNameCell = new LabeledValueCell(AppResources.Name);
|
||||||
@@ -229,6 +247,11 @@ namespace Bit.App.Pages
|
|||||||
NotesCell
|
NotesCell
|
||||||
};
|
};
|
||||||
|
|
||||||
|
OtherSection = new TableSection(Helpers.GetEmptyTableSectionTitle())
|
||||||
|
{
|
||||||
|
revisionDateCell
|
||||||
|
};
|
||||||
|
|
||||||
Table = new ExtendedTableView
|
Table = new ExtendedTableView
|
||||||
{
|
{
|
||||||
Intent = TableIntent.Settings,
|
Intent = TableIntent.Settings,
|
||||||
@@ -357,10 +380,26 @@ namespace Bit.App.Pages
|
|||||||
Table.Root.Add(AttachmentsSection);
|
Table.Root.Add(AttachmentsSection);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Other
|
||||||
|
if(Table.Root.Contains(OtherSection))
|
||||||
|
{
|
||||||
|
Table.Root.Remove(OtherSection);
|
||||||
|
}
|
||||||
|
Table.Root.Add(OtherSection);
|
||||||
|
|
||||||
// Various types
|
// Various types
|
||||||
switch(cipher.Type)
|
switch(cipher.Type)
|
||||||
{
|
{
|
||||||
case CipherType.Login:
|
case CipherType.Login:
|
||||||
|
if(OtherSection.Contains(LoginPasswordRevisionDateCell))
|
||||||
|
{
|
||||||
|
OtherSection.Remove(LoginPasswordRevisionDateCell);
|
||||||
|
}
|
||||||
|
if(Model.ShowPasswordRevisionDate)
|
||||||
|
{
|
||||||
|
OtherSection.Add(LoginPasswordRevisionDateCell);
|
||||||
|
}
|
||||||
|
|
||||||
AddSectionCell(LoginUsernameCell, Model.ShowLoginUsername);
|
AddSectionCell(LoginUsernameCell, Model.ShowLoginUsername);
|
||||||
AddSectionCell(LoginPasswordCell, Model.ShowLoginPassword);
|
AddSectionCell(LoginPasswordCell, Model.ShowLoginPassword);
|
||||||
|
|
||||||
@@ -373,10 +412,11 @@ namespace Bit.App.Pages
|
|||||||
var totpKey = cipher.Login?.Totp.Decrypt(cipher.OrganizationId);
|
var totpKey = cipher.Login?.Totp.Decrypt(cipher.OrganizationId);
|
||||||
if(!string.IsNullOrWhiteSpace(totpKey))
|
if(!string.IsNullOrWhiteSpace(totpKey))
|
||||||
{
|
{
|
||||||
|
var otpParams = new OtpAuth(totpKey);
|
||||||
Model.LoginTotpCode = Crypto.Totp(totpKey);
|
Model.LoginTotpCode = Crypto.Totp(totpKey);
|
||||||
if(!string.IsNullOrWhiteSpace(Model.LoginTotpCode))
|
if(!string.IsNullOrWhiteSpace(Model.LoginTotpCode))
|
||||||
{
|
{
|
||||||
TotpTick(totpKey);
|
TotpTick(totpKey, otpParams.Period);
|
||||||
_timerStarted = DateTime.Now;
|
_timerStarted = DateTime.Now;
|
||||||
Device.StartTimer(new TimeSpan(0, 0, 1), () =>
|
Device.StartTimer(new TimeSpan(0, 0, 1), () =>
|
||||||
{
|
{
|
||||||
@@ -385,7 +425,7 @@ namespace Bit.App.Pages
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
TotpTick(totpKey);
|
TotpTick(totpKey, otpParams.Period);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -490,11 +530,11 @@ namespace Bit.App.Pages
|
|||||||
_deviceActionService.Toast(string.Format(AppResources.ValueHasBeenCopied, alertLabel));
|
_deviceActionService.Toast(string.Format(AppResources.ValueHasBeenCopied, alertLabel));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void TotpTick(string totpKey)
|
private void TotpTick(string totpKey, int interval)
|
||||||
{
|
{
|
||||||
var now = Helpers.EpocUtcNow() / 1000;
|
var now = Helpers.EpocUtcNow() / 1000;
|
||||||
var mod = now % 30;
|
var mod = now % interval;
|
||||||
Model.LoginTotpSecond = (int)(30 - mod);
|
Model.LoginTotpSecond = (int)(interval - mod);
|
||||||
|
|
||||||
if(mod == 0)
|
if(mod == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
54
src/App/Resources/AppResources.Designer.cs
generated
54
src/App/Resources/AppResources.Designer.cs
generated
@@ -492,6 +492,15 @@ namespace Bit.App.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The accessibility service may be helpful to use when apps do not support the standard auto-fill service..
|
||||||
|
/// </summary>
|
||||||
|
public static string BitwardenAutofillAccessibilityServiceDescription2 {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("BitwardenAutofillAccessibilityServiceDescription2", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service..
|
/// Looks up a localized string similar to We were unable to automatically open the Android autofill settings menu for you. You can navigate to the autofill settings menu manually from Android Settings > System > Languages and input > Advanced > Autofill service..
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -933,6 +942,24 @@ namespace Bit.App.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Password Updated.
|
||||||
|
/// </summary>
|
||||||
|
public static string DatePasswordUpdated {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("DatePasswordUpdated", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Updated.
|
||||||
|
/// </summary>
|
||||||
|
public static string DateUpdated {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("DateUpdated", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to December.
|
/// Looks up a localized string similar to December.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1590,6 +1617,15 @@ namespace Bit.App.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Hold your Yubikey near the top of the device..
|
||||||
|
/// </summary>
|
||||||
|
public static string HoldYubikeyNearTop {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("HoldYubikeyNearTop", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Host.
|
/// Looks up a localized string similar to Host.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -2913,6 +2949,15 @@ namespace Bit.App.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Try Again.
|
||||||
|
/// </summary>
|
||||||
|
public static string TryAgain {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TryAgain", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Two-step Login.
|
/// Looks up a localized string similar to Two-step Login.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -3327,6 +3372,15 @@ namespace Bit.App.Resources {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to To continue, hold your YubiKey NEO against the back of the device..
|
||||||
|
/// </summary>
|
||||||
|
public static string YubiKeyInstructionIos {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("YubiKeyInstructionIos", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to YubiKey Security Key.
|
/// Looks up a localized string similar to YubiKey Security Key.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey Security Key</value>
|
<value>YubiKey Security Key</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Прикачване на файл</value>
|
<value>Прикачване на файл</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Откриване на съвпадения</value>
|
<value>Откриване на съвпадения</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
<comment>Navigate back to the previous screen.</comment>
|
<comment>Navigate back to the previous screen.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Bitwarden" xml:space="preserve">
|
<data name="Bitwarden" xml:space="preserve">
|
||||||
<value>bitwarden</value>
|
<value>Bitwarden</value>
|
||||||
<comment>App name. Shouldn't ever change.</comment>
|
<comment>App name. Shouldn't ever change.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
@@ -182,18 +182,18 @@
|
|||||||
<value>Upravit složku</value>
|
<value>Upravit složku</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Email" xml:space="preserve">
|
<data name="Email" xml:space="preserve">
|
||||||
<value>Email</value>
|
<value>E-mail</value>
|
||||||
<comment>Short label for an email address.</comment>
|
<comment>Short label for an email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailAddress" xml:space="preserve">
|
<data name="EmailAddress" xml:space="preserve">
|
||||||
<value>Emailová adresa</value>
|
<value>E-mailová adresa</value>
|
||||||
<comment>Full label for a email address.</comment>
|
<comment>Full label for a email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailUs" xml:space="preserve">
|
<data name="EmailUs" xml:space="preserve">
|
||||||
<value>Napište nám</value>
|
<value>Napište nám</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailUsDescription" xml:space="preserve">
|
<data name="EmailUsDescription" xml:space="preserve">
|
||||||
<value>Napište nám email pro získání pomoci nebo zanechání zpětné vazby.</value>
|
<value>Napište nám e-mail pro získání pomoci nebo zanechání zpětné vazby.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterPIN" xml:space="preserve">
|
<data name="EnterPIN" xml:space="preserve">
|
||||||
<value>Zadejte PIN kód.</value>
|
<value>Zadejte PIN kód.</value>
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
<comment>The title for the tools page.</comment>
|
<comment>The title for the tools page.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="URI" xml:space="preserve">
|
<data name="URI" xml:space="preserve">
|
||||||
<value>URL</value>
|
<value>URI</value>
|
||||||
<comment>Label for a uri/url.</comment>
|
<comment>Label for a uri/url.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseFingerprintToUnlock" xml:space="preserve">
|
<data name="UseFingerprintToUnlock" xml:space="preserve">
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
<value>Navštivit naší webovou stránku</value>
|
<value>Navštivit naší webovou stránku</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>Navštivte webovou stránku aplikace pro zobrazení nejnovějších zpráv, nápovědy nebo návodu jak používat bitwarden.</value>
|
<value>Navštivte náš web pro získání nápovědy, novinek, kontaktu, nebo návodů, jak používat Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>Webová stránka</value>
|
<value>Webová stránka</value>
|
||||||
@@ -412,13 +412,13 @@
|
|||||||
<value>Nepoužít zaměnitelné znaky</value>
|
<value>Nepoužít zaměnitelné znaky</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||||
<value>Rozšíření aplikace bitwarden</value>
|
<value>Rozšíření aplikace Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>Nejjednodušší způsob, jak přidat nové přihlašovací údaje do vašeho trezoru, je použití rozšíření bitwarden. Přečtěte si další informace o použití rozšíření na obrazovce "Nástroje".</value>
|
<value>Nejjednodušší způsob, jak přidat nové přihlašovací údaje do vašeho trezoru, je použití rozšíření aplikace Bitwarden. Přečtěte si další informace o použití rozšíření na obrazovce "Nástroje".</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
||||||
<value>Použijte bitwarden v Safari a ostatních prohlížečích pro automatické vyplnění přihlašovacích údajů.</value>
|
<value>Použijte Bitwarden v Safari a ostatních prohlížečích pro automatické vyplnění přihlašovacích údajů.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>Služba automatického vyplňování</value>
|
<value>Služba automatického vyplňování</value>
|
||||||
@@ -427,10 +427,10 @@
|
|||||||
<value>Použijte službu usnadnění pro automatické vyplnění přihlašovacích údajů.</value>
|
<value>Použijte službu usnadnění pro automatické vyplnění přihlašovacích údajů.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>Změnit email</value>
|
<value>Změnit e-mail</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
||||||
<value>Emailovou adresu si můžete změnit na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?</value>
|
<value>E-mailovou adresu si můžete změnit na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeMasterPassword" xml:space="preserve">
|
<data name="ChangeMasterPassword" xml:space="preserve">
|
||||||
<value>Změnit hlavní heslo</value>
|
<value>Změnit hlavní heslo</value>
|
||||||
@@ -470,7 +470,7 @@
|
|||||||
<value>Povolit automatickou synchronizaci</value>
|
<value>Povolit automatickou synchronizaci</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterEmailForHint" xml:space="preserve">
|
<data name="EnterEmailForHint" xml:space="preserve">
|
||||||
<value>Zadejte emailovou adresu pro zaslání nápovědy k hlavnímu heslu.</value>
|
<value>Zadejte e-mailovou adresu pro zaslání nápovědy k hlavnímu heslu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExntesionReenable" xml:space="preserve">
|
<data name="ExntesionReenable" xml:space="preserve">
|
||||||
<value>Znovu zapnout rozšíření aplikace</value>
|
<value>Znovu zapnout rozšíření aplikace</value>
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
<value>Zapnout rozšíření aplikace</value>
|
<value>Zapnout rozšíření aplikace</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInSafari" xml:space="preserve">
|
<data name="ExtensionInSafari" xml:space="preserve">
|
||||||
<value>V Safari bitwarden používá ikonku pro sdílení (nápověda: nachází se vpravo dole v menu).</value>
|
<value>V Safari používá Bitwarden ikonku pro sdílení (nápověda: nachází se vpravo dole v menu).</value>
|
||||||
<comment>Safari is the name of apple's web browser</comment>
|
<comment>Safari is the name of apple's web browser</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInstantAccess" xml:space="preserve">
|
<data name="ExtensionInstantAccess" xml:space="preserve">
|
||||||
@@ -498,13 +498,13 @@
|
|||||||
<value>Vaše přihlašovací údaje jsou nyní snadno přístupné ze Safari, Chromu a dalších podporovaných aplikací.</value>
|
<value>Vaše přihlašovací údaje jsou nyní snadno přístupné ze Safari, Chromu a dalších podporovaných aplikací.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionSetup2" xml:space="preserve">
|
<data name="ExtensionSetup2" xml:space="preserve">
|
||||||
<value>V Safari a Chromu najděte bitwarden pomocí ikony sdílení (nápověda: nachází se vpravo dole v menu).</value>
|
<value>V Safari a Chromu najdete Bitwarden pomocí ikony sdílení (nápověda: nachází se vpravo dole v menu).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTapIcon" xml:space="preserve">
|
<data name="ExtensionTapIcon" xml:space="preserve">
|
||||||
<value>Pro spuštění rozšíření klikněte na ikonku bitwarden v menu.</value>
|
<value>Pro spuštění rozšíření klikněte na ikonku Bitwarden v menu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||||
<value>Pro zapnutí bitwarden v Safari a ostatních prohlížečích, klikněte na ikonku "více" v dolní části menu.</value>
|
<value>Pro zapnutí Bitwarden v prohlížeči Safari a dalších aplikacích klepněte na ikonku „více“ v dolní části menu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorite" xml:space="preserve">
|
<data name="Favorite" xml:space="preserve">
|
||||||
<value>Oblíbené</value>
|
<value>Oblíbené</value>
|
||||||
@@ -591,7 +591,7 @@
|
|||||||
<value>Další nastavení</value>
|
<value>Další nastavení</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MustLogInMainApp" xml:space="preserve">
|
<data name="MustLogInMainApp" xml:space="preserve">
|
||||||
<value>Před použitím rozšíření se musíte nejdříve přihlásit v hlavní aplikaci bitwarden.</value>
|
<value>Před použitím rozšíření se musíte nejdříve přihlásit v hlavní aplikaci Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>Nikdy</value>
|
<value>Nikdy</value>
|
||||||
@@ -616,7 +616,7 @@
|
|||||||
<comment>Confirmation, like "Ok, I understand it"</comment>
|
<comment>Confirmation, like "Ok, I understand it"</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptionDefaults" xml:space="preserve">
|
<data name="OptionDefaults" xml:space="preserve">
|
||||||
<value>Výchozí nastavení je převzato z nastavení generování hesel v aplikaci bitwarden.</value>
|
<value>Výchozí nastavení je převzato z nastavení generování hesel v aplikaci Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Options" xml:space="preserve">
|
<data name="Options" xml:space="preserve">
|
||||||
<value>Možnosti</value>
|
<value>Možnosti</value>
|
||||||
@@ -634,13 +634,13 @@
|
|||||||
<value>Nápověda k heslu</value>
|
<value>Nápověda k heslu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordHintAlert" xml:space="preserve">
|
<data name="PasswordHintAlert" xml:space="preserve">
|
||||||
<value>Odeslali jsme vám email s nápovědou k hlavnímu heslu.</value>
|
<value>Odeslali jsme vám e-mail s nápovědou k hlavnímu heslu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordOverrideAlert" xml:space="preserve">
|
<data name="PasswordOverrideAlert" xml:space="preserve">
|
||||||
<value>Opravdu chcete přepsat aktuální heslo?</value>
|
<value>Opravdu chcete přepsat aktuální heslo?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PushNotificationAlert" xml:space="preserve">
|
<data name="PushNotificationAlert" xml:space="preserve">
|
||||||
<value>bitwarden udržuje váš trezor automaticky synchronizovaný pomocí nabízených oznámení. Pro nejlepší možný zážitek klikněte prosím na následující výzvě na "Ok", pokud budete požádáni o jejich povolení.</value>
|
<value>Bitwarden udržuje váš trezor automaticky synchronizovaný pomocí nabízených oznámení. Pro nejlepší možný zážitek klikněte prosím na následující výzvě na "Ok", pokud budete požádáni o jejich povolení.</value>
|
||||||
<comment>Push notifications for apple products</comment>
|
<comment>Push notifications for apple products</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheApp" xml:space="preserve">
|
<data name="RateTheApp" xml:space="preserve">
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
<value>Pomozte nám napsáním dobré recenze!</value>
|
<value>Pomozte nám napsáním dobré recenze!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>S každou novou verzí aplikace bitwarden se v App Store obnovuje hodnocení. Pomozte nám prosím dobrou recenzí!</value>
|
<value>S každou novou verzí aplikace Bitwarden se v App Store obnovuje hodnocení. Pomozte nám prosím dobrou recenzí!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>Vygenerovat další heslo</value>
|
<value>Vygenerovat další heslo</value>
|
||||||
@@ -707,7 +707,7 @@
|
|||||||
<value>Dvoufázové přihlášení</value>
|
<value>Dvoufázové přihlášení</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>Dvoufázové přihlášení činí váš účet mnohem bezpečnější díky nutnosti po každém úspěšném přihlášení zadat ověřovací kód získaný z aplikace, SMS, emailu nebo telefonního hovoru. Dvoufázové přihlášení lze aktivovat na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?</value>
|
<value>Dvoufázové přihlášení činí váš účet mnohem bezpečnějším díky nutnosti po každém úspěšném přihlášení zadat ověřovací kód získaný z aplikace, SMS, e-mailu nebo telefonního hovoru. Dvoufázové přihlášení lze aktivovat na webové stránce bitwarden.com. Chcete tuto stránku nyní otevřít?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Odemknout pomocí {0}</value>
|
<value>Odemknout pomocí {0}</value>
|
||||||
@@ -729,7 +729,7 @@
|
|||||||
<value>Webová aplikace</value>
|
<value>Webová aplikace</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>Spravujte přihlašovací údaje z jakéhokoliv prohlížeče pomocí webové aplikace bitwarden.</value>
|
<value>Spravujte přihlašovací údaje z jakéhokoliv prohlížeče pomocí webové aplikace Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lost2FAApp" xml:space="preserve">
|
<data name="Lost2FAApp" xml:space="preserve">
|
||||||
<value>Ztratili jste ověřovací aplikaci?</value>
|
<value>Ztratili jste ověřovací aplikaci?</value>
|
||||||
@@ -756,7 +756,7 @@
|
|||||||
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
||||||
<value>Pokud uvidíte v liště oznámení bitwarden, můžete klepnutím na něj spustit automatické vyplnění přihlašovacích údajů.</value>
|
<value>Pokud uvidíte v liště oznámení z aplikace Bitwarden, můžete klepnutím na něj spustit automatické vyplnění přihlašovacích údajů.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
||||||
<value>Klikněte pro automatické vyplnění přihlašovacích údajů.</value>
|
<value>Klikněte pro automatické vyplnění přihlašovacích údajů.</value>
|
||||||
@@ -765,7 +765,7 @@
|
|||||||
<value>Otevřít nastavení usnadnění</value>
|
<value>Otevřít nastavení usnadnění</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. V menu v nastavení Usnadnění klikněte na "bitwarden" pod nadpisem Služby.</value>
|
<value>1. V menu v nastavení Usnadnění klikněte na "Bitwarden" pod nadpisem Služby.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
||||||
<value>2. Zapněte přepínač a potvrďte stisknutím tlačítka OK.</value>
|
<value>2. Zapněte přepínač a potvrďte stisknutím tlačítka OK.</value>
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
<value>Beta</value>
|
<value>Beta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
||||||
<value>Nejjednodušší způsob, jak přidat nové přihlašovací údaje do vašeho trezoru, je služba automatického vyplňování bitwarden. Přečtěte si další informace o použití této služby na obrazovce "Nástroje".</value>
|
<value>Nejjednodušší způsob, jak přidat nové přihlašovací údaje do vašeho trezoru, je služba automatického vyplňování Bitwarden. Přečtěte si další informace o použití této služby na obrazovce "Nástroje".</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Autofill" xml:space="preserve">
|
<data name="Autofill" xml:space="preserve">
|
||||||
<value>Automatické vyplnění</value>
|
<value>Automatické vyplnění</value>
|
||||||
@@ -846,7 +846,7 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
||||||
<value>Zadejte 6-místný kód, který byl odeslán na email {0}.</value>
|
<value>Zadejte 6místný kód z e-mailu, který byl zaslán na {0}.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoginUnavailable" xml:space="preserve">
|
<data name="LoginUnavailable" xml:space="preserve">
|
||||||
@@ -865,7 +865,7 @@
|
|||||||
<comment>Remember my two-step login</comment>
|
<comment>Remember my two-step login</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="SendVerificationCodeAgain" xml:space="preserve">
|
<data name="SendVerificationCodeAgain" xml:space="preserve">
|
||||||
<value>Zaslat znovu ověřovací kód na email</value>
|
<value>Zaslat znovu ověřovací kód na e-mail</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginOptions" xml:space="preserve">
|
<data name="TwoStepLoginOptions" xml:space="preserve">
|
||||||
@@ -875,19 +875,19 @@
|
|||||||
<value>Použít jinou metodu dvoufázového přihlášení</value>
|
<value>Použít jinou metodu dvoufázového přihlášení</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerificationEmailNotSent" xml:space="preserve">
|
<data name="VerificationEmailNotSent" xml:space="preserve">
|
||||||
<value>Nepodařilo se odeslat ověřovací email. Zkuste to znovu.</value>
|
<value>Ověřovací e-mail se nepodařilo odeslat. Zkuste to znovu.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerificationEmailSent" xml:space="preserve">
|
<data name="VerificationEmailSent" xml:space="preserve">
|
||||||
<value>Ověřovací email byl odeslán.</value>
|
<value>Ověřovací e-mail byl odeslán.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyInstruction" xml:space="preserve">
|
<data name="YubiKeyInstruction" xml:space="preserve">
|
||||||
<value>Pro pokračování podržte YubiKey NEO blízko zadní strany vašeho zařízení.</value>
|
<value>Pro pokračování podržte YubiKey NEO blízko zadní strany vašeho zařízení nebo vložte YubiKey do USB portu a stiskněte tlačítko na klíči.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO bezpečnostní klíč</value>
|
<value>YubiKey NEO bezpečnostní klíč</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Přidat přílohu</value>
|
<value>Přidat přílohu</value>
|
||||||
@@ -995,10 +995,10 @@
|
|||||||
<value>Pro pokročilé uživatele. Můžete zadat základní URL adresu každé služby zvlášť.</value>
|
<value>Pro pokročilé uživatele. Můžete zadat základní URL adresu každé služby zvlášť.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnvironmentSaved" xml:space="preserve">
|
<data name="EnvironmentSaved" xml:space="preserve">
|
||||||
<value>URL adresy vlastního prostředí byly uloženy.</value>
|
<value>URL adresy vlastního prostředí byly uloženy</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormattedIncorrectly" xml:space="preserve">
|
<data name="FormattedIncorrectly" xml:space="preserve">
|
||||||
<value>{0} nemá správný formát.</value>
|
<value>{0} má nesprávný formát.</value>
|
||||||
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="IdentityUrl" xml:space="preserve">
|
<data name="IdentityUrl" xml:space="preserve">
|
||||||
@@ -1009,7 +1009,7 @@
|
|||||||
<value>Vlastnoručně hostované prostředí</value>
|
<value>Vlastnoručně hostované prostředí</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
||||||
<value>Zadejte základní URL adresu vlastnoručně hostované aplikace bitwarden.</value>
|
<value>Zadejte základní URL adresu vlastnoručně hostované aplikace Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ServerUrl" xml:space="preserve">
|
<data name="ServerUrl" xml:space="preserve">
|
||||||
<value>URL serveru</value>
|
<value>URL serveru</value>
|
||||||
@@ -1144,7 +1144,7 @@
|
|||||||
<value>Telefon</value>
|
<value>Telefon</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="September" xml:space="preserve">
|
<data name="September" xml:space="preserve">
|
||||||
<value>Záři</value>
|
<value>Září</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SSN" xml:space="preserve">
|
<data name="SSN" xml:space="preserve">
|
||||||
<value>Číslo sociálního pojištění</value>
|
<value>Číslo sociálního pojištění</value>
|
||||||
@@ -1174,7 +1174,7 @@
|
|||||||
<value>URL serveru ikonek</value>
|
<value>URL serveru ikonek</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>Automatické vyplnění s aplikací bitwarden</value>
|
<value>Automatické vyplnění s aplikací Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>Trezor je zamknutý</value>
|
<value>Trezor je zamknutý</value>
|
||||||
@@ -1195,7 +1195,7 @@
|
|||||||
<value>Služba automatického vyplňování</value>
|
<value>Služba automatického vyplňování</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillServiceDescription" xml:space="preserve">
|
<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>Služba Bitwarden automatického vyplnění používá Android Autofill framework pro vyplnění přihlašovacích údajů, čísel platebních karet a dalších osobních informací do dalších aplikací ve vašem zařízení.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Použijte službu usnadnění pro automatické vyplnění přihlašovacích údajům, karet nebo identit v ostatních aplikacích.</value>
|
<value>Použijte službu usnadnění pro automatické vyplnění přihlašovacích údajům, karet nebo identit v ostatních aplikacích.</value>
|
||||||
@@ -1226,61 +1226,91 @@
|
|||||||
<value>Windows Hello</value>
|
<value>Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
<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 > System > Languages and input > Advanced > Autofill service.</value>
|
<value>Nepodařilo se nám automaticky otevřít nastavení automatického vyplňování Android. Nastavení můžete otevřít ručně z Nastavení systému Android > Systém > Jazyky a vstup > Rozšířené > Služba automatického vyplňování.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Název vlastního pole</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Ano/Ne</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Skryté</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Text</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Nové vlastní pole</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Jaký typ vlastního pole chcete přidat?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Smazat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Nová URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Základní doména</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Výchozí</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Přesně</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Host</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Regulární výraz</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Začíná na</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Zjišťování shody URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Zjišťování shody</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ano a uložit</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automaticky vyplněno a uloženo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organizace</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Držte Yubikey v horní části zařízení.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Zkusit znovu</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Pro pokračování přidržte YubiKey NEO u zadní části zařízení.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Služba usnadnění může být užitečná, pokud aplikace nepodporují standardní službu automatického vyplňování.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Heslo bylo změněno</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Změněno</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -182,11 +182,11 @@
|
|||||||
<value>Rediger mappe</value>
|
<value>Rediger mappe</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Email" xml:space="preserve">
|
<data name="Email" xml:space="preserve">
|
||||||
<value>E-mail</value>
|
<value>Email</value>
|
||||||
<comment>Short label for an email address.</comment>
|
<comment>Short label for an email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailAddress" xml:space="preserve">
|
<data name="EmailAddress" xml:space="preserve">
|
||||||
<value>E-mail adresse</value>
|
<value>Emailadresse</value>
|
||||||
<comment>Full label for a email address.</comment>
|
<comment>Full label for a email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailUs" xml:space="preserve">
|
<data name="EmailUs" xml:space="preserve">
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
<value>Åbn et problem på vores GitHub depot.</value>
|
<value>Åbn et problem på vores GitHub depot.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FingerprintDirection" xml:space="preserve">
|
<data name="FingerprintDirection" xml:space="preserve">
|
||||||
<value>Brug dit fingeraftryk til at bekræfte.</value>
|
<value>Bekræft med dit fingeraftryk.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Folder" xml:space="preserve">
|
<data name="Folder" xml:space="preserve">
|
||||||
<value>Mappe</value>
|
<value>Mappe</value>
|
||||||
@@ -363,7 +363,7 @@
|
|||||||
<comment>Confirmation message after suceessfully copying a value to the clipboard.</comment>
|
<comment>Confirmation message after suceessfully copying a value to the clipboard.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyFingerprint" xml:space="preserve">
|
<data name="VerifyFingerprint" xml:space="preserve">
|
||||||
<value>Bekræft fingeraftryk</value>
|
<value>Verificer fingeraftryk</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyMasterPassword" xml:space="preserve">
|
<data name="VerifyMasterPassword" xml:space="preserve">
|
||||||
<value>Bekræft hovedadgangskode</value>
|
<value>Bekræft hovedadgangskode</value>
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
<value>Besøg vores hjemmeside</value>
|
<value>Besøg vores hjemmeside</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>Besøg vores hjemmeside for at få hjælp, nyheder, sende os en e-mail og/eller lære mere om hvordan du bruger Bitwarden.</value>
|
<value>Besøg vores hjemmeside for at få hjælp, nyheder, sende os en email og/eller lære mere om hvordan du bruger Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>Hjemmeside</value>
|
<value>Hjemmeside</value>
|
||||||
@@ -427,10 +427,10 @@
|
|||||||
<value>Brug Bitwardens hjælpefunktion til at auto-udfylde dine logins.</value>
|
<value>Brug Bitwardens hjælpefunktion til at auto-udfylde dine logins.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>Skift E-mailadresse</value>
|
<value>Skift email</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
||||||
<value>Du kan ændre din e-mail adresse i bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?</value>
|
<value>Du kan ændre din emailadresse i bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeMasterPassword" xml:space="preserve">
|
<data name="ChangeMasterPassword" xml:space="preserve">
|
||||||
<value>Skift hovedadgangskode</value>
|
<value>Skift hovedadgangskode</value>
|
||||||
@@ -470,7 +470,7 @@
|
|||||||
<value>Aktiver automatisk synkronisering</value>
|
<value>Aktiver automatisk synkronisering</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterEmailForHint" xml:space="preserve">
|
<data name="EnterEmailForHint" xml:space="preserve">
|
||||||
<value>Indtast din kontos e-mailadresse for at modtage dit hovedadgangskodetip.</value>
|
<value>Indtast din kontos emailadresse for at modtage dit hovedadgangskodetip.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExntesionReenable" xml:space="preserve">
|
<data name="ExntesionReenable" xml:space="preserve">
|
||||||
<value>Genaktiver app udvidelse</value>
|
<value>Genaktiver app udvidelse</value>
|
||||||
@@ -510,7 +510,7 @@
|
|||||||
<value>Favorit</value>
|
<value>Favorit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Fingerprint" xml:space="preserve">
|
<data name="Fingerprint" xml:space="preserve">
|
||||||
<value>Fingeraftryk</value>
|
<value>fingeraftryk</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GeneratePassword" xml:space="preserve">
|
<data name="GeneratePassword" xml:space="preserve">
|
||||||
<value>Generer adgangskode</value>
|
<value>Generer adgangskode</value>
|
||||||
@@ -522,7 +522,7 @@
|
|||||||
<value>Importer elementer</value>
|
<value>Importer elementer</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsConfirmation" xml:space="preserve">
|
<data name="ImportItemsConfirmation" xml:space="preserve">
|
||||||
<value>Du kan importere emner i din web-boks på bitwarden.com. Vil du besøge hjemmesiden nu?</value>
|
<value>Du kan importere elementer i din web-boks på bitwarden.com. Vil du besøge hjemmesiden nu?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsDescription" xml:space="preserve">
|
<data name="ImportItemsDescription" xml:space="preserve">
|
||||||
<value>Importer hurtigt dine elementer fra andre adgangskode manager-programmer.</value>
|
<value>Importer hurtigt dine elementer fra andre adgangskode manager-programmer.</value>
|
||||||
@@ -580,11 +580,11 @@
|
|||||||
<value>Hovedadgangskode skal være mindst 8 tegn.</value>
|
<value>Hovedadgangskode skal være mindst 8 tegn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinNumbers" xml:space="preserve">
|
<data name="MinNumbers" xml:space="preserve">
|
||||||
<value>Mindste antal cifre</value>
|
<value>Minimum cifre</value>
|
||||||
<comment>Minimum numeric characters for password generator settings</comment>
|
<comment>Minimum numeric characters for password generator settings</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinSpecial" xml:space="preserve">
|
<data name="MinSpecial" xml:space="preserve">
|
||||||
<value>Mindste antal specialtegn</value>
|
<value>Minimum specialtegn</value>
|
||||||
<comment>Minimum special characters for password generator settings</comment>
|
<comment>Minimum special characters for password generator settings</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="MoreSettings" xml:space="preserve">
|
<data name="MoreSettings" xml:space="preserve">
|
||||||
@@ -634,7 +634,7 @@
|
|||||||
<value>Adgangskodetip</value>
|
<value>Adgangskodetip</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordHintAlert" xml:space="preserve">
|
<data name="PasswordHintAlert" xml:space="preserve">
|
||||||
<value>Vi har sendt dig en e-mail med dit hovedadgangskodetip.</value>
|
<value>Vi har sendt dig en email med dit hovedadgangskodetip.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordOverrideAlert" xml:space="preserve">
|
<data name="PasswordOverrideAlert" xml:space="preserve">
|
||||||
<value>Er du sikker du vil overskrive den aktuelle adgangskode?</value>
|
<value>Er du sikker du vil overskrive den aktuelle adgangskode?</value>
|
||||||
@@ -707,7 +707,7 @@
|
|||||||
<value>To-trins login</value>
|
<value>To-trins login</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>To-trins login gør din konto mere sikker ved at kræve du verificere dit login med en anden enhed såsom en sikkerhedsnøgle, autentificering app, SMS, telefonopkald eller e-mail. To-trins login kan aktiveres på bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?</value>
|
<value>To-trins login gør din konto mere sikker, ved at kræve at du verificerer dit login med en anden enhed, såsom en sikkerhedsnøgle, autentificerings app, SMS, telefonopkald eller email. To-trins login kan aktiveres på bitwarden.com web-boksen. Vil du besøge hjemmesiden nu?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Lås op med {0}</value>
|
<value>Lås op med {0}</value>
|
||||||
@@ -813,7 +813,7 @@
|
|||||||
<value>Opret en organisation for at dele dine elementer med andre brugere på en sikker måde.</value>
|
<value>Opret en organisation for at dele dine elementer med andre brugere på en sikker måde.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableGADescription" xml:space="preserve">
|
<data name="DisableGADescription" xml:space="preserve">
|
||||||
<value>Vi bruger Analytics til at bedre lære hvordan appen bruges, således at vi kan gøre den bedre. Al dataindsamling er fuldstændig anonym.</value>
|
<value>Vi bruger Analytics for bedre at lære hvordan appen bruges, således at vi kan gøre den bedre. Al dataindsamling er fuldstændig anonym.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPasswordField" xml:space="preserve">
|
<data name="AutofillPasswordField" xml:space="preserve">
|
||||||
<value>Skan når adgangskodefeltet fokuseres</value>
|
<value>Skan når adgangskodefeltet fokuseres</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey sikkerhedsnøgle</value>
|
<value>YubiKey sikkerhedsnøgle</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Tilføj ny vedhæftning</value>
|
<value>Tilføj ny vedhæftning</value>
|
||||||
@@ -1192,7 +1192,7 @@
|
|||||||
<value>Der er ingen elementer i denne mappe.</value>
|
<value>Der er ingen elementer i denne mappe.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityService" xml:space="preserve">
|
<data name="AutofillAccessibilityService" xml:space="preserve">
|
||||||
<value>Auto-udfyld hjæpefunktion</value>
|
<value>Auto-udfyld hjælpefunktion</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillServiceDescription" xml:space="preserve">
|
<data name="AutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Bitwarden auto-udfyld tjenesten bruger Androids Auto-udfyld framework til at hjælpe med at udfylde logins, kreditkort og identitetsoplysninger i andre apps på din enhed.</value>
|
<value>Bitwarden auto-udfyld tjenesten bruger Androids Auto-udfyld framework til at hjælpe med at udfylde logins, kreditkort og identitetsoplysninger i andre apps på din enhed.</value>
|
||||||
@@ -1277,10 +1277,40 @@
|
|||||||
<value>Begynder med</value>
|
<value>Begynder med</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI matchgenkendelse</value>
|
<value>URI matchmetode</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Matchgenkendelse</value>
|
<value>Matchmetode</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ja, og gem</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-udfyld og gem</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisation</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold din Yubikey nær toppen af enheden.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Prøv igen</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>For at fortsætte skal du holde din YubiKey NEO mod bagsiden af enheden.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Hjælpefunktionen kan være nyttigt at bruge, når apps ikke understøtter den almindelige auto-udfyldningstjeneste.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Adgangskode opdateret</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Opdateret</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO Sicherheitsschlüssel</value>
|
<value>YubiKey NEO Sicherheitsschlüssel</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Anhang hinzufügen</value>
|
<value>Anhang hinzufügen</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Match-Erkennung</value>
|
<value>Match-Erkennung</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ja, und speichern</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automatisch ausfüllen und speichern</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisation</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Halte deinen Yubikey an den oberen Bereich deines Geräts.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Erneut versuchen</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Um fortzufahren, halte deinen YubiKey NEO gegen die Rückseite des Gerätes.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Der Barrierefreiheits-Dienst kann möglicherweise hilfreich sein, wenn apps nicht den standard AutoFill-Dienst unterstützen.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Passwort aktualisiert</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Aktualisiert</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Llave de Seguridad YubiKey</value>
|
<value>Llave de Seguridad YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Añadir nuevo adjunto</value>
|
<value>Añadir nuevo adjunto</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Tipo de detección</value>
|
<value>Tipo de detección</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Sí y guardar</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Autorellenar y guardar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organización</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Mantén tu Yubikey cerca de la parte superior del dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Vuelve a intentarlo</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Para continuar, mantén tu YubiKey NEO contra la parte trasera de tu dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>El servicio de accesibilidad puede ser útil para utilizarlo con aplicaciones que no soportan el sistema de autorellenado estándar.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Contraseña actualizada</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Actualizada</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey Security Key</value>
|
<value>YubiKey Security Key</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Lisa uus manus</value>
|
<value>Lisa uus manus</value>
|
||||||
@@ -1066,7 +1066,7 @@
|
|||||||
<value>August</value>
|
<value>August</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Brand" xml:space="preserve">
|
<data name="Brand" xml:space="preserve">
|
||||||
<value>Bränd</value>
|
<value>Väljastaja</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CardholderName" xml:space="preserve">
|
<data name="CardholderName" xml:space="preserve">
|
||||||
<value>Kaardiomaniku nimi</value>
|
<value>Kaardiomaniku nimi</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Sobivuse tuvastamine</value>
|
<value>Sobivuse tuvastamine</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Jah, ja salvesta</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Täida ja salvesta</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisatsioon</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hoia oma Yubikey seadme ülaosa ligidal.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Proovi uuesti</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Jätkamiseks hoia YubiKey NEO-d oma seadme tagumise poole vastu.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Juurdepääsetavuse teenus võib abiks olla olukordades, kus rakendused ei toeta standardset automaattäite teenust.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Parool on uuendatud</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Uuendatud</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
<comment>Navigate back to the previous screen.</comment>
|
<comment>Navigate back to the previous screen.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Bitwarden" xml:space="preserve">
|
<data name="Bitwarden" xml:space="preserve">
|
||||||
<value>بیت واردن</value>
|
<value>Bitwarden</value>
|
||||||
<comment>App name. Shouldn't ever change.</comment>
|
<comment>App name. Shouldn't ever change.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
||||||
<value>مطمئنید میخواهید حذف کنید؟ این عمل قابل بازگشت نیست.</value>
|
<value>مطمئنید میخواهید حذف کنید؟ این عمل قابل بازگشت نیست.</value>
|
||||||
<comment>Confirmation alert message when deleteing something.</comment>
|
<comment>Confirmation alert message when deleteing something.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Edit" xml:space="preserve">
|
<data name="Edit" xml:space="preserve">
|
||||||
@@ -196,7 +196,7 @@
|
|||||||
<value>برای کمک گرفتن و گذاشتن بازخورد بصورت مستقیم به ما ایمیل ارسال کنید.</value>
|
<value>برای کمک گرفتن و گذاشتن بازخورد بصورت مستقیم به ما ایمیل ارسال کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterPIN" xml:space="preserve">
|
<data name="EnterPIN" xml:space="preserve">
|
||||||
<value>کد پین را وارد کنید.</value>
|
<value>پین کد را وارد کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorites" xml:space="preserve">
|
<data name="Favorites" xml:space="preserve">
|
||||||
<value>علاقه مندی ها</value>
|
<value>علاقه مندی ها</value>
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
<comment>The button text that allows user to launch the website to their web browser.</comment>
|
<comment>The button text that allows user to launch the website to their web browser.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="HelpAndFeedback" xml:space="preserve">
|
<data name="HelpAndFeedback" xml:space="preserve">
|
||||||
<value>کمک و بازخورد</value>
|
<value>کمک و باز خورد</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Hide" xml:space="preserve">
|
<data name="Hide" xml:space="preserve">
|
||||||
<value>پنهان کردن</value>
|
<value>پنهان کردن</value>
|
||||||
@@ -273,7 +273,7 @@
|
|||||||
<comment>The log out button text (verb).</comment>
|
<comment>The log out button text (verb).</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LogoutConfirmation" xml:space="preserve">
|
<data name="LogoutConfirmation" xml:space="preserve">
|
||||||
<value>آیا مطمئنید که میخواهید خارج شوید؟</value>
|
<value>آیا مطمئنید که میخواهید خارج شوید؟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPassword" xml:space="preserve">
|
<data name="MasterPassword" xml:space="preserve">
|
||||||
<value>گذرواژه ی اصلی</value>
|
<value>گذرواژه ی اصلی</value>
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
<value>از وب سایت ما دیدن کنید</value>
|
<value>از وب سایت ما دیدن کنید</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>برای کمک گرفتن، اخبار، ایمیل ما، و یا آموزش بیشتر برای استفاده از بیت واردن از وب سایت ما دیدن کنید.</value>
|
<value>برای کمک گرفتن، اخبار، ایمیل ما، و یا آموزش بیشتر برای استفاده از Bitwarden از وب سایت ما دیدن کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>وب سایت</value>
|
<value>وب سایت</value>
|
||||||
@@ -403,28 +403,28 @@
|
|||||||
<value>افزونه اپلیکیشن</value>
|
<value>افزونه اپلیکیشن</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>از قابلیت دسترسی بیت واردن برای پر کردن خودکار ورود به سیستم خود در سراسر برنامه ها و وب استفاده کنید.</value>
|
<value>از قابلیت دسترسی Bitwarden برای پر کردن خودکار ورود به سیستم خود در سراسر برنامه ها و وب استفاده کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>سرویس پر کردن خودکار</value>
|
<value>سرویس پر کردن خودکار</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||||
<value>از کاراکترهای متقارن استفاده نکن</value>
|
<value>از تکرار کاراکترهای یک شکل اجتناب کن</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||||
<value>افزونه اپلیکیشن بیت واردن</value>
|
<value>افزونه اپلیکیشن Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>ساده ترین روش برای افزودن اطلاعات ورود به گاوصندوق از طریق افزونه اپلیکیشن بیت واردن است. برای اطلاع بیشتر از چگونگی استفاده از افزونه اپلیکیشن مرورکردن صفحه "ابزار" است.</value>
|
<value>ساده ترین روش برای افزودن اطلاعات ورود به گاوصندوق از طریق افزونه اپلیکیشن Bitwarden است. برای اطلاع بیشتر از چگونگی استفاده از افزونه اپلیکیشن مرورکردن صفحه "ابزار" است.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
||||||
<value>با بیت واردن در سافاری و دیگر برنامه ها میتوانید از قابلیت پر کردن خودکار در ورودهایتان استفاده کنید.</value>
|
<value>با Bitwarden در سافاری و دیگر برنامه ها میتوانید از قابلیت پر کردن خودکار در ورودهایتان استفاده کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>سرویس پرکردن خودکار بیت واردن</value>
|
<value>سرویس پرکردن خودکار Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
||||||
<value>از قابلیت دسترسی بیت واردن برای تکمیل خودکار ورود به سیستم خود در سراسر برنامه ها و وب استفاده کنید.</value>
|
<value>از قابلیت دسترسی Bitwarden برای تکمیل خودکار ورود به سیستم خود در سراسر برنامه ها و وب استفاده کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>تغییر ایمیل</value>
|
<value>تغییر ایمیل</value>
|
||||||
@@ -436,7 +436,7 @@
|
|||||||
<value>تغییر گذرواژه اصلی</value>
|
<value>تغییر گذرواژه اصلی</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangePasswordConfirmation" xml:space="preserve">
|
<data name="ChangePasswordConfirmation" xml:space="preserve">
|
||||||
<value>شما می توانید گذرواژه اصلی خود را در bitwarden.com تغییر دهید. آیا می خواهید از سایت بازدید کنید؟</value>
|
<value>شما می توانید گذرواژه اصلی خود را در bitwarden.com تغییر دهید. آیا میخواهید از سایت بازدید کنید؟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Close" xml:space="preserve">
|
<data name="Close" xml:space="preserve">
|
||||||
<value>بستن</value>
|
<value>بستن</value>
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
<value>افزونه اپلیکیشن را فعال کنید</value>
|
<value>افزونه اپلیکیشن را فعال کنید</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInSafari" xml:space="preserve">
|
<data name="ExtensionInSafari" xml:space="preserve">
|
||||||
<value>در سافاری، بیت واردن را با استفاده از آیکون اشتراک گذاری پیدا کنید (راهنمایی: به سمت راست در ردیف پایین فهرست بروید).</value>
|
<value>در سافاری، Bitwarden را با استفاده از آیکون اشتراک گذاری پیدا کنید (راهنمایی: به سمت راست در ردیف پایین فهرست بروید).</value>
|
||||||
<comment>Safari is the name of apple's web browser</comment>
|
<comment>Safari is the name of apple's web browser</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInstantAccess" xml:space="preserve">
|
<data name="ExtensionInstantAccess" xml:space="preserve">
|
||||||
@@ -498,13 +498,13 @@
|
|||||||
<value>اطلاعات ورود شما حالا از سافاری، کروم، و دیگر برنامه های پشتیبانی شده به راحتی قابل دسترسی است.</value>
|
<value>اطلاعات ورود شما حالا از سافاری، کروم، و دیگر برنامه های پشتیبانی شده به راحتی قابل دسترسی است.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionSetup2" xml:space="preserve">
|
<data name="ExtensionSetup2" xml:space="preserve">
|
||||||
<value>در سافاری و کروم، بیت واردن را با استفاده از آیکون اشتراک گذاری پیدا کنید (راهنمایی: به سمت راست در ردیف پایین فهرست بروید).</value>
|
<value>در سافاری و کروم، Bitwarden را با استفاده از آیکون اشتراک گذاری پیدا کنید (راهنمایی: به سمت راست در ردیف پایین فهرست بروید).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTapIcon" xml:space="preserve">
|
<data name="ExtensionTapIcon" xml:space="preserve">
|
||||||
<value>برای راه اندازی افزونه به آیکون بیت واردن در منو ضربه بزنید.</value>
|
<value>برای راه اندازی افزونه به آیکون Bitwarden در منو ضربه بزنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||||
<value>برای فعال سازی بیت واردن در سافاری و سایر برنامه ها، نماد "بیشتر" را در پایین ردیف منو ضربه بزنید.</value>
|
<value>برای فعال سازی Bitwarden در سافاری و سایر برنامه ها، نماد "بیشتر" را در پایین ردیف منو ضربه بزنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorite" xml:space="preserve">
|
<data name="Favorite" xml:space="preserve">
|
||||||
<value>مورد علاقه</value>
|
<value>مورد علاقه</value>
|
||||||
@@ -591,7 +591,7 @@
|
|||||||
<value>تنظیمات بیشتر</value>
|
<value>تنظیمات بیشتر</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MustLogInMainApp" xml:space="preserve">
|
<data name="MustLogInMainApp" xml:space="preserve">
|
||||||
<value>شما بایستی به برنامه اصلی بیت واردن وارد شوید تا بتوانید از افزونه استفاده کنید.</value>
|
<value>شما بایستی به برنامه اصلی Bitwarden وارد شوید تا بتوانید از افزونه استفاده کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>هرگز</value>
|
<value>هرگز</value>
|
||||||
@@ -616,7 +616,7 @@
|
|||||||
<comment>Confirmation, like "Ok, I understand it"</comment>
|
<comment>Confirmation, like "Ok, I understand it"</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptionDefaults" xml:space="preserve">
|
<data name="OptionDefaults" xml:space="preserve">
|
||||||
<value>گزینه های پیش فرض از ابزار تولید رمز عبور بیت واردن تنظیم شد.</value>
|
<value>گزینه های پیش فرض از ابزار تولید رمز عبور Bitwarden تنظیم شد.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Options" xml:space="preserve">
|
<data name="Options" xml:space="preserve">
|
||||||
<value>گزینه ها</value>
|
<value>گزینه ها</value>
|
||||||
@@ -640,7 +640,7 @@
|
|||||||
<value>آیا از بازنویسی بر روی رمز عبور فعلی مطمئن هستید؟</value>
|
<value>آیا از بازنویسی بر روی رمز عبور فعلی مطمئن هستید؟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PushNotificationAlert" xml:space="preserve">
|
<data name="PushNotificationAlert" xml:space="preserve">
|
||||||
<value>بیت واردن گاوصندوق شما را بصورت خودکار از طریق نشان دادن اطلاعیه ها به هنگام سازی میکند. برای بهترین تجربه کاربری ممکن، لطفاً زمانی که از شما پرسیده شد "مجاز" را سریعاً انتخاب کنید تا نمایش اعلانیه ها فعال شود.</value>
|
<value>Bitwarden گاوصندوق شما را بصورت خودکار از طریق نشان دادن اطلاعیه ها به هنگام سازی میکند. برای بهترین تجربه کاربری ممکن، لطفاً زمانی که از شما پرسیده شد "مجاز" را سریعاً انتخاب کنید تا نمایش اعلانیه ها فعال شود.</value>
|
||||||
<comment>Push notifications for apple products</comment>
|
<comment>Push notifications for apple products</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheApp" xml:space="preserve">
|
<data name="RateTheApp" xml:space="preserve">
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
<value>لطفاً با یک بررسی خوب به ما کمک کنید!</value>
|
<value>لطفاً با یک بررسی خوب به ما کمک کنید!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>رتبه بندی فروشگاه App Store با هر نسخه جدید از بیت واردن تنظیم می شود. لطفاً با بررسی خوب به ما کمک کنید!</value>
|
<value>رتبه بندی فروشگاه App Store با هر نسخه جدید از Bitwarden تنظیم می شود. لطفاً با بررسی خوب به ما کمک کنید!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>تولید رمز عبور</value>
|
<value>تولید رمز عبور</value>
|
||||||
@@ -674,7 +674,7 @@
|
|||||||
<value>تعیین پین</value>
|
<value>تعیین پین</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SetPINDirection" xml:space="preserve">
|
<data name="SetPINDirection" xml:space="preserve">
|
||||||
<value>یک کد پین 4 رقمی برای باز کردن برنامه وارد کنید.</value>
|
<value>یک پین کد 4 رقمی برای باز کردن برنامه وارد کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ItemInformation" xml:space="preserve">
|
<data name="ItemInformation" xml:space="preserve">
|
||||||
<value>اطلاعات مورد</value>
|
<value>اطلاعات مورد</value>
|
||||||
@@ -707,13 +707,13 @@
|
|||||||
<value>ورود دو مرحله ای</value>
|
<value>ورود دو مرحله ای</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>ورودی دو مرحله ای باعث می شود که حساب کاربری شما با استفاده از یک دستگاه دیگر مانند کلید امنیتی، برنامه تأیید هویت، پیامک، تماس تلفنی و یا ایمیل، اعتبار خود را با ایمنی بیشتر اثبات کند. ورودی دو مرحله ای می تواند در bitwarden.com فعال شود. آیا می خواهید از سایت بازدید کنید؟</value>
|
<value>ورود دو مرحله ای باعث می شود که حساب کاربری شما با استفاده از یک دستگاه دیگر مانند کلید امنیتی، برنامه تأیید هویت، پیامک، تماس تلفنی و یا ایمیل، اعتبار خود را با ایمنی بیشتر اثبات کند. ورود دو مرحله ای می تواند در bitwarden.com فعال شود. آیا میخواهید از سایت بازدید کنید؟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>باز کردن با {0}</value>
|
<value>باز کردن با {0}</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWithPIN" xml:space="preserve">
|
<data name="UnlockWithPIN" xml:space="preserve">
|
||||||
<value>باز کردن با کد پین</value>
|
<value>باز کردن با پین کد</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Validating" xml:space="preserve">
|
<data name="Validating" xml:space="preserve">
|
||||||
<value>اعتبار سنجی</value>
|
<value>اعتبار سنجی</value>
|
||||||
@@ -726,10 +726,10 @@
|
|||||||
<value>مشاهده مورد</value>
|
<value>مشاهده مورد</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>گاوصندوق وب بیت واردن</value>
|
<value>گاوصندوق وب Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>مورد های خود را از هر مرورگر وب با گاوصندوق وب بیت واردن مدیریت کنید.</value>
|
<value>مورد های خود را از هر مرورگر وب با گاوصندوق وب Bitwarden مدیریت کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lost2FAApp" xml:space="preserve">
|
<data name="Lost2FAApp" xml:space="preserve">
|
||||||
<value>برنامه تأیید کننده از دست رفته؟</value>
|
<value>برنامه تأیید کننده از دست رفته؟</value>
|
||||||
@@ -756,7 +756,7 @@
|
|||||||
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
||||||
<value>زمانی که شما یک اطلاع رسانی پر کردن خودکار بیت واردن را میبینید، میتوانید برای اجرای پر کردن خودکار ضربه بزنید.</value>
|
<value>زمانی که شما یک اطلاع رسانی پر کردن خودکار Bitwarden را میبینید، میتوانید برای اجرای پر کردن خودکار ضربه بزنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
||||||
<value>برای پر کردن خودکار یک اطلاع رسانی در گاوصندوقتان این اطلاع رسانی را ضربه بزنید.</value>
|
<value>برای پر کردن خودکار یک اطلاع رسانی در گاوصندوقتان این اطلاع رسانی را ضربه بزنید.</value>
|
||||||
@@ -765,7 +765,7 @@
|
|||||||
<value>باز کردن تنظیمات دستیابی</value>
|
<value>باز کردن تنظیمات دستیابی</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. در صفحه تنظیمات دستیابی اندروید، "بیت واردن" را در قسمت سرویس ها لمس کنید.</value>
|
<value>1. در صفحه تنظیمات دستیابی اندروید، "Bitwarden" را در قسمت سرویس ها لمس کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
||||||
<value>۲. روشن کردن را انتخاب کنید و تأیید را بفشارید.</value>
|
<value>۲. روشن کردن را انتخاب کنید و تأیید را بفشارید.</value>
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
<value>آزمایشی</value>
|
<value>آزمایشی</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
||||||
<value>ساده ترین روش برای افزودن اطلاعات ورود به گاوصندوقتان از سرویس پر کردن خودکار بیت واردن است. برای اطلاعات بیشتر درباره استفاده از سرویس پر کردن خودکار بیت واردن است مرور کردن صفحه "ابزار" است.</value>
|
<value>ساده ترین روش برای افزودن اطلاعات ورود به گاوصندوقتان از سرویس پر کردن خودکار Bitwarden است. برای اطلاعات بیشتر درباره استفاده از سرویس پر کردن خودکار Bitwarden است مرور کردن صفحه "ابزار" است.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Autofill" xml:space="preserve">
|
<data name="Autofill" xml:space="preserve">
|
||||||
<value>پر کردن خودکار</value>
|
<value>پر کردن خودکار</value>
|
||||||
@@ -813,19 +813,19 @@
|
|||||||
<value>ایجاد یک تشکیلات برای اشتراک گذاری ایمن موارد خود با سایر کاربران.</value>
|
<value>ایجاد یک تشکیلات برای اشتراک گذاری ایمن موارد خود با سایر کاربران.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableGADescription" xml:space="preserve">
|
<data name="DisableGADescription" xml:space="preserve">
|
||||||
<value>ما از آنالیز استفاده می کنیم که بهتر بفهمیم چگونه برنامه استفاده می شود تا بتوانیم آن را بهتر کنیم. تمام داده های جمع آوری شده کاملاً ناشناس است.</value>
|
<value>ما از آنالیزها جهت درک بهتر چگونگی استفاده از برنامه بهره میبریم تا بتوانیم آن را بهبود ببخشیم. تمام داده های جمع آوری شده کاملاً ناشناس است.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPasswordField" xml:space="preserve">
|
<data name="AutofillPasswordField" xml:space="preserve">
|
||||||
<value>اسکن زمانی که در فیلد پسورد متمرکز شده</value>
|
<value>اسکن زمانی که در فیلد پسورد متمرکز شده</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPasswordFieldDescription" xml:space="preserve">
|
<data name="AutofillPasswordFieldDescription" xml:space="preserve">
|
||||||
<value>فقط صفحه را اسکن میکند برای فیلدها و پیشنهاد یک پر کردن خودکار هر چند که شما یک فیلد رمز عبور را انتخاب کرده باشید. این تنظیم به افزایش عمر باتری کمک میکند.</value>
|
<value>فقط صفحه را برای فیلدها و پیشنهاد دادن پر کردن خودکار اسکن میکند هر حتی اگر شما یک فیلد رمز عبور را انتخاب کرده باشید. این تنظیم به افزایش عمر باتری کمک میکند.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPersistNotification" xml:space="preserve">
|
<data name="AutofillPersistNotification" xml:space="preserve">
|
||||||
<value>اطلاعیه ثابت</value>
|
<value>اطلاعیه ثابت</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPersistNotificationDescription" xml:space="preserve">
|
<data name="AutofillPersistNotificationDescription" xml:space="preserve">
|
||||||
<value>همیشه یک پر کردن خودکار را اطلاع میدهد و فقط برای فیلدها بعد از تلاش برای پر کردن خودکار اسکن میکند. این تنظیم ممکن است در صرفه جویی باتری موثر باشد.</value>
|
<value>همیشه یک پر کردن خودکار را اطلاع میدهد و فقط بعد از تلاش برای پر کردن خودکار فیلدها اقدام به اسکن میکند. این تنظیم ممکن است در صرفه جویی باتری موثر باشد.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAlways" xml:space="preserve">
|
<data name="AutofillAlways" xml:space="preserve">
|
||||||
<value>همیشه اسکن کن</value>
|
<value>همیشه اسکن کن</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>کلید امنیتی YubiKey</value>
|
<value>کلید امنیتی YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>افزودن پیوست جدید</value>
|
<value>افزودن پیوست جدید</value>
|
||||||
@@ -944,7 +944,7 @@
|
|||||||
<value>کپی TOTP</value>
|
<value>کپی TOTP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableAutoTotpCopyDescription" xml:space="preserve">
|
<data name="DisableAutoTotpCopyDescription" xml:space="preserve">
|
||||||
<value>اگر ورود شما دارای یک کلید تأیید کننده است که به آن متصل شده است، هر زمان که بصورت خودکار وارد سایت شوید کد تأیید TOTP به صورت خودکار به کلیپ بورد شما کپی می شود.</value>
|
<value>اگر ورود شما دارای یک کلید تأیید کننده میباشد که به آن متصل شده است، هر زمان که بصورت خودکار وارد سایت شوید کد تأیید TOTP به صورت خودکار به کلیپ بورد شما کپی می شود.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableAutoTotpCopy" xml:space="preserve">
|
<data name="DisableAutoTotpCopy" xml:space="preserve">
|
||||||
<value>غیرفعال کردن کپی خودکار TOTP</value>
|
<value>غیرفعال کردن کپی خودکار TOTP</value>
|
||||||
@@ -1009,7 +1009,7 @@
|
|||||||
<value>محیط خود میزبان</value>
|
<value>محیط خود میزبان</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
||||||
<value>آدرس اینترنتی پایه فرضی نصب بیت واردن میزبانی شده را مشخص کنید.</value>
|
<value>آدرس اینترنتی پایه فرضی نصب Bitwarden میزبانی شده را مشخص کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ServerUrl" xml:space="preserve">
|
<data name="ServerUrl" xml:space="preserve">
|
||||||
<value>آدرس اینترنتی سرور</value>
|
<value>آدرس اینترنتی سرور</value>
|
||||||
@@ -1174,7 +1174,7 @@
|
|||||||
<value>آدرس سرور آیکون ها</value>
|
<value>آدرس سرور آیکون ها</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>پر کردن خودکار با بیت واردن</value>
|
<value>پر کردن خودکار با Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>گاوصندوق قفل شد</value>
|
<value>گاوصندوق قفل شد</value>
|
||||||
@@ -1195,10 +1195,10 @@
|
|||||||
<value>سرویس دستیابی به پر کردن خودکار</value>
|
<value>سرویس دستیابی به پر کردن خودکار</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillServiceDescription" xml:space="preserve">
|
<data name="AutofillServiceDescription" xml:space="preserve">
|
||||||
<value>سرویس خودکار بیت واردن با استفاده از چهار چوب پر کردن خودکار اندروید برای کمک به پر کردن ورودی ها، کارت های اعتباری و اطلاعات هویت به سایر برنامه ها در دستگاه شما کمک می کند.</value>
|
<value>سرویس خودکار Bitwarden با استفاده از چهار چوب پر کردن خودکار اندروید برای کمک به پر کردن ورودی ها، کارت های اعتباری و اطلاعات هویت به سایر برنامه ها در دستگاه شما کمک می کند.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
||||||
<value>از سرویس پر کردن خودکار بیت واردن برای پر کردن ورودها، کارتهای اعتباری، و اطلاعات هویتی درون اپلیکیشن ها استفاده کنید.</value>
|
<value>از سرویس پر کردن خودکار Bitwarden برای پر کردن ورودها، کارتهای اعتباری، و اطلاعات هویتی درون اپلیکیشن ها استفاده کنید.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
||||||
<value>باز کردن تنظیمات پر کردن خودکار</value>
|
<value>باز کردن تنظیمات پر کردن خودکار</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>تشخیص سابقه</value>
|
<value>تشخیص سابقه</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>بله، و ذخیره</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>پر کردن خودکار و ذخیره</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>سازماندهی</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Yubikey خود را در نزدیکی بالای دستگاه نگه دارید.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>دوباره امتحان کنید</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>برای ادامه، دوباره YubiKey NEO خود را پشت دستگاه نگه دارید.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>خدمات دسترسی ممکن است مفید باشد برای استفاده در زمانی که برنامه از سرویس پر کردن خودکار استاندارد پشتیبانی نمی کند.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>گذرواژه بروز رسانی شد</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>بروزرسانی شد</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -132,7 +132,7 @@
|
|||||||
<comment>The title for the add item page.</comment>
|
<comment>The title for the add item page.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnErrorHasOccurred" xml:space="preserve">
|
<data name="AnErrorHasOccurred" xml:space="preserve">
|
||||||
<value>Tapahtui virhe</value>
|
<value>Tapahtui virhe.</value>
|
||||||
<comment>Alert title when something goes wrong.</comment>
|
<comment>Alert title when something goes wrong.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Back" xml:space="preserve">
|
<data name="Back" xml:space="preserve">
|
||||||
@@ -140,7 +140,7 @@
|
|||||||
<comment>Navigate back to the previous screen.</comment>
|
<comment>Navigate back to the previous screen.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Bitwarden" xml:space="preserve">
|
<data name="Bitwarden" xml:space="preserve">
|
||||||
<value>bitwarden</value>
|
<value>Bitwarden</value>
|
||||||
<comment>App name. Shouldn't ever change.</comment>
|
<comment>App name. Shouldn't ever change.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
<comment>Delete an entity (verb).</comment>
|
<comment>Delete an entity (verb).</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Deleting" xml:space="preserve">
|
<data name="Deleting" xml:space="preserve">
|
||||||
<value>Poistetaan...</value>
|
<value>Poistetaan…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
||||||
@@ -193,7 +193,7 @@
|
|||||||
<value>Lähetä sähköpostia</value>
|
<value>Lähetä sähköpostia</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailUsDescription" xml:space="preserve">
|
<data name="EmailUsDescription" xml:space="preserve">
|
||||||
<value>Lähetä meille sähköpostia saadaksesi tukea tai jättääksesi palautetta.</value>
|
<value>Lähetä meille sähköpostia saadaksesi apua tai jättääksesi palautetta.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterPIN" xml:space="preserve">
|
<data name="EnterPIN" xml:space="preserve">
|
||||||
<value>Syötä PIN-koodisi.</value>
|
<value>Syötä PIN-koodisi.</value>
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
<value>Jätä ilmoitus GitHub-pakettivarastoomme.</value>
|
<value>Jätä ilmoitus GitHub-pakettivarastoomme.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FingerprintDirection" xml:space="preserve">
|
<data name="FingerprintDirection" xml:space="preserve">
|
||||||
<value>Käytä sormenjälkeäsi tunnistautuaksesi.</value>
|
<value>Tunnistaudu sormenjäljelläsi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Folder" xml:space="preserve">
|
<data name="Folder" xml:space="preserve">
|
||||||
<value>Kansio</value>
|
<value>Kansio</value>
|
||||||
@@ -261,11 +261,11 @@
|
|||||||
<comment>The button text that allows user to launch the website to their web browser.</comment>
|
<comment>The button text that allows user to launch the website to their web browser.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LogIn" xml:space="preserve">
|
<data name="LogIn" xml:space="preserve">
|
||||||
<value>Kirjaudu</value>
|
<value>Kirjaudu sisään</value>
|
||||||
<comment>The login button text (verb).</comment>
|
<comment>The login button text (verb).</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LogInNoun" xml:space="preserve">
|
<data name="LogInNoun" xml:space="preserve">
|
||||||
<value>Kirjaudu sisään</value>
|
<value>Käyttäjätunnus</value>
|
||||||
<comment>Title for login page. (noun)</comment>
|
<comment>Title for login page. (noun)</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LogOut" xml:space="preserve">
|
<data name="LogOut" xml:space="preserve">
|
||||||
@@ -303,7 +303,7 @@
|
|||||||
<comment>Acknowledgement.</comment>
|
<comment>Acknowledgement.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableGA" xml:space="preserve">
|
<data name="DisableGA" xml:space="preserve">
|
||||||
<value>Älä käytä Analyticsiä</value>
|
<value>Älä osallistu tiedonkeruuseen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Password" xml:space="preserve">
|
<data name="Password" xml:space="preserve">
|
||||||
<value>Salasana</value>
|
<value>Salasana</value>
|
||||||
@@ -314,7 +314,7 @@
|
|||||||
<comment>Button text for a save operation (verb).</comment>
|
<comment>Button text for a save operation (verb).</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Saving" xml:space="preserve">
|
<data name="Saving" xml:space="preserve">
|
||||||
<value>Tallennetaan...</value>
|
<value>Tallennetaan…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Settings" xml:space="preserve">
|
<data name="Settings" xml:space="preserve">
|
||||||
@@ -330,7 +330,7 @@
|
|||||||
<comment>Confirmation message after successfully deleting a login.</comment>
|
<comment>Confirmation message after successfully deleting a login.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Submit" xml:space="preserve">
|
<data name="Submit" xml:space="preserve">
|
||||||
<value>Lähetä</value>
|
<value>Jatka</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Sync" xml:space="preserve">
|
<data name="Sync" xml:space="preserve">
|
||||||
<value>Synkronointi</value>
|
<value>Synkronointi</value>
|
||||||
@@ -348,14 +348,14 @@
|
|||||||
<comment>Label for a uri/url.</comment>
|
<comment>Label for a uri/url.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseFingerprintToUnlock" xml:space="preserve">
|
<data name="UseFingerprintToUnlock" xml:space="preserve">
|
||||||
<value>Käytä sormenjälkeä avataksesi</value>
|
<value>Avaa holvi sormenjäljellä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Username" xml:space="preserve">
|
<data name="Username" xml:space="preserve">
|
||||||
<value>Käyttäjänimi</value>
|
<value>Käyttäjänimi</value>
|
||||||
<comment>Label for a username.</comment>
|
<comment>Label for a username.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ValidationFieldRequired" xml:space="preserve">
|
<data name="ValidationFieldRequired" xml:space="preserve">
|
||||||
<value>Kenttä "{0}" vaaditaan.</value>
|
<value>Kenttä ”{0}” vaaditaan.</value>
|
||||||
<comment>Validation message for when a form field is left blank and is required to be entered.</comment>
|
<comment>Validation message for when a form field is left blank and is required to be entered.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ValueHasBeenCopied" xml:space="preserve">
|
<data name="ValueHasBeenCopied" xml:space="preserve">
|
||||||
@@ -381,10 +381,10 @@
|
|||||||
<value>Käy sivustollamme</value>
|
<value>Käy sivustollamme</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>Käy sivustollamme, jossa voit saada apua bitwardenin käyttämisessä, lukea palvelun uutisia tai lähettää meille sähköpostia.</value>
|
<value>Käy sivustollamme, jossa voit saada apua Bitwardenin käyttämisessä, lukea palvelun uutisia tai lähettää meille sähköpostia.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>Verkko-osoite</value>
|
<value>SIvusto</value>
|
||||||
<comment>Label for a website.</comment>
|
<comment>Label for a website.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Yes" xml:space="preserve">
|
<data name="Yes" xml:space="preserve">
|
||||||
@@ -403,7 +403,7 @@
|
|||||||
<value>Sovelluslaajennus</value>
|
<value>Sovelluslaajennus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>Use the bitwarden accessibility service to auto-fill your logins across apps and the web.</value>
|
<value>Käytä Bitwardenin esteettömyyspalvelua kirjautumiskenttien automaattiseen täyttämiseen sovelluksissa ja verkossa.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>Automaattinen täyttö ‑palvelu</value>
|
<value>Automaattinen täyttö ‑palvelu</value>
|
||||||
@@ -421,7 +421,7 @@
|
|||||||
<value>Käytä bitwardenia Safarissa ja muissa sovelluksissa kirjautumistietojen automaattiseen täydennykseen.</value>
|
<value>Käytä bitwardenia Safarissa ja muissa sovelluksissa kirjautumistietojen automaattiseen täydennykseen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>bitwardenin automaattinen täydennys</value>
|
<value>Bitwardenin automaattinen täyttö ‑palvelu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
||||||
<value>Use the bitwarden accessibility service to auto-fill your logins.</value>
|
<value>Use the bitwarden accessibility service to auto-fill your logins.</value>
|
||||||
@@ -460,7 +460,7 @@
|
|||||||
<value>Luo tili</value>
|
<value>Luo tili</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CreatingAccount" xml:space="preserve">
|
<data name="CreatingAccount" xml:space="preserve">
|
||||||
<value>Luodaan tiliä...</value>
|
<value>Luodaan tiliä…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EditItem" xml:space="preserve">
|
<data name="EditItem" xml:space="preserve">
|
||||||
@@ -470,7 +470,7 @@
|
|||||||
<value>Käytä automaattista synkronointia</value>
|
<value>Käytä automaattista synkronointia</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterEmailForHint" xml:space="preserve">
|
<data name="EnterEmailForHint" xml:space="preserve">
|
||||||
<value>Syötä tilisi sähköpostiosoite saadaksesi pääsalasanan vihjeen.</value>
|
<value>Syötä tilisi sähköpostiosoite saadaksesi pääsalasanasi vihjeen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExntesionReenable" xml:space="preserve">
|
<data name="ExntesionReenable" xml:space="preserve">
|
||||||
<value>Käytä sovelluslaajennusta</value>
|
<value>Käytä sovelluslaajennusta</value>
|
||||||
@@ -555,7 +555,7 @@
|
|||||||
<value>Lukitseminen</value>
|
<value>Lukitseminen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoggingIn" xml:space="preserve">
|
<data name="LoggingIn" xml:space="preserve">
|
||||||
<value>Kirjaudutaan sisään...</value>
|
<value>Kirjaudutaan sisään…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoginOrCreateNewAccount" xml:space="preserve">
|
<data name="LoginOrCreateNewAccount" xml:space="preserve">
|
||||||
@@ -609,7 +609,7 @@
|
|||||||
<value>Holvissasi ei ole kohteita tälle sivustolle. Napauta lisätäksesi kohteen.</value>
|
<value>Holvissasi ei ole kohteita tälle sivustolle. Napauta lisätäksesi kohteen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoUsernamePasswordConfigured" xml:space="preserve">
|
<data name="NoUsernamePasswordConfigured" xml:space="preserve">
|
||||||
<value>Tälle kohteelle ei ole määritetty käyttäjänimeä tai salasanaa.</value>
|
<value>Tälle käyttäjätunnukselle ei ole määritetty käyttäjänimeä tai salasanaa.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OkGotIt" xml:space="preserve">
|
<data name="OkGotIt" xml:space="preserve">
|
||||||
<value>Ymmärrän!</value>
|
<value>Ymmärrän!</value>
|
||||||
@@ -619,7 +619,7 @@
|
|||||||
<value>Oletusvalinnat määritetään pääsovelluksen salasanageneraattorista.</value>
|
<value>Oletusvalinnat määritetään pääsovelluksen salasanageneraattorista.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Options" xml:space="preserve">
|
<data name="Options" xml:space="preserve">
|
||||||
<value>Valinnat</value>
|
<value>Asetukset</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Muut</value>
|
<value>Muut</value>
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
<value>Harkitsethan auttamistamme jättämällä positiivisen arvostelun!</value>
|
<value>Harkitsethan auttamistamme jättämällä positiivisen arvostelun!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>Arvostelut nollautuvat App Storessa bitwardenin joka päivityksen yhteydessä. Harkitsethan auttamistamme jättämällä positiivisen arvostelun!</value>
|
<value>App Storen arvostelut nollautuvat Bitwardenin jokaisen päivityksen yhteydessä. Autathan meitä jättämällä hyvän arvostelun!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>Luo uusi salasana</value>
|
<value>Luo uusi salasana</value>
|
||||||
@@ -674,7 +674,7 @@
|
|||||||
<value>Aseta PIN</value>
|
<value>Aseta PIN</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SetPINDirection" xml:space="preserve">
|
<data name="SetPINDirection" xml:space="preserve">
|
||||||
<value>Aseta 4-numeroinen PIN-koodi, jonka avulla voit avata sovelluksen.</value>
|
<value>Syötä 4-numeroinen PIN-koodi, jonka avulla voit avata sovelluksen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ItemInformation" xml:space="preserve">
|
<data name="ItemInformation" xml:space="preserve">
|
||||||
<value>Kohteen tiedot</value>
|
<value>Kohteen tiedot</value>
|
||||||
@@ -683,11 +683,11 @@
|
|||||||
<value>Kohde päivitetty.</value>
|
<value>Kohde päivitetty.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Submitting" xml:space="preserve">
|
<data name="Submitting" xml:space="preserve">
|
||||||
<value>Käsitellään...</value>
|
<value>Käsitellään…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Syncing" xml:space="preserve">
|
<data name="Syncing" xml:space="preserve">
|
||||||
<value>Synkronoidaan...</value>
|
<value>Synkronoidaan…</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="SyncingComplete" xml:space="preserve">
|
<data name="SyncingComplete" xml:space="preserve">
|
||||||
@@ -710,7 +710,7 @@
|
|||||||
<value>Kaksivaiheinen kirjautuminen tekee tilistäsi turvallisemman vaatimalla koodin tunnistautumispalvelusta joka kirjautumiskerralla. Voit ottaa kaksivaiheisen tunnistautumisen käyttöön bitwarden.com-verkkoholvissa. Haluatko käydä sivustolla nyt?</value>
|
<value>Kaksivaiheinen kirjautuminen tekee tilistäsi turvallisemman vaatimalla koodin tunnistautumispalvelusta joka kirjautumiskerralla. Voit ottaa kaksivaiheisen tunnistautumisen käyttöön bitwarden.com-verkkoholvissa. Haluatko käydä sivustolla nyt?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Avaa käyttäen: {0}</value>
|
<value>Avaa sormenjäljellä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWithPIN" xml:space="preserve">
|
<data name="UnlockWithPIN" xml:space="preserve">
|
||||||
<value>Avaa PIN-koodilla</value>
|
<value>Avaa PIN-koodilla</value>
|
||||||
@@ -720,19 +720,19 @@
|
|||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerificationCode" xml:space="preserve">
|
<data name="VerificationCode" xml:space="preserve">
|
||||||
<value>Tunnistautumiskoodi</value>
|
<value>Vahvistuskoodi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ViewItem" xml:space="preserve">
|
<data name="ViewItem" xml:space="preserve">
|
||||||
<value>Näytä kohde</value>
|
<value>Näytä kohde</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>bitwardenin verkkoholvi</value>
|
<value>Bitwardenin verkkoholvi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>Hallitse kirjautumistietojasi millä tahansa selaimella bitwarden-verkkoholvissa.</value>
|
<value>Hallitse kohteitasi millä tahansa selaimella Bitwardenin verkkoholvissa.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lost2FAApp" xml:space="preserve">
|
<data name="Lost2FAApp" xml:space="preserve">
|
||||||
<value>Etkö pääse tunnistautumispalveluun?</value>
|
<value>Etkö pysty käyttämään todennussovellustasi?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Items" xml:space="preserve">
|
<data name="Items" xml:space="preserve">
|
||||||
<value>Kohteet</value>
|
<value>Kohteet</value>
|
||||||
@@ -765,10 +765,10 @@
|
|||||||
<value>Avaa esteettömyysasetukset</value>
|
<value>Avaa esteettömyysasetukset</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. Esteettömyysasetuksissa valitse Palvelut-otsikon alta "bitwarden".</value>
|
<value>1. Valitse esteettömyysasetuksissa Palvelut-otsikon alta ”Bitwarden”.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
||||||
<value>2. Laita asetus päälle ja paina OK hyväksyäksesi.</value>
|
<value>2. Laita asetus päälle ja paina OK-painiketta hyväksyäksesi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Disabled" xml:space="preserve">
|
<data name="Disabled" xml:space="preserve">
|
||||||
<value>Pois käytöstä</value>
|
<value>Pois käytöstä</value>
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
<value>Beeta</value>
|
<value>Beeta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
||||||
<value>Helpoin tapa lisätä uusia kirjautumistietoja holviisi on käyttää bitwardenin automaattista täydennystä. Lue lisää täydennyspalvelusta "Työkalut"-kohdassa.</value>
|
<value>Helpoin tapa lisätä uusia käyttäjätunnuksia holviisi on käyttää Bitwardenin automaattinen täyttö ‑palvelua. Lue lisää palvelusta ”Työkalut”-kohdassa.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Autofill" xml:space="preserve">
|
<data name="Autofill" xml:space="preserve">
|
||||||
<value>Täytä automaattisesti</value>
|
<value>Täytä automaattisesti</value>
|
||||||
@@ -816,7 +816,7 @@
|
|||||||
<value>Hyödynnämme analytiikkaa saadaksemme tietoa siitä, kuinka sovellusta käytetään. Näin voimme kehittää sitä paremmaksi. Kaikki tiedonkeruu on täysin nimetöntä.</value>
|
<value>Hyödynnämme analytiikkaa saadaksemme tietoa siitä, kuinka sovellusta käytetään. Näin voimme kehittää sitä paremmaksi. Kaikki tiedonkeruu on täysin nimetöntä.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPasswordField" xml:space="preserve">
|
<data name="AutofillPasswordField" xml:space="preserve">
|
||||||
<value>Skannaa, kun salasanakenttä on aktiivinen</value>
|
<value>Lue, kun salasanakenttä on aktiivinen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillPasswordFieldDescription" xml:space="preserve">
|
<data name="AutofillPasswordFieldDescription" xml:space="preserve">
|
||||||
<value>Skannaa kentät ja näytä ilmoitus automaattisesta täydentämisestä vain silloin, kun valitset salasanakentän. Tämä asetus saattaa vähentää virrankulutusta.</value>
|
<value>Skannaa kentät ja näytä ilmoitus automaattisesta täydentämisestä vain silloin, kun valitset salasanakentän. Tämä asetus saattaa vähentää virrankulutusta.</value>
|
||||||
@@ -834,7 +834,7 @@
|
|||||||
<value>Skannaa ruutua kenttien varalta ja näytä ilmoitus automaattisesta täydentämisestä, kun salasanakenttä löytyy. Tämä on oletusasetus.</value>
|
<value>Skannaa ruutua kenttien varalta ja näytä ilmoitus automaattisesta täydentämisestä, kun salasanakenttä löytyy. Tämä on oletusasetus.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CannotOpenApp" xml:space="preserve">
|
<data name="CannotOpenApp" xml:space="preserve">
|
||||||
<value>Sovelluksen "{0}" avaaminen ei onnistu.</value>
|
<value>Sovelluksen ”{0}” avaaminen ei onnistunut.</value>
|
||||||
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
|
<comment>Message shown when trying to launch an app that does not exist on the user's device.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuthenticatorAppTitle" xml:space="preserve">
|
<data name="AuthenticatorAppTitle" xml:space="preserve">
|
||||||
@@ -886,8 +886,8 @@
|
|||||||
<value>Hold your YubiKey NEO against the back of the device to continue.</value>
|
<value>Hold your YubiKey NEO against the back of the device to continue.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO Security Key</value>
|
<value>YubiKey-todennuslaite</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Lisää uusi liite</value>
|
<value>Lisää uusi liite</value>
|
||||||
@@ -977,7 +977,7 @@
|
|||||||
<value>Toiminto ei ole käytettävissä</value>
|
<value>Toiminto ei ole käytettävissä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxFileSize" xml:space="preserve">
|
<data name="MaxFileSize" xml:space="preserve">
|
||||||
<value>Tiedoston enimmäiskoko on 100 MB.</value>
|
<value>Tiedoston enimmäiskoko on 100 MB.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UpdateKey" xml:space="preserve">
|
<data name="UpdateKey" xml:space="preserve">
|
||||||
<value>Et voi käyttää tätä toimintoa ennen kuin päivität salausavaimesi.</value>
|
<value>Et voi käyttää tätä toimintoa ennen kuin päivität salausavaimesi.</value>
|
||||||
@@ -998,7 +998,7 @@
|
|||||||
<value>Ohjelmistoympäristön URL:t tallennettu.</value>
|
<value>Ohjelmistoympäristön URL:t tallennettu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormattedIncorrectly" xml:space="preserve">
|
<data name="FormattedIncorrectly" xml:space="preserve">
|
||||||
<value>{0} is not correctly formatted.</value>
|
<value>{0} on väärässä muodossa.</value>
|
||||||
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="IdentityUrl" xml:space="preserve">
|
<data name="IdentityUrl" xml:space="preserve">
|
||||||
@@ -1009,7 +1009,7 @@
|
|||||||
<value>Itse ylläpidetty ohjelmistoympäristö</value>
|
<value>Itse ylläpidetty ohjelmistoympäristö</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
||||||
<value>Specify the base URL of your on-premise hosted bitwarden installation.</value>
|
<value>Syötä omalla palvelimella ylläpitämäsi Bitwarden-asennuksen kanta-URL.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ServerUrl" xml:space="preserve">
|
<data name="ServerUrl" xml:space="preserve">
|
||||||
<value>Palvelimen URL</value>
|
<value>Palvelimen URL</value>
|
||||||
@@ -1018,7 +1018,7 @@
|
|||||||
<value>Verkkoholvipalvelimen URL</value>
|
<value>Verkkoholvipalvelimen URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
||||||
<value>Tap this notification to view logins from your vault.</value>
|
<value>Napauta tätä ilmoitusta näyttääksesi holvisi kohteet.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFields" xml:space="preserve">
|
<data name="CustomFields" xml:space="preserve">
|
||||||
<value>Lisäkentät</value>
|
<value>Lisäkentät</value>
|
||||||
@@ -1174,7 +1174,7 @@
|
|||||||
<value>Kuvakepalvelimen URL</value>
|
<value>Kuvakepalvelimen URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>Auto-fill with bitwarden</value>
|
<value>Täytä automaattisesti Bitwardenilla</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>Holvi on lukittu</value>
|
<value>Holvi on lukittu</value>
|
||||||
@@ -1198,7 +1198,7 @@
|
|||||||
<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>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>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Käytä bitwardenin esteettömyyspalvelua kirjautumistietojesi automaattiseen täydennykseen.</value>
|
<value>Käytä Bitwardenin esteettömyyspalvelua täyttääksesi automaattisesti käyttäjätunnukset, kortti- ja henkilöllisyystiedot muihin sovelluksiin.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
||||||
<value>Avaa automaattisen täytön asetukset</value>
|
<value>Avaa automaattisen täytön asetukset</value>
|
||||||
@@ -1211,13 +1211,13 @@
|
|||||||
<value>Käytä Face ID:tä tunnistautuaksesi.</value>
|
<value>Käytä Face ID:tä tunnistautuaksesi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseFaceIDToUnlock" xml:space="preserve">
|
<data name="UseFaceIDToUnlock" xml:space="preserve">
|
||||||
<value>Käytä Face ID:tä avataksesi holvin</value>
|
<value>Avaa holvi Face ID:llä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyFaceID" xml:space="preserve">
|
<data name="VerifyFaceID" xml:space="preserve">
|
||||||
<value>Varmista Face ID</value>
|
<value>Tunnistaudu Face ID:llä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
||||||
<value>Käytä Windows Helloa avataksesi holvin</value>
|
<value>Avaa holvi Windows Hellolla</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyWindowsHello" xml:space="preserve">
|
<data name="VerifyWindowsHello" xml:space="preserve">
|
||||||
<value>Tunnistaudu Windows Hellolla</value>
|
<value>Tunnistaudu Windows Hellolla</value>
|
||||||
@@ -1229,58 +1229,88 @@
|
|||||||
<value>Androidin automaattisen täytön asetusten avaaminen epäonnistui. Voit mennä sinne manuaalisesti näin: Asetukset > Järjestelmä > Kielet ja syöttötapa > Lisäasetukset > Automaattinen täyttö ‑palvelu.</value>
|
<value>Androidin automaattisen täytön asetusten avaaminen epäonnistui. Voit mennä sinne manuaalisesti näin: Asetukset > Järjestelmä > Kielet ja syöttötapa > Lisäasetukset > Automaattinen täyttö ‑palvelu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Lisäkentän nimi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Valintaruutu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Piilotettu teksti</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Teksti</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Uusi lisäkenttä</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Minkä tyyppisen lisäkentän haluat lisätä?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Poista</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Uusi URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Pääverkkotunnus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Oletus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Täsmälleen…</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Osoite</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Säännöllinen lauseke</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Alkaa…</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>URIn tunnistustapa</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Tunnistustapa</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Clé de sécurité YubiKey NEO</value>
|
<value>Clé de sécurité YubiKey NEO</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Ajouter une nouvelle pièce jointe</value>
|
<value>Ajouter une nouvelle pièce jointe</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Détection de correspondance</value>
|
<value>Détection de correspondance</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Oui et enregistrer</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Autocomplétion et enregistrer</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisation</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Gardez votre Yubikey près du haut de l'appareil.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Réessayez</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Pour continuer, gardez votre Yubikey NEO à l'arrière de l'appareil.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Le service d'accessibilité peut être utile lorsque des applis ne supportent pas le service d'autocomplétion de base.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Mot de passe mis à jour</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Mis à jour</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO Security Key</value>
|
<value>YubiKey NEO Security Key</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Add New Attachment</value>
|
<value>Add New Attachment</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Match Detection</value>
|
<value>Match Detection</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO sigurnosni ključ</value>
|
<value>YubiKey NEO sigurnosni ključ</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Dodavanje novog privitka</value>
|
<value>Dodavanje novog privitka</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Otkrivanje podudaranja</value>
|
<value>Otkrivanje podudaranja</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Da, i spremi</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automatski popuni i spremi</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organizacija</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Držite Yubikey blizu vrha uređaja.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Pokušajte ponovno</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Da biste nastavili, držite YubiKey NEO na stražnjoj strani uređaja.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Usluga pristupačnosti može biti korisna kada aplikacije ne podržavaju standardnu uslugu automatskog popunjavanja.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO biztonsági kulcs</value>
|
<value>YubiKey NEO biztonsági kulcs</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Melléklet hozzáadása</value>
|
<value>Melléklet hozzáadása</value>
|
||||||
@@ -1229,58 +1229,88 @@
|
|||||||
<value>Nem sikerült automatikusan megnyitni az Android automatikus kitöltés beállításai menüt. A beállítás megnyitásához nyitsd meg a Beállítások > Rendszer > Nyelv és bevitel > Speciális > Automatikus kitöltés menüpontot.</value>
|
<value>Nem sikerült automatikusan megnyitni az Android automatikus kitöltés beállításai menüt. A beállítás megnyitásához nyitsd meg a Beállítások > Rendszer > Nyelv és bevitel > Speciális > Automatikus kitöltés menüpontot.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Egyéni mező neve</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Logikai</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Rejtett</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Szöveg</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Új egyedi mező</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Milyen típusú egyéni mező szeretné hozzáadni?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Eltávolít</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Új URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Alap domain</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Alapértelmezett</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Pontos</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Hoszt</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Reguláris kifejezés</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Ezzel kezdődik</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>URI találatfelismerés</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Találatfelismerés</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Igen, és mentés</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automatikus kitöltés és mentés</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Szervezet</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Tartsd lenyomva a Yubikey-t, a készülék tetején.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Próbáld újra</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>A folytatáshoz tartsd lenyomva a YubiKey NEO-t a készülék hátoldalán.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>A kisegítő szolgáltatás használata hasznos lehet, ha az alkalmazások nem támogatják a szabványos automatikus kitöltési szolgáltatást.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
<comment>Navigate back to the previous screen.</comment>
|
<comment>Navigate back to the previous screen.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Bitwarden" xml:space="preserve">
|
<data name="Bitwarden" xml:space="preserve">
|
||||||
<value>bitwarden</value>
|
<value>Bitwarden</value>
|
||||||
<comment>App name. Shouldn't ever change.</comment>
|
<comment>App name. Shouldn't ever change.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
<value>Kunjungi Situs Web Kami</value>
|
<value>Kunjungi Situs Web Kami</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>Kunjungi situs web kami untuk mendapatkan bantuan, berita, email kami, dan/atau mempelajari lebih lanjut tentang bagaimana menggunakan bitwarden.</value>
|
<value>Kunjungi situs web kami untuk mendapatkan bantuan, berita, email kami, dan/atau mempelajari lebih lanjut tentang bagaimana menggunakan Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>Situs web</value>
|
<value>Situs web</value>
|
||||||
@@ -403,7 +403,7 @@
|
|||||||
<value>Ekstensi Aplikasi</value>
|
<value>Ekstensi Aplikasi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>Gunakan layanan aksesibilitas bitwarden untuk mengisi otomatis info masuk Anda di seluruh aplikasi dan web.</value>
|
<value>Gunakan layanan aksesibilitas Bitwarden untuk mengisi otomatis info masuk Anda di seluruh aplikasi dan web.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>Layanan Pengisian Otomatis</value>
|
<value>Layanan Pengisian Otomatis</value>
|
||||||
@@ -412,19 +412,19 @@
|
|||||||
<value>Hindari Karakter Ambigu</value>
|
<value>Hindari Karakter Ambigu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||||
<value>ekstensi Aplikasi bitwarden</value>
|
<value>Ekstensi Aplikasi Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>Cara termudah untuk menambahkan log masuk baru ke brankas Anda adalah dari Ekstensi Aplikasi bitwarden. Pelajari lebih lanjut tentang menggunakan Ekstensi Aplikasi bitwarden dengan menavigasi ke layar "Alat".</value>
|
<value>Cara termudah untuk menambahkan info masuk baru ke brankas Anda adalah dari Ekstensi Aplikasi Bitwarden. Pelajari lebih lanjut tentang menggunakan Ekstensi Aplikasi Bitwarden dengan menavigasi ke layar "Alat".</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
||||||
<value>Gunakan bitwarden di Safari dan aplikasi lainnya untuk mengisi otomatis log masuk Anda.</value>
|
<value>Gunakan Bitwarden di Safari dan aplikasi lainnya untuk mengisi otomatis info masuk Anda.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>Layanan Pengisian Otomatis bitwarden</value>
|
<value>Layanan Pengisian Otomatis Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
||||||
<value>Gunakan layanan aksesibilitas bitwarden untuk mengisi otomatis info masuk Anda.</value>
|
<value>Gunakan layanan aksesibilitas Bitwarden untuk mengisi otomatis info masuk Anda.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>Ubah Email</value>
|
<value>Ubah Email</value>
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
<value>Aktifkan Ekstensi Aplikasi</value>
|
<value>Aktifkan Ekstensi Aplikasi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInSafari" xml:space="preserve">
|
<data name="ExtensionInSafari" xml:space="preserve">
|
||||||
<value>Pada Safari, temukan bitwarden menggunakan ikon berbagi (petunjuk: gulir ke kanan di baris bawah menu).</value>
|
<value>Pada Safari, temukan Bitwarden menggunakan ikon berbagi (petunjuk: gulir ke kanan di baris bawah menu).</value>
|
||||||
<comment>Safari is the name of apple's web browser</comment>
|
<comment>Safari is the name of apple's web browser</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInstantAccess" xml:space="preserve">
|
<data name="ExtensionInstantAccess" xml:space="preserve">
|
||||||
@@ -498,13 +498,13 @@
|
|||||||
<value>Info masuk Anda sekarang bisa diakses dengan mudah dari Safari, Chrome, dan aplikasi lain yang didukung.</value>
|
<value>Info masuk Anda sekarang bisa diakses dengan mudah dari Safari, Chrome, dan aplikasi lain yang didukung.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionSetup2" xml:space="preserve">
|
<data name="ExtensionSetup2" xml:space="preserve">
|
||||||
<value>Pada Safari dan Chrome, temukan bitwarden menggunakan ikon berbagi (petunjuk: gulir ke kanan di baris bawah menu).</value>
|
<value>Pada Safari dan Chrome, temukan Bitwarden menggunakan ikon berbagi (petunjuk: gulir ke kanan di baris bawah menu).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTapIcon" xml:space="preserve">
|
<data name="ExtensionTapIcon" xml:space="preserve">
|
||||||
<value>Ketuk ikon bitwarden pada menu untuk menjalankan ekstensi.</value>
|
<value>Ketuk ikon Bitwarden pada menu untuk menjalankan ekstensi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||||
<value>Untuk mengaktifkan bitwarden di Safari dan aplikasi lainnya, ketuk ikon "lebih banyak" di baris bawah menu.</value>
|
<value>Untuk mengaktifkan Bitwarden di Safari dan aplikasi lainnya, ketuk ikon "lebih banyak" di baris bawah menu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorite" xml:space="preserve">
|
<data name="Favorite" xml:space="preserve">
|
||||||
<value>Favorit</value>
|
<value>Favorit</value>
|
||||||
@@ -591,7 +591,7 @@
|
|||||||
<value>Setelan Lainnya</value>
|
<value>Setelan Lainnya</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MustLogInMainApp" xml:space="preserve">
|
<data name="MustLogInMainApp" xml:space="preserve">
|
||||||
<value>Anda harus masuk ke aplikasi utama bitwarden sebelum Anda dapat menggunakan ekstensi.</value>
|
<value>Anda harus masuk ke aplikasi utama Bitwarden sebelum Anda dapat menggunakan ekstensi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>Jangan pernah</value>
|
<value>Jangan pernah</value>
|
||||||
@@ -616,7 +616,7 @@
|
|||||||
<comment>Confirmation, like "Ok, I understand it"</comment>
|
<comment>Confirmation, like "Ok, I understand it"</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptionDefaults" xml:space="preserve">
|
<data name="OptionDefaults" xml:space="preserve">
|
||||||
<value>Pilihan baku diatur dari alat pembuat sandi utama aplikasi bitwarden.</value>
|
<value>Pilihan baku diatur dari alat pembuat sandi utama aplikasi Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Options" xml:space="preserve">
|
<data name="Options" xml:space="preserve">
|
||||||
<value>Pilihan</value>
|
<value>Pilihan</value>
|
||||||
@@ -640,7 +640,7 @@
|
|||||||
<value>Anda yakin ingin menimpa sandi saat ini?</value>
|
<value>Anda yakin ingin menimpa sandi saat ini?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PushNotificationAlert" xml:space="preserve">
|
<data name="PushNotificationAlert" xml:space="preserve">
|
||||||
<value>bitwarden membuat brankas Anda disinkronkan secara otomatis dengan menggunakan notifikasi. Untuk pengalaman yang sebaik mungkin, silakan pilih "Oke" pada saran berikut ketika diminta untuk mengaktifkan notifikasi.</value>
|
<value>Bitwarden membuat brankas Anda disinkronkan secara otomatis dengan menggunakan notifikasi. Untuk pengalaman yang sebaik mungkin, silakan pilih "Oke" pada saran berikut ketika diminta untuk mengaktifkan notifikasi.</value>
|
||||||
<comment>Push notifications for apple products</comment>
|
<comment>Push notifications for apple products</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheApp" xml:space="preserve">
|
<data name="RateTheApp" xml:space="preserve">
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
<value>Mohon pertimbangkan membantu kami dengan ulasan yang baik!</value>
|
<value>Mohon pertimbangkan membantu kami dengan ulasan yang baik!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>Peringkat App Store diatur ulang dengan setiap versi baru dari bitwarden. Mohon pertimbangkan membatu kami dengan ulasan yang baik!</value>
|
<value>Peringkat App Store diatur ulang dengan setiap versi baru dari Bitwarden. Mohon pertimbangkan membatu kami dengan ulasan yang baik!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>Buat Ulang Sandi</value>
|
<value>Buat Ulang Sandi</value>
|
||||||
@@ -726,7 +726,7 @@
|
|||||||
<value>Lihat Item</value>
|
<value>Lihat Item</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>Brankas Web bitwarden</value>
|
<value>Brankas Web Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>Kelola info masuk Anda dari berbagai peramban web dengan brankas web bitwarden.</value>
|
<value>Kelola info masuk Anda dari berbagai peramban web dengan brankas web bitwarden.</value>
|
||||||
@@ -886,8 +886,8 @@
|
|||||||
<value>Hold your YubiKey NEO against the back of the device to continue.</value>
|
<value>Hold your YubiKey NEO against the back of the device to continue.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Kunci Keamanan YubiKey NEO</value>
|
<value>Kunci Keamanan YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Tambah Lampiran Baru</value>
|
<value>Tambah Lampiran Baru</value>
|
||||||
@@ -992,10 +992,10 @@
|
|||||||
<value>Custom Environment</value>
|
<value>Custom Environment</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomEnvironmentFooter" xml:space="preserve">
|
<data name="CustomEnvironmentFooter" xml:space="preserve">
|
||||||
<value>For advanced users. You can specify the base URL of each service independently.</value>
|
<value>Untuk pengguna tingkat lanjutan. Anda dapat menentukan secara mandiri basis dari URL untuk setiap layanan.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnvironmentSaved" xml:space="preserve">
|
<data name="EnvironmentSaved" xml:space="preserve">
|
||||||
<value>The environment URLs have been saved.</value>
|
<value>Lingkungan dari URL sudah tersimpan.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FormattedIncorrectly" xml:space="preserve">
|
<data name="FormattedIncorrectly" xml:space="preserve">
|
||||||
<value>{0} tidak diformat dengan benar.</value>
|
<value>{0} tidak diformat dengan benar.</value>
|
||||||
@@ -1036,7 +1036,7 @@
|
|||||||
<value>Kode Keamanan</value>
|
<value>Kode Keamanan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeAdd" xml:space="preserve">
|
<data name="SelectTypeAdd" xml:space="preserve">
|
||||||
<value>What type of item do you want to add?</value>
|
<value>Jenis apa yang ingin Anda tambahkan?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TypeCard" xml:space="preserve">
|
<data name="TypeCard" xml:space="preserve">
|
||||||
<value>Kartu</value>
|
<value>Kartu</value>
|
||||||
@@ -1048,7 +1048,7 @@
|
|||||||
<value>Info Masuk</value>
|
<value>Info Masuk</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TypeSecureNote" xml:space="preserve">
|
<data name="TypeSecureNote" xml:space="preserve">
|
||||||
<value>Secure Note</value>
|
<value>Catatan Aman</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Address1" xml:space="preserve">
|
<data name="Address1" xml:space="preserve">
|
||||||
<value>Alamat 1</value>
|
<value>Alamat 1</value>
|
||||||
@@ -1153,7 +1153,7 @@
|
|||||||
<value>Negara Bagian / Provinsi</value>
|
<value>Negara Bagian / Provinsi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Title" xml:space="preserve">
|
<data name="Title" xml:space="preserve">
|
||||||
<value>Title</value>
|
<value>Panggilan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ZipPostalCode" xml:space="preserve">
|
<data name="ZipPostalCode" xml:space="preserve">
|
||||||
<value>Kode Pos</value>
|
<value>Kode Pos</value>
|
||||||
@@ -1162,7 +1162,7 @@
|
|||||||
<value>Alamat</value>
|
<value>Alamat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Expiration" xml:space="preserve">
|
<data name="Expiration" xml:space="preserve">
|
||||||
<value>Expiration</value>
|
<value>Masa Berlaku</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableWebsiteIcons" xml:space="preserve">
|
<data name="DisableWebsiteIcons" xml:space="preserve">
|
||||||
<value>Nonaktifkan Ikon Situs Web</value>
|
<value>Nonaktifkan Ikon Situs Web</value>
|
||||||
@@ -1174,7 +1174,7 @@
|
|||||||
<value>URL Server Ikon</value>
|
<value>URL Server Ikon</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>Isi otomatis dengan bitwarden</value>
|
<value>Isi otomatis dengan Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>Brankas terkunci</value>
|
<value>Brankas terkunci</value>
|
||||||
@@ -1208,79 +1208,109 @@
|
|||||||
<comment>What Apple calls their facial recognition reader.</comment>
|
<comment>What Apple calls their facial recognition reader.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="FaceIDDirection" xml:space="preserve">
|
<data name="FaceIDDirection" xml:space="preserve">
|
||||||
<value>Use Face ID to verify.</value>
|
<value>Gunakan Face ID untuk memverifikasi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseFaceIDToUnlock" xml:space="preserve">
|
<data name="UseFaceIDToUnlock" xml:space="preserve">
|
||||||
<value>Use Face ID To Unlock</value>
|
<value>Gunakan Face ID untuk membuka</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyFaceID" xml:space="preserve">
|
<data name="VerifyFaceID" xml:space="preserve">
|
||||||
<value>Verify Face ID</value>
|
<value>Verifikasi Face ID</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
||||||
<value>Unlock with Windows Hello</value>
|
<value>Buka dengan Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyWindowsHello" xml:space="preserve">
|
<data name="VerifyWindowsHello" xml:space="preserve">
|
||||||
<value>Verify with Windows Hello</value>
|
<value>Verifikasi dengan Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowsHello" xml:space="preserve">
|
<data name="WindowsHello" xml:space="preserve">
|
||||||
<value>Windows Hello</value>
|
<value>Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
<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 > System > Languages and input > Advanced > Autofill service.</value>
|
<value>Kami tidak dapat secara otomatis membuka menu pengaturan Android isi otomatis untuk Anda. Anda dapat membuka menu pengaturan isi otomatis secara manual dari Pengaturan Android > Sistem > Bahasa dan masukan > Lanjutan > Layanan isi otomatis.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Nama Kolom Pilihan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Boolean</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Tersembunyi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Teks</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Kolom Ubahsuai Baru</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Jenis kolom ubahsuai apa yang ingin Anda tambahkan?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Hapus</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>URl Baru</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Domain basis</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Bawaan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Tepat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Host</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Ekspresi umum</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Mulai dengan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Deteksi kecocokan URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Deteksi kecocokan</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Chiave di Sicurezza YubiKey</value>
|
<value>Chiave di Sicurezza YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Aggiungi Nuovo Allegato</value>
|
<value>Aggiungi Nuovo Allegato</value>
|
||||||
@@ -1075,7 +1075,7 @@
|
|||||||
<value>Città / Comune</value>
|
<value>Città / Comune</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Company" xml:space="preserve">
|
<data name="Company" xml:space="preserve">
|
||||||
<value>Compagnia</value>
|
<value>Azienda</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Country" xml:space="preserve">
|
<data name="Country" xml:space="preserve">
|
||||||
<value>Nazione</value>
|
<value>Nazione</value>
|
||||||
@@ -1111,7 +1111,7 @@
|
|||||||
<value>Cognome</value>
|
<value>Cognome</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LicenseNumber" xml:space="preserve">
|
<data name="LicenseNumber" xml:space="preserve">
|
||||||
<value>Numero di licenza</value>
|
<value>Numero patente</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="March" xml:space="preserve">
|
<data name="March" xml:space="preserve">
|
||||||
<value>Marzo</value>
|
<value>Marzo</value>
|
||||||
@@ -1229,58 +1229,88 @@
|
|||||||
<value>Non è stato possibile aprire il menu di impostazioni di auto-riempimento per te. Puoi navigare manualmente al menu delle impostazioni di auto-riempimento dalle Impostazioni Android > Accessibilità > Servizi > Bitwarden.</value>
|
<value>Non è stato possibile aprire il menu di impostazioni di auto-riempimento per te. Puoi navigare manualmente al menu delle impostazioni di auto-riempimento dalle Impostazioni Android > Accessibilità > Servizi > Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Nome campo personalizzato</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Booleano</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Nascosto</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Testo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Nuovo campo personalizzato</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Che tipo di campo personalizzato vuoi aggiungere?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Rimuovi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Nuovo URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Dominio di base</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Predefinito</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Esatto</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Host</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Espressione regolare</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Inizia con</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Rilevamento di corrispondenza URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Rilevamento di corrispondenza</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey セキュリティキー</value>
|
<value>YubiKey セキュリティキー</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>添付ファイルを追加</value>
|
<value>添付ファイルを追加</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>一致検出方法</value>
|
<value>一致検出方法</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>保存する</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>自動入力して保存</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>組織</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>YubiKey を端末の上部にしっかりタッチし続けてください。</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>もう一度実行</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>続行するには、YubiKey NEO を端末の背面にしっかりタッチし続けてください。</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>ユーザー補助サービスはアプリが標準の自動入力サービスに対応していない場合に適しています。</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>パスワード更新日</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>更新日</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
1316
src/App/Resources/AppResources.ko.resx
Normal file
1316
src/App/Resources/AppResources.ko.resx
Normal file
File diff suppressed because it is too large
Load Diff
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey-sikkerhetsnøkkel</value>
|
<value>YubiKey-sikkerhetsnøkkel</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Legg til et nytt vedlegg</value>
|
<value>Legg til et nytt vedlegg</value>
|
||||||
@@ -1126,10 +1126,10 @@
|
|||||||
<value>Herr</value>
|
<value>Herr</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Mrs" xml:space="preserve">
|
<data name="Mrs" xml:space="preserve">
|
||||||
<value>Frøken</value>
|
<value>Fru</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Ms" xml:space="preserve">
|
<data name="Ms" xml:space="preserve">
|
||||||
<value>Fru</value>
|
<value>Frøken</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="November" xml:space="preserve">
|
<data name="November" xml:space="preserve">
|
||||||
<value>November</value>
|
<value>November</value>
|
||||||
@@ -1229,58 +1229,88 @@
|
|||||||
<value>Vi klarte ikke å automatisk åpne Android sine auto-utfyllingsinnstilinger for deg. Du kan bla manuelt til auto-utfyllingsinnstillingsmenyen fra Android-innstillinger → System → Språk og inndata → Avansert → Auto-utfyllingstjeneste.</value>
|
<value>Vi klarte ikke å automatisk åpne Android sine auto-utfyllingsinnstilinger for deg. Du kan bla manuelt til auto-utfyllingsinnstillingsmenyen fra Android-innstillinger → System → Språk og inndata → Avansert → Auto-utfyllingstjeneste.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Navn på spesifikt felt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Boolsk verdi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Skjult</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Tekst</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Nytt spesifikt felt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Hvilken type spesifikt felt vil du legge til?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Fjern</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Ny URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Grunndomene</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Nøyaktig</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Vert</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Regulært uttrykk</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Starter med</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>URI-matchgjenkjenning</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Match-gjenkjenning</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ja, og lagre</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Autofyll og lagre</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisasjon</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold din Yubikey nær toppen av enheten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Prøv igjen</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>For å fortsette, hold din YubiKey NEO mot baksiden av enheten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Tilgjengelighetstjenesten kan være nyttig å bruke når apper ikke støtter den vanlige autoutfyllingstjenesten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Passordet ble oppdatert den</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Oppdatert den</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -403,7 +403,7 @@
|
|||||||
<value>App-extensie</value>
|
<value>App-extensie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>Gebruik de bitwarden-toegankelijkheidsdienst om uw inloggegevens automatisch in te laten vullen in de apps en op het internet.</value>
|
<value>Gebruik de Bitwarden-toegankelijkheidsdienst om uw inloggegevens automatisch in te laten vullen in de apps en op het internet.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>Auto-invullen-dienst</value>
|
<value>Auto-invullen-dienst</value>
|
||||||
@@ -415,16 +415,16 @@
|
|||||||
<value>Bitwarden app-extensie</value>
|
<value>Bitwarden app-extensie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>De eenvoudigste manier om nieuwe logins toe te voegen aan uw kluis is door de bitwarden app-extensie te gebruiken. Lees meer over het gebruik van de app-extensie op het "Hulpmiddelen"-scherm.</value>
|
<value>De eenvoudigste manier om nieuwe logins toe te voegen aan uw kluis is door de Bitwarden app-extensie te gebruiken. Lees meer over het gebruik van de app-extensie op het "Hulpmiddelen"-scherm.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
||||||
<value>Gebruik bitwarden in Safari en andere apps om uw inloggegevens automatisch in te vullen.</value>
|
<value>Gebruik Bitwarden in Safari en andere apps om uw inloggegevens automatisch in te vullen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>bitwarden auto-invullen-dienst</value>
|
<value>Bitwarden auto-invullen-dienst</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
||||||
<value>Gebruik de bitwarden-toegankelijkheidsdienst om uw inloggegevens automatisch in te laten vullen.</value>
|
<value>Gebruik de Bitwarden-toegankelijkheidsdienst om uw inloggegevens automatisch in te laten vullen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>E-mailadres wijzigen</value>
|
<value>E-mailadres wijzigen</value>
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EditItem" xml:space="preserve">
|
<data name="EditItem" xml:space="preserve">
|
||||||
<value>Item Bewerken</value>
|
<value>Item bewerken</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnableAutomaticSyncing" xml:space="preserve">
|
<data name="EnableAutomaticSyncing" xml:space="preserve">
|
||||||
<value>Automatische synchronisatie inschakelen</value>
|
<value>Automatische synchronisatie inschakelen</value>
|
||||||
@@ -501,10 +501,10 @@
|
|||||||
<value>In Safari en Chrome vindt u Bitwarden onder het deel-pictogram (hint: scroll naar rechts op de onderste rij van het menu).</value>
|
<value>In Safari en Chrome vindt u Bitwarden onder het deel-pictogram (hint: scroll naar rechts op de onderste rij van het menu).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTapIcon" xml:space="preserve">
|
<data name="ExtensionTapIcon" xml:space="preserve">
|
||||||
<value>Raak het bitwarden-pictogram in het menu aan om de extensie te starten.</value>
|
<value>Raak het Bitwarden-pictogram in het menu aan om de extensie te starten.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||||
<value>Raak het "meer"-pictogram op de onderste rij van het menu aan om bitwarden in te schakelen in Safari en andere apps.</value>
|
<value>Raak het "meer"-pictogram op de onderste rij van het menu aan om Bitwarden in te schakelen in Safari en andere apps.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorite" xml:space="preserve">
|
<data name="Favorite" xml:space="preserve">
|
||||||
<value>Favoriet</value>
|
<value>Favoriet</value>
|
||||||
@@ -519,7 +519,7 @@
|
|||||||
<value>Verkrijg hoofdwachtwoord-hint</value>
|
<value>Verkrijg hoofdwachtwoord-hint</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItems" xml:space="preserve">
|
<data name="ImportItems" xml:space="preserve">
|
||||||
<value>Items Importeren</value>
|
<value>Items importeren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsConfirmation" xml:space="preserve">
|
<data name="ImportItemsConfirmation" xml:space="preserve">
|
||||||
<value>U kunt een bulk import van items doen vanuit de bitwarden.com webkluis. Wilt u de website nu bezoeken?</value>
|
<value>U kunt een bulk import van items doen vanuit de bitwarden.com webkluis. Wilt u de website nu bezoeken?</value>
|
||||||
@@ -591,7 +591,7 @@
|
|||||||
<value>Meer instellingen</value>
|
<value>Meer instellingen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MustLogInMainApp" xml:space="preserve">
|
<data name="MustLogInMainApp" xml:space="preserve">
|
||||||
<value>U moet inloggen op de bitwarden-app voordat u de extensie kunt gebruiken.</value>
|
<value>U moet inloggen op de Bitwarden-app voordat u de extensie kunt gebruiken.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>Nooit</value>
|
<value>Nooit</value>
|
||||||
@@ -640,7 +640,7 @@
|
|||||||
<value>Weet u zeker dat het huidige wachtwoord wilt overschrijven?</value>
|
<value>Weet u zeker dat het huidige wachtwoord wilt overschrijven?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PushNotificationAlert" xml:space="preserve">
|
<data name="PushNotificationAlert" xml:space="preserve">
|
||||||
<value>bitwarden houdt uw kluis automatisch gesynchroniseerd d.m.v. push-meldingen. Druk op "Oké" in het volgende dialoogvenster om push-meldingen in te schakelen.</value>
|
<value>Bitwarden houdt uw kluis automatisch gesynchroniseerd d.m.v. push-meldingen. Druk in het volgende dialoogvenster op "Oké" om push-meldingen in te schakelen.</value>
|
||||||
<comment>Push notifications for apple products</comment>
|
<comment>Push notifications for apple products</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheApp" xml:space="preserve">
|
<data name="RateTheApp" xml:space="preserve">
|
||||||
@@ -650,7 +650,7 @@
|
|||||||
<value>Help ons door een goede recensie te schrijven!</value>
|
<value>Help ons door een goede recensie te schrijven!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>App Store-beoordelingen worden gereset bij elke nieuwe versie van bitwarden. Help ons door een goede beoordeling te schrijven!</value>
|
<value>App Store-beoordelingen worden gereset bij elke nieuwe versie van Bitwarden. Help ons door een goede beoordeling te schrijven!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>Wachtwoord opnieuw genereren</value>
|
<value>Wachtwoord opnieuw genereren</value>
|
||||||
@@ -723,13 +723,13 @@
|
|||||||
<value>Verificatiecode</value>
|
<value>Verificatiecode</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ViewItem" xml:space="preserve">
|
<data name="ViewItem" xml:space="preserve">
|
||||||
<value>Item Bekijken</value>
|
<value>Item weergeven</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>bitwarden-webkluis</value>
|
<value>Bitwarden-webkluis</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>Beheer je items vanuit elke browser met de bitwarden webkluis.</value>
|
<value>Beheer uw items vanuit elke webbrowser met de Bitwarden-webkluis.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lost2FAApp" xml:space="preserve">
|
<data name="Lost2FAApp" xml:space="preserve">
|
||||||
<value>Authenticatie-app kwijt?</value>
|
<value>Authenticatie-app kwijt?</value>
|
||||||
@@ -756,7 +756,7 @@
|
|||||||
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
||||||
<value>Als u een bitwarden auto-invullen-melding ziet, dan kunt u deze aanraken om de auto-invullen-dienst te starten.</value>
|
<value>Als u een Bitwarden auto-invullen-melding ziet, dan kunt u deze aanraken om de auto-invullen-dienst te starten.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
||||||
<value>Raak deze melding aan om een login automatisch in te vullen d.m.v. uw kluis.</value>
|
<value>Raak deze melding aan om een login automatisch in te vullen d.m.v. uw kluis.</value>
|
||||||
@@ -765,7 +765,7 @@
|
|||||||
<value>Toegankelijkheidsinstellingen openen</value>
|
<value>Toegankelijkheidsinstellingen openen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. Raak op het Android-toegankelijkheidsinstellingen-scherm "bitwarden" aan onder de kop Diensten.</value>
|
<value>1. Raak op het Android-toegankelijkheidsinstellingen-scherm "Bitwarden" aan onder de kop Diensten.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
||||||
<value>2. Raak de schuifknop aan en druk op Oké om te accepteren.</value>
|
<value>2. Raak de schuifknop aan en druk op Oké om te accepteren.</value>
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
<value>Bèta</value>
|
<value>Bèta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
||||||
<value>De eenvoudigste manier om nieuwe logins toe te voegen aan uw kluis is door de bitwarden app-extensie te gebruiken. Lees meer over het gebruik van de app-extensie op het "Hulpmiddelen"-scherm.</value>
|
<value>De eenvoudigste manier om nieuwe logins toe te voegen aan uw kluis is door de Bitwarden app-extensie te gebruiken. Lees meer over het gebruik van de app-extensie op het "Hulpmiddelen"-scherm.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Autofill" xml:space="preserve">
|
<data name="Autofill" xml:space="preserve">
|
||||||
<value>Auto-invullen</value>
|
<value>Auto-invullen</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO-beveiligingssleute</value>
|
<value>YubiKey NEO-beveiligingssleute</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Nieuwe bijlage toevoegen</value>
|
<value>Nieuwe bijlage toevoegen</value>
|
||||||
@@ -986,7 +986,7 @@
|
|||||||
<value>Meer informatie</value>
|
<value>Meer informatie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApiUrl" xml:space="preserve">
|
<data name="ApiUrl" xml:space="preserve">
|
||||||
<value>API Server URL</value>
|
<value>API server-URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomEnvironment" xml:space="preserve">
|
<data name="CustomEnvironment" xml:space="preserve">
|
||||||
<value>Aangepaste omgeving</value>
|
<value>Aangepaste omgeving</value>
|
||||||
@@ -1002,23 +1002,23 @@
|
|||||||
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
<comment>Validation error when something is not formatted correctly, such as a URL or email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="IdentityUrl" xml:space="preserve">
|
<data name="IdentityUrl" xml:space="preserve">
|
||||||
<value>Gebruikersbeheer Server URL</value>
|
<value>Gebruikersbeheer server-URL</value>
|
||||||
<comment>"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management</comment>
|
<comment>"Identity" refers to an identity server. See more context here https://en.wikipedia.org/wiki/Identity_management</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironment" xml:space="preserve">
|
<data name="SelfHostedEnvironment" xml:space="preserve">
|
||||||
<value>Zelf gehoste omgeving</value>
|
<value>Zelfgehoste omgeving</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
||||||
<value>Specificeer de basis URL van je op locatie gehoste bitwarden installatie.</value>
|
<value>Specificeer de basis-URL van uw op locatie gehoste Bitwarden-installatie.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ServerUrl" xml:space="preserve">
|
<data name="ServerUrl" xml:space="preserve">
|
||||||
<value>Server URL</value>
|
<value>Server-URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultUrl" xml:space="preserve">
|
<data name="WebVaultUrl" xml:space="preserve">
|
||||||
<value>Web Kluis Server URL</value>
|
<value>Webkluis server-URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
||||||
<value>Tap this notification to view logins from your vault.</value>
|
<value>Raak deze melding aan om logins te bekijken uit uw kluis.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFields" xml:space="preserve">
|
<data name="CustomFields" xml:space="preserve">
|
||||||
<value>Aangepaste velden</value>
|
<value>Aangepaste velden</value>
|
||||||
@@ -1027,7 +1027,7 @@
|
|||||||
<value>Nummer Kopiëren</value>
|
<value>Nummer Kopiëren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CopySecurityCode" xml:space="preserve">
|
<data name="CopySecurityCode" xml:space="preserve">
|
||||||
<value>Kopieer Beveiligingscode</value>
|
<value>Beveiligingscode kopiëren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Number" xml:space="preserve">
|
<data name="Number" xml:space="preserve">
|
||||||
<value>Nummer</value>
|
<value>Nummer</value>
|
||||||
@@ -1048,7 +1048,7 @@
|
|||||||
<value>Login</value>
|
<value>Login</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TypeSecureNote" xml:space="preserve">
|
<data name="TypeSecureNote" xml:space="preserve">
|
||||||
<value>Veilige Notitie</value>
|
<value>Veilige notitie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Address1" xml:space="preserve">
|
<data name="Address1" xml:space="preserve">
|
||||||
<value>Adres 1</value>
|
<value>Adres 1</value>
|
||||||
@@ -1069,10 +1069,10 @@
|
|||||||
<value>Merk</value>
|
<value>Merk</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CardholderName" xml:space="preserve">
|
<data name="CardholderName" xml:space="preserve">
|
||||||
<value>Naam Kaarthouder</value>
|
<value>Naam van kaarthouder</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CityTown" xml:space="preserve">
|
<data name="CityTown" xml:space="preserve">
|
||||||
<value>Stad</value>
|
<value>Stad / Dorp</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Company" xml:space="preserve">
|
<data name="Company" xml:space="preserve">
|
||||||
<value>Bedrijf</value>
|
<value>Bedrijf</value>
|
||||||
@@ -1129,7 +1129,7 @@
|
|||||||
<value>mevr.</value>
|
<value>mevr.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Ms" xml:space="preserve">
|
<data name="Ms" xml:space="preserve">
|
||||||
<value>mevr.</value>
|
<value>Mej.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="November" xml:space="preserve">
|
<data name="November" xml:space="preserve">
|
||||||
<value>November</value>
|
<value>November</value>
|
||||||
@@ -1147,7 +1147,7 @@
|
|||||||
<value>September</value>
|
<value>September</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SSN" xml:space="preserve">
|
<data name="SSN" xml:space="preserve">
|
||||||
<value>Burgerservicenummer (BSN)</value>
|
<value>Burgerservicenummer</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StateProvince" xml:space="preserve">
|
<data name="StateProvince" xml:space="preserve">
|
||||||
<value>Staat / Provincie</value>
|
<value>Staat / Provincie</value>
|
||||||
@@ -1165,19 +1165,19 @@
|
|||||||
<value>Vervaldatum</value>
|
<value>Vervaldatum</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableWebsiteIcons" xml:space="preserve">
|
<data name="DisableWebsiteIcons" xml:space="preserve">
|
||||||
<value>Schakel Website Icoontjes Uit</value>
|
<value>Websitepictogrammen uitschakelen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
|
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
|
||||||
<value>Website Icons provides a recognizable icon next to each login item in your vault.</value>
|
<value>Websitepictogrammen bieden een herkenbare afbeelding naast elk item in uw kluis.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="IconsUrl" xml:space="preserve">
|
<data name="IconsUrl" xml:space="preserve">
|
||||||
<value>Icoontjes-server URL</value>
|
<value>Pictogrammen server-URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>Automatisch invullen met bitwarden</value>
|
<value>Automatisch invullen met Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>Kluis zit op slot</value>
|
<value>Kluis is vergrendeld</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GoToMyVault" xml:space="preserve">
|
<data name="GoToMyVault" xml:space="preserve">
|
||||||
<value>Ga naar mijn kluis</value>
|
<value>Ga naar mijn kluis</value>
|
||||||
@@ -1195,10 +1195,10 @@
|
|||||||
<value>Automatisch invullen door Toegankelijkheidsservice</value>
|
<value>Automatisch invullen door Toegankelijkheidsservice</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillServiceDescription" xml:space="preserve">
|
<data name="AutofillServiceDescription" xml:space="preserve">
|
||||||
<value>De bitwarden automatische invulservice gebruikt Android Autofill Framework om u te helpen bij het invullen van inloggegevens, creditcards en identiteitsgegevens in andere apps op uw apparaat.</value>
|
<value>De Bitwarden automatische invulservice gebruikt Android Autofill Framework om u te helpen bij het invullen van inloggegevens, creditcards en identiteitsgegevens in andere apps op uw apparaat.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Gebruik de bitwarden-toegankelijkheidsdienst om uw inloggevens automatisch in te laten vullen.</value>
|
<value>Gebruik de Bitwarden-toegankelijkheidsdienst om uw inloggevens automatisch in te laten vullen.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
||||||
<value>Open instellingen voor automatisch invullen</value>
|
<value>Open instellingen voor automatisch invullen</value>
|
||||||
@@ -1266,7 +1266,7 @@
|
|||||||
<value>Exact</value>
|
<value>Exact</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Hostnaam</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Overeenkomstdetectie</value>
|
<value>Overeenkomstdetectie</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ja, en opslaan</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automatisch invullen en opslaan</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisatie</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Houd uw Yubikey bij de bovenkant van het apparaat.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Probeer het opnieuw</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Houd uw YubiKey NEO bij de achterkant van het apparaat om door te gaan.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>De toegankelijkheidsdienst kan nuttig zijn wanneer apps het reguliere automatisch invullen niet ondersteunen.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Wachtwoord bijgewerkt</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Bijgewerkt</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Klucz bezpieczeństwa YubiKey NEO</value>
|
<value>Klucz bezpieczeństwa YubiKey NEO</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Dodaj nowy załącznik</value>
|
<value>Dodaj nowy załącznik</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Wykrywanie dopasowania</value>
|
<value>Wykrywanie dopasowania</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Tak i Zapisz</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Automatycznie wypełniaj i zapisuj</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organizacja</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Przytrzymaj swój Yubikey w okolicy górnej części urządzenia.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Spróbuj ponownie</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Aby kontynuować, przyłóż swój YubiKey NEO do tylnej części urządzenia.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Usługi ułatwień dostępu mogą być pomocne w sytuacji, gdy aplikacje nie obsługują standardowej usługi automatycznego uzupełniania.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Hasło zaktualizowane</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Zaktualizowano</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Chave de Segurança YubiKey NEO</value>
|
<value>Chave de Segurança YubiKey NEO</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Adicionar Novo Anexo</value>
|
<value>Adicionar Novo Anexo</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Detecção de Correspondência</value>
|
<value>Detecção de Correspondência</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Sim, e Salvar</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Autopreencher e salvar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organização</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Segure a sua Yubikey perto do topo do dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Tentar novamente</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Para continuar, segure a sua YubiKey NEO contra a parte de trás do dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>O serviço de acessibilidade pode ser útil para se usar quando os aplicativos não suportam o serviço de autopreenchimento padrão.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Senha Atualizada</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Atualizado</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -196,7 +196,7 @@
|
|||||||
<value>Envie-nos um email diretamente para obter ajuda ou deixar feedback.</value>
|
<value>Envie-nos um email diretamente para obter ajuda ou deixar feedback.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterPIN" xml:space="preserve">
|
<data name="EnterPIN" xml:space="preserve">
|
||||||
<value>Digite o seu código PIN.</value>
|
<value>Introduza o seu código PIN.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorites" xml:space="preserve">
|
<data name="Favorites" xml:space="preserve">
|
||||||
<value>Favoritos</value>
|
<value>Favoritos</value>
|
||||||
@@ -366,7 +366,7 @@
|
|||||||
<value>Verificar impressão digital</value>
|
<value>Verificar impressão digital</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyMasterPassword" xml:space="preserve">
|
<data name="VerifyMasterPassword" xml:space="preserve">
|
||||||
<value>Verificar palavra-passe</value>
|
<value>Verificar palavra-passe mestra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyPIN" xml:space="preserve">
|
<data name="VerifyPIN" xml:space="preserve">
|
||||||
<value>Verifica PIN</value>
|
<value>Verifica PIN</value>
|
||||||
@@ -470,7 +470,7 @@
|
|||||||
<value>Ativar sincronização automática</value>
|
<value>Ativar sincronização automática</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterEmailForHint" xml:space="preserve">
|
<data name="EnterEmailForHint" xml:space="preserve">
|
||||||
<value>Digite o endereço de email da sua conta para receber a dica da sua palavra-passe mestra.</value>
|
<value>Introduza o endereço de email da sua conta para receber a dica da sua palavra-passe mestra.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExntesionReenable" xml:space="preserve">
|
<data name="ExntesionReenable" xml:space="preserve">
|
||||||
<value>Reativar extensão da aplicação</value>
|
<value>Reativar extensão da aplicação</value>
|
||||||
@@ -656,7 +656,7 @@
|
|||||||
<value>Regenerar palavra-passe</value>
|
<value>Regenerar palavra-passe</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RetypeMasterPassword" xml:space="preserve">
|
<data name="RetypeMasterPassword" xml:space="preserve">
|
||||||
<value>Re-digite a palavra-passe mestra</value>
|
<value>Reescreva a palavra-passe mestra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SearchVault" xml:space="preserve">
|
<data name="SearchVault" xml:space="preserve">
|
||||||
<value>Pesquisar cofre</value>
|
<value>Pesquisar cofre</value>
|
||||||
@@ -674,7 +674,7 @@
|
|||||||
<value>Definir PIN</value>
|
<value>Definir PIN</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SetPINDirection" xml:space="preserve">
|
<data name="SetPINDirection" xml:space="preserve">
|
||||||
<value>Digite um código PIN de 4 dígitos para desbloquear a aplicação.</value>
|
<value>Introduza um código PIN de 4 dígitos para desbloquear a aplicação.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ItemInformation" xml:space="preserve">
|
<data name="ItemInformation" xml:space="preserve">
|
||||||
<value>Informação do item</value>
|
<value>Informação do item</value>
|
||||||
@@ -707,7 +707,7 @@
|
|||||||
<value>Início de sessão de dois passos</value>
|
<value>Início de sessão de dois passos</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>O início de sessão de dois passos torna a sua conta mais segura ao requerer que digite um código de segurança de uma aplicação de autenticação quando iniciar sessão. O início de sessão de dois passos pode ser ativado no cofre web bitwarden.com. Pretende visitar o website agora?</value>
|
<value>O início de sessão de dois passos torna a sua conta mais segura ao requerer que verifique o seu início de sessão com outro dispositivo como uma chave de segurança, aplicação de autenticação, SMS, chamada telefónica, ou email. O início de sessão de dois passos pode ser ativado no cofre web bitwarden.com. Pretende visitar o website agora?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Destrancar com {0}</value>
|
<value>Destrancar com {0}</value>
|
||||||
@@ -842,11 +842,11 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterVerificationCodeApp" xml:space="preserve">
|
<data name="EnterVerificationCodeApp" xml:space="preserve">
|
||||||
<value>Digite o código de verificação de 6 dígitos da sua aplicação de autenticador {0}.</value>
|
<value>Introduza o código de verificação de 6 dígitos da sua aplicação de autenticador.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
||||||
<value>Digite o código de verificação de 6 dígitos que foi enviado por email para {0}.</value>
|
<value>Introduza o código de verificação de 6 dígitos que foi enviado por email para {0}.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoginUnavailable" xml:space="preserve">
|
<data name="LoginUnavailable" xml:space="preserve">
|
||||||
@@ -883,11 +883,11 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyInstruction" xml:space="preserve">
|
<data name="YubiKeyInstruction" xml:space="preserve">
|
||||||
<value>Para continuar, segure a sua YubiKey NEO contra a parte de trás do seu dispositivo ou introduza a sua YubiKey na porta USB do seu dispositivo, depois toque no seu botão.</value>
|
<value>Para continuar, segure a sua YubiKey NEO contra a parte de trás do dispositivo ou introduza a sua YubiKey na porta USB do seu dispositivo, depois toque no seu botão.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Chave de segurança YubiKey</value>
|
<value>Chave de segurança YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Adicionar novo anexo</value>
|
<value>Adicionar novo anexo</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Deteção de correspondência</value>
|
<value>Deteção de correspondência</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Sim, e guardar</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-preencher e guardar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organização</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Segure a sua Yubikey perto do topo do dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Tentar novamente</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Para continuar, segure a sua YubiKey NEO contra a parte de trás do dispositivo.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>O serviço de acessibilidade pode ser útil para utilizar quando as aplicações não suportam o serviço de auto-preenchimento padrão.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Palavra passe atualizada</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Atualizado</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey Security Key</value>
|
<value>YubiKey Security Key</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Add New Attachment</value>
|
<value>Add New Attachment</value>
|
||||||
@@ -1293,4 +1293,24 @@
|
|||||||
<value>Organization</value>
|
<value>Organization</value>
|
||||||
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Cheie de securitate YubiKey NEO</value>
|
<value>Cheie de securitate YubiKey NEO</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Adăugaţi un nou ataşament</value>
|
<value>Adăugaţi un nou ataşament</value>
|
||||||
@@ -1229,58 +1229,88 @@
|
|||||||
<value>Nu am reușit să deschidem automat meniul setărilor pentru completare automată. Puteți să navigați manual la meniul setărilor pentru completarea automată din Setările Android > Sistem > Limbi și introducerea textului > Avansate > Serviciu de completare automată.</value>
|
<value>Nu am reușit să deschidem automat meniul setărilor pentru completare automată. Puteți să navigați manual la meniul setărilor pentru completarea automată din Setările Android > Sistem > Limbi și introducerea textului > Avansate > Serviciu de completare automată.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Numele câmpului particularizat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Valoare logică</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Ascuns</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Text</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Câmp nou personalizat</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Ce tip de câmp personalizat doriți să adaugați?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Ștergeți</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>URI nou</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Domeniu de bază</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Implicit</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Exact</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Gazdă</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Expresie regulată</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Începe cu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Detectare potrivire URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Detectare potrivire</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Da și salvează</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Completează automat și salvează</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organizație</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Țineţi YubiKey-ul dumneavoastră în partea de sus a dispozitivului.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Încercaţi din nou</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Pentru a continua, ţineţi NEO-YubiKey-ul dumneavoastră către partea din spate a dispozitivului.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Serviciul de accesibilitate poate fi de ajutor atunci când unele aplicații nu acceptă serviciul standard de completare automată.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -464,7 +464,7 @@
|
|||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EditItem" xml:space="preserve">
|
<data name="EditItem" xml:space="preserve">
|
||||||
<value>Изменить элемент</value>
|
<value>Изменение элемента</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnableAutomaticSyncing" xml:space="preserve">
|
<data name="EnableAutomaticSyncing" xml:space="preserve">
|
||||||
<value>Включить автоматическую синхронизацию</value>
|
<value>Включить автоматическую синхронизацию</value>
|
||||||
@@ -522,7 +522,7 @@
|
|||||||
<value>Импорт элементов</value>
|
<value>Импорт элементов</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsConfirmation" xml:space="preserve">
|
<data name="ImportItemsConfirmation" xml:space="preserve">
|
||||||
<value>Вы можете легко импортировать свои элементы из других менеджеров паролей в свое веб-хранилище bitwarden. Сделать это сейчас?</value>
|
<value>Вы можете импортировать свои элементы в свое веб-хранилище на bitwarden.com. Перейти на сайт сейчас?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsDescription" xml:space="preserve">
|
<data name="ImportItemsDescription" xml:space="preserve">
|
||||||
<value>Быстрый импорт ваших элементов из других менеджеров паролей.</value>
|
<value>Быстрый импорт ваших элементов из других менеджеров паролей.</value>
|
||||||
@@ -846,7 +846,7 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
||||||
<value>Введите 6-значный код подтверждения, который был отправлен на email {0}.</value>
|
<value>Введите 6-значный код подтверждения, который был отправлен на {0}.</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoginUnavailable" xml:space="preserve">
|
<data name="LoginUnavailable" xml:space="preserve">
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Ключ безопасности YubiKey</value>
|
<value>Ключ безопасности YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Добавить новое вложение</value>
|
<value>Добавить новое вложение</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Обнаружение совпадений</value>
|
<value>Обнаружение совпадений</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Да, и сохранить</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Заполнить и сохранить</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Организация</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Удерживайте Yubikey в верхней части устройства.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Еще раз</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Для продолжения, удерживайте YubiKey NEO у задней панели устройства.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Служба доступности может быть полезна, когда приложения не поддерживают стандартную службу автозаполнения.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Пароль обновлен</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Обновлено</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO bezpečnostný kľúč</value>
|
<value>YubiKey NEO bezpečnostný kľúč</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Pridať novú prílohu</value>
|
<value>Pridať novú prílohu</value>
|
||||||
@@ -1217,70 +1217,100 @@
|
|||||||
<value>Overiť Face ID</value>
|
<value>Overiť Face ID</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
<data name="UseWindowsHelloToUnlock" xml:space="preserve">
|
||||||
<value>Unlock with Windows Hello</value>
|
<value>Odomknúť pomocou Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyWindowsHello" xml:space="preserve">
|
<data name="VerifyWindowsHello" xml:space="preserve">
|
||||||
<value>Verify with Windows Hello</value>
|
<value>Overiť pomocou Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowsHello" xml:space="preserve">
|
<data name="WindowsHello" xml:space="preserve">
|
||||||
<value>Windows Hello</value>
|
<value>Windows Hello</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillGoToSettings" xml:space="preserve">
|
<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 > System > Languages and input > Advanced > Autofill service.</value>
|
<value>Nepodarilo sa automaticky otvoriť nastavenia automatického dopĺňania pre systém Android. Môžete otvoriť nastavenie manuálne cez Nastavenia > Systém > Jazyky a vstup > Rozšírené > Služba automatického dopĺňania.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CustomFieldName" xml:space="preserve">
|
<data name="CustomFieldName" xml:space="preserve">
|
||||||
<value>Custom Field Name</value>
|
<value>Názov vlastného poľa</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>Áno/Nie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>Hidden</value>
|
<value>Skryté</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeText" xml:space="preserve">
|
<data name="FieldTypeText" xml:space="preserve">
|
||||||
<value>Text</value>
|
<value>Text</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewCustomField" xml:space="preserve">
|
<data name="NewCustomField" xml:space="preserve">
|
||||||
<value>New Custom Field</value>
|
<value>Nové vlastné pole</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>Aký typ poľa chcete pridať?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>Odstrániť</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Nové URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URI {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
<value>Base domain</value>
|
<value>Základná doména</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>Default</value>
|
<value>Predvolené</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>Presný</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<data name="Host" xml:space="preserve">
|
||||||
<value>Host</value>
|
<value>Hostiteľ</value>
|
||||||
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>Regulárny výraz</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>Začína na</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Spôsob mapovania URI</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Spôsob mapovania</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Áno, a uložiť</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-vyplniť a uložiť</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organizácia</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Držte vaše Yubikey blízko hornej časti prístroja.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Skúsiť Znovu</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Ak chcete pokračovať, podržte YubiKey NEO na zadnej strane prístroja.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Služba dostupnosti môže byť užitočné pre aplikácie, ktoré nepodporujú štandardnú službu automatického dopĺňania.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Heslo bolo aktualizované</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Aktualizované</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey säkerhetsnyckel</value>
|
<value>YubiKey säkerhetsnyckel</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Bifoga fil</value>
|
<value>Bifoga fil</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Matchning</value>
|
<value>Matchning</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Ja, och spara</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Fyll i automatiskt och spara</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organisation</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Håll din Yubikey nära ovansidan av enheten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Försök igen</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>För att fortsätta, håll din YubiKey NEO mot baksidan av enheten.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Tillgänglighetstjänsten kan vara användbar när appar inte stöder standardvarianten av ifyllnad.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Lösenord uppdaterat</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Uppdaterad</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -412,7 +412,7 @@
|
|||||||
<value>หลีกเลี่ยงอักขระที่ไม่ชัดเจน</value>
|
<value>หลีกเลี่ยงอักขระที่ไม่ชัดเจน</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||||
<value>bitwarden App Extension</value>
|
<value>ส่วนขยายแอปพลิเคชัน bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>The easiest way to add new logins to your vault is from the bitwarden App Extension. Learn more about using the bitwarden App Extension by navigating to the "Tools" screen.</value>
|
<value>The easiest way to add new logins to your vault is from the bitwarden App Extension. Learn more about using the bitwarden App Extension by navigating to the "Tools" screen.</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO Security Key</value>
|
<value>YubiKey NEO Security Key</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>เพิ่มไฟล์แนบใหม่</value>
|
<value>เพิ่มไฟล์แนบใหม่</value>
|
||||||
@@ -1232,7 +1232,7 @@
|
|||||||
<value>ชื่อเขตข้อมูล ที่กำหนดเอง</value>
|
<value>ชื่อเขตข้อมูล ที่กำหนดเอง</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeBoolean" xml:space="preserve">
|
<data name="FieldTypeBoolean" xml:space="preserve">
|
||||||
<value>Boolean</value>
|
<value>ค่าบูลีน</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FieldTypeHidden" xml:space="preserve">
|
<data name="FieldTypeHidden" xml:space="preserve">
|
||||||
<value>ซ่อน</value>
|
<value>ซ่อน</value>
|
||||||
@@ -1244,10 +1244,10 @@
|
|||||||
<value>สร้างเขตข้อมูลที่กำหนดเองใหม่</value>
|
<value>สร้างเขตข้อมูลที่กำหนดเองใหม่</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelectTypeField" xml:space="preserve">
|
<data name="SelectTypeField" xml:space="preserve">
|
||||||
<value>What type of custom field do you want to add?</value>
|
<value>คุณต้องการเพิ่มเขตข้อมูลแบบกำหนดเองชนิดใด</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Remove" xml:space="preserve">
|
<data name="Remove" xml:space="preserve">
|
||||||
<value>Remove</value>
|
<value>เอาออก</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>URI ใหม่</value>
|
<value>URI ใหม่</value>
|
||||||
@@ -1263,24 +1263,54 @@
|
|||||||
<value>ค่าเริ่มต้น</value>
|
<value>ค่าเริ่มต้น</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Exact" xml:space="preserve">
|
<data name="Exact" xml:space="preserve">
|
||||||
<value>Exact</value>
|
<value>ถูกต้อง</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Host" xml:space="preserve">
|
<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>
|
<comment>A URL's host value. For example, the host of https://sub.domain.com:443 is 'sub.domain.com:443'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegEx" xml:space="preserve">
|
<data name="RegEx" xml:space="preserve">
|
||||||
<value>Regular expression</value>
|
<value>นิพจน์ทั่วไป</value>
|
||||||
<comment>A programming term, also known as 'RegEx'.</comment>
|
<comment>A programming term, also known as 'RegEx'.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartsWith" xml:space="preserve">
|
<data name="StartsWith" xml:space="preserve">
|
||||||
<value>Starts with</value>
|
<value>เริ่มต้นด้วย</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>ตรวจพบการจับคู่ URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>ตรวจพบการจับคู่</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey NEO Güvenlik Anahtarı</value>
|
<value>YubiKey NEO Güvenlik Anahtarı</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Yeni bir ek ekle</value>
|
<value>Yeni bir ek ekle</value>
|
||||||
@@ -1250,10 +1250,10 @@
|
|||||||
<value>Kaldır</value>
|
<value>Kaldır</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="NewUri" xml:space="preserve">
|
<data name="NewUri" xml:space="preserve">
|
||||||
<value>New URI</value>
|
<value>Yeni URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIPosition" xml:space="preserve">
|
<data name="URIPosition" xml:space="preserve">
|
||||||
<value>URI {0}</value>
|
<value>URL {0}</value>
|
||||||
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
<comment>Label for a uri/url with position. i.e. URI 1, URI 2, etc</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BaseDomain" xml:space="preserve">
|
<data name="BaseDomain" xml:space="preserve">
|
||||||
@@ -1277,10 +1277,40 @@
|
|||||||
<value>İle başlar</value>
|
<value>İle başlar</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>URI Match Detection</value>
|
<value>Eşleşen URL Tespiti</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Match Detection</value>
|
<value>Eşleşme Tespiti</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Yes, and Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Auto-fill and save</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Organization</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Hold your Yubikey near the top of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Try Again</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>To continue, hold your YubiKey NEO against the back of the device.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>The accessibility service may be helpful to use when apps do not support the standard auto-fill service.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
<data name="DoYouReallyWantToDelete" xml:space="preserve">
|
||||||
<value>Ви справді хочете видалити? Цю дію неможливо відмінити.</value>
|
<value>Ви справді хочете видалити? Цю дію неможливо скасувати.</value>
|
||||||
<comment>Confirmation alert message when deleteing something.</comment>
|
<comment>Confirmation alert message when deleteing something.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Edit" xml:space="preserve">
|
<data name="Edit" xml:space="preserve">
|
||||||
@@ -704,10 +704,10 @@
|
|||||||
<comment>What Apple calls their fingerprint reader.</comment>
|
<comment>What Apple calls their fingerprint reader.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLogin" xml:space="preserve">
|
<data name="TwoStepLogin" xml:space="preserve">
|
||||||
<value>Двоетапна авторизація</value>
|
<value>Двохетапна авторизація</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>Двоетапна авторизація робить ваш обліковий запис більш захищеним, вимагаючи підтвердження входу за допомогою іншого пристрою, наприклад, коду безпеки, програми авторизації, SMS, телефонного виклику, або е-пошти. Ви можете увімкнути двоетапну авторизацію в сховищі на bitwarden.com. Хочете перейти на веб-сайт зараз?</value>
|
<value>Двохетапна авторизація робить ваш обліковий запис більш захищеним, вимагаючи підтвердження вашого входу з використанням іншого пристрою, наприклад, за допомогою коду безпеки, програми авторизації, SMS, телефонного виклику, або е-пошти. Ви можете увімкнути двохетапну авторизацію в сховищі на bitwarden.com. Хочете перейти на веб-сайт зараз?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Розблокування з {0}</value>
|
<value>Розблокування з {0}</value>
|
||||||
@@ -854,7 +854,7 @@
|
|||||||
<comment>For 2FA whenever there are no available providers on this device.</comment>
|
<comment>For 2FA whenever there are no available providers on this device.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="NoTwoStepAvailable" xml:space="preserve">
|
<data name="NoTwoStepAvailable" xml:space="preserve">
|
||||||
<value>Цей обліковий запис має увімкнену двоетапну авторизацію, однак, жоден з підтримуваних провайдерів подвійної авторизації для цього пристрою не підтримується. Будь ласка, скористайтеся підтримуваним пристроєм та/або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму авторизації).</value>
|
<value>Цей обліковий запис має увімкнену двохетапну авторизацію, однак, жоден з підтримуваних провайдерів для цього пристрою не підтримується. Будь ласка, скористайтеся підтримуваним пристроєм та/або додайте інших провайдерів, які мають кращу підтримку різних пристроїв (наприклад, програму авторизації).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RecoveryCodeTitle" xml:space="preserve">
|
<data name="RecoveryCodeTitle" xml:space="preserve">
|
||||||
<value>Код відновлення</value>
|
<value>Код відновлення</value>
|
||||||
@@ -869,10 +869,10 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginOptions" xml:space="preserve">
|
<data name="TwoStepLoginOptions" xml:space="preserve">
|
||||||
<value>Налаштування двоетапної авторизації</value>
|
<value>Налаштування двохетапної авторизації</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UseAnotherTwoStepMethod" xml:space="preserve">
|
<data name="UseAnotherTwoStepMethod" xml:space="preserve">
|
||||||
<value>Використати інший спосіб двоетапної авторизації</value>
|
<value>Використати інший спосіб двохетапної авторизації</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerificationEmailNotSent" xml:space="preserve">
|
<data name="VerificationEmailNotSent" xml:space="preserve">
|
||||||
<value>Не вдається надіслати лист для перевірки. Спробуйте знову.</value>
|
<value>Не вдається надіслати лист для перевірки. Спробуйте знову.</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Ключ безпеки YubiKey</value>
|
<value>Ключ безпеки YubiKey</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Додати нове вкладення</value>
|
<value>Додати нове вкладення</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>Виявлення збігів</value>
|
<value>Виявлення збігів</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Так, і зберегти</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Заповнити і зберегти</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Організація</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Утримуйте Yubikey біля верхньої частини пристрою.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Спробуйте ще раз</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Щоб продовжити, утримуйте YubiKey NEO навпроти задньої частини пристрою.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Сервіс доступності може бути корисним для використання, коли програми не підтримують стандартний сервіс автозаповнення.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Пароль оновлено</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Оновлено</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -140,7 +140,7 @@
|
|||||||
<comment>Navigate back to the previous screen.</comment>
|
<comment>Navigate back to the previous screen.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Bitwarden" xml:space="preserve">
|
<data name="Bitwarden" xml:space="preserve">
|
||||||
<value>bitwarden</value>
|
<value>Bitwarden</value>
|
||||||
<comment>App name. Shouldn't ever change.</comment>
|
<comment>App name. Shouldn't ever change.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Cancel" xml:space="preserve">
|
<data name="Cancel" xml:space="preserve">
|
||||||
@@ -152,11 +152,11 @@
|
|||||||
<comment>Copy some value to your clipboard.</comment>
|
<comment>Copy some value to your clipboard.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="CopyPassword" xml:space="preserve">
|
<data name="CopyPassword" xml:space="preserve">
|
||||||
<value>Sao chép Mật khẩu</value>
|
<value>Sao chép mật khẩu</value>
|
||||||
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
|
<comment>The button text that allows a user to copy the login's password to their clipboard.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="CopyUsername" xml:space="preserve">
|
<data name="CopyUsername" xml:space="preserve">
|
||||||
<value>Sao chép Tên đăng nhập</value>
|
<value>Sao chép tên đăng nhập</value>
|
||||||
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
|
<comment>The button text that allows a user to copy the login's username to their clipboard.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Credits" xml:space="preserve">
|
<data name="Credits" xml:space="preserve">
|
||||||
@@ -186,7 +186,7 @@
|
|||||||
<comment>Short label for an email address.</comment>
|
<comment>Short label for an email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailAddress" xml:space="preserve">
|
<data name="EmailAddress" xml:space="preserve">
|
||||||
<value>Địa chỉ Email</value>
|
<value>Địa chỉ email</value>
|
||||||
<comment>Full label for a email address.</comment>
|
<comment>Full label for a email address.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EmailUs" xml:space="preserve">
|
<data name="EmailUs" xml:space="preserve">
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
<comment>Description message for the alert when internet connection is required to continue.</comment>
|
<comment>Description message for the alert when internet connection is required to continue.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="InternetConnectionRequiredTitle" xml:space="preserve">
|
<data name="InternetConnectionRequiredTitle" xml:space="preserve">
|
||||||
<value>Yêu cầu Kết nối Internet</value>
|
<value>Yêu cầu kết nối Internet</value>
|
||||||
<comment>Title for the alert when internet connection is required to continue.</comment>
|
<comment>Title for the alert when internet connection is required to continue.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="InvalidMasterPassword" xml:space="preserve">
|
<data name="InvalidMasterPassword" xml:space="preserve">
|
||||||
@@ -276,7 +276,7 @@
|
|||||||
<value>Bạn có chắc chắn muốn đăng xuất không?</value>
|
<value>Bạn có chắc chắn muốn đăng xuất không?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPassword" xml:space="preserve">
|
<data name="MasterPassword" xml:space="preserve">
|
||||||
<value>Mật khẩu chính</value>
|
<value>Mật khẩu</value>
|
||||||
<comment>Label for a master password.</comment>
|
<comment>Label for a master password.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="More" xml:space="preserve">
|
<data name="More" xml:space="preserve">
|
||||||
@@ -288,7 +288,7 @@
|
|||||||
<comment>The title for the vault page.</comment>
|
<comment>The title for the vault page.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Name" xml:space="preserve">
|
<data name="Name" xml:space="preserve">
|
||||||
<value>Tên</value>
|
<value>Tên mục</value>
|
||||||
<comment>Label for an entity name.</comment>
|
<comment>Label for an entity name.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="No" xml:space="preserve">
|
<data name="No" xml:space="preserve">
|
||||||
@@ -299,7 +299,7 @@
|
|||||||
<comment>Label for notes.</comment>
|
<comment>Label for notes.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Ok" xml:space="preserve">
|
<data name="Ok" xml:space="preserve">
|
||||||
<value>Được</value>
|
<value>Ok</value>
|
||||||
<comment>Acknowledgement.</comment>
|
<comment>Acknowledgement.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableGA" xml:space="preserve">
|
<data name="DisableGA" xml:space="preserve">
|
||||||
@@ -366,7 +366,7 @@
|
|||||||
<value>Xác thực vân tay</value>
|
<value>Xác thực vân tay</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyMasterPassword" xml:space="preserve">
|
<data name="VerifyMasterPassword" xml:space="preserve">
|
||||||
<value>Nhập lại mật khẩu chính</value>
|
<value>Nhập lại mật khẩu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VerifyPIN" xml:space="preserve">
|
<data name="VerifyPIN" xml:space="preserve">
|
||||||
<value>Xác thực mã PIN</value>
|
<value>Xác thực mã PIN</value>
|
||||||
@@ -381,7 +381,7 @@
|
|||||||
<value>Ghé thăm trang web của chúng tôi</value>
|
<value>Ghé thăm trang web của chúng tôi</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
<data name="VisitOurWebsiteDescription" xml:space="preserve">
|
||||||
<value>Truy cập trang web của chúng tôi để nhận trợ giúp, tin tức, địa chỉ mail liên lạc và/hoặc tìm hiểu thêm về cách sử dụng bitwarden.</value>
|
<value>Truy cập trang web của chúng tôi để nhận trợ giúp, tin tức, địa chỉ email liên lạc và tìm hiểu thêm về cách sử dụng Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Website" xml:space="preserve">
|
<data name="Website" xml:space="preserve">
|
||||||
<value>Trang web</value>
|
<value>Trang web</value>
|
||||||
@@ -403,40 +403,40 @@
|
|||||||
<value>Phần mở rộng ứng dụng</value>
|
<value>Phần mở rộng ứng dụng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>Sử dụng quyền truy cập sử dụng để bitwarden tự động điền thông tin đăng nhập của bạn trên các ứng dụng và web.</value>
|
<value>Cấp quyền truy cập sử dụng để Bitwarden tự động điền thông tin đăng nhập của bạn vào các ứng dụng và trang web.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>Dịch vụ tự động điền</value>
|
<value>Tự động điền tiêu chuẩn</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
<data name="AvoidAmbiguousCharacters" xml:space="preserve">
|
||||||
<value>Tránh các ký tự không rõ ràng</value>
|
<value>Tránh các ký tự không rõ ràng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtension" xml:space="preserve">
|
<data name="BitwardenAppExtension" xml:space="preserve">
|
||||||
<value>Tiện ích mở rộng ứng dụng bitwarden</value>
|
<value>Phần mở rộng Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
<data name="BitwardenAppExtensionAlert" xml:space="preserve">
|
||||||
<value>Cách dễ nhất để thêm đăng nhập mới vào hầm của bạn là từ Tiện ích mở rộng ứng dụng bitwarden. Tìm hiểu thêm về cách sử dụng Tiện ích mở rộng ứng dụng bitwarden bằng cách điều hướng đến màn hình 'Công cụ'.</value>
|
<value>Cách dễ nhất để thêm đăng nhập mới vào kho của bạn là từ Phần mở rộng Bitwarden. Tìm hiểu thêm về cách sử dụng Phần mở rộng Bitwarden bằng cách điều hướng đến màn hình "Công cụ".</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
<data name="BitwardenAppExtensionDescription" xml:space="preserve">
|
||||||
<value>Sử dụng bitwarden trong Safari và các ứng dụng khác để tự động điền thông tin đăng nhập của bạn.</value>
|
<value>Sử dụng Bitwarden trong Safari và các ứng dụng khác để tự động điền thông tin đăng nhập của bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillService" xml:space="preserve">
|
<data name="BitwardenAutofillService" xml:space="preserve">
|
||||||
<value>Dịch vụ Tự động điền bitwarden</value>
|
<value>Dịch vụ tự động điền Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillAccessibilityServiceDescription" xml:space="preserve">
|
||||||
<value>Sử dụng quyền truy cập sử dụng để bitwarden tự động điền thông tin đăng nhập của bạn.</value>
|
<value>Cấp quyền truy cập sử dụng để Bitwarden tự động điền thông tin đăng nhập giúp bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmail" xml:space="preserve">
|
<data name="ChangeEmail" xml:space="preserve">
|
||||||
<value>Thay đổi Email</value>
|
<value>Thay đổi email</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
<data name="ChangeEmailConfirmation" xml:space="preserve">
|
||||||
<value>Bạn có thể thay đổi địa chỉ email trong kho bitwarden nền web. Bạn có muốn truy cập trang web bây giờ?</value>
|
<value>Bạn có thể thay đổi địa chỉ email trong trang web Bitwarden. Bạn có muốn truy cập bitwarden.com bây giờ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeMasterPassword" xml:space="preserve">
|
<data name="ChangeMasterPassword" xml:space="preserve">
|
||||||
<value>Thay đổi mật khẩu chính</value>
|
<value>Thay đổi mật khẩu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangePasswordConfirmation" xml:space="preserve">
|
<data name="ChangePasswordConfirmation" xml:space="preserve">
|
||||||
<value>Bạn có thể thay đổi mật khẩu chính trong kho bitwarden nền web. Bạn có muốn truy cập trang web bây giờ?</value>
|
<value>Bạn có thể thay đổi mật khẩu chủ trong trang web Bitwarden. Bạn có muốn truy cập bitwarden.com bây giờ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Close" xml:space="preserve">
|
<data name="Close" xml:space="preserve">
|
||||||
<value>Đóng</value>
|
<value>Đóng</value>
|
||||||
@@ -470,7 +470,7 @@
|
|||||||
<value>Bật tự động đồng bộ</value>
|
<value>Bật tự động đồng bộ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterEmailForHint" xml:space="preserve">
|
<data name="EnterEmailForHint" xml:space="preserve">
|
||||||
<value>Nhập địa chỉ email tài khoản của bạn để nhận gợi ý mật khẩu chính.</value>
|
<value>Nhập địa chỉ email tài khoản của bạn để nhận gợi ý mật khẩu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExntesionReenable" xml:space="preserve">
|
<data name="ExntesionReenable" xml:space="preserve">
|
||||||
<value>Bật lại phần mở rộng ứng dụng</value>
|
<value>Bật lại phần mở rộng ứng dụng</value>
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
<value>Bật phần mở rộng ứng dụng</value>
|
<value>Bật phần mở rộng ứng dụng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInSafari" xml:space="preserve">
|
<data name="ExtensionInSafari" xml:space="preserve">
|
||||||
<value>Trong Safari, tìm bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn).</value>
|
<value>Trong Safari, tìm Bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn).</value>
|
||||||
<comment>Safari is the name of apple's web browser</comment>
|
<comment>Safari is the name of apple's web browser</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionInstantAccess" xml:space="preserve">
|
<data name="ExtensionInstantAccess" xml:space="preserve">
|
||||||
@@ -498,13 +498,13 @@
|
|||||||
<value>Thông tin đăng nhập của bạn giờ đây có thể dễ dàng truy cập từ Safari, Chrome và các ứng dụng được hỗ trợ khác.</value>
|
<value>Thông tin đăng nhập của bạn giờ đây có thể dễ dàng truy cập từ Safari, Chrome và các ứng dụng được hỗ trợ khác.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionSetup2" xml:space="preserve">
|
<data name="ExtensionSetup2" xml:space="preserve">
|
||||||
<value>Trong Safari và Chrome, tìm bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn chia sẻ).</value>
|
<value>Trong Safari và Chrome, tìm Bitwarden bằng cách sử dụng biểu tượng chia sẻ (gợi ý: di chuyển sang phải ở cuối cùng của trình đơn chia sẻ).</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTapIcon" xml:space="preserve">
|
<data name="ExtensionTapIcon" xml:space="preserve">
|
||||||
<value>Chạm vào biểu tượng bitwarden trong trình đơn để khởi chạy phần mở rộng.</value>
|
<value>Chạm vào biểu tượng Bitwarden trong trình đơn để khởi chạy phần mở rộng.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtensionTurnOn" xml:space="preserve">
|
<data name="ExtensionTurnOn" xml:space="preserve">
|
||||||
<value>Để bật bitwarden trong Safari và các ứng dụng khác, nhấn vào biểu tượng "thêm" ở hàng dưới cùng của trình đơn.</value>
|
<value>Để bật Bitwarden trong Safari và các ứng dụng khác, nhấn vào biểu tượng "thêm" ở hàng dưới cùng của trình đơn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Favorite" xml:space="preserve">
|
<data name="Favorite" xml:space="preserve">
|
||||||
<value>Yêu thích</value>
|
<value>Yêu thích</value>
|
||||||
@@ -516,16 +516,16 @@
|
|||||||
<value>Tạo mật khẩu</value>
|
<value>Tạo mật khẩu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GetPasswordHint" xml:space="preserve">
|
<data name="GetPasswordHint" xml:space="preserve">
|
||||||
<value>Nhận gợi ý mật khẩu chính của bạn</value>
|
<value>Nhận gợi ý mật khẩu Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItems" xml:space="preserve">
|
<data name="ImportItems" xml:space="preserve">
|
||||||
<value>Nhập mục</value>
|
<value>Nhập mục</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsConfirmation" xml:space="preserve">
|
<data name="ImportItemsConfirmation" xml:space="preserve">
|
||||||
<value>Bạn có thể nhập các trường đăng nhập hàng loạt trên kho bitwarden nền web. Bạn có muốn truy cập trang web bây giờ?</value>
|
<value>Bạn có thể nhập mật khẩu hàng loạt trên trang chủ Bitwarden. Bạn có muốn truy cập bitwarden.com bây giờ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImportItemsDescription" xml:space="preserve">
|
<data name="ImportItemsDescription" xml:space="preserve">
|
||||||
<value>Dễ dàng nhập toàn bộ mục đăng nhập của bạn từ các ứng dụng quản lý mật khẩu khác.</value>
|
<value>Dễ dàng nhập toàn bộ mật khẩu của bạn từ các ứng dụng quản lý mật khẩu khác.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LastSync" xml:space="preserve">
|
<data name="LastSync" xml:space="preserve">
|
||||||
<value>Lần đồng bộ gần nhất:</value>
|
<value>Lần đồng bộ gần nhất:</value>
|
||||||
@@ -552,7 +552,7 @@
|
|||||||
<value>Tức thì</value>
|
<value>Tức thì</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LockOptions" xml:space="preserve">
|
<data name="LockOptions" xml:space="preserve">
|
||||||
<value>Tùy chọn Khóa</value>
|
<value>Khóa lại sau</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoggingIn" xml:space="preserve">
|
<data name="LoggingIn" xml:space="preserve">
|
||||||
<value>Đang đăng nhập...</value>
|
<value>Đang đăng nhập...</value>
|
||||||
@@ -568,19 +568,19 @@
|
|||||||
<value>Mật khẩu xác nhận không trùng khớp.</value>
|
<value>Mật khẩu xác nhận không trùng khớp.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPasswordDescription" xml:space="preserve">
|
<data name="MasterPasswordDescription" xml:space="preserve">
|
||||||
<value>Mật khẩu chính là mật khẩu bạn sử dụng để truy cập kho mật khẩu của bạn. Nó rất quan trọng nên bạn không được quên mật khẩu chính của mình. Không có cách nào để khôi phục lại mật khẩu chính nếu bạn quên nó.</value>
|
<value>Mật khẩu chủ là mật khẩu bạn sử dụng để truy cập kho mật khẩu của bạn. Nó rất quan trọng nên bạn không được quên mật khẩu chủ của mình. Không thể khôi phục lại mật khẩu chủ nếu bạn quên nó.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPasswordHint" xml:space="preserve">
|
<data name="MasterPasswordHint" xml:space="preserve">
|
||||||
<value>Gợi ý mật khẩu chính (tùy chọn)</value>
|
<value>Gợi ý mật khẩu chủ (tùy chọn)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPasswordHintDescription" xml:space="preserve">
|
<data name="MasterPasswordHintDescription" xml:space="preserve">
|
||||||
<value>Một gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chính của bạn nếu bạn quên nó.</value>
|
<value>Một gợi ý mật khẩu có thể giúp bạn nhớ lại mật khẩu chủ của bạn nếu bạn quên nó.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MasterPasswordLengthValMessage" xml:space="preserve">
|
<data name="MasterPasswordLengthValMessage" xml:space="preserve">
|
||||||
<value>Mật khẩu chính phải có ít nhất 8 kí tự.</value>
|
<value>Mật khẩu chủ phải có ít nhất 8 kí tự.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinNumbers" xml:space="preserve">
|
<data name="MinNumbers" xml:space="preserve">
|
||||||
<value>Số kí tự tối thiểu</value>
|
<value>Số chữ số tối thiểu</value>
|
||||||
<comment>Minimum numeric characters for password generator settings</comment>
|
<comment>Minimum numeric characters for password generator settings</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinSpecial" xml:space="preserve">
|
<data name="MinSpecial" xml:space="preserve">
|
||||||
@@ -591,7 +591,7 @@
|
|||||||
<value>Cài đặt Khác</value>
|
<value>Cài đặt Khác</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MustLogInMainApp" xml:space="preserve">
|
<data name="MustLogInMainApp" xml:space="preserve">
|
||||||
<value>Bạn phải đăng nhập vào ứng dụng bitwarden trước khi sử dụng tiện ích mở rộng.</value>
|
<value>Bạn phải đăng nhập vào ứng dụng Bitwarden trước khi sử dụng phần mở rộng.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Never" xml:space="preserve">
|
<data name="Never" xml:space="preserve">
|
||||||
<value>Không bao giờ</value>
|
<value>Không bao giờ</value>
|
||||||
@@ -616,7 +616,7 @@
|
|||||||
<comment>Confirmation, like "Ok, I understand it"</comment>
|
<comment>Confirmation, like "Ok, I understand it"</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptionDefaults" xml:space="preserve">
|
<data name="OptionDefaults" xml:space="preserve">
|
||||||
<value>Các tùy chọn mặc định được thiết lập từ công cụ tạo mật khẩu của ứng dụng bitwarden.</value>
|
<value>Các tùy chọn mặc định được thiết lập trong trình tạo mật khẩu của ứng dụng Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Options" xml:space="preserve">
|
<data name="Options" xml:space="preserve">
|
||||||
<value>Tùy chọn</value>
|
<value>Tùy chọn</value>
|
||||||
@@ -634,13 +634,13 @@
|
|||||||
<value>Gợi ý mật khẩu</value>
|
<value>Gợi ý mật khẩu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordHintAlert" xml:space="preserve">
|
<data name="PasswordHintAlert" xml:space="preserve">
|
||||||
<value>Chúng tôi đã gửi cho bạn email có chứa gợi ý mật khẩu chính của bạn.</value>
|
<value>Chúng tôi đã gửi cho bạn email có chứa gợi ý mật khẩu chủ của bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PasswordOverrideAlert" xml:space="preserve">
|
<data name="PasswordOverrideAlert" xml:space="preserve">
|
||||||
<value>Bạn có chắc chắn muốn ghi đè mật khẩu hiện tại không?</value>
|
<value>Bạn có chắc chắn muốn ghi đè mật khẩu hiện tại không?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PushNotificationAlert" xml:space="preserve">
|
<data name="PushNotificationAlert" xml:space="preserve">
|
||||||
<value>bitwarden giữ kho mật khẩu của bạn được đồng bộ tự động hóa bằng cách sử dụng thông báo đẩy. Để mang lại trải nghiệm tốt nhất, vui lòng chọn "Đồng ý" trên bảng thông báo sau khi được yêu cầu bật thông báo đẩy.</value>
|
<value>Bitwarden giữ kho mật khẩu của bạn luôn được đồng bộ tự động hóa bằng cách sử dụng thông báo đẩy. Để mang lại trải nghiệm tốt nhất, hãy chọn "Đồng ý" trên bảng thông báo sau khi được yêu cầu bật thông báo đẩy.</value>
|
||||||
<comment>Push notifications for apple products</comment>
|
<comment>Push notifications for apple products</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheApp" xml:space="preserve">
|
<data name="RateTheApp" xml:space="preserve">
|
||||||
@@ -650,16 +650,16 @@
|
|||||||
<value>Xin hãy nhìn nhận và đánh giá tốt cho chúng tôi!</value>
|
<value>Xin hãy nhìn nhận và đánh giá tốt cho chúng tôi!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
<data name="RateTheAppDescriptionAppStore" xml:space="preserve">
|
||||||
<value>Xếp hạng App Store sẽ được đặt lại với mỗi bản cập nhật của bitwarden. Xin hãy nhìn nhận và cho chúng tôi với một đánh giá tốt!</value>
|
<value>Xếp hạng trên App Store sẽ được đặt lại sau mỗi bản cập nhật của Bitwarden. Bạn có thể cảm ơn chúng tôi bằng cách đánh giá 5 sao cho Bitwarden!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RegeneratePassword" xml:space="preserve">
|
<data name="RegeneratePassword" xml:space="preserve">
|
||||||
<value>Tạo lại mật khẩu</value>
|
<value>Tạo lại mật khẩu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RetypeMasterPassword" xml:space="preserve">
|
<data name="RetypeMasterPassword" xml:space="preserve">
|
||||||
<value>Nhập lại mật khẩu chính</value>
|
<value>Nhập lại mật khẩu chủ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SearchVault" xml:space="preserve">
|
<data name="SearchVault" xml:space="preserve">
|
||||||
<value>Tìm kiếm trong Kho</value>
|
<value>Tìm kiếm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Security" xml:space="preserve">
|
<data name="Security" xml:space="preserve">
|
||||||
<value>Bảo mật</value>
|
<value>Bảo mật</value>
|
||||||
@@ -677,7 +677,7 @@
|
|||||||
<value>Nhập mã PIN 4 chữ số để mở khóa ứng dụng.</value>
|
<value>Nhập mã PIN 4 chữ số để mở khóa ứng dụng.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ItemInformation" xml:space="preserve">
|
<data name="ItemInformation" xml:space="preserve">
|
||||||
<value>Mục thông tin</value>
|
<value>Thông tin mục</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ItemUpdated" xml:space="preserve">
|
<data name="ItemUpdated" xml:space="preserve">
|
||||||
<value>Đã cập nhật mục.</value>
|
<value>Đã cập nhật mục.</value>
|
||||||
@@ -697,7 +697,7 @@
|
|||||||
<value>Đồng bộ thất bại.</value>
|
<value>Đồng bộ thất bại.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SyncVaultNow" xml:space="preserve">
|
<data name="SyncVaultNow" xml:space="preserve">
|
||||||
<value>Đồng bộ Kho mật khẩu ngay</value>
|
<value>Đồng bộ kho mật khẩu ngay</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TouchID" xml:space="preserve">
|
<data name="TouchID" xml:space="preserve">
|
||||||
<value>Touch ID</value>
|
<value>Touch ID</value>
|
||||||
@@ -707,7 +707,7 @@
|
|||||||
<value>Xác thực hai lớp</value>
|
<value>Xác thực hai lớp</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
<data name="TwoStepLoginConfirmation" xml:space="preserve">
|
||||||
<value>Xác thực hai lớp giúp cho tài khoản của bạn an toàn hơn bằng cách yêu cầu bạn xác minh thông tin đăng nhập của bạn bằng một thiết bị khác như khóa bảo mật, ứng dụng xác thực, SMS, cuộc gọi điện thoại hoặc email. Bạn có thể bật xác thực hai lớp trong kho bitwarden nền web. Bạn có muốn ghé thăm trang web bây giờ?</value>
|
<value>Xác thực hai lớp giúp cho tài khoản của bạn an toàn hơn bằng cách yêu cầu bạn xác minh đăng nhập của bạn bằng khóa bảo mật, ứng dụng xác thực, tin nhắn, cuộc gọi điện thoại hoặc email. Bạn có thể bật xác thực hai lớp trong trang web Bitwarden. Bạn có muốn ghé thăm bitwarden.com bây giờ?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UnlockWith" xml:space="preserve">
|
<data name="UnlockWith" xml:space="preserve">
|
||||||
<value>Mở khóa với {0}</value>
|
<value>Mở khóa với {0}</value>
|
||||||
@@ -726,10 +726,10 @@
|
|||||||
<value>Xem mục</value>
|
<value>Xem mục</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>Hầm bitwarden trên Web</value>
|
<value>Trang web Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>Quản lý các mục đặng nhập của bạn từ mọi trình duyệt web với hầm bitwarden nền web.</value>
|
<value>Quản lý mật khẩu của bạn từ mọi nơi.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lost2FAApp" xml:space="preserve">
|
<data name="Lost2FAApp" xml:space="preserve">
|
||||||
<value>Mất ứng dụng xác thực?</value>
|
<value>Mất ứng dụng xác thực?</value>
|
||||||
@@ -756,16 +756,16 @@
|
|||||||
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
<comment>This is used for the autofill service. ex. "There are no items in your vault for twitter.com".</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotification" xml:space="preserve">
|
||||||
<value>Khi bạn thấy thông báo tự động điền của bitwarden, bạn có thể nhấn vào nó để khởi chạy dịch vụ tự động điền.</value>
|
<value>Khi bạn thấy thông báo tự động điền của Bitwarden, bạn có thể nhấn vào nó để chạy dịch vụ tự động điền.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContent" xml:space="preserve">
|
||||||
<value>Chạm vào thông báo này để tự động điền thông tin đăng nhập từ kho của bạn.</value>
|
<value>Chạm vào thông báo này để tự động điền thông tin đăng nhập từ kho của bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAccessibilitySettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAccessibilitySettings" xml:space="preserve">
|
||||||
<value>Cài đặt trợ năng</value>
|
<value>Mở cài đặt trợ năng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. Trên màn hình Cài đặt Trợ năng, chạm vào 'bitwarden' dưới phần 'Các dịch vụ đã tải xuống'.</value>
|
<value>1. Trên màn hình Cài đặt Trợ năng, chọn "Bitwarden" trong phần 'Các dịch vụ đã tải xuống'.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep2" xml:space="preserve">
|
||||||
<value>2. Gạt công tắc và nhấn OK để chấp nhận.</value>
|
<value>2. Gạt công tắc và nhấn OK để chấp nhận.</value>
|
||||||
@@ -783,7 +783,7 @@
|
|||||||
<value>Beta</value>
|
<value>Beta</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
<data name="BitwardenAutofillServiceAlert" xml:space="preserve">
|
||||||
<value>Cách dễ nhất để thêm đăng nhập mới vào hầm của bạn là từ dịch vụ Tự động điền của bitwarden. Tìm hiểu thêm về cách sử dụng dịch vụ Tự động điền của bitwarden bằng cách điều hướng đến màn hình 'Công cụ'.</value>
|
<value>Cách dễ nhất để thêm một đăng nhập mới vào kho của bạn là bằng dịch vụ Tự động điền của Bitwarden. Tìm hiểu thêm về cách sử dụng dịch vụ Tự động điền của Bitwarden trong trang 'Công cụ'.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Autofill" xml:space="preserve">
|
<data name="Autofill" xml:space="preserve">
|
||||||
<value>Tự động điền</value>
|
<value>Tự động điền</value>
|
||||||
@@ -792,7 +792,7 @@
|
|||||||
<value>Bạn có muốn tự động điền hoặc xem đăng nhập này?</value>
|
<value>Bạn có muốn tự động điền hoặc xem đăng nhập này?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
|
<data name="BitwardenAutofillServiceMatchConfirm" xml:space="preserve">
|
||||||
<value>Bạn có chắc chắn muốn tự động điền vào thông tin đăng nhập này? Nó không hoàn toàn khớp cho '{0}'.</value>
|
<value>Bạn có chắc chắn muốn tự động điền vào mục này? Nó không hoàn toàn khớp với "{0}".</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchingItems" xml:space="preserve">
|
<data name="MatchingItems" xml:space="preserve">
|
||||||
<value>Khớp mục</value>
|
<value>Khớp mục</value>
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>Khóa bảo mật YubiKey NEO</value>
|
<value>Khóa bảo mật YubiKey NEO</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>Thêm tệp đính kèm mới</value>
|
<value>Thêm tệp đính kèm mới</value>
|
||||||
@@ -1009,13 +1009,13 @@
|
|||||||
<value>Môi trường độc lập</value>
|
<value>Môi trường độc lập</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
<data name="SelfHostedEnvironmentFooter" xml:space="preserve">
|
||||||
<value>Chỉ định liên kết cơ bản của cài đặt bitwarden tại chỗ của bạn.</value>
|
<value>Chỉ định URL cơ sở on-premise của bạn để cài đặt máy chủ Bitwarden.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ServerUrl" xml:space="preserve">
|
<data name="ServerUrl" xml:space="preserve">
|
||||||
<value>Địa chỉ máy chủ</value>
|
<value>Địa chỉ máy chủ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultUrl" xml:space="preserve">
|
<data name="WebVaultUrl" xml:space="preserve">
|
||||||
<value>Địa chỉ máy chủ kho web</value>
|
<value>URL máy chủ lưu trữ web</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
||||||
<value>Chạm vào thông báo này để xem thông tin đăng nhập từ kho của bạn.</value>
|
<value>Chạm vào thông báo này để xem thông tin đăng nhập từ kho của bạn.</value>
|
||||||
@@ -1048,7 +1048,7 @@
|
|||||||
<value>Đăng nhập</value>
|
<value>Đăng nhập</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TypeSecureNote" xml:space="preserve">
|
<data name="TypeSecureNote" xml:space="preserve">
|
||||||
<value>Lưu ý an toàn</value>
|
<value>Ghi chú bảo mật</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Address1" xml:space="preserve">
|
<data name="Address1" xml:space="preserve">
|
||||||
<value>Địa chỉ 1</value>
|
<value>Địa chỉ 1</value>
|
||||||
@@ -1168,13 +1168,13 @@
|
|||||||
<value>Vô hiệu hoá biểu tượng trang web</value>
|
<value>Vô hiệu hoá biểu tượng trang web</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
|
<data name="DisableWebsiteIconsDescription" xml:space="preserve">
|
||||||
<value>Biểu tượng trang web cung cấp các biểu tượng nhận dạng trang web bên cạnh mỗi mục đăng nhập trong kho mật khẩu của bạn.</value>
|
<value>Biểu tượng trang web giúp bạn dễ dàng nhận dạng trang web trong kho mật khẩu của bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="IconsUrl" xml:space="preserve">
|
<data name="IconsUrl" xml:space="preserve">
|
||||||
<value>Biểu tượng địa chỉ máy chủ</value>
|
<value>Biểu tượng địa chỉ máy chủ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillWithBitwarden" xml:space="preserve">
|
<data name="AutofillWithBitwarden" xml:space="preserve">
|
||||||
<value>Tự động điền với bitwarden</value>
|
<value>Tự động điền với Bitwarden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VaultIsLocked" xml:space="preserve">
|
<data name="VaultIsLocked" xml:space="preserve">
|
||||||
<value>Kho đã khóa</value>
|
<value>Kho đã khóa</value>
|
||||||
@@ -1192,13 +1192,13 @@
|
|||||||
<value>Không có mục nào trong thư mục này.</value>
|
<value>Không có mục nào trong thư mục này.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityService" xml:space="preserve">
|
<data name="AutofillAccessibilityService" xml:space="preserve">
|
||||||
<value>Dịch vụ Trợ năng Tự động điền</value>
|
<value>Tự động điền bằng trợ năng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillServiceDescription" xml:space="preserve">
|
<data name="AutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Dịch vụ tự động điền của bitwarden sử dụng Bộ khung Tự động điền của Android để hỗ trợ điền thông tin đăng nhập, thẻ tín dụng và thông tin danh tính vào các ứng dụng khác trên thiết bị của bạn.</value>
|
<value>Dịch vụ tự động điền của Bitwarden sử dụng Bộ khung Tự động điền của Android để hỗ trợ điền thông tin đăng nhập, thẻ tín dụng và thông tin danh tính vào các ứng dụng khác trên thiết bị của bạn.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
<data name="BitwardenAutofillServiceDescription" xml:space="preserve">
|
||||||
<value>Sử dụng dịch vụ tự động điền của bitwarden để điền thông tin đăng nhập, thẻ tín dụng và thông tin danh tính vào các ứng dụng khác.</value>
|
<value>Sử dụng dịch vụ tự động điền của Bitwarden để điền thông tin đăng nhập, thẻ tín dụng và thông tin danh tính vào các ứng dụng khác.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAutofillSettings" xml:space="preserve">
|
||||||
<value>Mở cài đặt Tự động điền</value>
|
<value>Mở cài đặt Tự động điền</value>
|
||||||
@@ -1277,10 +1277,40 @@
|
|||||||
<value>Bắt đầu với</value>
|
<value>Bắt đầu với</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="URIMatchDetection" xml:space="preserve">
|
<data name="URIMatchDetection" xml:space="preserve">
|
||||||
<value>Độ phù hợp với URL</value>
|
<value>Độ khớp với URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatchDetection" xml:space="preserve">
|
<data name="MatchDetection" xml:space="preserve">
|
||||||
<value>Độ phù hợp</value>
|
<value>Độ khớp</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>Được, lưu lại</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>Tự động điền và lưu</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>Tổ chức</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>Đặt Yubikey của bạn ở phần đầu thiết bị.</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>Thử lại</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>Để tiếp tục, hãy đặt YubiKey NEO của bạn dựa vào mặt lưng của thiết bị.</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>Bạn có thể cần dùng dịch vụ trợ năng vì một số ứng dụng không hỗ trợ dịch vụ tự động điền của Android.</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>Password Updated</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>Updated</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey 安全密钥</value>
|
<value>YubiKey 安全密钥</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>添加新附件</value>
|
<value>添加新附件</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>匹配检测</value>
|
<value>匹配检测</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>是的,保存</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>自动填充并保存</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>组织</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>把你的 Yubikey 靠近设备的顶部。</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>再试一次</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>要继续, 请将您的 YubiKey NEO 设备放在设备背面。</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>当应用程序不支持标准的自动填充服务时, 辅助功能服务可能会很有用。</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>密码更新于</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>更新于</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -330,7 +330,7 @@
|
|||||||
<comment>Confirmation message after successfully deleting a login.</comment>
|
<comment>Confirmation message after successfully deleting a login.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Submit" xml:space="preserve">
|
<data name="Submit" xml:space="preserve">
|
||||||
<value>提交</value>
|
<value>送出</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Sync" xml:space="preserve">
|
<data name="Sync" xml:space="preserve">
|
||||||
<value>同步</value>
|
<value>同步</value>
|
||||||
@@ -403,7 +403,7 @@
|
|||||||
<value>App 小工具</value>
|
<value>App 小工具</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
<data name="AutofillAccessibilityDescription" xml:space="preserve">
|
||||||
<value>使用 Bitwarden 無障礙服務在應用程式和網站中自動填入您的登入資料。</value>
|
<value>使用 Bitwarden 協助工具服務在應用程式和網站中自動填入您的登入資料。</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutofillService" xml:space="preserve">
|
<data name="AutofillService" xml:space="preserve">
|
||||||
<value>自動填入</value>
|
<value>自動填入</value>
|
||||||
@@ -683,7 +683,7 @@
|
|||||||
<value>項目已更新。</value>
|
<value>項目已更新。</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Submitting" xml:space="preserve">
|
<data name="Submitting" xml:space="preserve">
|
||||||
<value>正在提交...</value>
|
<value>正在送出...</value>
|
||||||
<comment>Message shown when interacting with the server</comment>
|
<comment>Message shown when interacting with the server</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="Syncing" xml:space="preserve">
|
<data name="Syncing" xml:space="preserve">
|
||||||
@@ -726,7 +726,7 @@
|
|||||||
<value>檢視項目</value>
|
<value>檢視項目</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVault" xml:space="preserve">
|
<data name="WebVault" xml:space="preserve">
|
||||||
<value>Bitwarden 網路版密碼庫</value>
|
<value>Bitwarden 網頁版密碼庫</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultDescription" xml:space="preserve">
|
<data name="WebVaultDescription" xml:space="preserve">
|
||||||
<value>使用 Bitwarden 網頁版,從瀏覽器管理您的登入資料。</value>
|
<value>使用 Bitwarden 網頁版,從瀏覽器管理您的登入資料。</value>
|
||||||
@@ -762,7 +762,7 @@
|
|||||||
<value>按此自動填入來自密碼庫的登入資料。</value>
|
<value>按此自動填入來自密碼庫的登入資料。</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceOpenAccessibilitySettings" xml:space="preserve">
|
<data name="BitwardenAutofillServiceOpenAccessibilitySettings" xml:space="preserve">
|
||||||
<value>開啟無障礙設定</value>
|
<value>開啟協助工具設定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
<data name="BitwardenAutofillServiceStep1" xml:space="preserve">
|
||||||
<value>1. 在 Android 的協助工具設定中,按一下服務中的 "Bitwarden" 。</value>
|
<value>1. 在 Android 的協助工具設定中,按一下服務中的 "Bitwarden" 。</value>
|
||||||
@@ -846,7 +846,7 @@
|
|||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
<data name="EnterVerificationCodeEmail" xml:space="preserve">
|
||||||
<value>輸入已傳送至電子郵件地址 {0} 的 6 位數驗證碼</value>
|
<value>輸入已傳送至電子郵件地址 {0} 的 6 位數驗證碼。</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="LoginUnavailable" xml:space="preserve">
|
<data name="LoginUnavailable" xml:space="preserve">
|
||||||
@@ -857,7 +857,7 @@
|
|||||||
<value>此帳戶已啟用兩步驟登入,但是本設備不支援已設定的兩步驟登入方式。請使用已支援的設備,及/或新增可以更好地跨設備的兩步驟登入方法(例如驗證器應用程式)。</value>
|
<value>此帳戶已啟用兩步驟登入,但是本設備不支援已設定的兩步驟登入方式。請使用已支援的設備,及/或新增可以更好地跨設備的兩步驟登入方法(例如驗證器應用程式)。</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RecoveryCodeTitle" xml:space="preserve">
|
<data name="RecoveryCodeTitle" xml:space="preserve">
|
||||||
<value>復原代碼</value>
|
<value>復原碼</value>
|
||||||
<comment>For 2FA</comment>
|
<comment>For 2FA</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="RememberMe" xml:space="preserve">
|
<data name="RememberMe" xml:space="preserve">
|
||||||
@@ -887,7 +887,7 @@
|
|||||||
</data>
|
</data>
|
||||||
<data name="YubiKeyTitle" xml:space="preserve">
|
<data name="YubiKeyTitle" xml:space="preserve">
|
||||||
<value>YubiKey 安全鑰匙</value>
|
<value>YubiKey 安全鑰匙</value>
|
||||||
<comment>"YubiKey NEO" is the product name and should not be translated.</comment>
|
<comment>"YubiKey" is the product name and should not be translated.</comment>
|
||||||
</data>
|
</data>
|
||||||
<data name="AddNewAttachment" xml:space="preserve">
|
<data name="AddNewAttachment" xml:space="preserve">
|
||||||
<value>新增附件</value>
|
<value>新增附件</value>
|
||||||
@@ -1015,7 +1015,7 @@
|
|||||||
<value>伺服器 URL</value>
|
<value>伺服器 URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebVaultUrl" xml:space="preserve">
|
<data name="WebVaultUrl" xml:space="preserve">
|
||||||
<value>網路版密碼庫伺服器 URL</value>
|
<value>網頁版密碼庫伺服器 URL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
<data name="BitwardenAutofillServiceNotificationContentOld" xml:space="preserve">
|
||||||
<value>按此自動填入來自密碼庫的登入資料。</value>
|
<value>按此自動填入來自密碼庫的登入資料。</value>
|
||||||
@@ -1283,4 +1283,34 @@
|
|||||||
<value>相符偵測</value>
|
<value>相符偵測</value>
|
||||||
<comment>URI match detection for auto-fill.</comment>
|
<comment>URI match detection for auto-fill.</comment>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="YesAndSave" xml:space="preserve">
|
||||||
|
<value>是,我要儲存</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutofillAndSave" xml:space="preserve">
|
||||||
|
<value>自動填入並儲存</value>
|
||||||
|
</data>
|
||||||
|
<data name="Organization" xml:space="preserve">
|
||||||
|
<value>組織</value>
|
||||||
|
<comment>An entity of multiple related people (ex. a team or business organization).</comment>
|
||||||
|
</data>
|
||||||
|
<data name="HoldYubikeyNearTop" xml:space="preserve">
|
||||||
|
<value>將您的 Yubikey 靠近裝置的頂端。</value>
|
||||||
|
</data>
|
||||||
|
<data name="TryAgain" xml:space="preserve">
|
||||||
|
<value>再試一次</value>
|
||||||
|
</data>
|
||||||
|
<data name="YubiKeyInstructionIos" xml:space="preserve">
|
||||||
|
<value>要繼續的話,請將您的 YubiKey NEO 靠在裝置的背面。</value>
|
||||||
|
</data>
|
||||||
|
<data name="BitwardenAutofillAccessibilityServiceDescription2" xml:space="preserve">
|
||||||
|
<value>當應用程式不支援標準的自動填入服務時, 協助工具服務或許能夠幫助使用。</value>
|
||||||
|
</data>
|
||||||
|
<data name="DatePasswordUpdated" xml:space="preserve">
|
||||||
|
<value>密碼已更新</value>
|
||||||
|
<comment>ex. Date this password was updated</comment>
|
||||||
|
</data>
|
||||||
|
<data name="DateUpdated" xml:space="preserve">
|
||||||
|
<value>已更新</value>
|
||||||
|
<comment>ex. Date this item was updated</comment>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
@@ -196,5 +196,17 @@ namespace Bit.App.Services
|
|||||||
_settings.AddOrUpdateValue(Constants.IconsUrl, value);
|
_settings.AddOrUpdateValue(Constants.IconsUrl, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool ClearCiphersCache
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _settings.GetValueOrDefault(Constants.ClearCiphersCache, false);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_settings.AddOrUpdateValue(Constants.ClearCiphersCache, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ namespace Bit.App.Services
|
|||||||
private readonly ICipherApiRepository _cipherApiRepository;
|
private readonly ICipherApiRepository _cipherApiRepository;
|
||||||
private readonly ISettingsService _settingsService;
|
private readonly ISettingsService _settingsService;
|
||||||
private readonly ICryptoService _cryptoService;
|
private readonly ICryptoService _cryptoService;
|
||||||
|
private readonly IAppSettingsService _appSettingsService;
|
||||||
|
|
||||||
public CipherService(
|
public CipherService(
|
||||||
ICipherRepository cipherRepository,
|
ICipherRepository cipherRepository,
|
||||||
@@ -33,7 +34,8 @@ namespace Bit.App.Services
|
|||||||
IAuthService authService,
|
IAuthService authService,
|
||||||
ICipherApiRepository cipherApiRepository,
|
ICipherApiRepository cipherApiRepository,
|
||||||
ISettingsService settingsService,
|
ISettingsService settingsService,
|
||||||
ICryptoService cryptoService)
|
ICryptoService cryptoService,
|
||||||
|
IAppSettingsService appSettingsService)
|
||||||
{
|
{
|
||||||
_cipherRepository = cipherRepository;
|
_cipherRepository = cipherRepository;
|
||||||
_cipherCollectionRepository = cipherCollectionRepository;
|
_cipherCollectionRepository = cipherCollectionRepository;
|
||||||
@@ -42,6 +44,7 @@ namespace Bit.App.Services
|
|||||||
_cipherApiRepository = cipherApiRepository;
|
_cipherApiRepository = cipherApiRepository;
|
||||||
_settingsService = settingsService;
|
_settingsService = settingsService;
|
||||||
_cryptoService = cryptoService;
|
_cryptoService = cryptoService;
|
||||||
|
_appSettingsService = appSettingsService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<Cipher> GetByIdAsync(string id)
|
public async Task<Cipher> GetByIdAsync(string id)
|
||||||
@@ -59,6 +62,12 @@ namespace Bit.App.Services
|
|||||||
|
|
||||||
public async Task<IEnumerable<Cipher>> GetAllAsync()
|
public async Task<IEnumerable<Cipher>> GetAllAsync()
|
||||||
{
|
{
|
||||||
|
if(_appSettingsService.ClearCiphersCache)
|
||||||
|
{
|
||||||
|
CachedCiphers = null;
|
||||||
|
_appSettingsService.ClearCiphersCache = false;
|
||||||
|
}
|
||||||
|
|
||||||
if(CachedCiphers != null)
|
if(CachedCiphers != null)
|
||||||
{
|
{
|
||||||
return CachedCiphers;
|
return CachedCiphers;
|
||||||
@@ -261,6 +270,7 @@ namespace Bit.App.Services
|
|||||||
{
|
{
|
||||||
await _cipherRepository.UpsertAsync(cipher);
|
await _cipherRepository.UpsertAsync(cipher);
|
||||||
CachedCiphers = null;
|
CachedCiphers = null;
|
||||||
|
_appSettingsService.ClearCiphersCache = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<ApiResult> DeleteAsync(string id)
|
public async Task<ApiResult> DeleteAsync(string id)
|
||||||
@@ -283,6 +293,7 @@ namespace Bit.App.Services
|
|||||||
{
|
{
|
||||||
await _cipherRepository.DeleteAsync(id);
|
await _cipherRepository.DeleteAsync(id);
|
||||||
CachedCiphers = null;
|
CachedCiphers = null;
|
||||||
|
_appSettingsService.ClearCiphersCache = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<byte[]> DownloadAndDecryptAttachmentAsync(string url, string orgId = null)
|
public async Task<byte[]> DownloadAndDecryptAttachmentAsync(string url, string orgId = null)
|
||||||
@@ -348,6 +359,7 @@ namespace Bit.App.Services
|
|||||||
await _attachmentRepository.UpsertAsync(attachment);
|
await _attachmentRepository.UpsertAsync(attachment);
|
||||||
}
|
}
|
||||||
CachedCiphers = null;
|
CachedCiphers = null;
|
||||||
|
_appSettingsService.ClearCiphersCache = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<ApiResult> DeleteAttachmentAsync(Cipher cipher, string attachmentId)
|
public async Task<ApiResult> DeleteAttachmentAsync(Cipher cipher, string attachmentId)
|
||||||
@@ -370,6 +382,7 @@ namespace Bit.App.Services
|
|||||||
{
|
{
|
||||||
await _attachmentRepository.DeleteAsync(attachmentId);
|
await _attachmentRepository.DeleteAsync(attachmentId);
|
||||||
CachedCiphers = null;
|
CachedCiphers = null;
|
||||||
|
_appSettingsService.ClearCiphersCache = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tuple<string, string[]> InfoFromMobileAppUri(string mobileAppUriString)
|
private Tuple<string, string[]> InfoFromMobileAppUri(string mobileAppUriString)
|
||||||
@@ -455,6 +468,10 @@ namespace Bit.App.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!loginUriString.Contains("://") && loginUriString.Contains("."))
|
||||||
|
{
|
||||||
|
loginUriString = "http://" + loginUriString;
|
||||||
|
}
|
||||||
string loginDomainName = null;
|
string loginDomainName = null;
|
||||||
if(Uri.TryCreate(loginUriString, UriKind.Absolute, out Uri loginUri)
|
if(Uri.TryCreate(loginUriString, UriKind.Absolute, out Uri loginUri)
|
||||||
&& DomainName.TryParseBaseDomain(loginUri.Host, out loginDomainName))
|
&& DomainName.TryParseBaseDomain(loginUri.Host, out loginDomainName))
|
||||||
|
|||||||
@@ -82,8 +82,25 @@ namespace Bit.App.Services
|
|||||||
var encKeyCs = new CipherString(encKey);
|
var encKeyCs = new CipherString(encKey);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var decBytes = DecryptToBytes(encKeyCs, Key);
|
byte[] decEncKey = null;
|
||||||
_encKey = new SymmetricCryptoKey(decBytes);
|
if(encKeyCs.EncryptionType == EncryptionType.AesCbc256_B64)
|
||||||
|
{
|
||||||
|
decEncKey = DecryptToBytes(encKeyCs, Key);
|
||||||
|
}
|
||||||
|
else if(encKeyCs.EncryptionType == EncryptionType.AesCbc256_HmacSha256_B64)
|
||||||
|
{
|
||||||
|
var newKey = StretchKey(Key);
|
||||||
|
decEncKey = DecryptToBytes(encKeyCs, newKey);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("Unsupported EncKey type");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(decEncKey != null)
|
||||||
|
{
|
||||||
|
_encKey = new SymmetricCryptoKey(decEncKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -462,8 +479,19 @@ namespace Bit.App.Services
|
|||||||
|
|
||||||
public CipherString MakeEncKey(SymmetricCryptoKey key)
|
public CipherString MakeEncKey(SymmetricCryptoKey key)
|
||||||
{
|
{
|
||||||
var bytes = Crypto.RandomBytes(512 / 8);
|
var encKey = Crypto.RandomBytes(64);
|
||||||
return Encrypt(bytes, key);
|
// TODO: Remove hardcoded true/false when we're ready to enable key stretching
|
||||||
|
if(false && key.Key.Length == 32)
|
||||||
|
{
|
||||||
|
var newKey = StretchKey(key);
|
||||||
|
return Encrypt(encKey, newKey);
|
||||||
|
}
|
||||||
|
else if(true || key.Key.Length == 64)
|
||||||
|
{
|
||||||
|
return Encrypt(encKey, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Exception("Invalid key size.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Some users like to copy/paste passwords from external files. Sometimes this can lead to two different
|
// Some users like to copy/paste passwords from external files. Sometimes this can lead to two different
|
||||||
@@ -477,5 +505,15 @@ namespace Bit.App.Services
|
|||||||
.Replace("\n", " ") // New line => space
|
.Replace("\n", " ") // New line => space
|
||||||
.Replace(" ", " "); // No-break space (00A0) => space
|
.Replace(" ", " "); // No-break space (00A0) => space
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SymmetricCryptoKey StretchKey(SymmetricCryptoKey key)
|
||||||
|
{
|
||||||
|
var newKey = new byte[64];
|
||||||
|
var encKey = Crypto.HkdfExpand(key.Key, Encoding.UTF8.GetBytes("enc"), 32);
|
||||||
|
var macKey = Crypto.HkdfExpand(key.Key, Encoding.UTF8.GetBytes("mac"), 32);
|
||||||
|
encKey.CopyTo(newKey, 0);
|
||||||
|
macKey.CopyTo(newKey, 32);
|
||||||
|
return new SymmetricCryptoKey(newKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace Bit.App.Services
|
|||||||
_stopwatch?.Restart();
|
_stopwatch?.Restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<LockType> GetLockTypeAsync(bool forceLock)
|
public async Task<LockType> GetLockTypeAsync(bool forceLock, bool onlyIfAlreadyLocked = false)
|
||||||
{
|
{
|
||||||
// Only lock if they are logged in
|
// Only lock if they are logged in
|
||||||
if(!_authService.IsAuthenticated)
|
if(!_authService.IsAuthenticated)
|
||||||
@@ -59,6 +59,11 @@ namespace Bit.App.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(onlyIfAlreadyLocked && !_appSettings.Locked)
|
||||||
|
{
|
||||||
|
return LockType.None;
|
||||||
|
}
|
||||||
|
|
||||||
// What method are we using to unlock?
|
// What method are we using to unlock?
|
||||||
var fingerprintUnlock = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false);
|
var fingerprintUnlock = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false);
|
||||||
var pinUnlock = _settings.GetValueOrDefault(Constants.SettingPinUnlockOn, false);
|
var pinUnlock = _settings.GetValueOrDefault(Constants.SettingPinUnlockOn, false);
|
||||||
@@ -77,14 +82,14 @@ namespace Bit.App.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task CheckLockAsync(bool forceLock)
|
public async Task CheckLockAsync(bool forceLock, bool onlyIfAlreadyLocked = false)
|
||||||
{
|
{
|
||||||
if(TopPageIsLock())
|
if(TopPageIsLock())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var lockType = await GetLockTypeAsync(forceLock);
|
var lockType = await GetLockTypeAsync(forceLock, onlyIfAlreadyLocked);
|
||||||
if(lockType == LockType.None)
|
if(lockType == LockType.None)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -177,16 +177,17 @@ namespace Bit.App.Utilities
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ref: https://github.com/mirthas/totp-net/blob/master/TOTP/Totp.cs
|
// ref: https://github.com/mirthas/totp-net/blob/master/TOTP/Totp.cs
|
||||||
public static string Totp(string b32Key)
|
public static string Totp(string key)
|
||||||
{
|
{
|
||||||
var key = Base32.FromBase32(b32Key);
|
var otpParams = new OtpAuth(key);
|
||||||
if(key == null || key.Length == 0)
|
var b32Key = Base32.FromBase32(otpParams.Secret);
|
||||||
|
if(b32Key == null || b32Key.Length == 0)
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var now = Helpers.EpocUtcNow() / 1000;
|
var now = Helpers.EpocUtcNow() / 1000;
|
||||||
var sec = now / 30;
|
var sec = now / otpParams.Period;
|
||||||
|
|
||||||
var secBytes = BitConverter.GetBytes(sec);
|
var secBytes = BitConverter.GetBytes(sec);
|
||||||
if(BitConverter.IsLittleEndian)
|
if(BitConverter.IsLittleEndian)
|
||||||
@@ -194,17 +195,36 @@ namespace Bit.App.Utilities
|
|||||||
Array.Reverse(secBytes, 0, secBytes.Length);
|
Array.Reverse(secBytes, 0, secBytes.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
var algorithm = WinRTCrypto.MacAlgorithmProvider.OpenAlgorithm(MacAlgorithm.HmacSha1);
|
var algorithm = WinRTCrypto.MacAlgorithmProvider.OpenAlgorithm(otpParams.Algorithm);
|
||||||
var hasher = algorithm.CreateHash(key);
|
var hasher = algorithm.CreateHash(b32Key);
|
||||||
hasher.Append(secBytes);
|
hasher.Append(secBytes);
|
||||||
var hash = hasher.GetValueAndReset();
|
var hash = hasher.GetValueAndReset();
|
||||||
|
|
||||||
var offset = (hash[hash.Length - 1] & 0xf);
|
var offset = (hash[hash.Length - 1] & 0xf);
|
||||||
var i = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |
|
var binary = ((hash[offset] & 0x7f) << 24) | ((hash[offset + 1] & 0xff) << 16) |
|
||||||
((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);
|
((hash[offset + 2] & 0xff) << 8) | (hash[offset + 3] & 0xff);
|
||||||
var code = i % (int)Math.Pow(10, 6);
|
var otp = binary % (int)Math.Pow(10, otpParams.Digits);
|
||||||
|
|
||||||
return code.ToString().PadLeft(6, '0');
|
return otp.ToString().PadLeft(otpParams.Digits, '0');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ref: https://tools.ietf.org/html/rfc5869
|
||||||
|
public static byte[] HkdfExpand(byte[] prk, byte[] info, int size)
|
||||||
|
{
|
||||||
|
var hashLen = 32; // sha256
|
||||||
|
var okm = new byte[size];
|
||||||
|
var previousT = new byte[0];
|
||||||
|
var n = (int)Math.Ceiling((double)size / hashLen);
|
||||||
|
for(int i = 0; i < n; i++)
|
||||||
|
{
|
||||||
|
var t = new byte[previousT.Length + info.Length + 1];
|
||||||
|
previousT.CopyTo(t, 0);
|
||||||
|
info.CopyTo(t, previousT.Length);
|
||||||
|
t[t.Length - 1] = (byte)(i + 1);
|
||||||
|
previousT = ComputeMac(t, prk);
|
||||||
|
previousT.CopyTo(okm, i * hashLen);
|
||||||
|
}
|
||||||
|
return okm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,8 +47,6 @@ namespace Bit.App.Utilities
|
|||||||
return iOS;
|
return iOS;
|
||||||
case Device.Android:
|
case Device.Android:
|
||||||
return Android;
|
return Android;
|
||||||
case Device.WinPhone:
|
|
||||||
return WinPhone;
|
|
||||||
case Device.UWP:
|
case Device.UWP:
|
||||||
return Windows;
|
return Windows;
|
||||||
default:
|
default:
|
||||||
@@ -333,8 +331,9 @@ namespace Bit.App.Utilities
|
|||||||
return cell;
|
return cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ProcessFieldsSectionForSave(TableSection fieldsSection, Cipher cipher)
|
public static List<Tuple<string, string>> ProcessFieldsSectionForSave(TableSection fieldsSection, Cipher cipher)
|
||||||
{
|
{
|
||||||
|
var hiddenFieldValues = new List<Tuple<string, string>>();
|
||||||
if(fieldsSection != null && fieldsSection.Count > 0)
|
if(fieldsSection != null && fieldsSection.Count > 0)
|
||||||
{
|
{
|
||||||
var fields = new List<Field>();
|
var fields = new List<Field>();
|
||||||
@@ -350,6 +349,12 @@ namespace Bit.App.Utilities
|
|||||||
entryCell.Entry.Text.Encrypt(cipher.OrganizationId),
|
entryCell.Entry.Text.Encrypt(cipher.OrganizationId),
|
||||||
Type = entryCell.Entry.IsPassword ? FieldType.Hidden : FieldType.Text
|
Type = entryCell.Entry.IsPassword ? FieldType.Hidden : FieldType.Text
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if(entryCell.Entry.IsPassword && !string.IsNullOrWhiteSpace(entryCell.Label.Text))
|
||||||
|
{
|
||||||
|
hiddenFieldValues.Add(new Tuple<string, string>(entryCell.Label.Text,
|
||||||
|
entryCell.Entry.Text));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(cell is FormSwitchCell switchCell)
|
else if(cell is FormSwitchCell switchCell)
|
||||||
{
|
{
|
||||||
@@ -370,6 +375,7 @@ namespace Bit.App.Utilities
|
|||||||
{
|
{
|
||||||
cipher.Fields = null;
|
cipher.Fields = null;
|
||||||
}
|
}
|
||||||
|
return hiddenFieldValues;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static FormEntryCell MakeUriCell(string value, UriMatchType? match, TableSection urisSection, Page page)
|
public static FormEntryCell MakeUriCell(string value, UriMatchType? match, TableSection urisSection, Page page)
|
||||||
@@ -527,5 +533,30 @@ namespace Bit.App.Utilities
|
|||||||
page.DisplayAlert(AppResources.InternetConnectionRequiredTitle,
|
page.DisplayAlert(AppResources.InternetConnectionRequiredTitle,
|
||||||
AppResources.InternetConnectionRequiredMessage, AppResources.Ok);
|
AppResources.InternetConnectionRequiredMessage, AppResources.Ok);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Dictionary<string, string> GetQueryParams(string urlString)
|
||||||
|
{
|
||||||
|
var dict = new Dictionary<string, string>();
|
||||||
|
if(!Uri.TryCreate(urlString, UriKind.Absolute, out var uri) || string.IsNullOrWhiteSpace(uri.Query))
|
||||||
|
{
|
||||||
|
return dict;
|
||||||
|
}
|
||||||
|
|
||||||
|
var pairs = uri.Query.Substring(1).Split('&');
|
||||||
|
foreach(var pair in pairs)
|
||||||
|
{
|
||||||
|
var parts = pair.Split('=');
|
||||||
|
if(parts.Length < 1)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var key = System.Net.WebUtility.UrlDecode(parts[0]).ToLower();
|
||||||
|
if(!dict.ContainsKey(key))
|
||||||
|
{
|
||||||
|
dict.Add(key, parts[1] == null ? string.Empty : System.Net.WebUtility.UrlDecode(parts[1]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dict;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace Bit.iOS.Core.Services
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
public float Scale => (float)UIScreen.MainScreen.Scale;
|
public float Scale => (float)UIScreen.MainScreen.Scale;
|
||||||
public bool NfcEnabled => false;
|
public bool NfcEnabled => CoreNFC.NFCNdefReaderSession.ReadingAvailable;
|
||||||
public bool HasCamera => true;
|
public bool HasCamera => true;
|
||||||
public bool AutofillServiceSupported => false;
|
public bool AutofillServiceSupported => false;
|
||||||
public bool HasFaceIdSupport
|
public bool HasFaceIdSupport
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user