From aeb04d017832e51b388330bf4c01f231e780cc4b Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Sat, 7 May 2016 13:42:09 -0400 Subject: [PATCH] More localized resource strings applied. Implemented more options actions on valut list page. Added delete confirmation. --- src/App/Models/View/VaultView.cs | 4 + src/App/Pages/LoginNavigationPage.cs | 5 +- src/App/Pages/LoginPage.cs | 15 +- src/App/Pages/MainPage.cs | 5 +- src/App/Pages/SettingsPage.cs | 5 +- src/App/Pages/SyncPage.cs | 3 +- src/App/Pages/VaultAddFolderPage.cs | 9 +- src/App/Pages/VaultAddSitePage.cs | 25 +- src/App/Pages/VaultListPage.cs | 52 ++-- src/App/Pages/VaultViewSitePage.cs | 37 +-- src/App/Resources/AppResources.Designer.cs | 270 +++++++++++++++++++++ src/App/Resources/AppResources.resx | 122 +++++++++- 12 files changed, 487 insertions(+), 65 deletions(-) diff --git a/src/App/Models/View/VaultView.cs b/src/App/Models/View/VaultView.cs index 99fe4fd75..1c334c71b 100644 --- a/src/App/Models/View/VaultView.cs +++ b/src/App/Models/View/VaultView.cs @@ -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 diff --git a/src/App/Pages/LoginNavigationPage.cs b/src/App/Pages/LoginNavigationPage.cs index c58be2d2e..a7c110c88 100644 --- a/src/App/Pages/LoginNavigationPage.cs +++ b/src/App/Pages/LoginNavigationPage.cs @@ -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; } } } diff --git a/src/App/Pages/LoginPage.cs b/src/App/Pages/LoginPage.cs index 7ff7dfa66..62534de0c 100644 --- a/src/App/Pages/LoginPage.cs +++ b/src/App/Pages/LoginPage.cs @@ -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); } diff --git a/src/App/Pages/MainPage.cs b/src/App/Pages/MainPage.cs index f903edd61..8162397af 100644 --- a/src/App/Pages/MainPage.cs +++ b/src/App/Pages/MainPage.cs @@ -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); diff --git a/src/App/Pages/SettingsPage.cs b/src/App/Pages/SettingsPage.cs index 8fba6bb60..d3e6d504d 100644 --- a/src/App/Pages/SettingsPage.cs +++ b/src/App/Pages/SettingsPage.cs @@ -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; } } diff --git a/src/App/Pages/SyncPage.cs b/src/App/Pages/SyncPage.cs index 70ac80df2..64fd0dd57 100644 --- a/src/App/Pages/SyncPage.cs +++ b/src/App/Pages/SyncPage.cs @@ -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); } } } diff --git a/src/App/Pages/VaultAddFolderPage.cs b/src/App/Pages/VaultAddFolderPage.cs index 8855de577..aeb2f898f 100644 --- a/src/App/Pages/VaultAddFolderPage.cs +++ b/src/App/Pages/VaultAddFolderPage.cs @@ -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); } } } diff --git a/src/App/Pages/VaultAddSitePage.cs b/src/App/Pages/VaultAddSitePage.cs index c7e56f3aa..f6af6c801 100644 --- a/src/App/Pages/VaultAddSitePage.cs +++ b/src/App/Pages/VaultAddSitePage.cs @@ -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); } } } diff --git a/src/App/Pages/VaultListPage.cs b/src/App/Pages/VaultListPage.cs index 87f5c587c..c0011a94d 100644 --- a/src/App/Pages/VaultListPage.cs +++ b/src/App/Pages/VaultListPage.cs @@ -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(); _siteService = Resolver.Resolve(); _userDialogs = Resolver.Resolve(); + _clipboardService = Resolver.Resolve(); 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; diff --git a/src/App/Pages/VaultViewSitePage.cs b/src/App/Pages/VaultViewSitePage.cs index 64491c1c4..e526e6204 100644 --- a/src/App/Pages/VaultViewSitePage.cs +++ b/src/App/Pages/VaultViewSitePage.cs @@ -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; } diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs index 5c3ee0f7a..c480d65c8 100644 --- a/src/App/Resources/AppResources.Designer.cs +++ b/src/App/Resources/AppResources.Designer.cs @@ -61,6 +61,15 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Add. + /// + internal static string Add { + get { + return ResourceManager.GetString("Add", resourceCulture); + } + } + /// /// Looks up a localized string similar to Add Site. /// @@ -70,6 +79,78 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to An error has occurred.. + /// + internal static string AnErrorHasOccurred { + get { + return ResourceManager.GetString("AnErrorHasOccurred", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + internal static string Cancel { + get { + return ResourceManager.GetString("Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy. + /// + internal static string Copy { + get { + return ResourceManager.GetString("Copy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy Password. + /// + internal static string CopyPassword { + get { + return ResourceManager.GetString("CopyPassword", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy Username. + /// + internal static string CopyUsername { + get { + return ResourceManager.GetString("CopyUsername", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + internal static string Delete { + get { + return ResourceManager.GetString("Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Do you really want to delete? This cannot be undone.. + /// + internal static string DoYouReallyWantToDelete { + get { + return ResourceManager.GetString("DoYouReallyWantToDelete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Edit. + /// + internal static string Edit { + get { + return ResourceManager.GetString("Edit", resourceCulture); + } + } + /// /// Looks up a localized string similar to Email. /// @@ -79,6 +160,15 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Email Address. + /// + internal static string EmailAddress { + get { + return ResourceManager.GetString("EmailAddress", resourceCulture); + } + } + /// /// Looks up a localized string similar to Folder. /// @@ -97,6 +187,51 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Go To Website. + /// + internal static string GoToWebsite { + get { + return ResourceManager.GetString("GoToWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Hide. + /// + internal static string Hide { + get { + return ResourceManager.GetString("Hide", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please connect to the internet before continuing.. + /// + internal static string InternetConnectionRequiredMessage { + get { + return ResourceManager.GetString("InternetConnectionRequiredMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internet Connection Required. + /// + internal static string InternetConnectionRequiredTitle { + get { + return ResourceManager.GetString("InternetConnectionRequiredTitle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Launch. + /// + internal static string Launch { + get { + return ResourceManager.GetString("Launch", resourceCulture); + } + } + /// /// Looks up a localized string similar to Log In. /// @@ -106,6 +241,15 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Login. + /// + internal static string LogInNoun { + get { + return ResourceManager.GetString("LogInNoun", resourceCulture); + } + } + /// /// Looks up a localized string similar to Log Out. /// @@ -124,6 +268,24 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to More. + /// + internal static string More { + get { + return ResourceManager.GetString("More", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to More Options. + /// + internal static string MoreOptions { + get { + return ResourceManager.GetString("MoreOptions", resourceCulture); + } + } + /// /// Looks up a localized string similar to My Vault. /// @@ -133,6 +295,24 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Name. + /// + internal static string Name { + get { + return ResourceManager.GetString("Name", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + internal static string No { + get { + return ResourceManager.GetString("No", resourceCulture); + } + } + /// /// Looks up a localized string similar to Notes. /// @@ -142,6 +322,15 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Ok. + /// + internal static string Ok { + get { + return ResourceManager.GetString("Ok", resourceCulture); + } + } + /// /// Looks up a localized string similar to Password. /// @@ -151,6 +340,15 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Save. + /// + internal static string Save { + get { + return ResourceManager.GetString("Save", resourceCulture); + } + } + /// /// Looks up a localized string similar to Settings. /// @@ -160,6 +358,33 @@ namespace Bit.App.Resources { } } + /// + /// Looks up a localized string similar to Show. + /// + internal static string Show { + get { + return ResourceManager.GetString("Show", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Site has been deleted.. + /// + internal static string SiteDeleted { + get { + return ResourceManager.GetString("SiteDeleted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No Name. + /// + internal static string SiteNoName { + get { + return ResourceManager.GetString("SiteNoName", resourceCulture); + } + } + /// /// Looks up a localized string similar to Sync. /// @@ -186,5 +411,50 @@ namespace Bit.App.Resources { return ResourceManager.GetString("Username", resourceCulture); } } + + /// + /// Looks up a localized string similar to The {0} field is required.. + /// + internal static string ValidationFieldRequired { + get { + return ResourceManager.GetString("ValidationFieldRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} has been copied.. + /// + internal static string ValueHasBeenCopied { + get { + return ResourceManager.GetString("ValueHasBeenCopied", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to View. + /// + internal static string View { + get { + return ResourceManager.GetString("View", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Website. + /// + internal static string Website { + get { + return ResourceManager.GetString("Website", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + internal static string Yes { + get { + return ResourceManager.GetString("Yes", resourceCulture); + } + } } } diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx index d73f9291b..0610028d4 100644 --- a/src/App/Resources/AppResources.resx +++ b/src/App/Resources/AppResources.resx @@ -117,13 +117,52 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + Add + Add/create a new entity (verb). + Add Site The title for the add site page. + + An error has occurred. + Alert title when something goes wrong. + + + Cancel + Cancel an operation. + + + Copy + Copy some value to your clipboard. + + + Copy Password + The button text that allows a user to copy the site's password to their clipboard. + + + Copy Username + The button text that allows a user to copy the site's username to their clipboard. + + + Delete + Delete an entity (verb). + + + Do you really want to delete? This cannot be undone. + Confirmation alert message when deleteing something. + + + Edit + Email - Label for an email address. + Short label for an email address. + + + Email Address + Full label for a email address. Folder @@ -133,34 +172,93 @@ (none) Sites that have no folder specified go in this special "catch-all" folder. + + Go To Website + The button text that allows user to launch the website to their web browser. + + + Hide + Hide a secret value that is currently shown (password). + + + Please connect to the internet before continuing. + Description message for the alert when internet connection is required to continue. + + + Internet Connection Required + Title for the alert when internet connection is required to continue. + + + Launch + The button text that allows user to launch the website to their web browser. + Log In - The login button text. + The login button text (verb). + + + Login + Title for login page. (noun) Log Out - The log out button text. + The log out button text (verb). Master Password Label for a master password. + + More + Text to define that there are more options things to see. + + + More Options + The text title that defines more options for a site. + My Vault The title for the vault page. + + Name + Label for an entity name. + + + No + Notes Label for notes. + + Ok + Acknowledgement. + Password Label for a password. + + Save + Button text for a save operation (verb). + Settings The title for the settings page. + + Show + Reveal a hidden value (password). + + + Site has been deleted. + Confirmation message after successfully deleting a site. + + + No Name + Title text to display when there is no name given for a site. + Sync The title for the sync page. @@ -173,4 +271,22 @@ Username Label for a username. + + The {0} field is required. + Validation message for when a form field is left blank and is required to be entered. + + + {0} has been copied. + Confirmation message after suceessfully copying a value to the clipboard. + + + View + + + Website + Label for a website. + + + Yes + \ No newline at end of file