More localized resource strings applied. Implemented more options actions on valut list page. Added delete confirmation.

This commit is contained in:
Kyle Spearrin 2016-05-07 13:42:09 -04:00
parent 27e8474dae
commit aeb04d0178
12 changed files with 487 additions and 65 deletions

View File

@ -14,12 +14,16 @@ namespace Bit.App.Models.View
FolderId = folderId;
Name = site.Name?.Decrypt();
Username = site.Username?.Decrypt();
Password = site.Password?.Decrypt();
Uri = site.Uri?.Decrypt();
}
public string Id { get; set; }
public string FolderId { get; set; }
public string Name { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string Uri { get; set; }
}
public class Folder : ObservableCollection<Site>

View File

@ -1,4 +1,5 @@
using Xamarin.Forms;
using Bit.App.Resources;
using Xamarin.Forms;
namespace Bit.App.Pages
{
@ -9,7 +10,7 @@ namespace Bit.App.Pages
{
BarBackgroundColor = Color.FromHex("3c8dbc");
BarTextColor = Color.FromHex("ffffff");
Title = "Login";
Title = AppResources.LogInNoun;
}
}
}

View File

@ -6,6 +6,7 @@ using System.Text;
using Bit.App.Abstractions;
using Bit.App.Behaviors;
using Bit.App.Models.Api;
using Bit.App.Resources;
using Xamarin.Forms;
using XLabs.Ioc;
@ -21,7 +22,7 @@ namespace Bit.App.Pages
var emailEntry = new Entry
{
Keyboard = Keyboard.Email,
Placeholder = "Email Address"
Placeholder = AppResources.EmailAddress
};
emailEntry.Behaviors.Add(new RequiredValidationBehavior());
@ -30,25 +31,25 @@ namespace Bit.App.Pages
var masterPasswordEntry = new Entry
{
IsPassword = true,
Placeholder = "Master Password"
Placeholder = AppResources.MasterPassword
};
masterPasswordEntry.Behaviors.Add(new RequiredValidationBehavior());
var loginButton = new Button
{
Text = "Log In",
Text = AppResources.LogIn,
Command = new Command(async () =>
{
if(string.IsNullOrWhiteSpace(emailEntry.Text))
{
await DisplayAlert("An error has occurred", "The Email Address field is required.", "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.EmailAddress), AppResources.Ok);
return;
}
if(string.IsNullOrWhiteSpace(masterPasswordEntry.Text))
{
await DisplayAlert("An error has occurred", "The Master Password field is required.", "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.MasterPassword), AppResources.Ok);
return;
}
@ -63,7 +64,7 @@ namespace Bit.App.Pages
var response = await authService.TokenPostAsync(request);
if(!response.Succeeded)
{
await DisplayAlert("An error occurred", response.Errors.First().Message, "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, response.Errors.First().Message, AppResources.Ok);
return;
}
@ -83,7 +84,7 @@ namespace Bit.App.Pages
stackLayout.Children.Add(masterPasswordEntry);
stackLayout.Children.Add(loginButton);
Title = "Log In";
Title = AppResources.LogIn;
Content = stackLayout;
NavigationPage.SetHasNavigationBar(this, false);
}

View File

@ -1,4 +1,5 @@
using System;
using Bit.App.Resources;
using Xamarin.Forms;
namespace Bit.App.Pages
@ -14,10 +15,10 @@ namespace Bit.App.Pages
vaultNavigation.BarBackgroundColor = settingsNavigation.BarBackgroundColor = Color.FromHex("3c8dbc");
vaultNavigation.BarTextColor = settingsNavigation.BarTextColor = Color.FromHex("ffffff");
vaultNavigation.Title = "My Vault";
vaultNavigation.Title = AppResources.MyVault;
vaultNavigation.Icon = "fa-lock";
settingsNavigation.Title = "Settings";
settingsNavigation.Title = AppResources.Settings;
settingsNavigation.Icon = "fa-cogs";
Children.Add(vaultNavigation);

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Xamarin.Forms;
using XLabs.Ioc;
@ -16,7 +17,7 @@ namespace Bit.App.Pages
var logoutButton = new Button
{
Text = "Log Out",
Text = AppResources.LogOut,
Command = new Command(() =>
{
authService.LogOut();
@ -27,7 +28,7 @@ namespace Bit.App.Pages
var stackLayout = new StackLayout { };
stackLayout.Children.Add(logoutButton);
Title = "Settings";
Title = AppResources.Settings;
Content = stackLayout;
}
}

View File

@ -2,6 +2,7 @@
using System.Threading.Tasks;
using Acr.UserDialogs;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Plugin.Connectivity.Abstractions;
using Xamarin.Forms;
using XLabs.Ioc;
@ -67,7 +68,7 @@ namespace Bit.App.Pages
public void AlertNoConnection()
{
DisplayAlert("No internet connection", "Adding a new folder required an internet connection. Please connect to the internet before continuing.", "Ok");
DisplayAlert(AppResources.InternetConnectionRequiredTitle, AppResources.InternetConnectionRequiredMessage, AppResources.Ok);
}
}
}

View File

@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Acr.UserDialogs;
using Bit.App.Abstractions;
using Bit.App.Models;
using Bit.App.Resources;
using Plugin.Connectivity.Abstractions;
using Xamarin.Forms;
using XLabs.Ioc;
@ -25,7 +26,7 @@ namespace Bit.App.Pages
var nameEntry = new Entry();
var stackLayout = new StackLayout();
stackLayout.Children.Add(new Label { Text = "Name" });
stackLayout.Children.Add(new Label { Text = AppResources.Name });
stackLayout.Children.Add(nameEntry);
var scrollView = new ScrollView
@ -34,7 +35,7 @@ namespace Bit.App.Pages
Orientation = ScrollOrientation.Vertical
};
var saveToolBarItem = new ToolbarItem("Save", null, async () =>
var saveToolBarItem = new ToolbarItem(AppResources.Save, null, async () =>
{
if(!connectivity.IsConnected)
{
@ -44,7 +45,7 @@ namespace Bit.App.Pages
if(string.IsNullOrWhiteSpace(nameEntry.Text))
{
await DisplayAlert("An error has occurred", "The Name field is required.", "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.Name), AppResources.Ok);
return;
}
@ -74,7 +75,7 @@ namespace Bit.App.Pages
public void AlertNoConnection()
{
DisplayAlert("No internet connection", "Adding a new folder required an internet connection. Please connect to the internet before continuing.", "Ok");
DisplayAlert(AppResources.InternetConnectionRequiredTitle, AppResources.InternetConnectionRequiredMessage, AppResources.Ok);
}
}
}

View File

@ -6,6 +6,7 @@ using System.Text;
using Acr.UserDialogs;
using Bit.App.Abstractions;
using Bit.App.Models;
using Bit.App.Resources;
using Plugin.Connectivity.Abstractions;
using Xamarin.Forms;
using XLabs.Ioc;
@ -27,7 +28,7 @@ namespace Bit.App.Pages
var uriEntry = new Entry { Keyboard = Keyboard.Url };
var nameEntry = new Entry();
var folderPicker = new Picker { Title = "Folder" };
folderPicker.Items.Add("(none)");
folderPicker.Items.Add(AppResources.FolderNone);
folderPicker.SelectedIndex = 0;
foreach(var folder in folders)
{
@ -38,17 +39,17 @@ namespace Bit.App.Pages
var notesEditor = new Editor();
var stackLayout = new StackLayout();
stackLayout.Children.Add(new Label { Text = "URI" });
stackLayout.Children.Add(new Label { Text = AppResources.URI });
stackLayout.Children.Add(uriEntry);
stackLayout.Children.Add(new Label { Text = "Name" });
stackLayout.Children.Add(new Label { Text = AppResources.Name });
stackLayout.Children.Add(nameEntry);
stackLayout.Children.Add(new Label { Text = "Folder" });
stackLayout.Children.Add(new Label { Text = AppResources.Folder });
stackLayout.Children.Add(folderPicker);
stackLayout.Children.Add(new Label { Text = "Username" });
stackLayout.Children.Add(new Label { Text = AppResources.Username });
stackLayout.Children.Add(usernameEntry);
stackLayout.Children.Add(new Label { Text = "Password" });
stackLayout.Children.Add(new Label { Text = AppResources.Password });
stackLayout.Children.Add(passwordEntry);
stackLayout.Children.Add(new Label { Text = "Notes" });
stackLayout.Children.Add(new Label { Text = AppResources.Notes });
stackLayout.Children.Add(notesEditor);
var scrollView = new ScrollView
@ -57,7 +58,7 @@ namespace Bit.App.Pages
Orientation = ScrollOrientation.Vertical
};
var saveToolBarItem = new ToolbarItem("Save", null, async () =>
var saveToolBarItem = new ToolbarItem(AppResources.Save, null, async () =>
{
if(!connectivity.IsConnected)
{
@ -67,13 +68,13 @@ namespace Bit.App.Pages
if(string.IsNullOrWhiteSpace(uriEntry.Text))
{
await DisplayAlert("An error has occurred", "The Uri field is required.", "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.URI), AppResources.Ok);
return;
}
if(string.IsNullOrWhiteSpace(nameEntry.Text))
{
await DisplayAlert("An error has occurred", "The Name field is required.", "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, string.Format(AppResources.ValidationFieldRequired, AppResources.Name), AppResources.Ok);
return;
}
@ -100,7 +101,7 @@ namespace Bit.App.Pages
userDialogs.SuccessToast(nameEntry.Text, "New site created.");
}, ToolbarItemOrder.Default, 0);
Title = "Add Site";
Title = AppResources.AddSite;
Content = scrollView;
ToolbarItems.Add(saveToolBarItem);
@ -112,7 +113,7 @@ namespace Bit.App.Pages
public void AlertNoConnection()
{
DisplayAlert("No internet connection", "Adding a new folder required an internet connection. Please connect to the internet before continuing.", "Ok");
DisplayAlert(AppResources.InternetConnectionRequiredTitle, AppResources.InternetConnectionRequiredMessage, AppResources.Ok);
}
}
}

View File

@ -16,12 +16,14 @@ namespace Bit.App.Pages
private readonly IFolderService _folderService;
private readonly ISiteService _siteService;
private readonly IUserDialogs _userDialogs;
private readonly IClipboardService _clipboardService;
public VaultListPage()
{
_folderService = Resolver.Resolve<IFolderService>();
_siteService = Resolver.Resolve<ISiteService>();
_userDialogs = Resolver.Resolve<IUserDialogs>();
_clipboardService = Resolver.Resolve<IClipboardService>();
Init();
}
@ -76,22 +78,44 @@ namespace Bit.App.Pages
{
var mi = sender as MenuItem;
var site = mi.CommandParameter as VaultView.Site;
var selection = await DisplayActionSheet("More Options", "Cancel", null, "View", "Edit", "Copy Password", "Copy Username", "Go To Website");
var selection = await DisplayActionSheet(AppResources.MoreOptions, AppResources.Cancel, null,
AppResources.View, AppResources.Edit, AppResources.CopyPassword, AppResources.CopyUsername, AppResources.GoToWebsite);
switch(selection)
if(selection == AppResources.View)
{
case "View":
case "Edit":
case "Copy Password":
case "Copy Username":
case "Go To Website":
default:
break;
await Navigation.PushAsync(new VaultViewSitePage(site.Id));
}
else if(selection == AppResources.Edit)
{
// TODO: navigate to edit page
}
else if(selection == AppResources.CopyPassword)
{
Copy(site.Password, AppResources.Password);
}
else if(selection == AppResources.CopyUsername)
{
Copy(site.Username, AppResources.Username);
}
else if(selection == AppResources.GoToWebsite)
{
Device.OpenUri(new Uri(site.Uri));
}
}
private void Copy(string copyText, string alertLabel)
{
_clipboardService.CopyToClipboard(copyText);
_userDialogs.SuccessToast(string.Format(AppResources.ValueHasBeenCopied, alertLabel));
}
private async void DeleteClickedAsync(object sender, EventArgs e)
{
if(!await _userDialogs.ConfirmAsync(AppResources.DoYouReallyWantToDelete, null, AppResources.Yes, AppResources.No))
{
return;
}
var mi = sender as MenuItem;
var site = mi.CommandParameter as VaultView.Site;
var deleteCall = await _siteService.DeleteAsync(site.Id);
@ -101,11 +125,11 @@ namespace Bit.App.Pages
var folder = Folders.Single(f => f.Id == site.FolderId);
var siteIndex = folder.Select((s, i) => new { s, i }).First(s => s.s.Id == site.Id).i;
folder.RemoveAt(siteIndex);
_userDialogs.SuccessToast("Site deleted.");
_userDialogs.SuccessToast(AppResources.SiteDeleted);
}
else if(deleteCall.Errors.Count() > 0)
{
await DisplayAlert("An error has occurred", deleteCall.Errors.First().Message, "Ok");
await DisplayAlert(AppResources.AnErrorHasOccurred, deleteCall.Errors.First().Message, AppResources.Ok);
}
}
@ -116,7 +140,7 @@ namespace Bit.App.Pages
public AddSiteToolBarItem(VaultListPage page)
{
_page = page;
Text = "Add";
Text = AppResources.Add;
Icon = "fa-plus";
Clicked += ClickedItem;
}
@ -131,11 +155,11 @@ namespace Bit.App.Pages
{
public VaultListViewCell(VaultListPage page)
{
var moreAction = new MenuItem { Text = "More" };
var moreAction = new MenuItem { Text = AppResources.More };
moreAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
moreAction.Clicked += page.MoreClickedAsync;
var deleteAction = new MenuItem { Text = "Delete", IsDestructive = true };
var deleteAction = new MenuItem { Text = AppResources.Delete, IsDestructive = true };
deleteAction.SetBinding(MenuItem.CommandParameterProperty, new Binding("."));
deleteAction.Clicked += page.DeleteClickedAsync;

View File

@ -5,6 +5,7 @@ using System.Reflection.Emit;
using System.Text;
using Acr.UserDialogs;
using Bit.App.Abstractions;
using Bit.App.Resources;
using Xamarin.Forms;
using XLabs.Ioc;
@ -49,10 +50,10 @@ namespace Bit.App.Pages
usernameRow.Children.Add(usernameLabel);
usernameRow.Children.Add(new Button
{
Text = "Copy",
Text = AppResources.Copy,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Command = new Command(() => Copy(usernameLabel.Text, "Username"))
Command = new Command(() => Copy(usernameLabel.Text, AppResources.Username))
});
var passwordRow = new StackLayout { Orientation = StackOrientation.Horizontal };
@ -67,7 +68,7 @@ namespace Bit.App.Pages
passwordRow.Children.Add(passwordLabel);
var togglePasswordButton = new Button
{
Text = "Show",
Text = AppResources.Show,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Command = new Command((self) => TogglePassword(self as Button, passwordLabel, password))
@ -76,10 +77,10 @@ namespace Bit.App.Pages
passwordRow.Children.Add(togglePasswordButton);
passwordRow.Children.Add(new Button
{
Text = "Copy",
Text = AppResources.Copy,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Command = new Command(() => Copy(password, "Password"))
Command = new Command(() => Copy(password, AppResources.Password))
});
var uriRow = new StackLayout { Orientation = StackOrientation.Horizontal };
@ -93,22 +94,22 @@ namespace Bit.App.Pages
});
uriRow.Children.Add(new Button
{
Text = "Launch",
Text = AppResources.Launch,
HorizontalOptions = LayoutOptions.End,
VerticalOptions = LayoutOptions.Center,
Command = new Command(() => Device.OpenUri(new Uri(uri)))
});
var stackLayout = new StackLayout();
stackLayout.Children.Add(new Label { Text = "Username" });
stackLayout.Children.Add(new Label { Text = AppResources.Username });
stackLayout.Children.Add(usernameRow);
stackLayout.Children.Add(new Label { Text = "Password" });
stackLayout.Children.Add(new Label { Text = AppResources.Password });
stackLayout.Children.Add(passwordRow);
stackLayout.Children.Add(new Label { Text = "Website" });
stackLayout.Children.Add(new Label { Text = AppResources.Website });
stackLayout.Children.Add(uriRow);
if(site.Notes != null)
{
stackLayout.Children.Add(new Label { Text = "Notes" });
stackLayout.Children.Add(new Label { Text = AppResources.Notes });
stackLayout.Children.Add(new Label { Text = site.Notes.Decrypt() });
}
@ -118,28 +119,28 @@ namespace Bit.App.Pages
Orientation = ScrollOrientation.Vertical
};
Title = site.Name?.Decrypt() ?? "No Name";
Title = site.Name?.Decrypt() ?? AppResources.SiteNoName;
Content = scrollView;
}
public void TogglePassword(Button toggleButton, Label passwordLabel, string password)
private void TogglePassword(Button toggleButton, Label passwordLabel, string password)
{
if(toggleButton.Text == "Show")
if(toggleButton.Text == AppResources.Show)
{
toggleButton.Text = "Hide";
toggleButton.Text = AppResources.Hide;
passwordLabel.Text = password;
}
else
{
toggleButton.Text = "Show";
toggleButton.Text = AppResources.Show;
passwordLabel.Text = new string('●', password.Length);
}
}
public void Copy(string copyText, string alertLabel)
private void Copy(string copyText, string alertLabel)
{
_clipboardService.CopyToClipboard(copyText);
_userDialogs.SuccessToast($"{alertLabel} has been copied.");
_userDialogs.SuccessToast(string.Format(AppResources.ValueHasBeenCopied, alertLabel));
}
private class EditSiteToolBarItem : ToolbarItem
@ -151,7 +152,7 @@ namespace Bit.App.Pages
{
_page = page;
_siteId = siteId;
Text = "Edit";
Text = AppResources.Edit;
Clicked += ClickedItem;
}

View File

@ -61,6 +61,15 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Add.
/// </summary>
internal static string Add {
get {
return ResourceManager.GetString("Add", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Add Site.
/// </summary>
@ -70,6 +79,78 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to An error has occurred..
/// </summary>
internal static string AnErrorHasOccurred {
get {
return ResourceManager.GetString("AnErrorHasOccurred", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Cancel.
/// </summary>
internal static string Cancel {
get {
return ResourceManager.GetString("Cancel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Copy.
/// </summary>
internal static string Copy {
get {
return ResourceManager.GetString("Copy", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Copy Password.
/// </summary>
internal static string CopyPassword {
get {
return ResourceManager.GetString("CopyPassword", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Copy Username.
/// </summary>
internal static string CopyUsername {
get {
return ResourceManager.GetString("CopyUsername", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Delete.
/// </summary>
internal static string Delete {
get {
return ResourceManager.GetString("Delete", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Do you really want to delete? This cannot be undone..
/// </summary>
internal static string DoYouReallyWantToDelete {
get {
return ResourceManager.GetString("DoYouReallyWantToDelete", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Edit.
/// </summary>
internal static string Edit {
get {
return ResourceManager.GetString("Edit", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Email.
/// </summary>
@ -79,6 +160,15 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Email Address.
/// </summary>
internal static string EmailAddress {
get {
return ResourceManager.GetString("EmailAddress", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Folder.
/// </summary>
@ -97,6 +187,51 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Go To Website.
/// </summary>
internal static string GoToWebsite {
get {
return ResourceManager.GetString("GoToWebsite", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Hide.
/// </summary>
internal static string Hide {
get {
return ResourceManager.GetString("Hide", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Please connect to the internet before continuing..
/// </summary>
internal static string InternetConnectionRequiredMessage {
get {
return ResourceManager.GetString("InternetConnectionRequiredMessage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Internet Connection Required.
/// </summary>
internal static string InternetConnectionRequiredTitle {
get {
return ResourceManager.GetString("InternetConnectionRequiredTitle", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Launch.
/// </summary>
internal static string Launch {
get {
return ResourceManager.GetString("Launch", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Log In.
/// </summary>
@ -106,6 +241,15 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Login.
/// </summary>
internal static string LogInNoun {
get {
return ResourceManager.GetString("LogInNoun", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Log Out.
/// </summary>
@ -124,6 +268,24 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to More.
/// </summary>
internal static string More {
get {
return ResourceManager.GetString("More", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to More Options.
/// </summary>
internal static string MoreOptions {
get {
return ResourceManager.GetString("MoreOptions", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to My Vault.
/// </summary>
@ -133,6 +295,24 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Name.
/// </summary>
internal static string Name {
get {
return ResourceManager.GetString("Name", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No.
/// </summary>
internal static string No {
get {
return ResourceManager.GetString("No", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Notes.
/// </summary>
@ -142,6 +322,15 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Ok.
/// </summary>
internal static string Ok {
get {
return ResourceManager.GetString("Ok", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Password.
/// </summary>
@ -151,6 +340,15 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Save.
/// </summary>
internal static string Save {
get {
return ResourceManager.GetString("Save", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Settings.
/// </summary>
@ -160,6 +358,33 @@ namespace Bit.App.Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Show.
/// </summary>
internal static string Show {
get {
return ResourceManager.GetString("Show", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Site has been deleted..
/// </summary>
internal static string SiteDeleted {
get {
return ResourceManager.GetString("SiteDeleted", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to No Name.
/// </summary>
internal static string SiteNoName {
get {
return ResourceManager.GetString("SiteNoName", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Sync.
/// </summary>
@ -186,5 +411,50 @@ namespace Bit.App.Resources {
return ResourceManager.GetString("Username", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The {0} field is required..
/// </summary>
internal static string ValidationFieldRequired {
get {
return ResourceManager.GetString("ValidationFieldRequired", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} has been copied..
/// </summary>
internal static string ValueHasBeenCopied {
get {
return ResourceManager.GetString("ValueHasBeenCopied", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to View.
/// </summary>
internal static string View {
get {
return ResourceManager.GetString("View", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Website.
/// </summary>
internal static string Website {
get {
return ResourceManager.GetString("Website", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Yes.
/// </summary>
internal static string Yes {
get {
return ResourceManager.GetString("Yes", resourceCulture);
}
}
}
}

View File

@ -117,13 +117,52 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Add" xml:space="preserve">
<value>Add</value>
<comment>Add/create a new entity (verb).</comment>
</data>
<data name="AddSite" xml:space="preserve">
<value>Add Site</value>
<comment>The title for the add site page.</comment>
</data>
<data name="AnErrorHasOccurred" xml:space="preserve">
<value>An error has occurred.</value>
<comment>Alert title when something goes wrong.</comment>
</data>
<data name="Cancel" xml:space="preserve">
<value>Cancel</value>
<comment>Cancel an operation.</comment>
</data>
<data name="Copy" xml:space="preserve">
<value>Copy</value>
<comment>Copy some value to your clipboard.</comment>
</data>
<data name="CopyPassword" xml:space="preserve">
<value>Copy Password</value>
<comment>The button text that allows a user to copy the site's password to their clipboard.</comment>
</data>
<data name="CopyUsername" xml:space="preserve">
<value>Copy Username</value>
<comment>The button text that allows a user to copy the site's username to their clipboard.</comment>
</data>
<data name="Delete" xml:space="preserve">
<value>Delete</value>
<comment>Delete an entity (verb).</comment>
</data>
<data name="DoYouReallyWantToDelete" xml:space="preserve">
<value>Do you really want to delete? This cannot be undone.</value>
<comment>Confirmation alert message when deleteing something.</comment>
</data>
<data name="Edit" xml:space="preserve">
<value>Edit</value>
</data>
<data name="Email" xml:space="preserve">
<value>Email</value>
<comment>Label for an email address.</comment>
<comment>Short label for an email address.</comment>
</data>
<data name="EmailAddress" xml:space="preserve">
<value>Email Address</value>
<comment>Full label for a email address.</comment>
</data>
<data name="Folder" xml:space="preserve">
<value>Folder</value>
@ -133,34 +172,93 @@
<value>(none)</value>
<comment>Sites that have no folder specified go in this special "catch-all" folder.</comment>
</data>
<data name="GoToWebsite" xml:space="preserve">
<value>Go To Website</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="Hide" xml:space="preserve">
<value>Hide</value>
<comment>Hide a secret value that is currently shown (password).</comment>
</data>
<data name="InternetConnectionRequiredMessage" xml:space="preserve">
<value>Please connect to the internet before continuing.</value>
<comment>Description message for the alert when internet connection is required to continue.</comment>
</data>
<data name="InternetConnectionRequiredTitle" xml:space="preserve">
<value>Internet Connection Required</value>
<comment>Title for the alert when internet connection is required to continue.</comment>
</data>
<data name="Launch" xml:space="preserve">
<value>Launch</value>
<comment>The button text that allows user to launch the website to their web browser.</comment>
</data>
<data name="LogIn" xml:space="preserve">
<value>Log In</value>
<comment>The login button text.</comment>
<comment>The login button text (verb).</comment>
</data>
<data name="LogInNoun" xml:space="preserve">
<value>Login</value>
<comment>Title for login page. (noun)</comment>
</data>
<data name="LogOut" xml:space="preserve">
<value>Log Out</value>
<comment>The log out button text.</comment>
<comment>The log out button text (verb).</comment>
</data>
<data name="MasterPassword" xml:space="preserve">
<value>Master Password</value>
<comment>Label for a master password.</comment>
</data>
<data name="More" xml:space="preserve">
<value>More</value>
<comment>Text to define that there are more options things to see.</comment>
</data>
<data name="MoreOptions" xml:space="preserve">
<value>More Options</value>
<comment>The text title that defines more options for a site.</comment>
</data>
<data name="MyVault" xml:space="preserve">
<value>My Vault</value>
<comment>The title for the vault page.</comment>
</data>
<data name="Name" xml:space="preserve">
<value>Name</value>
<comment>Label for an entity name.</comment>
</data>
<data name="No" xml:space="preserve">
<value>No</value>
</data>
<data name="Notes" xml:space="preserve">
<value>Notes</value>
<comment>Label for notes.</comment>
</data>
<data name="Ok" xml:space="preserve">
<value>Ok</value>
<comment>Acknowledgement.</comment>
</data>
<data name="Password" xml:space="preserve">
<value>Password</value>
<comment>Label for a password.</comment>
</data>
<data name="Save" xml:space="preserve">
<value>Save</value>
<comment>Button text for a save operation (verb).</comment>
</data>
<data name="Settings" xml:space="preserve">
<value>Settings</value>
<comment>The title for the settings page.</comment>
</data>
<data name="Show" xml:space="preserve">
<value>Show</value>
<comment>Reveal a hidden value (password).</comment>
</data>
<data name="SiteDeleted" xml:space="preserve">
<value>Site has been deleted.</value>
<comment>Confirmation message after successfully deleting a site.</comment>
</data>
<data name="SiteNoName" xml:space="preserve">
<value>No Name</value>
<comment>Title text to display when there is no name given for a site.</comment>
</data>
<data name="Sync" xml:space="preserve">
<value>Sync</value>
<comment>The title for the sync page.</comment>
@ -173,4 +271,22 @@
<value>Username</value>
<comment>Label for a username.</comment>
</data>
<data name="ValidationFieldRequired" xml:space="preserve">
<value>The {0} field is required.</value>
<comment>Validation message for when a form field is left blank and is required to be entered.</comment>
</data>
<data name="ValueHasBeenCopied" xml:space="preserve">
<value>{0} has been copied.</value>
<comment>Confirmation message after suceessfully copying a value to the clipboard.</comment>
</data>
<data name="View" xml:space="preserve">
<value>View</value>
</data>
<data name="Website" xml:space="preserve">
<value>Website</value>
<comment>Label for a website.</comment>
</data>
<data name="Yes" xml:space="preserve">
<value>Yes</value>
</data>
</root>