 extension String {
 
     // Prompts
-    public static let SaveLoginUsernamePrompt = MZLocalizedString("LoginsHelper.PromptSaveLogin.Title", value: "Save login %@ for %@?", comment: "Prompt for saving a login. The first parameter is the username being saved. The second parameter is the hostname of the site.", lastUpdated: .unknown)
-    public static let SaveLoginPrompt = MZLocalizedString("LoginsHelper.PromptSavePassword.Title", value: "Save password for %@?", comment: "Prompt for saving a password with no username. The parameter is the hostname of the site.", lastUpdated: .unknown)
-    public static let UpdateLoginUsernamePrompt = MZLocalizedString("LoginsHelper.PromptUpdateLogin.Title.TwoArg", value: "Update login %@ for %@?", comment: "Prompt for updating a login. The first parameter is the username for which the password will be updated for. The second parameter is the hostname of the site.", lastUpdated: .unknown)
-    public static let UpdateLoginPrompt = MZLocalizedString("LoginsHelper.PromptUpdateLogin.Title.OneArg", value: "Update login for %@?", comment: "Prompt for updating a login. The first parameter is the hostname for which the password will be updated for.", lastUpdated: .unknown)
+    public static let SaveLoginUsernamePrompt = MZLocalizedString(
+        "LoginsHelper.PromptSaveLogin.Title",
+        value: "Save login %@ for %@?",
+        comment: "Prompt for saving a login. The first parameter is the username being saved. The second parameter is the hostname of the site.",
+        lastUpdated: .unknown)
+    public static let SaveLoginPrompt = MZLocalizedString(
+        "LoginsHelper.PromptSavePassword.Title",
+        value: "Save password for %@?",
+        comment: "Prompt for saving a password with no username. The parameter is the hostname of the site.",
+        lastUpdated: .unknown)
+    public static let UpdateLoginUsernamePrompt = MZLocalizedString(
+        "LoginsHelper.PromptUpdateLogin.Title.TwoArg",
+        value: "Update login %@ for %@?",
+        comment: "Prompt for updating a login. The first parameter is the username for which the password will be updated for. The second parameter is the hostname of the site.",
+        lastUpdated: .unknown)
+    public static let UpdateLoginPrompt = MZLocalizedString(
+        "LoginsHelper.PromptUpdateLogin.Title.OneArg",
+        value: "Update login for %@?",
+        comment: "Prompt for updating a login. The first parameter is the hostname for which the password will be updated for.",
+        lastUpdated: .unknown)
 
     // Setting
-    public static let SettingToShowLoginsInAppMenu = MZLocalizedString("Settings.ShowLoginsInAppMenu.Title", value: "Show in Application Menu", comment: "Setting to show Logins & Passwords quick access in the application menu", lastUpdated: .unknown)
+    public static let SettingToShowLoginsInAppMenu = MZLocalizedString(
+        "Settings.ShowLoginsInAppMenu.Title",
+        value: "Show in Application Menu",
+        comment: "Setting to show Logins & Passwords quick access in the application menu",
+        lastUpdated: .unknown)
 
     // List view
-    public static let LoginsListTitle = MZLocalizedString("LoginsList.Title", value: "SAVED LOGINS", comment: "Title for the list of logins", lastUpdated: .unknown)
-    public static let LoginsListSearchPlaceholder = MZLocalizedString("LoginsList.LoginsListSearchPlaceholder", value: "Filter", comment: "Placeholder test for search box in logins list view.", lastUpdated: .unknown)
-    public static let LoginsFilterWebsite = MZLocalizedString("LoginsList.LoginsListFilterWebsite", value: "Website", comment: "For filtering the login list, search only the website names", lastUpdated: .unknown)
-    public static let LoginsFilterLogin = MZLocalizedString("LoginsList.LoginsListFilterLogin", value: "Login", comment: "For filtering the login list, search only the login names", lastUpdated: .unknown)
-    public static let LoginsFilterAll = MZLocalizedString("LoginsList.LoginsListFilterSearchAll", value: "All", comment: "For filtering the login list, search both website and login names.", lastUpdated: .unknown)
+    public static let LoginsListTitle = MZLocalizedString(
+        "LoginsList.Title",
+        value: "SAVED LOGINS",
+        comment: "Title for the list of logins",
+        lastUpdated: .unknown)
+    public static let LoginsListSearchPlaceholder = MZLocalizedString(
+        "LoginsList.LoginsListSearchPlaceholder",
+        value: "Filter",
+        comment: "Placeholder test for search box in logins list view.",
+        lastUpdated: .unknown)
+    public static let LoginsFilterWebsite = MZLocalizedString(
+        "LoginsList.LoginsListFilterWebsite",
+        value: "Website",
+        comment: "For filtering the login list, search only the website names",
+        lastUpdated: .unknown)
+    public static let LoginsFilterLogin = MZLocalizedString(
+        "LoginsList.LoginsListFilterLogin",
+        value: "Login",
+        comment: "For filtering the login list, search only the login names",
+        lastUpdated: .unknown)
+    public static let LoginsFilterAll = MZLocalizedString(
+        "LoginsList.LoginsListFilterSearchAll",
+        value: "All",
+        comment: "For filtering the login list, search both website and login names.",
+        lastUpdated: .unknown)
 
     // Detail view
-    public static let LoginsDetailViewLoginTitle = MZLocalizedString("LoginsDetailView.LoginTitle", value: "Login", comment: "Title for the login detail view", lastUpdated: .unknown)
-    public static let LoginsDetailViewLoginModified = MZLocalizedString("LoginsDetailView.LoginModified", value: "Modified", comment: "Login detail view field name for the last modified date", lastUpdated: .unknown)
+    public static let LoginsDetailViewLoginTitle = MZLocalizedString(
+        "LoginsDetailView.LoginTitle",
+        value: "Login",
+        comment: "Title for the login detail view",
+        lastUpdated: .unknown)
+    public static let LoginsDetailViewLoginModified = MZLocalizedString(
+        "LoginsDetailView.LoginModified",
+        value: "Modified",
+        comment: "Login detail view field name for the last modified date",
+        lastUpdated: .unknown)
 
     // Breach Alerts
-    public static let BreachAlertsTitle = MZLocalizedString("BreachAlerts.Title", value: "Website Breach", comment: "Title for the Breached Login Detail View.", lastUpdated: .unknown)
-    public static let BreachAlertsLearnMore = MZLocalizedString("BreachAlerts.LearnMoreButton", value: "Learn more", comment: "Link to monitor.firefox.com to learn more about breached passwords", lastUpdated: .unknown)
-    public static let BreachAlertsBreachDate = MZLocalizedString("BreachAlerts.BreachDate", value: "This breach occurred on", comment: "Describes the date on which the breach occurred", lastUpdated: .unknown)
-    public static let BreachAlertsDescription = MZLocalizedString("BreachAlerts.Description", value: "Passwords were leaked or stolen since you last changed your password. To protect this account, log in to the site and change your password.", comment: "Description of what a breach is", lastUpdated: .unknown)
-    public static let BreachAlertsLink = MZLocalizedString("BreachAlerts.Link", value: "Go to", comment: "Leads to a link to the breached website", lastUpdated: .unknown)
+    public static let BreachAlertsTitle = MZLocalizedString(
+        "BreachAlerts.Title",
+        value: "Website Breach",
+        comment: "Title for the Breached Login Detail View.",
+        lastUpdated: .unknown)
+    public static let BreachAlertsLearnMore = MZLocalizedString(
+        "BreachAlerts.LearnMoreButton",
+        value: "Learn more",
+        comment: "Link to monitor.firefox.com to learn more about breached passwords",
+        lastUpdated: .unknown)
+    public static let BreachAlertsBreachDate = MZLocalizedString(
+        "BreachAlerts.BreachDate",
+        value: "This breach occurred on",
+        comment: "Describes the date on which the breach occurred",
+        lastUpdated: .unknown)
+    public static let BreachAlertsDescription = MZLocalizedString(
+        "BreachAlerts.Description",
+        value: "Passwords were leaked or stolen since you last changed your password. To protect this account, log in to the site and change your password.",
+        comment: "Description of what a breach is",
+        lastUpdated: .unknown)
+    public static let BreachAlertsLink = MZLocalizedString(
+        "BreachAlerts.Link",
+        value: "Go to",
+        comment: "Leads to a link to the breached website",
+        lastUpdated: .unknown)
 
     // For the DevicePasscodeRequiredViewController
-    public static let LoginsDevicePasscodeRequiredMessage = MZLocalizedString("Logins.DevicePasscodeRequired.Message", value: "To save and autofill logins and passwords, enable Face ID, Touch ID or a device passcode.", comment: "Message shown when you enter Logins & Passwords without having a device passcode set.", lastUpdated: .unknown)
-    public static let LoginsDevicePasscodeRequiredLearnMoreButtonTitle = MZLocalizedString("Logins.DevicePasscodeRequired.LearnMoreButtonTitle", value: "Learn More", comment: "Title of the Learn More button that links to a support page about device passcode requirements.", lastUpdated: .unknown)
+    public static let LoginsDevicePasscodeRequiredMessage = MZLocalizedString(
+        "Logins.DevicePasscodeRequired.Message",
+        value: "To save and autofill logins and passwords, enable Face ID, Touch ID or a device passcode.",
+        comment: "Message shown when you enter Logins & Passwords without having a device passcode set.",
+        lastUpdated: .unknown)
+    public static let LoginsDevicePasscodeRequiredLearnMoreButtonTitle = MZLocalizedString(
+        "Logins.DevicePasscodeRequired.LearnMoreButtonTitle",
+        value: "Learn More",
+        comment: "Title of the Learn More button that links to a support page about device passcode requirements.",
+        lastUpdated: .unknown)
 
     // For the LoginOnboardingViewController
-    public static let LoginsOnboardingLearnMoreButtonTitle = MZLocalizedString("Logins.Onboarding.LearnMoreButtonTitle", value: "Learn More", comment: "Title of the Learn More button that links to a support page about device passcode requirements.", lastUpdated: .unknown)
-    public static let LoginsOnboardingContinueButtonTitle = MZLocalizedString("Logins.Onboarding.ContinueButtonTitle", value: "Continue", comment: "Title of the Continue button.", lastUpdated: .unknown)
+    public static let LoginsOnboardingLearnMoreButtonTitle = MZLocalizedString(
+        "Logins.Onboarding.LearnMoreButtonTitle",
+        value: "Learn More",
+        comment: "Title of the Learn More button that links to a support page about device passcode requirements.",
+        lastUpdated: .unknown)
+    public static let LoginsOnboardingContinueButtonTitle = MZLocalizedString(
+        "Logins.Onboarding.ContinueButtonTitle",
+        value: "Continue",
+        comment: "Title of the Continue button.",
+        lastUpdated: .unknown)
 }
 
 // MARK: - Firefox Account
 extension String {
     // Settings strings
-    public static let FxAFirefoxAccount = MZLocalizedString("FxA.FirefoxAccount", value: "Firefox Account", comment: "Settings section title for Firefox Account", lastUpdated: .unknown)
-    public static let FxATakeYourWebWithYou = MZLocalizedString("FxA.TakeYourWebWithYou", value: "Take Your Web With You", comment: "Call to action for sign into sync button", lastUpdated: .unknown)
-    public static let FxAAccountVerificationRequired = MZLocalizedString("FxA.AccountVerificationRequired", value: "Account Verification Required", comment: "Label stating your account is not verified", lastUpdated: .unknown)
-    public static let FxAAccountVerificationDetails = MZLocalizedString("FxA.AccountVerificationDetails", value: "Wrong email? Disconnect below to start over.", comment: "Label stating how to disconnect account", lastUpdated: .unknown)
-    public static let FxAManageAccount = MZLocalizedString("FxA.ManageAccount", value: "Manage Account & Devices", comment: "Button label to go to Firefox Account settings", lastUpdated: .unknown)
-    public static let FxASyncNow = MZLocalizedString("FxA.SyncNow", value: "Sync Now", comment: "Button label to Sync your Firefox Account", lastUpdated: .unknown)
-    public static let FxANoInternetConnection = MZLocalizedString("FxA.NoInternetConnection", value: "No Internet Connection", comment: "Label when no internet is present", lastUpdated: .unknown)
-    public static let FxASettingsTitle = MZLocalizedString("Settings.FxA.Title", value: "Firefox Account", comment: "Title displayed in header of the FxA settings panel.", lastUpdated: .unknown)
-    public static let FxASettingsSyncSettings = MZLocalizedString("Settings.FxA.Sync.SectionName", value: "Sync Settings", comment: "Label used as a section title in the Firefox Accounts Settings screen.", lastUpdated: .unknown)
-    public static let FxASettingsDeviceName = MZLocalizedString("Settings.FxA.DeviceName", value: "Device Name", comment: "Label used for the device name settings section.", lastUpdated: .unknown)
-    public static let FxAOpenSyncPreferences = MZLocalizedString("FxA.OpenSyncPreferences", value: "Open Sync Preferences", comment: "Button label to open Sync preferences", lastUpdated: .unknown)
-    public static let FxAConnectAnotherDevice = MZLocalizedString("FxA.ConnectAnotherDevice", value: "Connect Another Device", comment: "Button label to connect another device to Sync", lastUpdated: .unknown)
-    public static let FxARemoveAccountButton = MZLocalizedString("FxA.RemoveAccount", value: "Remove", comment: "Remove button is displayed on firefox account page under certain scenarios where user would like to remove their account.", lastUpdated: .unknown)
-    public static let FxARemoveAccountAlertTitle = MZLocalizedString("FxA.RemoveAccountAlertTitle", value: "Remove Account", comment: "Remove account alert is the final confirmation before user removes their firefox account", lastUpdated: .unknown)
-    public static let FxARemoveAccountAlertMessage = MZLocalizedString("FxA.RemoveAccountAlertMessage", value: "Remove the Firefox Account associated with this device to sign in as a different user.", comment: "Description string for alert view that gets presented when user tries to remove an account.", lastUpdated: .unknown)
+    public static let FxAFirefoxAccount = MZLocalizedString(
+        "FxA.FirefoxAccount",
+        value: "Firefox Account",
+        comment: "Settings section title for Firefox Account",
+        lastUpdated: .unknown)
+    public static let FxATakeYourWebWithYou = MZLocalizedString(
+        "FxA.TakeYourWebWithYou",
+        value: "Take Your Web With You",
+        comment: "Call to action for sign into sync button",
+        lastUpdated: .unknown)
+    public static let FxAAccountVerificationRequired = MZLocalizedString(
+        "FxA.AccountVerificationRequired",
+        value: "Account Verification Required",
+        comment: "Label stating your account is not verified",
+        lastUpdated: .unknown)
+    public static let FxAAccountVerificationDetails = MZLocalizedString(
+        "FxA.AccountVerificationDetails",
+        value: "Wrong email? Disconnect below to start over.",
+        comment: "Label stating how to disconnect account",
+        lastUpdated: .unknown)
+    public static let FxAManageAccount = MZLocalizedString(
+        "FxA.ManageAccount",
+        value: "Manage Account & Devices",
+        comment: "Button label to go to Firefox Account settings",
+        lastUpdated: .unknown)
+    public static let FxASyncNow = MZLocalizedString(
+        "FxA.SyncNow",
+        value: "Sync Now",
+        comment: "Button label to Sync your Firefox Account",
+        lastUpdated: .unknown)
+    public static let FxANoInternetConnection = MZLocalizedString(
+        "FxA.NoInternetConnection",
+        value: "No Internet Connection",
+        comment: "Label when no internet is present",
+        lastUpdated: .unknown)
+    public static let FxASettingsTitle = MZLocalizedString(
+        "Settings.FxA.Title",
+        value: "Firefox Account",
+        comment: "Title displayed in header of the FxA settings panel.",
+        lastUpdated: .unknown)
+    public static let FxASettingsSyncSettings = MZLocalizedString(
+        "Settings.FxA.Sync.SectionName",
+        value: "Sync Settings",
+        comment: "Label used as a section title in the Firefox Accounts Settings screen.",
+        lastUpdated: .unknown)
+    public static let FxASettingsDeviceName = MZLocalizedString(
+        "Settings.FxA.DeviceName",
+        value: "Device Name",
+        comment: "Label used for the device name settings section.",
+        lastUpdated: .unknown)
+    public static let FxAOpenSyncPreferences = MZLocalizedString(
+        "FxA.OpenSyncPreferences",
+        value: "Open Sync Preferences",
+        comment: "Button label to open Sync preferences",
+        lastUpdated: .unknown)
+    public static let FxAConnectAnotherDevice = MZLocalizedString(
+        "FxA.ConnectAnotherDevice",
+        value: "Connect Another Device",
+        comment: "Button label to connect another device to Sync",
+        lastUpdated: .unknown)
+    public static let FxARemoveAccountButton = MZLocalizedString(
+        "FxA.RemoveAccount",
+        value: "Remove",
+        comment: "Remove button is displayed on firefox account page under certain scenarios where user would like to remove their account.",
+        lastUpdated: .unknown)
+    public static let FxARemoveAccountAlertTitle = MZLocalizedString(
+        "FxA.RemoveAccountAlertTitle",
+        value: "Remove Account",
+        comment: "Remove account alert is the final confirmation before user removes their firefox account",
+        lastUpdated: .unknown)
+    public static let FxARemoveAccountAlertMessage = MZLocalizedString(
+        "FxA.RemoveAccountAlertMessage",
+        value: "Remove the Firefox Account associated with this device to sign in as a different user.",
+        comment: "Description string for alert view that gets presented when user tries to remove an account.",
+        lastUpdated: .unknown)
 
     // Surface error strings
-    public static let FxAAccountVerificationRequiredSurface = MZLocalizedString("FxA.AccountVerificationRequiredSurface", value: "You need to verify %@. Check your email for the verification link from Firefox.", comment: "Message explaining that user needs to check email for Firefox Account verfication link.", lastUpdated: .unknown)
-    public static let FxAResendEmail = MZLocalizedString("FxA.ResendEmail", value: "Resend Email", comment: "Button label to resend email", lastUpdated: .unknown)
-    public static let FxAAccountVerifyEmail = MZLocalizedString("Verify your email address", comment: "Text message in the settings table view", lastUpdated: .unknown)
-    public static let FxAAccountVerifyPassword = MZLocalizedString("Enter your password to connect", comment: "Text message in the settings table view", lastUpdated: .unknown)
-    public static let FxAAccountUpgradeFirefox = MZLocalizedString("Upgrade Firefox to connect", comment: "Text message in the settings table view", lastUpdated: .unknown)
+    public static let FxAAccountVerificationRequiredSurface = MZLocalizedString(
+        "FxA.AccountVerificationRequiredSurface",
+        value: "You need to verify %@. Check your email for the verification link from Firefox.",
+        comment: "Message explaining that user needs to check email for Firefox Account verfication link.",
+        lastUpdated: .unknown)
+    public static let FxAResendEmail = MZLocalizedString(
+        "FxA.ResendEmail",
+        value: "Resend Email",
+        comment: "Button label to resend email",
+        lastUpdated: .unknown)
+    public static let FxAAccountVerifyEmail = MZLocalizedString(
+        "Verify your email address",
+        comment: "Text message in the settings table view",
+        lastUpdated: .unknown)
+    public static let FxAAccountVerifyPassword = MZLocalizedString(
+        "Enter your password to connect",
+        comment: "Text message in the settings table view",
+        lastUpdated: .unknown)
+    public static let FxAAccountUpgradeFirefox = MZLocalizedString(
+        "Upgrade Firefox to connect",
+        comment: "Text message in the settings table view",
+        lastUpdated: .unknown)
 }
 
 // MARK: - New tab choice settings
 extension String {
-    public static let CustomNewPageURL = MZLocalizedString("Settings.NewTab.CustomURL", value: "Custom URL", comment: "Label used to set a custom url as the new tab option (homepage).", lastUpdated: .unknown)
-    public static let SettingsNewTabSectionName = MZLocalizedString("Settings.NewTab.SectionName", value: "New Tab", comment: "Label used as an item in Settings. When touched it will open a dialog to configure the new tab behavior.", lastUpdated: .unknown)
+    public static let CustomNewPageURL = MZLocalizedString(
+        "Settings.NewTab.CustomURL",
+        value: "Custom URL",
+        comment: "Label used to set a custom url as the new tab option (homepage).",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabSectionName = MZLocalizedString(
+        "Settings.NewTab.SectionName",
+        value: "New Tab",
+        comment: "Label used as an item in Settings. When touched it will open a dialog to configure the new tab behavior.",
+        lastUpdated: .unknown)
     public static let NewTabSectionName =
-        MZLocalizedString("Settings.NewTab.TopSectionName", value: "Show", comment: "Label at the top of the New Tab screen after entering New Tab in settings", lastUpdated: .unknown)
-    public static let SettingsNewTabTitle = MZLocalizedString("Settings.NewTab.Title", value: "New Tab", comment: "Title displayed in header of the setting panel.", lastUpdated: .unknown)
-    public static let NewTabSectionNameFooter =
-        MZLocalizedString("Settings.NewTab.TopSectionNameFooter", value: "Choose what to load when opening a new tab", comment: "Footer at the bottom of the New Tab screen after entering New Tab in settings", lastUpdated: .unknown)
-    public static let SettingsNewTabTopSites = MZLocalizedString("Settings.NewTab.Option.FirefoxHome", value: "Firefox Home", comment: "Option in settings to show Firefox Home when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabBookmarks = MZLocalizedString("Settings.NewTab.Option.Bookmarks", value: "Bookmarks", comment: "Option in settings to show bookmarks when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabHistory = MZLocalizedString("Settings.NewTab.Option.History", value: "History", comment: "Option in settings to show history when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabReadingList = MZLocalizedString("Settings.NewTab.Option.ReadingList", value: "Show your Reading List", comment: "Option in settings to show reading list when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabBlankPage = MZLocalizedString("Settings.NewTab.Option.BlankPage", value: "Blank Page", comment: "Option in settings to show a blank page when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabHomePage = MZLocalizedString("Settings.NewTab.Option.HomePage", value: "Homepage", comment: "Option in settings to show your homepage when you open a new tab", lastUpdated: .unknown)
-    public static let SettingsNewTabDescription = MZLocalizedString("Settings.NewTab.Description", value: "When you open a New Tab:", comment: "A description in settings of what the new tab choice means", lastUpdated: .unknown)
+    MZLocalizedString(
+        "Settings.NewTab.TopSectionName",
+        value: "Show",
+        comment: "Label at the top of the New Tab screen after entering New Tab in settings",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabTitle = MZLocalizedString(
+        "Settings.NewTab.Title",
+        value: "New Tab",
+        comment: "Title displayed in header of the setting panel.",
+        lastUpdated: .unknown)
+    public static let NewTabSectionNameFooter = MZLocalizedString(
+        "Settings.NewTab.TopSectionNameFooter",
+        value: "Choose what to load when opening a new tab",
+        comment: "Footer at the bottom of the New Tab screen after entering New Tab in settings",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabTopSites = MZLocalizedString(
+        "Settings.NewTab.Option.FirefoxHome",
+        value: "Firefox Home",
+        comment: "Option in settings to show Firefox Home when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabBookmarks = MZLocalizedString(
+        "Settings.NewTab.Option.Bookmarks",
+        value: "Bookmarks",
+        comment: "Option in settings to show bookmarks when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabHistory = MZLocalizedString(
+        "Settings.NewTab.Option.History",
+        value: "History",
+        comment: "Option in settings to show history when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabReadingList = MZLocalizedString(
+        "Settings.NewTab.Option.ReadingList",
+        value: "Show your Reading List",
+        comment: "Option in settings to show reading list when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabBlankPage = MZLocalizedString(
+        "Settings.NewTab.Option.BlankPage",
+        value: "Blank Page",
+        comment: "Option in settings to show a blank page when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabHomePage = MZLocalizedString(
+        "Settings.NewTab.Option.HomePage",
+        value: "Homepage",
+        comment: "Option in settings to show your homepage when you open a new tab",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabDescription = MZLocalizedString(
+        "Settings.NewTab.Description",
+        value: "When you open a New Tab:",
+        comment: "A description in settings of what the new tab choice means",
+        lastUpdated: .unknown)
     // AS Panel settings
-    public static let SettingsNewTabASTitle = MZLocalizedString("Settings.NewTab.Option.ASTitle", value: "Customize Top Sites", comment: "The title of the section in newtab that lets you modify the topsites panel", lastUpdated: .unknown)
-    public static let SettingsNewTabPocket = MZLocalizedString("Settings.NewTab.Option.Pocket", value: "Trending on Pocket", comment: "Option in settings to turn on off pocket recommendations", lastUpdated: .unknown)
-    public static let SettingsNewTabRecommendedByPocket = MZLocalizedString("Settings.NewTab.Option.RecommendedByPocket", value: "Recommended by %@", comment: "Option in settings to turn on off pocket recommendations First argument is the pocket brand name", lastUpdated: .unknown)
-    public static let SettingsNewTabRecommendedByPocketDescription = MZLocalizedString("Settings.NewTab.Option.RecommendedByPocketDescription", value: "Exceptional content curated by %@, part of the %@ family", comment: "Descriptoin for the option in settings to turn on off pocket recommendations. First argument is the pocket brand name, second argument is the pocket product name.", lastUpdated: .unknown)
-    public static let SettingsNewTabPocketFooter = MZLocalizedString("Settings.NewTab.Option.PocketFooter", value: "Great content from around the web.", comment: "Footer caption for pocket settings", lastUpdated: .unknown)
-    public static let SettingsNewTabHiglightsHistory = MZLocalizedString("Settings.NewTab.Option.HighlightsHistory", value: "Visited", comment: "Option in settings to turn off history in the highlights section", lastUpdated: .unknown)
-    public static let SettingsNewTabHighlightsBookmarks = MZLocalizedString("Settings.NewTab.Option.HighlightsBookmarks", value: "Recent Bookmarks", comment: "Option in the settings to turn off recent bookmarks in the Highlights section", lastUpdated: .unknown)
-    public static let SettingsTopSitesCustomizeTitle = MZLocalizedString("Settings.NewTab.Option.CustomizeTitle", value: "Customize Firefox Home", comment: "The title for the section to customize top sites in the new tab settings page.", lastUpdated: .unknown)
-    public static let SettingsTopSitesCustomizeFooter = MZLocalizedString("Settings.NewTab.Option.CustomizeFooter", value: "The sites you visit most", comment: "The footer for the section to customize top sites in the new tab settings page.", lastUpdated: .unknown)
-    public static let SettingsTopSitesCustomizeFooter2 = MZLocalizedString("Settings.NewTab.Option.CustomizeFooter2", value: "Sites you save or visit", comment: "The footer for the section to customize top sites in the new tab settings page.", lastUpdated: .unknown)
+    public static let SettingsNewTabASTitle = MZLocalizedString(
+        "Settings.NewTab.Option.ASTitle",
+        value: "Customize Top Sites",
+        comment: "The title of the section in newtab that lets you modify the topsites panel",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabPocket = MZLocalizedString(
+        "Settings.NewTab.Option.Pocket",
+        value: "Trending on Pocket",
+        comment: "Option in settings to turn on off pocket recommendations",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabRecommendedByPocket = MZLocalizedString(
+        "Settings.NewTab.Option.RecommendedByPocket",
+        value: "Recommended by %@",
+        comment: "Option in settings to turn on off pocket recommendations First argument is the pocket brand name",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabRecommendedByPocketDescription = MZLocalizedString(
+        "Settings.NewTab.Option.RecommendedByPocketDescription",
+        value: "Exceptional content curated by %@, part of the %@ family",
+        comment: "Descriptoin for the option in settings to turn on off pocket recommendations. First argument is the pocket brand name, second argument is the pocket product name.",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabPocketFooter = MZLocalizedString(
+        "Settings.NewTab.Option.PocketFooter",
+        value: "Great content from around the web.",
+        comment: "Footer caption for pocket settings",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabHiglightsHistory = MZLocalizedString(
+        "Settings.NewTab.Option.HighlightsHistory",
+        value: "Visited",
+        comment: "Option in settings to turn off history in the highlights section",
+        lastUpdated: .unknown)
+    public static let SettingsNewTabHighlightsBookmarks = MZLocalizedString(
+        "Settings.NewTab.Option.HighlightsBookmarks",
+        value: "Recent Bookmarks",
+        comment: "Option in the settings to turn off recent bookmarks in the Highlights section",
+        lastUpdated: .unknown)
+    public static let SettingsTopSitesCustomizeTitle = MZLocalizedString(
+        "Settings.NewTab.Option.CustomizeTitle",
+        value: "Customize Firefox Home",
+        comment: "The title for the section to customize top sites in the new tab settings page.",
+        lastUpdated: .unknown)
+    public static let SettingsTopSitesCustomizeFooter = MZLocalizedString(
+        "Settings.NewTab.Option.CustomizeFooter",
+        value: "The sites you visit most",
+        comment: "The footer for the section to customize top sites in the new tab settings page.",
+        lastUpdated: .unknown)
+    public static let SettingsTopSitesCustomizeFooter2 = MZLocalizedString(
+        "Settings.NewTab.Option.CustomizeFooter2",
+        value: "Sites you save or visit",
+        comment: "The footer for the section to customize top sites in the new tab settings page.",
+        lastUpdated: .unknown)
 }
 
 // MARK: - Advanced Sync Settings (Debug)


// MARK: - General
extension String {
    public static let OKString = MZLocalizedString("OK", comment: "OK button", lastUpdated: .unknown)
    public static let CancelString = MZLocalizedString("Cancel", comment: "Label for Cancel button", lastUpdated: .unknown)
    public static let NotNowString = MZLocalizedString("Toasts.NotNow", value: "Not Now", comment: "label for Not Now button", lastUpdated: .unknown)
    public static let AppStoreString = MZLocalizedString("Toasts.OpenAppStore", value: "Open App Store", comment: "Open App Store button", lastUpdated: .unknown)
    public static let UndoString = MZLocalizedString("Toasts.Undo", value: "Undo", comment: "Label for button to undo the action just performed", lastUpdated: .unknown)
    public static let OpenSettingsString = MZLocalizedString("Open Settings", comment: "See http://mzl.la/1G7uHo7", lastUpdated: .unknown)
}

// MARK: - Top Sites
extension String {
    public static let TopSitesEmptyStateDescription = MZLocalizedString("TopSites.EmptyState.Description", value: "Your most visited sites will show up here.", comment: "Description label for the empty Top Sites state.", lastUpdated: .unknown)
    public static let TopSitesEmptyStateTitle = MZLocalizedString("TopSites.EmptyState.Title", value: "Welcome to Top Sites", comment: "The title for the empty Top Sites state", lastUpdated: .unknown)
    public static let TopSitesRemoveButtonAccessibilityLabel = MZLocalizedString("TopSites.RemovePage.Button", value: "Remove page — %@", comment: "Button shown in editing mode to remove this site from the top sites panel.", lastUpdated: .unknown)
}

// MARK: - Activity Stream
extension String {
    public static let ASPocketTitle = MZLocalizedString("ActivityStream.Pocket.SectionTitle", value: "Trending on Pocket", comment: "Section title label for Recommended by Pocket section", lastUpdated: .unknown)
    public static let ASPocketTitle2 = MZLocalizedString("ActivityStream.Pocket.SectionTitle2", value: "Recommended by Pocket", comment: "Section title label for Recommended by Pocket section", lastUpdated: .unknown)
    public static let ASTopSitesTitle =  MZLocalizedString("ActivityStream.TopSites.SectionTitle", value: "Top Sites", comment: "Section title label for Top Sites", lastUpdated: .unknown)
    public static let ASShortcutsTitle =  MZLocalizedString("ActivityStream.Shortcuts.SectionTitle", value: "Shortcuts", comment: "Section title label for Shortcuts", lastUpdated: .unknown)
    public static let HighlightVistedText = MZLocalizedString("ActivityStream.Highlights.Visited", value: "Visited", comment: "The description of a highlight if it is a site the user has visited", lastUpdated: .unknown)
    public static let HighlightBookmarkText = MZLocalizedString("ActivityStream.Highlights.Bookmark", value: "Bookmarked", comment: "The description of a highlight if it is a site the user has bookmarked", lastUpdated: .unknown)
    public static let PocketTrendingText = MZLocalizedString("ActivityStream.Pocket.Trending", value: "Trending", comment: "The description of a Pocket Story", lastUpdated: .unknown)
    public static let PocketMoreStoriesText = MZLocalizedString("ActivityStream.Pocket.MoreLink", value: "More", comment: "The link that shows more Pocket trending stories", lastUpdated: .unknown)
    public static let RecentlyBookmarkedTitle = MZLocalizedString("ActivityStream.NewRecentBookmarks.Title", value: "Recent Bookmarks", comment: "Section title label for recently bookmarked websites", lastUpdated: .unknown)
    public static let RecentlySavedSectionTitle = MZLocalizedString("ActivityStream.Library.Title", value: "Recently Saved", comment: "A string used to signify the start of the Recently Saved section in Home Screen.", lastUpdated: .unknown)
    public static let RecentlySavedShowAllText = MZLocalizedString("RecentlySaved.Actions.More", value: "Show All", comment: "More button text for Recently Saved items at the home page.", lastUpdated: .unknown)
}

// MARK: - Home Panel Context Menu
extension String {
    public static let OpenInNewTabContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.OpenInNewTab", value: "Open in New Tab", comment: "The title for the Open in New Tab context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let OpenInNewPrivateTabContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.OpenInNewPrivateTab.v101", value: "Open in a Private Tab", comment: "The title for the Open in New Private Tab context menu action for sites in Home Panels", lastUpdated: .v101)
    public static let BookmarkContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.Bookmark", value: "Bookmark", comment: "The title for the Bookmark context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let RemoveBookmarkContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.RemoveBookmark", value: "Remove Bookmark", comment: "The title for the Remove Bookmark context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let DeleteFromHistoryContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.DeleteFromHistory", value: "Delete from History", comment: "The title for the Delete from History context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let ShareContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.Share", value: "Share", comment: "The title for the Share context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let RemoveContextMenuTitle = MZLocalizedString("HomePanel.ContextMenu.Remove", value: "Remove", comment: "The title for the Remove context menu action for sites in Home Panels", lastUpdated: .unknown)
    public static let PinTopsiteActionTitle = MZLocalizedString("ActivityStream.ContextMenu.PinTopsite", value: "Pin to Top Sites", comment: "The title for the pinning a topsite action", lastUpdated: .unknown)
    public static let PinTopsiteActionTitle2 = MZLocalizedString("ActivityStream.ContextMenu.PinTopsite2", value: "Pin", comment: "The title for the pinning a topsite action", lastUpdated: .unknown)
    public static let UnpinTopsiteActionTitle2 = MZLocalizedString("ActivityStream.ContextMenu.UnpinTopsite", value: "Unpin", comment: "The title for the unpinning a topsite action", lastUpdated: .unknown)
    public static let AddToShortcutsActionTitle = MZLocalizedString("ActivityStream.ContextMenu.AddToShortcuts", value: "Add to Shortcuts", comment: "The title for the pinning a shortcut action", lastUpdated: .unknown)
    public static let RemoveFromShortcutsActionTitle = MZLocalizedString("ActivityStream.ContextMenu.RemoveFromShortcuts", value: "Remove from Shortcuts", comment: "The title for removing a shortcut action", lastUpdated: .unknown)
    public static let RemovePinTopsiteActionTitle = MZLocalizedString("ActivityStream.ContextMenu.RemovePinTopsite", value: "Remove Pinned Site", comment: "The title for removing a pinned topsite action", lastUpdated: .unknown)
}

// MARK: - PhotonActionSheet String
extension String {
    public static let CloseButtonTitle = MZLocalizedString("PhotonMenu.close", value: "Close", comment: "Button for closing the menu action sheet", lastUpdated: .unknown)
}

// MARK: - Home page
extension String {
    public static let SettingsHomePageSectionName = MZLocalizedString("Settings.HomePage.SectionName", value: "Homepage", comment: "Label used as an item in Settings. When touched it will open a dialog to configure the home page and its uses.", lastUpdated: .unknown)
    public static let SettingsHomePageTitle = MZLocalizedString("Settings.HomePage.Title", value: "Homepage Settings", comment: "Title displayed in header of the setting panel.", lastUpdated: .unknown)
    public static let SettingsHomePageURLSectionTitle = MZLocalizedString("Settings.HomePage.URL.Title", value: "Current Homepage", comment: "Title of the setting section containing the URL of the current home page.", lastUpdated: .unknown)
    public static let SettingsHomePageUseCurrentPage = MZLocalizedString("Settings.HomePage.UseCurrent.Button", value: "Use Current Page", comment: "Button in settings to use the current page as home page.", lastUpdated: .unknown)
    public static let SettingsHomePagePlaceholder = MZLocalizedString("Settings.HomePage.URL.Placeholder", value: "Enter a webpage", comment: "Placeholder text in the homepage setting when no homepage has been set.", lastUpdated: .unknown)
    public static let SettingsHomePageUseCopiedLink = MZLocalizedString("Settings.HomePage.UseCopiedLink.Button", value: "Use Copied Link", comment: "Button in settings to use the current link on the clipboard as home page.", lastUpdated: .unknown)
    public static let SettingsHomePageUseDefault = MZLocalizedString("Settings.HomePage.UseDefault.Button", value: "Use Default", comment: "Button in settings to use the default home page. If no default is set, then this button isn't shown.", lastUpdated: .unknown)
    public static let SettingsHomePageClear = MZLocalizedString("Settings.HomePage.Clear.Button", value: "Clear", comment: "Button in settings to clear the home page.", lastUpdated: .unknown)
    public static let SetHomePageDialogTitle = MZLocalizedString("HomePage.Set.Dialog.Title", value: "Do you want to use this web page as your home page?", comment: "Alert dialog title when the user opens the home page for the first time.", lastUpdated: .unknown)
    public static let SetHomePageDialogMessage = MZLocalizedString("HomePage.Set.Dialog.Message", value: "You can change this at any time in Settings", comment: "Alert dialog body when the user opens the home page for the first time.", lastUpdated: .unknown)
    public static let SetHomePageDialogYes = MZLocalizedString("HomePage.Set.Dialog.OK", value: "Set Homepage", comment: "Button accepting changes setting the home page for the first time.", lastUpdated: .unknown)
    public static let SetHomePageDialogNo = MZLocalizedString("HomePage.Set.Dialog.Cancel", value: "Cancel", comment: "Button cancelling changes setting the home page for the first time.", lastUpdated: .unknown)
    public static let ReopenLastTabAlertTitle = MZLocalizedString("ReopenAlert.Title", value: "Reopen Last Closed Tab", comment: "Reopen alert title shown at home page.", lastUpdated: .unknown)
    public static let ReopenLastTabButtonText = MZLocalizedString("ReopenAlert.Actions.Reopen", value: "Reopen", comment: "Reopen button text shown in reopen-alert at home page.", lastUpdated: .unknown)
    public static let ReopenLastTabCancelText = MZLocalizedString("ReopenAlert.Actions.Cancel", value: "Cancel", comment: "Cancel button text shown in reopen-alert at home page.", lastUpdated: .unknown)
}

// MARK: - Settings
extension String {
    public static let SettingsGeneralSectionTitle = MZLocalizedString("Settings.General.SectionName", value: "General", comment: "General settings section title", lastUpdated: .unknown)
    public static let SettingsClearPrivateDataClearButton = MZLocalizedString("Settings.ClearPrivateData.Clear.Button", value: "Clear Private Data", comment: "Button in settings that clears private data for the selected items.", lastUpdated: .unknown)
    public static let SettingsClearAllWebsiteDataButton = MZLocalizedString("Settings.ClearAllWebsiteData.Clear.Button", value: "Clear All Website Data", comment: "Button in Data Management that clears all items.", lastUpdated: .unknown)
    public static let SettingsClearSelectedWebsiteDataButton = MZLocalizedString("Settings.ClearSelectedWebsiteData.ClearSelected.Button", value: "Clear Items: %1$@", comment: "Button in Data Management that clears private data for the selected items. Parameter is the number of items to be cleared", lastUpdated: .unknown)
    public static let SettingsClearPrivateDataSectionName = MZLocalizedString("Settings.ClearPrivateData.SectionName", value: "Clear Private Data", comment: "Label used as an item in Settings. When touched it will open a dialog prompting the user to make sure they want to clear all of their private data.", lastUpdated: .unknown)
    public static let SettingsDataManagementSectionName = MZLocalizedString("Settings.DataManagement.SectionName", value: "Data Management", comment: "Label used as an item in Settings. When touched it will open a dialog prompting the user to make sure they want to clear all of their private data.", lastUpdated: .unknown)
    public static let SettingsFilterSitesSearchLabel = MZLocalizedString("Settings.DataManagement.SearchLabel", value: "Filter Sites", comment: "Default text in search bar for Data Management", lastUpdated: .unknown)
    public static let SettingsClearPrivateDataTitle = MZLocalizedString("Settings.ClearPrivateData.Title", value: "Clear Private Data", comment: "Title displayed in header of the setting panel.", lastUpdated: .unknown)
    public static let SettingsDataManagementTitle = MZLocalizedString("Settings.DataManagement.Title", value: "Data Management", comment: "Title displayed in header of the setting panel.", lastUpdated: .unknown)
    public static let SettingsWebsiteDataTitle = MZLocalizedString("Settings.WebsiteData.Title", value: "Website Data", comment: "Title displayed in header of the Data Management panel.", lastUpdated: .unknown)
    public static let SettingsWebsiteDataShowMoreButton = MZLocalizedString("Settings.WebsiteData.ButtonShowMore", value: "Show More", comment: "Button shows all websites on website data tableview", lastUpdated: .unknown)
    public static let SettingsEditWebsiteSearchButton = MZLocalizedString("Settings.WebsiteData.ButtonEdit", value: "Edit", comment: "Button to edit website search results", lastUpdated: .unknown)
    public static let SettingsDeleteWebsiteSearchButton = MZLocalizedString("Settings.WebsiteData.ButtonDelete", value: "Delete", comment: "Button to delete website in search results", lastUpdated: .unknown)
    public static let SettingsDoneWebsiteSearchButton = MZLocalizedString("Settings.WebsiteData.ButtonDone", value: "Done", comment: "Button to exit edit website search results", lastUpdated: .unknown)
    public static let SettingsDisconnectSyncAlertTitle = MZLocalizedString("Settings.Disconnect.Title", value: "Disconnect Sync?", comment: "Title of the alert when prompting the user asking to disconnect.", lastUpdated: .unknown)
    public static let SettingsDisconnectSyncAlertBody = MZLocalizedString("Settings.Disconnect.Body", value: "Firefox will stop syncing with your account, but won’t delete any of your browsing data on this device.", comment: "Body of the alert when prompting the user asking to disconnect.", lastUpdated: .unknown)
    public static let SettingsDisconnectSyncButton = MZLocalizedString("Settings.Disconnect.Button", value: "Disconnect Sync", comment: "Button displayed at the bottom of settings page allowing users to Disconnect from FxA", lastUpdated: .unknown)
    public static let SettingsDisconnectCancelAction = MZLocalizedString("Settings.Disconnect.CancelButton", value: "Cancel", comment: "Cancel action button in alert when user is prompted for disconnect", lastUpdated: .unknown)
    public static let SettingsDisconnectDestructiveAction = MZLocalizedString("Settings.Disconnect.DestructiveButton", value: "Disconnect", comment: "Destructive action button in alert when user is prompted for disconnect", lastUpdated: .unknown)
    public static let SettingsSearchDoneButton = MZLocalizedString("Settings.Search.Done.Button", value: "Done", comment: "Button displayed at the top of the search settings.", lastUpdated: .unknown)
    public static let SettingsSearchEditButton = MZLocalizedString("Settings.Search.Edit.Button", value: "Edit", comment: "Button displayed at the top of the search settings.", lastUpdated: .unknown)
    public static let UseTouchID = MZLocalizedString("Use Touch ID", tableName: "AuthenticationManager", comment: "List section title for when to use Touch ID", lastUpdated: .unknown)
    public static let UseFaceID = MZLocalizedString("Use Face ID", tableName: "AuthenticationManager", comment: "List section title for when to use Face ID", lastUpdated: .unknown)
    public static let SettingsCopyAppVersionAlertTitle = MZLocalizedString("Settings.CopyAppVersion.Title", value: "Copied to clipboard", comment: "Copy app version alert shown in settings.", lastUpdated: .unknown)
}

// MARK: - Error pages
extension String {
    public static let ErrorPagesAdvancedButton = MZLocalizedString("ErrorPages.Advanced.Button", value: "Advanced", comment: "Label for button to perform advanced actions on the error page", lastUpdated: .unknown)
    public static let ErrorPagesAdvancedWarning1 = MZLocalizedString("ErrorPages.AdvancedWarning1.Text", value: "Warning: we can’t confirm your connection to this website is secure.", comment: "Warning text when clicking the Advanced button on error pages", lastUpdated: .unknown)
    public static let ErrorPagesAdvancedWarning2 = MZLocalizedString("ErrorPages.AdvancedWarning2.Text", value: "It may be a misconfiguration or tampering by an attacker. Proceed if you accept the potential risk.", comment: "Additional warning text when clicking the Advanced button on error pages", lastUpdated: .unknown)
    public static let ErrorPagesCertWarningDescription = MZLocalizedString("ErrorPages.CertWarning.Description", value: "The owner of %@ has configured their website improperly. To protect your information from being stolen, Firefox has not connected to this website.", comment: "Warning text on the certificate error page", lastUpdated: .unknown)
    public static let ErrorPagesCertWarningTitle = MZLocalizedString("ErrorPages.CertWarning.Title", value: "This Connection is Untrusted", comment: "Title on the certificate error page", lastUpdated: .unknown)
    public static let ErrorPagesGoBackButton = MZLocalizedString("ErrorPages.GoBack.Button", value: "Go Back", comment: "Label for button to go back from the error page", lastUpdated: .unknown)
    public static let ErrorPagesVisitOnceButton = MZLocalizedString("ErrorPages.VisitOnce.Button", value: "Visit site anyway", comment: "Button label to temporarily continue to the site from the certificate error page", lastUpdated: .unknown)
}

// MARK: - Logins Helper
extension String {
    public static let LoginsHelperSaveLoginButtonTitle = MZLocalizedString("LoginsHelper.SaveLogin.Button", value: "Save Login", comment: "Button to save the user's password", lastUpdated: .unknown)
    public static let LoginsHelperDontSaveButtonTitle = MZLocalizedString("LoginsHelper.DontSave.Button", value: "Don’t Save", comment: "Button to not save the user's password", lastUpdated: .unknown)
    public static let LoginsHelperUpdateButtonTitle = MZLocalizedString("LoginsHelper.Update.Button", value: "Update", comment: "Button to update the user's password", lastUpdated: .unknown)
    public static let LoginsHelperDontUpdateButtonTitle = MZLocalizedString("LoginsHelper.DontUpdate.Button", value: "Don’t Update", comment: "Button to not update the user's password", lastUpdated: .unknown)
}

// MARK: - Downloads Panel
extension String {
    public static let DownloadsPanelEmptyStateTitle = MZLocalizedString("DownloadsPanel.EmptyState.Title", value: "Downloaded files will show up here.", comment: "Title for the Downloads Panel empty state.", lastUpdated: .unknown)
    public static let DownloadsPanelDeleteTitle = MZLocalizedString("DownloadsPanel.Delete.Title", value: "Delete", comment: "Action button for deleting downloaded files in the Downloads panel.", lastUpdated: .unknown)
    public static let DownloadsPanelShareTitle = MZLocalizedString("DownloadsPanel.Share.Title", value: "Share", comment: "Action button for sharing downloaded files in the Downloads panel.", lastUpdated: .unknown)
}

// MARK: - History Panel
extension String {
    public static let SyncedTabsTableViewCellTitle = MZLocalizedString("HistoryPanel.SyncedTabsCell.Title", value: "Synced Devices", comment: "Title for the Synced Tabs Cell in the History Panel", lastUpdated: .unknown)
    public static let HistoryBackButtonTitle = MZLocalizedString("HistoryPanel.HistoryBackButton.Title", value: "History", comment: "Title for the Back to History button in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelStateTitle = MZLocalizedString("HistoryPanel.EmptySyncedTabsState.Title", value: "Firefox Sync", comment: "Title for the empty synced tabs state in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelNotSignedInStateDescription = MZLocalizedString("HistoryPanel.EmptySyncedTabsPanelNotSignedInState.Description", value: "Sign in to view a list of tabs from your other devices.", comment: "Description for the empty synced tabs 'not signed in' state in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelNotYetVerifiedStateDescription = MZLocalizedString("HistoryPanel.EmptySyncedTabsPanelNotYetVerifiedState.Description", value: "Your account needs to be verified.", comment: "Description for the empty synced tabs 'not yet verified' state in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelSingleDeviceSyncStateDescription = MZLocalizedString("HistoryPanel.EmptySyncedTabsPanelSingleDeviceSyncState.Description", value: "Want to see your tabs from other devices here?", comment: "Description for the empty synced tabs 'single device Sync' state in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelTabSyncDisabledStateDescription = MZLocalizedString("HistoryPanel.EmptySyncedTabsPanelTabSyncDisabledState.Description", value: "Turn on tab syncing to view a list of tabs from your other devices.", comment: "Description for the empty synced tabs 'tab sync disabled' state in the History Panel", lastUpdated: .unknown)
    public static let EmptySyncedTabsPanelNullStateDescription = MZLocalizedString("HistoryPanel.EmptySyncedTabsNullState.Description", value: "Your tabs from other devices show up here.", comment: "Description for the empty synced tabs null state in the History Panel", lastUpdated: .unknown)
    public static let SyncedTabsTableViewCellDescription = MZLocalizedString("HistoryPanel.SyncedTabsCell.Description.Pluralized", value: "%d device(s) connected", comment: "Description that corresponds with a number of devices connected for the Synced Tabs Cell in the History Panel", lastUpdated: .unknown)
    public static let HistoryPanelEmptyStateTitle = MZLocalizedString("HistoryPanel.EmptyState.Title", value: "Websites you’ve visited recently will show up here.", comment: "Title for the History Panel empty state.", lastUpdated: .unknown)
    public static let RecentlyClosedTabsPanelTitle = MZLocalizedString("RecentlyClosedTabsPanel.Title", value: "Recently Closed", comment: "Title for the Recently Closed Tabs Panel", lastUpdated: .unknown)
    public static let FirefoxHomePage = MZLocalizedString("Firefox.HomePage.Title", value: "Firefox Home Page", comment: "Title for firefox about:home page in tab history list", lastUpdated: .unknown)
    public static let HistoryPanelDelete = MZLocalizedString("Delete", tableName: "HistoryPanel", comment: "Action button for deleting history entries in the history panel.", lastUpdated: .unknown)
}

// MARK: - Clear recent history action menu
extension String {
    public static let ClearHistoryMenuTitle = MZLocalizedString("HistoryPanel.ClearHistoryMenuTitle", value: "Clearing Recent History will remove history, cookies, and other browser data.", comment: "Title for popup action menu to clear recent history.", lastUpdated: .unknown)
    public static let ClearHistoryMenuOptionTheLastHour = MZLocalizedString("HistoryPanel.ClearHistoryMenuOptionTheLastHour", value: "The Last Hour", comment: "Button to perform action to clear history for the last hour", lastUpdated: .unknown)
    public static let ClearHistoryMenuOptionToday = MZLocalizedString("HistoryPanel.ClearHistoryMenuOptionToday", value: "Today", comment: "Button to perform action to clear history for today only", lastUpdated: .unknown)
    public static let ClearHistoryMenuOptionTodayAndYesterday = MZLocalizedString("HistoryPanel.ClearHistoryMenuOptionTodayAndYesterday", value: "Today and Yesterday", comment: "Button to perform action to clear history for yesterday and today", lastUpdated: .unknown)
    public static let ClearHistoryMenuOptionEverything = MZLocalizedString("HistoryPanel.ClearHistoryMenuOptionEverything", value: "Everything", comment: "Option title to clear all browsing history.", lastUpdated: .unknown)
}

// MARK: - Syncing
extension String {
    public static let SyncingMessageWithEllipsis = MZLocalizedString("Sync.SyncingEllipsis.Label", value: "Syncing…", comment: "Message displayed when the user's account is syncing with ellipsis at the end", lastUpdated: .unknown)
    public static let SyncingMessageWithoutEllipsis = MZLocalizedString("Sync.Syncing.Label", value: "Syncing", comment: "Message displayed when the user's account is syncing with no ellipsis", lastUpdated: .unknown)

    public static let FirstTimeSyncLongTime = MZLocalizedString("Sync.FirstTimeMessage.Label", value: "Your first sync may take a while", comment: "Message displayed when the user syncs for the first time", lastUpdated: .unknown)

    public static let FirefoxSyncOfflineTitle = MZLocalizedString("SyncState.Offline.Title", value: "Sync is offline", comment: "Title for Sync status message when Sync failed due to being offline", lastUpdated: .unknown)
    public static let FirefoxSyncNotStartedTitle = MZLocalizedString("SyncState.NotStarted.Title", value: "Sync is unavailable", comment: "Title for Sync status message when Sync failed to start.", lastUpdated: .unknown)
    public static let FirefoxSyncPartialTitle = MZLocalizedString("SyncState.Partial.Title", value: "Sync is experiencing issues syncing %@", comment: "Title for Sync status message when a component of Sync failed to complete, where %@ represents the name of the component, i.e. Sync is experiencing issues syncing Bookmarks", lastUpdated: .unknown)
    public static let FirefoxSyncFailedTitle = MZLocalizedString("SyncState.Failed.Title", value: "Syncing has failed", comment: "Title for Sync status message when synchronization failed to complete", lastUpdated: .unknown)
    public static let FirefoxSyncTroubleshootTitle = MZLocalizedString("Settings.TroubleShootSync.Title", value: "Troubleshoot", comment: "Title of link to help page to find out how to solve Sync issues", lastUpdated: .unknown)
    public static let FirefoxSyncCreateAccount = MZLocalizedString("Sync.NoAccount.Description", value: "No account? Create one to sync Firefox between devices.", comment: "String displayed on Sign In to Sync page that allows the user to create a new account.", lastUpdated: .unknown)

    public static let FirefoxSyncBookmarksEngine = MZLocalizedString("Bookmarks", comment: "Toggle bookmarks syncing setting", lastUpdated: .unknown)
    public static let FirefoxSyncHistoryEngine = MZLocalizedString("History", comment: "Toggle history syncing setting", lastUpdated: .unknown)
    public static let FirefoxSyncTabsEngine = MZLocalizedString("Open Tabs", comment: "Toggle tabs syncing setting", lastUpdated: .unknown)
    public static let FirefoxSyncLoginsEngine = MZLocalizedString("Logins", comment: "Toggle logins syncing setting", lastUpdated: .unknown)

    public static func localizedStringForSyncComponent(_ componentName: String) -> String? {
        switch componentName {
        case "bookmarks":
            return MZLocalizedString("SyncState.Bookmark.Title", value: "Bookmarks", comment: "The Bookmark sync component, used in SyncState.Partial.Title", lastUpdated: .unknown)
        case "clients":
            return MZLocalizedString("SyncState.Clients.Title", value: "Remote Clients", comment: "The Remote Clients sync component, used in SyncState.Partial.Title", lastUpdated: .unknown)
        case "tabs":
            return MZLocalizedString("SyncState.Tabs.Title", value: "Tabs", comment: "The Tabs sync component, used in SyncState.Partial.Title", lastUpdated: .unknown)
        case "logins":
            return MZLocalizedString("SyncState.Logins.Title", value: "Logins", comment: "The Logins sync component, used in SyncState.Partial.Title", lastUpdated: .unknown)
        case "history":
            return MZLocalizedString("SyncState.History.Title", value: "History", comment: "The History sync component, used in SyncState.Partial.Title", lastUpdated: .unknown)
        default: return nil
        }
    }

// MARK: - Search
extension String {
    public struct Search {
        public static let SuggestSectionTitle = MZLocalizedString(
            "Search.SuggestSectionTitle.v102",
            value: "Firefox Suggest",
            comment: "When making a new search from the awesome bar, suggestions appear to the user as they write new letters in their search. Different types of suggestions can appear. This string will be used as a header to separate Firefox suggestions from normal suggestions.",
            lastUpdated: .v102)
    }
}

