summaryrefslogtreecommitdiffstats
path: root/toolkit/locales
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/locales')
-rw-r--r--toolkit/locales/Makefile.in22
-rw-r--r--toolkit/locales/all-locales14
-rw-r--r--toolkit/locales/compare-locales.pl261
-rw-r--r--toolkit/locales/en-US/chrome/alerts/alert.dtd6
-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/aboutReader.properties66
-rw-r--r--toolkit/locales/en-US/chrome/global/aboutStudies.properties32
-rw-r--r--toolkit/locales/en-US/chrome/global/aboutWebrtc.properties186
-rw-r--r--toolkit/locales/en-US/chrome/global/appPicker.dtd7
-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/charsetMenu.dtd5
-rw-r--r--toolkit/locales/en-US/chrome/global/charsetMenu.properties114
-rw-r--r--toolkit/locales/en-US/chrome/global/commonDialog.dtd10
-rw-r--r--toolkit/locales/en-US/chrome/global/commonDialogs.properties34
-rw-r--r--toolkit/locales/en-US/chrome/global/contentAreaCommands.properties23
-rw-r--r--toolkit/locales/en-US/chrome/global/datetimebox.dtd35
-rw-r--r--toolkit/locales/en-US/chrome/global/dialog.properties12
-rw-r--r--toolkit/locales/en-US/chrome/global/dialogOverlay.dtd9
-rw-r--r--toolkit/locales/en-US/chrome/global/editMenuOverlay.dtd11
-rw-r--r--toolkit/locales/en-US/chrome/global/extensions.properties43
-rw-r--r--toolkit/locales/en-US/chrome/global/fallbackMenubar.properties8
-rw-r--r--toolkit/locales/en-US/chrome/global/filepicker.properties17
-rw-r--r--toolkit/locales/en-US/chrome/global/findbar.properties23
-rw-r--r--toolkit/locales/en-US/chrome/global/global-extension-fields.properties7
-rw-r--r--toolkit/locales/en-US/chrome/global/globalKeys.dtd6
-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.properties20
-rw-r--r--toolkit/locales/en-US/chrome/global/notification.dtd14
-rw-r--r--toolkit/locales/en-US/chrome/global/printdialog.properties53
-rw-r--r--toolkit/locales/en-US/chrome/global/resetProfile.dtd6
-rw-r--r--toolkit/locales/en-US/chrome/global/resetProfile.properties14
-rw-r--r--toolkit/locales/en-US/chrome/global/textcontext.dtd24
-rw-r--r--toolkit/locales/en-US/chrome/global/tree.dtd5
-rw-r--r--toolkit/locales/en-US/chrome/global/videocontrols.dtd48
-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.properties115
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.dtd26
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.properties23
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd6
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties84
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties57
-rw-r--r--toolkit/locales/en-US/chrome/mozapps/update/updates.properties45
-rw-r--r--toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties73
-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.ini60
-rw-r--r--toolkit/locales/en-US/defines.inc1
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutAbout.ftl9
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutAddons.ftl511
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutCompat.ftl13
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutConfig.ftl106
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutGlean.ftl14
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl18
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutMozilla.ftl11
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl72
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl61
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutPlugins.ftl33
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutProcesses.ftl143
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutProfiles.ftl74
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutRights.ftl132
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.ftl38
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutSupport.ftl403
-rw-r--r--toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl147
-rw-r--r--toolkit/locales/en-US/toolkit/about/abuseReports.ftl98
-rw-r--r--toolkit/locales/en-US/toolkit/about/certviewer.ftl121
-rw-r--r--toolkit/locales/en-US/toolkit/about/url-classifier.ftl54
-rw-r--r--toolkit/locales/en-US/toolkit/extensions/blocklist.ftl22
-rw-r--r--toolkit/locales/en-US/toolkit/featuregates/features.ftl124
-rw-r--r--toolkit/locales/en-US/toolkit/global/createProfileWizard.ftl53
-rw-r--r--toolkit/locales/en-US/toolkit/global/handlerDialog.ftl84
-rw-r--r--toolkit/locales/en-US/toolkit/global/processTypes.ftl36
-rw-r--r--toolkit/locales/en-US/toolkit/global/profileDowngrade.ftl19
-rw-r--r--toolkit/locales/en-US/toolkit/global/profileSelection.ftl36
-rw-r--r--toolkit/locales/en-US/toolkit/global/resetProfile.ftl14
-rw-r--r--toolkit/locales/en-US/toolkit/global/textActions.ftl49
-rw-r--r--toolkit/locales/en-US/toolkit/global/unknownContentType.ftl14
-rw-r--r--toolkit/locales/en-US/toolkit/global/videocontrols.ftl14
-rw-r--r--toolkit/locales/en-US/toolkit/global/wizard.ftl37
-rw-r--r--toolkit/locales/en-US/toolkit/intl/languageNames.ftl212
-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.ftl36
-rw-r--r--toolkit/locales/en-US/toolkit/payments/payments.ftl52
-rw-r--r--toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl21
-rw-r--r--toolkit/locales/en-US/toolkit/preferences/preferences.ftl40
-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.ftl121
-rw-r--r--toolkit/locales/en-US/toolkit/updates/elevation.ftl22
-rw-r--r--toolkit/locales/en-US/toolkit/updates/history.ftl27
-rw-r--r--toolkit/locales/gen_multilocale.py19
-rw-r--r--toolkit/locales/generate_locale_ini.py9
-rw-r--r--toolkit/locales/generate_update_locale.py16
-rw-r--r--toolkit/locales/jar.mn89
-rw-r--r--toolkit/locales/l10n.ini13
-rw-r--r--toolkit/locales/l10n.mk258
-rw-r--r--toolkit/locales/l10n.toml35
-rw-r--r--toolkit/locales/moz.build48
109 files changed, 6055 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/compare-locales.pl b/toolkit/locales/compare-locales.pl
new file mode 100644
index 0000000000..fbc7ab5c21
--- /dev/null
+++ b/toolkit/locales/compare-locales.pl
@@ -0,0 +1,261 @@
+#!/usr/bin/perl -w
+# 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/.
+
+$failure = 0;
+
+sub unJAR
+{
+ my ($file, $dir) = @_;
+
+ -d $dir && system("rm -rf $dir");
+ system("unzip -q -d $dir $file") && die("Could not unZIP $file");
+}
+
+sub readDTD
+{
+ my ($file) = @_;
+
+ open DTD, "<$file" || die ("Couldn't open file $file");
+
+ local $/ = undef;
+ my $contents = <DTD>;
+ close DTD;
+
+ $contents =~ s/<!--.*?-->//gs; # strip SGML comments
+
+ return $contents =~ /<!ENTITY\s+([\w\.]+)\s+(?:\"[^\"]*\"|\'[^\']*\')\s*>/g;
+}
+
+sub compareDTD
+{
+ my ($path) = @_;
+
+ my @entities1 = readDTD("$gSourceDir1/$path");
+ my %entities2 = map { $_ => 1 } readDTD("$gSourceDir2/$path");
+
+ my @extra1;
+
+ foreach my $entity (@entities1) {
+ if (exists $entities2{$entity}) {
+ delete $entities2{$entity};
+ } else {
+ push @extra1, $entity;
+ }
+ }
+
+ if (@extra1 or keys %entities2) {
+ $failure = 1;
+ print "Entities in $path don't match:\n";
+ if (@extra1) {
+ print " In $gSource1: (add these keys to your localization)\n";
+ map { print " $_\n"; } @extra1;
+ }
+
+ if (keys %entities2) {
+ print " In $gSource2: (remove these keys from your localization)\n";
+ map {print " $_\n"; } keys %entities2;
+ }
+ print "\n";
+ }
+}
+
+sub readProperties
+{
+ my ($file) = @_;
+
+ open PROPS, "<$file" || die ("Couldn't open file $file");
+
+ local $/ = undef;
+ my $contents = <PROPS>;
+ close PROPS;
+
+ $contents =~ s/\\$$//gm;
+
+ return $contents =~ /^\s*([^#!\s\r\n][^=:\r\n]*?)\s*[=:]/gm;
+}
+
+sub compareProperties
+{
+ my ($path) = @_;
+
+ my @entities1 = readProperties("$gSourceDir1/$path");
+ my %entities2 = map { $_ => 1 } readProperties("$gSourceDir2/$path");
+
+ my @extra1;
+
+ foreach my $entity (@entities1) {
+ if (exists $entities2{$entity}) {
+ delete $entities2{$entity};
+ } else {
+# hack to ignore non-fatal region.properties differences
+ if ($path !~ /chrome\/browser-region\/region\.properties$/ or
+ ($entity !~ /browser\.search\.order\.[1-9]/ and
+ $entity !~ /browser\.contentHandlers\.types\.[0-5]/ and
+ $entity !~ /gecko\.handlerService\.schemes\./ and
+ $entity !~ /gecko\.handlerService\.defaultHandlersVersion/)) {
+ push @extra1, $entity;
+ }
+ }
+ }
+# hack to ignore non-fatal region.properties differences
+ if ($path =~ /chrome\/browser-region\/region\.properties$/) {
+ foreach $entity (keys(%entities2)) {
+ if ($entity =~ /browser\.search\.order\.[1-9]/ ||
+ $entity =~ /browser\.contentHandlers\.types\.[0-5]/ ||
+ $entity =~ /gecko\.handlerService\.schemes\./ ||
+ $entity =~ /gecko\.handlerService\.defaultHandlersVersion/) {
+ delete $entities2{$entity};
+ }
+ }
+ }
+
+ if (@extra1 or keys %entities2) {
+ $failure = 1;
+ print "Properties in $path don't match:\n";
+ if (@extra1) {
+ print " In $gSource1: (add these to your localization)\n";
+ map { print " $_\n"; } @extra1;
+ }
+
+ if (keys %entities2) {
+ print " In $gSource2: (remove these from your localization)\n";
+ map {print " $_\n"; } keys %entities2;
+ }
+ print "\n";
+ }
+}
+
+sub readDefines
+{
+ my ($file) = @_;
+
+ open DEFS, "<$file" || die ("Couldn't open file $file");
+
+ local $/ = undef;
+ my $contents = <DEFS>;
+ close DEFS;
+
+ return $contents =~ /#define\s+(\w+)/gm;
+}
+
+sub compareDefines
+{
+ my ($path) = @_;
+
+ my @entities1 = readDefines("$gSourceDir1/$path");
+ my %entities2 = map { $_ => 1 } readDefines("$gSourceDir2/$path");
+
+ my @extra1;
+
+ foreach my $entity (@entities1) {
+ if (exists $entities2{$entity}) {
+ delete $entities2{$entity};
+ } else {
+ push @extra1, $entity;
+ }
+ }
+
+ if (@extra1 or keys %entities2) {
+ $failure = 1;
+ print "Defines in $path don't match:\n";
+ if (@extra1) {
+ print " In $gSource1: (add these to your localization)\n";
+ map { print " $_\n"; } @extra1;
+ }
+
+ if (keys %entities2) {
+ print " In $gSource2: (remove these from your localization)\n";
+ map {print " $_\n"; } keys %entities2;
+ }
+ print "\n";
+ }
+}
+
+sub compareDir
+{
+ my ($path) = @_;
+
+ my (@entries1, %entries2);
+
+ opendir(DIR1, "$gSourceDir1/$path") ||
+ die ("Couldn't list $gSourceDir1/$path");
+ @entries1 = grep(!(/^(\.|CVS)/ || /~$/), readdir(DIR1));
+ closedir(DIR1);
+
+ opendir(DIR2, "$gSourceDir2/$path") ||
+ die ("Couldn't list $gSourceDir2/$path");
+ %entries2 = map { $_ => 1 } grep(!(/^(\.|CVS)/ || /~$/), readdir(DIR2));
+ closedir(DIR2);
+
+ foreach my $file (@entries1) {
+ if (exists($entries2{$file})) {
+ delete $entries2{$file};
+
+ if (-d "$gSourceDir1/$path/$file") {
+ compareDir("$path/$file");
+ } else {
+ if ($file =~ /\.dtd$/) {
+ compareDTD("$path/$file");
+ } elsif ($file =~ /\.inc$/) {
+ compareDefines("$path/$file");
+ } elsif ($file =~ /\.properties$/) {
+ compareProperties("$path/$file");
+ } else {
+ print "no comparison for $path/$file\n";
+ }
+ }
+ } else {
+ push @gSource1Extra, "$path/$file";
+ }
+ }
+
+ foreach my $file (keys %entries2) {
+ push @gSource2Extra, "$path/$file";
+ }
+}
+
+local ($gSource1, $gSource2) = @ARGV;
+($gSource1 && $gSource2) || die("Specify two directories or ZIP files");
+
+my ($gSource1IsZIP, $gSource2IsZIP);
+local ($gSourceDir1, $gSourceDir2);
+local (@gSource1Extra, @gSource2Extra);
+
+if (-d $gSource1) {
+ $gSource1IsZIP = 0;
+ $gSourceDir1 = $gSource1;
+} else {
+ $gSource1IsZIP = 1;
+ $gSourceDir1 = "temp1";
+ unJAR($gSource1, $gSourceDir1);
+}
+
+if (-d $gSource2) {
+ $gSource2IsZIP = 0;
+ $gSourceDir2 = $gSource2;
+} else {
+ $gSource2IsZIP = 1;
+ $gSourceDir2 = "temp2";
+ unJAR($gSource2, $gSourceDir2);
+}
+
+compareDir(".");
+
+if (@gSource1Extra) {
+ print "Files in $gSource1 not in $gSource2:\n";
+ map { print " $_\n"; } @gSource1Extra;
+ print "\n";
+}
+
+if (@gSource2Extra) {
+ print "Files in $gSource2 not in $gSource1:\n";
+ map { print " $_\n"; } @gSource2Extra;
+ print "\n";
+}
+
+$gSource1IsZIP && system("rm -rf $gSourceDir1");
+$gSource2IsZIP && system("rm -rf $gSourceDir2");
+
+exit $failure;
diff --git a/toolkit/locales/en-US/chrome/alerts/alert.dtd b/toolkit/locales/en-US/chrome/alerts/alert.dtd
new file mode 100644
index 0000000000..5f0f49d220
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/alerts/alert.dtd
@@ -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/. -->
+
+<!ENTITY closeAlert.tooltip "Close this notification">
+<!ENTITY settings.label "Settings">
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/aboutReader.properties b/toolkit/locales/en-US/chrome/global/aboutReader.properties
new file mode 100644
index 0000000000..4b7bc4111a
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/aboutReader.properties
@@ -0,0 +1,66 @@
+# 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 (aboutReader.loading2):
+# Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+aboutReader.loading2=Loading…
+aboutReader.loadError=Failed to load article from page
+
+aboutReader.colorScheme.light=Light
+aboutReader.colorScheme.dark=Dark
+aboutReader.colorScheme.sepia=Sepia
+aboutReader.colorScheme.auto=Auto
+
+# LOCALIZATION NOTE (aboutReader.estimatedReadTimeValue1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of minutes it is estimated to take to read the article
+# example: `3 minutes`
+aboutReader.estimatedReadTimeValue1=#1 minute;#1 minutes
+
+#LOCALIZATION NOTE (aboutReader.estimatedReadTimeRange1): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# When there is some uncertainty in how long the article will take to read show a range of
+# minutes it is expected to take.
+# #1 is the number of minutes it is estimated to take to read the article for a fast reader
+# #2 is the number of minutes it is estimated to take to read the article for a slow reader
+# #2 is the variable used to determine the plural form to use.
+# example: `5-8 minutes`
+aboutReader.estimatedReadTimeRange1=#1-#2 minute;#1-#2 minutes
+
+# LOCALIZATION NOTE (aboutReader.fontType.serif, aboutReader.fontType.sans-serif):
+# These are the styles of typeface that are options in the reader view controls.
+aboutReader.fontType.serif=Serif
+aboutReader.fontType.sans-serif=Sans-serif
+
+# LOCALIZATION NOTE (aboutReader.fontTypeSample): String used to sample font types.
+# For followup see: https://bugzilla.mozilla.org/show_bug.cgi?id=1637089
+aboutReader.fontTypeSample=Aa
+
+aboutReader.toolbar.close=Close Reader View
+aboutReader.toolbar.typeControls=Type controls
+
+# This is used as a label for the Reader View toolbar button.
+# This is a label used for the Save to Pocket option in the toolbar.
+# %S is replaced by Pocket.
+readerView.savetopocket.label=Save To %S
+# This is a label used for done option in the toolbar
+readerView.done.label=Done
+# These are used for the Reader View toolbar button and the menuitem within the
+# View menu.
+readerView.enter=Enter Reader View
+readerView.enter.accesskey=R
+readerView.close=Close Reader View
+readerView.close.accesskey=R
+
+# These are used as tooltips in Type Control
+aboutReader.toolbar.minus = Decrease Font Size
+aboutReader.toolbar.plus = Increase Font Size
+aboutReader.toolbar.contentwidthminus = Decrease Content Width
+aboutReader.toolbar.contentwidthplus = Increase Content Width
+aboutReader.toolbar.lineheightminus = Decrease Line Height
+aboutReader.toolbar.lineheightplus = Increase Line Height
+aboutReader.toolbar.colorschemelight = Color Scheme Light
+aboutReader.toolbar.colorschemedark = Color Scheme Dark
+aboutReader.toolbar.colorschemesepia = Color Scheme Sepia
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/aboutWebrtc.properties b/toolkit/locales/en-US/chrome/global/aboutWebrtc.properties
new file mode 100644
index 0000000000..4a2ba3105c
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/aboutWebrtc.properties
@@ -0,0 +1,186 @@
+# 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 (document_title):
+# The text "WebRTC" is a proper noun and should not be translated.
+# It is the general label for the standards based technology. see http://www.webrtc.org
+document_title = WebRTC Internals
+
+# LOCALIZATION NOTE (save_page_msg):
+# %1$S will be replaced by a full path file name: the target of the SavePage operation.
+save_page_msg = page saved to: %1$S
+
+# LOCALIZATION NOTE (save_page_dialog_title): "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.
+save_page_dialog_title = save about:webrtc as
+
+# LOCALIZATION NOTE (debug_mode_off_state_msg):
+# %1$S will be replaced by the full path file name of the debug log.
+debug_mode_off_state_msg = trace log can be found at: %1$S
+
+# LOCALIZATION NOTE (debug_mode_on_state_msg):
+# %1$S will be replaced by the full path file name of the debug log.
+debug_mode_on_state_msg = debug mode active, trace log at: %1$S
+
+# LOCALIZATION NOTE (aec_logging_msg_label, aec_logging_off_state_label,
+# aec_logging_on_state_label, aec_logging_on_state_msg):
+# AEC is an abbreviation for Acoustic Echo Cancellation.
+aec_logging_msg_label = AEC Logging
+aec_logging_off_state_label = Start AEC Logging
+aec_logging_on_state_label = Stop AEC Logging
+aec_logging_on_state_msg = AEC logging active (speak with the caller for a few minutes and then stop the capture)
+
+# LOCALIZATION NOTE (aec_logging_off_state_msg):
+# %1$S will be replaced by the full path to the directory containing the captured log files.
+# AEC is an abbreviation for Acoustic Echo Cancellation.
+aec_logging_off_state_msg = captured log files can be found in: %1$S
+
+# LOCALIZATION NOTE (peer_connection_id_label): "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.
+peer_connection_id_label = PeerConnection ID
+
+# LOCALIZATION NOTE (sdp_heading, local_sdp_heading, remote_sdp_heading, sdp_history_heading, sdp_parsing_errors_heading):
+# "SDP" is an abbreviation for Session Description Protocol, an IETF standard.
+# See http://wikipedia.org/wiki/Session_Description_Protocol
+sdp_heading = SDP
+local_sdp_heading = Local SDP
+remote_sdp_heading = Remote SDP
+sdp_history_heading = SDP History
+sdp_parsing_errors_heading = SDP Parsing Errors
+# LOCALIZATION NOTE (sdp_set_at_timestamp): the local or remote SDP and when it was set
+# %1$S will be replaced by local_sdp_heading or remote sdp_heading and %2$S
+# will be a numeric timestamp.
+sdp_set_at_timestamp = Set %1$S at timestamp %2$S
+# LOCALIZATION NOTE (sdp_set_timestamp): the absolute and relative times
+# when the sdp was set. %1$S and $2$S are both numeric timestamps. The
+# first is the absolute time, the second is the elapsed time since the
+# first sdp was set. ms is an abbreviation for milliseconds.
+sdp_set_timestamp = Timestamp %1$S (+ %2$S ms)
+# LOCALIZATION NOTE (offer, answer):
+# offer and answer describe whether the local sdp is an offer or answer or
+# the remote sdp is an offer or answer. These are appended to the local and
+# remote sdp headings.
+offer = Offer
+answer = Answer
+
+# LOCALIZATION NOTE (rtp_stats_heading): "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.
+rtp_stats_heading = RTP Stats
+
+# LOCALIZATION NOTE (ice_state, ice_stats_heading): "ICE" is an abbreviation
+# for Interactive Connectivity Establishment, which is an IETF protocol,
+# and should not normally be translated. "Stats" is an abbreviation for
+# Statistics.
+ice_state = ICE State
+ice_stats_heading = ICE Stats
+ice_restart_count_label = ICE restarts
+ice_rollback_count_label = ICE rollbacks
+ice_pair_bytes_sent = Bytes sent
+ice_pair_bytes_received = Bytes received
+ice_component_id = Component ID
+
+# LOCALIZATION NOTE (avg_bitrate_label, avg_framerate_label): "Avg." is an abbreviation
+# for Average. These are used as data labels.
+avg_bitrate_label = Avg. bitrate
+avg_framerate_label = Avg. framerate
+
+# LOCALIZATION NOTE (typeLocal, typeRemote): 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.
+typeLocal = Local
+typeRemote = Remote
+
+# LOCALIZATION NOTE (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.
+nominated = Nominated
+
+# LOCALIZATION NOTE (selected): 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.
+selected = Selected
+
+# LOCALIZATION NOTE (trickle_caption_msg2, trickle_highlight_color_name2): 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. %S is replaced by
+# trickle_highlight_color_name2 ("blue"), highlighted with a light blue
+# background to visually match the trickled ICE candidates.
+trickle_caption_msg2 = Trickled candidates (arriving after answer) are highlighted in %S
+trickle_highlight_color_name2 = blue
+
+save_page_label = Save Page
+debug_mode_msg_label = Debug Mode
+debug_mode_off_state_label = Start Debug Mode
+debug_mode_on_state_label = Stop Debug Mode
+stats_heading = Session Statistics
+stats_clear = Clear History
+log_heading = Connection Log
+log_clear = Clear Log
+log_show_msg = show log
+log_hide_msg = hide log
+connection_closed = closed
+local_candidate = Local Candidate
+remote_candidate = Remote Candidate
+raw_candidates_heading = All Raw Candidates
+raw_local_candidate = Raw Local Candidate
+raw_remote_candidate = Raw Remote Candidate
+raw_cand_show_msg = show raw candidates
+raw_cand_hide_msg = hide raw candidates
+priority = Priority
+fold_show_msg = show details
+fold_show_hint = click to expand this section
+fold_hide_msg = hide details
+fold_hide_hint = click to collapse this section
+dropped_frames_label = Dropped frames
+discarded_packets_label = Discarded packets
+decoder_label = Decoder
+encoder_label = Encoder
+received_label = Received
+packets = packets
+lost_label = Lost
+jitter_label = Jitter
+sent_label = Sent
+show_tab_label = Show tab
+
+frame_stats_heading = Video Frame Statistics
+n_a = N/A
+width_px = Width (px)
+height_px = Height (px)
+consecutive_frames = Consecutive Frames
+time_elapsed = Time Elapsed (s)
+estimated_framerate = Estimated Framerate
+rotation_degrees = Rotation (degrees)
+first_frame_timestamp = First Frame Reception Timestamp
+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
+local_receive_ssrc = Local Receiving SSRC
+# This is an SSRC on the remote side of the connection that is sending RTP
+remote_send_ssrc = Remote Sending SSRC
+# An option whose value will not be displayed but instead noted as having been
+# provided
+configuration_element_provided = Provided
+# An option whose value will not be displayed but instead noted as having not
+# been provided
+configuration_element_not_provided = Not Provided
+# The options set by the user in about:config that could impact a WebRTC call
+custom_webrtc_configuration_heading = User Set WebRTC Preferences
+# Section header for estimated bandwidths of WebRTC media flows
+bandwidth_stats_heading = Estimated Bandwidth
+# The ID of the MediaStreamTrack
+track_identifier = Track Identifier
+# The estimated bandwidth available for sending WebRTC media in bytes per second
+send_bandwidth_bytes_sec = Send Bandwidth (bytes/sec)
+# The estimated bandwidth available for receiving WebRTC media in bytes per second
+receive_bandwidth_bytes_sec = Receive Bandwidth (bytes/sec)
+# Maximum number of bytes per second that will be padding zeros at the ends of packets
+max_padding_bytes_sec = Maximum Padding (bytes/sec)
+# The amount of time inserted between packets to keep them spaced out
+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
+round_trip_time_ms = RTT ms
diff --git a/toolkit/locales/en-US/chrome/global/appPicker.dtd b/toolkit/locales/en-US/chrome/global/appPicker.dtd
new file mode 100644
index 0000000000..04d9bb8fec
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/appPicker.dtd
@@ -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/. -->
+
+<!ENTITY NoAppFound.label "No applications were found for this file type.">
+<!ENTITY BrowseButton.label "Browse…">
+<!ENTITY SendMsg.label "Send this item to:">
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/charsetMenu.dtd b/toolkit/locales/en-US/chrome/global/charsetMenu.dtd
new file mode 100644
index 0000000000..4c235ac0ea
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/charsetMenu.dtd
@@ -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/. -->
+
+<!ENTITY charsetMenu2.label "Text Encoding">
diff --git a/toolkit/locales/en-US/chrome/global/charsetMenu.properties b/toolkit/locales/en-US/chrome/global/charsetMenu.properties
new file mode 100644
index 0000000000..9876dc5a26
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/charsetMenu.properties
@@ -0,0 +1,114 @@
+# 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 property keys ending with ".key" are for access keys.
+# Localizations may add or delete properties where the property key ends with
+# ".key" as appropriate for the localization. The code that uses this data can
+# deal with the absence of an access key for an item.
+#
+# For gbk, gbk.bis and gbk.bis.key are used to trigger string changes in
+# localizations.
+#
+# In the en-US version of this file, access keys are given to the following:
+# * UTF-8
+# * All encodings that are the fallback encoding for some locale in Firefox
+# * All encodings that are the fallback encoding for some locale in IE
+# * All Japanese encodings
+#
+# For the items whose property key does not end in ".key" and whose value
+# includes "(" U+0028 LEFT PARENTHESIS, the "(" character is significant for
+# processing by CharsetMenu.jsm. If your localization does not use ASCII
+# parentheses where en-US does in this file, please file a bug to make
+# CharsetMenu.jsm also recognize the delimiter your localization uses.
+# (When this code was developed, all localizations appeared to use
+# U+0028 LEFT PARENTHESIS for this purpose.)
+
+# Globally-relevant
+
+_autodetect_all.key = m
+_autodetect_all = Automatic
+UTF-8.key = U
+UTF-8 = Unicode
+windows-1252.key = W
+windows-1252 = Western
+
+# Arabic
+windows-1256.key = A
+windows-1256 = Arabic (Windows)
+ISO-8859-6 = Arabic (ISO)
+
+# Baltic
+windows-1257.key = B
+windows-1257 = Baltic (Windows)
+ISO-8859-4 = Baltic (ISO)
+
+# Central European
+windows-1250.key = E
+windows-1250 = Central European (Windows)
+ISO-8859-2.key = l
+ISO-8859-2 = Central European (ISO)
+
+# Chinese, Simplified
+gbk.bis.key = S
+gbk.bis = Chinese, Simplified
+
+# Chinese, Traditional
+Big5.key = T
+Big5 = Chinese, Traditional
+
+# Cyrillic
+windows-1251.key = C
+windows-1251 = Cyrillic (Windows)
+ISO-8859-5 = Cyrillic (ISO)
+KOI8-R = Cyrillic (KOI8-R)
+KOI8-U = Cyrillic (KOI8-U)
+IBM866 = Cyrillic (DOS)
+
+# UI string in anticipation of Cyrillic analog of bug 1543077;
+# deliberately not in use yet
+
+# LOCALIZATION NOTE (Cyrillic.key): If taken into use, this string will appear
+# instead of the string for windows-1251.key, so the use of the same
+# accelerator is deliberate.
+Cyrillic.key = C
+# LOCALIZATION NOTE (Cyrillic): If taken into use, this string will appear
+# as a single item instead of the five items windows-1251, ISO-8859-5,
+# KOI8-R, KOI8-U, and IBM866, so this string does not need to make sense
+# together with those strings and should be translated the way those were
+# but omitting the part in parentheses.
+Cyrillic = Cyrillic
+
+# Greek
+windows-1253.key = G
+windows-1253 = Greek (Windows)
+ISO-8859-7.key = O
+ISO-8859-7 = Greek (ISO)
+
+# Hebrew
+windows-1255.key = H
+windows-1255 = Hebrew
+# LOCALIZATION NOTE (ISO-8859-8): The value for this item should begin with
+# the same word for Hebrew as the value for windows-1255 so that this item
+# sorts right after that one in the collation order for your locale.
+ISO-8859-8 = Hebrew, Visual
+
+# Japanese (NOT AN ENCODING NAME)
+Japanese.key = J
+Japanese = Japanese
+
+# Korean
+EUC-KR.key = K
+EUC-KR = Korean
+
+# Thai
+windows-874.key = i
+windows-874 = Thai
+
+# Turkish
+windows-1254.key = r
+windows-1254 = Turkish
+
+# Vietnamese
+windows-1258.key = V
+windows-1258 = Vietnamese
diff --git a/toolkit/locales/en-US/chrome/global/commonDialog.dtd b/toolkit/locales/en-US/chrome/global/commonDialog.dtd
new file mode 100644
index 0000000000..c5ceea07bf
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/commonDialog.dtd
@@ -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/. -->
+
+<!ENTITY editfield0.label "User Name:">
+<!ENTITY editfield1.label "Password:">
+<!ENTITY copyCmd.label "Copy">
+<!ENTITY copyCmd.accesskey "C">
+<!ENTITY selectAllCmd.label "Select All">
+<!ENTITY selectAllCmd.accesskey "A">
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..92cadf5de4
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/commonDialogs.properties
@@ -0,0 +1,34 @@
+# 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:
+ScriptDialogLabel=Prevent this page from creating additional dialogs
+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
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..0aaa983b37
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/contentAreaCommands.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/.
+
+# context menu strings
+
+SaveImageTitle=Save Image
+SaveMediaTitle=Save Media
+SaveVideoTitle=Save Video
+SaveAudioTitle=Save Audio
+SaveLinkTitle=Save As
+DefaultSaveFileName=index
+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 (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/datetimebox.dtd b/toolkit/locales/en-US/chrome/global/datetimebox.dtd
new file mode 100644
index 0000000000..a4760280c3
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/datetimebox.dtd
@@ -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/. -->
+
+<!-- Placeholders for input type=time -->
+
+<!ENTITY time.hour.placeholder "--">
+<!ENTITY time.minute.placeholder "--">
+<!ENTITY time.second.placeholder "--">
+<!ENTITY time.millisecond.placeholder "--">
+<!ENTITY time.dayperiod.placeholder "--">
+
+<!-- Field labels for input type=time -->
+
+<!ENTITY time.hour.label "Hours">
+<!ENTITY time.minute.label "Minutes">
+<!ENTITY time.second.label "Seconds">
+<!ENTITY time.millisecond.label "Milliseconds">
+<!ENTITY time.dayperiod.label "AM/PM">
+
+<!-- Placeholders for input type=date -->
+
+<!ENTITY date.year.placeholder "yyyy">
+<!ENTITY date.month.placeholder "mm">
+<!ENTITY date.day.placeholder "dd">
+
+<!-- Field labels for input type=date -->
+
+<!ENTITY date.year.label "Year">
+<!ENTITY date.month.label "Month">
+<!ENTITY date.day.label "Day">
+
+<!-- Date/time clear button -->
+
+<!ENTITY datetime.reset.label "Clear">
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/dialogOverlay.dtd b/toolkit/locales/en-US/chrome/global/dialogOverlay.dtd
new file mode 100644
index 0000000000..be4be00b0f
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/dialogOverlay.dtd
@@ -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/. -->
+
+<!-- WARNING!!! This file is obsoleted by the dialog.xml widget -->
+
+<!-- OK Cancel Buttons -->
+<!ENTITY okButton.label "OK">
+<!ENTITY cancelButton.label "Cancel">
diff --git a/toolkit/locales/en-US/chrome/global/editMenuOverlay.dtd b/toolkit/locales/en-US/chrome/global/editMenuOverlay.dtd
new file mode 100644
index 0000000000..f3050aa85a
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/editMenuOverlay.dtd
@@ -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/. -->
+
+<!ENTITY findCmd.label "Find">
+<!ENTITY findCmd.key "F">
+<!ENTITY findCmd.accesskey "F">
+<!ENTITY findAgainCmd.label "Find Again">
+<!ENTITY findAgainCmd.key "G">
+<!ENTITY findAgainCmd.key2 "VK_F3">
+<!ENTITY findAgainCmd.accesskey "g">
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..9369df53fe
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/extensions.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/.
+
+csp.error.missing-directive = Policy is missing a required ‘%S’ directive
+
+#LOCALIZATION NOTE (csp.error.illegal-keyword) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP keyword, usually 'unsafe-inline'.
+csp.error.illegal-keyword = ‘%1$S’ directive contains a forbidden %2$S keyword
+
+#LOCALIZATION NOTE (csp.error.illegal-protocol) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.illegal-protocol = ‘%1$S’ directive contains a forbidden %2$S: protocol source
+
+#LOCALIZATION NOTE (csp.error.missing-host) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.missing-host = %2$S: protocol requires a host in ‘%1$S’ directives
+
+#LOCALIZATION NOTE (csp.error.missing-source) %1$S is the name of a CSP directive, such as "script-src". %2$S is the name of a CSP source, usually 'self'.
+csp.error.missing-source = ‘%1$S’ must include the source %2$S
+
+#LOCALIZATION NOTE (csp.error.illegal-host-wildcard) %2$S a protocol name, such as "http", which appears as "http:", as it would in a URL.
+csp.error.illegal-host-wildcard = %2$S: wildcard sources in ‘%1$S’ directives must include at least one non-generic sub-domain (e.g., *.example.com rather than *.com)
+
+#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..755d0ad307
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/filepicker.properties
@@ -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/.
+
+# 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:
diff --git a/toolkit/locales/en-US/chrome/global/findbar.properties b/toolkit/locales/en-US/chrome/global/findbar.properties
new file mode 100644
index 0000000000..735941afd8
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/findbar.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/.
+
+# strings used by the Find bar, split from browser.properties
+NotFound=Phrase not found
+WrappedToTop=Reached end of page, continued from top
+WrappedToBottom=Reached top of page, continued from bottom
+NormalFind=Find in page
+FastFind=Quick find
+FastFindLinks=Quick find (links only)
+CaseSensitive=(Case sensitive)
+MatchDiacritics=(Matching diacritics)
+EntireWord=(Whole words only)
+# LOCALIZATION NOTE (FoundMatches): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is currently selected match and #2 the total amount of matches.
+FoundMatches=#1 of #2 match;#1 of #2 matches
+# LOCALIZATION NOTE (FoundMatchesCountLimit): Semicolon-separated list of plural
+# forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the total amount of matches allowed before counting stops.
+FoundMatchesCountLimit=More than #1 match;More than #1 matches
diff --git a/toolkit/locales/en-US/chrome/global/global-extension-fields.properties b/toolkit/locales/en-US/chrome/global/global-extension-fields.properties
new file mode 100644
index 0000000000..0fb1689b9f
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/global-extension-fields.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 (extension.default-theme@mozilla.org.name, extension.default-theme@mozilla.org.description): This is displayed in about:addons -> Appearance
+extension.default-theme@mozilla.org.name=Default
+extension.default-theme@mozilla.org.description=A theme with the operating system color scheme.
diff --git a/toolkit/locales/en-US/chrome/global/globalKeys.dtd b/toolkit/locales/en-US/chrome/global/globalKeys.dtd
new file mode 100644
index 0000000000..76b9235713
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/globalKeys.dtd
@@ -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/. -->
+
+<!ENTITY openHelp.commandkey "VK_F1">
+<!ENTITY openHelpMac.commandkey "?">
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..87f5e09c02
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/narrate.properties
@@ -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/.
+
+# "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.
+listen = Listen
+back = Back
+start = Start
+stop = Stop
+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/notification.dtd b/toolkit/locales/en-US/chrome/global/notification.dtd
new file mode 100644
index 0000000000..a33b76451d
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/notification.dtd
@@ -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/. -->
+
+<!ENTITY closeNotification.tooltip "Close this message">
+
+<!ENTITY checkForUpdates "Check for updates…">
+
+<!ENTITY learnMoreNoEllipsis "Learn more">
+
+<!ENTITY defaultButton.label "OK!">
+<!ENTITY defaultButton.accesskey "O">
+
+<!ENTITY moreActionsButton.accessibleLabel "More actions">
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.dtd b/toolkit/locales/en-US/chrome/global/resetProfile.dtd
new file mode 100644
index 0000000000..2090712e43
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/resetProfile.dtd
@@ -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/. -->
+
+<!ENTITY refreshProfile.dialog.title "Refresh &brandShortName;">
+<!ENTITY refreshProfile.cleaning.description "Almost done…">
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/textcontext.dtd b/toolkit/locales/en-US/chrome/global/textcontext.dtd
new file mode 100644
index 0000000000..cecb57a9ad
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/textcontext.dtd
@@ -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/. -->
+
+<!ENTITY spellAddToDictionary.label "Add to Dictionary">
+<!ENTITY spellAddToDictionary.accesskey "o">
+<!ENTITY spellUndoAddToDictionary.label "Undo Add To Dictionary">
+<!ENTITY spellUndoAddToDictionary.accesskey "n">
+<!ENTITY spellCheckToggle.label "Check Spelling">
+<!ENTITY spellCheckToggle.accesskey "g">
+<!ENTITY spellNoSuggestions.label "(No Spelling Suggestions)">
+<!ENTITY spellDictionaries.label "Languages">
+<!ENTITY spellDictionaries.accesskey "l">
+
+<!ENTITY searchTextBox.clear.label "Clear">
+
+<!ENTITY fillLoginMenu.label "Fill Login">
+<!ENTITY fillLoginMenu.accesskey "F">
+<!ENTITY fillPasswordMenu.label "Fill Password">
+<!ENTITY fillPasswordMenu.accesskey "F">
+<!ENTITY fillUsernameMenu.label "Fill Username">
+<!ENTITY fillUsernameMenu.accesskey "F">
+<!ENTITY noLoginSuggestions.label "(No Login Suggestions)">
+<!ENTITY viewSavedLogins.label "View Saved Logins">
diff --git a/toolkit/locales/en-US/chrome/global/tree.dtd b/toolkit/locales/en-US/chrome/global/tree.dtd
new file mode 100644
index 0000000000..7922852f55
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/tree.dtd
@@ -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/. -->
+
+<!ENTITY restoreColumnOrder.label "Restore Column Order">
diff --git a/toolkit/locales/en-US/chrome/global/videocontrols.dtd b/toolkit/locales/en-US/chrome/global/videocontrols.dtd
new file mode 100644
index 0000000000..9f9b341874
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/global/videocontrols.dtd
@@ -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/. -->
+
+<!ENTITY % brandDTD
+ SYSTEM "chrome://branding/locale/brand.dtd">
+ %brandDTD;
+
+<!ENTITY playButton.playLabel "Play">
+<!ENTITY playButton.pauseLabel "Pause">
+<!ENTITY muteButton.muteLabel "Mute">
+<!ENTITY muteButton.unmuteLabel "Unmute">
+<!ENTITY fullscreenButton.enterfullscreenlabel "Full Screen">
+<!ENTITY fullscreenButton.exitfullscreenlabel "Exit Full Screen">
+<!ENTITY castingButton.castingLabel "Cast to Screen">
+<!ENTITY closedCaption.off "Off">
+
+<!-- LOCALIZATION NOTE (pictureInPicture.label): This string is used as part of
+the Picture-in-Picture video toggle button when the mouse is hovering it. -->
+<!ENTITY pictureInPicture.label "Picture-in-Picture">
+
+<!-- LOCALIZATION NOTE (pictureInPictureToggle.label): 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. -->
+<!ENTITY pictureInPictureToggle.label "Watch in Picture-in-Picture">
+<!-- LOCALIZATION NOTE (pictureInPictureExplainer): 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. -->
+<!ENTITY pictureInPictureExplainer "Play videos in the foreground while you do other things in &brandShortName;">
+
+<!ENTITY error.aborted "Video loading stopped.">
+<!ENTITY error.network "Video playback aborted due to a network error.">
+<!ENTITY error.decode "Video can’t be played because the file is corrupt.">
+<!ENTITY error.srcNotSupported "Video format or MIME type is not supported.">
+<!ENTITY error.noSource2 "No video with supported format and MIME type found.">
+<!ENTITY error.generic "Video playback aborted due to an unknown error.">
+
+<!ENTITY status.pictureInPicture "This video is playing in Picture-in-Picture mode.">
+
+<!-- LOCALIZATION NOTE (positionAndDuration.nameFormat): the #1 string is the current
+media position, and the #2 string is the total duration. For example, when at
+the 5 minute mark in a 6 hour long video, #1 would be "5:00" and #2 would be
+"6:00:00", result string would be "5:00 / 6:00:00".
+Note that #2 is not always available. For example, when at the 5 minute mark in an
+unknown duration video, #1 would be "5:00" and the string which is surrounded by
+<span> would be deleted, result string would be "5:00".
+-->
+<!ENTITY positionAndDuration.nameFormat "#1<span> / #2</span>">
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..5e445f6903
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/downloads/downloads.properties
@@ -0,0 +1,115 @@
+# 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 (shortSeconds): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# s is the short form for seconds
+shortSeconds=s;s
+
+# LOCALIZATION NOTE (shortMinutes): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# m is the short form for minutes
+shortMinutes=m;m
+
+# LOCALIZATION NOTE (shortHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# h is the short form for hours
+shortHours=h;h
+
+# LOCALIZATION NOTE (shortDays): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# d is the short form for days
+shortDays=d;d
+
+downloadErrorAlertTitle=Download Error
+# LOCALIZATION NOTE (downloadErrorBlockedBy): %S is the name of the blocking
+# extension.
+downloadErrorBlockedBy=The download cannot be saved because it is blocked by %S.
+# LOCALIZATION NOTE (downloadErrorExtension): used when the blocking extension
+# name is unavailable.
+downloadErrorExtension=The download cannot be saved because it is blocked by an extension.
+downloadErrorGeneric=The download cannot be saved because an unknown error occurred.\n\nPlease try again.
+
+# LOCALIZATION NOTE: we don't have proper plural support in the CPP code; bug 463102
+quitCancelDownloadsAlertTitle=Cancel All Downloads?
+quitCancelDownloadsAlertMsg=If you exit now, 1 download will be canceled. Are you sure you want to exit?
+quitCancelDownloadsAlertMsgMultiple=If you exit now, %S downloads will be canceled. Are you sure you want to exit?
+quitCancelDownloadsAlertMsgMac=If you quit now, 1 download will be canceled. Are you sure you want to quit?
+quitCancelDownloadsAlertMsgMacMultiple=If you quit now, %S downloads will be canceled. Are you sure you want to quit?
+offlineCancelDownloadsAlertTitle=Cancel All Downloads?
+offlineCancelDownloadsAlertMsg=If you go offline now, 1 download will be canceled. Are you sure you want to go offline?
+offlineCancelDownloadsAlertMsgMultiple=If you go offline now, %S downloads will be canceled. Are you sure you want to go offline?
+leavePrivateBrowsingCancelDownloadsAlertTitle=Cancel All Downloads?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsg2=If you close all Private Browsing windows now, 1 download will be canceled. Are you sure you want to leave Private Browsing?
+leavePrivateBrowsingWindowsCancelDownloadsAlertMsgMultiple2=If you close all Private Browsing windows now, %S downloads will be canceled. Are you sure you want to leave Private Browsing?
+cancelDownloadsOKText=Cancel 1 Download
+cancelDownloadsOKTextMultiple=Cancel %S Downloads
+dontQuitButtonWin=Don’t Exit
+dontQuitButtonMac=Don’t Quit
+dontGoOfflineButton=Stay Online
+dontLeavePrivateBrowsingButton2=Stay in Private Browsing
+
+# LOCALIZATION NOTE (infiniteRate):
+# If download speed is a JavaScript Infinity value, this phrase is used
+infiniteRate=Really fast
+
+# LOCALIZATION NOTE (statusFormat3): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S rate number; %3$S rate unit; %4$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB (2.2 MB/sec)
+statusFormat3=%4$S — %1$S (%2$S %3$S/sec)
+
+# LOCALIZATION NOTE (statusFormatInfiniteRate): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S substitute phrase for Infinity speed; %3$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB (Really fast)
+statusFormatInfiniteRate=%3$S — %1$S (%2$S)
+
+# LOCALIZATION NOTE (statusFormatNoRate): — is the "em dash" (long dash)
+# %1$S transfer progress; %2$S time left
+# example: 4 minutes left — 1.1 of 11.1 GB
+statusFormatNoRate=%2$S — %1$S
+
+bytes=bytes
+kilobyte=KB
+megabyte=MB
+gigabyte=GB
+
+# LOCALIZATION NOTE (transferSameUnits2):
+# %1$S progress number; %2$S total number; %3$S total unit
+# example: 1.1 of 333 MB
+transferSameUnits2=%1$S of %2$S %3$S
+# LOCALIZATION NOTE (transferDiffUnits2):
+# %1$S progress number; %2$S progress unit; %3$S total number; %4$S total unit
+# example: 11.1 MB of 3.3 GB
+transferDiffUnits2=%1$S %2$S of %3$S %4$S
+# LOCALIZATION NOTE (transferNoTotal2):
+# %1$S progress number; %2$S unit
+# example: 111 KB
+transferNoTotal2=%1$S %2$S
+
+# LOCALIZATION NOTE (timePair3): %1$S time number; %2$S time unit
+# example: 1m; 11h
+timePair3=%1$S%2$S
+# LOCALIZATION NOTE (timeLeftSingle3): %1$S time left
+# example: 1m left; 11h left
+timeLeftSingle3=%1$S left
+# LOCALIZATION NOTE (timeLeftDouble3): %1$S time left; %2$S time left sub units
+# example: 11h 2m left; 1d 22h left
+timeLeftDouble3=%1$S %2$S left
+timeFewSeconds2=A few seconds left
+timeUnknown2=Unknown time left
+
+# LOCALIZATION NOTE (doneScheme2): #1 URI scheme like data: jar: about:
+doneScheme2=%1$S resource
+# LOCALIZATION NOTE (doneFileScheme): Special case of doneScheme for file:
+# This is used as an eTLD replacement for local files, so make it lower case
+doneFileScheme=local file
+
+# LOCALIZATION NOTE (yesterday): Displayed time for files finished yesterday
+yesterday=Yesterday
+
+fileExecutableSecurityWarning=“%S” 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 “%S”?
+fileExecutableSecurityWarningTitle=Open Executable File?
+
+# Desktop folder name for downloaded files
+downloadsFolder=Downloads
diff --git a/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.dtd b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.dtd
new file mode 100644
index 0000000000..e0fbf7368e
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/downloads/unknownContentType.dtd
@@ -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/. -->
+
+<!ENTITY intro2.label "You have chosen to open:">
+<!ENTITY from.label "from:">
+<!ENTITY actionQuestion.label "What should &brandShortName; do with this file?">
+
+<!ENTITY openWith.label "Open with">
+<!ENTITY openWith.accesskey "o">
+<!ENTITY other.label "Other…">
+
+<!ENTITY saveFile.label "Save File">
+<!ENTITY saveFile.accesskey "s">
+
+<!ENTITY rememberChoice.label "Do this automatically for files like this from now on.">
+<!ENTITY rememberChoice.accesskey "a">
+
+<!ENTITY whichIs.label "which is:">
+
+<!ENTITY chooseHandlerMac.label "Choose…">
+<!ENTITY chooseHandlerMac.accesskey "C">
+<!ENTITY chooseHandler.label "Browse…">
+<!ENTITY chooseHandler.accesskey "B">
+
+<!ENTITY unknownPromptText.label "Would you like to save this file?">
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/extensions/extensions.dtd b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd
new file mode 100644
index 0000000000..70ee49b29f
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.dtd
@@ -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/. -->
+
+<!-- addon actions -->
+<!ENTITY setting.learnmore "Learn More…">
diff --git a/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties
new file mode 100644
index 0000000000..f579a26a6b
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/extensions/extensions.properties
@@ -0,0 +1,84 @@
+# 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 (notification.incompatible) %1$S is the add-on name, %2$S is brand name, %3$S is application version
+notification.incompatible=%1$S is incompatible with %2$S %3$S.
+#LOCALIZATION NOTE (notification.unsigned, notification.unsignedAndDisabled) %1$S is the add-on name, %2$S is brand name
+notification.unsignedAndDisabled=%1$S could not be verified for use in %2$S and has been disabled.
+notification.unsigned=%1$S could not be verified for use in %2$S. Proceed with caution.
+notification.unsigned.link=More Information
+#LOCALIZATION NOTE (notification.blocked) %1$S is the add-on name
+notification.blocked=%1$S has been disabled due to security or stability issues.
+notification.blocked.link=More Information
+#LOCALIZATION NOTE (notification.softblocked) %1$S is the add-on name
+notification.softblocked=%1$S is known to cause security or stability issues.
+notification.softblocked.link=More Information
+#LOCALIZATION NOTE (notification.outdated) %1$S is the add-on name
+notification.outdated=An important update is available for %1$S.
+notification.outdated.link=Update Now
+#LOCALIZATION NOTE (notification.vulnerableUpdatable) %1$S is the add-on name
+notification.vulnerableUpdatable=%1$S is known to be vulnerable and should be updated.
+notification.vulnerableUpdatable.link=Update Now
+#LOCALIZATION NOTE (notification.vulnerableNoUpdate) %1$S is the add-on name
+notification.vulnerableNoUpdate=%1$S is known to be vulnerable. Use with caution.
+notification.vulnerableNoUpdate.link=More Information
+#LOCALIZATION NOTE (notification.restartless-uninstall) %1$S is the add-on name
+notification.restartless-uninstall=%1$S will be uninstalled after you close this tab.
+#LOCALIZATION NOTE (notification.downloadError) %1$S is the add-on name.
+notification.downloadError=There was an error downloading %1$S.
+notification.downloadError.retry=Try again
+notification.downloadError.retry.tooltip=Try downloading this add-on again
+#LOCALIZATION NOTE (notification.installError) %1$S is the add-on name.
+notification.installError=There was an error installing %1$S.
+notification.installError.retry=Try again
+notification.installError.retry.tooltip=Try downloading and installing this add-on again
+#LOCALIZATION NOTE (notification.gmpPending) %1$S is the add-on name.
+notification.gmpPending=%1$S will be installed shortly.
+
+#LOCALIZATION NOTE (details.notification.incompatible) %1$S is the add-on name, %2$S is brand name, %3$S is application version
+details.notification.incompatible=%1$S is incompatible with %2$S %3$S.
+#LOCALIZATION NOTE (details.notification.unsigned, details.notification.unsignedAndDisabled) %1$S is the add-on name, %2$S is brand name
+details.notification.unsignedAndDisabled=%1$S could not be verified for use in %2$S and has been disabled.
+details.notification.unsigned=%1$S could not be verified for use in %2$S. Proceed with caution.
+details.notification.unsigned.link=More Information
+#LOCALIZATION NOTE (details.notification.blocked) %1$S is the add-on name
+details.notification.blocked=%1$S has been disabled due to security or stability issues.
+details.notification.blocked.link=More Information
+#LOCALIZATION NOTE (details.notification.softblocked) %1$S is the add-on name
+details.notification.softblocked=%1$S is known to cause security or stability issues.
+details.notification.softblocked.link=More Information
+#LOCALIZATION NOTE (details.notification.outdated) %1$S is the add-on name
+details.notification.outdated=An important update is available for %1$S.
+details.notification.outdated.link=Update Now
+#LOCALIZATION NOTE (details.notification.vulnerableUpdatable) %1$S is the add-on name
+details.notification.vulnerableUpdatable=%1$S is known to be vulnerable and should be updated.
+details.notification.vulnerableUpdatable.link=Update Now
+#LOCALIZATION NOTE (details.notification.vulnerableNoUpdate) %1$S is the add-on name
+details.notification.vulnerableNoUpdate=%1$S is known to be vulnerable. Use with caution.
+details.notification.vulnerableNoUpdate.link=More Information
+#LOCALIZATION NOTE (details.notification.restartless-uninstall) %1$S is the add-on name.
+details.notification.restartless-uninstall=%1$S will be uninstalled after you close this tab.
+#LOCALIZATION NOTE (details.notification.gmpPending) %1$S is the add-on name
+details.notification.gmpPending=%1$S will be installed shortly.
+
+type.extension.name=Extensions
+type.themes.name=Themes
+type.locale.name=Languages
+type.plugin.name=Plugins
+type.dictionary.name=Dictionaries
+type.service.name=Services
+type.legacy.name=Legacy Extensions
+type.unsupported.name=Unsupported
+
+#LOCALIZATION NOTE(listHeading.discover) %S is the brandShortName
+listHeading.discover=Personalize Your %S
+listHeading.extension=Manage Your Extensions
+listHeading.shortcuts=Manage Extension Shortcuts
+listHeading.theme=Manage Your Themes
+listHeading.plugin=Manage Your Plugins
+listHeading.locale=Manage Your Languages
+listHeading.dictionary=Manage Your Dictionaries
+
+searchLabel.extension=Find more extensions
+searchLabel.theme=Find more themes
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..d326083202
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/mozapps/profile/profileSelection.properties
@@ -0,0 +1,57 @@
+# 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
+# LOCALIZATION NOTE (conflictMessage): %1$S is brandProductName, %2$S is brandShortName.
+conflictMessage=Another copy of %1$S has made changes to profiles. You must restart %2$S before making more changes.
+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..d73fb2b747
--- /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
+# NOTE: The restartLaterButton string is also used in
+# mozapps/extensions/content/blocklist.js
+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
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..f289138102
--- /dev/null
+++ b/toolkit/locales/en-US/chrome/passwordmgr/passwordmgr.properties
@@ -0,0 +1,73 @@
+# 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 (saveLoginMsg, saveLoginMsgNoUser):
+# %1$S is brandShortName, %2$S is the login's hostname.
+saveLoginMsg = Would you like %1$S to save this login for %2$S?
+saveLoginMsgNoUser = Would you like %1$S to save this password for %2$S?
+saveLoginButtonAllow.label = Save
+saveLoginButtonAllow.accesskey = S
+saveLoginButtonDeny.label = Don’t Save
+saveLoginButtonDeny.accesskey = D
+saveLoginButtonNever.label = Never Save
+saveLoginButtonNever.accesskey = e
+updateLoginMsg = Would you like to update this login?
+updateLoginMsgNoUser = Would you like to update this password?
+updateLoginMsgAddUsername = Would you like to add a username to the 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..1247d5033c
--- /dev/null
+++ b/toolkit/locales/en-US/crashreporter/crashreporter.ini
@@ -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/.
+
+# 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
+CheckAllowEmail=Allow %s to contact me about this report
+EmailGrayText=Enter your email address here
+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/defines.inc b/toolkit/locales/en-US/defines.inc
new file mode 100644
index 0000000000..f20fed7686
--- /dev/null
+++ b/toolkit/locales/en-US/defines.inc
@@ -0,0 +1 @@
+#define MOZ_LANG_TITLE English (US)
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..c3ff42e084
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl
@@ -0,0 +1,511 @@
+# 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-window =
+ .title = Add-ons Manager
+addons-page-title = Add-ons Manager
+
+search-header =
+ .placeholder = Search addons.mozilla.org
+ .searchbuttonlabel = Search
+
+search-header-shortcut =
+ .key = f
+
+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
+
+preferences =
+ { PLATFORM() ->
+ [windows] { -brand-short-name } Options
+ *[other] { -brand-short-name } Preferences
+ }
+sidebar-preferences-button-title =
+ .title =
+ { PLATFORM() ->
+ [windows] { -brand-short-name } Options
+ *[other] { -brand-short-name } Preferences
+ }
+
+show-unsigned-extensions-button =
+ .label = Some extensions could not be verified
+
+show-all-extensions-button =
+ .label = Show all extensions
+
+cmd-show-details =
+ .label = Show More Information
+ .accesskey = S
+
+cmd-find-updates =
+ .label = Find Updates
+ .accesskey = F
+
+cmd-preferences =
+ .label =
+ { PLATFORM() ->
+ [windows] Options
+ *[other] Preferences
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] O
+ *[other] P
+ }
+
+cmd-enable-theme =
+ .label = Wear Theme
+ .accesskey = W
+
+cmd-disable-theme =
+ .label = Stop Wearing Theme
+ .accesskey = W
+
+cmd-install-addon =
+ .label = Install
+ .accesskey = I
+
+cmd-contribute =
+ .label = Contribute
+ .accesskey = C
+ .tooltiptext = Contribute to the development of this add-on
+
+detail-version =
+ .label = Version
+
+detail-last-updated =
+ .label = Last Updated
+
+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
+
+## 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 }
+
+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
+
+# 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-heading = Disabled
+
+plugin-enabled-heading = Enabled
+plugin-disabled-heading = Disabled
+
+dictionary-enabled-heading = Enabled
+dictionary-disabled-heading = Disabled
+
+locale-enabled-heading = Enabled
+locale-disabled-heading = Disabled
+
+ask-to-activate-button = Ask to Activate
+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
+
+# 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
+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
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..6ee637222f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutCompat.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/.
+
+label-disable = Disable
+label-enable = Enable
+label-interventions = Interventions
+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
diff --git a/toolkit/locales/en-US/toolkit/about/aboutConfig.ftl b/toolkit/locales/en-US/toolkit/about/aboutConfig.ftl
new file mode 100644
index 0000000000..7de3167c62
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutConfig.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/.
+
+config-window =
+ .title = about:config
+
+## Strings used to display a warning in about:config
+
+# This text should be attention grabbing and playful
+config-about-warning-title =
+ .value = This might void your warranty!
+config-about-warning-text = Changing these advanced settings can be harmful to the stability, security, and performance of this application. You should only continue if you are sure of what you are doing.
+config-about-warning-button =
+ .label = I accept the risk!
+config-about-warning-checkbox =
+ .label = Show this warning next time
+
+config-search-prefs =
+ .value = Search:
+ .accesskey = r
+
+config-focus-search =
+ .key = r
+
+config-focus-search-2 =
+ .key = f
+
+## These strings are used for column headers
+config-pref-column =
+ .label = Preference Name
+config-lock-column =
+ .label = Status
+config-type-column =
+ .label = Type
+config-value-column =
+ .label = Value
+
+## These strings are used for tooltips
+config-pref-column-header =
+ .tooltip = Click to sort
+config-column-chooser =
+ .tooltip = Click to select columns to display
+
+## These strings are used for the context menu
+config-copy-pref =
+ .key = C
+ .label = Copy
+ .accesskey = C
+
+config-copy-name =
+ .label = Copy Name
+ .accesskey = N
+
+config-copy-value =
+ .label = Copy Value
+ .accesskey = V
+
+config-modify =
+ .label = Modify
+ .accesskey = M
+
+config-toggle =
+ .label = Toggle
+ .accesskey = T
+
+config-reset =
+ .label = Reset
+ .accesskey = R
+
+config-new =
+ .label = New
+ .accesskey = w
+
+config-string =
+ .label = String
+ .accesskey = S
+
+config-integer =
+ .label = Integer
+ .accesskey = I
+
+config-boolean =
+ .label = Boolean
+ .accesskey = B
+
+config-default = default
+config-modified = modified
+config-locked = locked
+
+config-property-string = string
+config-property-int = integer
+config-property-bool = boolean
+
+config-new-prompt = Enter the preference name
+
+config-nan-title = Invalid value
+config-nan-text = The text you entered is not a number.
+
+# Variables:
+# $type (String): type of value (boolean, integer or string)
+config-new-title = New { $type } value
+
+# Variables:
+# $type (String): type of value (boolean, integer or string)
+config-modify-title = Enter { $type } value
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..ecdbfb0514
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutGlean.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/.
+
+### "Glean" and "Glean SDK" should remain in English.
+
+about-glean-page-title = About Glean
+about-glean-description = The <a data-l10n-name="glean-sdk-doc-link">Glean SDK</a> is a data collection library used in Mozilla products. This page is for developers and testers who need to <a data-l10n-name="fog-debug-doc-link">configure debugging and logging state in the Glean SDK</a>.
+about-glean-warning = Misusing this interface may crash { -brand-short-name }.
+
+tag-pings-label = Tag all sent pings with this tag
+log-pings-label = Log ping payload before sending?
+send-pings-label = Send the named ping
+controls-button-label = Submit Settings
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..46786dd9dc
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutHttpsOnlyError.ftl
@@ -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/.
+
+about-httpsonly-title-alert = HTTPS-Only Mode Alert
+about-httpsonly-title-connection-not-available = Secure Connection 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…
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..da541048f1
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutNetworking.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/.
+
+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-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-tcp = TCP
+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-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-log-tutorial =
+ See <a data-l10n-name="logging">HTTP Logging</a>
+ for instructions on how to use this tool.
+about-networking-current-log-file = Current Log File:
+about-networking-current-log-modules = Current Log Modules:
+about-networking-set-log-file = Set Log File
+about-networking-set-log-modules = Set Log Modules
+about-networking-start-logging = Start Logging
+about-networking-stop-logging = Stop 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
+
+## 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..952e4cb143
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutPerformance.ftl
@@ -0,0 +1,61 @@
+# 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..b9860737a5
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutPlugins.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/.
+
+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
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..a96e9d333e
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutProcesses.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/.
+
+# 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
+
+## 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.
+## $origin (String) The domain name for this process.
+## $type (String) The raw type for this process. Used for unknown processes.
+
+about-processes-browser-process-name = { -brand-short-name } (process { $pid })
+about-processes-web-process-name = Web (process { $pid }, shared)
+about-processes-web-isolated-process-name = Web (process { $pid }) for { $origin }
+about-processes-web-large-allocation = Web (process { $pid }, large) for { $origin }
+about-processes-with-coop-coep-process-name = Web (process { $pid }, cross-origin isolated) for { $origin }
+about-processes-file-process-name = Files (process { $pid })
+about-processes-extension-process-name = Extensions (process { $pid })
+about-processes-privilegedabout-process-name = About (process { $pid })
+about-processes-plugin-process-name = Plugins (process { $pid })
+about-processes-privilegedmozilla-process-name = Web (process { $pid }) for { -vendor-short-name } sites
+about-processes-gmp-plugin-process-name = Gecko Media Plugins (process { $pid })
+about-processes-gpu-process-name = GPU (process { $pid })
+about-processes-vr-process-name = VR (process { $pid })
+about-processes-rdd-process-name = Data Decoder (process { $pid })
+about-processes-socket-process-name = Network (process { $pid })
+about-processes-remote-sandbox-broker-process-name = Remote Sandbox Broker (process { $pid })
+about-processes-fork-server-process-name = Fork Server (process { $pid })
+about-processes-preallocated-process-name = Preallocated (process { $pid })
+about-processes-unknown-process-name = Other ({ $type }, process { $pid })
+
+
+# Process
+# Variables:
+# $name (String) The name assigned to the process.
+# $pid (String) The process id of this process, assigned by the OS.
+about-processes-process-name = Process { $pid }: { $name }
+
+## Details within processes
+
+# Single-line summary of threads
+# 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.
+about-processes-thread-summary = Threads ({ $number })
+
+# 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 = Thread { $tid }: { $name }
+
+# 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 }
+
+## 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-user-and-kernel = { NUMBER($percent, maximumSignificantDigits: 2, style: "percent") } ({ 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 currently idle.
+about-processes-cpu-user-and-kernel-idle = idle ({ NUMBER($total, maximumFractionDigits: 2) }{ $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 = { NUMBER($total, maximumFractionDigits:0) }{ $totalUnit } ({ $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/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..73217f24a3
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutServiceWorkers.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/.
+
+### 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..eb70ef3d8e
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutSupport.ftl
@@ -0,0 +1,403 @@
+# 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
+# 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-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
+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
+# 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-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
+safe-mode-title = Try Safe Mode
+restart-in-safe-mode-label = Restart with Add-ons Disabled…
+clear-startup-cache-title = Try clearing the startup cache
+clear-startup-cache-label = Clear startup cache…
+startup-cache-dialog-title = Clear startup cache
+startup-cache-dialog-body = Restart { -brand-short-name } to clear startup cache. This will not change your settings or remove extensions you’ve added to { -brand-short-name }.
+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
+# 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
+##
+
+support-third-party-modules-title = Third-Party Modules
+support-third-party-modules-module = Module File
+support-third-party-modules-version = File Version
+support-third-party-modules-vendor = Vendor Info
+support-third-party-modules-occurrence = Occurrence
+support-third-party-modules-process = Process Type & ID
+support-third-party-modules-thread = Thread
+support-third-party-modules-base = Imagebase Address
+support-third-party-modules-uptime = Process Uptime (ms)
+support-third-party-modules-duration = Loading Duration (ms)
+support-third-party-modules-status = Status
+support-third-party-modules-status-loaded = Loaded
+support-third-party-modules-status-blocked = Blocked
+support-third-party-modules-status-redirected = Redirected
+support-third-party-modules-empty = No third-party modules were loaded.
+support-third-party-modules-no-value = (No value)
+support-third-party-modules-button-open =
+ .title = Open file location…
+support-third-party-modules-expand =
+ .title = Show detailed information
+support-third-party-modules-collapse =
+ .title = Collapse detailed information
+support-third-party-modules-unsigned-icon =
+ .title = This module is not signed
+support-third-party-modules-folder-icon =
+ .title = Open file location…
+support-third-party-modules-down-icon =
+ .title = Show detailed information
+support-third-party-modules-up-icon =
+ .title = Collapse detailed information
+
+# 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
+
+# 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
+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-safe-mode = Disabled by safe mode
+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
+
+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
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..009c862b44
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutTelemetry.ftl
@@ -0,0 +1,147 @@
+# 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-captured-stacks-section = Captured Stacks
+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 (Integer): amount of histogram samples
+# $prettyAverage (Integer): average of histogram samples
+# $sum (Integer): 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:
+# $stackKey (String): the string key for this stack
+# $capturedStacksCount (Integer): the number of times this stack was captured
+about-telemetry-captured-stacks-title = { $stackKey } (capture count: { $capturedStacksCount })
+# Variables:
+# $lateWriteCount (Integer): 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
+about-telemetry-origin-section = Origin Telemetry
+about-telemetry-origin-origin = origin
+about-telemetry-origin-count = count
+# Variables:
+# $telemetryServerOwner (String): the value of the toolkit.telemetry.server_owner preference. Typically "Mozilla"
+about-telemetry-origins-explanation = <a data-l10n-name="origin-doc-link">Firefox Origin Telemetry</a> encodes data before it is sent so that { $telemetryServerOwner } can count things, but not know whether or not any given { -brand-product-name } contributed to that count. (<a data-l10n-name="prio-blog-link">learn more</a>)
+# 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/abuseReports.ftl b/toolkit/locales/en-US/toolkit/about/abuseReports.ftl
new file mode 100644
index 0000000000..22e1bc2850
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/abuseReports.ftl
@@ -0,0 +1,98 @@
+# 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-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-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-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-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-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/url-classifier.ftl b/toolkit/locales/en-US/toolkit/about/url-classifier.ftl
new file mode 100644
index 0000000000..4a4b6ce562
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/url-classifier.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/.
+
+url-classifier-title = URL Classifier Information
+url-classifier-search-title = Search
+url-classifier-search-result-title = Results
+url-classifier-search-result-uri = URI: { $uri }
+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
+url-classifier-update-error = update error ({ $error })
+url-classifier-download-error = download error ({ $error })
diff --git a/toolkit/locales/en-US/toolkit/extensions/blocklist.ftl b/toolkit/locales/en-US/toolkit/extensions/blocklist.ftl
new file mode 100644
index 0000000000..d1ad16bd6f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/extensions/blocklist.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
+
+blocklist-window =
+ .title = Add-ons may be causing problems
+ .style = width: 45em; height: 30em
+blocklist-accept =
+ .label = Restart { -brand-short-name }
+ .accesskey = R
+
+blocklist-label-summary = { -brand-short-name } has determined that the following add-ons are known to cause stability or security problems:
+blocklist-soft-and-hard = The add-ons that have a high risk of causing stability or security problems have been blocked. The others are lower risk, but it is highly recommended that you restart with them disabled.
+blocklist-hard-blocked = These add-ons have a high risk of causing stability or security problems and have been blocked, but a restart is required to disable them completely.
+blocklist-soft-blocked = For your protection, it is highly recommended that you restart with these add-ons disabled.
+blocklist-more-information =
+ .value = More information
+
+blocklist-blocked =
+ .label = Blocked
+blocklist-checkbox =
+ .label = Disable
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..f1ba75be14
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/featuregates/features.ftl
@@ -0,0 +1,124 @@
+# 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-description2 = This new API provides low-level support for performing computation and graphics rendering using the <a data-l10n-name="wikipedia">Graphics Processing Unit (GPU)</a> of the user’s device or computer. The <a data-l10n-name="spec">specification</a> is still a work-in-progress. See <a data-l10n-name="bugzilla">bug 1602129</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-avif =
+ .label = Media: AVIF
+experimental-features-media-avif-description = With this feature enabled, { -brand-short-name } supports the AV1 Image File (AVIF) format. This is a still image file format that leverages the capabilities of the AV1 video compression algorithms to reduce image size. See <a data-l10n-name="bugzilla">bug 1443863</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-web-api-inputmode =
+ .label = Web API: inputmode
+# "inputmode" and "contenteditable" are technical terms and shouldn't be translated.
+experimental-features-web-api-inputmode-description = Our implementation of the <a data-l10n-name="mdn-inputmode">inputmode</a> global attribute has been updated as per <a data-l10n-name="whatwg">the WHATWG specification</a>, but we still need to make other changes too, like making it available on contenteditable content. See <a data-l10n-name="bugzilla">bug 1205133</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-web-api-link-preload =
+ .label = Web API: <link rel="preload">
+# Do not translate "rel", "preload" or "link" here, as they are all HTML spec
+# values that do not get translated.
+experimental-features-web-api-link-preload-description = The <a data-l10n-name="rel">rel</a> attribute with value <code>"preload"</code> on a <a data-l10n-name="link">&lt;link&gt;</a> element is intended to help provide performance gains by letting you download resources earlier in the page lifecycle, ensuring that they’re available earlier and are less likely to block page rendering. Read <a data-l10n-name="readmore">“Preloading content with <code>rel="preload"</code>”</a> or see <a data-l10n-name="bugzilla">bug 1583604</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-css-focus-visible =
+ .label = CSS: Pseudo-class: :focus-visible
+experimental-features-css-focus-visible-description = Allows focus styles to be applied to elements like buttons and form controls, only when they are focused using the keyboard (e.g. when tabbing between elements), and not when they are focused using a mouse or other pointing device. See <a data-l10n-name="bugzilla">bug 1617600</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-web-api-beforeinput =
+ .label = Web API: beforeinput Event
+# The terms "beforeinput", "input", "textarea", and "contenteditable" are technical terms
+# and shouldn't be translated.
+experimental-features-web-api-beforeinput-description = The global <a data-l10n-name="mdn-beforeinput">beforeinput</a> event is fired on an <a data-l10n-name="mdn-input">&lt;input&gt;</a> and <a data-l10n-name="mdn-textarea">&lt;textarea&gt;</a> elements, or any element whose <a data-l10n-name="mdn-contenteditable">contenteditable</a> attribute is enabled, immediately before the element’s value changes. The event allows web apps to override the browser’s default behavior for user interaction, e.g., web apps can cancel user input only for specific characters or can modify pasting styled text only with approved styles.
+
+# 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-constructable-stylesheets =
+ .label = CSS: Constructable Stylesheets
+experimental-features-css-constructable-stylesheets-description = The addition of a constructor to the <a data-l10n-name="mdn-cssstylesheet">CSSStyleSheet</a> interface as well as a variety of related changes makes it possible to directly create new stylesheets without having to add the sheet to the HTML. This makes it much easier to create reusable stylesheets for use with <a data-l10n-name="mdn-shadowdom">Shadow DOM</a>. See <a data-l10n-name="bugzilla">bug 1520690</a> for more details.
+
+experimental-features-devtools-color-scheme-simulation =
+ .label = Developer Tools: Color Scheme Simulation
+experimental-features-devtools-color-scheme-simulation-description = Adds an option to simulate different color schemes allowing you to test <a data-l10n-name="mdn-preferscolorscheme">@prefers-color-scheme</a> media queries. Using this media query lets your stylesheet respond to whether the user prefers a light or dark user interface. This feature lets you test your code without having to change settings in your browser (or operating system, if the browser follows a system-wide color scheme setting). See <a data-l10n-name="bugzilla1">bug 1550804</a> and <a data-l10n-name="bugzilla2">bug 1137699</a> for more details.
+
+experimental-features-devtools-execution-context-selector =
+ .label = Developer Tools: Execution Context Selector
+experimental-features-devtools-execution-context-selector-description = This feature displays a button on the console’s command line that lets you change the context in which the expression you enter will be executed. See <a data-l10n-name="bugzilla1">bug 1605154</a> and <a data-l10n-name="bugzilla2">bug 1605153</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-lax-by-default2 =
+ .label = Cookies: SameSite=Lax by default
+experimental-features-cookie-samesite-lax-by-default2-description = Treat cookies as “SameSite=Lax” by default if no “SameSite” attribute is specified. Developers must opt-in to the current status quo of unrestricted use by explicitly asserting “SameSite=None”.
+
+# 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.
+
+experimental-features-print-preview-tab-modal =
+ .label = Print Preview Redesign
+experimental-features-print-preview-tab-modal-description = Introduces the redesigned print preview and makes print preview available on macOS. This potentially introduces breakage and does not include all print-related settings. To access all print-related settings, select “Print using the system dialog…” from within the Print panel.
+
+# 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-cookie-samesite-schemeful =
+ .label = Cookies: Schemeful SameSite
+experimental-features-cookie-samesite-schemeful-description = Treat cookies from the same domain, but with different schemes (e.g. http://example.com and https://example.com) as cross-site instead of same-site. Improves security, but potentially introduces breakage.
+
+# "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.
+
+# Fission is the name of the feature and should not be translated.
+experimental-features-fission =
+ .label = Fission (Site Isolation)
+experimental-features-fission-description = Fission (site isolation) is an experimental feature in { -brand-short-name } to provide an additional layer of defense against security bugs. By isolating each site into a separate process, Fission makes it harder for malicious websites to get access to information from other pages you are visiting. This is a major architectural change in { -brand-short-name } and we appreciate you testing and reporting any issues you might encounter. For more details, see <a data-l10n-name="wiki">the wiki</a>.
+
+# Support for having multiple Picture-in-Picture windows open simultaneously
+experimental-features-multi-pip =
+ .label = Multiple Picture-in-Picture Support
+experimental-features-multi-pip-description = Experimental support for allowing multiple Picture-in-Picture windows to be open at the same time.
+
+experimental-features-http3 =
+ .label = HTTP/3 protocol
+experimental-features-http3-description = Experimental support for the HTTP/3 protocol.
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..9df6b44b87
--- /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-window =
+ .title = Create Profile Wizard
+ .style = width: 45em; height: 32em;
+
+## First wizard page
+
+create-profile-first-page-header =
+ { PLATFORM() ->
+ [macos] Introduction
+ *[other] Welcome to the { create-profile-window.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-header =
+ { PLATFORM() ->
+ [macos] Conclusion
+ *[other] Completing the { create-profile-window.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/handlerDialog.ftl b/toolkit/locales/en-US/toolkit/global/handlerDialog.ftl
new file mode 100644
index 0000000000..c2998fa53c
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/handlerDialog.ftl
@@ -0,0 +1,84 @@
+# 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 - the hostname that is initiating the request
+## $scheme - the type of link that's being opened.
+## $appName - Name of the application that will be opened.
+
+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-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 }?
+
+## 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.
+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-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 - 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/processTypes.ftl b/toolkit/locales/en-US/toolkit/global/processTypes.ftl
new file mode 100644
index 0000000000..cd6208c7ae
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/processTypes.ftl
@@ -0,0 +1,36 @@
+# 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/.
+
+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 webpages that requested special
+# permission to allocate large amounts of memory
+process-type-weblargeallocation = Large Allocation
+
+# process used to isolate a webpage from other web pages
+# to improve security
+process-type-webisolated = Isolated Web Content
+
+# 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 preallocated; may change to other types
+process-type-prealloc = Preallocated
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..55f1612227
--- /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-window =
+ .title = You’ve launched an older version of { -brand-product-name }
+ .style = 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..f5672732c2
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/profileSelection.ftl
@@ -0,0 +1,36 @@
+# 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
+
+## 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..869b6bab5f
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/resetProfile.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/.
+
+refresh-profile-dialog =
+ .title = Refresh { -brand-short-name }
+refresh-profile-dialog-button =
+ .label = Refresh { -brand-short-name }
+refresh-profile-description = Start fresh to fix problems and restore performance.
+refresh-profile-description-details = This will:
+refresh-profile-remove = Remove your add-ons and customizations
+refresh-profile-restore = Restore your browser settings to their defaults
+refresh-profile = Give { -brand-short-name } a tune up
+refresh-profile-button = Refresh { -brand-short-name }…
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..c0a6637206
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/textActions.ftl
@@ -0,0 +1,49 @@
+# 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-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
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..c46bcffda7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/unknownContentType.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/.
+
+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.
+ }
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..a90d3b7516
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/global/videocontrols.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/.
+
+videocontrols-scrubber =
+ .aria-label = Position
+# 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
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..1f9e6fafcb
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/intl/languageNames.ftl
@@ -0,0 +1,212 @@
+# 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-sd = Sindhi
+language-name-se = Northern Sami
+language-name-sg = Sango
+language-name-si = Singhalese
+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-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..443bfd5561
--- /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 Barthelemy
+region-name-bm = Bermuda
+region-name-bn = Brunei
+region-name-bo = Bolivia
+region-name-bq = Bonaire, Sint Eustatius, and Saba
+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 = Cabo Verde
+region-name-cw = Curaçao
+region-name-cx = Christmas Island
+region-name-cy = Cyprus
+region-name-cz = Czech Republic
+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 = 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 = Reunion
+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 = Sao Tome and Principe
+region-name-sv = El Salvador
+region-name-sx = Sint Maarten
+region-name-sy = Syria
+region-name-sz = Swaziland
+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..d56b1761b2
--- /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..61fe0bbd00
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/main-window/findbar.ftl
@@ -0,0 +1,36 @@
+# 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
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..b122ecdae7
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/pictureinpicture/pictureinpicture.ftl
@@ -0,0 +1,21 @@
+# 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
+
+pictureinpicture-pause =
+ .aria-label = Pause
+pictureinpicture-play =
+ .aria-label = Play
+
+pictureinpicture-mute =
+ .aria-label = Mute
+pictureinpicture-unmute =
+ .aria-label = Unmute
+
+pictureinpicture-unpip =
+ .aria-label = Send back to tab
+
+pictureinpicture-close =
+ .aria-label = Close
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..7c4f99e0e2
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/preferences/preferences.ftl
@@ -0,0 +1,40 @@
+# 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.
+
+pp-empty-warning = Your stored passwords and private keys will not be protected.
+pp-erased-ok = You have deleted your Primary Password. { pp-empty-warning }
+pp-not-wanted = Warning! You have decided not to use a Primary Password. { pp-empty-warning }
+
+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..b555f21b93
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/printing/printUI.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/.
+
+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-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-duplex-checkbox = Print on both sides
+
+# Section title for miscellaneous print options
+printui-options = Options
+printui-headers-footers-checkbox = Print headers and footers
+printui-backgrounds-checkbox = Print backgrounds
+printui-selection-checkbox = Print selection only
+
+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-top = Top
+printui-margins-custom-top-inches = Top (inches)
+printui-margins-custom-bottom = Bottom
+printui-margins-custom-bottom-inches = Bottom (inches)
+printui-margins-custom-left = Left
+printui-margins-custom-left-inches = Left (inches)
+printui-margins-custom-right = Right
+printui-margins-custom-right-inches = Right (inches)
+
+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.
+
+# 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/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..cfcdab5367
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/updates/history.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/.
+
+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
+update-installed-on = Installed on: { $date }
+update-status = Status: { $status }
diff --git a/toolkit/locales/gen_multilocale.py b/toolkit/locales/gen_multilocale.py
new file mode 100644
index 0000000000..14e8c80cb2
--- /dev/null
+++ b/toolkit/locales/gen_multilocale.py
@@ -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/.
+
+from __future__ import print_function, unicode_literals
+
+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..b1f243f5b3
--- /dev/null
+++ b/toolkit/locales/generate_update_locale.py
@@ -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/.
+
+# Generate update.locale, which simply contains the name of the current locale.
+
+from __future__ import unicode_literals, print_function
+
+import six
+
+
+def main(output, locale=None):
+ assert locale is not None
+ # update.locale is a trivial file but let's be unicode aware anyway.
+ locale = six.ensure_text(locale)
+ print(locale, file=output)
diff --git a/toolkit/locales/jar.mn b/toolkit/locales/jar.mn
new file mode 100644
index 0000000000..a8eb2d0f1f
--- /dev/null
+++ b/toolkit/locales/jar.mn
@@ -0,0 +1,89 @@
+#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)
+ toolkit (%toolkit/**/*.ftl)
+
+@AB_CD@.jar:
+% locale global @AB_CD@ %locale/@AB_CD@/global/
+ locale/@AB_CD@/global/aboutReader.properties (%chrome/global/aboutReader.properties)
+ locale/@AB_CD@/global/aboutStudies.properties (%chrome/global/aboutStudies.properties)
+ locale/@AB_CD@/global/aboutWebrtc.properties (%chrome/global/aboutWebrtc.properties)
+ locale/@AB_CD@/global/autocomplete.properties (%chrome/global/autocomplete.properties)
+ locale/@AB_CD@/global/appPicker.dtd (%chrome/global/appPicker.dtd)
+ locale/@AB_CD@/global/browser.properties (%chrome/global/browser.properties)
+ locale/@AB_CD@/global/charsetMenu.dtd (%chrome/global/charsetMenu.dtd)
+ locale/@AB_CD@/global/charsetMenu.properties (%chrome/global/charsetMenu.properties)
+ locale/@AB_CD@/global/commonDialog.dtd (%chrome/global/commonDialog.dtd)
+ locale/@AB_CD@/global/commonDialogs.properties (%chrome/global/commonDialogs.properties)
+ locale/@AB_CD@/global/contentAreaCommands.properties (%chrome/global/contentAreaCommands.properties)
+ locale/@AB_CD@/global/datetimebox.dtd (%chrome/global/datetimebox.dtd)
+ locale/@AB_CD@/global/dialogOverlay.dtd (%chrome/global/dialogOverlay.dtd)
+#ifndef MOZ_FENNEC
+ locale/@AB_CD@/global/editMenuOverlay.dtd (%chrome/global/editMenuOverlay.dtd)
+#endif
+ locale/@AB_CD@/global/extensions.properties (%chrome/global/extensions.properties)
+ locale/@AB_CD@/global/global-extension-fields.properties (%chrome/global/global-extension-fields.properties)
+ locale/@AB_CD@/global/fallbackMenubar.properties (%chrome/global/fallbackMenubar.properties)
+ locale/@AB_CD@/global/filepicker.properties (%chrome/global/filepicker.properties)
+#ifndef MOZ_FENNEC
+ locale/@AB_CD@/global/findbar.properties (%chrome/global/findbar.properties)
+#endif
+ locale/@AB_CD@/global/globalKeys.dtd (%chrome/global/globalKeys.dtd)
+ 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
+ locale/@AB_CD@/global/notification.dtd (%chrome/global/notification.dtd)
+#if !defined(XP_WIN) && !defined(MOZ_FENNEC)
+ locale/@AB_CD@/global/printdialog.properties (%chrome/global/printdialog.properties)
+#endif
+ locale/@AB_CD@/global/resetProfile.dtd (%chrome/global/resetProfile.dtd)
+ locale/@AB_CD@/global/resetProfile.properties (%chrome/global/resetProfile.properties)
+ locale/@AB_CD@/global/dialog.properties (%chrome/global/dialog.properties)
+ locale/@AB_CD@/global/tree.dtd (%chrome/global/tree.dtd)
+ locale/@AB_CD@/global/textcontext.dtd (%chrome/global/textcontext.dtd)
+ locale/@AB_CD@/global/videocontrols.dtd (%chrome/global/videocontrols.dtd)
+ 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/unknownContentType.dtd (%chrome/mozapps/downloads/unknownContentType.dtd)
+ locale/@AB_CD@/mozapps/downloads/downloads.properties (%chrome/mozapps/downloads/downloads.properties)
+#ifndef MOZ_FENNEC
+ locale/@AB_CD@/mozapps/extensions/extensions.properties (%chrome/mozapps/extensions/extensions.properties)
+#endif
+ 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.dtd (%chrome/alerts/alert.dtd)
+ 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..7ee13843b6
--- /dev/null
+++ b/toolkit/locales/l10n.mk
@@ -0,0 +1,258 @@
+# 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 $(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))
+ifdef MOZ_MAKE_COMPLETE_MAR
+ $(MAKE) -C $(MOZDEPTH)/tools/update-packaging full-update AB_CD=$(AB_CD) \
+ PACKAGE_BASE_DIR='$(ABS_DIST)/l10n-stage'
+endif
+# 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)'
+
+
+# Finding toolkit's defines.inc is hard for comm-central.
+# It needs to resolve mail's defines.inc relative to comm
+# for en-US, and toolkit's defines.inc relative to topsrcdir.
+# That's MOZILLA_DIR in their case, so fall back to that.
+# This is just needed for en-US, for repacks, all paths resolve
+# relative to the top-level REAL_LOCALE_MERGEDIR.
+LANGPACK_DEFINES = \
+ $(firstword \
+ $(wildcard $(call EXPAND_LOCALE_SRCDIR,toolkit/locales)/defines.inc) \
+ $(MOZILLA_DIR)/toolkit/locales/en-US/defines.inc \
+ ) \
+ $(LOCALE_SRCDIR)/defines.inc \
+$(NULL)
+
+# 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-%: 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) --min-app-ver $(MOZ_APP_VERSION) --max-app-ver $(MOZ_APP_MAXVERSION) --app-name '$(MOZ_APP_DISPLAYNAME)' --l10n-basedir '$(L10NBASEDIR)' --defines $(LANGPACK_DEFINES) --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"]