summaryrefslogtreecommitdiffstats
path: root/toolkit/locales
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /toolkit/locales
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/locales')
-rw-r--r--toolkit/locales/Makefile.in22
-rw-r--r--toolkit/locales/all-locales14
-rw-r--r--toolkit/locales/en-US/chrome/alerts/alert.properties23
-rw-r--r--toolkit/locales/en-US/chrome/autoconfig/autoconfig.properties12
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/mac/intl.properties7
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/mac/platformKeys.properties30
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/unix/intl.properties7
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/unix/platformKeys.properties30
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/win/intl.properties7
-rw-r--r--toolkit/locales/en-US/chrome/global-platform/win/platformKeys.properties30
-rw-r--r--toolkit/locales/en-US/chrome/global/aboutStudies.properties32
-rw-r--r--toolkit/locales/en-US/chrome/global/autocomplete.properties9
-rw-r--r--toolkit/locales/en-US/chrome/global/browser.properties7
-rw-r--r--toolkit/locales/en-US/chrome/global/commonDialogs.properties46
-rw-r--r--toolkit/locales/en-US/chrome/global/contentAreaCommands.properties28
-rw-r--r--toolkit/locales/en-US/chrome/global/dialog.properties12
-rw-r--r--toolkit/locales/en-US/chrome/global/extensions.properties26
-rw-r--r--toolkit/locales/en-US/chrome/global/fallbackMenubar.properties8
-rw-r--r--toolkit/locales/en-US/chrome/global/filepicker.properties18
-rw-r--r--toolkit/locales/en-US/chrome/global/intl.css11
-rw-r--r--toolkit/locales/en-US/chrome/global/intl.properties43
-rw-r--r--toolkit/locales/en-US/chrome/global/keys.properties70
-rw-r--r--toolkit/locales/en-US/chrome/global/narrate.properties25
-rw-r--r--toolkit/locales/en-US/chrome/global/printdialog.properties53
-rw-r--r--toolkit/locales/en-US/chrome/global/resetProfile.properties14
-rw-r--r--toolkit/locales/en-US/chrome/global/viewSource.properties16
-rw-r--r--toolkit/locales/en-US/chrome/global/wizard.properties8
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/downloads/downloads.properties6
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties23
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties55
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/update/updates.properties45
-rw-r--r--toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties75
-rw-r--r--toolkit/locales/en-US/chrome/places/places.properties32
-rw-r--r--toolkit/locales/en-US/crashreporter/aboutcrashes.ftl25
-rw-r--r--toolkit/locales/en-US/crashreporter/crashreporter.ini58
-rw-r--r--toolkit/locales/en-US/services/accounts.ftl8
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutAbout.ftl9
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutAddons.ftl518
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutCompat.ftl24
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutGlean.ftl101
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl26
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutLogging.ftl56
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutMozilla.ftl11
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl67
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl67
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl46
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutProcesses.ftl197
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutProfiles.ftl74
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutReader.ftl52
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutRights.ftl132
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl39
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutSupport.ftl415
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl136
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutThirdParty.ftl83
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutWebrtc.ftl282
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutWindowsMessages.ftl19
-rw-r--r--toolkit/locales/en-US/toolkit/about/abuseReports.ftl108
-rw-r--r--toolkit/locales/en-US/toolkit/about/certviewer.ftl121
-rw-r--r--toolkit/locales/en-US/toolkit/about/config.ftl54
-rw-r--r--toolkit/locales/en-US/toolkit/about/url-classifier.ftl62
-rw-r--r--toolkit/locales/en-US/toolkit/branding/accounts.ftl11
-rw-r--r--toolkit/locales/en-US/toolkit/branding/brandings.ftl42
-rw-r--r--toolkit/locales/en-US/toolkit/downloads/downloadUI.ftl51
-rw-r--r--toolkit/locales/en-US/toolkit/downloads/downloadUtils.ftl106
-rw-r--r--toolkit/locales/en-US/toolkit/featuregates/features.ftl58
-rw-r--r--toolkit/locales/en-US/toolkit/global/alert.ftl8
-rw-r--r--toolkit/locales/en-US/toolkit/global/appPicker.ftl10
-rw-r--r--toolkit/locales/en-US/toolkit/global/browser-utils.ftl11
-rw-r--r--toolkit/locales/en-US/toolkit/global/commonDialog.ftl20
-rw-r--r--toolkit/locales/en-US/toolkit/global/createProfileWizard.ftl53
-rw-r--r--toolkit/locales/en-US/toolkit/global/cspErrors.ftl32
-rw-r--r--toolkit/locales/en-US/toolkit/global/datepicker.ftl48
-rw-r--r--toolkit/locales/en-US/toolkit/global/datetimebox.ftl41
-rw-r--r--toolkit/locales/en-US/toolkit/global/extensionPermissions.ftl32
-rw-r--r--toolkit/locales/en-US/toolkit/global/extensions.ftl111
-rw-r--r--toolkit/locales/en-US/toolkit/global/handlerDialog.ftl97
-rw-r--r--toolkit/locales/en-US/toolkit/global/htmlForm.ftl14
-rw-r--r--toolkit/locales/en-US/toolkit/global/notification.ftl16
-rw-r--r--toolkit/locales/en-US/toolkit/global/popupnotification.ftl10
-rw-r--r--toolkit/locales/en-US/toolkit/global/processTypes.ftl60
-rw-r--r--toolkit/locales/en-US/toolkit/global/profileDowngrade.ftl19
-rw-r--r--toolkit/locales/en-US/toolkit/global/profileSelection.ftl38
-rw-r--r--toolkit/locales/en-US/toolkit/global/resetProfile.ftl15
-rw-r--r--toolkit/locales/en-US/toolkit/global/run-from-dmg.ftl27
-rw-r--r--toolkit/locales/en-US/toolkit/global/tabprompts.ftl13
-rw-r--r--toolkit/locales/en-US/toolkit/global/textActions.ftl79
-rw-r--r--toolkit/locales/en-US/toolkit/global/tree.ftl6
-rw-r--r--toolkit/locales/en-US/toolkit/global/unknownContentType.ftl42
-rw-r--r--toolkit/locales/en-US/toolkit/global/videocontrols.ftl74
-rw-r--r--toolkit/locales/en-US/toolkit/global/wizard.ftl37
-rw-r--r--toolkit/locales/en-US/toolkit/intl/languageNames.ftl214
-rw-r--r--toolkit/locales/en-US/toolkit/intl/regionNames.ftl279
-rw-r--r--toolkit/locales/en-US/toolkit/main-window/autocomplete.ftl22
-rw-r--r--toolkit/locales/en-US/toolkit/main-window/findbar.ftl74
-rw-r--r--toolkit/locales/en-US/toolkit/neterror/certError.ftl143
-rw-r--r--toolkit/locales/en-US/toolkit/neterror/netError.ftl174
-rw-r--r--toolkit/locales/en-US/toolkit/neterror/nsserrors.ftl348
-rw-r--r--toolkit/locales/en-US/toolkit/payments/payments.ftl52
-rw-r--r--toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl71
-rw-r--r--toolkit/locales/en-US/toolkit/preferences/preferences.ftl39
-rw-r--r--toolkit/locales/en-US/toolkit/printing/printDialogs.ftl112
-rw-r--r--toolkit/locales/en-US/toolkit/printing/printPreview.ftl72
-rw-r--r--toolkit/locales/en-US/toolkit/printing/printUI.ftl148
-rw-r--r--toolkit/locales/en-US/toolkit/updates/backgroundupdate.ftl5
-rw-r--r--toolkit/locales/en-US/toolkit/updates/elevation.ftl22
-rw-r--r--toolkit/locales/en-US/toolkit/updates/history.ftl33
-rw-r--r--toolkit/locales/gen_multilocale.py17
-rw-r--r--toolkit/locales/generate_locale_ini.py9
-rw-r--r--toolkit/locales/generate_update_locale.py11
-rw-r--r--toolkit/locales/jar.mn68
-rw-r--r--toolkit/locales/l10n.ini13
-rw-r--r--toolkit/locales/l10n.mk242
-rw-r--r--toolkit/locales/l10n.toml35
-rw-r--r--toolkit/locales/moz.build48
114 files changed, 7066 insertions, 0 deletions
diff --git a/toolkit/locales/Makefile.in b/toolkit/locales/Makefile.in
new file mode 100644
index 0000000000..428596223e
--- /dev/null
+++ b/toolkit/locales/Makefile.in
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+include $(topsrcdir)/config/rules.mk
+
+l10n-%: AB_CD=$*
+l10n-%:
+ @$(MAKE) -C ../../netwerk/locales/ l10n AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) -C ../../dom/locales/ l10n AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) -C ../../security/manager/locales/ l10n AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) -C ../../devtools/shared/locales/ l10n AB_CD=$* XPI_NAME=locale-$*
+ @$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$*
+
+# target to be used by multi-locale l10n builds, just add this locale
+# like regular chrome code
+chrome-%: AB_CD=$*
+chrome-%:
+ @$(MAKE) -C $(DEPTH)/netwerk/locales/ chrome AB_CD=$*
+ @$(MAKE) -C $(DEPTH)/dom/locales/ chrome AB_CD=$*
+ @$(MAKE) -C $(DEPTH)/security/manager/locales/ chrome AB_CD=$*
+ @$(MAKE) chrome AB_CD=$*
diff --git a/toolkit/locales/all-locales b/toolkit/locales/all-locales
new file mode 100644
index 0000000000..16f4207e18
--- /dev/null
+++ b/toolkit/locales/all-locales
@@ -0,0 +1,14 @@
+cs
+el
+fi
+fr
+ga-IE
+he
+hu
+it
+nb-NO
+nl
+pl
+ro
+sv-SE
+ru
diff --git a/toolkit/locales/en-US/chrome/alerts/alert.properties b/toolkit/locales/en-US/chrome/alerts/alert.properties
new file mode 100644
index 0000000000..af2e432a45
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/alerts/alert.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(closeButton.title): Used as the close button text for web notifications on OS X.
+# This should ideally match the string that OS X uses for the close button on alert-type
+# notifications. OS X will truncate the value if it's too long.
+closeButton.title = Close
+# LOCALIZATION NOTE(actionButton.label): Used as the button label to provide more actions on OS X notifications. OS X will truncate this if it's too long.
+actionButton.label = …
+# LOCALIZATION NOTE(webActions.disableForOrigin.label): %S is replaced
+# with the hostname origin of the notification.
+webActions.disableForOrigin.label = Disable notifications from %S
+
+# LOCALIZATION NOTE(source.label): Used to show the URL of the site that
+# sent the notification (e.g., "via mozilla.org"). "%1$S" is the source host
+# and port.
+source.label=via %1$S
+webActions.settings.label = Notification settings
+
+# LOCALIZATION NOTE(pauseNotifications.label): %S is replaced with the
+# brandShortName of the application.
+pauseNotifications.label = Pause notifications until %S restarts
diff --git a/toolkit/locales/en-US/chrome/autoconfig/autoconfig.properties b/toolkit/locales/en-US/chrome/autoconfig/autoconfig.properties
new file mode 100644
index 0000000000..7c5e15ea18
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/autoconfig/autoconfig.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+readConfigTitle = Configuration Error
+readConfigMsg = Failed to read the configuration file. Please contact your system administrator.
+
+autoConfigTitle = AutoConfig Alert
+autoConfigMsg = Netscape.cfg/AutoConfig failed. Please contact your system administrator. \n Error: %S failed:
+
+emailPromptTitle = Email Address
+emailPromptMsg = Enter your email address
diff --git a/toolkit/locales/en-US/chrome/global-platform/mac/intl.properties b/toolkit/locales/en-US/chrome/global-platform/mac/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/mac/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/toolkit/locales/en-US/chrome/global-platform/mac/platformKeys.properties b/toolkit/locales/en-US/chrome/global-platform/mac/platformKeys.properties
new file mode 100644
index 0000000000..725e977441
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/mac/platformKeys.properties
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Mac
+# This file defines the on-screen display names for the various modifier keys
+# and the Return key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key - open up arrow symbol (ctrl-e)
+VK_SHIFT=\u21e7
+
+# The Command key - clover leaf symbol (ctrl-q)
+VK_META=\u2318
+
+# The Win key - never generated by native key event
+VK_WIN=win
+
+# The Option/Alt key - splitting tracks symbol (ctrl-g)
+VK_ALT=\u2325
+
+# The Control key - hat symbol (ctrl-f)
+VK_CONTROL=\u2303
+
+# The Return key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Return
+
+# The separator character used between modifiers (none on Mac OS)
+MODIFIER_SEPARATOR=
diff --git a/toolkit/locales/en-US/chrome/global-platform/unix/intl.properties b/toolkit/locales/en-US/chrome/global-platform/unix/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/unix/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/toolkit/locales/en-US/chrome/global-platform/unix/platformKeys.properties b/toolkit/locales/en-US/chrome/global-platform/unix/platformKeys.properties
new file mode 100644
index 0000000000..3a1394d871
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/unix/platformKeys.properties
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Unix
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key (Super key and Hyper keys are mapped to DOM Win key)
+VK_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/toolkit/locales/en-US/chrome/global-platform/win/intl.properties b/toolkit/locales/en-US/chrome/global-platform/win/intl.properties
new file mode 100644
index 0000000000..71265a9ef1
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/win/intl.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.ellipsis): Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+intl.ellipsis=…
diff --git a/toolkit/locales/en-US/chrome/global-platform/win/platformKeys.properties b/toolkit/locales/en-US/chrome/global-platform/win/platformKeys.properties
new file mode 100644
index 0000000000..e05354c9ae
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global-platform/win/platformKeys.properties
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Platform: Windows
+# This file defines the on-screen display names for the various modifier keys
+# and the Enter key (VK_RETURN).
+# These are used in XP menus to show keyboard shortcuts.
+
+# The Shift key
+VK_SHIFT=Shift
+
+# The Command key
+VK_META=Meta
+
+# The Win key
+VK_WIN=Win
+
+# The Alt key
+VK_ALT=Alt
+
+# The Control key
+VK_CONTROL=Ctrl
+
+# The Enter key (on the main keyboard or numpad):
+# "Enter" on Windows/Unix, "Return" on Mac
+VK_RETURN=Enter
+
+# The separator character used between modifiers
+MODIFIER_SEPARATOR=+
diff --git a/toolkit/locales/en-US/chrome/global/aboutStudies.properties b/toolkit/locales/en-US/chrome/global/aboutStudies.properties
new file mode 100644
index 0000000000..d584c94556
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/aboutStudies.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# LOCALIZATION NOTE (title): keep "Shield" in English. See
+# https://wiki.mozilla.org/Firefox/Shield/Shield_Studies for more information
+title = Shield Studies
+removeButton = Remove
+
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of active studies
+activeStudiesList = Active studies
+# LOCALIZATION NOTE (activeStudiesList): Title above a list of completed studies
+completedStudiesList = Completed studies
+# LOCALIZATION NOTE (activeStatus): Displayed for an active study
+activeStatus = Active
+# LOCALIZATION NOTE (completeStatus): Displayed for a study that is already complete
+completeStatus = Complete
+
+updateButtonWin = Update Options
+updateButtonUnix = Update Preferences
+learnMore = Learn more
+noStudies = You have not participated in any studies.
+disabledList = This is a list of studies that you have participated in. No new studies will run.
+# LOCALIZATION NOTE (enabledList): %S is brandShortName (e.g. Firefox)
+enabledList = What’s this? %S may install and run studies from time to time.
+
+# LOCALIZATION NOTE (preferenceStudyDescription) $1%S will be replaced with the
+# name of a preference (such as "stream.improvesearch.topSiteSearchShortcuts")
+# and $2%S will be replaced with the value of that preference. Both values will
+# be formatted differently than the surrounding text.
+preferenceStudyDescription = This study sets %1$S to %2$S.
diff --git a/toolkit/locales/en-US/chrome/global/autocomplete.properties b/toolkit/locales/en-US/chrome/global/autocomplete.properties
new file mode 100644
index 0000000000..105e0ff25c
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/autocomplete.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (bookmarkKeywordSearch): This is the title of autocomplete
+# entries that are bookmark keyword searches. %1$S will be replaced with the
+# domain name of the bookmark, and %2$S will be replaced with the keyword
+# search text that the user is typing. %2$S will not be empty.
+bookmarkKeywordSearch = %1$S: %2$S
diff --git a/toolkit/locales/en-US/chrome/global/browser.properties b/toolkit/locales/en-US/chrome/global/browser.properties
new file mode 100644
index 0000000000..1fd8a65de6
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/browser.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+formPostSecureToInsecureWarning.title = Security Warning
+formPostSecureToInsecureWarning.message = The information you have entered on this page will be sent over an insecure connection and could be read by a third party.\n\nAre you sure you want to send this information?
+formPostSecureToInsecureWarning.continue = Continue
diff --git a/toolkit/locales/en-US/chrome/global/commonDialogs.properties b/toolkit/locales/en-US/chrome/global/commonDialogs.properties
new file mode 100644
index 0000000000..14079b9879
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/commonDialogs.properties
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+Alert=Alert
+Confirm=Confirm
+ConfirmCheck=Confirm
+Prompt=Prompt
+# LOCALIZATION NOTE - %S is brandFullName
+PromptUsernameAndPassword3=Authentication Required - %S
+# LOCALIZATION NOTE - %S is brandFullName
+PromptPassword3=Password Required - %S
+Select=Select
+OK=OK
+Cancel=Cancel
+Yes=&Yes
+No=&No
+Save=&Save
+Revert=&Revert
+DontSave=Do&n’t Save
+ScriptDlgGenericHeading=[JavaScript Application]
+ScriptDlgHeading=The page at %S says:
+ScriptDlgNullPrincipalHeading=This page says:
+ScriptDialogLabel=Prevent this page from creating additional dialogs
+ScriptDialogLabelNullPrincipal=Don’t allow this site to prompt you again
+# LOCALIZATION NOTE (ScriptDialogLabelContentPrincipal):
+# %S is either the domain and port of the site prompting, or the name of
+# an add-on prompting.
+ScriptDialogLabelContentPrincipal=Don’t allow %S to prompt you again
+ScriptDialogPreventTitle=Confirm Dialog Preference
+# LOCALIZATION NOTE (EnterLoginForRealm3, EnterLoginForProxy3):
+# %1 is an untrusted string provided by a remote server. It could try to
+# take advantage of sentence structure in order to mislead the user (see
+# bug 244273). %1 should be integrated into the translated sentences as
+# little as possible. %2 is the url of the site being accessed.
+EnterLoginForRealm3=%2$S is requesting your username and password. The site says: “%1$S”
+EnterLoginForProxy3=The proxy %2$S is requesting a username and password. The site says: “%1$S”
+EnterUserPasswordFor2=%1$S is requesting your username and password.
+EnterUserPasswordForCrossOrigin2=%1$S is requesting your username and password. WARNING: Your password will not be sent to the website you are currently visiting!
+EnterPasswordFor=Enter password for %1$S on %2$S
+EnterCredentials=This site is asking you to sign in.
+# %S is the username for which a password is requested.
+EnterPasswordOnlyFor=This site is asking you to sign in as %S.
+# %S is the domain of the site being accessed.
+EnterCredentialsCrossOrigin=This site is asking you to sign in. Warning: Your login information will be shared with %S, not the website you are currently visiting.
+SignIn=Sign in
diff --git a/toolkit/locales/en-US/chrome/global/contentAreaCommands.properties b/toolkit/locales/en-US/chrome/global/contentAreaCommands.properties
new file mode 100644
index 0000000000..311df92c30
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/contentAreaCommands.properties
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# context menu strings
+
+SaveImageTitle=Save Image
+SaveMediaTitle=Save Media
+SaveVideoTitle=Save Video
+SaveAudioTitle=Save Audio
+SaveLinkTitle=Save As
+WebPageCompleteFilter=Web Page, complete
+WebPageHTMLOnlyFilter=Web Page, HTML only
+WebPageXHTMLOnlyFilter=Web Page, XHTML only
+WebPageSVGOnlyFilter=Web Page, SVG only
+WebPageXMLOnlyFilter=Web Page, XML only
+
+# LOCALIZATION NOTE (UntitledSaveFileName):
+# This is the default filename used when saving a file if a filename could
+# not be determined or if a filename was invalid. A period and file
+# extension may be appended to this string.
+UntitledSaveFileName=Untitled
+
+# LOCALIZATION NOTE (filesFolder):
+# This is the name of the folder that is created parallel to a HTML file
+# when it is saved "With Images". The %S section is replaced with the
+# leaf name of the file being saved (minus extension).
+filesFolder=%S_files
diff --git a/toolkit/locales/en-US/chrome/global/dialog.properties b/toolkit/locales/en-US/chrome/global/dialog.properties
new file mode 100644
index 0000000000..ce6acb5eff
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/dialog.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+button-accept=OK
+button-cancel=Cancel
+button-help=Help
+button-disclosure=More Info
+accesskey-accept=
+accesskey-cancel=
+accesskey-help=H
+accesskey-disclosure=I
diff --git a/toolkit/locales/en-US/chrome/global/extensions.properties b/toolkit/locales/en-US/chrome/global/extensions.properties
new file mode 100644
index 0000000000..748ee39b82
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/extensions.properties
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#LOCALIZATION NOTE (uninstall.confirmation.title) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.title = Uninstall %S
+
+#LOCALIZATION NOTE (uninstall.confirmation.message) %S is the name of the extension which is about to be uninstalled.
+uninstall.confirmation.message = The extension “%S” is requesting to be uninstalled. What would you like to do?
+
+uninstall.confirmation.button-0.label = Uninstall
+uninstall.confirmation.button-1.label = Keep Installed
+
+saveaspdf.saveasdialog.title = Save As
+
+#LOCALIZATION NOTE (newTabControlled.message2) %S is the icon and name of the extension which updated the New Tab page.
+newTabControlled.message2 = An extension, %S, changed the page you see when you open a new tab.
+newTabControlled.learnMore = Learn more
+
+#LOCALIZATION NOTE (homepageControlled.message) %S is the icon and name of the extension which updated the homepage.
+homepageControlled.message = An extension, %S, changed what you see when you open your homepage and new windows.
+homepageControlled.learnMore = Learn more
+
+#LOCALIZATION NOTE (tabHideControlled.message) %1$S is the icon and name of the extension which hid tabs, %2$S is the icon of the all tabs button.
+tabHideControlled.message = An extension, %1$S, is hiding some of your tabs. You can still access all of your tabs from %2$S.
+tabHideControlled.learnMore = Learn more
diff --git a/toolkit/locales/en-US/chrome/global/fallbackMenubar.properties b/toolkit/locales/en-US/chrome/global/fallbackMenubar.properties
new file mode 100644
index 0000000000..9765689ec2
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/fallbackMenubar.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# OSX only. Default menu label when there is no xul menubar.
+
+quitMenuitem.label=Quit
+quitMenuitem.key=q
diff --git a/toolkit/locales/en-US/chrome/global/filepicker.properties b/toolkit/locales/en-US/chrome/global/filepicker.properties
new file mode 100644
index 0000000000..b363227abe
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/filepicker.properties
@@ -0,0 +1,18 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The extensions to which these descriptions refer
+# now live in toolkit/content/filepicker.properties
+allTitle=All Files
+htmlTitle=HTML Files
+textTitle=Text Files
+imageTitle=Image Files
+xmlTitle=XML Files
+xulTitle=XUL Files
+appsTitle=Applications
+audioTitle=Audio Files
+videoTitle=Video Files
+
+formatLabel=Format:
+selectedFileNotReadableError=Selected file does not have read permission
diff --git a/toolkit/locales/en-US/chrome/global/intl.css b/toolkit/locales/en-US/chrome/global/intl.css
new file mode 100644
index 0000000000..619d865c59
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/intl.css
@@ -0,0 +1,11 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * This file contains all localizable skin settings such as
+ * font, layout, and geometry
+ */
+window {
+ font: 3mm tahoma,arial,helvetica,sans-serif;
+}
diff --git a/toolkit/locales/en-US/chrome/global/intl.properties b/toolkit/locales/en-US/chrome/global/intl.properties
new file mode 100644
index 0000000000..82835d9ab1
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/intl.properties
@@ -0,0 +1,43 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (intl.accept_languages):
+# This is a comma-separated list of valid BCP 47 language tags.
+#
+# Begin with the language tag of your locale. Next, include language
+# tags for other languages that you expect most users of your locale to be
+# able to speak, so that their browsing experience degrades gracefully if
+# content is not available in their primary language.
+#
+# It is recommended that you include "en-US, en" at the end of the list as a
+# last resort. However, if you know that users of your locale would prefer a
+# different variety of English, or if they are not likely to understand
+# English at all, you may opt to include a different English language tag, or
+# to exclude English altogether.
+#
+# For example, the Breton [br] locale might consider including French and
+# British English in their list, since those languages are commonly spoken in
+# the same area as Breton:
+# intl.accept_languages=br, fr-FR, fr, en-GB, en
+intl.accept_languages=en-US, en
+
+# LOCALIZATION NOTE (font.language.group):
+# This preference controls the initial setting of the language drop-down menu
+# in the Fonts and Colors > Advanced preference panel.
+#
+# Set it to the value of one of the menuitems in the "selectLangs" menulist in
+# http://searchfox.org/mozilla-central/source/browser/components/preferences/dialogs/fonts.xhtml
+font.language.group=x-western
+
+# LOCALIZATION NOTE (pluralRule): Pick the appropriate plural rule for your
+# language. This will determine how many plural forms of a word you will need
+# to provide and in what order.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+pluralRule=1
+
+# LOCALIZATION NOTE (intl.menuitems.alwaysappendaccesskeys, intl.menuitems.insertseparatorbeforeaccesskeys):
+# Valid values are: true, false, <empty string>
+# Missing preference or empty value equals false.
+intl.menuitems.alwaysappendaccesskeys=
+intl.menuitems.insertseparatorbeforeaccesskeys=true
diff --git a/toolkit/locales/en-US/chrome/global/keys.properties b/toolkit/locales/en-US/chrome/global/keys.properties
new file mode 100644
index 0000000000..9d036c0e6c
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/keys.properties
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the application's labels for keys on the keyboard.
+# If you decide to translate this file, you should translate it based on
+# the prevalent kind of keyboard for your target user.
+# LOCALIZATION NOTE : There are two types of keys, those w/ text on their labels
+# and those w/ glyphs.
+# LOCALIZATION NOTE : VK_<…> represents a key on the keyboard.
+#
+# For more information please see bugzilla bug 90888.
+
+# F1..F10 should probably not be translated unless there are keyboards that actually have other labels
+# F11..F20 might be something else, but are really keyboard specific and not region/language specific
+# there are actually two different F11/F12 keys, I don't know which one these labels represent.
+# eg, F13..F20 on a sparc keyboard are labeled Props, Again .. Find, Cut
+# sparc also has Stop, Again and F11/F12. VK_F11/VK_F12 probably map to Stop/Again
+# LOCALIZATION NOTE : BLOCK Do not translate the next block
+VK_F1=F1
+VK_F2=F2
+VK_F3=F3
+VK_F4=F4
+VK_F5=F5
+VK_F6=F6
+VK_F7=F7
+VK_F8=F8
+VK_F9=F9
+VK_F10=F10
+
+VK_F11=F11
+VK_F12=F12
+VK_F13=F13
+VK_F14=F14
+VK_F15=F15
+VK_F16=F16
+VK_F17=F17
+VK_F18=F18
+VK_F19=F19
+VK_F20=F20
+# LOCALIZATION NOTE : BLOCK end do not translate block
+
+# LOCALIZATION NOTE : BLOCK GLYPHS, DO translate this block
+VK_UP=Up Arrow
+VK_DOWN=Down Arrow
+VK_LEFT=Left Arrow
+VK_RIGHT=Right Arrow
+VK_PAGE_UP=Page Up
+VK_PAGE_DOWN=Page Down
+# LOCALIZATION NOTE : BLOCK end GLYPHS
+
+# Enter, backspace, and Tab might have both glyphs and text
+# if the keyboards usually have a glyph,
+# if there is a meaningful translation,
+# or if keyboards are localized
+# then translate them or insert the appropriate glyph
+# otherwise you should probably just translate the glyph regions
+
+# LOCALIZATION NOTE : BLOCK maybe GLYPHS
+VK_TAB=Tab
+VK_BACK=Backspace
+VK_DELETE=Del
+# LOCALIZATION NOTE : BLOCK end maybe GLYPHS
+# LOCALIZATION NOTE : BLOCK typing state keys
+VK_HOME=Home
+VK_END=End
+
+VK_ESCAPE=Esc
+VK_INSERT=Ins
+# LOCALIZATION NOTE : BLOCK end
diff --git a/toolkit/locales/en-US/chrome/global/narrate.properties b/toolkit/locales/en-US/chrome/global/narrate.properties
new file mode 100644
index 0000000000..712cbcde51
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/narrate.properties
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# "Listen, which allows users to listen to Firefox reading the text,
+# instead of having to read it themselves." This is the name
+# of the feature and it is the label for the popup button.
+# %S is the keyboard shortcut for the listen command
+listen-label = Listen (%S)
+back = Back
+# %S is the keyboard shortcut for the start command
+start-label = Start (%S)
+# %S is the keyboard shortcut for the stop command
+stop-label = Stop (%S)
+# Keyboard shortcut to toggle the narrate feature
+narrate-key-shortcut = N
+forward = Forward
+speed = Speed
+selectvoicelabel = Voice:
+# Default voice is determined by the language of the document.
+defaultvoice = Default
+
+# Voice name and language.
+# eg. David (English)
+voiceLabel = %S (%S)
diff --git a/toolkit/locales/en-US/chrome/global/printdialog.properties b/toolkit/locales/en-US/chrome/global/printdialog.properties
new file mode 100644
index 0000000000..4bf4440e12
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/printdialog.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# These strings are used in the native GTK, Mac and Windows print dialogs.
+
+# GTK titles:
+printTitleGTK=Print
+optionsTabLabelGTK=Options
+
+# Mac titles:
+optionsTitleMac=Options:
+appearanceTitleMac=Appearance:
+pageHeadersTitleMac=Page Headers:
+pageFootersTitleMac=Page Footers:
+
+# Windows titles:
+optionsTitleWindows=Options
+
+# TRANSLATOR NOTE: For radio button labels and check button labels, an underscore _
+# before a character will turn that character into an accesskey in the GTK dialog.
+# e.g. "_As laid out" will make A the accesskey.
+# In the Windows labels, use an ampersand (&).
+# On Mac, underscores will be stripped.
+
+shrinkToFit=Ignore Scaling and S_hrink To Fit Page Width
+selectionOnly=Print Selection _Only
+printBGOptions=Print Backgrounds
+printBGColors=Print Background _Colors
+printBGImages=Print Background I_mages
+headerFooter=Header and Footer
+left=Left
+center=Center
+right=Right
+headerFooterBlank=--blank--
+headerFooterTitle=Title
+headerFooterURL=URL
+headerFooterDate=Date/Time
+headerFooterPage=Page #
+headerFooterPageTotal=Page # of #
+headerFooterCustom=Custom…
+customHeaderFooterPrompt=Please enter your custom header/footer text
+
+# These are for the summary view in the Mac dialog:
+summarySelectionOnlyTitle=Print Selection
+summaryShrinkToFitTitle=Shrink To Fit
+summaryPrintBGColorsTitle=Print BG Colors
+summaryPrintBGImagesTitle=Print BG Images
+summaryHeaderTitle=Page Headers
+summaryFooterTitle=Page Footers
+summaryNAValue=N/A
+summaryOnValue=On
+summaryOffValue=Off
diff --git a/toolkit/locales/en-US/chrome/global/resetProfile.properties b/toolkit/locales/en-US/chrome/global/resetProfile.properties
new file mode 100644
index 0000000000..c060072990
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/resetProfile.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for profile reset.
+
+# LOCALIZATION NOTE (resetUnusedProfile.message): %S is brandShortName.
+resetUnusedProfile.message=It looks like you haven’t started %S in a while. Do you want to clean it up for a fresh, like-new experience? And by the way, welcome back!
+# LOCALIZATION NOTE (resetUninstalled.message): %S is brandShortName.
+resetUninstalled.message=Looks like you’ve reinstalled %S. Want us to clean it up for a fresh, like-new experience?
+
+# LOCALIZATION NOTE (refreshProfile.resetButton.label): %S is brandShortName.
+refreshProfile.resetButton.label=Refresh %S…
+refreshProfile.resetButton.accesskey=e
diff --git a/toolkit/locales/en-US/chrome/global/viewSource.properties b/toolkit/locales/en-US/chrome/global/viewSource.properties
new file mode 100644
index 0000000000..93ed26b640
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/viewSource.properties
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+goToLineTitle = Go to line
+goToLineText = Enter line number
+invalidInputTitle = Invalid input
+invalidInputText = The line number entered is invalid.
+outOfRangeTitle = Line not found
+outOfRangeText = The specified line was not found.
+viewSelectionSourceTitle = DOM Source of Selection
+
+context_goToLine_label = Go to Line…
+context_goToLine_accesskey = L
+context_wrapLongLines_label = Wrap Long Lines
+context_highlightSyntax_label = Syntax Highlighting
diff --git a/toolkit/locales/en-US/chrome/global/wizard.properties b/toolkit/locales/en-US/chrome/global/wizard.properties
new file mode 100644
index 0000000000..99cc332e7e
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/wizard.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+default-first-title=Welcome to the %S
+default-last-title=Completing the %S
+default-first-title-mac=Introduction
+default-last-title-mac=Conclusion
diff --git a/toolkit/locales/en-US/chrome/mozapps/downloads/downloads.properties b/toolkit/locales/en-US/chrome/mozapps/downloads/downloads.properties
new file mode 100644
index 0000000000..9836b0a0a0
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/downloads/downloads.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Desktop folder name for downloaded files
+downloadsFolder=Downloads
diff --git a/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties
new file mode 100644
index 0000000000..fa3c5e389b
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties
@@ -0,0 +1,23 @@
+# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title=Opening %S
+saveDialogTitle=Enter name of file to save to…
+defaultApp=%S (default)
+chooseAppFilePickerTitle=Choose Helper Application
+badApp=The application you chose (“%S”) could not be found. Check the file name or choose another application.
+badApp.title=Application not found
+badPermissions=The file could not be saved because you do not have the proper permissions. Choose another save directory.
+badPermissions.title=Invalid Save Permissions
+unknownAccept.label=Save File
+unknownCancel.label=Cancel
+fileType=%S file
+# LOCALIZATION NOTE (orderedFileSizeWithType): first %S is type, second %S is size, and third %S is unit
+orderedFileSizeWithType=%1$S (%2$S %3$S)
+avifExtHandlerDescription=AV1 Image File (AVIF)
+pdfExtHandlerDescription=Portable Document Format (PDF)
+svgExtHandlerDescription=Scalable Vector Graphics (SVG)
+webpExtHandlerDescription=WebP Image
+xmlExtHandlerDescription=Extensible Markup Language (XML)
diff --git a/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
new file mode 100644
index 0000000000..dbd3041cfb
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: These strings are used for startup/profile problems and the profile manager.
+
+# Application not responding
+# LOCALIZATION NOTE (restartTitle, restartMessageNoUnlocker2, restartMessageUnlocker, restartMessageNoUnlockerMac, restartMessageUnlockerMac): Messages displayed when the application is running but is not responding to commands. %S is the application name.
+restartTitle=Close %S
+restartMessageNoUnlocker2=%S is already running, but is not responding. To use %S, you must first close the existing %S process, restart your device, or use a different profile.
+restartMessageUnlocker=%S is already running, but is not responding. The old %S process must be closed to open a new window.
+restartMessageNoUnlockerMac=A copy of %S is already open. Only one copy of %S can be open at a time.
+restartMessageUnlockerMac=A copy of %S is already open. The running copy of %S will quit in order to open this one.
+
+# Profile manager
+# LOCALIZATION NOTE (profileTooltip): First %S is the profile name, second %S is the path to the profile folder.
+profileTooltip=Profile: ‘%S’ — Path: ‘%S’
+
+pleaseSelectTitle=Select Profile
+pleaseSelect=Please select a profile to begin %S, or create a new profile.
+
+renameProfileTitle=Rename Profile
+renameProfilePrompt=Rename the profile “%S” to:
+
+profileNameInvalidTitle=Invalid profile name
+profileNameInvalid=The profile name “%S” is not allowed.
+
+chooseFolder=Choose Profile Folder
+profileNameEmpty=An empty profile name is not allowed.
+invalidChar=The character “%S” is not allowed in profile names. Please choose a different name.
+
+deleteTitle=Delete Profile
+deleteProfileConfirm=Deleting a profile will remove the profile from the list of available profiles and cannot be undone.\nYou may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “%S” and cannot be undone.\nWould you like to delete the profile data files?
+deleteFiles=Delete Files
+dontDeleteFiles=Don’t Delete Files
+
+profileCreationFailed=Profile couldn’t be created. Probably the chosen folder isn’t writable.
+profileCreationFailedTitle=Profile Creation failed
+profileExists=A profile with this name already exists. Please choose another name.
+profileFinishText=Click Finish to create this new profile.
+profileFinishTextMac=Click Done to create this new profile.
+profileMissing=Your %S profile cannot be loaded. It may be missing or inaccessible.
+profileMissingTitle=Profile Missing
+profileDeletionFailed=Profile couldn’t be deleted as it may be in use.
+profileDeletionFailedTitle=Deletion Failed
+
+# Profile reset
+# LOCALIZATION NOTE (resetBackupDirectory): Directory name for the profile directory backup created during reset. This directory is placed in a location users will see it (ie. their desktop). %S is the application name.
+resetBackupDirectory=Old %S Data
+
+flushFailTitle=Changes not saved
+flushFailMessage=An unexpected error has prevented your changes from being saved.
+# LOCALIZATION NOTE (flushFailRestartButton): $S is brandShortName.
+flushFailRestartButton=Restart %S
+flushFailExitButton=Exit
diff --git a/toolkit/locales/en-US/chrome/mozapps/update/updates.properties b/toolkit/locales/en-US/chrome/mozapps/update/updates.properties
new file mode 100644
index 0000000000..a3eeb836d2
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/update/updates.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: The 1st %S is brandShortName and 2nd %S is update version
+# where update version from the update xml
+# example: MyApplication 10.0.5
+updateName=%S %S
+
+noThanksButton=No Thanks
+noThanksButton.accesskey=N
+restartLaterButton=Restart Later
+restartLaterButton.accesskey=L
+restartNowButton=Restart %S
+restartNowButton.accesskey=R
+
+statusFailed=Install Failed
+
+installSuccess=The Update was successfully installed
+installPending=Install Pending
+patchApplyFailure=The Update could not be installed (patch apply failed)
+elevationFailure=You don’t have the permissions necessary to install this update. Please contact your system administrator.
+
+check_error-200=Update XML file malformed (200)
+check_error-403=Access denied (403)
+check_error-404=Update XML file not found (404)
+check_error-500=Internal server error (500)
+check_error-2152398849=Failed (unknown reason)
+check_error-2152398861=Connection refused
+check_error-2152398862=Connection timed out
+# NS_ERROR_OFFLINE
+check_error-2152398864=Network is offline (go online)
+check_error-2152398867=Port not allowed
+check_error-2152398868=No data was received (please try again)
+check_error-2152398878=Update server not found (check your internet connection)
+check_error-2152398890=Proxy server not found (check your internet connection)
+# NS_ERROR_DOCUMENT_NOT_CACHED
+check_error-2152398918=Network is offline (go online)
+check_error-2152398919=Data transfer was interrupted (please try again)
+check_error-2152398920=Proxy server connection refused
+check_error-2153390069=Server certificate has expired (please adjust your system clock to the correct date and time if it is incorrect)
+check_error-verification_failed=The integrity of the update could not be verified
+check_error-move_failed=Failed to prepare the update for installation
+check_error-update_url_not_available=Update URL not available
+check_error-connection_aborted=Connection aborted
diff --git a/toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties b/toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties
new file mode 100644
index 0000000000..99843b6cd9
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties
@@ -0,0 +1,75 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rememberPassword = Use Password Manager to remember this password.
+savePasswordTitle = Confirm
+# LOCALIZATION NOTE (saveLoginMsg2, saveLoginMsgNoUser2):
+# %S is the login's hostname.
+saveLoginMsg2 = Save login for %S?
+saveLoginMsgNoUser2 = Save password for %S?
+saveLoginButtonAllow.label = Save
+saveLoginButtonAllow.accesskey = S
+saveLoginButtonDeny.label = Don’t save
+saveLoginButtonDeny.accesskey = D
+saveLoginButtonNever.label = Never save
+saveLoginButtonNever.accesskey = e
+# LOCALIZATION NOTE (updateLoginMsg3, updateLoginMsgNoUser3):
+# %S is the login's hostname.
+updateLoginMsg3 = Update login for %S?
+updateLoginMsgNoUser3 = Update password for %S?
+updateLoginMsgAddUsername2 = Add username to saved password?
+updateLoginButtonText = Update
+updateLoginButtonAccessKey = U
+updateLoginButtonDeny.label = Don’t update
+updateLoginButtonDeny.accesskey = D
+updateLoginButtonDelete.label = Remove saved login
+updateLoginButtonDelete.accesskey = R
+# LOCALIZATION NOTE (rememberPasswordMsg):
+# 1st string is the username for the login, 2nd is the login's hostname.
+# Note that long usernames may be truncated.
+rememberPasswordMsg = Would you like to remember the password for “%1$S” on %2$S?
+# LOCALIZATION NOTE (rememberPasswordMsgNoUsername):
+# String is the login's hostname.
+rememberPasswordMsgNoUsername = Would you like to remember the password on %S?
+# LOCALIZATION NOTE (noUsernamePlaceholder):
+# This is displayed in place of the username when it is missing.
+noUsernamePlaceholder=No username
+togglePasswordLabel=Show password
+togglePasswordAccessKey2=h
+notNowButtonText = &Not Now
+neverForSiteButtonText = Ne&ver for This Site
+rememberButtonText = &Remember
+passwordChangeTitle = Confirm Password Change
+# LOCALIZATION NOTE (updatePasswordMsg):
+# String is the username for the login.
+updatePasswordMsg = Would you like to update the saved password for “%S”?
+updatePasswordMsgNoUser = Would you like to update the saved password?
+userSelectText2 = Select which login to update:
+loginsDescriptionAll2=Logins for the following sites are stored on your computer
+
+# LOCALIZATION NOTE (useASecurelyGeneratedPassword):
+# Shown in the autocomplete popup to allow filling a generated password into a password field.
+useASecurelyGeneratedPassword=Use a Securely Generated Password
+# LOCALIZATION NOTE (generatedPasswordWillBeSaved):
+# %S will contain the brandShorterName. This informs the user that the generated password will be automatically saved.
+generatedPasswordWillBeSaved=%S will save this password for this website.
+# LOCALIZATION NOTE (loginHostAge):
+# This is used to show the context menu login items with their age.
+# 1st string is the username for the login, 2nd is the login's age.
+loginHostAge=%1$S (%2$S)
+# LOCALIZATION NOTE (noUsername):
+# String is used on the context menu when a login doesn't have a username.
+noUsername=No username
+# LOCALIZATION NOTE (displaySameOrigin):
+# String is used on the autocomplete row when the login origin is a domain match with the document origin
+displaySameOrigin=From this website
+
+# LOCALIZATION NOTE (insecureFieldWarningDescription2):
+# %1$S will contain insecureFieldWarningLearnMore and look like a link to indicate that clicking will open a tab with support information.
+insecureFieldWarningDescription2 = This connection is not secure. Logins entered here could be compromised. %1$S
+insecureFieldWarningLearnMore = Learn More
+
+# LOCALIZATION NOTE (viewSavedLogins.label):
+# This label is used in the footer of login autocomplete menus.
+viewSavedLogins.label= View Saved Logins
diff --git a/toolkit/locales/en-US/chrome/places/places.properties b/toolkit/locales/en-US/chrome/places/places.properties
new file mode 100644
index 0000000000..7e0296be10
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/places/places.properties
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+BookmarksMenuFolderTitle=Bookmarks Menu
+BookmarksToolbarFolderTitle=Bookmarks Toolbar
+OtherBookmarksFolderTitle=Other Bookmarks
+TagsFolderTitle=Tags
+MobileBookmarksFolderTitle=Mobile Bookmarks
+OrganizerQueryHistory=History
+OrganizerQueryDownloads=Downloads
+OrganizerQueryAllBookmarks=All Bookmarks
+
+# LOCALIZATION NOTE :
+# These are used to generate history containers when history is grouped by date
+finduri-AgeInDays-is-0=Today
+finduri-AgeInDays-is-1=Yesterday
+finduri-AgeInDays-is=%S days ago
+finduri-AgeInDays-last-is=Last %S days
+finduri-AgeInDays-isgreater=Older than %S days
+finduri-AgeInMonths-is-0=This month
+finduri-AgeInMonths-isgreater=Older than %S months
+
+# LOCALIZATION NOTE (localhost):
+# This is used to generate local files container when history is grouped by site
+localhost=(local files)
+
+# LOCALIZATION NOTE (backupFileSizeText):
+# The string is used for showing file size of each backup in the "fileRestorePopup" popup
+# %1$S is the file size
+# %2$S is the file size unit
+backupFileSizeText=%1$S %2$S
diff --git a/toolkit/locales/en-US/crashreporter/aboutcrashes.ftl b/toolkit/locales/en-US/crashreporter/aboutcrashes.ftl
new file mode 100644
index 0000000000..2aff0d2051
--- /dev/null
+++ b/toolkit/locales/en-US/crashreporter/aboutcrashes.ftl
@@ -0,0 +1,25 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crash-reports-title = Crash Reports
+submit-all-button-label = Submit All
+delete-button-label = Clear All
+delete-confirm-title = Are you sure?
+delete-unsubmitted-description = This will delete all unsubmitted crash reports and cannot be undone.
+delete-submitted-description = This will remove the list of submitted crash reports but will not delete the submitted data. This cannot be undone.
+
+crashes-unsubmitted-label = Unsubmitted Crash Reports
+id-heading = Report ID
+date-crashed-heading = Date Crashed
+submit-crash-button-label = Submit
+# This text is used to replace the label of the crash submit button
+# if the crash submission fails.
+submit-crash-button-failure-label = Failed
+
+crashes-submitted-label = Submitted Crash Reports
+date-submitted-heading = Date Submitted
+view-crash-button-label = View
+
+no-reports-label = No crash reports have been submitted.
+no-config-label = This application has not been configured to display crash reports. The preference <code>breakpad.reportURL</code> must be set.
diff --git a/toolkit/locales/en-US/crashreporter/crashreporter.ini b/toolkit/locales/en-US/crashreporter/crashreporter.ini
new file mode 100644
index 0000000000..ce4622c228
--- /dev/null
+++ b/toolkit/locales/en-US/crashreporter/crashreporter.ini
@@ -0,0 +1,58 @@
+; This Source Code Form is subject to the terms of the Mozilla Public
+; License, v. 2.0. If a copy of the MPL was not distributed with this
+; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is in the UTF-8 encoding
+[Strings]
+# LOCALIZATION NOTE (isRTL):
+# Leave this entry empty unless your language requires right-to-left layout,
+# for example like Arabic, Hebrew, Persian. If your language needs RTL, please
+# use the untranslated English word "yes" as value
+isRTL=
+CrashReporterTitle=Crash Reporter
+# LOCALIZATION NOTE (CrashReporterVendorTitle): %s is replaced with the vendor name. (i.e. "Mozilla")
+CrashReporterVendorTitle=%s Crash Reporter
+# LOCALIZATION NOTE (CrashReporterErrorText): %s is replaced with another string containing detailed information.
+CrashReporterErrorText=The application had a problem and crashed.\n\nUnfortunately, the crash reporter is unable to submit a report for this crash.\n\nDetails: %s
+# LOCALIZATION NOTE (CrashReporterProductErrorText2): The first %s is replaced with the product name (i.e. "Firefox"), the second is replaced with another string containing detailed information. These two substitutions can not be reordered!
+CrashReporterProductErrorText2=%s had a problem and crashed.\n\nUnfortunately, the crash reporter is unable to submit a crash report.\n\nDetails: %s
+CrashReporterSorry=We're Sorry
+# LOCALIZATION NOTE (CrashReporterDescriptionText2): The %s is replaced with the product name.
+CrashReporterDescriptionText2=%s had a problem and crashed.\n\nTo help us diagnose and fix the problem, you can send us a crash report.
+CrashReporterDefault=This application is run after a crash to report the problem to the application vendor. It should not be run directly.
+Details=Details…
+ViewReportTitle=Report Contents
+CommentGrayText=Add a comment (comments are publicly visible)
+ExtraReportInfo=This report also contains technical information about the state of the application when it crashed.
+# LOCALIZATION NOTE (CheckSendReport): The %s is replaced with the vendor name.
+CheckSendReport=Tell %s about this crash so they can fix it
+CheckIncludeURL=Include the address of the page I was on
+ReportPreSubmit2=Your crash report will be submitted before you quit or restart.
+ReportDuringSubmit2=Submitting your report…
+ReportSubmitSuccess=Report submitted successfully!
+ReportSubmitFailed=There was a problem submitting your report.
+ReportResubmit=Resending reports that previously failed to send…
+# LOCALIZATION NOTE (Quit2): The %s is replaced with the product name.
+Quit2=Quit %s
+# LOCALIZATION NOTE (Restart): The %s is replaced with the product name.
+Restart=Restart %s
+Ok=OK
+Close=Close
+
+# LOCALIZATION NOTE (CrashID): The %s is replaced with the Crash ID from the server, which is a string like abc12345-6789-0abc-def1-23456abcdef1
+CrashID=Crash ID: %s
+# LOCALIZATION NOTE (CrashDetailsURL): The %s is replaced with a URL that the user can visit to view the crash details.
+CrashDetailsURL=You can view details of this crash at %s
+ErrorBadArguments=The application passed an invalid argument.
+ErrorExtraFileExists=The application didn't leave an application data file.
+ErrorExtraFileRead=Couldn't read the application data file.
+ErrorExtraFileMove=Couldn't move application data file.
+ErrorDumpFileExists=The application did not leave a crash dump file.
+ErrorDumpFileMove=Couldn't move crash dump.
+ErrorNoProductName=The application did not identify itself.
+ErrorNoServerURL=The application did not specify a crash reporting server.
+ErrorNoSettingsPath=Couldn't find the crash reporter's settings.
+ErrorCreateDumpDir=Couldn't create pending dump directory.
+# LOCALIZATION NOTE (ErrorEndOfLife): The %s is replaced with the product name.
+ErrorEndOfLife=The version of %s you are using is no longer supported. Crash reports are no longer being accepted for this version. Please consider upgrading to a supported version.
+
diff --git a/toolkit/locales/en-US/services/accounts.ftl b/toolkit/locales/en-US/services/accounts.ftl
new file mode 100644
index 0000000000..cda566e024
--- /dev/null
+++ b/toolkit/locales/en-US/services/accounts.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $user (String): the user name (e.g. "Ed")
+# $system (String): the operating system (e.g. "Android")
+account-client-name = { $user }’s { -brand-short-name } on { $system }
diff --git a/toolkit/locales/en-US/toolkit/about/aboutAbout.ftl b/toolkit/locales/en-US/toolkit/about/aboutAbout.ftl
new file mode 100644
index 0000000000..ce2a311736
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutAbout.ftl
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-about-title = About About
+about-about-note =
+ This is a list of “about” pages for your convenience.<br/>
+ Some of them might be confusing. Some are for diagnostic purposes only.<br/>
+ And some are omitted because they require query strings.
diff --git a/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl b/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl
new file mode 100644
index 0000000000..6a65f9c8a6
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,518 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addons-page-title = Add-ons Manager
+
+search-header =
+ .placeholder = Search addons.mozilla.org
+ .searchbuttonlabel = Search
+
+## Variables
+## $domain - Domain name where add-ons are available (e.g. addons.mozilla.org)
+
+list-empty-get-extensions-message =
+ Get extensions and themes on <a data-l10n-name="get-extensions">{ $domain }</a>
+
+list-empty-get-dictionaries-message =
+ Get dictionaries on <a data-l10n-name="get-extensions">{ $domain }</a>
+
+list-empty-get-language-packs-message =
+ Get language packs on <a data-l10n-name="get-extensions">{ $domain }</a>
+
+##
+
+list-empty-installed =
+ .value = You don’t have any add-ons of this type installed
+
+list-empty-available-updates =
+ .value = No updates found
+
+list-empty-recent-updates =
+ .value = You haven’t recently updated any add-ons
+
+list-empty-find-updates =
+ .label = Check For Updates
+
+list-empty-button =
+ .label = Learn more about add-ons
+
+help-button = Add-ons Support
+sidebar-help-button-title =
+ .title = Add-ons Support
+
+addons-settings-button = { -brand-short-name } Settings
+sidebar-settings-button-title =
+ .title = { -brand-short-name } Settings
+
+show-unsigned-extensions-button =
+ .label = Some extensions could not be verified
+
+show-all-extensions-button =
+ .label = Show all extensions
+
+detail-version =
+ .label = Version
+
+detail-last-updated =
+ .label = Last Updated
+
+addon-detail-description-expand = Show more
+addon-detail-description-collapse = Show less
+
+detail-contributions-description = The developer of this add-on asks that you help support its continued development by making a small contribution.
+
+detail-contributions-button = Contribute
+ .title = Contribute to the development of this add-on
+ .accesskey = C
+
+detail-update-type =
+ .value = Automatic Updates
+
+detail-update-default =
+ .label = Default
+ .tooltiptext = Automatically install updates only if that’s the default
+
+detail-update-automatic =
+ .label = On
+ .tooltiptext = Automatically install updates
+
+detail-update-manual =
+ .label = Off
+ .tooltiptext = Don’t automatically install updates
+
+# Used as a description for the option to allow or block an add-on in private windows.
+detail-private-browsing-label = Run in Private Windows
+
+# Some add-ons may elect to not run in private windows by setting incognito: not_allowed in the manifest. This
+# cannot be overridden by the user.
+detail-private-disallowed-label = Not Allowed in Private Windows
+detail-private-disallowed-description2 = This extension does not run while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+
+# Some special add-ons are privileged, run in private windows automatically, and this permission can't be revoked
+detail-private-required-label = Requires Access to Private Windows
+detail-private-required-description2 = This extension has access to your online activities while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+
+detail-private-browsing-on =
+ .label = Allow
+ .tooltiptext = Enable in Private Browsing
+
+detail-private-browsing-off =
+ .label = Don’t Allow
+ .tooltiptext = Disable in Private Browsing
+
+detail-home =
+ .label = Homepage
+
+detail-home-value =
+ .value = { detail-home.label }
+
+detail-repository =
+ .label = Add-on Profile
+
+detail-repository-value =
+ .value = { detail-repository.label }
+
+detail-check-for-updates =
+ .label = Check for Updates
+ .accesskey = U
+ .tooltiptext = Check for updates for this add-on
+
+detail-show-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Options
+ *[other] Preferences
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+ .tooltiptext =
+ { PLATFORM() ->
+ [windows] Change this add-on’s options
+ *[other] Change this add-on’s preferences
+ }
+
+detail-rating =
+ .value = Rating
+
+addon-restart-now =
+ .label = Restart now
+
+disabled-unsigned-heading =
+ .value = Some add-ons have been disabled
+
+disabled-unsigned-description =
+ The following add-ons have not been verified for use in { -brand-short-name }. You can
+ <label data-l10n-name="find-addons">find replacements</label> or ask the developer to get them verified.
+
+disabled-unsigned-learn-more = Learn more about our efforts to help keep you safe online.
+
+disabled-unsigned-devinfo =
+ Developers interested in getting their add-ons verified can continue by reading our
+ <label data-l10n-name="learn-more">manual</label>.
+
+plugin-deprecation-description =
+ Missing something? Some plugins are no longer supported by { -brand-short-name }. <label data-l10n-name="learn-more">Learn More.</label>
+
+legacy-warning-show-legacy = Show legacy extensions
+
+legacy-extensions =
+ .value = Legacy Extensions
+
+legacy-extensions-description =
+ These extensions do not meet current { -brand-short-name } standards so they have been deactivated. <label data-l10n-name="legacy-learn-more">Learn about the changes to add-ons</label>
+
+private-browsing-description2 =
+ { -brand-short-name } is changing how extensions work in private browsing. Any new extensions you add to
+ { -brand-short-name } won’t run by default in Private Windows. Unless you allow it in settings, the
+ extension won’t work while private browsing, and won’t have access to your online activities
+ there. We’ve made this change to keep your private browsing private.
+ <label data-l10n-name="private-browsing-learn-more">Learn how to manage extension settings</label>
+
+addon-category-discover = Recommendations
+addon-category-discover-title =
+ .title = Recommendations
+addon-category-extension = Extensions
+addon-category-extension-title =
+ .title = Extensions
+addon-category-theme = Themes
+addon-category-theme-title =
+ .title = Themes
+addon-category-plugin = Plugins
+addon-category-plugin-title =
+ .title = Plugins
+addon-category-dictionary = Dictionaries
+addon-category-dictionary-title =
+ .title = Dictionaries
+addon-category-locale = Languages
+addon-category-locale-title =
+ .title = Languages
+addon-category-available-updates = Available Updates
+addon-category-available-updates-title =
+ .title = Available Updates
+addon-category-recent-updates = Recent Updates
+addon-category-recent-updates-title =
+ .title = Recent Updates
+addon-category-sitepermission = Site Permissions
+addon-category-sitepermission-title =
+ .title = Site Permissions
+# String displayed in about:addons in the Site Permissions section
+# Variables:
+# $host (string) - DNS host name for which the webextension enables permissions
+addon-sitepermission-host = Site Permissions for { $host }
+
+## These are global warnings
+
+extensions-warning-safe-mode = All add-ons have been disabled by safe mode.
+extensions-warning-check-compatibility = Add-on compatibility checking is disabled. You may have incompatible add-ons.
+extensions-warning-check-compatibility-button = Enable
+ .title = Enable add-on compatibility checking
+extensions-warning-update-security = Add-on update security checking is disabled. You may be compromised by updates.
+extensions-warning-update-security-button = Enable
+ .title = Enable add-on update security checking
+
+## Strings connected to add-on updates
+
+addon-updates-check-for-updates = Check for Updates
+ .accesskey = C
+addon-updates-view-updates = View Recent Updates
+ .accesskey = V
+
+# This menu item is a checkbox that toggles the default global behavior for
+# add-on update checking.
+
+addon-updates-update-addons-automatically = Update Add-ons Automatically
+ .accesskey = A
+
+## Specific add-ons can have custom update checking behaviors ("Manually",
+## "Automatically", "Use default global behavior"). These menu items reset the
+## update checking behavior for all add-ons to the default global behavior
+## (which itself is either "Automatically" or "Manually", controlled by the
+## extensions-updates-update-addons-automatically.label menu item).
+
+addon-updates-reset-updates-to-automatic = Reset All Add-ons to Update Automatically
+ .accesskey = R
+addon-updates-reset-updates-to-manual = Reset All Add-ons to Update Manually
+ .accesskey = R
+
+## Status messages displayed when updating add-ons
+
+addon-updates-updating = Updating add-ons
+addon-updates-installed = Your add-ons have been updated.
+addon-updates-none-found = No updates found
+addon-updates-manual-updates-found = View Available Updates
+
+## Add-on install/debug strings for page options menu
+
+addon-install-from-file = Install Add-on From File…
+ .accesskey = I
+addon-install-from-file-dialog-title = Select add-on to install
+addon-install-from-file-filter-name = Add-ons
+addon-open-about-debugging = Debug Add-ons
+ .accesskey = b
+
+## Extension shortcut management
+
+# This is displayed in the page options menu
+addon-manage-extensions-shortcuts = Manage Extension Shortcuts
+ .accesskey = S
+
+shortcuts-no-addons = You don’t have any extensions enabled.
+shortcuts-no-commands = The following extensions do not have shortcuts:
+shortcuts-input =
+ .placeholder = Type a shortcut
+
+shortcuts-browserAction2 = Activate toolbar button
+shortcuts-pageAction = Activate page action
+shortcuts-sidebarAction = Toggle the sidebar
+
+shortcuts-modifier-mac = Include Ctrl, Alt, or ⌘
+shortcuts-modifier-other = Include Ctrl or Alt
+shortcuts-invalid = Invalid combination
+shortcuts-letter = Type a letter
+shortcuts-system = Can’t override a { -brand-short-name } shortcut
+
+# String displayed in warning label when there is a duplicate shortcut
+shortcuts-duplicate = Duplicate shortcut
+
+# String displayed when a keyboard shortcut is already assigned to more than one add-on
+# Variables:
+# $shortcut (string) - Shortcut string for the add-on
+shortcuts-duplicate-warning-message = { $shortcut } is being used as a shortcut in more than one case. Duplicate shortcuts may cause unexpected behavior.
+
+# String displayed when a keyboard shortcut is already used by another add-on
+# Variables:
+# $addon (string) - Name of the add-on
+shortcuts-exists = Already in use by { $addon }
+
+# Variables:
+# $numberToShow (number) - Number of other elements available to show
+shortcuts-card-expand-button =
+ { $numberToShow ->
+ *[other] Show { $numberToShow } More
+ }
+
+shortcuts-card-collapse-button = Show Less
+
+header-back-button =
+ .title = Go back
+
+## Recommended add-ons page
+
+# Explanatory introduction to the list of recommended add-ons. The action word
+# ("recommends") in the final sentence is a link to external documentation.
+discopane-intro =
+ Extensions and themes are like apps for your browser, and they let you
+ protect passwords, download videos, find deals, block annoying ads, change
+ how your browser looks, and much more. These small software programs are
+ often developed by a third party. Here’s a selection { -brand-product-name }
+ <a data-l10n-name="learn-more-trigger">recommends</a> for exceptional
+ security, performance, and functionality.
+
+# Notice to make user aware that the recommendations are personalized.
+discopane-notice-recommendations =
+ Some of these recommendations are personalized. They are based on other
+ extensions you’ve installed, profile preferences, and usage statistics.
+discopane-notice-learn-more = Learn more
+
+privacy-policy = Privacy Policy
+
+# Refers to the author of an add-on, shown below the name of the add-on.
+# Variables:
+# $author (string) - The name of the add-on developer.
+created-by-author = by <a data-l10n-name="author">{ $author }</a>
+# Shows the number of daily users of the add-on.
+# Variables:
+# $dailyUsers (number) - The number of daily users.
+user-count = Users: { $dailyUsers }
+install-extension-button = Add to { -brand-product-name }
+install-theme-button = Install Theme
+# The label of the button that appears after installing an add-on. Upon click,
+# the detailed add-on view is opened, from where the add-on can be managed.
+manage-addon-button = Manage
+find-more-addons = Find more add-ons
+find-more-themes = Find more themes
+
+# This is a label for the button to open the "more options" menu, it is only
+# used for screen readers.
+addon-options-button =
+ .aria-label = More Options
+
+## Add-on actions
+
+report-addon-button = Report
+remove-addon-button = Remove
+# The link will always be shown after the other text.
+remove-addon-disabled-button = Can’t Be Removed <a data-l10n-name="link">Why?</a>
+disable-addon-button = Disable
+enable-addon-button = Enable
+# This is used for the toggle on the extension card, it's a checkbox and this
+# is always its label.
+extension-enable-addon-button-label =
+ .aria-label = Enable
+preferences-addon-button =
+ { PLATFORM() ->
+ [windows] Options
+ *[other] Preferences
+ }
+details-addon-button = Details
+release-notes-addon-button = Release Notes
+permissions-addon-button = Permissions
+
+extension-enabled-heading = Enabled
+extension-disabled-heading = Disabled
+
+theme-enabled-heading = Enabled
+theme-disabled-heading2 = Saved Themes
+
+plugin-enabled-heading = Enabled
+plugin-disabled-heading = Disabled
+
+dictionary-enabled-heading = Enabled
+dictionary-disabled-heading = Disabled
+
+locale-enabled-heading = Enabled
+locale-disabled-heading = Disabled
+
+sitepermission-enabled-heading = Enabled
+sitepermission-disabled-heading = Disabled
+
+always-activate-button = Always Activate
+never-activate-button = Never Activate
+
+addon-detail-author-label = Author
+addon-detail-version-label = Version
+addon-detail-last-updated-label = Last Updated
+addon-detail-homepage-label = Homepage
+addon-detail-rating-label = Rating
+
+# Message for add-ons with a staged pending update.
+install-postponed-message = This extension will be updated when { -brand-short-name } restarts.
+install-postponed-button = Update Now
+
+# The average rating that the add-on has received.
+# Variables:
+# $rating (number) - A number between 0 and 5. The translation should show at most one digit after the comma.
+five-star-rating =
+ .title = Rated { NUMBER($rating, maximumFractionDigits: 1) } out of 5
+
+# This string is used to show that an add-on is disabled.
+# Variables:
+# $name (string) - The name of the add-on
+addon-name-disabled = { $name } (disabled)
+
+# The number of reviews that an add-on has received on AMO.
+# Variables:
+# $numberOfReviews (number) - The number of reviews received
+addon-detail-reviews-link =
+ { $numberOfReviews ->
+ [one] { $numberOfReviews } review
+ *[other] { $numberOfReviews } reviews
+ }
+
+## Pending uninstall message bar
+
+# Variables:
+# $addon (string) - Name of the add-on
+pending-uninstall-description = <span data-l10n-name="addon-name">{ $addon }</span> has been removed.
+pending-uninstall-undo-button = Undo
+
+addon-detail-updates-label = Allow automatic updates
+addon-detail-updates-radio-default = Default
+addon-detail-updates-radio-on = On
+addon-detail-updates-radio-off = Off
+addon-detail-update-check-label = Check for Updates
+install-update-button = Update
+
+# This is the tooltip text for the private browsing badge in about:addons. The
+# badge is the private browsing icon included next to the extension's name.
+addon-badge-private-browsing-allowed2 =
+ .title = Allowed in private windows
+ .aria-label = { addon-badge-private-browsing-allowed2.title }
+addon-detail-private-browsing-help = When allowed, the extension will have access to your online activities while private browsing. <a data-l10n-name="learn-more">Learn more</a>
+addon-detail-private-browsing-allow = Allow
+addon-detail-private-browsing-disallow = Don’t Allow
+
+## This is the tooltip text for the recommended badges for an extension in about:addons. The
+## badge is a small icon displayed next to an extension when it is recommended on AMO.
+
+addon-badge-recommended2 =
+ .title = { -brand-product-name } only recommends extensions that meet our standards for security and performance
+ .aria-label = { addon-badge-recommended2.title }
+# We hard code "Mozilla" in the string below because the extensions are built
+# by Mozilla and we don't want forks to display "by Fork".
+addon-badge-line3 =
+ .title = Official extension built by Mozilla. Meets security and performance standards
+ .aria-label = { addon-badge-line3.title }
+addon-badge-verified2 =
+ .title = This extension has been reviewed to meet our standards for security and performance
+ .aria-label = { addon-badge-verified2.title }
+
+##
+
+available-updates-heading = Available Updates
+recent-updates-heading = Recent Updates
+
+release-notes-loading = Loading…
+release-notes-error = Sorry, but there was an error loading the release notes.
+
+addon-permissions-empty = This extension doesn’t require any permissions
+addon-permissions-required = Required permissions for core functionality:
+addon-permissions-optional = Optional permissions for added functionality:
+addon-permissions-learnmore = Learn more about permissions
+
+recommended-extensions-heading = Recommended Extensions
+recommended-themes-heading = Recommended Themes
+
+# Variables:
+# $hostname (string) - Host where the permissions are granted
+addon-sitepermissions-required = Grants the following capabilities to <span data-l10n-name="hostname">{ $hostname }</span>:
+
+# A recommendation for the Firefox Color theme shown at the bottom of the theme
+# list view. The "Firefox Color" name itself should not be translated.
+recommended-theme-1 = Feeling creative? <a data-l10n-name="link">Build your own theme with Firefox Color.</a>
+
+## Page headings
+
+extension-heading = Manage Your Extensions
+theme-heading = Manage Your Themes
+plugin-heading = Manage Your Plugins
+dictionary-heading = Manage Your Dictionaries
+locale-heading = Manage Your Languages
+updates-heading = Manage Your Updates
+sitepermission-heading = Manage Your Site Permissions
+discover-heading = Personalize Your { -brand-short-name }
+shortcuts-heading = Manage Extension Shortcuts
+
+default-heading-search-label = Find more add-ons
+addons-heading-search-input =
+ .placeholder = Search addons.mozilla.org
+
+addon-page-options-button =
+ .title = Tools for all add-ons
+
+## Detail notifications
+## Variables:
+## $name (string) - Name of the add-on.
+
+# Variables:
+# $version (string) - Application version.
+details-notification-incompatible = { $name } is incompatible with { -brand-short-name } { $version }.
+details-notification-incompatible-link = More Information
+
+details-notification-unsigned-and-disabled = { $name } could not be verified for use in { -brand-short-name } and has been disabled.
+details-notification-unsigned-and-disabled-link = More Information
+
+details-notification-unsigned = { $name } could not be verified for use in { -brand-short-name }. Proceed with caution.
+details-notification-unsigned-link = More Information
+
+details-notification-blocked = { $name } has been disabled due to security or stability issues.
+details-notification-blocked-link = More Information
+
+details-notification-softblocked = { $name } is known to cause security or stability issues.
+details-notification-softblocked-link = More Information
+
+details-notification-gmp-pending = { $name } will be installed shortly.
diff --git a/toolkit/locales/en-US/toolkit/about/aboutCompat.ftl b/toolkit/locales/en-US/toolkit/about/aboutCompat.ftl
new file mode 100644
index 0000000000..a8884cc322
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutCompat.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+label-disable = Disable
+label-enable = Enable
+label-interventions = Interventions
+# Variables:
+# $bug (string) - Bug number
+label-more-information = More Information: Bug { $bug }
+label-overrides = User Agent Overrides
+text-disabled-in-about-config = This feature has been disabled in about:config
+text-no-interventions = No interventions are being used
+text-no-overrides = No UA overrides are being used
+text-title = about:compat
+
+## Do not translate "SmartBlock". For reference, SmartBlock is a feature
+## of Firefox anti-tracking which fixes website breakage caused when
+## trackers are blocked, by acting just enough like those trackers to fix the
+## breakage. SmartBlock also contains special fixes for sites broken by
+## Firefox's Total Cookie Protection feature.
+
+label-smartblock = SmartBlock Fixes
+text-no-smartblock = No SmartBlock fixes are being used
diff --git a/toolkit/locales/en-US/toolkit/about/aboutGlean.ftl b/toolkit/locales/en-US/toolkit/about/aboutGlean.ftl
new file mode 100644
index 0000000000..9d0ca6656a
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutGlean.ftl
@@ -0,0 +1,101 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### "FOG", "Glean", and "Glean SDK" should remain in English.
+
+-fog-brand-name = FOG
+-glean-brand-name = Glean
+glean-sdk-brand-name = { -glean-brand-name } SDK
+glean-debug-ping-viewer-brand-name = { -glean-brand-name } Debug Ping Viewer
+
+about-glean-page-title2 = About { -glean-brand-name }
+about-glean-header = About { -glean-brand-name }
+about-glean-interface-description =
+ The <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name }</a>
+ is a data collection library used in { -vendor-short-name } projects.
+ This interface is designed to be used by developers and testers to manually
+ <a data-l10n-name="fog-link">test instrumentation</a>.
+
+about-glean-upload-enabled = Data upload is enabled.
+about-glean-upload-disabled = Data upload is disabled.
+about-glean-upload-enabled-local = Data upload is enabled only for sending to a local server.
+about-glean-upload-fake-enabled =
+ Data upload is disabled,
+ but we’re lying and telling the { glean-sdk-brand-name } it is enabled
+ so that data is still recorded locally.
+ Note: If you set a debug tag, pings will be uploaded to the
+ <a data-l10n-name="glean-debug-ping-viewer">{ glean-debug-ping-viewer-brand-name }</a> regardless of settings.
+
+# This message is followed by a bulleted list.
+about-glean-prefs-and-defines = Relevant <a data-l10n-name="fog-prefs-and-defines-doc-link">preferences and defines</a> include:
+# Variables:
+# $data-upload-pref-value (String): the value of the datareporting.healthreport.uploadEnabled pref. Typically "true", sometimes "false"
+# Do not translate strings between <code> </code> tags.
+about-glean-data-upload = <code>datareporting.healthreport.uploadEnabled</code>: { $data-upload-pref-value }
+# Variables:
+# $local-port-pref-value (Integer): the value of the telemetry.fog.test.localhost_port pref. Typically 0. Can be negative.
+# Do not translate strings between <code> </code> tags.
+about-glean-local-port = <code>telemetry.fog.test.localhost_port</code>: { $local-port-pref-value }
+# Variables:
+# $glean-android-define-value (Boolean): the value of the MOZ_GLEAN_ANDROID define. Typically "false", sometimes "true".
+# Do not translate strings between <code> </code> tags.
+about-glean-glean-android = <code>MOZ_GLEAN_ANDROID</code>: { $glean-android-define-value }
+# Variables:
+# $moz-official-define-value (Boolean): the value of the MOZILLA_OFFICIAL define.
+# Do not translate strings between <code> </code> tags.
+about-glean-moz-official =<code>MOZILLA_OFFICIAL</code>: { $moz-official-define-value }
+
+about-glean-about-testing-header = About Testing
+# This message is followed by a numbered list.
+about-glean-manual-testing =
+ Full instructions are documented in the
+ <a data-l10n-name="fog-instrumentation-test-doc-link">{ -fog-brand-name } instrumentation testing docs</a>
+ and in the <a data-l10n-name="glean-sdk-doc-link">{ glean-sdk-brand-name } documentation</a>,
+ but, in short, to manually test that your instrumentation works, you should:
+
+# This message is an option in a dropdown filled with untranslated names of pings.
+about-glean-no-ping-label = (don’t submit any ping)
+# An in-line text input field precedes this string.
+about-glean-label-for-tag-pings =
+ In the preceding field ensure there is a memorable debug tag so you can recognize your pings later.
+# An in-line drop down list precedes this string.
+# Do not translate strings between <code> </code> tags.
+about-glean-label-for-ping-names =
+ Select from the preceding list the ping your instrumentation is in.
+ If it’s in a <a data-l10n-name="custom-ping-link">custom ping</a>, choose that one.
+ Otherwise, the default for <code>event</code> metrics is
+ the <code>events</code> ping
+ and the default for all other metrics is
+ the <code>metrics</code> ping.
+# An in-line check box precedes this string.
+about-glean-label-for-log-pings =
+ (Optional. Check the preceding box if you want pings to also be logged when they are submitted.
+ You will additionally need to <a data-l10n-name="enable-logging-link">enable logging</a>.)
+# Variables
+# $debug-tag (String): The user-set value of the debug tag input on this page. Like "about-glean-kV"
+# An in-line button labeled "Apply settings and submit ping" precedes this string.
+about-glean-label-for-controls-submit =
+ Press the preceding button to tag all { -glean-brand-name } pings with your tag and submit the selected ping.
+ (All pings submitted from then until you restart the application will be tagged with
+ <code>{ $debug-tag }</code>.)
+about-glean-li-for-visit-gdpv =
+ <a data-l10n-name="gdpv-tagged-pings-link">Visit the { glean-debug-ping-viewer-brand-name } page for pings with your tag</a>.
+ It shouldn’t take more than a few seconds from pushing the button to your ping arriving.
+ Sometimes it may take a small handful of minutes.
+
+# Do not translate strings between <code> </code> tags.
+about-glean-adhoc-explanation =
+ For more <i>ad hoc</i> testing,
+ you can also determine the current value of a particular piece of instrumentation
+ by opening a devtools console here on <code>about:glean</code>
+ and using the <code>testGetValue()</code> API like
+ <code>Glean.metricCategory.metricName.testGetValue()</code>.
+
+
+controls-button-label-verbose = Apply settings and submit ping
+
+about-glean-about-data-header = About Data
+about-glean-about-data-explanation =
+ To browse the list of collected data, please consult the
+ <a data-l10n-name="glean-dictionary-link">{ -glean-brand-name } Dictionary</a>.
diff --git a/toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl b/toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl
new file mode 100644
index 0000000000..819dff6d4f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl
@@ -0,0 +1,26 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-httpsonly-title-alert = HTTPS-Only Mode Alert
+about-httpsonly-title-site-not-available = Secure Site Not Available
+
+# Variables:
+# $websiteUrl (String) - Url of the website that failed to load. Example: www.example.com
+about-httpsonly-explanation-unavailable2 = You’ve enabled HTTPS-Only Mode for enhanced security, and a HTTPS version of <em>{ $websiteUrl }</em> is not available.
+about-httpsonly-explanation-question = What could be causing this?
+about-httpsonly-explanation-nosupport = Most likely, the website simply does not support HTTPS.
+about-httpsonly-explanation-risk = It’s also possible that an attacker is involved. If you decide to visit the website, you should not enter any sensitive information like passwords, emails, or credit card details.
+about-httpsonly-explanation-continue = If you continue, HTTPS-Only Mode will be turned off temporarily for this site.
+
+about-httpsonly-button-continue-to-site = Continue to HTTP Site
+about-httpsonly-button-go-back = Go Back
+about-httpsonly-link-learn-more = Learn More…
+
+## Suggestion Box that only shows up if a secure connection to www can be established
+## Variables:
+## $websiteUrl (String) - Url of the website that can be securely loaded with these alternatives. Example: example.com
+
+about-httpsonly-suggestion-box-header = Possible Alternative
+about-httpsonly-suggestion-box-www-text = There is a secure version of <em>www.{ $websiteUrl }</em>. You can visit this page instead of <em>{ $websiteUrl }</em>.
+about-httpsonly-suggestion-box-www-button = Go to www.{ $websiteUrl }
diff --git a/toolkit/locales/en-US/toolkit/about/aboutLogging.ftl b/toolkit/locales/en-US/toolkit/about/aboutLogging.ftl
new file mode 100644
index 0000000000..6dfe02ddbb
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutLogging.ftl
@@ -0,0 +1,56 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This is the title of the page
+about-logging-title = About Logging
+about-logging-page-title = Logging manager
+about-logging-current-log-file = Current log file:
+about-logging-new-log-file = New log file:
+about-logging-currently-enabled-log-modules = Currently enabled log modules:
+about-logging-log-tutorial =
+ See <a data-l10n-name="logging">HTTP Logging</a>
+ for instructions on how to use this tool.
+# This message is used as a button label, "Open" indicates an action.
+about-logging-open-log-file-dir = Open directory
+about-logging-set-log-file = Set Log File
+about-logging-set-log-modules = Set Log Modules
+about-logging-start-logging = Start Logging
+about-logging-stop-logging = Stop Logging
+about-logging-buttons-disabled = Logging configured via environment variables, dynamic configuration unavailable.
+about-logging-some-elements-disabled = Logging configured via URL, some configuration options are unavailable
+about-logging-info = Info:
+about-logging-log-modules-selection = Log module selection
+about-logging-new-log-modules = New log modules:
+about-logging-logging-output-selection = Logging output
+about-logging-logging-to-file = Logging to a file
+about-logging-logging-to-profiler = Logging to the { -profiler-brand-name }
+about-logging-no-log-modules = None
+about-logging-no-log-file = None
+about-logging-logging-preset-selector-text = Logging preset:
+about-logging-with-profiler-stacks-checkbox = Enable stack traces for log messages
+
+## Logging presets
+
+about-logging-preset-networking-label = Networking
+about-logging-preset-networking-description = Log modules to diagnose networking issues
+about-logging-preset-media-playback-label = Media playback
+about-logging-preset-media-playback-description = Log modules to diagnose media playback issues (not video-conferencing issues)
+about-logging-preset-custom-label = Custom
+about-logging-preset-custom-description = Log modules manually selected
+
+# Error handling
+about-logging-error = Error:
+
+## Variables:
+## $k (String) - Variable name
+## $v (String) - Variable value
+
+about-logging-invalid-output = Invalid value “{ $v }“ for key “{ $k }“
+about-logging-unknown-logging-preset = Unknown logging preset “{ $v }“
+about-logging-unknown-profiler-preset = Unknown profiler preset “{ $v }“
+about-logging-unknown-option = Unknown about:logging option “{ $k }“
+about-logging-configuration-url-ignored = Configuration URL ignored
+about-logging-file-and-profiler-override = Can’t force file output and override profiler options at the same time
+
+about-logging-configured-via-url = Option configured via URL
diff --git a/toolkit/locales/en-US/toolkit/about/aboutMozilla.ftl b/toolkit/locales/en-US/toolkit/about/aboutMozilla.ftl
new file mode 100644
index 0000000000..f0d0f336e5
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutMozilla.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-mozilla-title-6-27 = The Book of Mozilla, 6:27
+about-mozilla-quote-6-27 =
+ The Beast continued its studies with renewed <em>Focus</em>, building great <em>Reference</em>
+ works and contemplating new <em>Realities</em>. The Beast brought forth its followers and
+ acolytes to create a renewed smaller form of itself and, through <em>Mischievous</em> means,
+ sent it out across the world.
+about-mozilla-from-6-27 = from <strong>The Book of Mozilla,</strong> 6:27
diff --git a/toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl b/toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl
new file mode 100644
index 0000000000..6b2e5969ea
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-networking-title = About Networking
+about-networking-http = HTTP
+about-networking-sockets = Sockets
+about-networking-dns = DNS
+about-networking-dns-clear-cache-button = Clear DNS Cache
+about-networking-dns-trr-url = DoH URL
+about-networking-dns-trr-mode = DoH Mode
+about-networking-dns-suffix = DNS suffix
+about-networking-websockets = WebSockets
+about-networking-refresh = Refresh
+about-networking-auto-refresh = Autorefresh every 3 seconds
+about-networking-hostname = Hostname
+about-networking-port = Port
+about-networking-http-version = HTTP Version
+about-networking-ssl = SSL
+about-networking-active = Active
+about-networking-idle = Idle
+about-networking-host = Host
+about-networking-type = Type
+about-networking-sent = Sent
+about-networking-received = Received
+about-networking-family = Family
+about-networking-trr = TRR
+about-networking-addresses = Addresses
+about-networking-expires = Expires (Seconds)
+about-networking-originAttributesSuffix = Isolation Key
+about-networking-flags = Extra flags
+about-networking-messages-sent = Messages Sent
+about-networking-messages-received = Messages Received
+about-networking-bytes-sent = Bytes Sent
+about-networking-bytes-received = Bytes Received
+about-networking-logging = Logging
+about-networking-dns-lookup = DNS Lookup
+about-networking-dns-lookup-button = Resolve
+about-networking-dns-domain = Domain:
+about-networking-dns-lookup-table-column = IPs
+about-networking-dns-https-rr-lookup-table-column = HTTP RRs
+about-networking-rcwn = RCWN Stats
+about-networking-rcwn-status = RCWN Status
+about-networking-rcwn-cache-won-count = Cache won count
+about-networking-rcwn-net-won-count = Net won count
+about-networking-total-network-requests = Total network request count
+about-networking-rcwn-operation = Cache Operation
+about-networking-rcwn-perf-open = Open
+about-networking-rcwn-perf-read = Read
+about-networking-rcwn-perf-write = Write
+about-networking-rcwn-perf-entry-open = Entry Open
+about-networking-rcwn-avg-short = Short Average
+about-networking-rcwn-avg-long = Long Average
+about-networking-rcwn-std-dev-long = Long Standard Deviation
+about-networking-rcwn-cache-slow = Cache slow count
+about-networking-rcwn-cache-not-slow = Cache not slow count
+about-networking-networkid = Network ID
+about-networking-networkid-id = Network ID
+# Note: do not translate about:logging, as it is a URL.
+about-networking-moved-about-logging = This page has been moved to <a data-l10n-name="about-logging-url">about:logging</a>.
+
+## Link is intended as "network link"
+
+about-networking-networkid-is-up = Link is up
+about-networking-networkid-status-known = Link status is known
+
+##
diff --git a/toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl b/toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl
new file mode 100644
index 0000000000..5c352aaf8f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,67 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-performance-title = Task Manager
+
+## Column headers
+
+column-name = Name
+column-type = Type
+column-energy-impact = Energy Impact
+column-memory = Memory
+
+## Special values for the Name column
+
+ghost-windows = Recently closed tabs
+# Variables:
+# $title (String) - the title of the preloaded page, typically 'New Tab'
+preloaded-tab = Preloaded: { $title }
+
+## Values for the Type column
+
+type-tab = Tab
+type-subframe = Subframe
+type-tracker = Tracker
+type-addon = Add-on
+type-browser = Browser
+type-worker = Worker
+type-other = Other
+
+## Values for the Energy Impact column
+##
+## Variables:
+## $value (Number) - Value of the energy impact, eg. 0.25 (low),
+## 5.38 (medium), 105.38 (high)
+
+energy-impact-high = High ({ $value })
+energy-impact-medium = Medium ({ $value })
+energy-impact-low = Low ({ $value })
+
+## Values for the Memory column
+##
+## Variables:
+## $value (Number) - How much memory is used
+
+size-KB = { $value } KB
+size-MB = { $value } MB
+size-GB = { $value } GB
+
+## Tooltips for the action buttons
+
+close-tab =
+ .title = Close tab
+show-addon =
+ .title = Show in Add-ons Manager
+
+# Tooltip when hovering an item of the about:performance table
+# Variables:
+# $totalDispatches (Number) - how many dispatches occurred for this page since it loaded
+# $totalDuration (Number) - how much CPU time was used by this page since it loaded
+# $dispatchesSincePrevious (Number) - how many dispatches occurred in the last 2 seconds
+# $durationSincePrevious (Number) - how much CPU time was used in the last 2 seconds
+item =
+ .title =
+ Dispatches since load: { $totalDispatches } ({ $totalDuration }ms)
+ Dispatches in the last seconds: { $dispatchesSincePrevious } ({ $durationSincePrevious }ms)
diff --git a/toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl b/toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl
new file mode 100644
index 0000000000..64b274ebbd
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl
@@ -0,0 +1,46 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title-label = About Plugins
+
+installed-plugins-label = Installed plugins
+no-plugins-are-installed-label = No installed plugins found
+
+deprecation-description = Missing something? Some plugins are no longer supported. <a data-l10n-name="deprecation-link">Learn More.</a>
+
+## The information of plugins
+##
+## Variables:
+## $pluginLibraries: the plugin library
+## $pluginFullPath: path of the plugin
+## $version: version of the plugin
+
+file-dd = <span data-l10n-name="file">File:</span> { $pluginLibraries }
+path-dd = <span data-l10n-name="path">Path:</span> { $pluginFullPath }
+version-dd = <span data-l10n-name="version">Version:</span> { $version }
+
+## These strings describe the state of plugins
+##
+## Variables:
+## $blockListState: show some special state of the plugin, such as blocked, outdated
+
+state-dd-enabled = <span data-l10n-name="state">State:</span> Enabled
+state-dd-enabled-block-list-state = <span data-l10n-name="state">State:</span> Enabled ({ $blockListState })
+state-dd-Disabled = <span data-l10n-name="state">State:</span> Disabled
+state-dd-Disabled-block-list-state = <span data-l10n-name="state">State:</span> Disabled ({ $blockListState })
+
+mime-type-label = MIME Type
+description-label = Description
+suffixes-label = Suffixes
+
+## Gecko Media Plugins (GMPs)
+
+plugins-gmp-license-info = License information
+plugins-gmp-privacy-info = Privacy Information
+
+plugins-openh264-name = OpenH264 Video Codec provided by Cisco Systems, Inc.
+plugins-openh264-description = This plugin is automatically installed by Mozilla to comply with the WebRTC specification and to enable WebRTC calls with devices that require the H.264 video codec. Visit https://www.openh264.org/ to view the codec source code and learn more about the implementation.
+
+plugins-widevine-name = Widevine Content Decryption Module provided by Google Inc.
+plugins-widevine-description = This plugin enables playback of encrypted media in compliance with the Encrypted Media Extensions specification. Encrypted media is typically used by sites to protect against copying of premium media content. Visit https://www.w3.org/TR/encrypted-media/ for more information on Encrypted Media Extensions.
diff --git a/toolkit/locales/en-US/toolkit/about/aboutProcesses.ftl b/toolkit/locales/en-US/toolkit/about/aboutProcesses.ftl
new file mode 100644
index 0000000000..f2080eb2b1
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutProcesses.ftl
@@ -0,0 +1,197 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Page title
+about-processes-title = Process Manager
+
+# The Actions column
+about-processes-column-action =
+ .title = Actions
+
+## Tooltips
+
+about-processes-shutdown-process =
+ .title = Unload tabs and kill process
+about-processes-shutdown-tab =
+ .title = Close tab
+
+# Profiler icons
+# Variables:
+# $duration (Number) The time in seconds during which the profiler will be running.
+# The value will be an integer, typically less than 10.
+about-processes-profile-process =
+ .title = { $duration ->
+ [one] Profile all threads of this process for { $duration } second
+ *[other] Profile all threads of this process for { $duration } seconds
+}
+
+## Column headers
+
+about-processes-column-name = Name
+about-processes-column-memory-resident = Memory
+about-processes-column-cpu-total = CPU
+
+## Process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+
+about-processes-browser-process = { -brand-short-name } ({ $pid })
+about-processes-web-process = Shared Web Process ({ $pid })
+about-processes-file-process = Files ({ $pid })
+about-processes-extension-process = Extensions ({ $pid })
+about-processes-privilegedabout-process = About pages ({ $pid })
+about-processes-plugin-process = Plugins ({ $pid })
+about-processes-privilegedmozilla-process = { -vendor-short-name } sites ({ $pid })
+about-processes-gmp-plugin-process = Gecko Media Plugins ({ $pid })
+about-processes-gpu-process = GPU ({ $pid })
+about-processes-vr-process = VR ({ $pid })
+about-processes-rdd-process = Data Decoder ({ $pid })
+about-processes-socket-process = Network ({ $pid })
+about-processes-remote-sandbox-broker-process = Remote Sandbox Broker ({ $pid })
+about-processes-fork-server-process = Fork Server ({ $pid })
+about-processes-preallocated-process = Preallocated ({ $pid })
+about-processes-utility-process = Utility ({ $pid })
+
+# Unknown process names
+# Variables:
+# $pid (String) The process id of this process, assigned by the OS.
+# $type (String) The raw type for this process.
+about-processes-unknown-process = Other: { $type } ({ $pid })
+
+## Isolated process names
+## Variables:
+## $pid (String) The process id of this process, assigned by the OS.
+## $origin (String) The domain name for this process.
+
+about-processes-web-isolated-process = { $origin } ({ $pid })
+about-processes-web-serviceworker = { $origin } ({ $pid }, serviceworker)
+about-processes-with-coop-coep-process = { $origin } ({ $pid }, cross-origin isolated)
+about-processes-web-isolated-process-private = { $origin } — Private ({ $pid })
+about-processes-with-coop-coep-process-private = { $origin } — Private ({ $pid }, cross-origin isolated)
+
+## Details within processes
+
+# Single-line summary of threads (non-idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# $active (Number) The number of active threads in the process.
+# The value will be greater than 0 and will never be
+# greater than $number.
+# $list (String) Comma separated list of active threads.
+# Can be an empty string if the process is idle.
+about-processes-active-threads = { $active ->
+ [one] { $active } active thread out of { $number }: { $list }
+ *[other] { $active } active threads out of { $number }: { $list }
+}
+
+# Single-line summary of threads (idle process)
+# Variables:
+# $number (Number) The number of threads in the process. Typically larger
+# than 30. We don't expect to ever have processes with less
+# than 5 threads.
+# The process is idle so all threads are inactive.
+about-processes-inactive-threads = { $number ->
+ [one] { $number } inactive thread
+ *[other] { $number } inactive threads
+}
+
+# Thread details
+# Variables:
+# $name (String) The name assigned to the thread.
+# $tid (String) The thread id of this thread, assigned by the OS.
+about-processes-thread-name-and-id = { $name }
+ .title = Thread id: { $tid }
+
+# Tab
+# Variables:
+# $name (String) The name of the tab (typically the title of the page, might be the url while the page is loading).
+about-processes-tab-name = Tab: { $name }
+about-processes-preloaded-tab = Preloaded New Tab
+
+# Single subframe
+# Variables:
+# $url (String) The full url of this subframe.
+about-processes-frame-name-one = Subframe: { $url }
+
+# Group of subframes
+# Variables:
+# $number (Number) The number of subframes in this group. Always ≥ 1.
+# $shortUrl (String) The shared prefix for the subframes in the group.
+about-processes-frame-name-many = Subframes ({ $number }): { $shortUrl }
+
+## Utility process actor names
+
+about-processes-utility-actor-unknown = Unknown actor
+about-processes-utility-actor-audio-decoder-generic = Generic Audio Decoder
+about-processes-utility-actor-audio-decoder-applemedia = Apple Media Audio Decoder
+about-processes-utility-actor-audio-decoder-wmf = Windows Media Framework Audio Decoder
+about-processes-utility-actor-mf-media-engine = Windows Media Foundation Media Engine CDM
+# "Oracle" refers to an internal Firefox process and should be kept in English
+about-processes-utility-actor-js-oracle = JavaScript Oracle
+about-processes-utility-actor-windows-utils = Windows Utils
+
+## Displaying CPU (percentage and total)
+## Variables:
+## $percent (Number) The percentage of CPU used by the process or thread.
+## Always > 0, generally <= 200.
+## $total (Number) The amount of time used by the process or thread since
+## its start.
+## $unit (String) The unit in which to display $total. See the definitions
+## of `duration-unit-*`.
+
+# Common case.
+about-processes-cpu = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") }
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: data is not available yet.
+about-processes-cpu-user-and-kernel-not-ready = (measuring)
+
+# Special case: process or thread is almost idle (using less than 0.1% of a CPU core).
+# This case only occurs on Windows where the precision of the CPU times is low.
+about-processes-cpu-almost-idle = < 0.1%
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+# Special case: process or thread is currently idle.
+about-processes-cpu-fully-idle = idle
+ .title = Total CPU time: { NUMBER($total, maximumFractionDigits: 0) }{ $unit }
+
+## Displaying Memory (total and delta)
+## Variables:
+## $total (Number) The amount of memory currently used by the process.
+## $totalUnit (String) The unit in which to display $total. See the definitions
+## of `memory-unit-*`.
+## $delta (Number) The absolute value of the amount of memory added recently.
+## $deltaSign (String) Either "+" if the amount of memory has increased
+## or "-" if it has decreased.
+## $deltaUnit (String) The unit in which to display $delta. See the definitions
+## of `memory-unit-*`.
+
+# Common case.
+about-processes-total-memory-size-changed = { NUMBER($total, maximumFractionDigits:0) }{ $totalUnit }
+ .title = Evolution: { $deltaSign }{ NUMBER($delta, maximumFractionDigits:0) }{ $deltaUnit }
+
+# Special case: no change.
+about-processes-total-memory-size-no-change = { NUMBER($total, maximumFractionDigits:0) }{ $totalUnit }
+
+## Duration units
+
+duration-unit-ns = ns
+duration-unit-us = µs
+duration-unit-ms = ms
+duration-unit-s = s
+duration-unit-m = m
+duration-unit-h = h
+duration-unit-d = d
+
+## Memory units
+
+memory-unit-B = B
+memory-unit-KB = KB
+memory-unit-MB = MB
+memory-unit-GB = GB
+memory-unit-TB = TB
+memory-unit-PB = PB
+memory-unit-EB = EB
diff --git a/toolkit/locales/en-US/toolkit/about/aboutProfiles.ftl b/toolkit/locales/en-US/toolkit/about/aboutProfiles.ftl
new file mode 100644
index 0000000000..c11b89b321
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutProfiles.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+profiles-title = About Profiles
+profiles-subtitle = This page helps you to manage your profiles. Each profile is a separate world which contains separate history, bookmarks, settings and add-ons.
+profiles-create = Create a New Profile
+profiles-restart-title = Restart
+profiles-restart-in-safe-mode = Restart with Add-ons Disabled…
+profiles-restart-normal = Restart normally…
+profiles-conflict = Another copy of { -brand-product-name } has made changes to profiles. You must restart { -brand-short-name } before making more changes.
+profiles-flush-fail-title = Changes not saved
+profiles-flush-conflict = { profiles-conflict }
+profiles-flush-failed = An unexpected error has prevented your changes from being saved.
+profiles-flush-restart-button = Restart { -brand-short-name }
+
+# Variables:
+# $name (String) - Name of the profile
+profiles-name = Profile: { $name }
+profiles-is-default = Default Profile
+profiles-rootdir = Root Directory
+
+# localDir is used to show the directory corresponding to
+# the main profile directory that exists for the purpose of storing data on the
+# local filesystem, including cache files or other data files that may not
+# represent critical user data. (e.g., this directory may not be included as
+# part of a backup scheme.)
+# In case localDir and rootDir are equal, localDir is not shown.
+profiles-localdir = Local Directory
+profiles-current-profile = This is the profile in use and it cannot be deleted.
+profiles-in-use-profile = This profile is in use in another application and it cannot be deleted.
+
+profiles-rename = Rename
+profiles-remove = Remove
+profiles-set-as-default = Set as default profile
+profiles-launch-profile = Launch profile in new browser
+
+profiles-cannot-set-as-default-title = Unable to set default
+profiles-cannot-set-as-default-message = The default profile cannot be changed for { -brand-short-name }.
+
+profiles-yes = yes
+profiles-no = no
+
+profiles-rename-profile-title = Rename Profile
+# Variables:
+# $name (String) - Name of the profile
+profiles-rename-profile = Rename profile { $name }
+
+profiles-invalid-profile-name-title = Invalid profile name
+# Variables:
+# $name (String) - Name of the profile
+profiles-invalid-profile-name = The profile name “{ $name }” is not allowed.
+
+profiles-delete-profile-title = Delete Profile
+# Variables:
+# $dir (String) - Path to be displayed
+profiles-delete-profile-confirm =
+ Deleting a profile will remove the profile from the list of available profiles and cannot be undone.
+ You may also choose to delete the profile data files, including your settings, certificates and other user-related data. This option will delete the folder “{ $dir }” and cannot be undone.
+ Would you like to delete the profile data files?
+profiles-delete-files = Delete Files
+profiles-dont-delete-files = Don’t Delete Files
+
+profiles-delete-profile-failed-title = Error
+profiles-delete-profile-failed-message = There was an error while attempting to delete this profile.
+
+
+profiles-opendir =
+ { PLATFORM() ->
+ [macos] Show in Finder
+ [windows] Open Folder
+ *[other] Open Directory
+ }
diff --git a/toolkit/locales/en-US/toolkit/about/aboutReader.ftl b/toolkit/locales/en-US/toolkit/about/aboutReader.ftl
new file mode 100644
index 0000000000..8444f09288
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutReader.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-reader-loading = Loading…
+about-reader-load-error = Failed to load article from page
+
+about-reader-color-scheme-light = Light
+ .title = Color Scheme Light
+about-reader-color-scheme-dark = Dark
+ .title = Color Scheme Dark
+about-reader-color-scheme-sepia = Sepia
+ .title = Color Scheme Sepia
+about-reader-color-scheme-auto = Auto
+ .title = Color Scheme Auto
+
+# An estimate for how long it takes to read an article,
+# expressed as a range covering both slow and fast readers.
+# Variables:
+# $rangePlural (String): The plural category of the range, using the same set as for numbers.
+# $range (String): The range of minutes as a localised string. Examples: "3-7", "~1".
+about-reader-estimated-read-time =
+ { $rangePlural ->
+ [one] { $range } minute
+ *[other] { $range } minutes
+ }
+
+## These are used as tooltips in Type Control
+
+about-reader-toolbar-minus =
+ .title = Decrease Font Size
+about-reader-toolbar-plus =
+ .title = Increase Font Size
+about-reader-toolbar-contentwidthminus =
+ .title = Decrease Content Width
+about-reader-toolbar-contentwidthplus =
+ .title = Increase Content Width
+about-reader-toolbar-lineheightminus =
+ .title = Decrease Line Height
+about-reader-toolbar-lineheightplus =
+ .title = Increase Line Height
+
+## These are the styles of typeface that are options in the reader view controls.
+
+about-reader-font-type-serif = Serif
+about-reader-font-type-sans-serif = Sans-serif
+
+## Reader View toolbar buttons
+
+about-reader-toolbar-close = Close Reader View
+about-reader-toolbar-type-controls = Type controls
+about-reader-toolbar-savetopocket = Save To { -pocket-brand-name }
diff --git a/toolkit/locales/en-US/toolkit/about/aboutRights.ftl b/toolkit/locales/en-US/toolkit/about/aboutRights.ftl
new file mode 100644
index 0000000000..517e4232df
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutRights.ftl
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+rights-title = About Your Rights
+rights-intro =
+ { -brand-full-name } is free and open source software, built by a community
+ of thousands from all over the world. There are a few things you should
+ know:
+rights-intro-point-1 =
+ { -brand-short-name } is made available to you under the terms of the
+ <a data-l10n-name="mozilla-public-license-link">Mozilla Public License</a>.
+ This means you may use, copy and distribute { -brand-short-name } to
+ others. You are also welcome to modify the source code of
+ { -brand-short-name } as you want to meet your needs. The Mozilla Public
+ License also gives you the right to distribute your modified versions.
+rights-intro-point-2 =
+ You are not granted any trademark rights or licenses to the trademarks of
+ the Mozilla Foundation or any party, including without limitation the
+ Firefox name or logo. Additional information on trademarks may be found
+ <a data-l10n-name="mozilla-trademarks-link">here</a>.
+rights-intro-point-3 =
+ Some features in { -brand-short-name }, such as the Crash Reporter, give
+ you the option to provide feedback to { -vendor-short-name }. By choosing
+ to submit feedback, you give { -vendor-short-name } permission to use the
+ feedback to improve its products, to publish the feedback on its websites,
+ and to distribute the feedback.
+rights-intro-point-4 =
+ How we use your personal information and feedback submitted to
+ { -vendor-short-name } through { -brand-short-name } is described in the
+ <a data-l10n-name="mozilla-privacy-policy-link">{ -brand-short-name }
+ Privacy Policy</a>.
+rights-intro-point-4-unbranded =
+ Any applicable privacy policies for this product should be listed here.
+rights-intro-point-5 =
+ Some { -brand-short-name } features make use of web-based information
+ services, however, we cannot guarantee they are 100% accurate or
+ error-free. More details, including information on how to disable the
+ features that use these services, can be found in the
+ <a data-l10n-name="mozilla-service-terms-link">service terms</a>.
+rights-intro-point-5-unbranded =
+ If this product incorporates web services, any applicable service terms for
+ the service(s) should be linked to the
+ <a data-l10n-name="mozilla-website-services-link"> Website Services</a>
+ section.
+rights-intro-point-6 =
+ In order to play back certain types of video content, { -brand-short-name }
+ downloads certain content decryption modules from third parties.
+rights-webservices-header = { -brand-full-name } Web-Based Information Services
+rights-webservices =
+ { -brand-full-name } uses web-based information services (“Services”) to
+ provide some of the features provided for your use with this binary version
+ of { -brand-short-name } under the terms described below. If you do not
+ want to use one or more of the Services or the terms below are
+ unacceptable, you may disable the feature or Service(s). Instructions on
+ how to disable a particular feature or Service may be found
+ <a data-l10n-name="mozilla-disable-service-link">here</a>. Other features
+ and Services can be disabled in the application preferences.
+rights-safebrowsing =
+ <strong>SafeBrowsing: </strong>Disabling the Safe Browsing feature is not
+ recommended as it may result in you going to unsafe sites. If you wish to
+ disable the feature completely, follow these steps:
+rights-safebrowsing-term-1 = Open the application preferences
+rights-safebrowsing-term-2 = Select the Security selection
+rights-safebrowsing-term-3 =
+ Uncheck the option to “{ enableSafeBrowsing-label }”
+enableSafeBrowsing-label = Block dangerous and deceptive content
+rights-safebrowsing-term-4 = Safe Browsing is now disabled
+rights-locationawarebrowsing =
+ <strong>Location Aware Browsing: </strong>is always opt-in. No location
+ information is ever sent without your permission. If you wish to disable
+ the feature completely, follow these steps:
+rights-locationawarebrowsing-term-1 =
+ In the URL bar, type <code>about:config</code>
+rights-locationawarebrowsing-term-2 = Type geo.enabled
+rights-locationawarebrowsing-term-3 =
+ Double click on the geo.enabled preference
+rights-locationawarebrowsing-term-4 = Location-Aware Browsing is now disabled
+rights-webservices-unbranded =
+ An overview of the website services the product incorporates, along with
+ instructions on how to disable them, if applicable, should be included
+ here.
+rights-webservices-term-unbranded =
+ Any applicable service terms for this product should be listed here.
+rights-webservices-term-1 =
+ { -vendor-short-name } and its contributors, licensors and partners work to
+ provide the most accurate and up-to-date Services. However, we cannot
+ guarantee that this information is comprehensive and error-free. For
+ example, the Safe Browsing Service may not identify some risky sites and
+ may identify some safe sites in error and the Location Aware Service all
+ locations returned by our service providers are estimates only and neither
+ we nor our service providers guarantee the accuracy of the locations
+ provided.
+rights-webservices-term-2 =
+ { -vendor-short-name } may discontinue or change the Services at its
+ discretion.
+rights-webservices-term-3 =
+ You are welcome to use these Services with the accompanying version of
+ { -brand-short-name }, and { -vendor-short-name } grants you its rights to
+ do so. { -vendor-short-name } and its licensors reserve all other rights in
+ the Services. These terms are not intended to limit any rights granted
+ under open source licenses applicable to { -brand-short-name } and to
+ corresponding source code versions of { -brand-short-name }.
+rights-webservices-term-4 =
+ <strong>The Services are provided “as-is.” { -vendor-short-name }, its
+ contributors, licensors, and distributors, disclaim all warranties, whether
+ express or implied, including without limitation, warranties that the
+ Services are merchantable and fit for your particular purposes. You bear
+ the entire risk as to selecting the Services for your purposes and as to
+ the quality and performance of the Services. Some jurisdictions do not
+ allow the exclusion or limitation of implied warranties, so this disclaimer
+ may not apply to you.</strong>
+rights-webservices-term-5 =
+ <strong>Except as required by law, { -vendor-short-name }, its
+ contributors, licensors, and distributors will not be liable for any
+ indirect, special, incidental, consequential, punitive, or exemplary
+ damages arising out of or in any way relating to the use of
+ { -brand-short-name } and the Services. The collective liability under
+ these terms will not exceed $500 (five hundred dollars). Some jurisdictions
+ do not allow the exclusion or limitation of certain damages, so this
+ exclusion and limitation may not apply to you.</strong>
+rights-webservices-term-6 =
+ { -vendor-short-name } may update these terms as necessary from time to
+ time. These terms may not be modified or canceled without
+ { -vendor-short-name }’s written agreement.
+rights-webservices-term-7 =
+ These terms are governed by the laws of the state of California, U.S.A.,
+ excluding its conflict of law provisions. If any portion of these terms is
+ held to be invalid or unenforceable, the remaining portions will remain in
+ full force and effect. In the event of a conflict between a translated
+ version of these terms and the English language version, the English
+ language version shall control.
diff --git a/toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl b/toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl
new file mode 100644
index 0000000000..7c77a3d6ff
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### The term "Service Workers" and "Workers" should not be translated
+
+about-service-workers-title = About Service Workers
+about-service-workers-main-title = Registered Service Workers
+about-service-workers-warning-not-enabled = Service Workers are not enabled.
+about-service-workers-warning-no-service-workers = No Service Workers registered.
+
+# The original title of service workers' information
+#
+# Variables:
+# $originTitle: original title
+origin-title = Origin: { $originTitle }
+
+## These strings are for showing the information of workers.
+##
+## Variables:
+## $name: the name of scope, active cache, waiting cache and the push end point.
+## $url: the url of script specification and current worker.
+
+scope = <strong>Scope:</strong> { $name }
+script-spec = <strong>Script Spec:</strong> <a data-l10n-name="link">{ $url }</a>
+current-worker-url = <strong>Current Worker URL:</strong> <a data-l10n-name="link">{ $url }</a>
+active-cache-name = <strong>Active Cache Name:</strong> { $name }
+waiting-cache-name = <strong>Waiting Cache Name:</strong> { $name }
+push-end-point-waiting = <strong>Push Endpoint:</strong> { waiting }
+push-end-point-result = <strong>Push Endpoint:</strong> { $name }
+
+# This term is used as a button label (verb, not noun).
+update-button = Update
+
+unregister-button = Unregister
+
+unregister-error = Failed to unregister this Service Worker.
+
+waiting = Waiting…
diff --git a/toolkit/locales/en-US/toolkit/about/aboutSupport.ftl b/toolkit/locales/en-US/toolkit/about/aboutSupport.ftl
new file mode 100644
index 0000000000..3dadff9d05
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,415 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+page-title = Troubleshooting Information
+page-subtitle =
+ This page contains technical information that might be useful when you’re
+ trying to solve a problem. If you are looking for answers to common questions
+ about { -brand-short-name }, check out our <a data-l10n-name="support-link">support website</a>.
+
+crashes-title = Crash Reports
+crashes-id = Report ID
+crashes-send-date = Submitted
+crashes-all-reports = All Crash Reports
+crashes-no-config = This application has not been configured to display crash reports.
+support-addons-title = Add-ons
+support-addons-name = Name
+support-addons-type = Type
+support-addons-enabled = Enabled
+support-addons-version = Version
+support-addons-id = ID
+security-software-title = Security Software
+security-software-type = Type
+security-software-name = Name
+security-software-antivirus = Antivirus
+security-software-antispyware = Antispyware
+security-software-firewall = Firewall
+features-title = { -brand-short-name } Features
+features-name = Name
+features-version = Version
+features-id = ID
+processes-title = Remote Processes
+processes-type = Type
+processes-count = Count
+app-basics-title = Application Basics
+app-basics-name = Name
+app-basics-version = Version
+app-basics-build-id = Build ID
+app-basics-distribution-id = Distribution ID
+app-basics-update-channel = Update Channel
+# This message refers to the folder used to store updates on the device,
+# as in "Folder for updates". "Update" is a noun, not a verb.
+app-basics-update-dir =
+ { PLATFORM() ->
+ [linux] Update Directory
+ *[other] Update Folder
+ }
+app-basics-update-history = Update History
+app-basics-show-update-history = Show Update History
+# Represents the path to the binary used to start the application.
+app-basics-binary = Application Binary
+app-basics-profile-dir =
+ { PLATFORM() ->
+ [linux] Profile Directory
+ *[other] Profile Folder
+ }
+app-basics-enabled-plugins = Enabled Plugins
+app-basics-build-config = Build Configuration
+app-basics-user-agent = User Agent
+app-basics-os = OS
+app-basics-os-theme = OS Theme
+# Rosetta is Apple's translation process to run apps containing x86_64
+# instructions on Apple Silicon. This should remain in English.
+app-basics-rosetta = Rosetta Translated
+app-basics-memory-use = Memory Use
+app-basics-performance = Performance
+app-basics-service-workers = Registered Service Workers
+app-basics-third-party = Third-party Modules
+app-basics-profiles = Profiles
+app-basics-launcher-process-status = Launcher Process
+app-basics-multi-process-support = Multiprocess Windows
+app-basics-fission-support = Fission Windows
+app-basics-remote-processes-count = Remote Processes
+app-basics-enterprise-policies = Enterprise Policies
+app-basics-location-service-key-google = Google Location Service Key
+app-basics-safebrowsing-key-google = Google Safebrowsing Key
+app-basics-key-mozilla = Mozilla Location Service Key
+app-basics-safe-mode = Safe Mode
+app-basics-memory-size = Memory Size (RAM)
+app-basics-disk-available = Disk Space Available
+
+# Variables:
+# $value (number) - Amount of data being stored
+# $unit (string) - The unit of data being stored (e.g. MB)
+app-basics-data-size = { $value } { $unit }
+
+show-dir-label =
+ { PLATFORM() ->
+ [macos] Show in Finder
+ [windows] Open Folder
+ *[other] Open Directory
+ }
+environment-variables-title = Environment Variables
+environment-variables-name = Name
+environment-variables-value = Value
+experimental-features-title = Experimental Features
+experimental-features-name = Name
+experimental-features-value = Value
+modified-key-prefs-title = Important Modified Preferences
+modified-prefs-name = Name
+modified-prefs-value = Value
+user-js-title = user.js Preferences
+user-js-description = Your profile folder contains a <a data-l10n-name="user-js-link">user.js file</a>, which includes preferences that were not created by { -brand-short-name }.
+locked-key-prefs-title = Important Locked Preferences
+locked-prefs-name = Name
+locked-prefs-value = Value
+graphics-title = Graphics
+graphics-features-title = Features
+graphics-diagnostics-title = Diagnostics
+graphics-failure-log-title = Failure Log
+graphics-gpu1-title = GPU #1
+graphics-gpu2-title = GPU #2
+graphics-decision-log-title = Decision Log
+graphics-crash-guards-title = Crash Guard Disabled Features
+graphics-workarounds-title = Workarounds
+graphics-device-pixel-ratios = Window Device Pixel Ratios
+# Windowing system in use on Linux (e.g. X11, Wayland).
+graphics-window-protocol = Window Protocol
+# Desktop environment in use on Linux (e.g. GNOME, KDE, XFCE, etc).
+graphics-desktop-environment = Desktop Environment
+place-database-title = Places Database
+place-database-stats = Statistics
+place-database-stats-show = Show Statistics
+place-database-stats-hide = Hide Statistics
+place-database-stats-entity = Entity
+place-database-stats-count = Count
+place-database-stats-size-kib = Size (KiB)
+place-database-stats-size-perc = Size (%)
+place-database-stats-efficiency-perc = Efficiency (%)
+place-database-stats-sequentiality-perc = Sequentiality (%)
+place-database-integrity = Integrity
+place-database-verify-integrity = Verify Integrity
+a11y-title = Accessibility
+a11y-activated = Activated
+a11y-force-disabled = Prevent Accessibility
+a11y-handler-used = Accessible Handler Used
+a11y-instantiator = Accessibility Instantiator
+library-version-title = Library Versions
+copy-text-to-clipboard-label = Copy text to clipboard
+copy-raw-data-to-clipboard-label = Copy raw data to clipboard
+sandbox-title = Sandbox
+sandbox-sys-call-log-title = Rejected System Calls
+sandbox-sys-call-index = #
+sandbox-sys-call-age = Seconds Ago
+sandbox-sys-call-pid = PID
+sandbox-sys-call-tid = TID
+sandbox-sys-call-proc-type = Process Type
+sandbox-sys-call-number = Syscall
+sandbox-sys-call-args = Arguments
+troubleshoot-mode-title = Diagnose issues
+restart-in-troubleshoot-mode-label = Troubleshoot Mode…
+clear-startup-cache-title = Try clearing the startup cache
+clear-startup-cache-label = Clear startup cache…
+startup-cache-dialog-title2 = Restart { -brand-short-name } to clear startup cache?
+startup-cache-dialog-body2 = This will not change your settings or remove extensions.
+restart-button-label = Restart
+
+## Media titles
+
+audio-backend = Audio Backend
+max-audio-channels = Max Channels
+sample-rate = Preferred Sample Rate
+roundtrip-latency = Roundtrip latency (standard deviation)
+media-title = Media
+media-output-devices-title = Output Devices
+media-input-devices-title = Input Devices
+media-device-name = Name
+media-device-group = Group
+media-device-vendor = Vendor
+media-device-state = State
+media-device-preferred = Preferred
+media-device-format = Format
+media-device-channels = Channels
+media-device-rate = Rate
+media-device-latency = Latency
+media-capabilities-title = Media Capabilities
+media-codec-support-info = Codec Support Information
+# List all the entries of the database.
+media-capabilities-enumerate = Enumerate database
+
+##
+
+intl-title = Internationalization & Localization
+intl-app-title = Application Settings
+intl-locales-requested = Requested Locales
+intl-locales-available = Available Locales
+intl-locales-supported = App Locales
+intl-locales-default = Default Locale
+intl-os-title = Operating System
+intl-os-prefs-system-locales = System Locales
+intl-regional-prefs = Regional Preferences
+
+## Remote Debugging
+##
+## The Firefox remote protocol provides low-level debugging interfaces
+## used to inspect state and control execution of documents,
+## browser instrumentation, user interaction simulation,
+## and for subscribing to browser-internal events.
+##
+## See also https://firefox-source-docs.mozilla.org/remote/
+
+remote-debugging-title = Remote Debugging (Chromium Protocol)
+remote-debugging-accepting-connections = Accepting Connections
+remote-debugging-url = URL
+
+##
+
+# Variables
+# $days (Integer) - Number of days of crashes to log
+report-crash-for-days =
+ { $days ->
+ [one] Crash Reports for the Last { $days } Day
+ *[other] Crash Reports for the Last { $days } Days
+ }
+
+# Variables
+# $minutes (integer) - Number of minutes since crash
+crashes-time-minutes =
+ { $minutes ->
+ [one] { $minutes } minute ago
+ *[other] { $minutes } minutes ago
+ }
+
+# Variables
+# $hours (integer) - Number of hours since crash
+crashes-time-hours =
+ { $hours ->
+ [one] { $hours } hour ago
+ *[other] { $hours } hours ago
+ }
+
+# Variables
+# $days (integer) - Number of days since crash
+crashes-time-days =
+ { $days ->
+ [one] { $days } day ago
+ *[other] { $days } days ago
+ }
+
+# Variables
+# $reports (integer) - Number of pending reports
+pending-reports =
+ { $reports ->
+ [one] All Crash Reports (including { $reports } pending crash in the given time range)
+ *[other] All Crash Reports (including { $reports } pending crashes in the given time range)
+ }
+
+raw-data-copied = Raw data copied to clipboard
+text-copied = Text copied to clipboard
+
+## The verb "blocked" here refers to a graphics feature such as "Direct2D" or "OpenGL layers".
+
+blocked-driver = Blocked for your graphics driver version.
+blocked-gfx-card = Blocked for your graphics card because of unresolved driver issues.
+blocked-os-version = Blocked for your operating system version.
+blocked-mismatched-version = Blocked for your graphics driver version mismatch between registry and DLL.
+# Variables
+# $driverVersion - The graphics driver version string
+try-newer-driver = Blocked for your graphics driver version. Try updating your graphics driver to version { $driverVersion } or newer.
+
+# "ClearType" is a proper noun and should not be translated. Feel free to leave English strings if
+# there are no good translations, these are only used in about:support
+clear-type-parameters = ClearType Parameters
+
+compositing = Compositing
+hardware-h264 = Hardware H264 Decoding
+main-thread-no-omtc = main thread, no OMTC
+yes = Yes
+no = No
+unknown = Unknown
+virtual-monitor-disp = Virtual Monitor Display
+
+## The following strings indicate if an API key has been found.
+## In some development versions, it's expected for some API keys that they are
+## not found.
+
+found = Found
+missing = Missing
+
+gpu-process-pid = GPUProcessPid
+gpu-process = GPUProcess
+gpu-description = Description
+gpu-vendor-id = Vendor ID
+gpu-device-id = Device ID
+gpu-subsys-id = Subsys ID
+gpu-drivers = Drivers
+gpu-ram = RAM
+gpu-driver-vendor = Driver Vendor
+gpu-driver-version = Driver Version
+gpu-driver-date = Driver Date
+gpu-active = Active
+webgl1-wsiinfo = WebGL 1 Driver WSI Info
+webgl1-renderer = WebGL 1 Driver Renderer
+webgl1-version = WebGL 1 Driver Version
+webgl1-driver-extensions = WebGL 1 Driver Extensions
+webgl1-extensions = WebGL 1 Extensions
+webgl2-wsiinfo = WebGL 2 Driver WSI Info
+webgl2-renderer = WebGL 2 Driver Renderer
+webgl2-version = WebGL 2 Driver Version
+webgl2-driver-extensions = WebGL 2 Driver Extensions
+webgl2-extensions = WebGL 2 Extensions
+webgpu-default-adapter = WebGPU Default Adapter
+webgpu-fallback-adapter = WebGPU Fallback Adapter
+
+# Variables
+# $bugNumber (string) - Bug number on Bugzilla
+support-blocklisted-bug = Blocklisted due to known issues: <a data-l10n-name="bug-link">bug { $bugNumber }</a>
+
+# Variables
+# $failureCode (string) - String that can be searched in the source tree.
+unknown-failure = Blocklisted; failure code { $failureCode }
+
+d3d11layers-crash-guard = D3D11 Compositor
+glcontext-crash-guard = OpenGL
+wmfvpxvideo-crash-guard = WMF VPX Video Decoder
+
+reset-on-next-restart = Reset on Next Restart
+gpu-process-kill-button = Terminate GPU Process
+gpu-device-reset = Device Reset
+gpu-device-reset-button = Trigger Device Reset
+uses-tiling = Uses Tiling
+content-uses-tiling = Uses Tiling (Content)
+off-main-thread-paint-enabled = Off Main Thread Painting Enabled
+off-main-thread-paint-worker-count = Off Main Thread Painting Worker Count
+target-frame-rate = Target Frame Rate
+
+min-lib-versions = Expected minimum version
+loaded-lib-versions = Version in use
+
+has-seccomp-bpf = Seccomp-BPF (System Call Filtering)
+has-seccomp-tsync = Seccomp Thread Synchronization
+has-user-namespaces = User Namespaces
+has-privileged-user-namespaces = User Namespaces for privileged processes
+can-sandbox-content = Content Process Sandboxing
+can-sandbox-media = Media Plugin Sandboxing
+content-sandbox-level = Content Process Sandbox Level
+effective-content-sandbox-level = Effective Content Process Sandbox Level
+content-win32k-lockdown-state = Win32k Lockdown State for Content Process
+support-sandbox-gpu-level = GPU Process Sandbox Level
+sandbox-proc-type-content = content
+sandbox-proc-type-file = file content
+sandbox-proc-type-media-plugin = media plugin
+sandbox-proc-type-data-decoder = data decoder
+
+startup-cache-title = Startup Cache
+startup-cache-disk-cache-path = Disk Cache Path
+startup-cache-ignore-disk-cache = Ignore Disk Cache
+startup-cache-found-disk-cache-on-init = Found Disk Cache on Init
+startup-cache-wrote-to-disk-cache = Wrote to Disk Cache
+
+launcher-process-status-0 = Enabled
+launcher-process-status-1 = Disabled due to failure
+launcher-process-status-2 = Disabled forcibly
+launcher-process-status-unknown = Unknown status
+
+# Variables
+# $remoteWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+multi-process-windows = { $remoteWindows }/{ $totalWindows }
+# Variables
+# $fissionWindows (integer) - Number of remote windows
+# $totalWindows (integer) - Number of total windows
+fission-windows = { $fissionWindows }/{ $totalWindows }
+fission-status-experiment-control = Disabled by experiment
+fission-status-experiment-treatment = Enabled by experiment
+fission-status-disabled-by-e10s-env = Disabled by environment
+fission-status-enabled-by-env = Enabled by environment
+fission-status-disabled-by-env = Disabled by environment
+fission-status-enabled-by-default = Enabled by default
+fission-status-disabled-by-default = Disabled by default
+fission-status-enabled-by-user-pref = Enabled by user
+fission-status-disabled-by-user-pref = Disabled by user
+fission-status-disabled-by-e10s-other = E10s disabled
+fission-status-enabled-by-rollout = Enabled by phased rollout
+
+async-pan-zoom = Asynchronous Pan/Zoom
+apz-none = none
+wheel-enabled = wheel input enabled
+touch-enabled = touch input enabled
+drag-enabled = scrollbar drag enabled
+keyboard-enabled = keyboard enabled
+autoscroll-enabled = autoscroll enabled
+zooming-enabled = smooth pinch-zoom enabled
+
+## Variables
+## $preferenceKey (string) - String ID of preference
+
+wheel-warning = async wheel input disabled due to unsupported pref: { $preferenceKey }
+touch-warning = async touch input disabled due to unsupported pref: { $preferenceKey }
+
+## Strings representing the status of the Enterprise Policies engine.
+
+policies-inactive = Inactive
+policies-active = Active
+policies-error = Error
+
+## Printing section
+
+support-printing-title = Printing
+support-printing-troubleshoot = Troubleshooting
+support-printing-clear-settings-button = Clear saved print settings
+support-printing-modified-settings = Modified print settings
+support-printing-prefs-name = Name
+support-printing-prefs-value = Value
+
+## Normandy sections
+
+support-remote-experiments-title = Remote Experiments
+support-remote-experiments-name = Name
+support-remote-experiments-branch = Experiment Branch
+support-remote-experiments-see-about-studies = See <a data-l10n-name="support-about-studies-link">about:studies</a> for more information, including how to disable individual experiments or to disable { -brand-short-name } from running this type of experiment in the future.
+
+support-remote-features-title = Remote Features
+support-remote-features-name = Name
+support-remote-features-status = Status
diff --git a/toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl b/toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl
new file mode 100644
index 0000000000..4749a04551
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl
@@ -0,0 +1,136 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-telemetry-ping-data-source = Ping data source:
+about-telemetry-show-current-data = Current data
+about-telemetry-show-archived-ping-data = Archived ping data
+about-telemetry-show-subsession-data = Show subsession data
+about-telemetry-choose-ping = Choose ping:
+about-telemetry-archive-ping-type = Ping Type
+about-telemetry-archive-ping-header = Ping
+about-telemetry-option-group-today = Today
+about-telemetry-option-group-yesterday = Yesterday
+about-telemetry-option-group-older = Older
+about-telemetry-previous-ping = <<
+about-telemetry-next-ping = >>
+about-telemetry-page-title = Telemetry Data
+about-telemetry-current-store = Current Store:
+about-telemetry-more-information = Looking for more information?
+about-telemetry-firefox-data-doc = The <a data-l10n-name="data-doc-link">Firefox Data Documentation</a> contains guides about how to work with our data tools.
+about-telemetry-telemetry-client-doc = The <a data-l10n-name="client-doc-link">Firefox Telemetry client documentation</a> includes definitions for concepts, API documentation and data references.
+about-telemetry-telemetry-dashboard = The <a data-l10n-name="dashboard-link">Telemetry dashboards</a> allow you to visualize the data Mozilla receives via Telemetry.
+about-telemetry-telemetry-probe-dictionary = The <a data-l10n-name="probe-dictionary-link">Probe Dictionary</a> provides details and descriptions for the probes collected by Telemetry.
+about-telemetry-show-in-Firefox-json-viewer = Open in the JSON viewer
+about-telemetry-home-section = Home
+about-telemetry-general-data-section = General Data
+about-telemetry-environment-data-section = Environment Data
+about-telemetry-session-info-section = Session Information
+about-telemetry-scalar-section = Scalars
+about-telemetry-keyed-scalar-section = Keyed Scalars
+about-telemetry-histograms-section = Histograms
+about-telemetry-keyed-histogram-section = Keyed Histograms
+about-telemetry-events-section = Events
+about-telemetry-simple-measurements-section = Simple Measurements
+about-telemetry-slow-sql-section = Slow SQL Statements
+about-telemetry-addon-details-section = Add-on Details
+about-telemetry-late-writes-section = Late Writes
+about-telemetry-raw-payload-section = Raw Payload
+about-telemetry-raw = Raw JSON
+about-telemetry-full-sql-warning = NOTE: Slow SQL debugging is enabled. Full SQL strings may be displayed below but they will not be submitted to Telemetry.
+about-telemetry-fetch-stack-symbols = Fetch function names for stacks
+about-telemetry-hide-stack-symbols = Show raw stack data
+# Selects the correct release version
+# Variables:
+# $channel (string) - Represents the corresponding release data string
+about-telemetry-data-type =
+ { $channel ->
+ [release] release data
+ *[prerelease] pre-release data
+ }
+# Selects the correct upload string
+# Variables:
+# $uploadcase (string) - Represents a corresponding upload string
+about-telemetry-upload-type =
+ { $uploadcase ->
+ [enabled] enabled
+ *[disabled] disabled
+ }
+# Example Output: 1 sample, average = 0, sum = 0
+# Variables:
+# $sampleCount (number) - Amount of histogram samples
+# $prettyAverage (number) - Average of histogram samples
+# $sum (number) - Sum of histogram samples
+about-telemetry-histogram-stats =
+ { $sampleCount ->
+ [one] { $sampleCount } sample, average = { $prettyAverage }, sum = { $sum }
+ *[other] { $sampleCount } samples, average = { $prettyAverage }, sum = { $sum }
+ }
+# Variables:
+# $telemetryServerOwner (string) - the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-page-subtitle = This page shows the information about performance, hardware, usage and customizations collected by Telemetry. This information is submitted to { $telemetryServerOwner } to help improve { -brand-full-name }.
+about-telemetry-settings-explanation = Telemetry is collecting { about-telemetry-data-type } and upload is <a data-l10n-name="upload-link">{ about-telemetry-upload-type }</a>.
+# Variables:
+# $name (string) - Ping name, e.g. “saved-session”
+# $timestamp (string) - Ping localized timestamp, e.g. “2017/07/08 10:40:46”
+about-telemetry-ping-details = Each piece of information is sent bundled into “<a data-l10n-name="ping-link">pings</a>”. You are looking at the { $name }, { $timestamp } ping.
+about-telemetry-data-details-current = Each piece of information is sent bundled into “<a data-l10n-name="ping-link">pings</a>“. You are looking at the current data.
+# string used as a placeholder for the search field
+# More info about it can be found here:
+# https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $selectedTitle (string) - The section name from the structure of the ping.
+about-telemetry-filter-placeholder =
+ .placeholder = Find in { $selectedTitle }
+about-telemetry-filter-all-placeholder =
+ .placeholder = Find in all sections
+# Variables:
+# $searchTerms (string) - The searched terms
+about-telemetry-results-for-search = Results for “{ $searchTerms }”
+# More info about it can be found here: https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/data/main-ping.html
+# Variables:
+# $sectionName (string) - The section name from the structure of the ping.
+# $currentSearchText (string) - The current text in the search input
+about-telemetry-no-search-results = Sorry! There are no results in { $sectionName } for “{ $currentSearchText }”
+# Variables:
+# $searchTerms (string) - The searched terms
+about-telemetry-no-search-results-all = Sorry! There are no results in any sections for “{ $searchTerms }”
+# This message is displayed when a section is empty.
+# Variables:
+# $sectionName (string) - Is replaced by the section name.
+about-telemetry-no-data-to-display = Sorry! There is currently no data available in “{ $sectionName }”
+# used as a tooltip for the “current” ping title in the sidebar
+about-telemetry-current-data-sidebar = current data
+# used in the “Ping Type” select
+about-telemetry-telemetry-ping-type-all = all
+# button label to copy the histogram
+about-telemetry-histogram-copy = Copy
+# these strings are used in the “Slow SQL Statements” section
+about-telemetry-slow-sql-main = Slow SQL Statements on Main Thread
+about-telemetry-slow-sql-other = Slow SQL Statements on Helper Threads
+about-telemetry-slow-sql-hits = Hits
+about-telemetry-slow-sql-average = Avg. Time (ms)
+about-telemetry-slow-sql-statement = Statement
+# these strings are used in the “Add-on Details” section
+about-telemetry-addon-table-id = Add-on ID
+about-telemetry-addon-table-details = Details
+# Variables:
+# $addonProvider (string) - The name of an Add-on Provider (e.g. “XPI”, “Plugin”)
+about-telemetry-addon-provider = { $addonProvider } Provider
+about-telemetry-keys-header = Property
+about-telemetry-names-header = Name
+about-telemetry-values-header = Value
+# Variables:
+# $lateWriteCount (number) - The number of the late writes
+about-telemetry-late-writes-title = Late Write #{ $lateWriteCount }
+about-telemetry-stack-title = Stack:
+about-telemetry-memory-map-title = Memory map:
+about-telemetry-error-fetching-symbols = An error occurred while fetching symbols. Check that you are connected to the Internet and try again.
+about-telemetry-time-stamp-header = timestamp
+about-telemetry-category-header = category
+about-telemetry-method-header = method
+about-telemetry-object-header = object
+about-telemetry-extra-header = extra
+# Variables:
+# $process (string) - Type of process in subsection headers ( e.g. "content", "parent" )
+about-telemetry-process = { $process } process
diff --git a/toolkit/locales/en-US/toolkit/about/aboutThirdParty.ftl b/toolkit/locales/en-US/toolkit/about/aboutThirdParty.ftl
new file mode 100644
index 0000000000..54919410dd
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutThirdParty.ftl
@@ -0,0 +1,83 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+third-party-page-title = Third-party Module Information
+third-party-section-title = List of third-party modules in { -brand-short-name }
+
+third-party-intro =
+ This page shows the third-party modules which were injected into your
+ { -brand-short-name }. Any module that is not signed by Microsoft or
+ { -vendor-short-name } is considered to be a third-party module.
+
+third-party-message-empty = No third-party modules were detected.
+third-party-message-no-duration = Not recorded
+
+third-party-detail-version = File version
+third-party-detail-vendor = Vendor info
+third-party-detail-occurrences = Occurrences
+ .title = How many times this module was loaded.
+third-party-detail-duration = Avg. Blocking time (ms)
+ .title = How long this module blocked the application.
+third-party-detail-app = Application
+third-party-detail-publisher = Publisher
+
+third-party-th-process = Process
+third-party-th-duration = Loading Duration (ms)
+third-party-th-status = Status
+
+third-party-tag-ime = IME
+ .title =
+ This type of module is loaded when you use a third-party IME.
+third-party-tag-shellex = Shell Extension
+ .title =
+ This type of module is loaded when you open the system file dialog.
+third-party-tag-background = Background
+ .title =
+ This module did not block the application because it was loaded
+ in the background.
+third-party-icon-unsigned =
+ .title = This module is not signed
+ .alt = This module is not signed
+third-party-icon-warning =
+ .title = { -brand-short-name } crashed in code from this module
+ .alt = { -brand-short-name } crashed in code from this module
+
+third-party-status-loaded = Loaded
+third-party-status-blocked = Blocked
+third-party-status-redirected = Redirected
+
+third-party-button-copy-to-clipboard = Copy raw data to clipboard
+third-party-loading-data =
+ .alt = Loading system information…
+ .title = Loading system information…
+third-party-button-reload = Reload with system info
+ .title = Reload with system information
+third-party-button-open =
+ .title = Open file location…
+third-party-button-to-block =
+ .title = Block this module
+ .aria-label = Block this module
+third-party-button-to-unblock =
+ .title = Currently blocked. Click to unblock it.
+ .aria-label = Currently blocked. Click to unblock it.
+third-party-button-to-unblock-disabled =
+ .title =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+ .aria-label =
+ Currently marked as blocked, although the blocklist is disabled for this run
+ of { -brand-short-name }. Click to unblock it.
+third-party-button-expand =
+ .title = Show detailed information
+third-party-button-collapse =
+ .title = Collapse detailed information
+third-party-blocking-requires-restart =
+ To block a third-party module, { -brand-short-name } must restart.
+third-party-should-restart-title = Restart { -brand-short-name }
+third-party-restart-now = Restart now
+third-party-restart-later = Restart later
+
+third-party-blocked-by-builtin =
+ .title = Blocked by { -brand-short-name }
+ .alt = Blocked by { -brand-short-name }
diff --git a/toolkit/locales/en-US/toolkit/about/aboutWebrtc.ftl b/toolkit/locales/en-US/toolkit/about/aboutWebrtc.ftl
new file mode 100644
index 0000000000..ae323fe9e8
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutWebrtc.ftl
@@ -0,0 +1,282 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### Localization for about:webrtc, a troubleshooting and diagnostic page
+### for WebRTC calls. See https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API.
+
+# The text "WebRTC" is a proper noun and should not be translated.
+about-webrtc-document-title = WebRTC Internals
+
+# "about:webrtc" is a internal browser URL and should not be
+# translated. This string is used as a title for a file save dialog box.
+about-webrtc-save-page-dialog-title = save about:webrtc as
+
+## AEC is an abbreviation for Acoustic Echo Cancellation.
+
+about-webrtc-aec-logging-msg-label = AEC Logging
+about-webrtc-aec-logging-off-state-label = Start AEC Logging
+about-webrtc-aec-logging-on-state-label = Stop AEC Logging
+about-webrtc-aec-logging-on-state-msg = AEC logging active (speak with the caller for a few minutes and then stop the capture)
+
+# The autorefresh checkbox causes the page to autorefresh its content when checked
+about-webrtc-auto-refresh-label = Auto Refresh
+
+##
+
+# "PeerConnection" is a proper noun associated with the WebRTC module. "ID" is
+# an abbreviation for Identifier. This string should not normally be translated
+# and is used as a data label.
+about-webrtc-peerconnection-id-label = PeerConnection ID:
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+about-webrtc-sdp-heading = SDP
+about-webrtc-local-sdp-heading = Local SDP
+about-webrtc-local-sdp-heading-offer = Local SDP (Offer)
+about-webrtc-local-sdp-heading-answer = Local SDP (Answer)
+about-webrtc-remote-sdp-heading = Remote SDP
+about-webrtc-remote-sdp-heading-offer = Remote SDP (Offer)
+about-webrtc-remote-sdp-heading-answer = Remote SDP (Answer)
+about-webrtc-sdp-history-heading = SDP History
+about-webrtc-sdp-parsing-errors-heading = SDP Parsing Errors
+
+##
+
+# "RTP" is an abbreviation for the Real-time Transport Protocol, an IETF
+# specification, and should not normally be translated. "Stats" is an
+# abbreviation for Statistics.
+about-webrtc-rtp-stats-heading = RTP Stats
+
+## "ICE" is an abbreviation for Interactive Connectivity Establishment, which
+## is an IETF protocol, and should not normally be translated.
+
+about-webrtc-ice-state = ICE State
+# "Stats" is an abbreviation for Statistics.
+about-webrtc-ice-stats-heading = ICE Stats
+about-webrtc-ice-restart-count-label = ICE restarts:
+about-webrtc-ice-rollback-count-label = ICE rollbacks:
+about-webrtc-ice-pair-bytes-sent = Bytes sent:
+about-webrtc-ice-pair-bytes-received = Bytes received:
+about-webrtc-ice-component-id = Component ID
+
+## These adjectives are used to label a line of statistics collected for a peer
+## connection. The data represents either the local or remote end of the
+## connection.
+
+about-webrtc-type-local = Local
+about-webrtc-type-remote = Remote
+
+##
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+about-webrtc-nominated = Nominated
+
+# This adjective is used to label a table column. Cells in this column contain
+# the localized javascript string representation of "true" or are left blank.
+# This represents an attribute of an ICE candidate.
+about-webrtc-selected = Selected
+
+about-webrtc-save-page-label = Save Page
+about-webrtc-debug-mode-msg-label = Debug Mode
+about-webrtc-debug-mode-off-state-label = Start Debug Mode
+about-webrtc-debug-mode-on-state-label = Stop Debug Mode
+about-webrtc-stats-heading = Session Statistics
+about-webrtc-stats-clear = Clear History
+about-webrtc-log-heading = Connection Log
+about-webrtc-log-clear = Clear Log
+about-webrtc-log-show-msg = show log
+ .title = click to expand this section
+about-webrtc-log-hide-msg = hide log
+ .title = click to collapse this section
+
+## These are used to display a header for a PeerConnection.
+## Variables:
+## $browser-id (Number) - A numeric id identifying the browser tab for the PeerConnection.
+## $id (String) - A globally unique identifier for the PeerConnection.
+## $url (String) - The url of the site which opened the PeerConnection.
+## $now (Date) - The JavaScript timestamp at the time the report was generated.
+
+about-webrtc-connection-open = [ { $browser-id } | { $id } ] { $url } { $now }
+about-webrtc-connection-closed = [ { $browser-id } | { $id } ] { $url } (closed) { $now }
+
+##
+
+about-webrtc-local-candidate = Local Candidate
+about-webrtc-remote-candidate = Remote Candidate
+about-webrtc-raw-candidates-heading = All Raw Candidates
+about-webrtc-raw-local-candidate = Raw Local Candidate
+about-webrtc-raw-remote-candidate = Raw Remote Candidate
+about-webrtc-raw-cand-show-msg = show raw candidates
+ .title = click to expand this section
+about-webrtc-raw-cand-hide-msg = hide raw candidates
+ .title = click to collapse this section
+about-webrtc-priority = Priority
+about-webrtc-fold-show-msg = show details
+ .title = click to expand this section
+about-webrtc-fold-hide-msg = hide details
+ .title = click to collapse this section
+about-webrtc-dropped-frames-label = Dropped frames:
+about-webrtc-discarded-packets-label = Discarded packets:
+about-webrtc-decoder-label = Decoder
+about-webrtc-encoder-label = Encoder
+about-webrtc-show-tab-label = Show tab
+about-webrtc-current-framerate-label = Framerate
+about-webrtc-width-px = Width (px)
+about-webrtc-height-px = Height (px)
+about-webrtc-consecutive-frames = Consecutive Frames
+about-webrtc-time-elapsed = Time Elapsed (s)
+about-webrtc-estimated-framerate = Estimated Framerate
+about-webrtc-rotation-degrees = Rotation (degrees)
+about-webrtc-first-frame-timestamp = First Frame Reception Timestamp
+about-webrtc-last-frame-timestamp = Last Frame Reception Timestamp
+
+## SSRCs are identifiers that represent endpoints in an RTP stream
+
+# This is an SSRC on the local side of the connection that is receiving RTP
+about-webrtc-local-receive-ssrc = Local Receiving SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+about-webrtc-remote-send-ssrc = Remote Sending SSRC
+
+## These are displayed on the button that shows or hides the
+## PeerConnection configuration disclosure
+
+about-webrtc-pc-configuration-show-msg = Show Configuration
+about-webrtc-pc-configuration-hide-msg = Hide Configuration
+
+##
+
+# An option whose value will not be displayed but instead noted as having been
+# provided
+about-webrtc-configuration-element-provided = Provided
+
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+about-webrtc-configuration-element-not-provided = Not Provided
+
+# The options set by the user in about:config that could impact a WebRTC call
+about-webrtc-custom-webrtc-configuration-heading = User Set WebRTC Preferences
+
+# Section header for estimated bandwidths of WebRTC media flows
+about-webrtc-bandwidth-stats-heading = Estimated Bandwidth
+
+# The ID of the MediaStreamTrack
+about-webrtc-track-identifier = Track Identifier
+
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+about-webrtc-send-bandwidth-bytes-sec = Send Bandwidth (bytes/sec)
+
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+about-webrtc-receive-bandwidth-bytes-sec = Receive Bandwidth (bytes/sec)
+
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+about-webrtc-max-padding-bytes-sec = Maximum Padding (bytes/sec)
+
+# The amount of time inserted between packets to keep them spaced out
+about-webrtc-pacer-delay-ms = Pacer Delay ms
+
+# The amount of time it takes for a packet to travel from the local machine to the remote machine,
+# and then have a packet return
+about-webrtc-round-trip-time-ms = RTT ms
+
+# This is a section heading for video frame statistics for a MediaStreamTrack.
+# see https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack.
+# Variables:
+# $track-identifier (String) - The unique identifier for the MediaStreamTrack.
+about-webrtc-frame-stats-heading = Video Frame Statistics - MediaStreamTrack ID: { $track-identifier }
+
+## These are paths used for saving the about:webrtc page or log files so
+## they can be attached to bug reports.
+## Variables:
+## $path (String) - The path to which the file is saved.
+
+about-webrtc-save-page-msg = page saved to: { $path }
+about-webrtc-debug-mode-off-state-msg = trace log can be found at: { $path }
+about-webrtc-debug-mode-on-state-msg = debug mode active, trace log at: { $path }
+about-webrtc-aec-logging-off-state-msg = captured log files can be found in: { $path }
+
+##
+
+# This is the total number of frames encoded or decoded over an RTP stream.
+# Variables:
+# $frames (Number) - The number of frames encoded or decoded.
+about-webrtc-frames =
+ { $frames ->
+ [one] { $frames } frame
+ *[other] { $frames } frames
+ }
+
+# This is the number of audio channels encoded or decoded over an RTP stream.
+# Variables:
+# $channels (Number) - The number of channels encoded or decoded.
+about-webrtc-channels =
+ { $channels ->
+ [one] { $channels } channel
+ *[other] { $channels } channels
+ }
+
+# This is the total number of packets received on the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets received.
+about-webrtc-received-label =
+ { $packets ->
+ [one] Received { $packets } packet
+ *[other] Received { $packets } packets
+ }
+
+# This is the total number of packets lost by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets lost.
+about-webrtc-lost-label =
+ { $packets ->
+ [one] Lost { $packets } packet
+ *[other] Lost { $packets } packets
+ }
+
+# This is the total number of packets sent by the PeerConnection.
+# Variables:
+# $packets (Number) - The number of packets sent.
+about-webrtc-sent-label =
+ { $packets ->
+ [one] Sent { $packets } packet
+ *[other] Sent { $packets } packets
+ }
+
+# Jitter is the variance in the arrival time of packets.
+# See: https://w3c.github.io/webrtc-stats/#dom-rtcreceivedrtpstreamstats-jitter
+# Variables:
+# $jitter (Number) - The jitter.
+about-webrtc-jitter-label = Jitter { $jitter }
+
+# ICE candidates arriving after the remote answer arrives are considered trickled
+# (an attribute of an ICE candidate). These are highlighted in the ICE stats
+# table with light blue background.
+about-webrtc-trickle-caption-msg = Trickled candidates (arriving after answer) are highlighted in blue
+
+## "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+## See http://wikipedia.org/wiki/Session_Description_Protocol
+
+# This is used as a header for local SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-local = Set Local SDP at timestamp { NUMBER($timestamp, useGrouping: "false") }
+
+# This is used as a header for remote SDP.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+about-webrtc-sdp-set-at-timestamp-remote = Set Remote SDP at timestamp { NUMBER($timestamp, useGrouping: "false") }
+
+# This is used as a header for an SDP section contained in two columns allowing for side-by-side comparisons.
+# Variables:
+# $timestamp (Number) - The Unix Epoch time at which the SDP was set.
+# $relative-timestamp (Number) - The timestamp relative to the timestamp of the earliest received SDP.
+about-webrtc-sdp-set-timestamp = Timestamp { NUMBER($timestamp, useGrouping: "false") } (+ { $relative-timestamp } ms)
+
+## These are displayed on the button that shows or hides the SDP information disclosure
+
+about-webrtc-show-msg-sdp = Show SDP
+about-webrtc-hide-msg-sdp = Hide SDP
+
+##
diff --git a/toolkit/locales/en-US/toolkit/about/aboutWindowsMessages.ftl b/toolkit/locales/en-US/toolkit/about/aboutWindowsMessages.ftl
new file mode 100644
index 0000000000..b0ba33aa91
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutWindowsMessages.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### Localization for the about:windows-messages page, which is only available
+### on the Windows operating system.
+### This page records and shows messages sent from the operating system to
+### individual browser windows. These messages can be useful in debugging
+### hard-to-reproduce issues with window sizing and position.
+
+# Windows refers to the operating system
+windows-messages-page-title = Windows Messages Information
+windows-messages-intro =
+ This page shows the most recent messages sent by Windows
+ to the { -brand-short-name } browser windows. The
+ bolded entry represents this window. Note that this page shows
+ the most recent messages at the time the page was loaded;
+ to see current ones you will need to refresh the page.
+windows-messages-copy-to-clipboard = Copy to clipboard
diff --git a/toolkit/locales/en-US/toolkit/about/abuseReports.ftl b/toolkit/locales/en-US/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..d565bd05cd
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/abuseReports.ftl
@@ -0,0 +1,108 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Localized string used as the dialog window title.
+# "Report" is a noun in this case, "Report for AddonName".
+#
+# Variables:
+# $addon-name (string) - Name of the add-on being reported
+abuse-report-dialog-title = Report for { $addon-name }
+
+abuse-report-title-extension = Report This Extension to { -vendor-short-name }
+abuse-report-title-sitepermission = Report This Site Permissions add-on to { -vendor-short-name }
+abuse-report-title-theme = Report This Theme to { -vendor-short-name }
+abuse-report-subtitle = What’s the issue?
+
+# Variables:
+# $author-name (string) - Name of the add-on author
+abuse-report-addon-authored-by = by <a data-l10n-name="author-name">{ $author-name }</a>
+
+abuse-report-learnmore =
+ Unsure what issue to select?
+ <a data-l10n-name="learnmore-link">Learn more about reporting extensions and themes</a>
+
+abuse-report-submit-description = Describe the problem (optional)
+abuse-report-textarea =
+ .placeholder = It’s easier for us to address a problem if we have specifics. Please describe what you’re experiencing. Thank you for helping us keep the web healthy.
+abuse-report-submit-note =
+ Note: Don’t include personal information (such as name, email address, phone number, physical address).
+ { -vendor-short-name } keeps a permanent record of these reports.
+
+## Panel buttons.
+
+abuse-report-cancel-button = Cancel
+abuse-report-next-button = Next
+abuse-report-goback-button = Go back
+abuse-report-submit-button = Submit
+
+## Message bars descriptions.
+##
+## Variables:
+## $addon-name (string) - Name of the add-on
+
+abuse-report-messagebar-aborted = Report for <span data-l10n-name="addon-name">{ $addon-name }</span> canceled.
+abuse-report-messagebar-submitting = Sending report for <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-submitted = Thank you for submitting a report. Do you want to remove <span data-l10n-name="addon-name">{ $addon-name }</span>?
+abuse-report-messagebar-submitted-noremove = Thank you for submitting a report.
+abuse-report-messagebar-removed-extension = Thank you for submitting a report. You’ve removed the extension <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-sitepermission = Thank you for submitting a report. You’ve removed the Site Permissions add-on <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-removed-theme = Thank you for submitting a report. You’ve removed the theme <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error = There was an error sending the report for <span data-l10n-name="addon-name">{ $addon-name }</span>.
+abuse-report-messagebar-error-recent-submit = The report for <span data-l10n-name="addon-name">{ $addon-name }</span> wasn’t sent because another report was submitted recently.
+
+## Message bars actions.
+
+abuse-report-messagebar-action-remove-extension = Yes, Remove It
+abuse-report-messagebar-action-keep-extension = No, I’ll Keep It
+abuse-report-messagebar-action-remove-sitepermission = Yes, Remove It
+abuse-report-messagebar-action-keep-sitepermission = No, I’ll Keep It
+abuse-report-messagebar-action-remove-theme = Yes, Remove It
+abuse-report-messagebar-action-keep-theme = No, I’ll Keep It
+abuse-report-messagebar-action-retry = Retry
+abuse-report-messagebar-action-cancel = Cancel
+
+## Abuse report reasons (optionally paired with related examples and/or suggestions)
+
+abuse-report-damage-reason-v2 = It damaged my computer or compromised my data
+abuse-report-damage-example = Example: Injected malware or stole data
+
+abuse-report-spam-reason-v2 = It contains spam or inserts unwanted advertising
+abuse-report-spam-example = Example: Insert ads on webpages
+
+abuse-report-settings-reason-v2 = It changed my search engine, homepage, or new tab without informing or asking me
+abuse-report-settings-suggestions = Before reporting the extension, you can try changing your settings:
+abuse-report-settings-suggestions-search = Change your default search settings
+abuse-report-settings-suggestions-homepage = Change your homepage and new tab
+
+abuse-report-deceptive-reason-v2 = It claims to be something it’s not
+abuse-report-deceptive-example = Example: Misleading description or imagery
+
+abuse-report-broken-reason-extension-v2 = It doesn’t work, breaks websites, or slows down { -brand-product-name }
+abuse-report-broken-reason-sitepermission-v2 = It doesn’t work, breaks websites, or slows down { -brand-product-name }
+abuse-report-broken-reason-theme-v2 = It doesn’t work or breaks browser display
+abuse-report-broken-example =
+ Example: Features are slow, hard to use, or don’t work; parts of websites won’t load or look unusual
+abuse-report-broken-suggestions-extension =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the extension developer.
+ <a data-l10n-name="support-link">Visit the extension’s website</a> to get the developer information.
+abuse-report-broken-suggestions-sitepermission =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the website developer.
+ <a data-l10n-name="support-link">Visit the website</a> to get the developer information.
+abuse-report-broken-suggestions-theme =
+ It sounds like you’ve identified a bug. In addition to submitting a report here, the best way
+ to get a functionality issue resolved is to contact the theme developer.
+ <a data-l10n-name="support-link">Visit the theme’s website</a> to get the developer information.
+
+abuse-report-policy-reason-v2 = It contains hateful, violent, or illegal content
+abuse-report-policy-suggestions =
+ Note: Copyright and trademark issues must be reported in a separate process.
+ <a data-l10n-name="report-infringement-link">Use these instructions</a> to
+ report the problem.
+
+abuse-report-unwanted-reason-v2 = I never wanted it and don’t know how to get rid of it
+abuse-report-unwanted-example = Example: An application installed it without my permission
+
+abuse-report-other-reason = Something else
diff --git a/toolkit/locales/en-US/toolkit/about/certviewer.ftl b/toolkit/locales/en-US/toolkit/about/certviewer.ftl
new file mode 100644
index 0000000000..9979172593
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/certviewer.ftl
@@ -0,0 +1,121 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+certificate-viewer-certificate-section-title = Certificate
+
+## Error messages
+
+certificate-viewer-error-message = We were unable to find the certificate information, or the certificate is corrupted. Please try again.
+certificate-viewer-error-title = Something went wrong.
+
+## Certificate information labels
+
+certificate-viewer-algorithm = Algorithm
+certificate-viewer-certificate-authority = Certificate Authority
+certificate-viewer-cipher-suite = Cipher Suite
+certificate-viewer-common-name = Common Name
+certificate-viewer-email-address = Email Address
+# Variables:
+# $firstCertName (String) - Common Name for the displayed certificate
+certificate-viewer-tab-title = Certificate for { $firstCertName }
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-country = Inc. Country
+certificate-viewer-country = Country
+certificate-viewer-curve = Curve
+certificate-viewer-distribution-point = Distribution Point
+certificate-viewer-dns-name = DNS Name
+certificate-viewer-ip-address = IP Address
+certificate-viewer-other-name = Other Name
+certificate-viewer-exponent = Exponent
+certificate-viewer-id = ID
+certificate-viewer-key-exchange-group = Key Exchange Group
+certificate-viewer-key-id = Key ID
+certificate-viewer-key-size = Key Size
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-locality = Inc. Locality
+certificate-viewer-locality = Locality
+certificate-viewer-location = Location
+certificate-viewer-logid = Log ID
+certificate-viewer-method = Method
+certificate-viewer-modulus = Modulus
+certificate-viewer-name = Name
+certificate-viewer-not-after = Not After
+certificate-viewer-not-before = Not Before
+certificate-viewer-organization = Organization
+certificate-viewer-organizational-unit = Organizational Unit
+certificate-viewer-policy = Policy
+certificate-viewer-protocol = Protocol
+certificate-viewer-public-value = Public Value
+certificate-viewer-purposes = Purposes
+certificate-viewer-qualifier = Qualifier
+certificate-viewer-qualifiers = Qualifiers
+certificate-viewer-required = Required
+certificate-viewer-unsupported = &lt;unsupported&gt;
+# Inc. means Incorporated, e.g GitHub is incorporated in Delaware
+certificate-viewer-inc-state-province = Inc. State/Province
+certificate-viewer-state-province = State/Province
+certificate-viewer-sha-1 = SHA-1
+certificate-viewer-sha-256 = SHA-256
+certificate-viewer-serial-number = Serial Number
+certificate-viewer-signature-algorithm = Signature Algorithm
+certificate-viewer-signature-scheme = Signature Scheme
+certificate-viewer-timestamp = Timestamp
+certificate-viewer-value = Value
+certificate-viewer-version = Version
+certificate-viewer-business-category = Business Category
+certificate-viewer-subject-name = Subject Name
+certificate-viewer-issuer-name = Issuer Name
+certificate-viewer-validity = Validity
+certificate-viewer-subject-alt-names = Subject Alt Names
+certificate-viewer-public-key-info = Public Key Info
+certificate-viewer-miscellaneous = Miscellaneous
+certificate-viewer-fingerprints = Fingerprints
+certificate-viewer-basic-constraints = Basic Constraints
+certificate-viewer-key-usages = Key Usages
+certificate-viewer-extended-key-usages = Extended Key Usages
+certificate-viewer-ocsp-stapling = OCSP Stapling
+certificate-viewer-subject-key-id = Subject Key ID
+certificate-viewer-authority-key-id = Authority Key ID
+certificate-viewer-authority-info-aia = Authority Info (AIA)
+certificate-viewer-certificate-policies = Certificate Policies
+certificate-viewer-embedded-scts = Embedded SCTs
+certificate-viewer-crl-endpoints = CRL Endpoints
+
+# This message is used as a row header in the Miscellaneous section.
+# The associated data cell contains links to download the certificate.
+certificate-viewer-download = Download
+# This message is used to replace boolean values (true/false) in several certificate fields, e.g. Certificate Authority
+# Variables:
+# $boolean (String) - true/false value for the specific field
+certificate-viewer-boolean = { $boolean ->
+ [true] Yes
+ *[false] No
+}
+
+## Variables:
+## $fileName (String) - The file name to save the PEM data in, derived from the common name from the certificate being displayed.
+
+certificate-viewer-download-pem = PEM (cert)
+ .download = { $fileName }.pem
+certificate-viewer-download-pem-chain = PEM (chain)
+ .download = { $fileName }-chain.pem
+
+# The title attribute for Critical Extension icon
+certificate-viewer-critical-extension =
+ .title = This extension has been marked as critical, meaning that clients must reject the certificate if they do not understand it.
+certificate-viewer-export = Export
+ .download = { $fileName }.pem
+
+##
+
+# Label for a tab where we haven't found a better label:
+certificate-viewer-unknown-group-label = (unknown)
+
+## Labels for tabs displayed in stand-alone about:certificate page
+
+certificate-viewer-tab-mine = Your Certificates
+certificate-viewer-tab-people = People
+certificate-viewer-tab-servers = Servers
+certificate-viewer-tab-ca = Authorities
+certificate-viewer-tab-unkonwn = Unknown
diff --git a/toolkit/locales/en-US/toolkit/about/config.ftl b/toolkit/locales/en-US/toolkit/about/config.ftl
new file mode 100644
index 0000000000..88af62a766
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/config.ftl
@@ -0,0 +1,54 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## These strings appear on the warning you see when first visiting about:config.
+
+about-config-intro-warning-title = Proceed with Caution
+about-config-intro-warning-text = Changing advanced configuration preferences can impact { -brand-short-name } performance or security.
+about-config-intro-warning-checkbox = Warn me when I attempt to access these preferences
+about-config-intro-warning-button = Accept the Risk and Continue
+
+##
+
+# This is shown on the page before searching but after the warning is accepted.
+about-config-caution-text = Changing these preferences can impact { -brand-short-name } performance or security.
+
+about-config-page-title = Advanced Preferences
+
+about-config-search-input1 =
+ .placeholder = Search preference name
+about-config-show-all = Show All
+
+about-config-show-only-modified = Show only modified preferences
+
+about-config-pref-add-button =
+ .title = Add
+about-config-pref-toggle-button =
+ .title = Toggle
+about-config-pref-edit-button =
+ .title = Edit
+about-config-pref-save-button =
+ .title = Save
+about-config-pref-reset-button =
+ .title = Reset
+about-config-pref-delete-button =
+ .title = Delete
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = Boolean
+about-config-pref-add-type-number = Number
+about-config-pref-add-type-string = String
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (default)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (custom)
diff --git a/toolkit/locales/en-US/toolkit/about/url-classifier.ftl b/toolkit/locales/en-US/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..06c98521e7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/url-classifier.ftl
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+url-classifier-title = URL Classifier Information
+url-classifier-search-title = Search
+url-classifier-search-result-title = Results
+# Variables:
+# $uri (string) - URI of blocked page
+url-classifier-search-result-uri = URI: { $uri }
+# Variables:
+# $list (string) - List of tables where the page is blocked
+url-classifier-search-result-list = List of tables: { $list }
+url-classifier-search-input = URL
+url-classifier-search-error-invalid-url = Invalid URL
+url-classifier-search-error-no-features = No features selected
+url-classifier-search-btn = Start searching
+url-classifier-search-features = Features
+url-classifier-search-listType = List type
+url-classifier-provider-title = Provider
+url-classifier-provider = Provider
+url-classifier-provider-last-update-time = Last update time
+url-classifier-provider-next-update-time = Next update time
+url-classifier-provider-back-off-time = Back-off time
+url-classifier-provider-last-update-status = Last update status
+url-classifier-provider-update-btn = Update
+url-classifier-cache-title = Cache
+url-classifier-cache-refresh-btn = Refresh
+url-classifier-cache-clear-btn = Clear
+url-classifier-cache-table-name = Table name
+url-classifier-cache-ncache-entries = Number of negative cache entries
+url-classifier-cache-pcache-entries = Number of positive cache entries
+url-classifier-cache-show-entries = Show entries
+url-classifier-cache-entries = Cache Entries
+url-classifier-cache-prefix = Prefix
+url-classifier-cache-ncache-expiry = Negative cache expiry
+url-classifier-cache-fullhash = Full hash
+url-classifier-cache-pcache-expiry = Positive cache expiry
+url-classifier-debug-title = Debug
+url-classifier-debug-module-btn = Set Log Modules
+url-classifier-debug-file-btn = Set Log File
+url-classifier-debug-js-log-chk = Set JS Log
+url-classifier-debug-sb-modules = Safe Browsing log modules
+url-classifier-debug-modules = Current log modules
+url-classifier-debug-sbjs-modules = Safe Browsing JS log
+url-classifier-debug-file = Current log file
+
+url-classifier-trigger-update = Trigger Update
+url-classifier-not-available = N/A
+url-classifier-disable-sbjs-log = Disable Safe Browsing JS Log
+url-classifier-enable-sbjs-log = Enable Safe Browsing JS Log
+url-classifier-enabled = Enabled
+url-classifier-disabled = Disabled
+url-classifier-updating = updating
+url-classifier-cannot-update = cannot update
+url-classifier-success = success
+
+## Variables
+## $error (string) - Error message
+
+url-classifier-update-error = update error ({ $error })
+url-classifier-download-error = download error ({ $error })
diff --git a/toolkit/locales/en-US/toolkit/branding/accounts.ftl b/toolkit/locales/en-US/toolkit/branding/accounts.ftl
new file mode 100644
index 0000000000..d01a1e149f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/branding/accounts.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# “Account” can be localized, “Firefox” must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name =
+ { $capitalization ->
+ [sentence] Firefox account
+ *[title] Firefox Account
+ }
diff --git a/toolkit/locales/en-US/toolkit/branding/brandings.ftl b/toolkit/locales/en-US/toolkit/branding/brandings.ftl
new file mode 100644
index 0000000000..a52cde5532
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/branding/brandings.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## The following feature names must be treated as a brand.
+##
+## They cannot be:
+## - Transliterated.
+## - Translated.
+##
+## Declension should be avoided where possible, leaving the original
+## brand unaltered in prominent UI positions.
+##
+## For further details, consult:
+## https://mozilla-l10n.github.io/styleguides/mozilla_general/#brands-copyright-and-trademark
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-lockwise-brand-short-name = Lockwise
+-monitor-brand-name = Firefox Monitor
+-monitor-brand-short-name = Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
+-screenshots-brand-name = Firefox Screenshots
+-mozilla-vpn-brand-name = Mozilla VPN
+-profiler-brand-name = Firefox Profiler
+-translations-brand-name = Firefox Translations
+-focus-brand-name = Firefox Focus
+-relay-brand-name = Firefox Relay
+-relay-brand-short-name = Relay
+
+# “Suggest” can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-suggest-brand-name = Firefox Suggest
+
+# ”Home" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefox-home-brand-name = Firefox Home
+
+# View" can be localized, “Firefox” must be treated as a brand
+# and kept in English.
+-firefoxview-brand-name = Firefox View
diff --git a/toolkit/locales/en-US/toolkit/downloads/downloadUI.ftl b/toolkit/locales/en-US/toolkit/downloads/downloadUI.ftl
new file mode 100644
index 0000000000..23dbbe5031
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/downloads/downloadUI.ftl
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+download-ui-confirm-title = Cancel All Downloads?
+
+## Variables:
+## $downloadsCount (Number): The current downloads count.
+
+download-ui-confirm-quit-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you exit now, 1 download will be canceled. Are you sure you want to exit?
+ *[other] If you exit now, { $downloadsCount } downloads will be canceled. Are you sure you want to exit?
+ }
+download-ui-confirm-quit-cancel-downloads-mac =
+ { $downloadsCount ->
+ [1] If you quit now, 1 download will be canceled. Are you sure you want to quit?
+ *[other] If you quit now, { $downloadsCount } downloads will be canceled. Are you sure you want to quit?
+ }
+download-ui-dont-quit-button =
+ { PLATFORM() ->
+ [mac] Don’t Quit
+ *[other] Don’t Exit
+ }
+
+download-ui-confirm-offline-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you go offline now, 1 download will be canceled. Are you sure you want to go offline?
+ *[other] If you go offline now, { $downloadsCount } downloads will be canceled. Are you sure you want to go offline?
+ }
+download-ui-dont-go-offline-button = Stay Online
+
+download-ui-confirm-leave-private-browsing-windows-cancel-downloads =
+ { $downloadsCount ->
+ [1] If you close all Private Browsing windows now, 1 download will be canceled. Are you sure you want to leave Private Browsing?
+ *[other] If you close all Private Browsing windows now, { $downloadsCount } downloads will be canceled. Are you sure you want to leave Private Browsing?
+ }
+download-ui-dont-leave-private-browsing-button = Stay in Private Browsing
+
+download-ui-cancel-downloads-ok =
+ { $downloadsCount ->
+ [1] Cancel 1 Download
+ *[other] Cancel { $downloadsCount } Downloads
+ }
+
+##
+
+download-ui-file-executable-security-warning-title = Open Executable File?
+# Variables:
+# $executable (String): The executable file to be opened.
+download-ui-file-executable-security-warning = “{ $executable }” is an executable file. Executable files may contain viruses or other malicious code that could harm your computer. Use caution when opening this file. Are you sure you want to launch “{ $executable }”?
diff --git a/toolkit/locales/en-US/toolkit/downloads/downloadUtils.ftl b/toolkit/locales/en-US/toolkit/downloads/downloadUtils.ftl
new file mode 100644
index 0000000000..097b823681
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/downloads/downloadUtils.ftl
@@ -0,0 +1,106 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Variables:
+## $timeValue (number) - Number of units of time
+
+# Short form for seconds
+download-utils-short-seconds =
+ { $timeValue ->
+ [one] s
+ *[other] s
+ }
+# Short form for minutes
+download-utils-short-minutes =
+ { $timeValue ->
+ [one] m
+ *[other] m
+ }
+# Short form for hours
+download-utils-short-hours =
+ { $timeValue ->
+ [one] h
+ *[other] h
+ }
+# Short form for days
+download-utils-short-days =
+ { $timeValue ->
+ [one] d
+ *[other] d
+ }
+
+##
+
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (2.2 MB/sec)
+# Variables:
+# $timeLeft (string) - Time left.
+# $transfer (string) - Transfer progress.
+# $rate (string) - Rate number.
+# $unit (string) - Rate unit.
+download-utils-status = { $timeLeft } — { $transfer } ({ $rate } { $unit }/sec)
+# If download speed is a JavaScript Infinity value, this phrase is used
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB (Really fast)
+# Variables:
+# $timeLeft (string) - Time left.
+# $transfer (string) - Transfer progress.
+download-utils-status-infinite-rate = { $timeLeft } — { $transfer } (Really fast)
+# — is the "em dash" (long dash)
+# example: 4 minutes left — 1.1 of 11.1 GB
+# Variables:
+# $timeLeft (string) - Time left.
+# $transfer (string) - Transfer progress.
+download-utils-status-no-rate = { $timeLeft } — { $transfer }
+
+download-utils-bytes = bytes
+download-utils-kilobyte = KB
+download-utils-megabyte = MB
+download-utils-gigabyte = GB
+
+# example: 1.1 of 333 MB
+# Variables:
+# $progress (string) - Progress number.
+# $total (string) - Total number.
+# $totalUnits (string) - Total unit.
+download-utils-transfer-same-units = { $progress } of { $total } { $totalUnits }
+# example: 11.1 MB of 3.3 GB
+# Variables:
+# $progress (string) - Progress number.
+# $progressUnits (string) - Progress unit.
+# $total (string) - Total number.
+# $totalUnits (string) - Total unit.
+download-utils-transfer-diff-units = { $progress } { $progressUnits } of { $total } { $totalUnits }
+# example: 111 KB
+# Variables:
+# $progress (string) - Progress number.
+# $progressUnits (string) - Unit.
+download-utils-transfer-no-total = { $progress } { $progressUnits }
+
+# examples: 1m; 11h
+# Variables:
+# $time (string) - Time number.
+# $unit (string) - Time unit.
+download-utils-time-pair = { $time }{ $unit }
+# examples: 1m left; 11h left
+# Variables:
+# $time (string) - Time left, including a unit
+download-utils-time-left-single = { $time } left
+# examples: 11h 2m left; 1d 22h left
+# Variables:
+# $time1 (string) - Time left, including a unit
+# $time2 (string) - Smaller measure of time left, including a unit
+download-utils-time-left-double = { $time1 } { $time2 } left
+download-utils-time-few-seconds = A few seconds left
+download-utils-time-unknown = Unknown time left
+
+# Variables:
+# $scheme (string) - URI scheme like data: jar: about:
+download-utils-done-scheme = { $scheme } resource
+# Special case of done-scheme for file:
+# This is used as an eTLD replacement for local files, so make it lower case
+download-utils-done-file-scheme = local file
+
+# Displayed time for files finished yesterday
+download-utils-yesterday = Yesterday
diff --git a/toolkit/locales/en-US/toolkit/featuregates/features.ftl b/toolkit/locales/en-US/toolkit/featuregates/features.ftl
new file mode 100644
index 0000000000..75e52f5e64
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/featuregates/features.ftl
@@ -0,0 +1,58 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-css-masonry2 =
+ .label = CSS: Masonry Layout
+experimental-features-css-masonry-description = Enables support for the experimental CSS Masonry Layout feature. See the <a data-l10n-name="explainer">explainer</a> for a high level description of the feature. To provide feedback, please comment in <a data-l10n-name="w3c-issue">this GitHub issue</a> or <a data-l10n-name="bug">this bug</a>.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-web-gpu2 =
+ .label = Web API: WebGPU
+experimental-features-web-gpu-description3 = The <a data-l10n-name="wikipedia-webgpu">WebGPU API</a> provides low-level support for performing computation and graphics rendering using the <a data-l10n-name="wikipedia-gpu">Graphics Processing Unit (GPU)</a> of the user’s device or computer. The first version of the <a data-l10n-name="spec">specification</a> is nearing finalization. See <a data-l10n-name="bugzilla">bug 1616739</a> for more details.
+
+# The title of the experiment should be kept in English as it may be referenced
+# by various online articles and is technical in nature.
+experimental-features-media-jxl =
+ .label = Media: JPEG XL
+experimental-features-media-jxl-description = With this feature enabled, { -brand-short-name } supports the JPEG XL (JXL) format. This is an enhanced image file format that supports lossless transition from traditional JPEG files. See <a data-l10n-name="bugzilla">bug 1539075</a> for more details.
+
+experimental-features-devtools-compatibility-panel =
+ .label = Developer Tools: Compatibility Panel
+experimental-features-devtools-compatibility-panel-description = A side panel for the Page Inspector that shows you information detailing your app’s cross-browser compatibility status. See <a data-l10n-name="bugzilla">bug 1584464</a> for more details.
+
+
+# Do not translate 'SameSite', 'Lax' and 'None'.
+experimental-features-cookie-samesite-none-requires-secure2 =
+ .label = Cookies: SameSite=None requires secure attribute
+experimental-features-cookie-samesite-none-requires-secure2-description = Cookies with “SameSite=None” attribute require the secure attribute. This feature requires “Cookies: SameSite=Lax by default”.
+
+# about:home should be kept in English, as it refers to the the URI for
+# the internal default home page.
+experimental-features-abouthome-startup-cache =
+ .label = about:home startup cache
+experimental-features-abouthome-startup-cache-description = A cache for the initial about:home document that is loaded by default at startup. The purpose of the cache is to improve startup performance.
+
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support =
+ .label = Developer Tools: Service Worker debugging
+# "Service Worker" is an API name and is usually not translated.
+experimental-features-devtools-serviceworker-debugger-support-description = Enables experimental support for Service Workers in the Debugger panel. This feature may slow the Developer Tools down and increase memory consumption.
+
+# WebRTC global mute toggle controls
+experimental-features-webrtc-global-mute-toggles =
+ .label = WebRTC Global Mute Toggles
+experimental-features-webrtc-global-mute-toggles-description = Add controls to the WebRTC global sharing indicator that allow users to globally mute their microphone and camera feeds.
+
+# JS JIT Warp project
+experimental-features-js-warp =
+ .label = JavaScript JIT: Warp
+experimental-features-js-warp-description = Enable Warp, a project to improve JavaScript performance and memory usage.
+
+# Search during IME
+experimental-features-ime-search =
+ .label = Address Bar: show results during IME composition
+experimental-features-ime-search-description = An IME (Input Method Editor) is a tool that allows you to enter complex symbols, such as those used in East Asian or Indic written languages, using a standard keyboard. Enabling this experiment will keep the address bar panel open, showing search results and suggestions, while using IME to input text. Note that the IME might display a panel that covers the address bar results, therefore this preference is only suggested for IME not using this type of panel.
diff --git a/toolkit/locales/en-US/toolkit/global/alert.ftl b/toolkit/locales/en-US/toolkit/global/alert.ftl
new file mode 100644
index 0000000000..b9c5e23dfb
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/alert.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+alert-close =
+ .tooltiptext = Close this notification
+alert-settings-title =
+ .tooltiptext = Settings
diff --git a/toolkit/locales/en-US/toolkit/global/appPicker.ftl b/toolkit/locales/en-US/toolkit/global/appPicker.ftl
new file mode 100644
index 0000000000..0a85c9b839
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/appPicker.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+app-picker-browse-button =
+ .buttonlabelextra2 = Browse…
+app-picker-send-msg =
+ .value = Send this item to:
+app-picker-no-app-found =
+ .value = No applications were found for this file type.
diff --git a/toolkit/locales/en-US/toolkit/global/browser-utils.ftl b/toolkit/locales/en-US/toolkit/global/browser-utils.ftl
new file mode 100644
index 0000000000..fa3718b652
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/browser-utils.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Used for data: URLs where we don't have any useful origin information
+browser-utils-url-data = (data)
+
+# Used for extension URLs
+# Variables:
+# $extension (string) - Name of the extension that generated the URL
+browser-utils-url-extension = Extension ({ $extension })
diff --git a/toolkit/locales/en-US/toolkit/global/commonDialog.ftl b/toolkit/locales/en-US/toolkit/global/commonDialog.ftl
new file mode 100644
index 0000000000..1629a0d333
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/commonDialog.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+common-dialog-title-null = This page says
+common-dialog-title-system = { -brand-short-name }
+# Title displayed when the origin of a web dialog is unknown.
+common-dialog-title-unknown = Unknown
+
+common-dialog-username =
+ .value = Username
+common-dialog-password =
+ .value = Password
+
+common-dialog-copy-cmd =
+ .label = Copy
+ .accesskey = C
+common-dialog-select-all-cmd =
+ .label = Select All
+ .accesskey = A
diff --git a/toolkit/locales/en-US/toolkit/global/createProfileWizard.ftl b/toolkit/locales/en-US/toolkit/global/createProfileWizard.ftl
new file mode 100644
index 0000000000..f116bdea3b
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/createProfileWizard.ftl
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+create-profile-window2 =
+ .title = Create Profile Wizard
+ .style = min-width: 45em; min-height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header2 =
+ { PLATFORM() ->
+ [macos] Introduction
+ *[other] Welcome to the { create-profile-window2.title }
+ }
+
+profile-creation-explanation-1 = { -brand-short-name } stores information about your settings and preferences in your personal profile.
+
+profile-creation-explanation-2 = If you are sharing this copy of { -brand-short-name } with other users, you can use profiles to keep each user’s information separate. To do this, each user should create his or her own profile.
+
+profile-creation-explanation-3 = If you are the only person using this copy of { -brand-short-name }, you must have at least one profile. If you would like, you can create multiple profiles for yourself to store different sets of settings and preferences. For example, you may want to have separate profiles for business and personal use.
+
+profile-creation-explanation-4 =
+ { PLATFORM() ->
+ [macos] To begin creating your profile, click Continue.
+ *[other] To begin creating your profile, click Next.
+ }
+
+## Second wizard page
+
+create-profile-last-page-header2 =
+ { PLATFORM() ->
+ [macos] Conclusion
+ *[other] Completing the { create-profile-window2.title }
+ }
+
+profile-creation-intro = If you create several profiles you can tell them apart by the profile names. You may use the name provided here or use one of your own.
+
+profile-prompt = Enter new profile name:
+ .accesskey = E
+
+profile-default-name =
+ .value = Default User
+
+profile-directory-explanation = Your user settings, preferences and other user-related data will be stored in:
+
+create-profile-choose-folder =
+ .label = Choose Folder…
+ .accesskey = C
+
+create-profile-use-default =
+ .label = Use Default Folder
+ .accesskey = U
diff --git a/toolkit/locales/en-US/toolkit/global/cspErrors.ftl b/toolkit/locales/en-US/toolkit/global/cspErrors.ftl
new file mode 100644
index 0000000000..7980bd7e8e
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/cspErrors.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+csp-error-missing-directive = Policy is missing a required ‘{ $directive }’ directive
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $keyword (String): the name of a CSP keyword, usually 'unsafe-inline'.
+csp-error-illegal-keyword = ‘{ $directive }’ directive contains a forbidden { $keyword } keyword
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-protocol = ‘{ $directive }’ directive contains a forbidden { $scheme }: protocol source
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-missing-host = { $scheme }: protocol requires a host in ‘{ $directive }’ directives
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $source (String): the name of a CSP source, usually 'self'.
+csp-error-missing-source = ‘{ $directive }’ must include the source { $source }
+
+# Variables:
+# $directive (String): the name of a CSP directive, such as "script-src".
+# $scheme (String): a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp-error-illegal-host-wildcard = { $scheme }: wildcard sources in ‘{ $directive }’ directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)
diff --git a/toolkit/locales/en-US/toolkit/global/datepicker.ftl b/toolkit/locales/en-US/toolkit/global/datepicker.ftl
new file mode 100644
index 0000000000..d7ea8a423d
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/datepicker.ftl
@@ -0,0 +1,48 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### Datepicker - Dialog for default HTML's <input type="date">
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of a date picker calendar and a month-year selection
+## spinner dialogs for HTML's <input type="date">
+
+date-picker-label =
+ .aria-label = Choose a date
+date-spinner-label =
+ .aria-label = Choose a month and a year
+
+## Text of the clear button
+
+date-picker-clear-button = Clear
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through months of a calendar
+
+date-picker-previous =
+ .aria-label = Previous month
+date-picker-next =
+ .aria-label = Next month
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the type of a value/unit that is being selected within a
+## Month/Year date spinner dialogs on a datepicker calendar dialog
+
+date-spinner-month =
+ .aria-label = Month
+date-spinner-year =
+ .aria-label = Year
+
+## These labels are used by screenreaders and other assistive technology
+## to indicate the purpose of buttons that leaf through either months
+## or years of a Month/Year date spinner on a datepicker calendar dialog
+
+date-spinner-month-previous =
+ .aria-label = Previous month
+date-spinner-month-next =
+ .aria-label = Next month
+date-spinner-year-previous =
+ .aria-label = Previous year
+date-spinner-year-next =
+ .aria-label = Next year
diff --git a/toolkit/locales/en-US/toolkit/global/datetimebox.ftl b/toolkit/locales/en-US/toolkit/global/datetimebox.ftl
new file mode 100644
index 0000000000..6b25a65120
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/datetimebox.ftl
@@ -0,0 +1,41 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Placeholders for date and time inputs
+
+datetime-year-placeholder = yyyy
+datetime-month-placeholder = mm
+datetime-day-placeholder = dd
+datetime-time-placeholder = --
+
+## Field labels for input type=date
+
+datetime-year =
+ .aria-label = Year
+datetime-month =
+ .aria-label = Month
+datetime-day =
+ .aria-label = Day
+
+## Field labels for input type=time
+
+datetime-hour =
+ .aria-label = Hours
+datetime-minute =
+ .aria-label = Minutes
+datetime-second =
+ .aria-label = Seconds
+datetime-millisecond =
+ .aria-label = Milliseconds
+datetime-dayperiod =
+ .aria-label = AM/PM
+
+## Calendar button for input type=date
+
+# This label is used by screenreaders and other assistive technology
+# to indicate the purpose of a toggle button inside of the <input type="date">
+# field that opens/closes a date picker calendar dialog
+
+datetime-calendar =
+ .aria-label = Calendar
diff --git a/toolkit/locales/en-US/toolkit/global/extensionPermissions.ftl b/toolkit/locales/en-US/toolkit/global/extensionPermissions.ftl
new file mode 100644
index 0000000000..1938e062fd
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/extensionPermissions.ftl
@@ -0,0 +1,32 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Extension permission description keys are derived from permission names.
+## Permissions for which the message has been changed and the key updated
+## must have a corresponding entry in the `PERMISSION_L10N_ID_OVERRIDES` map.
+
+webext-perms-description-bookmarks = Read and modify bookmarks
+webext-perms-description-browserSettings = Read and modify browser settings
+webext-perms-description-browsingData = Clear recent browsing history, cookies, and related data
+webext-perms-description-clipboardRead = Get data from the clipboard
+webext-perms-description-clipboardWrite = Input data to the clipboard
+webext-perms-description-declarativeNetRequest = Block content on any page
+webext-perms-description-declarativeNetRequestFeedback = Read your browsing history
+webext-perms-description-devtools = Extend developer tools to access your data in open tabs
+webext-perms-description-downloads = Download files and read and modify the browser’s download history
+webext-perms-description-downloads-open = Open files downloaded to your computer
+webext-perms-description-find = Read the text of all open tabs
+webext-perms-description-geolocation = Access your location
+webext-perms-description-history = Access browsing history
+webext-perms-description-management = Monitor extension usage and manage themes
+webext-perms-description-nativeMessaging = Exchange messages with programs other than { -brand-short-name }
+webext-perms-description-notifications = Display notifications to you
+webext-perms-description-pkcs11 = Provide cryptographic authentication services
+webext-perms-description-privacy = Read and modify privacy settings
+webext-perms-description-proxy = Control browser proxy settings
+webext-perms-description-sessions = Access recently closed tabs
+webext-perms-description-tabs = Access browser tabs
+webext-perms-description-tabHide = Hide and show browser tabs
+webext-perms-description-topSites = Access browsing history
+webext-perms-description-webNavigation = Access browser activity during navigation
diff --git a/toolkit/locales/en-US/toolkit/global/extensions.ftl b/toolkit/locales/en-US/toolkit/global/extensions.ftl
new file mode 100644
index 0000000000..32f0bbe384
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/extensions.ftl
@@ -0,0 +1,111 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Headers used in the webextension permissions dialog,
+## See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+## for an example of the full dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension.
+
+webext-perms-header = Add { $extension }?
+webext-perms-header-with-perms = Add { $extension }? This extension will have permission to:
+webext-perms-header-unsigned = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source.
+webext-perms-header-unsigned-with-perms = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source. This extension will have permission to:
+webext-perms-sideload-header = { $extension } added
+webext-perms-optional-perms-header = { $extension } requests additional permissions.
+
+##
+
+webext-perms-add =
+ .label = Add
+ .accesskey = A
+webext-perms-cancel =
+ .label = Cancel
+ .accesskey = C
+
+webext-perms-sideload-text = Another program on your computer installed an add-on that may affect your browser. Please review this add-on’s permissions requests and choose to Enable or Cancel (to leave it disabled).
+webext-perms-sideload-text-no-perms = Another program on your computer installed an add-on that may affect your browser. Please choose to Enable or Cancel (to leave it disabled).
+webext-perms-sideload-enable =
+ .label = Enable
+ .accesskey = E
+webext-perms-sideload-cancel =
+ .label = Cancel
+ .accesskey = C
+
+# Variables:
+# $extension (String): replaced with the localized name of the extension.
+webext-perms-update-text = { $extension } has been updated. You must approve new permissions before the updated version will install. Choosing “Cancel” will maintain your current extension version. This extension will have permission to:
+webext-perms-update-accept =
+ .label = Update
+ .accesskey = U
+
+webext-perms-optional-perms-list-intro = It wants to:
+webext-perms-optional-perms-allow =
+ .label = Allow
+ .accesskey = A
+webext-perms-optional-perms-deny =
+ .label = Deny
+ .accesskey = D
+
+webext-perms-host-description-all-urls = Access your data for all websites
+
+# Variables:
+# $domain (String): will be replaced by the DNS domain for which a webextension is requesting access (e.g., mozilla.org)
+webext-perms-host-description-wildcard = Access your data for sites in the { $domain } domain
+
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-wildcards =
+ { $domainCount ->
+ [one] Access your data in { $domainCount } other domain
+ *[other] Access your data in { $domainCount } other domains
+ }
+# Variables:
+# $domain (String): will be replaced by the DNS host name for which a webextension is requesting access (e.g., www.mozilla.org)
+webext-perms-host-description-one-site = Access your data for { $domain }
+
+# Variables:
+# $domainCount (Number): Integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webext-perms-host-description-too-many-sites =
+ { $domainCount ->
+ [one] Access your data on { $domainCount } other site
+ *[other] Access your data on { $domainCount } other sites
+ }
+
+## Headers used in the webextension permissions dialog for synthetic add-ons.
+## The part of the string describing what privileges the extension gives should be consistent
+## with the value of webext-site-perms-description-gated-perms-{sitePermission}.
+## Note, this string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $hostname (String): the hostname of the site the add-on is being installed from.
+
+webext-site-perms-header-with-gated-perms-midi = This add-on gives { $hostname } access to your MIDI devices.
+webext-site-perms-header-with-gated-perms-midi-sysex = This add-on gives { $hostname } access to your MIDI devices (with SysEx support).
+
+##
+
+# This string is used as description in the webextension permissions dialog for synthetic add-ons.
+# Note, the empty line is used to create a line break between the two sections.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webext-site-perms-description-gated-perms-midi =
+ These are usually plug-in devices like audio synthesizers, but might also be built into your computer.
+
+ Websites are normally not allowed to access MIDI devices. Improper usage could cause damage or compromise security.
+
+## Headers used in the webextension permissions dialog.
+## Note: This string will be used as raw markup. Avoid characters like <, >, &
+## Variables:
+## $extension (String): replaced with the localized name of the extension being installed.
+## $hostname (String): will be replaced by the DNS host name for which a webextension enables permissions.
+
+webext-site-perms-header-with-perms = Add { $extension }? This extension grants the following capabilities to { $hostname }:
+webext-site-perms-header-unsigned-with-perms = Add { $extension }? This extension is unverified. Malicious extensions can steal your private information or compromise your computer. Only add it if you trust the source. This extension grants the following capabilities to { $hostname }:
+
+## These should remain in sync with permissions.NAME.label in sitePermissions.properties
+
+webext-site-perms-midi = Access MIDI devices
+webext-site-perms-midi-sysex = Access MIDI devices with SysEx support
diff --git a/toolkit/locales/en-US/toolkit/global/handlerDialog.ftl b/toolkit/locales/en-US/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..9d4eaab55e
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,97 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Permission Dialog
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+## $appName (string) - Name of the application that will be opened.
+## $extension (string) - Name of extension that initiated the request
+
+permission-dialog-description =
+ Allow this site to open the { $scheme } link?
+
+permission-dialog-description-file =
+ Allow this file to open the { $scheme } link?
+
+permission-dialog-description-host =
+ Allow { $host } to open the { $scheme } link?
+
+permission-dialog-description-extension =
+ Allow the extension { $extension } to open the { $scheme } link?
+
+permission-dialog-description-app =
+ Allow this site to open the { $scheme } link with { $appName }?
+
+permission-dialog-description-host-app =
+ Allow { $host } to open the { $scheme } link with { $appName }?
+
+permission-dialog-description-file-app =
+ Allow this file to open the { $scheme } link with { $appName }?
+
+permission-dialog-description-extension-app =
+ Allow the extension { $extension } to open the { $scheme } link with { $appName }?
+
+## Please keep the emphasis around the hostname and scheme (ie the
+## `<strong>` HTML tags). Please also keep the hostname as close to the start
+## of the sentence as your language's grammar allows.
+## Variables:
+## $host (string) - The hostname that is initiating the request
+## $scheme (string) - The type of link that's being opened.
+
+permission-dialog-remember =
+ Always allow <strong>{ $host }</strong> to open <strong>{ $scheme }</strong> links
+
+permission-dialog-remember-file =
+ Always allow this file to open <strong>{ $scheme }</strong> links
+
+permission-dialog-remember-extension =
+ Always allow this extension to open <strong>{ $scheme }</strong> links
+
+##
+
+permission-dialog-btn-open-link =
+ .label = Open Link
+ .accessKey = O
+
+permission-dialog-btn-choose-app =
+ .label = Choose Application
+ .accessKey = A
+
+permission-dialog-unset-description = You’ll need to choose an application.
+
+permission-dialog-set-change-app-link = Choose a different application.
+
+## Chooser dialog
+## Variables:
+## $scheme (string) - The type of link that's being opened.
+
+chooser-window =
+ .title = Choose Application
+ .style = min-width: 26em; min-height: 26em;
+
+chooser-dialog =
+ .buttonlabelaccept = Open Link
+ .buttonaccesskeyaccept = O
+
+chooser-dialog-description = Choose an application to open the { $scheme } link.
+
+# Please keep the emphasis around the scheme (ie the `<strong>` HTML tags).
+chooser-dialog-remember =
+ Always use this application to open <strong>{ $scheme }</strong> links
+
+chooser-dialog-remember-extra = {
+ PLATFORM() ->
+ [windows] This can be changed in { -brand-short-name }’s options.
+ *[other] This can be changed in { -brand-short-name }’s preferences.
+ }
+
+choose-other-app-description = Choose other Application
+choose-app-btn =
+ .label = Choose…
+ .accessKey = C
+choose-other-app-window-title = Another Application…
+
+# Displayed under the name of a protocol handler in the Launch Application dialog.
+choose-dialog-privatebrowsing-disabled = Disabled in Private Windows
diff --git a/toolkit/locales/en-US/toolkit/global/htmlForm.ftl b/toolkit/locales/en-US/toolkit/global/htmlForm.ftl
new file mode 100644
index 0000000000..690b0c4557
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/htmlForm.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This string is shown at the end of the tooltip text for
+# <input type='file' multiple> when there are more than 21 files selected
+# (when we will only list the first 20, plus an "and X more" line).
+# Variables:
+# $fileCount (Number): The number of remaining files.
+input-file-and-more-files =
+ { $fileCount ->
+ [one] and one more
+ *[other] and { $fileCount } more
+ }
diff --git a/toolkit/locales/en-US/toolkit/global/notification.ftl b/toolkit/locales/en-US/toolkit/global/notification.ftl
new file mode 100644
index 0000000000..6191253a17
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/notification.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+notification-learnmore-default-label =
+ .value = Learn more
+
+# This label is read by screen readers when focusing the close button for an
+# "infobar" (message shown when for example a popup is blocked),
+# and shown when hovering over the button
+notification-close-button =
+ .aria-label = Close
+ .title = Close
+
+close-notification-message =
+ .tooltiptext = Close this message
diff --git a/toolkit/locales/en-US/toolkit/global/popupnotification.ftl b/toolkit/locales/en-US/toolkit/global/popupnotification.ftl
new file mode 100644
index 0000000000..bf353bcd6f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/popupnotification.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+popup-notification-learn-more = Learn more
+popup-notification-more-actions-button =
+ .aria-label = More actions
+popup-notification-default-button =
+ .label = OK!
+ .accesskey = O
diff --git a/toolkit/locales/en-US/toolkit/global/processTypes.ftl b/toolkit/locales/en-US/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..db48ec250b
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/processTypes.ftl
@@ -0,0 +1,60 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+##
+## Localization for remote types defined in RemoteType.h
+##
+
+process-type-web = Web Content
+
+# process used to run privileged about pages,
+# such as about:home
+process-type-privilegedabout = Privileged About
+
+# process used to run privileged mozilla pages,
+# such as accounts.firefox.com
+process-type-privilegedmozilla = Privileged Mozilla Content
+
+process-type-extension = Extension
+
+# process used to open file:// URLs
+process-type-file = Local File
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Isolated Web Content
+
+# process used to isolate a ServiceWorker to improve
+# performance
+process-type-webserviceworker = Isolated Service Worker
+
+# process preallocated; may change to other types
+process-type-prealloc = Preallocated
+
+##
+## Localization for Gecko process types defined in GeckoProcessTypes.h
+##
+
+process-type-default = Main
+process-type-tab = Tab
+
+# process used to communicate with the GPU for
+# graphics acceleration
+process-type-gpu = GPU
+
+# process used to perform network operations
+process-type-socket = Socket
+
+# process used to decode media
+process-type-rdd = RDD
+
+# process used to run some IPC actor in their own sandbox
+process-type-utility = Sandboxed IPC Actor
+
+##
+## Other
+##
+
+# fallback
+process-type-unknown = Unknown
diff --git a/toolkit/locales/en-US/toolkit/global/profileDowngrade.ftl b/toolkit/locales/en-US/toolkit/global/profileDowngrade.ftl
new file mode 100644
index 0000000000..4276fd77ca
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/profileDowngrade.ftl
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profiledowngrade-window2 =
+ .title = You’ve launched an older version of { -brand-product-name }
+ .style = min-width: 490px;
+
+profiledowngrade-window-create =
+ .label = Create New Profile
+
+profiledowngrade-sync = Using an older version of { -brand-product-name } can corrupt bookmarks and browsing history already saved to an existing { -brand-product-name } profile. To protect your information, create a new profile for this installation of { -brand-short-name }. You can always sign in with a { -fxaccount-brand-name } to sync your bookmarks and browsing history between profiles.
+profiledowngrade-nosync = Using an older version of { -brand-product-name } can corrupt bookmarks and browsing history already saved to an existing { -brand-product-name } profile. To protect your information, create a new profile for this installation of { -brand-short-name }.
+
+profiledowngrade-quit =
+ .label = { PLATFORM() ->
+ [windows] Exit
+ *[other] Quit
+ }
diff --git a/toolkit/locales/en-US/toolkit/global/profileSelection.ftl b/toolkit/locales/en-US/toolkit/global/profileSelection.ftl
new file mode 100644
index 0000000000..30c3efc253
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/profileSelection.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profile-selection-window =
+ .title = { -brand-short-name } - Choose User Profile
+
+profile-selection-button-accept =
+ .label = Start { -brand-short-name }
+
+profile-selection-button-cancel =
+ .label = Exit
+
+profile-selection-new-button =
+ .label = Create Profile…
+ .accesskey = C
+
+profile-selection-rename-button =
+ .label = Rename Profile…
+ .accesskey = R
+
+profile-selection-delete-button =
+ .label = Delete Profile…
+ .accesskey = D
+
+profile-selection-conflict-message = Another copy of { -brand-product-name } has made changes to profiles. You must restart { -brand-short-name } before making more changes.
+
+## Messages used in the profile manager
+
+profile-manager-description = { -brand-short-name } stores information about your settings, preferences, and other user items in your user profile.
+
+profile-manager-work-offline =
+ .label = Work offline
+ .accesskey = o
+
+profile-manager-use-selected =
+ .label = Use the selected profile without asking at startup
+ .accesskey = s
diff --git a/toolkit/locales/en-US/toolkit/global/resetProfile.ftl b/toolkit/locales/en-US/toolkit/global/resetProfile.ftl
new file mode 100644
index 0000000000..0289312da4
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/resetProfile.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+refresh-profile-dialog-title = Refresh { -brand-short-name } to its default settings?
+refresh-profile-dialog-button =
+ .label = Refresh { -brand-short-name }
+refresh-profile-dialog-description = Start fresh to fix performance issues. This will remove your extensions and customizations. You won’t lose essential information like bookmarks and passwords.
+refresh-profile = Give { -brand-short-name } a tune up
+refresh-profile-button = Refresh { -brand-short-name }…
+refresh-profile-learn-more = Learn more
+
+refresh-profile-progress =
+ .title = Refresh { -brand-short-name }
+refresh-profile-progress-description = Almost done…
diff --git a/toolkit/locales/en-US/toolkit/global/run-from-dmg.ftl b/toolkit/locales/en-US/toolkit/global/run-from-dmg.ftl
new file mode 100644
index 0000000000..c8e16d4c3c
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/run-from-dmg.ftl
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Strings for a dialog that may open on macOS before the app's main window
+## opens. The dialog prompts the user to allow the app to install itself in an
+## appropriate location before relaunching itself from that location if the
+## user accepts.
+
+prompt-to-install-title = Finish installing { -brand-short-name }?
+prompt-to-install-message = Complete this one-step installation to help keep { -brand-short-name } up to date and prevent data loss. { -brand-short-name } will be added to your Applications folder and Dock.
+prompt-to-install-yes-button = Install
+prompt-to-install-no-button = Don’t Install
+
+## Strings for a dialog that opens if the installation failed.
+
+install-failed-title = { -brand-short-name } installation failed.
+install-failed-message = { -brand-short-name } failed to install but will continue to run.
+
+## Strings for a dialog that recommends to the user to start an existing
+## installation of the app in the Applications directory if one is detected,
+## rather than the app that was double-clicked in a .dmg.
+
+prompt-to-launch-existing-app-title = Open existing { -brand-short-name } application?
+prompt-to-launch-existing-app-message = You already have { -brand-short-name } installed. Use the installed application to stay up to date and prevent data loss.
+prompt-to-launch-existing-app-yes-button = Open existing
+prompt-to-launch-existing-app-no-button = No thanks
diff --git a/toolkit/locales/en-US/toolkit/global/tabprompts.ftl b/toolkit/locales/en-US/toolkit/global/tabprompts.ftl
new file mode 100644
index 0000000000..26eefa368b
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/tabprompts.ftl
@@ -0,0 +1,13 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tabmodalprompt-username =
+ .value = User Name:
+tabmodalprompt-password =
+ .value = Password:
+
+tabmodalprompt-ok-button =
+ .label = OK
+tabmodalprompt-cancel-button =
+ .label = Cancel
diff --git a/toolkit/locales/en-US/toolkit/global/textActions.ftl b/toolkit/locales/en-US/toolkit/global/textActions.ftl
new file mode 100644
index 0000000000..aa098d5dec
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/textActions.ftl
@@ -0,0 +1,79 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+text-action-undo =
+ .label = Undo
+ .accesskey = U
+
+text-action-undo-shortcut =
+ .key = Z
+
+text-action-redo =
+ .label = Redo
+ .accesskey = R
+
+text-action-redo-shortcut =
+ .key = Y
+
+text-action-cut =
+ .label = Cut
+ .accesskey = t
+
+text-action-cut-shortcut =
+ .key = X
+
+text-action-copy =
+ .label = Copy
+ .accesskey = C
+
+text-action-copy-shortcut =
+ .key = C
+
+text-action-paste =
+ .label = Paste
+ .accesskey = P
+
+text-action-paste-no-formatting =
+ .label = Paste Without Formatting
+ .accesskey = m
+
+text-action-paste-shortcut =
+ .key = V
+
+text-action-delete =
+ .label = Delete
+ .accesskey = D
+
+text-action-select-all =
+ .label = Select All
+ .accesskey = A
+
+text-action-select-all-shortcut =
+ .key = A
+
+text-action-spell-no-suggestions =
+ .label = No Spelling Suggestions
+
+text-action-spell-add-to-dictionary =
+ .label = Add to Dictionary
+ .accesskey = o
+
+text-action-spell-undo-add-to-dictionary =
+ .label = Undo Add To Dictionary
+ .accesskey = n
+
+text-action-spell-check-toggle =
+ .label = Check Spelling
+ .accesskey = g
+
+text-action-spell-add-dictionaries =
+ .label = Add Dictionaries…
+ .accesskey = A
+
+text-action-spell-dictionaries =
+ .label = Languages
+ .accesskey = L
+
+text-action-search-text-box-clear =
+ .title = Clear
diff --git a/toolkit/locales/en-US/toolkit/global/tree.ftl b/toolkit/locales/en-US/toolkit/global/tree.ftl
new file mode 100644
index 0000000000..aa009fd56a
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/tree.ftl
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tree-columnpicker-restore-order =
+ .label = Restore Column Order
diff --git a/toolkit/locales/en-US/toolkit/global/unknownContentType.ftl b/toolkit/locales/en-US/toolkit/global/unknownContentType.ftl
new file mode 100644
index 0000000000..fb29727c0b
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/unknownContentType.ftl
@@ -0,0 +1,42 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+unknowncontenttype-handleinternally =
+ .label = Open with { -brand-short-name }
+ .accesskey = e
+
+unknowncontenttype-settingschange =
+ .value =
+ { PLATFORM() ->
+ [windows] Settings can be changed in { -brand-short-name }’s Options.
+ *[other] Settings can be changed in { -brand-short-name }’s Preferences.
+ }
+
+unknowncontenttype-intro = You have chosen to open:
+unknowncontenttype-which-is = which is:
+unknowncontenttype-from = from:
+unknowncontenttype-prompt = Would you like to save this file?
+unknowncontenttype-action-question = What should { -brand-short-name } do with this file?
+unknowncontenttype-open-with =
+ .label = Open with
+ .accesskey = O
+unknowncontenttype-other =
+ .label = Other…
+unknowncontenttype-choose-handler =
+ .label =
+ { PLATFORM() ->
+ [macos] Choose…
+ *[other] Browse…
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] C
+ *[other] B
+ }
+unknowncontenttype-save-file =
+ .label = Save File
+ .accesskey = S
+unknowncontenttype-remember-choice =
+ .label = Do this automatically for files like this from now on.
+ .accesskey = a
diff --git a/toolkit/locales/en-US/toolkit/global/videocontrols.ftl b/toolkit/locales/en-US/toolkit/global/videocontrols.ftl
new file mode 100644
index 0000000000..56fa0fdc8d
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/videocontrols.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This label is used by screenreaders and other assistive technology to indicate
+# to users how much of the video has been loaded from the network. It will be
+# followed by the percentage of the video that has loaded (e.g. "Loading: 13%").
+videocontrols-buffer-bar-label = Loading:
+videocontrols-volume-control =
+ .aria-label = Volume
+videocontrols-closed-caption-button =
+ .aria-label = Closed Captions
+
+videocontrols-play-button =
+ .aria-label = Play
+videocontrols-pause-button =
+ .aria-label = Pause
+videocontrols-mute-button =
+ .aria-label = Mute
+videocontrols-unmute-button =
+ .aria-label = Unmute
+videocontrols-enterfullscreen-button =
+ .aria-label = Full Screen
+videocontrols-exitfullscreen-button =
+ .aria-label = Exit Full Screen
+videocontrols-casting-button-label =
+ .aria-label = Cast to Screen
+videocontrols-closed-caption-off =
+ .offlabel = Off
+
+# This string is used as part of the Picture-in-Picture video toggle button when
+# the mouse is hovering it.
+videocontrols-picture-in-picture-label = Picture-in-Picture
+
+# This string is used as the label for a variation of the Picture-in-Picture video
+# toggle button when the mouse is hovering over the video.
+videocontrols-picture-in-picture-toggle-label2 = Pop out this video
+
+# This string is used as part of a variation of the Picture-in-Picture video toggle
+# button. When using this variation, this string appears below the toggle when the
+# mouse hovers the toggle.
+videocontrols-picture-in-picture-explainer3 = More screens are more fun. Play this video while you do other things.
+
+videocontrols-error-aborted = Video loading stopped.
+videocontrols-error-network = Video playback aborted due to a network error.
+videocontrols-error-decode = Video can’t be played because the file is corrupt.
+videocontrols-error-src-not-supported = Video format or MIME type is not supported.
+videocontrols-error-no-source = No video with supported format and MIME type found.
+videocontrols-error-generic = Video playback aborted due to an unknown error.
+videocontrols-status-picture-in-picture = This video is playing in Picture-in-Picture mode.
+
+# This message shows the current position and total video duration
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+#
+# For example, when at the 5 minute mark in a 6 hour long video,
+# $position would be "5:00" and $duration would be "6:00:00", result
+# string would be "5:00 / 6:00:00". Note that $duration is not always
+# available. For example, when at the 5 minute mark in an unknown
+# duration video, $position would be "5:00" and the string which is
+# surrounded by <span> would be deleted, result string would be "5:00".
+videocontrols-position-and-duration-labels = { $position }<span data-l10n-name="position-duration-format"> / { $duration }</span>
+
+# This is a plain text version of the videocontrols-position-and-duration-labels
+# string, used by screenreaders.
+#
+# Variables:
+# $position (String): The current media position
+# $duration (String): The total video duration
+videocontrols-scrubber-position-and-duration =
+ .aria-label = Position
+ .aria-valuetext = { $position } / { $duration }
diff --git a/toolkit/locales/en-US/toolkit/global/wizard.ftl b/toolkit/locales/en-US/toolkit/global/wizard.ftl
new file mode 100644
index 0000000000..b8ef359fa7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/wizard.ftl
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+wizard-macos-button-back =
+ .label = Go Back
+ .accesskey = B
+wizard-linux-button-back =
+ .label = Back
+ .accesskey = B
+wizard-win-button-back =
+ .label = < Back
+ .accesskey = B
+
+wizard-macos-button-next =
+ .label = Continue
+ .accesskey = C
+wizard-linux-button-next =
+ .label = Next
+ .accesskey = N
+wizard-win-button-next =
+ .label = Next >
+ .accesskey = N
+
+wizard-macos-button-finish =
+ .label = Done
+wizard-linux-button-finish =
+ .label = Finish
+wizard-win-button-finish =
+ .label = Finish
+
+wizard-macos-button-cancel =
+ .label = Cancel
+wizard-linux-button-cancel =
+ .label = Cancel
+wizard-win-button-cancel =
+ .label = Cancel
diff --git a/toolkit/locales/en-US/toolkit/intl/languageNames.ftl b/toolkit/locales/en-US/toolkit/intl/languageNames.ftl
new file mode 100644
index 0000000000..b6baec4c17
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/intl/languageNames.ftl
@@ -0,0 +1,214 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+language-name-aa = Afar
+language-name-ab = Abkhazian
+language-name-ach = Acholi
+language-name-ae = Avestan
+language-name-af = Afrikaans
+language-name-ak = Akan
+language-name-am = Amharic
+language-name-an = Aragonese
+language-name-ar = Arabic
+language-name-as = Assamese
+language-name-ast = Asturian
+language-name-av = Avaric
+language-name-ay = Aymara
+language-name-az = Azerbaijani
+language-name-ba = Bashkir
+language-name-be = Belarusian
+language-name-bg = Bulgarian
+language-name-bh = Bihari
+language-name-bi = Bislama
+language-name-bm = Bambara
+language-name-bn = Bengali
+language-name-bo = Tibetan
+language-name-br = Breton
+language-name-bs = Bosnian
+language-name-ca = Catalan
+language-name-cak = Kaqchikel
+language-name-ce = Chechen
+language-name-ch = Chamorro
+language-name-co = Corsican
+language-name-cr = Cree
+language-name-crh = Crimean Tatar
+language-name-cs = Czech
+language-name-csb = Kashubian
+language-name-cu = Church Slavic
+language-name-cv = Chuvash
+language-name-cy = Welsh
+language-name-da = Danish
+language-name-de = German
+language-name-dsb = Lower Sorbian
+language-name-dv = Divehi
+language-name-dz = Dzongkha
+language-name-ee = Ewe
+language-name-el = Greek
+language-name-en = English
+language-name-eo = Esperanto
+language-name-es = Spanish
+language-name-et = Estonian
+language-name-eu = Basque
+language-name-fa = Persian
+language-name-ff = Fulah
+language-name-fi = Finnish
+language-name-fj = Fijian
+language-name-fo = Faroese
+language-name-fr = French
+language-name-fur = Friulian
+language-name-fy = Frisian
+language-name-ga = Irish
+language-name-gd = Scottish Gaelic
+language-name-gl = Galician
+language-name-gn = Guarani
+language-name-gu = Gujarati
+language-name-gv = Manx
+language-name-ha = Hausa
+language-name-haw = Hawaiian
+language-name-he = Hebrew
+language-name-hi = Hindi
+language-name-hil = Hiligaynon
+language-name-ho = Hiri Motu
+language-name-hr = Croatian
+language-name-hsb = Upper Sorbian
+language-name-ht = Haitian
+language-name-hu = Hungarian
+language-name-hy = Armenian
+language-name-hz = Herero
+language-name-ia = Interlingua
+language-name-id = Indonesian
+language-name-ie = Interlingue
+language-name-ig = Igbo
+language-name-ii = Sichuan Yi
+language-name-ik = Inupiaq
+language-name-io = Ido
+language-name-is = Icelandic
+language-name-it = Italian
+language-name-iu = Inuktitut
+language-name-ja = Japanese
+language-name-jv = Javanese
+language-name-ka = Georgian
+language-name-kab = Kabyle
+language-name-kg = Kongo
+language-name-ki = Kikuyu
+language-name-kj = Kuanyama
+language-name-kk = Kazakh
+language-name-kl = Greenlandic
+language-name-km = Khmer
+language-name-kn = Kannada
+language-name-ko = Korean
+language-name-kok = Konkani
+language-name-kr = Kanuri
+language-name-ks = Kashmiri
+language-name-ku = Kurdish
+language-name-kv = Komi
+language-name-kw = Cornish
+language-name-ky = Kirghiz
+language-name-la = Latin
+language-name-lb = Luxembourgish
+language-name-lg = Ganda
+language-name-li = Limburgan
+language-name-lij = Ligurian
+language-name-ln = Lingala
+language-name-lo = Lao
+language-name-lt = Lithuanian
+language-name-ltg = Latgalian
+language-name-lu = Luba-Katanga
+language-name-lv = Latvian
+language-name-mai = Maithili
+language-name-meh = Southwestern Tlaxiaco Mixtec
+language-name-mg = Malagasy
+language-name-mh = Marshallese
+language-name-mi = Maori
+language-name-mix = Mixtepec Mixtec
+language-name-mk = Macedonian
+language-name-ml = Malayalam
+language-name-mn = Mongolian
+language-name-mr = Marathi
+language-name-ms = Malay
+language-name-mt = Maltese
+language-name-my = Burmese
+language-name-na = Nauru
+language-name-nb = Norwegian Bokmål
+language-name-nd = Ndebele, North
+language-name-ne = Nepali
+language-name-ng = Ndonga
+language-name-nl = Dutch
+language-name-nn = Norwegian Nynorsk
+language-name-no = Norwegian
+language-name-nr = Ndebele, South
+language-name-nso = Sotho, Northern
+language-name-nv = Navajo
+language-name-ny = Chichewa
+language-name-oc = Occitan
+language-name-oj = Ojibwa
+language-name-om = Oromo
+language-name-or = Odia
+language-name-os = Ossetian
+language-name-pa = Punjabi
+language-name-pi = Pali
+language-name-pl = Polish
+language-name-ps = Pashto
+language-name-pt = Portuguese
+language-name-qu = Quechua
+language-name-rm = Rhaeto-Romanic
+language-name-rn = Kirundi
+language-name-ro = Romanian
+language-name-ru = Russian
+language-name-rw = Kinyarwanda
+language-name-sa = Sanskrit
+language-name-sc = Sardinian
+language-name-sco = Scots
+language-name-sd = Sindhi
+language-name-se = Northern Sami
+language-name-sg = Sango
+language-name-si = Sinhala
+language-name-sk = Slovak
+language-name-sl = Slovenian
+language-name-sm = Samoan
+language-name-sn = Shona
+language-name-so = Somali
+language-name-son = Songhay
+language-name-sq = Albanian
+language-name-sr = Serbian
+language-name-ss = Siswati
+language-name-st = Sotho, Southern
+language-name-su = Sundanese
+language-name-sv = Swedish
+language-name-sw = Swahili
+language-name-szl = Silesian
+language-name-ta = Tamil
+language-name-te = Telugu
+language-name-tg = Tajik
+language-name-th = Thai
+language-name-ti = Tigrinya
+language-name-tig = Tigre
+language-name-tk = Turkmen
+language-name-tl = Tagalog
+language-name-tlh = Klingon
+language-name-tn = Tswana
+language-name-to = Tonga
+language-name-tr = Turkish
+language-name-trs = Triqui
+language-name-ts = Tsonga
+language-name-tt = Tatar
+language-name-tw = Twi
+language-name-ty = Tahitian
+language-name-ug = Uighur
+language-name-uk = Ukrainian
+language-name-ur = Urdu
+language-name-uz = Uzbek
+language-name-ve = Venda
+language-name-vi = Vietnamese
+language-name-vo = Volapük
+language-name-wa = Walloon
+language-name-wen = Sorbian
+language-name-wo = Wolof
+language-name-xh = Xhosa
+language-name-yi = Yiddish
+language-name-yo = Yoruba
+language-name-za = Zhuang
+language-name-zam = Miahuatlán Zapotec
+language-name-zh = Chinese
+language-name-zu = Zulu
diff --git a/toolkit/locales/en-US/toolkit/intl/regionNames.ftl b/toolkit/locales/en-US/toolkit/intl/regionNames.ftl
new file mode 100644
index 0000000000..1ab7a5aec9
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/intl/regionNames.ftl
@@ -0,0 +1,279 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### Notice: If you're updating this list, you should also
+### update the list in mozIntl.js.
+
+region-name-ad = Andorra
+region-name-ae = United Arab Emirates
+region-name-af = Afghanistan
+region-name-ag = Antigua and Barbuda
+region-name-ai = Anguilla
+region-name-al = Albania
+region-name-am = Armenia
+region-name-ao = Angola
+region-name-aq = Antarctica
+region-name-ar = Argentina
+region-name-as = American Samoa
+region-name-at = Austria
+region-name-au = Australia
+region-name-aw = Aruba
+region-name-az = Azerbaijan
+region-name-ba = Bosnia and Herzegovina
+region-name-bb = Barbados
+region-name-bd = Bangladesh
+region-name-be = Belgium
+region-name-bf = Burkina Faso
+region-name-bg = Bulgaria
+region-name-bh = Bahrain
+region-name-bi = Burundi
+region-name-bj = Benin
+region-name-bl = Saint Barthélemy
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolivia
+region-name-bq-2018 = Caribbean Netherlands
+region-name-br = Brazil
+region-name-bs = Bahamas, The
+region-name-bt = Bhutan
+region-name-bv = Bouvet Island
+region-name-bw = Botswana
+region-name-by = Belarus
+region-name-bz = Belize
+region-name-ca = Canada
+region-name-cc = Cocos (Keeling) Islands
+region-name-cd = Congo (Kinshasa)
+region-name-cf = Central African Republic
+region-name-cg = Congo (Brazzaville)
+region-name-ch = Switzerland
+region-name-ci = Côte d’Ivoire
+region-name-ck = Cook Islands
+region-name-cl = Chile
+region-name-cm = Cameroon
+region-name-cn = China
+region-name-co = Colombia
+region-name-cp = Clipperton Island
+region-name-cr = Costa Rica
+region-name-cu = Cuba
+region-name-cv-2020 = Cape Verde
+region-name-cw = Curaçao
+region-name-cx = Christmas Island
+region-name-cy = Cyprus
+region-name-cz-2019 = Czechia
+region-name-de = Germany
+region-name-dg = Diego Garcia
+region-name-dj = Djibouti
+region-name-dk = Denmark
+region-name-dm = Dominica
+region-name-do = Dominican Republic
+region-name-dz = Algeria
+region-name-ec = Ecuador
+region-name-ee = Estonia
+region-name-eg = Egypt
+region-name-eh = Western Sahara
+region-name-er = Eritrea
+region-name-es = Spain
+region-name-et = Ethiopia
+region-name-fi = Finland
+region-name-fj = Fiji
+region-name-fk = Falkland Islands (Islas Malvinas)
+region-name-fm = Micronesia, Federated States of
+region-name-fo = Faroe Islands
+region-name-fr = France
+region-name-ga = Gabon
+region-name-gb = United Kingdom
+region-name-gd = Grenada
+region-name-ge = Georgia
+region-name-gf = French Guiana
+region-name-gg = Guernsey
+region-name-gh = Ghana
+region-name-gi = Gibraltar
+region-name-gl = Greenland
+region-name-gm = Gambia, The
+region-name-gn = Guinea
+region-name-gp = Guadeloupe
+region-name-gq = Equatorial Guinea
+region-name-gr = Greece
+region-name-gs = South Georgia and South Sandwich Islands
+region-name-gt = Guatemala
+region-name-gu = Guam
+region-name-gw = Guinea-Bissau
+region-name-gy = Guyana
+region-name-hk = Hong Kong
+region-name-hm = Heard Island and McDonald Islands
+region-name-hn = Honduras
+region-name-hr = Croatia
+region-name-ht = Haiti
+region-name-hu = Hungary
+region-name-id = Indonesia
+region-name-ie = Ireland
+region-name-il = Israel
+region-name-im = Isle of Man
+region-name-in = India
+region-name-io = British Indian Ocean Territory
+region-name-iq = Iraq
+region-name-ir = Iran
+region-name-is = Iceland
+region-name-it = Italy
+region-name-je = Jersey
+region-name-jm = Jamaica
+region-name-jo = Jordan
+region-name-jp = Japan
+region-name-ke = Kenya
+region-name-kg = Kyrgyzstan
+region-name-kh = Cambodia
+region-name-ki = Kiribati
+region-name-km = Comoros
+region-name-kn = Saint Kitts and Nevis
+region-name-kp = Korea, North
+region-name-kr = Korea, South
+region-name-kw = Kuwait
+region-name-ky = Cayman Islands
+region-name-kz = Kazakhstan
+region-name-la = Laos
+region-name-lb = Lebanon
+region-name-lc = Saint Lucia
+region-name-li = Liechtenstein
+region-name-lk = Sri Lanka
+region-name-lr = Liberia
+region-name-ls = Lesotho
+region-name-lt = Lithuania
+region-name-lu = Luxembourg
+region-name-lv = Latvia
+region-name-ly = Libya
+region-name-ma = Morocco
+region-name-mc = Monaco
+region-name-md = Moldova
+region-name-me = Montenegro
+region-name-mf = Saint Martin
+region-name-mg = Madagascar
+region-name-mh = Marshall Islands
+region-name-mk-2019 = North Macedonia
+region-name-ml = Mali
+region-name-mm = Burma
+region-name-mn = Mongolia
+region-name-mo = Macau
+region-name-mp = Northern Mariana Islands
+region-name-mq = Martinique
+region-name-mr = Mauritania
+region-name-ms = Montserrat
+region-name-mt = Malta
+region-name-mu = Mauritius
+region-name-mv = Maldives
+region-name-mw = Malawi
+region-name-mx = Mexico
+region-name-my = Malaysia
+region-name-mz = Mozambique
+region-name-na = Namibia
+region-name-nc = New Caledonia
+region-name-ne = Niger
+region-name-nf = Norfolk Island
+region-name-ng = Nigeria
+region-name-ni = Nicaragua
+region-name-nl = Netherlands
+region-name-no = Norway
+region-name-np = Nepal
+region-name-nr = Nauru
+region-name-nu = Niue
+region-name-nz = New Zealand
+region-name-om = Oman
+region-name-pa = Panama
+region-name-pe = Peru
+region-name-pf = French Polynesia
+region-name-pg = Papua New Guinea
+region-name-ph = Philippines
+region-name-pk = Pakistan
+region-name-pl = Poland
+region-name-pm = Saint Pierre and Miquelon
+region-name-pn = Pitcairn Islands
+region-name-pr = Puerto Rico
+region-name-pt = Portugal
+region-name-pw = Palau
+region-name-py = Paraguay
+region-name-qa = Qatar
+region-name-qm = Midway Islands
+region-name-qs = Bassas da India
+region-name-qu = Juan de Nova Island
+region-name-qw = Wake Island
+region-name-qx = Glorioso Islands
+region-name-qz = Akrotiri
+region-name-re = Réunion
+region-name-ro = Romania
+region-name-rs = Serbia
+region-name-ru = Russia
+region-name-rw = Rwanda
+region-name-sa = Saudi Arabia
+region-name-sb = Solomon Islands
+region-name-sc = Seychelles
+region-name-sd = Sudan
+region-name-se = Sweden
+region-name-sg = Singapore
+region-name-sh = Saint Helena, Ascension, and Tristan da Cunha
+region-name-si = Slovenia
+region-name-sk = Slovakia
+region-name-sl = Sierra Leone
+region-name-sm = San Marino
+region-name-sn = Senegal
+region-name-so = Somalia
+region-name-sr = Suriname
+region-name-ss = South Sudan
+region-name-st = São Tomé and Príncipe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Syria
+region-name-sz-2019 = Eswatini
+region-name-tc = Turks and Caicos Islands
+region-name-td = Chad
+region-name-tf = French Southern and Antarctic Lands
+region-name-tg = Togo
+region-name-th = Thailand
+region-name-tj = Tajikistan
+region-name-tk = Tokelau
+region-name-tl = Timor-Leste
+region-name-tm = Turkmenistan
+region-name-tn = Tunisia
+region-name-to = Tonga
+region-name-tr = Turkey
+region-name-tt = Trinidad and Tobago
+region-name-tv = Tuvalu
+region-name-tw = Taiwan
+region-name-tz = Tanzania
+region-name-ua = Ukraine
+region-name-ug = Uganda
+region-name-us = United States
+region-name-uy = Uruguay
+region-name-uz = Uzbekistan
+region-name-va = Vatican City
+region-name-vc = Saint Vincent and the Grenadines
+region-name-ve = Venezuela
+region-name-vg = Virgin Islands, British
+region-name-vi = Virgin Islands, U.S.
+region-name-vn = Vietnam
+region-name-vu = Vanuatu
+region-name-wf = Wallis and Futuna
+region-name-ws = Samoa
+region-name-xa = Ashmore and Cartier Islands
+region-name-xb = Baker Island
+region-name-xc = Coral Sea Islands
+region-name-xd = Dhekelia
+region-name-xe = Europa Island
+region-name-xg = Gaza Strip
+region-name-xh = Howland Island
+region-name-xj = Jan Mayen
+region-name-xk = Kosovo
+region-name-xl = Palmyra Atoll
+region-name-xm = Kingman Reef
+region-name-xp = Paracel Islands
+region-name-xq = Jarvis Island
+region-name-xr = Svalbard
+region-name-xs = Spratly Islands
+region-name-xt = Tromelin Island
+region-name-xu = Johnston Atoll
+region-name-xv = Navassa Island
+region-name-xw = West Bank
+region-name-ye = Yemen
+region-name-yt = Mayotte
+region-name-za = South Africa
+region-name-zm = Zambia
+region-name-zw = Zimbabwe
diff --git a/toolkit/locales/en-US/toolkit/main-window/autocomplete.ftl b/toolkit/locales/en-US/toolkit/main-window/autocomplete.ftl
new file mode 100644
index 0000000000..81a6296e26
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/main-window/autocomplete.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### Import Logins Autocomplete
+
+## Variables:
+## $host (String) - Host name of the current site.
+
+autocomplete-import-logins-chrome =
+ <div data-l10n-name="line1">Import your login from Google Chrome</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+autocomplete-import-logins-chromium =
+ <div data-l10n-name="line1">Import your login from Chromium</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+autocomplete-import-logins-chromium-edge =
+ <div data-l10n-name="line1">Import your login from Microsoft Edge</div>
+ <div data-l10n-name="line2">for { $host } and other sites</div>
+
+##
+
+autocomplete-import-learn-more = Learn more
diff --git a/toolkit/locales/en-US/toolkit/main-window/findbar.ftl b/toolkit/locales/en-US/toolkit/main-window/findbar.ftl
new file mode 100644
index 0000000000..a2f93310f7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/main-window/findbar.ftl
@@ -0,0 +1,74 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+### This file contains the entities needed to use the Find Bar.
+
+findbar-next =
+ .tooltiptext = Find the next occurrence of the phrase
+findbar-previous =
+ .tooltiptext = Find the previous occurrence of the phrase
+
+findbar-find-button-close =
+ .tooltiptext = Close find bar
+
+findbar-highlight-all2 =
+ .label = Highlight All
+ .accesskey = { PLATFORM() ->
+ [macos] l
+ *[other] a
+ }
+ .tooltiptext = Highlight all occurrences of the phrase
+
+findbar-case-sensitive =
+ .label = Match Case
+ .accesskey = C
+ .tooltiptext = Search with case sensitivity
+
+findbar-match-diacritics =
+ .label = Match Diacritics
+ .accesskey = i
+ .tooltiptext = Distinguish between accented letters and their base letters (for example, when searching for “resume”, “résumé” will not be matched)
+
+findbar-entire-word =
+ .label = Whole Words
+ .accesskey = W
+ .tooltiptext = Search whole words only
+
+findbar-not-found = Phrase not found
+
+findbar-wrapped-to-top = Reached end of page, continued from top
+findbar-wrapped-to-bottom = Reached top of page, continued from bottom
+
+findbar-normal-find =
+ .placeholder = Find in page
+findbar-fast-find =
+ .placeholder = Quick find
+findbar-fast-find-links =
+ .placeholder = Quick find (links only)
+
+findbar-case-sensitive-status =
+ .value = (Case sensitive)
+findbar-match-diacritics-status =
+ .value = (Matching diacritics)
+findbar-entire-word-status =
+ .value = (Whole words only)
+
+# Variables:
+# $current (Number): Index of the currently selected match
+# $total (Number): Total count of matches
+findbar-found-matches =
+ .value =
+ { $total ->
+ [one] { $current } of { $total } match
+ *[other] { $current } of { $total } matches
+ }
+
+# Variables:
+# $limit (Number): Total count of matches allowed before counting stops
+findbar-found-matches-count-limit =
+ .value =
+ { $limit ->
+ [one] More than { $limit } match
+ *[other] More than { $limit } matches
+ }
diff --git a/toolkit/locales/en-US/toolkit/neterror/certError.ftl b/toolkit/locales/en-US/toolkit/neterror/certError.ftl
new file mode 100644
index 0000000000..58e3c56a8a
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/neterror/certError.ftl
@@ -0,0 +1,143 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-intro = { $hostname } uses an invalid security certificate.
+
+cert-error-mitm-intro = Websites prove their identity via certificates, which are issued by certificate authorities.
+
+cert-error-mitm-mozilla = { -brand-short-name } is backed by the non-profit Mozilla, which administers a completely open certificate authority (CA) store. The CA store helps ensure that certificate authorities are following best practices for user security.
+
+cert-error-mitm-connection = { -brand-short-name } uses the Mozilla CA store to verify that a connection is secure, rather than certificates supplied by the user’s operating system. So, if an antivirus program or a network is intercepting a connection with a security certificate issued by a CA that is not in the Mozilla CA store, the connection is considered unsafe.
+
+cert-error-trust-unknown-issuer-intro = Someone could be trying to impersonate the site and you should not continue.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = Websites prove their identity via certificates. { -brand-short-name } does not trust { $hostname } because its certificate issuer is unknown, the certificate is self-signed, or the server is not sending the correct intermediate certificates.
+
+cert-error-trust-cert-invalid = The certificate is not trusted because it was issued by an invalid CA certificate.
+
+cert-error-trust-untrusted-issuer = The certificate is not trusted because the issuer certificate is not trusted.
+
+cert-error-trust-signature-algorithm-disabled = The certificate is not trusted because it was signed using a signature algorithm that was disabled because that algorithm is not secure.
+
+cert-error-trust-expired-issuer = The certificate is not trusted because the issuer certificate has expired.
+
+cert-error-trust-self-signed = The certificate is not trusted because it is self-signed.
+
+cert-error-trust-symantec = Certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign are no longer considered safe because these certificate authorities failed to follow security practices in the past.
+
+cert-error-untrusted-default = The certificate does not come from a trusted source.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-domain-mismatch = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for <a data-l10n-name="domain-mismatch-link">{ $alt-name }</a>.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $alt-name (string) - Alternate domain name for which the cert is valid.
+cert-error-domain-mismatch-single-nolink = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for { $alt-name }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $subject-alt-names (string) - Alternate domain names for which the cert is valid.
+cert-error-domain-mismatch-multiple = Websites prove their identity via certificates. { -brand-short-name } does not trust this site because it uses a certificate that is not valid for { $hostname }. The certificate is only valid for the following names: { $subject-alt-names }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-after-local-time (Date) - Certificate is not valid after this time.
+cert-error-expired-now = Websites prove their identity via certificates, which are valid for a set time period. The certificate for { $hostname } expired on { $not-after-local-time }.
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+# $not-before-local-time (Date) - Certificate is not valid before this time.
+cert-error-not-yet-valid-now = Websites prove their identity via certificates, which are valid for a set time period. The certificate for { $hostname } will not be valid until { $not-before-local-time }.
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix = Error code: { $error }
+
+# Variables:
+# $error (string) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = Error code: <a data-l10n-name="error-code-link">{ $error }</a>
+
+# Variables:
+# $hostname (string) - Hostname of the website with SSL error.
+# $errorMessage (string) - Error message corresponding to the type of error we are experiencing.
+cert-error-ssl-connection-error = An error occurred during a connection to { $hostname }. { $errorMessage }
+
+# Variables:
+# $hostname (string) - Hostname of the website with cert error.
+cert-error-symantec-distrust-description = Websites prove their identity via certificates, which are issued by certificate authorities. Most browsers no longer trust certificates issued by GeoTrust, RapidSSL, Symantec, Thawte, and VeriSign. { $hostname } uses a certificate from one of these authorities and so the website’s identity cannot be proven.
+
+cert-error-symantec-distrust-admin = You may notify the website’s administrator about this problem.
+
+cert-error-old-tls-version = This website might not support the TLS 1.2 protocol, which is the minimum version supported by { -brand-short-name }.
+
+# Variables:
+# $hasHSTS (Boolean) - Indicates whether HSTS header is present.
+cert-error-details-hsts-label = HTTP Strict Transport Security: { $hasHSTS }
+
+# Variables:
+# $hasHPKP (Boolean) - Indicates whether HPKP header is present.
+cert-error-details-key-pinning-label = HTTP Public Key Pinning: { $hasHPKP }
+
+cert-error-details-cert-chain-label = Certificate chain:
+
+open-in-new-window-for-csp-or-xfo-error = Open Site in New Window
+
+# Variables:
+# $hostname (string) - Hostname of the website blocked by csp or xfo error.
+csp-xfo-blocked-long-desc = To protect your security, { $hostname } will not allow { -brand-short-name } to display the page if another site has embedded it. To see this page, you need to open it in a new window.
+
+## Messages used for certificate error titles
+
+connectionFailure-title = Unable to connect
+deniedPortAccess-title = This address is restricted
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+dnsNotFound-title = Hmm. We’re having trouble finding that site.
+
+dns-not-found-trr-only-title2 =
+ Possible security risk looking up this domain
+dns-not-found-native-fallback-title2 =
+ Possible security risk looking up this domain
+
+fileNotFound-title = File not found
+fileAccessDenied-title = Access to the file was denied
+generic-title = Oops.
+captivePortal-title = Log in to network
+# "Hmm" is a sound made when considering or puzzling over something.
+# You don't have to include it in your translation if your language does not have a written word like this.
+malformedURI-title = Hmm. That address doesn’t look right.
+netInterrupt-title = The connection was interrupted
+notCached-title = Document Expired
+netOffline-title = Offline mode
+contentEncodingError-title = Content Encoding Error
+unsafeContentType-title = Unsafe File Type
+netReset-title = The connection was reset
+netTimeout-title = The connection has timed out
+unknownProtocolFound-title = The address wasn’t understood
+proxyConnectFailure-title = The proxy server is refusing connections
+proxyResolveFailure-title = Unable to find the proxy server
+redirectLoop-title = The page isn’t redirecting properly
+unknownSocketType-title = Unexpected response from server
+nssFailure2-title = Secure Connection Failed
+csp-xfo-error-title = { -brand-short-name } Can’t Open This Page
+corruptedContentError-title = Corrupted Content Error
+sslv3Used-title = Unable to Connect Securely
+inadequateSecurityError-title = Your connection is not secure
+blockedByPolicy-title = Blocked Page
+clockSkewError-title = Your Computer Clock is Wrong
+networkProtocolError-title = Network Protocol Error
+nssBadCert-title = Warning: Potential Security Risk Ahead
+nssBadCert-sts-title = Did Not Connect: Potential Security Issue
+certerror-mitm-title = Software is Preventing { -brand-short-name } From Safely Connecting to This Site
diff --git a/toolkit/locales/en-US/toolkit/neterror/netError.ftl b/toolkit/locales/en-US/toolkit/neterror/netError.ftl
new file mode 100644
index 0000000000..de3fa65b88
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/neterror/netError.ftl
@@ -0,0 +1,174 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## Error page titles
+
+neterror-page-title = Problem loading page
+certerror-page-title = Warning: Potential Security Risk Ahead
+certerror-sts-page-title = Did Not Connect: Potential Security Issue
+neterror-blocked-by-policy-page-title = Blocked Page
+neterror-captive-portal-page-title = Log in to network
+neterror-dns-not-found-title = Server Not Found
+neterror-malformed-uri-page-title = Invalid URL
+
+## Error page actions
+
+neterror-advanced-button = Advanced…
+neterror-copy-to-clipboard-button = Copy text to clipboard
+neterror-learn-more-link = Learn more…
+neterror-open-portal-login-page-button = Open Network Login Page
+neterror-override-exception-button = Accept the Risk and Continue
+neterror-pref-reset-button = Restore default settings
+neterror-return-to-previous-page-button = Go Back
+neterror-return-to-previous-page-recommended-button = Go Back (Recommended)
+neterror-try-again-button = Try Again
+neterror-add-exception-button = Always continue for this site
+neterror-settings-button = Change DNS settings
+neterror-view-certificate-link = View Certificate
+neterror-trr-continue-this-time = Continue this time
+neterror-disable-native-feedback-warning = Always continue
+
+##
+
+neterror-pref-reset = It looks like your network security settings might be causing this. Do you want the default settings to be restored?
+neterror-error-reporting-automatic = Report errors like this to help { -vendor-short-name } identify and block malicious sites
+
+## Specific error messages
+
+neterror-generic-error = { -brand-short-name } can’t load this page for some reason.
+
+neterror-load-error-try-again = The site could be temporarily unavailable or too busy. Try again in a few moments.
+neterror-load-error-connection = If you are unable to load any pages, check your computer’s network connection.
+neterror-load-error-firewall = If your computer or network is protected by a firewall or proxy, make sure that { -brand-short-name } is permitted to access the web.
+
+neterror-captive-portal = You must log in to this network before you can access the internet.
+
+# Variables:
+# $hostAndPath (String) - a suggested site (e.g. "www.example.com") that the user may have meant instead.
+neterror-dns-not-found-with-suggestion = Did you mean to go to <a data-l10n-name="website">{ $hostAndPath }</a>?
+neterror-dns-not-found-hint-header = <strong>If you entered the right address, you can:</strong>
+neterror-dns-not-found-hint-try-again = Try again later
+neterror-dns-not-found-hint-check-network = Check your network connection
+neterror-dns-not-found-hint-firewall = Check that { -brand-short-name } has permission to access the web (you might be connected but behind a firewall)
+
+## TRR-only specific messages
+## Variables:
+## $hostname (String) - Hostname of the website to which the user was trying to connect.
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-trr-only-reason = { -brand-short-name } can’t protect your request for this site’s address through our trusted DNS resolver. Here’s why:
+neterror-dns-not-found-trr-third-party-warning2 = You can continue with your default DNS resolver. However, a third-party might be able to see what websites you visit.
+
+neterror-dns-not-found-trr-only-could-not-connect = { -brand-short-name } wasn’t able to connect to { $trrDomain }.
+neterror-dns-not-found-trr-only-timeout = The connection to { $trrDomain } took longer than expected.
+neterror-dns-not-found-trr-offline = You are not connected to the internet.
+neterror-dns-not-found-trr-unknown-host2 = This website wasn’t found by { $trrDomain }.
+neterror-dns-not-found-trr-server-problem = There was a problem with { $trrDomain }.
+neterror-dns-not-found-trr-unknown-problem = Unexpected problem.
+
+## Native fallback specific messages
+## Variables:
+## $trrDomain (String) - Hostname of the DNS over HTTPS server that is currently in use.
+
+neterror-dns-not-found-native-fallback-reason = { -brand-short-name } can’t protect your request for this site’s address through our trusted DNS resolver. Here’s why:
+neterror-dns-not-found-native-fallback-heuristic = DNS over HTTPS has been disabled on your network.
+neterror-dns-not-found-native-fallback-not-confirmed2 = { -brand-short-name } wasn’t able to connect to { $trrDomain }.
+
+##
+
+neterror-file-not-found-filename = Check the file name for capitalization or other typing errors.
+neterror-file-not-found-moved = Check to see if the file was moved, renamed or deleted.
+
+neterror-access-denied = It may have been removed, moved, or file permissions may be preventing access.
+
+neterror-unknown-protocol = You might need to install other software to open this address.
+
+neterror-redirect-loop = This problem can sometimes be caused by disabling or refusing to accept cookies.
+
+neterror-unknown-socket-type-psm-installed = Check to make sure your system has the Personal Security Manager installed.
+neterror-unknown-socket-type-server-config = This might be due to a non-standard configuration on the server.
+
+neterror-not-cached-intro = The requested document is not available in { -brand-short-name }’s cache.
+neterror-not-cached-sensitive = As a security precaution, { -brand-short-name } does not automatically re-request sensitive documents.
+neterror-not-cached-try-again = Click Try Again to re-request the document from the website.
+
+neterror-net-offline = Press “Try Again” to switch to online mode and reload the page.
+
+neterror-proxy-resolve-failure-settings = Check the proxy settings to make sure that they are correct.
+neterror-proxy-resolve-failure-connection = Check to make sure your computer has a working network connection.
+neterror-proxy-resolve-failure-firewall = If your computer or network is protected by a firewall or proxy, make sure that { -brand-short-name } is permitted to access the web.
+
+neterror-proxy-connect-failure-settings = Check the proxy settings to make sure that they are correct.
+neterror-proxy-connect-failure-contact-admin = Contact your network administrator to make sure the proxy server is working.
+
+neterror-content-encoding-error = Please contact the website owners to inform them of this problem.
+
+neterror-unsafe-content-type = Please contact the website owners to inform them of this problem.
+
+neterror-nss-failure-not-verified = The page you are trying to view cannot be shown because the authenticity of the received data could not be verified.
+neterror-nss-failure-contact-website = Please contact the website owners to inform them of this problem.
+
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-intro = { -brand-short-name } detected a potential security threat and did not continue to <b>{ $hostname }</b>. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-sts-intro = { -brand-short-name } detected a potential security threat and did not continue to <b>{ $hostname }</b> because this website requires a secure connection.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-expired-cert-intro = { -brand-short-name } detected an issue and did not continue to <b>{ $hostname }</b>. The website is either misconfigured or your computer clock is set to the wrong time.
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm = <b>{ $hostname }</b> is most likely a safe site, but a secure connection could not be established. This issue is caused by <b>{ $mitm }</b>, which is either software on your computer or your network.
+
+neterror-corrupted-content-intro = The page you are trying to view cannot be shown because an error in the data transmission was detected.
+neterror-corrupted-content-contact-website = Please contact the website owners to inform them of this problem.
+
+# Do not translate "SSL_ERROR_UNSUPPORTED_VERSION".
+neterror-sslv3-used = Advanced info: SSL_ERROR_UNSUPPORTED_VERSION
+
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+neterror-inadequate-security-intro = <b>{ $hostname }</b> uses security technology that is outdated and vulnerable to attack. An attacker could easily reveal information which you thought to be safe. The website administrator will need to fix the server first before you can visit the site.
+# Do not translate "NS_ERROR_NET_INADEQUATE_SECURITY".
+neterror-inadequate-security-code = Error code: NS_ERROR_NET_INADEQUATE_SECURITY
+
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+neterror-clock-skew-error = Your computer thinks it is { DATETIME($now, dateStyle: "medium") }, which prevents { -brand-short-name } from connecting securely. To visit <b>{ $hostname }</b>, update your computer clock in your system settings to the current date, time, and time zone, and then refresh <b>{ $hostname }</b>.
+
+neterror-network-protocol-error-intro = The page you are trying to view cannot be shown because an error in the network protocol was detected.
+neterror-network-protocol-error-contact-website = Please contact the website owners to inform them of this problem.
+
+certerror-expired-cert-second-para = It’s likely the website’s certificate is expired, which prevents { -brand-short-name } from connecting securely. If you visit this site, attackers could try to steal information like your passwords, emails, or credit card details.
+certerror-expired-cert-sts-second-para = It’s likely the website’s certificate is expired, which prevents { -brand-short-name } from connecting securely.
+
+certerror-what-can-you-do-about-it-title = What can you do about it?
+
+certerror-unknown-issuer-what-can-you-do-about-it-website = The issue is most likely with the website, and there is nothing you can do to resolve it.
+certerror-unknown-issuer-what-can-you-do-about-it-contact-admin = If you are on a corporate network or using antivirus software, you can reach out to the support teams for assistance. You can also notify the website’s administrator about the problem.
+
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+# $now (Date) - The current datetime, to be formatted as a date
+certerror-expired-cert-what-can-you-do-about-it-clock = Your computer clock is set to { DATETIME($now, dateStyle: "medium") }. Make sure your computer is set to the correct date, time, and time zone in your system settings, and then refresh <b>{ $hostname }</b>.
+certerror-expired-cert-what-can-you-do-about-it-contact-website = If your clock is already set to the right time, the website is likely misconfigured, and there is nothing you can do to resolve the issue. You can notify the website’s administrator about the problem.
+
+certerror-bad-cert-domain-what-can-you-do-about-it = The issue is most likely with the website, and there is nothing you can do to resolve it. You can notify the website’s administrator about the problem.
+
+certerror-mitm-what-can-you-do-about-it-antivirus = If your antivirus software includes a feature that scans encrypted connections (often called “web scanning” or “https scanning”), you can disable that feature. If that doesn’t work, you can remove and reinstall the antivirus software.
+certerror-mitm-what-can-you-do-about-it-corporate = If you are on a corporate network, you can contact your IT department.
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack = If you are not familiar with <b>{ $mitm }</b>, then this could be an attack and you should not continue to the site.
+
+# Variables:
+# $mitm (String) - The name of the software intercepting communications between you and the website (or “man in the middle”)
+certerror-mitm-what-can-you-do-about-it-attack-sts = If you are not familiar with <b>{ $mitm }</b>, then this could be an attack, and there is nothing you can do to access the site.
+
+# Variables:
+# $hostname (String) - Hostname of the website to which the user was trying to connect.
+certerror-what-should-i-do-bad-sts-cert-explanation = <b>{ $hostname }</b> has a security policy called HTTP Strict Transport Security (HSTS), which means that { -brand-short-name } can only connect to it securely. You can’t add an exception to visit this site.
diff --git a/toolkit/locales/en-US/toolkit/neterror/nsserrors.ftl b/toolkit/locales/en-US/toolkit/neterror/nsserrors.ftl
new file mode 100644
index 0000000000..56fe64229f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/neterror/nsserrors.ftl
@@ -0,0 +1,348 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# DO NOT ADD THINGS OTHER THAN ERROR MESSAGES HERE.
+# This file gets parsed into a JS dictionary of all known error message ids in
+# gen_aboutneterror_codes.py . If we end up needing fluent attributes or
+# refactoring them in some way, the script will need updating.
+
+psmerr-ssl-disabled = Can’t connect securely because the SSL protocol has been disabled.
+psmerr-ssl2-disabled = Can’t connect securely because the site uses an older, insecure version of the SSL protocol.
+# This is a multi-line message.
+psmerr-hostreusedissuerandserial =
+ You have received an invalid certificate. Please contact the server administrator or email correspondent and give them the following information:
+
+ Your certificate contains the same serial number as another certificate issued by the certificate authority. Please get a new certificate containing a unique serial number.
+
+ssl-error-export-only-server = Unable to communicate securely. Peer does not support high-grade encryption.
+ssl-error-us-only-server = Unable to communicate securely. Peer requires high-grade encryption which is not supported.
+ssl-error-no-cypher-overlap = Cannot communicate securely with peer: no common encryption algorithm(s).
+ssl-error-no-certificate = Unable to find the certificate or key necessary for authentication.
+ssl-error-bad-certificate = Unable to communicate securely with peer: peers’s certificate was rejected.
+ssl-error-bad-client = The server has encountered bad data from the client.
+ssl-error-bad-server = The client has encountered bad data from the server.
+ssl-error-unsupported-certificate-type = Unsupported certificate type.
+ssl-error-unsupported-version = Peer using unsupported version of security protocol.
+ssl-error-wrong-certificate = Client authentication failed: private key in key database does not match public key in certificate database.
+ssl-error-bad-cert-domain = Unable to communicate securely with peer: requested domain name does not match the server’s certificate.
+ssl-error-post-warning = Unrecognized SSL error code.
+ssl-error-ssl2-disabled = Peer only supports SSL version 2, which is locally disabled.
+ssl-error-bad-mac-read = SSL received a record with an incorrect Message Authentication Code.
+ssl-error-bad-mac-alert = SSL peer reports incorrect Message Authentication Code.
+ssl-error-bad-cert-alert = SSL peer cannot verify your certificate.
+ssl-error-revoked-cert-alert = SSL peer rejected your certificate as revoked.
+ssl-error-expired-cert-alert = SSL peer rejected your certificate as expired.
+ssl-error-ssl-disabled = Cannot connect: SSL is disabled.
+ssl-error-fortezza-pqg = Cannot connect: SSL peer is in another FORTEZZA domain.
+ssl-error-unknown-cipher-suite = An unknown SSL cipher suite has been requested.
+ssl-error-no-ciphers-supported = No cipher suites are present and enabled in this program.
+ssl-error-bad-block-padding = SSL received a record with bad block padding.
+ssl-error-rx-record-too-long = SSL received a record that exceeded the maximum permissible length.
+ssl-error-tx-record-too-long = SSL attempted to send a record that exceeded the maximum permissible length.
+ssl-error-rx-malformed-hello-request = SSL received a malformed Hello Request handshake message.
+ssl-error-rx-malformed-client-hello = SSL received a malformed Client Hello handshake message.
+ssl-error-rx-malformed-server-hello = SSL received a malformed Server Hello handshake message.
+ssl-error-rx-malformed-certificate = SSL received a malformed Certificate handshake message.
+ssl-error-rx-malformed-server-key-exch = SSL received a malformed Server Key Exchange handshake message.
+ssl-error-rx-malformed-cert-request = SSL received a malformed Certificate Request handshake message.
+ssl-error-rx-malformed-hello-done = SSL received a malformed Server Hello Done handshake message.
+ssl-error-rx-malformed-cert-verify = SSL received a malformed Certificate Verify handshake message.
+ssl-error-rx-malformed-client-key-exch = SSL received a malformed Client Key Exchange handshake message.
+ssl-error-rx-malformed-finished = SSL received a malformed Finished handshake message.
+ssl-error-rx-malformed-change-cipher = SSL received a malformed Change Cipher Spec record.
+ssl-error-rx-malformed-alert = SSL received a malformed Alert record.
+ssl-error-rx-malformed-handshake = SSL received a malformed Handshake record.
+ssl-error-rx-malformed-application-data = SSL received a malformed Application Data record.
+ssl-error-rx-unexpected-hello-request = SSL received an unexpected Hello Request handshake message.
+ssl-error-rx-unexpected-client-hello = SSL received an unexpected Client Hello handshake message.
+ssl-error-rx-unexpected-server-hello = SSL received an unexpected Server Hello handshake message.
+ssl-error-rx-unexpected-certificate = SSL received an unexpected Certificate handshake message.
+ssl-error-rx-unexpected-server-key-exch = SSL received an unexpected Server Key Exchange handshake message.
+ssl-error-rx-unexpected-cert-request = SSL received an unexpected Certificate Request handshake message.
+ssl-error-rx-unexpected-hello-done = SSL received an unexpected Server Hello Done handshake message.
+ssl-error-rx-unexpected-cert-verify = SSL received an unexpected Certificate Verify handshake message.
+ssl-error-rx-unexpected-client-key-exch = SSL received an unexpected Client Key Exchange handshake message.
+ssl-error-rx-unexpected-finished = SSL received an unexpected Finished handshake message.
+ssl-error-rx-unexpected-change-cipher = SSL received an unexpected Change Cipher Spec record.
+ssl-error-rx-unexpected-alert = SSL received an unexpected Alert record.
+ssl-error-rx-unexpected-handshake = SSL received an unexpected Handshake record.
+ssl-error-rx-unexpected-application-data = SSL received an unexpected Application Data record.
+ssl-error-rx-unknown-record-type = SSL received a record with an unknown content type.
+ssl-error-rx-unknown-handshake = SSL received a handshake message with an unknown message type.
+ssl-error-rx-unknown-alert = SSL received an alert record with an unknown alert description.
+ssl-error-close-notify-alert = SSL peer has closed this connection.
+ssl-error-handshake-unexpected-alert = SSL peer was not expecting a handshake message it received.
+ssl-error-decompression-failure-alert = SSL peer was unable to successfully decompress an SSL record it received.
+ssl-error-handshake-failure-alert = SSL peer was unable to negotiate an acceptable set of security parameters.
+ssl-error-illegal-parameter-alert = SSL peer rejected a handshake message for unacceptable content.
+ssl-error-unsupported-cert-alert = SSL peer does not support certificates of the type it received.
+ssl-error-certificate-unknown-alert = SSL peer had some unspecified issue with the certificate it received.
+ssl-error-generate-random-failure = SSL experienced a failure of its random number generator.
+ssl-error-sign-hashes-failure = Unable to digitally sign data required to verify your certificate.
+ssl-error-extract-public-key-failure = SSL was unable to extract the public key from the peer’s certificate.
+ssl-error-server-key-exchange-failure = Unspecified failure while processing SSL Server Key Exchange handshake.
+ssl-error-client-key-exchange-failure = Unspecified failure while processing SSL Client Key Exchange handshake.
+ssl-error-encryption-failure = Bulk data encryption algorithm failed in selected cipher suite.
+ssl-error-decryption-failure = Bulk data decryption algorithm failed in selected cipher suite.
+ssl-error-socket-write-failure = Attempt to write encrypted data to underlying socket failed.
+ssl-error-md5-digest-failure = MD5 digest function failed.
+ssl-error-sha-digest-failure = SHA-1 digest function failed.
+ssl-error-mac-computation-failure = MAC computation failed.
+ssl-error-sym-key-context-failure = Failure to create Symmetric Key context.
+ssl-error-sym-key-unwrap-failure = Failure to unwrap the Symmetric key in Client Key Exchange message.
+ssl-error-pub-key-size-limit-exceeded = SSL Server attempted to use domestic-grade public key with export cipher suite.
+ssl-error-iv-param-failure = PKCS11 code failed to translate an IV into a param.
+ssl-error-init-cipher-suite-failure = Failed to initialize the selected cipher suite.
+ssl-error-session-key-gen-failure = Client failed to generate session keys for SSL session.
+ssl-error-no-server-key-for-alg = Server has no key for the attempted key exchange algorithm.
+ssl-error-token-insertion-removal = PKCS#11 token was inserted or removed while operation was in progress.
+ssl-error-token-slot-not-found = No PKCS#11 token could be found to do a required operation.
+ssl-error-no-compression-overlap = Cannot communicate securely with peer: no common compression algorithm(s).
+ssl-error-handshake-not-completed = Cannot initiate another SSL handshake until current handshake is complete.
+ssl-error-bad-handshake-hash-value = Received incorrect handshakes hash values from peer.
+ssl-error-cert-kea-mismatch = The certificate provided cannot be used with the selected key exchange algorithm.
+ssl-error-no-trusted-ssl-client-ca = No certificate authority is trusted for SSL client authentication.
+ssl-error-session-not-found = Client’s SSL session ID not found in server’s session cache.
+ssl-error-decryption-failed-alert = Peer was unable to decrypt an SSL record it received.
+ssl-error-record-overflow-alert = Peer received an SSL record that was longer than is permitted.
+ssl-error-unknown-ca-alert = Peer does not recognize and trust the CA that issued your certificate.
+ssl-error-access-denied-alert = Peer received a valid certificate, but access was denied.
+ssl-error-decode-error-alert = Peer could not decode an SSL handshake message.
+ssl-error-decrypt-error-alert = Peer reports failure of signature verification or key exchange.
+ssl-error-export-restriction-alert = Peer reports negotiation not in compliance with export regulations.
+ssl-error-protocol-version-alert = Peer reports incompatible or unsupported protocol version.
+ssl-error-insufficient-security-alert = Server requires ciphers more secure than those supported by client.
+ssl-error-internal-error-alert = Peer reports it experienced an internal error.
+ssl-error-user-canceled-alert = Peer user canceled handshake.
+ssl-error-no-renegotiation-alert = Peer does not permit renegotiation of SSL security parameters.
+ssl-error-server-cache-not-configured = SSL server cache not configured and not disabled for this socket.
+ssl-error-unsupported-extension-alert = SSL peer does not support requested TLS hello extension.
+ssl-error-certificate-unobtainable-alert = SSL peer could not obtain your certificate from the supplied URL.
+ssl-error-unrecognized-name-alert = SSL peer has no certificate for the requested DNS name.
+ssl-error-bad-cert-status-response-alert = SSL peer was unable to get an OCSP response for its certificate.
+ssl-error-bad-cert-hash-value-alert = SSL peer reported bad certificate hash value.
+ssl-error-rx-unexpected-new-session-ticket = SSL received an unexpected New Session Ticket handshake message.
+ssl-error-rx-malformed-new-session-ticket = SSL received a malformed New Session Ticket handshake message.
+ssl-error-decompression-failure = SSL received a compressed record that could not be decompressed.
+ssl-error-renegotiation-not-allowed = Renegotiation is not allowed on this SSL socket.
+ssl-error-unsafe-negotiation = Peer attempted old style (potentially vulnerable) handshake.
+ssl-error-rx-unexpected-uncompressed-record = SSL received an unexpected uncompressed record.
+ssl-error-weak-server-ephemeral-dh-key = SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message.
+ssl-error-next-protocol-data-invalid = SSL received invalid NPN extension data.
+ssl-error-feature-not-supported-for-ssl2 = SSL feature not supported for SSL 2.0 connections.
+ssl-error-feature-not-supported-for-servers = SSL feature not supported for servers.
+ssl-error-feature-not-supported-for-clients = SSL feature not supported for clients.
+ssl-error-invalid-version-range = SSL version range is not valid.
+ssl-error-cipher-disallowed-for-version = SSL peer selected a cipher suite disallowed for the selected protocol version.
+ssl-error-rx-malformed-hello-verify-request = SSL received a malformed Hello Verify Request handshake message.
+ssl-error-rx-unexpected-hello-verify-request = SSL received an unexpected Hello Verify Request handshake message.
+ssl-error-feature-not-supported-for-version = SSL feature not supported for the protocol version.
+ssl-error-rx-unexpected-cert-status = SSL received an unexpected Certificate Status handshake message.
+ssl-error-unsupported-hash-algorithm = Unsupported hash algorithm used by TLS peer.
+ssl-error-digest-failure = Digest function failed.
+ssl-error-incorrect-signature-algorithm = Incorrect signature algorithm specified in a digitally-signed element.
+ssl-error-next-protocol-no-callback = The next protocol negotiation extension was enabled, but the callback was cleared prior to being needed.
+ssl-error-next-protocol-no-protocol = The server supports no protocols that the client advertises in the ALPN extension.
+ssl-error-inappropriate-fallback-alert = The server rejected the handshake because the client downgraded to a lower TLS version than the server supports.
+ssl-error-weak-server-cert-key = The server certificate included a public key that was too weak.
+ssl-error-rx-short-dtls-read = Not enough room in buffer for DTLS record.
+ssl-error-no-supported-signature-algorithm = No supported TLS signature algorithm was configured.
+ssl-error-unsupported-signature-algorithm = The peer used an unsupported combination of signature and hash algorithm.
+ssl-error-missing-extended-master-secret = The peer tried to resume without a correct extended_master_secret extension.
+ssl-error-unexpected-extended-master-secret = The peer tried to resume with an unexpected extended_master_secret extension.
+
+sec-error-io = An I/O error occurred during security authorization.
+sec-error-library-failure = security library failure.
+sec-error-bad-data = security library: received bad data.
+sec-error-output-len = security library: output length error.
+sec-error-input-len = security library has experienced an input length error.
+sec-error-invalid-args = security library: invalid arguments.
+sec-error-invalid-algorithm = security library: invalid algorithm.
+sec-error-invalid-ava = security library: invalid AVA.
+sec-error-invalid-time = Improperly formatted time string.
+sec-error-bad-der = security library: improperly formatted DER-encoded message.
+sec-error-bad-signature = Peer’s certificate has an invalid signature.
+sec-error-expired-certificate = Peer’s Certificate has expired.
+sec-error-revoked-certificate = Peer’s Certificate has been revoked.
+sec-error-unknown-issuer = Peer’s Certificate issuer is not recognized.
+sec-error-bad-key = Peer’s public key is invalid.
+sec-error-bad-password = The security password entered is incorrect.
+sec-error-retry-password = New password entered incorrectly. Please try again.
+sec-error-no-nodelock = security library: no nodelock.
+sec-error-bad-database = security library: bad database.
+sec-error-no-memory = security library: memory allocation failure.
+sec-error-untrusted-issuer = Peer’s certificate issuer has been marked as not trusted by the user.
+sec-error-untrusted-cert = Peer’s certificate has been marked as not trusted by the user.
+sec-error-duplicate-cert = Certificate already exists in your database.
+sec-error-duplicate-cert-name = Downloaded certificate’s name duplicates one already in your database.
+sec-error-adding-cert = Error adding certificate to database.
+sec-error-filing-key = Error refiling the key for this certificate.
+sec-error-no-key = The private key for this certificate cannot be found in key database
+sec-error-cert-valid = This certificate is valid.
+sec-error-cert-not-valid = This certificate is not valid.
+sec-error-cert-no-response = Cert Library: No Response
+sec-error-expired-issuer-certificate = The certificate issuer’s certificate has expired. Check your system date and time.
+sec-error-crl-expired = The CRL for the certificate’s issuer has expired. Update it or check your system date and time.
+sec-error-crl-bad-signature = The CRL for the certificate’s issuer has an invalid signature.
+sec-error-crl-invalid = New CRL has an invalid format.
+sec-error-extension-value-invalid = Certificate extension value is invalid.
+sec-error-extension-not-found = Certificate extension not found.
+sec-error-ca-cert-invalid = Issuer certificate is invalid.
+sec-error-path-len-constraint-invalid = Certificate path length constraint is invalid.
+sec-error-cert-usages-invalid = Certificate usages field is invalid.
+sec-internal-only = **Internal ONLY module**
+sec-error-invalid-key = The key does not support the requested operation.
+sec-error-unknown-critical-extension = Certificate contains unknown critical extension.
+sec-error-old-crl = New CRL is not later than the current one.
+sec-error-no-email-cert = Not encrypted or signed: you do not yet have an email certificate.
+sec-error-no-recipient-certs-query = Not encrypted: you do not have certificates for each of the recipients.
+sec-error-not-a-recipient = Cannot decrypt: you are not a recipient, or matching certificate and private key not found.
+sec-error-pkcs7-keyalg-mismatch = Cannot decrypt: key encryption algorithm does not match your certificate.
+sec-error-pkcs7-bad-signature = Signature verification failed: no signer found, too many signers found, or improper or corrupted data.
+sec-error-unsupported-keyalg = Unsupported or unknown key algorithm.
+sec-error-decryption-disallowed = Cannot decrypt: encrypted using a disallowed algorithm or key size.
+sec-error-no-krl = No KRL for this site’s certificate has been found.
+sec-error-krl-expired = The KRL for this site’s certificate has expired.
+sec-error-krl-bad-signature = The KRL for this site’s certificate has an invalid signature.
+sec-error-revoked-key = The key for this site’s certificate has been revoked.
+sec-error-krl-invalid = New KRL has an invalid format.
+sec-error-need-random = security library: need random data.
+sec-error-no-module = security library: no security module can perform the requested operation.
+sec-error-no-token = The security card or token does not exist, needs to be initialized, or has been removed.
+sec-error-read-only = security library: read-only database.
+sec-error-no-slot-selected = No slot or token was selected.
+sec-error-cert-nickname-collision = A certificate with the same nickname already exists.
+sec-error-key-nickname-collision = A key with the same nickname already exists.
+sec-error-safe-not-created = error while creating safe object
+sec-error-baggage-not-created = error while creating baggage object
+sec-error-bad-export-algorithm = Required algorithm is not allowed.
+sec-error-exporting-certificates = Error attempting to export certificates.
+sec-error-importing-certificates = Error attempting to import certificates.
+sec-error-pkcs12-decoding-pfx = Unable to import. Decoding error. File not valid.
+sec-error-pkcs12-invalid-mac = Unable to import. Invalid MAC. Incorrect password or corrupt file.
+sec-error-pkcs12-unsupported-mac-algorithm = Unable to import. MAC algorithm not supported.
+sec-error-pkcs12-unsupported-transport-mode = Unable to import. Only password integrity and privacy modes supported.
+sec-error-pkcs12-corrupt-pfx-structure = Unable to import. File structure is corrupt.
+sec-error-pkcs12-unsupported-pbe-algorithm = Unable to import. Encryption algorithm not supported.
+sec-error-pkcs12-unsupported-version = Unable to import. File version not supported.
+sec-error-pkcs12-privacy-password-incorrect = Unable to import. Incorrect privacy password.
+sec-error-pkcs12-cert-collision = Unable to import. Same nickname already exists in database.
+sec-error-user-cancelled = The user pressed cancel.
+sec-error-pkcs12-duplicate-data = Not imported, already in database.
+sec-error-message-send-aborted = Message not sent.
+sec-error-inadequate-key-usage = Certificate key usage inadequate for attempted operation.
+sec-error-inadequate-cert-type = Certificate type not approved for application.
+sec-error-cert-addr-mismatch = Address in signing certificate does not match address in message headers.
+sec-error-pkcs12-unable-to-import-key = Unable to import. Error attempting to import private key.
+sec-error-pkcs12-importing-cert-chain = Unable to import. Error attempting to import certificate chain.
+sec-error-pkcs12-unable-to-locate-object-by-name = Unable to export. Unable to locate certificate or key by nickname.
+sec-error-pkcs12-unable-to-export-key = Unable to export. Private Key could not be located and exported.
+sec-error-pkcs12-unable-to-write = Unable to export. Unable to write the export file.
+sec-error-pkcs12-unable-to-read = Unable to import. Unable to read the import file.
+sec-error-pkcs12-key-database-not-initialized = Unable to export. Key database corrupt or deleted.
+sec-error-keygen-fail = Unable to generate public/private key pair.
+sec-error-invalid-password = Password entered is invalid. Please pick a different one.
+sec-error-retry-old-password = Old password entered incorrectly. Please try again.
+sec-error-bad-nickname = Certificate nickname already in use.
+sec-error-not-fortezza-issuer = Peer FORTEZZA chain has a non-FORTEZZA Certificate.
+sec-error-cannot-move-sensitive-key = A sensitive key cannot be moved to the slot where it is needed.
+sec-error-js-invalid-module-name = Invalid module name.
+sec-error-js-invalid-dll = Invalid module path/filename
+sec-error-js-add-mod-failure = Unable to add module
+sec-error-js-del-mod-failure = Unable to delete module
+sec-error-old-krl = New KRL is not later than the current one.
+sec-error-ckl-conflict = New CKL has different issuer than current CKL. Delete current CKL.
+sec-error-cert-not-in-name-space = The Certifying Authority for this certificate is not permitted to issue a certificate with this name.
+sec-error-krl-not-yet-valid = The key revocation list for this certificate is not yet valid.
+sec-error-crl-not-yet-valid = The certificate revocation list for this certificate is not yet valid.
+sec-error-unknown-cert = The requested certificate could not be found.
+sec-error-unknown-signer = The signer’s certificate could not be found.
+sec-error-cert-bad-access-location = The location for the certificate status server has invalid format.
+sec-error-ocsp-unknown-response-type = The OCSP response cannot be fully decoded; it is of an unknown type.
+sec-error-ocsp-bad-http-response = The OCSP server returned unexpected/invalid HTTP data.
+sec-error-ocsp-malformed-request = The OCSP server found the request to be corrupted or improperly formed.
+sec-error-ocsp-server-error = The OCSP server experienced an internal error.
+sec-error-ocsp-try-server-later = The OCSP server suggests trying again later.
+sec-error-ocsp-request-needs-sig = The OCSP server requires a signature on this request.
+sec-error-ocsp-unauthorized-request = The OCSP server has refused this request as unauthorized.
+sec-error-ocsp-unknown-response-status = The OCSP server returned an unrecognizable status.
+sec-error-ocsp-unknown-cert = The OCSP server has no status for the certificate.
+sec-error-ocsp-not-enabled = You must enable OCSP before performing this operation.
+sec-error-ocsp-no-default-responder = You must set the OCSP default responder before performing this operation.
+sec-error-ocsp-malformed-response = The response from the OCSP server was corrupted or improperly formed.
+sec-error-ocsp-unauthorized-response = The signer of the OCSP response is not authorized to give status for this certificate.
+sec-error-ocsp-future-response = The OCSP response is not yet valid (contains a date in the future).
+sec-error-ocsp-old-response = The OCSP response contains out-of-date information.
+sec-error-digest-not-found = The CMS or PKCS #7 Digest was not found in signed message.
+sec-error-unsupported-message-type = The CMS or PKCS #7 Message type is unsupported.
+sec-error-module-stuck = PKCS #11 module could not be removed because it is still in use.
+sec-error-bad-template = Could not decode ASN.1 data. Specified template was invalid.
+sec-error-crl-not-found = No matching CRL was found.
+sec-error-reused-issuer-and-serial = You are attempting to import a cert with the same issuer/serial as an existing cert, but that is not the same cert.
+sec-error-busy = NSS could not shutdown. Objects are still in use.
+sec-error-extra-input = DER-encoded message contained extra unused data.
+sec-error-unsupported-elliptic-curve = Unsupported elliptic curve.
+sec-error-unsupported-ec-point-form = Unsupported elliptic curve point form.
+sec-error-unrecognized-oid = Unrecognized Object Identifier.
+sec-error-ocsp-invalid-signing-cert = Invalid OCSP signing certificate in OCSP response.
+sec-error-revoked-certificate-crl = Certificate is revoked in issuer’s certificate revocation list.
+sec-error-revoked-certificate-ocsp = Issuer’s OCSP responder reports certificate is revoked.
+sec-error-crl-invalid-version = Issuer’s Certificate Revocation List has an unknown version number.
+sec-error-crl-v1-critical-extension = Issuer’s V1 Certificate Revocation List has a critical extension.
+sec-error-crl-unknown-critical-extension = Issuer’s V2 Certificate Revocation List has an unknown critical extension.
+sec-error-unknown-object-type = Unknown object type specified.
+sec-error-incompatible-pkcs11 = PKCS #11 driver violates the spec in an incompatible way.
+sec-error-no-event = No new slot event is available at this time.
+sec-error-crl-already-exists = CRL already exists.
+sec-error-not-initialized = NSS is not initialized.
+sec-error-token-not-logged-in = The operation failed because the PKCS#11 token is not logged in.
+sec-error-ocsp-responder-cert-invalid = Configured OCSP responder’s certificate is invalid.
+sec-error-ocsp-bad-signature = OCSP response has an invalid signature.
+sec-error-out-of-search-limits = Cert validation search is out of search limits
+sec-error-invalid-policy-mapping = Policy mapping contains anypolicy
+sec-error-policy-validation-failed = Cert chain fails policy validation
+sec-error-unknown-aia-location-type = Unknown location type in cert AIA extension
+sec-error-bad-http-response = Server returned bad HTTP response
+sec-error-bad-ldap-response = Server returned bad LDAP response
+sec-error-failed-to-encode-data = Failed to encode data with ASN1 encoder
+sec-error-bad-info-access-location = Bad information access location in cert extension
+sec-error-libpkix-internal = Libpkix internal error occurred during cert validation.
+sec-error-pkcs11-general-error = A PKCS #11 module returned CKR_GENERAL_ERROR, indicating that an unrecoverable error has occurred.
+sec-error-pkcs11-function-failed = A PKCS #11 module returned CKR_FUNCTION_FAILED, indicating that the requested function could not be performed. Trying the same operation again might succeed.
+sec-error-pkcs11-device-error = A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot.
+sec-error-bad-info-access-method = Unknown information access method in certificate extension.
+sec-error-crl-import-failed = Error attempting to import a CRL.
+sec-error-expired-password = The password expired.
+sec-error-locked-password = The password is locked.
+sec-error-unknown-pkcs11-error = Unknown PKCS #11 error.
+sec-error-bad-crl-dp-url = Invalid or unsupported URL in CRL distribution point name.
+sec-error-cert-signature-algorithm-disabled = The certificate was signed using a signature algorithm that is disabled because it is not secure.
+
+mozilla-pkix-error-key-pinning-failure = The server uses key pinning (HPKP) but no trusted certificate chain could be constructed that matches the pinset. Key pinning violations cannot be overridden.
+mozilla-pkix-error-ca-cert-used-as-end-entity = The server uses a certificate with a basic constraints extension identifying it as a certificate authority. For a properly-issued certificate, this should not be the case.
+mozilla-pkix-error-inadequate-key-size = The server presented a certificate with a key size that is too small to establish a secure connection.
+mozilla-pkix-error-v1-cert-used-as-ca = An X.509 version 1 certificate that is not a trust anchor was used to issue the server’s certificate. X.509 version 1 certificates are deprecated and should not be used to sign other certificates.
+mozilla-pkix-error-not-yet-valid-certificate = The server presented a certificate that is not yet valid.
+mozilla-pkix-error-not-yet-valid-issuer-certificate = A certificate that is not yet valid was used to issue the server’s certificate.
+mozilla-pkix-error-signature-algorithm-mismatch = The signature algorithm in the signature field of the certificate does not match the algorithm in its signatureAlgorithm field.
+mozilla-pkix-error-ocsp-response-for-cert-missing = The OCSP response does not include a status for the certificate being verified.
+mozilla-pkix-error-validity-too-long = The server presented a certificate that is valid for too long.
+mozilla-pkix-error-required-tls-feature-missing = A required TLS feature is missing.
+mozilla-pkix-error-invalid-integer-encoding = The server presented a certificate that contains an invalid encoding of an integer. Common causes include negative serial numbers, negative RSA moduli, and encodings that are longer than necessary.
+mozilla-pkix-error-empty-issuer-name = The server presented a certificate with an empty issuer distinguished name.
+mozilla-pkix-error-additional-policy-constraint-failed = An additional policy constraint failed when validating this certificate.
+mozilla-pkix-error-self-signed-cert = The certificate is not trusted because it is self-signed.
+
+xp-java-remove-principal-error = Couldn’t remove the principal
+xp-java-delete-privilege-error = Couldn’t delete the privilege
+xp-java-cert-not-exists-error = This principal doesn’t have a certificate
+
+xp-sec-fortezza-bad-card = Fortezza card has not been properly initialized. Please remove it and return it to your issuer.
+xp-sec-fortezza-no-card = No Fortezza cards Found
+xp-sec-fortezza-none-selected = No Fortezza card selected
+xp-sec-fortezza-more-info = Please select a personality to get more info on
+xp-sec-fortezza-person-not-found = Personality not found
+xp-sec-fortezza-no-more-info = No more information on that personality
+xp-sec-fortezza-bad-pin = Invalid Pin
+xp-sec-fortezza-person-error = Couldn’t initialize Fortezza personalities.
diff --git a/toolkit/locales/en-US/toolkit/payments/payments.ftl b/toolkit/locales/en-US/toolkit/payments/payments.ftl
new file mode 100644
index 0000000000..c806997f40
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/payments/payments.ftl
@@ -0,0 +1,52 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# This value isn't used directly, but is defined to avoid duplication
+# in the "credit-card-label-*" strings.
+#
+# Variables:
+# $month (String): Numeric month the credit card expires
+# $year (String): Four-digit year the credit card expires
+credit-card-expiration = Expires on { $month }/{ $year }
+
+## These labels serve as a description of a credit card.
+## The description must include a credit card number, and may optionally
+## include a cardholder name, an expiration date, or both, so we have
+## four variations.
+
+# Label for a credit card with a number only
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-2 = { $number }
+ .aria-label = { $type } { credit-card-label-number-2 }
+
+# Label for a credit card with a number and name
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-2 = { $number }, { $name }
+ .aria-label = { $type } { credit-card-label-number-name-2 }
+
+# Label for a credit card with a number and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $type (String): Credit card type
+credit-card-label-number-expiration-2 = { $number }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-expiration-2 }
+
+# Label for a credit card with a number, name, and expiration date
+#
+# Variables:
+# $number (String): Partially-redacted credit card number
+# $name (String): Cardholder name
+# $type (String): Credit card type
+credit-card-label-number-name-expiration-2 =
+ { $number }, { $name }, { credit-card-expiration }
+ .aria-label = { $type } { credit-card-label-number-name-expiration-2 }
diff --git a/toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl b/toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl
new file mode 100644
index 0000000000..ff13490fb6
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl
@@ -0,0 +1,71 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pictureinpicture-player-title = Picture-in-Picture
+
+## Variables:
+## $shortcut (String) - Keyboard shortcut to execute the command.
+
+pictureinpicture-pause-btn =
+ .aria-label = Pause
+ .tooltip = Pause (Spacebar)
+pictureinpicture-play-btn =
+ .aria-label = Play
+ .tooltip = Play (Spacebar)
+
+pictureinpicture-mute-btn =
+ .aria-label = Mute
+ .tooltip = Mute ({ $shortcut })
+pictureinpicture-unmute-btn =
+ .aria-label = Unmute
+ .tooltip = Unmute ({ $shortcut })
+
+pictureinpicture-unpip-btn =
+ .aria-label = Send back to tab
+ .tooltip = Back to tab
+
+pictureinpicture-close-btn =
+ .aria-label = Close
+ .tooltip = Close ({ $shortcut })
+
+pictureinpicture-subtitles-btn =
+ .aria-label = Subtitles
+ .tooltip = Subtitles
+
+pictureinpicture-fullscreen-btn2 =
+ .aria-label = Fullscreen
+ .tooltip = Fullscreen (double-click or { $shortcut })
+
+pictureinpicture-exit-fullscreen-btn2 =
+ .aria-label = Exit fullscreen
+ .tooltip = Exit fullscreen (double-click or { $shortcut })
+
+##
+
+# Keyboard shortcut to toggle fullscreen mode when Picture-in-Picture is open.
+pictureinpicture-toggle-fullscreen-shortcut =
+ .key = F
+
+pictureinpicture-seekbackward-btn =
+ .aria-label = Backward
+ .tooltip = Backward (←)
+
+pictureinpicture-seekforward-btn =
+ .aria-label = Forward
+ .tooltip = Forward (→)
+
+# This string is never displayed on the window. Is intended to be announced by
+# a screen reader whenever a user opens the subtitles settings panel
+# after selecting the subtitles button.
+pictureinpicture-subtitles-panel-accessible = Subtitles settings
+
+pictureinpicture-subtitles-label = Subtitles
+
+pictureinpicture-font-size-label = Font size
+
+pictureinpicture-font-size-small = Small
+
+pictureinpicture-font-size-medium = Medium
+
+pictureinpicture-font-size-large = Large
diff --git a/toolkit/locales/en-US/toolkit/preferences/preferences.ftl b/toolkit/locales/en-US/toolkit/preferences/preferences.ftl
new file mode 100644
index 0000000000..e9fec6800b
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/preferences/preferences.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+password-not-set =
+ .value = (not set)
+
+failed-pp-change = Unable to change Primary Password.
+incorrect-pp = You did not enter the correct current Primary Password. Please try again.
+pp-change-ok = Primary Password successfully changed.
+
+settings-pp-erased-ok = You have deleted your Primary Password. Stored passwords and certificate private keys managed by { -brand-short-name } will not be protected.
+settings-pp-not-wanted = Warning! You have decided not to use a Primary Password. Stored passwords and certificate private keys managed by { -brand-short-name } will not be protected.
+
+pp-change2empty-in-fips-mode = You are currently in FIPS mode. FIPS requires a non-empty Primary Password.
+pw-change-success-title = Password Change Succeeded
+pw-change-failed-title = Password Change Failed
+pw-remove-button =
+ .label = Remove
+
+primary-password-dialog =
+ .title = Primary Password
+set-password-old-password = Current password:
+set-password-new-password = Enter new password:
+set-password-reenter-password = Re-enter password:
+set-password-meter = Password quality meter
+set-password-meter-loading = Loading
+primary-password-admin = Your administrator requires that you have a Primary Password set in order to save logins and passwords.
+primary-password-description = A Primary Password is used to protect some sensitive information, like logins and passwords, on this device. If you create a Primary Password you will be asked to enter it once per session when { -brand-short-name } retrieves saved information protected by the password.
+primary-password-warning = Please make sure you remember the Primary Password you have set. If you forget your Primary Password, you will be unable to access any of the information protected by it on this device.
+
+remove-primary-password =
+ .title = Remove Primary Password
+remove-info =
+ .value = You must enter your current password to proceed:
+remove-primary-password-warning1 = Your Primary Password is used to protect sensitive information like logins and passwords.
+remove-primary-password-warning2 = If you remove your Primary Password your information will not be protected if your computer is compromised.
+remove-password-old-password =
+ .value = Current password:
diff --git a/toolkit/locales/en-US/toolkit/printing/printDialogs.ftl b/toolkit/locales/en-US/toolkit/printing/printDialogs.ftl
new file mode 100644
index 0000000000..6af0b01799
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/printing/printDialogs.ftl
@@ -0,0 +1,112 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+print-setup =
+ .title = Page Setup
+custom-prompt-title = Custom…
+custom-prompt-prompt = Enter your custom header/footer text
+basic-tab =
+ .label = Format & Options
+advanced-tab =
+ .label = Margins & Header/Footer
+format-group-label =
+ .value = Format
+orientation-label =
+ .value = Orientation:
+portrait =
+ .label = Portrait
+ .accesskey = P
+landscape =
+ .label = Landscape
+ .accesskey = L
+scale =
+ .label = Scale:
+ .accesskey = S
+scale-percent =
+ .value = %
+shrink-to-fit =
+ .label = Shrink to fit Page Width
+ .accesskey = W
+options-group-label =
+ .value = Options
+print-bg =
+ .label = Print Background (colors & images)
+ .accesskey = B
+margin-group-label-inches =
+ .value = Margins (inches)
+margin-group-label-metric =
+ .value = Margins (millimeters)
+margin-top =
+ .value = Top:
+ .accesskey = T
+margin-top-invisible =
+ .value = Top:
+margin-bottom =
+ .value = Bottom:
+ .accesskey = B
+margin-bottom-invisible =
+ .value = Bottom:
+margin-left =
+ .value = Left:
+ .accesskey = L
+margin-left-invisible =
+ .value = Left:
+margin-right =
+ .value = Right:
+ .accesskey = R
+margin-right-invisible =
+ .value = Right:
+header-footer-label =
+ .value = Headers & Footers
+hf-left-label =
+ .value = Left:
+hf-center-label =
+ .value = Center:
+hf-right-label =
+ .value = Right:
+header-left-tip =
+ .tooltiptext = Left header
+header-center-tip =
+ .tooltiptext = Center header
+header-right-tip =
+ .tooltiptext = Right header
+footer-left-tip =
+ .tooltiptext = Left footer
+footer-center-tip =
+ .tooltiptext = Center footer
+footer-right-tip =
+ .tooltiptext = Right footer
+hf-blank =
+ .label = --blank--
+hf-title =
+ .label = Title
+hf-url =
+ .label = URL
+hf-date-and-time =
+ .label = Date/Time
+hf-page =
+ .label = Page #
+hf-page-and-total =
+ .label = Page # of #
+hf-custom =
+ .label = Custom…
+print-preview-window =
+ .title = Print Preview
+print-title =
+ .value = Title:
+print-preparing =
+ .value = Preparing…
+print-progress =
+ .value = Progress:
+print-window =
+ .title = Printing
+print-complete =
+ .value = Printing is Completed.
+
+# Variables
+# $percent (integer) - Number of printed percentage
+print-percent =
+ .value = { $percent }%
+dialog-cancel-label = Cancel
+dialog-close-label = Close
diff --git a/toolkit/locales/en-US/toolkit/printing/printPreview.ftl b/toolkit/locales/en-US/toolkit/printing/printPreview.ftl
new file mode 100644
index 0000000000..e0a275de5e
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/printing/printPreview.ftl
@@ -0,0 +1,72 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printpreview-simplify-page-checkbox =
+ .label = Simplify Page
+ .accesskey = i
+ .tooltiptext = This page cannot be automatically simplified
+printpreview-simplify-page-checkbox-enabled =
+ .label = { printpreview-simplify-page-checkbox.label }
+ .accesskey = { printpreview-simplify-page-checkbox.accesskey }
+ .tooltiptext = Change layout for easier reading
+printpreview-close =
+ .label = Close
+ .accesskey = C
+printpreview-portrait =
+ .label = Portrait
+ .accesskey = o
+printpreview-landscape =
+ .label = Landscape
+ .accesskey = L
+printpreview-scale =
+ .value = Scale:
+ .accesskey = S
+printpreview-shrink-to-fit =
+ .label = Shrink To Fit
+printpreview-custom =
+ .label = Custom…
+printpreview-print =
+ .label = Print…
+ .accesskey = P
+printpreview-of =
+ .value = of
+printpreview-custom-scale-prompt-title = Custom Scale
+printpreview-page-setup =
+ .label = Page Setup…
+ .accesskey = u
+printpreview-page =
+ .value = Page:
+ .accesskey = a
+
+# Variables
+# $sheetNum (integer) - The current sheet number
+# $sheetCount (integer) - The total number of sheets to print
+printpreview-sheet-of-sheets = { $sheetNum } of { $sheetCount }
+
+## Variables
+## $percent (integer) - menuitem percent label
+## $arrow (String) - UTF-8 arrow character for navigation buttons
+
+printpreview-percentage-value =
+ .label = { $percent }%
+printpreview-homearrow =
+ .label = { $arrow }
+ .tooltiptext = First page
+printpreview-previousarrow =
+ .label = { $arrow }
+ .tooltiptext = Previous page
+printpreview-nextarrow =
+ .label = { $arrow }
+ .tooltiptext = Next page
+printpreview-endarrow =
+ .label = { $arrow }
+ .tooltiptext = Last page
+printpreview-homearrow-button =
+ .title = First page
+printpreview-previousarrow-button =
+ .title = Previous page
+printpreview-nextarrow-button =
+ .title = Next page
+printpreview-endarrow-button =
+ .title = Last page
diff --git a/toolkit/locales/en-US/toolkit/printing/printUI.ftl b/toolkit/locales/en-US/toolkit/printing/printUI.ftl
new file mode 100644
index 0000000000..09f4780fb7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/printing/printUI.ftl
@@ -0,0 +1,148 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+printui-title = Print
+# Dialog title to prompt the user for a filename to save print to PDF.
+printui-save-to-pdf-title = Save As
+
+# Variables
+# $sheetCount (integer) - Number of paper sheets
+printui-sheets-count =
+ { $sheetCount ->
+ [one] { $sheetCount } sheet of paper
+ *[other] { $sheetCount } sheets of paper
+ }
+
+printui-page-range-all = All
+printui-page-range-current = Current
+printui-page-range-odd = Odd
+printui-page-range-even = Even
+printui-page-range-custom = Custom
+printui-page-range-label = Pages
+printui-page-range-picker =
+ .aria-label = Pick page range
+printui-page-custom-range-input =
+ .aria-label = Enter custom page range
+ .placeholder = e.g. 2-6, 9, 12-16
+
+# Section title for the number of copies to print
+printui-copies-label = Copies
+
+printui-orientation = Orientation
+printui-landscape = Landscape
+printui-portrait = Portrait
+
+# Section title for the printer or destination device to target
+printui-destination-label = Destination
+printui-destination-pdf-label = Save to PDF
+
+printui-more-settings = More settings
+printui-less-settings = Fewer settings
+
+printui-paper-size-label = Paper size
+
+# Section title (noun) for the print scaling options
+printui-scale = Scale
+printui-scale-fit-to-page-width = Fit to page width
+# Label for input control where user can set the scale percentage
+printui-scale-pcent = Scale
+
+# Section title (noun) for the two-sided print options
+printui-two-sided-printing = Two-sided printing
+printui-two-sided-printing-off = Off
+# Flip the sheet as if it were bound along its long edge.
+printui-two-sided-printing-long-edge = Flip on long edge
+# Flip the sheet as if it were bound along its short edge.
+printui-two-sided-printing-short-edge = Flip on short edge
+
+# Section title for miscellaneous print options
+printui-options = Options
+printui-headers-footers-checkbox = Print headers and footers
+printui-backgrounds-checkbox = Print backgrounds
+
+## The "Format" section, select a version of the website to print. Radio
+## options to select between the original page, selected text only, or a version
+## where the page is processed with "Reader View".
+
+# The section title.
+printui-source-label = Format
+# Option for printing the original page.
+printui-source-radio = Original
+# Option for printing just the content a user selected prior to printing.
+printui-selection-radio = Selection
+# Option for "simplifying" the page by printing the Reader View version.
+printui-simplify-page-radio = Simplified
+
+##
+
+printui-color-mode-label = Color mode
+printui-color-mode-color = Color
+printui-color-mode-bw = Black and white
+
+printui-margins = Margins
+printui-margins-default = Default
+printui-margins-min = Minimum
+printui-margins-none = None
+printui-margins-custom-inches = Custom (inches)
+printui-margins-custom-mm = Custom (mm)
+printui-margins-custom-top = Top
+printui-margins-custom-top-inches = Top (inches)
+printui-margins-custom-top-mm = Top (mm)
+printui-margins-custom-bottom = Bottom
+printui-margins-custom-bottom-inches = Bottom (inches)
+printui-margins-custom-bottom-mm = Bottom (mm)
+printui-margins-custom-left = Left
+printui-margins-custom-left-inches = Left (inches)
+printui-margins-custom-left-mm = Left (mm)
+printui-margins-custom-right = Right
+printui-margins-custom-right-inches = Right (inches)
+printui-margins-custom-right-mm = Right (mm)
+
+printui-system-dialog-link = Print using the system dialog…
+
+printui-primary-button = Print
+printui-primary-button-save = Save
+printui-cancel-button = Cancel
+printui-close-button = Close
+
+printui-loading = Preparing Preview
+
+# Reported by screen readers and other accessibility tools to indicate that
+# the print preview has focus.
+printui-preview-label =
+ .aria-label = Print Preview
+
+printui-pages-per-sheet = Pages per sheet
+
+# This is shown next to the Print button with an indefinite loading spinner
+# when the user prints a page and it is being sent to the printer.
+printui-print-progress-indicator = Printing…
+printui-print-progress-indicator-saving = Saving…
+
+## Paper sizes that may be supported by the Save to PDF destination:
+
+printui-paper-a5 = A5
+printui-paper-a4 = A4
+printui-paper-a3 = A3
+printui-paper-a2 = A2
+printui-paper-a1 = A1
+printui-paper-a0 = A0
+printui-paper-b5 = B5
+printui-paper-b4 = B4
+printui-paper-jis-b5 = JIS-B5
+printui-paper-jis-b4 = JIS-B4
+printui-paper-letter = US Letter
+printui-paper-legal = US Legal
+printui-paper-tabloid = Tabloid
+
+## Error messages shown when a user has an invalid input
+
+printui-error-invalid-scale = Scale must be a number between 10 and 200.
+printui-error-invalid-margin = Please enter a valid margin for the selected paper size.
+printui-error-invalid-copies = Copies must be a number between 1 and 10000.
+
+# Variables
+# $numPages (integer) - Number of pages
+printui-error-invalid-range = Range must be a number between 1 and { $numPages }.
+printui-error-invalid-start-overflow = The “from” page number must be smaller than the “to” page number.
diff --git a/toolkit/locales/en-US/toolkit/updates/backgroundupdate.ftl b/toolkit/locales/en-US/toolkit/updates/backgroundupdate.ftl
new file mode 100644
index 0000000000..4a4335656c
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/updates/backgroundupdate.ftl
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+backgroundupdate-task-description = The Background Update task checks for updates to { -brand-short-name } when { -brand-short-name } is not running. This task is installed automatically by { -brand-short-name }, and is reinstalled when { -brand-short-name } runs. To disable this task, update the browser settings or the { -brand-short-name } enterprise policy setting “BackgroundAppUpdate”.
diff --git a/toolkit/locales/en-US/toolkit/updates/elevation.ftl b/toolkit/locales/en-US/toolkit/updates/elevation.ftl
new file mode 100644
index 0000000000..cff601a3db
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/updates/elevation.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# This is temporary until bug 1521632 is fixed
+
+elevation-update-wizard =
+ .title = Software Update
+elevation-details-link-label =
+ .value = Details
+elevation-error-manual =
+ You can update { -brand-short-name } manually by visiting this link
+ and downloading the latest version:
+elevation-finished-page = Update Ready to Install
+elevation-finished-background-page =
+ A security and stability update for { -brand-short-name } has been
+ downloaded and is ready to be installed.
+elevation-finished-background = Update:
+elevation-more-elevated =
+ This update requires administrator privileges. The update will be
+ installed the next time { -brand-short-name } starts. You can restart
+ { -brand-short-name } now, continue working and restart later, or decline this
+ update.
diff --git a/toolkit/locales/en-US/toolkit/updates/history.ftl b/toolkit/locales/en-US/toolkit/updates/history.ftl
new file mode 100644
index 0000000000..4d94cdc1a9
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/updates/history.ftl
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+history-title = Update History
+history-intro = The following updates have been installed
+
+close-button-label =
+ .buttonlabelcancel = Close
+ .title = Update History
+
+no-updates-label = No updates installed yet
+name-header = Update Name
+date-header = Install Date
+type-header = Type
+state-header = State
+
+# Used to display update history
+#
+# Variables:
+# $name (string) - Name of the update
+# $buildID (string) - Build identifier from the local updates.xml
+update-full-build-name = { $name } ({ $buildID })
+
+update-details = Details
+
+# Variables:
+# $date (string) - Date the last update was installed
+update-installed-on = Installed on: { $date }
+
+# Variables:
+# $status (string) - Status of the last update
+update-status = Status: { $status }
diff --git a/toolkit/locales/gen_multilocale.py b/toolkit/locales/gen_multilocale.py
new file mode 100644
index 0000000000..1d151b68bf
--- /dev/null
+++ b/toolkit/locales/gen_multilocale.py
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import sys
+
+
+def main(output, *locales):
+ locales = list(locales)
+ if "en-US" not in locales:
+ locales.append("en-US")
+
+ print(",".join(locales), file=output)
+
+
+if __name__ == "__main__":
+ main(sys.stdout, *sys.argv[1:])
diff --git a/toolkit/locales/generate_locale_ini.py b/toolkit/locales/generate_locale_ini.py
new file mode 100644
index 0000000000..f00486c07e
--- /dev/null
+++ b/toolkit/locales/generate_locale_ini.py
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+def main(output, locale=None):
+ assert locale is not None
+ output.write("[locale]\n")
+ output.write("locale={}\n".format(locale))
diff --git a/toolkit/locales/generate_update_locale.py b/toolkit/locales/generate_update_locale.py
new file mode 100644
index 0000000000..30d492a272
--- /dev/null
+++ b/toolkit/locales/generate_update_locale.py
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Generate update.locale, which simply contains the name of the current locale.
+
+
+def main(output, locale=None):
+ assert locale is not None
+ # update.locale is a trivial file but let's be unicode aware anyway.
+ print(locale, file=output)
diff --git a/toolkit/locales/jar.mn b/toolkit/locales/jar.mn
new file mode 100644
index 0000000000..1f2189fd35
--- /dev/null
+++ b/toolkit/locales/jar.mn
@@ -0,0 +1,68 @@
+#filter substitution
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+[localization] @AB_CD@.jar:
+ crashreporter (%crashreporter/**/*.ftl)
+ services (%services/**/*.ftl)
+ toolkit (%toolkit/**/*.ftl)
+ locales-preview/aboutTranslations.ftl (../locales-preview/aboutTranslations.ftl)
+#ifdef MOZ_LAYOUT_DEBUGGER
+ layoutdebug/layoutdebug.ftl (../../layout/tools/layout-debug/ui/content/layoutdebug.ftl)
+#endif
+
+@AB_CD@.jar:
+% locale global @AB_CD@ %locale/@AB_CD@/global/
+ locale/@AB_CD@/global/aboutStudies.properties (%chrome/global/aboutStudies.properties)
+ locale/@AB_CD@/global/autocomplete.properties (%chrome/global/autocomplete.properties)
+ locale/@AB_CD@/global/browser.properties (%chrome/global/browser.properties)
+ locale/@AB_CD@/global/commonDialogs.properties (%chrome/global/commonDialogs.properties)
+ locale/@AB_CD@/global/contentAreaCommands.properties (%chrome/global/contentAreaCommands.properties)
+ locale/@AB_CD@/global/extensions.properties (%chrome/global/extensions.properties)
+ locale/@AB_CD@/global/fallbackMenubar.properties (%chrome/global/fallbackMenubar.properties)
+ locale/@AB_CD@/global/filepicker.properties (%chrome/global/filepicker.properties)
+ locale/@AB_CD@/global/intl.css (%chrome/global/intl.css)
+ locale/@AB_CD@/global/intl.properties (%chrome/global/intl.properties)
+ locale/@AB_CD@/global/keys.properties (%chrome/global/keys.properties)
+#ifndef MOZ_FENNEC
+ locale/@AB_CD@/global/narrate.properties (%chrome/global/narrate.properties)
+#endif
+#if !defined(XP_WIN) && !defined(MOZ_FENNEC)
+ locale/@AB_CD@/global/printdialog.properties (%chrome/global/printdialog.properties)
+#endif
+ locale/@AB_CD@/global/resetProfile.properties (%chrome/global/resetProfile.properties)
+ locale/@AB_CD@/global/dialog.properties (%chrome/global/dialog.properties)
+ locale/@AB_CD@/global/viewSource.properties (%chrome/global/viewSource.properties)
+ locale/@AB_CD@/global/wizard.properties (%chrome/global/wizard.properties)
+% locale global-platform @AB_CD@ %locale/@AB_CD@/global-platform/unix/ os=LikeUnix os=Android
+% locale global-platform @AB_CD@ %locale/@AB_CD@/global-platform/mac/ os=Darwin
+% locale global-platform @AB_CD@ %locale/@AB_CD@/global-platform/win/ os=WINNT
+ locale/@AB_CD@/global-platform/mac/platformKeys.properties (%chrome/global-platform/mac/platformKeys.properties)
+ locale/@AB_CD@/global-platform/unix/platformKeys.properties (%chrome/global-platform/unix/platformKeys.properties)
+ locale/@AB_CD@/global-platform/win/platformKeys.properties (%chrome/global-platform/win/platformKeys.properties)
+ locale/@AB_CD@/global-platform/mac/intl.properties (%chrome/global-platform/mac/intl.properties)
+ locale/@AB_CD@/global-platform/unix/intl.properties (%chrome/global-platform/unix/intl.properties)
+ locale/@AB_CD@/global-platform/win/intl.properties (%chrome/global-platform/win/intl.properties)
+% locale mozapps @AB_CD@ %locale/@AB_CD@/mozapps/
+ locale/@AB_CD@/mozapps/downloads/unknownContentType.properties (%chrome/mozapps/downloads/unknownContentType.properties)
+ locale/@AB_CD@/mozapps/downloads/downloads.properties (%chrome/mozapps/downloads/downloads.properties)
+ locale/@AB_CD@/mozapps/profile/profileSelection.properties (%chrome/mozapps/profile/profileSelection.properties)
+#ifndef MOZ_FENNEC
+ locale/@AB_CD@/mozapps/update/updates.properties (%chrome/mozapps/update/updates.properties)
+#endif
+% locale alerts @AB_CD@ %locale/@AB_CD@/alerts/
+ locale/@AB_CD@/alerts/alert.properties (%chrome/alerts/alert.properties)
+% locale passwordmgr @AB_CD@ %locale/@AB_CD@/passwordmgr/
+ locale/@AB_CD@/passwordmgr/passwordmgr.properties (%chrome/passwordmgr/passwordmgr.properties)
+% locale autoconfig @AB_CD@ %locale/@AB_CD@/autoconfig/
+ locale/@AB_CD@/autoconfig/autoconfig.properties (%chrome/autoconfig/autoconfig.properties)
+% locale places @AB_CD@ %locale/@AB_CD@/places/
+ locale/@AB_CD@/places/places.properties (%chrome/places/places.properties)
+
+# Pick up l10n files for pdfviewer from browser
+# See https://bugzilla.mozilla.org/show_bug.cgi?id=1618465
+relativesrcdir browser/locales:
+% locale pdf.js @AB_CD@ %locale/pdfviewer/
+ locale/pdfviewer/viewer.properties (%pdfviewer/viewer.properties)
+ locale/pdfviewer/chrome.properties (%pdfviewer/chrome.properties)
diff --git a/toolkit/locales/l10n.ini b/toolkit/locales/l10n.ini
new file mode 100644
index 0000000000..076ed499e1
--- /dev/null
+++ b/toolkit/locales/l10n.ini
@@ -0,0 +1,13 @@
+; This Source Code Form is subject to the terms of the Mozilla Public
+; License, v. 2.0. If a copy of the MPL was not distributed with this
+; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+[general]
+depth = ../..
+
+[compare]
+dirs = netwerk
+ dom
+ toolkit
+ security/manager
+ devtools/shared
diff --git a/toolkit/locales/l10n.mk b/toolkit/locales/l10n.mk
new file mode 100644
index 0000000000..574b206469
--- /dev/null
+++ b/toolkit/locales/l10n.mk
@@ -0,0 +1,242 @@
+# vim:set ts=8 sw=8 sts=8 noet:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+# Shared makefile that can be used to easily kick off l10n builds
+# of Mozilla applications.
+# This makefile should be included, and then assumes that the including
+# makefile defines the following targets:
+# l10n-%
+# This target should call into the various l10n targets that this
+# application depends on.
+# installer-%
+# This target should list all required targets, a typical rule would be
+# installers-%: clobber-% langpack-% repackage-zip-%
+# @echo "repackaging done"
+# to initially clobber the locale staging area, and then to build the
+# language pack and zip package.
+# Other targets like windows installers might be listed, too, and should
+# be defined in the including makefile.
+# The installer-% targets should not set AB_CD, so that the unpackaging
+# step finds the original package.
+# The including makefile should provide values for the variables
+# MOZ_APP_VERSION and MOZ_LANGPACK_EID.
+
+
+run_for_effects := $(shell if test ! -d $(DIST); then $(NSINSTALL) -D $(DIST); fi)
+
+# This makefile uses variable overrides from the l10n-% target to
+# build non-default locales to non-default dist/ locations. Be aware!
+
+LPROJ_ROOT = $(firstword $(subst -, ,$(AB_CD)))
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+ifeq (zh-TW,$(AB_CD))
+LPROJ_ROOT := $(subst -,_,$(AB_CD))
+endif
+endif
+
+# These are defaulted to be compatible with the files the wget-en-US target
+# pulls. You may override them if you provide your own files.
+ZIP_IN ?= $(ABS_DIST)/$(PACKAGE)
+WIN32_INSTALLER_IN ?= $(ABS_DIST)/$(PKG_INST_PATH)$(PKG_INST_BASENAME).exe
+
+# Allows overriding the final destination of the repackaged file
+ZIP_OUT ?= $(ABS_DIST)/$(PACKAGE)
+
+ACDEFINES += \
+ -DAB_CD=$(AB_CD) \
+ -DMOZ_LANGPACK_EID=$(MOZ_LANGPACK_EID) \
+ -DMOZ_APP_ID='$(MOZ_APP_ID)' \
+ -DMOZ_APP_VERSION=$(MOZ_APP_VERSION) \
+ -DMOZ_APP_MAXVERSION=$(MOZ_APP_MAXVERSION) \
+ -DLOCALE_SRCDIR=$(abspath $(LOCALE_SRCDIR)) \
+ -DPKG_BASENAME='$(PKG_BASENAME)' \
+ -DPKG_INST_BASENAME='$(PKG_INST_BASENAME)' \
+ $(NULL)
+
+# export some global defines for l10n repacks
+BASE_MERGE:=$(CURDIR)/merge-dir
+export REAL_LOCALE_MERGEDIR=$(BASE_MERGE)/$(AB_CD)
+# is an l10n repack step:
+export IS_LANGUAGE_REPACK
+# is a language pack:
+export IS_LANGPACK
+
+clobber-%: AB_CD=$*
+clobber-%:
+ $(RM) -rf $(DIST)/xpi-stage/locale-$*
+
+
+PACKAGER_NO_LIBS = 1
+
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+STAGEDIST = $(ABS_DIST)/l10n-stage/$(MOZ_PKG_DIR)/$(_APPNAME)/Contents/Resources
+else
+STAGEDIST = $(ABS_DIST)/l10n-stage/$(MOZ_PKG_DIR)
+endif
+UNPACKED_INSTALLER = $(ABS_DIST)/unpacked-installer
+
+include $(MOZILLA_DIR)/toolkit/mozapps/installer/packager.mk
+
+PACKAGE_BASE_DIR = $(ABS_DIST)/l10n-stage
+
+$(UNPACKED_INSTALLER): AB_CD:=en-US
+$(UNPACKED_INSTALLER): UNPACKAGE=$(call ESCAPE_WILDCARD,$(ZIP_IN))
+$(UNPACKED_INSTALLER): $(call ESCAPE_WILDCARD,$(ZIP_IN))
+# only mac needs to remove the parent of STAGEDIST...
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+ $(RM) -r -v $(UNPACKED_INSTALLER)
+else
+# ... and windows doesn't like removing STAGEDIST itself, remove all children
+ find $(UNPACKED_INSTALLER) -maxdepth 1 -print0 | xargs -0 $(RM) -r
+endif
+ $(NSINSTALL) -D $(UNPACKED_INSTALLER)
+ cd $(UNPACKED_INSTALLER) && \
+ $(INNER_UNMAKE_PACKAGE)
+
+
+unpack: $(UNPACKED_INSTALLER)
+ifeq ($(OS_ARCH), WINNT)
+ $(RM) -r -f $(ABS_DIST)/l10n-stage
+ $(NSINSTALL) -D $(ABS_DIST)/l10n-stage
+ $(call copy_dir, $(UNPACKED_INSTALLER), $(ABS_DIST)/l10n-stage)
+else
+ rsync -rav --delete $(UNPACKED_INSTALLER)/ $(ABS_DIST)/l10n-stage
+endif
+
+# The path to the object dir for the mozilla-central build system,
+# may be overridden if necessary.
+MOZDEPTH ?= $(DEPTH)
+
+repackage-zip: UNPACKAGE='$(ZIP_IN)'
+repackage-zip:
+ $(PYTHON3) $(MOZILLA_DIR)/toolkit/mozapps/installer/l10n-repack.py '$(STAGEDIST)' $(DIST)/xpi-stage/locale-$(AB_CD) \
+ $(MOZ_PKG_EXTRAL10N) \
+ $(if $(MOZ_PACKAGER_MINIFY),--minify) \
+ $(if $(filter omni,$(MOZ_PACKAGER_FORMAT)),$(if $(NON_OMNIJAR_FILES),--non-resource $(NON_OMNIJAR_FILES)))
+
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+ifneq (en,$(LPROJ_ROOT))
+ mv '$(STAGEDIST)'/en.lproj '$(STAGEDIST)'/$(LPROJ_ROOT).lproj
+endif
+ifdef MOZ_CRASHREPORTER
+# On Mac OS X, the crashreporter.ini file needs to be moved from under the
+# application bundle's Resources directory where all other l10n files are
+# located to the crash reporter bundle's Resources directory.
+ mv '$(STAGEDIST)'/crashreporter.app/Contents/Resources/crashreporter.ini \
+ '$(STAGEDIST)'/../MacOS/crashreporter.app/Contents/Resources/crashreporter.ini
+ $(RM) -rf '$(STAGEDIST)'/crashreporter.app
+endif
+endif
+ifeq (WINNT,$(OS_ARCH))
+ $(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen l10ngen/helper.exe
+ cp ../installer/windows/l10ngen/helper.exe $(STAGEDIST)/uninstall
+endif
+
+ $(NSINSTALL) -D $(DIST)/l10n-stage/$(PKG_PATH)
+ (cd $(DIST)/l10n-stage; \
+ $(MAKE_PACKAGE))
+# packaging done, undo l10n stuff
+ifneq (en,$(LPROJ_ROOT))
+ifeq (cocoa,$(MOZ_WIDGET_TOOLKIT))
+ mv '$(STAGEDIST)'/$(LPROJ_ROOT).lproj '$(STAGEDIST)'/en.lproj
+endif
+endif
+ $(NSINSTALL) -D $(DIST)/$(PKG_PATH)
+ mv -f '$(DIST)/l10n-stage/$(PACKAGE)' '$(ZIP_OUT)'
+ if test -f '$(DIST)/l10n-stage/$(PACKAGE).asc'; then mv -f '$(DIST)/l10n-stage/$(PACKAGE).asc' '$(ZIP_OUT).asc'; fi
+
+repackage-zip-%: unpack
+ @$(MAKE) repackage-zip AB_CD=$* ZIP_IN='$(ZIP_IN)'
+
+# Dealing with app sub dirs: If DIST_SUBDIRS is defined it contains a
+# listing of app sub-dirs we should include in langpack xpis. If not,
+# check DIST_SUBDIR, and if that isn't present, just package the default
+# chrome directory and top-level localization for Fluent.
+PKG_ZIP_DIRS = chrome localization $(or $(DIST_SUBDIRS),$(DIST_SUBDIR))
+
+# Clone a l10n repository, either via hg or git
+# Make this a variable as it's embedded in a sh conditional
+ifeq ($(VCS_CHECKOUT_TYPE),hg)
+L10N_CO = $(HG) --cwd $(L10NBASEDIR) clone https://hg.mozilla.org/l10n-central/$(AB_CD)/
+else
+ifeq ($(VCS_CHECKOUT_TYPE),git)
+L10N_CO = $(GIT) -C $(L10NBASEDIR) clone hg://hg.mozilla.org/l10n-central/$(AB_CD)/
+else
+L10N_CO = $(error You need to use either hg or git)
+endif
+endif
+
+merge-%: IS_LANGUAGE_REPACK=1
+merge-%: AB_CD=$*
+merge-%:
+# For nightly builds, we automatically check out missing localizations
+# from l10n-central. We never automatically check out in automation:
+# automation builds check out revisions that have been signed-off by
+# l10n drivers prior to use.
+ifdef MOZ_AUTOMATION
+ if ! test -d $(L10NBASEDIR)/$(AB_CD) ; then \
+ echo 'Error: Automation requires l10n repositories to be checked out: $(L10NBASEDIR)/$(AB_CD)' ; \
+ exit 1 ; \
+ fi
+endif
+ifdef NIGHTLY_BUILD
+ if ! test -d $(L10NBASEDIR)/$(AB_CD) ; then \
+ echo 'Checking out $(L10NBASEDIR)/$(AB_CD)' ; \
+ $(NSINSTALL) -D $(L10NBASEDIR) ; \
+ $(L10N_CO) ; \
+ fi
+endif
+ $(RM) -rf $(REAL_LOCALE_MERGEDIR)
+ -$(PYTHON3) $(MOZILLA_DIR)/mach compare-locales --merge $(BASE_MERGE) $(srcdir)/l10n.toml $(L10NBASEDIR) $*
+# Hunspell dictionaries are interesting, as we don't ship the en-US
+# dictionary in repacks. Thus we can't use the merge logic from
+# compare-locales above, which would add en-US.dic and en-US.aff to
+# the merge directory.
+# Copy them to the merge dir, if exist. The repackaged app can still decide
+# on whether to package them or not in `l10n-%` and `chrome-%`.
+ if test -d $(L10NBASEDIR)/$(AB_CD)/extensions/spellcheck ; then \
+ $(NSINSTALL) -D $(REAL_LOCALE_MERGEDIR)/extensions/spellcheck/hunspell ; \
+ cp $(L10NBASEDIR)/$(AB_CD)/extensions/spellcheck/hunspell/*.* $(REAL_LOCALE_MERGEDIR)/extensions/spellcheck/hunspell ; \
+ fi
+
+LANGPACK_METADATA = $(LOCALE_SRCDIR)/langpack-metadata.ftl
+
+langpack-%: IS_LANGUAGE_REPACK=1
+langpack-%: IS_LANGPACK=1
+langpack-%: AB_CD=$*
+langpack-%: clobber-%
+ @echo 'Making langpack $(LANGPACK_FILE)'
+ @$(MAKE) l10n-$(AB_CD)
+ @$(MAKE) package-langpack-$(AB_CD)
+
+package-langpack-%: LANGPACK_FILE=$(ABS_DIST)/$(PKG_LANGPACK_PATH)$(PKG_LANGPACK_BASENAME).xpi
+package-langpack-%: XPI_NAME=locale-$*
+package-langpack-%: AB_CD=$*
+package-langpack-%:
+ $(NSINSTALL) -D $(DIST)/$(PKG_LANGPACK_PATH)
+ $(call py_action,langpack_manifest,--locales $(AB_CD) --app-version $(MOZ_APP_VERSION) --max-app-ver $(MOZ_APP_MAXVERSION) --app-name '$(MOZ_APP_DISPLAYNAME)' --l10n-basedir '$(L10NBASEDIR)' --metadata $(LANGPACK_METADATA) --langpack-eid '$(MOZ_LANGPACK_EID)' --input $(DIST)/xpi-stage/locale-$(AB_CD))
+ $(call py_action,zip,-C $(DIST)/xpi-stage/locale-$(AB_CD) -x **/*.manifest -x **/*.js -x **/*.ini $(LANGPACK_FILE) $(PKG_ZIP_DIRS) manifest.json)
+
+# This variable is to allow the wget-en-US target to know which ftp server to download from
+ifndef EN_US_BINARY_URL
+EN_US_BINARY_URL = $(error You must set EN_US_BINARY_URL)
+endif
+
+# Allow the overriding of PACKAGE format so we can get an EN_US build with a different
+# PACKAGE format than we are creating l10n packages with.
+EN_US_PACKAGE_NAME ?= $(PACKAGE)
+
+# This make target allows us to wget the latest en-US binary from a specified website
+# The make installers-% target needs the en-US binary in dist/
+# and for the windows repackages we need the .installer.exe in dist/sea
+wget-en-US:
+ifndef WGET
+ $(error Wget not installed)
+endif
+ $(NSINSTALL) -D $(ABS_DIST)/$(PKG_PATH)
+ (cd $(ABS_DIST)/$(PKG_PATH) && \
+ $(WGET) --no-cache -nv --no-iri -N -O $(PACKAGE) '$(EN_US_BINARY_URL)/$(EN_US_PACKAGE_NAME)')
+ @echo 'Downloaded $(EN_US_BINARY_URL)/$(EN_US_PACKAGE_NAME) to $(ABS_DIST)/$(PKG_PATH)/$(PACKAGE)'
diff --git a/toolkit/locales/l10n.toml b/toolkit/locales/l10n.toml
new file mode 100644
index 0000000000..60b7a1b4ab
--- /dev/null
+++ b/toolkit/locales/l10n.toml
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+basepath = "../.."
+
+
+[env]
+ l = "{l10n_base}/{locale}/"
+
+
+[[paths]]
+ reference = "toolkit/locales/en-US/**"
+ l10n = "{l}toolkit/**"
+
+[[paths]]
+ reference = "dom/locales/en-US/**"
+ l10n = "{l}dom/**"
+
+# Pick up l10n files for pdfviewer from browser
+# See https://bugzilla.mozilla.org/show_bug.cgi?id=1618465
+[[paths]]
+ reference = "browser/locales/en-US/pdfviewer/**"
+ l10n = "{l}browser/pdfviewer/**"
+
+[[paths]]
+ reference = "netwerk/locales/en-US/**"
+ l10n = "{l}netwerk/**"
+
+[[paths]]
+ reference = "security/manager/locales/en-US/**"
+ l10n = "{l}security/manager/**"
+
+[[includes]]
+ path = "devtools/shared/locales/l10n.toml"
diff --git a/toolkit/locales/moz.build b/toolkit/locales/moz.build
new file mode 100644
index 0000000000..b524d666a6
--- /dev/null
+++ b/toolkit/locales/moz.build
@@ -0,0 +1,48 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+with Files("**"):
+ BUG_COMPONENT = ("Firefox Build System", "General")
+
+if CONFIG["MOZ_BUILD_APP"] == "mobile/android":
+ DEFINES["MOZ_FENNEC"] = True
+
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+ DEFINES["MOZ_GTK"] = True
+
+JAR_MANIFESTS += ["jar.mn"]
+
+GeneratedFile("multilocale.txt", script="gen_multilocale.py")
+FINAL_TARGET_FILES.res += [
+ "!multilocale.txt",
+]
+
+if CONFIG["MOZ_CRASHREPORTER"]:
+ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
+ # TODO: fixing bug 1223748 should let us remove this special case
+ LOCALIZED_FILES["crashreporter.app"].Contents.Resources += [
+ "en-US/crashreporter/crashreporter.ini"
+ ]
+ else:
+ LOCALIZED_FILES += ["en-US/crashreporter/crashreporter.ini"]
+
+LOCALIZED_GENERATED_FILES += ["update.locale"]
+update_locale = LOCALIZED_GENERATED_FILES["update.locale"]
+update_locale.script = "generate_update_locale.py"
+LOCALIZED_FILES += ["!update.locale"]
+
+LOCALIZED_GENERATED_FILES += ["locale.ini"]
+LOCALIZED_GENERATED_FILES["locale.ini"].script = "generate_locale_ini.py"
+LOCALIZED_FILES += ["!locale.ini"]
+
+if CONFIG["MOZ_DEFAULT_BROWSER_AGENT"]:
+ LOCALIZED_GENERATED_FILES += ["defaultagent_localized.ini"]
+ wdba_l10n = LOCALIZED_GENERATED_FILES["defaultagent_localized.ini"]
+ wdba_l10n.script = "/browser/locales/generate_ini.py"
+ wdba_l10n.inputs = [
+ "/browser/locales/en-US/defaultagent/defaultagent_localized.ini",
+ ]
+ LOCALIZED_FILES += ["!defaultagent_localized.ini"]