Bug 1424681 - Migrate the "General" section of Preferences to the new Localization API draft
authorZibi Braniecki <zbraniecki@mozilla.com>
Mon, 22 Jan 2018 15:38:06 -0800
changeset 723343 6f82dfdd4a40efb190aaf9830e9fd88df9b3cb54
parent 723339 57935a7259b27c03ba9d148a7420c989a99dbe52
child 746837 29e6e6d7cf4e86abfabd31391db4a4226d5141b5
push id96403
push userbmo:gandalf@aviary.pl
push dateTue, 23 Jan 2018 00:28:28 +0000
bugs1424681
milestone60.0a1
Bug 1424681 - Migrate the "General" section of Preferences to the new Localization API MozReview-Commit-ID: J5Rr8Gc0oCx
browser/components/preferences/handlers.xml
browser/components/preferences/in-content/main.js
browser/components/preferences/in-content/main.xul
browser/components/preferences/in-content/preferences.xul
browser/locales/en-US/browser/preferences/main.ftl
browser/locales/en-US/browser/preferences/preferences.ftl
browser/locales/en-US/chrome/browser/preferences/advanced.dtd
browser/locales/en-US/chrome/browser/preferences/applications.dtd
browser/locales/en-US/chrome/browser/preferences/content.dtd
browser/locales/en-US/chrome/browser/preferences/main.dtd
browser/locales/en-US/chrome/browser/preferences/preferences.dtd
browser/locales/en-US/chrome/browser/preferences/preferences.properties
browser/locales/en-US/chrome/browser/preferences/privacy.dtd
browser/locales/en-US/chrome/browser/preferences/tabs.dtd
browser/locales/jar.mn
--- a/browser/components/preferences/handlers.xml
+++ b/browser/components/preferences/handlers.xml
@@ -2,20 +2,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/. -->
 <!-- import-globals-from in-content/main.js -->
 
 <!DOCTYPE overlay [
   <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
-  <!ENTITY % applicationsDTD SYSTEM "chrome://browser/locale/preferences/applications.dtd">
   <!ENTITY % containersDTD SYSTEM "chrome://browser/locale/preferences/containers.dtd">
   %brandDTD;
-  %applicationsDTD;
   %containersDTD;
 ]>
 
 <bindings id="handlerBindings"
           xmlns="http://www.mozilla.org/xbl"
           xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
           xmlns:xbl="http://www.mozilla.org/xbl">
 
--- a/browser/components/preferences/in-content/main.js
+++ b/browser/components/preferences/in-content/main.js
@@ -476,17 +476,21 @@ var gMainPane = {
     // Append "(32-bit)" or "(64-bit)" build architecture to the version number:
     let bundle = Services.strings.createBundle("chrome://browser/locale/browser.properties");
     let archResource = Services.appinfo.is64Bit
       ? "aboutDialog.architecture.sixtyFourBit"
       : "aboutDialog.architecture.thirtyTwoBit";
     let arch = bundle.GetStringFromName(archResource);
     version += ` (${arch})`;
 
-    document.getElementById("version").textContent = version;
+    document.l10n.setAttributes(
+      document.getElementById("updateAppInfo"),
+      "update-application-info",
+      { version }
+    );
 
     // Show a release notes link if we have a URL.
     let relNotesLink = document.getElementById("releasenotes");
     let relNotesPrefType = Services.prefs.getPrefType("app.releaseNotesURL");
     if (relNotesPrefType != Services.prefs.PREF_INVALID) {
       let relNotesURL = Services.urlFormatter.formatURLPref("app.releaseNotesURL");
       if (relNotesURL != "about:blank") {
         relNotesLink.href = relNotesURL;
@@ -862,20 +866,19 @@ var gMainPane = {
   /**
    * Switches the "Use Current Page" button between its singular and plural
    * forms.
    */
   async _updateUseCurrentButton() {
     let useCurrent = document.getElementById("useCurrent");
     let tabs = this._getTabsForHomePage();
 
-    if (tabs.length > 1)
-      useCurrent.label = useCurrent.getAttribute("label2");
-    else
-      useCurrent.label = useCurrent.getAttribute("label1");
+    document.l10n.setAttributes(useCurrent, "use-current-page", {
+      tabCount: tabs.length
+    });
 
     // If the homepage is controlled by an extension then you can't use this.
     if (await getControllingExtensionInfo(PREF_SETTING_TYPE, HOMEPAGE_OVERRIDE_KEY)) {
       useCurrent.disabled = true;
       return;
     }
 
     // In this case, the button's disabled state is set by preferences.xml.
@@ -1089,37 +1092,37 @@ var gMainPane = {
   // NETWORK
   /**
    * Displays a dialog in which proxy settings may be changed.
    */
   showConnections() {
     gSubDialog.open("chrome://browser/content/preferences/connection.xul");
   },
 
-  checkBrowserContainers(event) {
+  async checkBrowserContainers(event) {
     let checkbox = document.getElementById("browserContainersCheckbox");
     if (checkbox.checked) {
       Services.prefs.setBoolPref("privacy.userContext.enabled", true);
       return;
     }
 
     let count = ContextualIdentityService.countContainerTabs();
     if (count == 0) {
       Services.prefs.setBoolPref("privacy.userContext.enabled", false);
       return;
     }
 
-    let bundlePreferences = document.getElementById("bundlePreferences");
-
-    let title = bundlePreferences.getString("disableContainersAlertTitle");
-    let message = PluralForm.get(count, bundlePreferences.getString("disableContainersMsg"))
-      .replace("#S", count);
-    let okButton = PluralForm.get(count, bundlePreferences.getString("disableContainersOkButton"))
-      .replace("#S", count);
-    let cancelButton = bundlePreferences.getString("disableContainersButton2");
+    let [
+      title, message, okButton, cancelButton
+    ] = await document.l10n.formatValues([
+      "containers-disable-alert-title",
+      "containers-disable-alert-desc",
+      "containers-disable-alert-ok-button",
+      "containers-disable-alert-cancel-button"
+    ]);
 
     let buttonFlags = (Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_0) +
       (Ci.nsIPrompt.BUTTON_TITLE_IS_STRING * Ci.nsIPrompt.BUTTON_POS_1);
 
     let rv = Services.prompt.confirmEx(window, title, message, buttonFlags,
       okButton, cancelButton, null, null, {});
     if (rv == 0) {
       Services.prefs.setBoolPref("privacy.userContext.enabled", false);
@@ -1308,39 +1311,25 @@ var gMainPane = {
       performanceSettings.hidden = false;
     }
   },
 
   buildContentProcessCountMenuList() {
     if (Services.appinfo.browserTabsRemoteAutostart) {
       let processCountPref = Preferences.get("dom.ipc.processCount");
       let defaultProcessCount = processCountPref.defaultValue;
-      let bundlePreferences = document.getElementById("bundlePreferences");
 
       let contentProcessCount =
         document.querySelector(`#contentProcessCount > menupopup >
                                 menuitem[value="${defaultProcessCount}"]`);
 
-      // New localization API experiment (October 2017).
-      // See bug 1402061 for details.
-      //
-      // The `intl.l10n.fluent.disabled` pref can be used
-      // to opt-out of the experiment in case of any
-      // unforseen problems. The legacy API will then
-      // be used.
-      if (Services.prefs.getBoolPref("intl.l10n.fluent.disabled", false)) {
-        let label = bundlePreferences.getFormattedString("defaultContentProcessCount",
-          [defaultProcessCount]);
-        contentProcessCount.label = label;
-      } else {
-        document.l10n.setAttributes(
-          contentProcessCount,
-          "default-content-process-count",
-          { num: defaultProcessCount });
-      }
+      document.l10n.setAttributes(
+        contentProcessCount,
+        "performance-default-content-process-count",
+        { num: defaultProcessCount });
 
       document.getElementById("limitContentProcess").disabled = false;
       document.getElementById("contentProcessCount").disabled = false;
       document.getElementById("contentProcessCountEnabledDescription").hidden = false;
       document.getElementById("contentProcessCountDisabledDescription").hidden = true;
     } else {
       document.getElementById("limitContentProcess").disabled = true;
       document.getElementById("contentProcessCount").disabled = true;
--- a/browser/components/preferences/in-content/main.xul
+++ b/browser/components/preferences/in-content/main.xul
@@ -15,95 +15,95 @@
         src="chrome://mozapps/content/preferences/fontbuilder.js"/>
 
 <stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences.properties"/>
 
 <hbox id="generalCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&paneGeneral.title;</label>
+      <label class="header-name" flex="1" data-l10n-id="pane-general-title"></label>
 </hbox>
 
 <!-- Startup -->
 <groupbox id="startupGroup"
           data-category="paneGeneral"
           hidden="true">
-  <caption><label>&startup.label;</label></caption>
+  <caption><label data-l10n-id="startup-label"></label></caption>
 
 #ifdef MOZ_DEV_EDITION
   <vbox id="separateProfileBox">
     <checkbox id="separateProfileMode"
-              label="&separateProfileMode.label;"/>
+              data-l10n-id="separate-profile-mode"/>
     <hbox align="center" class="indent">
-      <label id="useFirefoxSync">&useFirefoxSync.label;</label>
+      <label id="useFirefoxSync" data-l10n-id="use-firefox-sync"></label>
       <deck id="getStarted">
-        <label class="text-link">&getStarted.notloggedin.label;</label>
-        <label class="text-link">&getStarted.configured.label;</label>
+        <label class="text-link" data-l10n-id="get-started-not-logged-in"></label>
+        <label class="text-link" data-l10n-id="get-started-configured"></label>
       </deck>
     </hbox>
   </vbox>
 #endif
 
 #ifdef HAVE_SHELL_SERVICE
   <vbox id="defaultBrowserBox">
     <checkbox id="alwaysCheckDefault" preference="browser.shell.checkDefaultBrowser"
-              label="&alwaysCheckDefault2.label;" accesskey="&alwaysCheckDefault2.accesskey;"/>
+              data-l10n-id="always-check-default"/>
     <deck id="setDefaultPane">
       <hbox align="center" class="indent">
         <image class="face-sad"/>
-        <label id="isNotDefaultLabel" flex="1">&isNotDefault.label;</label>
+        <label id="isNotDefaultLabel" flex="1" data-l10n-id="is-not-default"></label>
         <button id="setDefaultButton"
                 class="accessory-button"
-                label="&setAsMyDefaultBrowser3.label;" accesskey="&setAsMyDefaultBrowser3.accesskey;"
+                data-l10n-id="set-as-my-default-browser"
                 preference="pref.general.disable_button.default_browser"/>
       </hbox>
       <hbox align="center" class="indent">
         <image class="face-smile"/>
-        <label id="isDefaultLabel" flex="1">&isDefault.label;</label>
+        <label id="isDefaultLabel" flex="1" data-l10n-id="is-default"></label>
       </hbox>
     </deck>
   </vbox>
 #endif
 
   <vbox id="startupPageBox">
-    <label accesskey="&startupPage2.accesskey;"
-           control="browserStartupPage">&startupPage2.label;</label>
+    <label data-l10n-id="startup-page"
+           control="browserStartupPage"></label>
     <radiogroup id="browserStartupPage"
                 preference="browser.startup.page">
-      <radio label="&startupUserHomePage.label;"
+      <radio data-l10n-id="startup-user-homepage"
              value="1"
              id="browserStartupHomePage"/>
-      <radio label="&startupBlankPage.label;"
+      <radio data-l10n-id="startup-blank-page"
              value="0"
              id="browserStartupBlank"/>
-      <radio label="&startupPrevSession.label;"
+      <radio data-l10n-id="startup-prev-session"
              value="3"
              id="browserStartupLastSession"/>
     </radiogroup>
     <hbox id="browserNewTabExtensionContent" align="center" hidden="true">
       <description control="disableNewTabExtension" flex="1" />
       <button id="disableNewTabExtension"
               class="extension-controlled-button accessory-button"
-              label="&disableExtension.label;" />
+              data-l10n-id="disable-extesion" />
     </hbox>
   </vbox>
 </groupbox>
 
 <!-- Home Page -->
 <groupbox id="homepageGroup"
           data-category="paneGeneral"
           hidden="true">
-  <caption><label>&homepage2.label;</label></caption>
+  <caption><label data-l10n-id="home-page-label"></label></caption>
 
   <hbox id="browserHomePageExtensionContent" align="center" hidden="true">
     <description control="disableHomePageExtension" flex="1" />
     <button id="disableHomePageExtension"
             class="extension-controlled-button accessory-button"
-            label="&disableExtension.label;" />
+            data-l10n-id="disable-extension" />
   </hbox>
 
   <vbox>
     <textbox id="browserHomePage"
              class="uri-element"
              type="autocomplete"
              autocompletesearch="unifiedcomplete"
              onsyncfrompreference="return gMainPane.syncFromHomePref();"
@@ -112,121 +112,108 @@
              preference="browser.startup.homepage"/>
   </vbox>
 
   <hbox class="homepage-buttons">
     <button id="useCurrent"
             flex="1"
             class="homepage-button"
             label=""
-            accesskey="&useCurrentPage.accesskey;"
-            label1="&useCurrentPage.label;"
-            label2="&useMultiple.label;"
+            data-l10n-id="use-current-page"
             preference="pref.browser.homepage.disable_button.current_page"/>
     <button id="useBookmark"
             flex="1"
             class="homepage-button"
-            label="&chooseBookmark.label;"
-            accesskey="&chooseBookmark.accesskey;"
+            data-l10n-id="choose-bookmark"
             preference="pref.browser.homepage.disable_button.bookmark_page"
             searchkeywords="&selectBookmark.title; &selectBookmark.label;"/>
     <button id="restoreDefaultHomePage"
             flex="1"
             class="homepage-button"
-            label="&restoreDefault.label;"
-            accesskey="&restoreDefault.accesskey;"
+            data-l10n-id="restore-default"
             preference="pref.browser.homepage.disable_button.restore_default"/>
   </hbox>
 </groupbox>
 
 <!-- Tab preferences -->
 <groupbox data-category="paneGeneral"
           hidden="true">
-    <caption><label>&tabsGroup.label;</label></caption>
+    <caption><label data-l10n-id="tabs-group-label"></label></caption>
 
-    <checkbox id="ctrlTabRecentlyUsedOrder" label="&ctrlTabRecentlyUsedOrder.label;"
-              accesskey="&ctrlTabRecentlyUsedOrder.accesskey;"
+    <checkbox id="ctrlTabRecentlyUsedOrder" data-l10n-id="ctrl-tab-recently-used-order"
               preference="browser.ctrlTab.previews"/>
 
-    <checkbox id="linkTargeting" label="&newWindowsAsTabs3.label;"
-              accesskey="&newWindowsAsTabs3.accesskey;"
+    <checkbox id="linkTargeting" data-l10n-id="new-windows-as-tabs"
               preference="browser.link.open_newwindow"
               onsyncfrompreference="return gMainPane.readLinkTarget();"
               onsynctopreference="return gMainPane.writeLinkTarget();"/>
 
-    <checkbox id="warnCloseMultiple" label="&warnOnCloseMultipleTabs.label;"
-              accesskey="&warnOnCloseMultipleTabs.accesskey;"
+    <checkbox id="warnCloseMultiple" data-l10n-id="warn-on-close-multiple-tabs"
               preference="browser.tabs.warnOnClose"/>
 
-    <checkbox id="warnOpenMany" label="&warnOnOpenManyTabs.label;"
-              accesskey="&warnOnOpenManyTabs.accesskey;"
+    <checkbox id="warnOpenMany" data-l10n-id="warn-on-open-many-tabs"
               preference="browser.tabs.warnOnOpen"/>
 
-    <checkbox id="switchToNewTabs" label="&switchLinksToNewTabs.label;"
-              accesskey="&switchLinksToNewTabs.accesskey;"
+    <checkbox id="switchToNewTabs" data-l10n-id="switch-links-to-new-tabs"
               preference="browser.tabs.loadInBackground"/>
 
 #ifdef XP_WIN
-    <checkbox id="showTabsInTaskbar" label="&showTabsInTaskbar.label;"
-              accesskey="&showTabsInTaskbar.accesskey;"
+    <checkbox id="showTabsInTaskbar" data-l10n-id="show-tabs-in-taskbar"
               preference="browser.taskbar.previews.enable"/>
 #endif
 
     <vbox id="browserContainersbox" hidden="true">
       <hbox id="browserContainersExtensionContent" align="center">
         <description control="disableContainersExtension" flex="1" />
         <button id="disableContainersExtension"
                 class="extension-controlled-button accessory-button"
-                label="&disableExtension.label;" />
+                data-l10n-id="disable-extension" />
       </hbox>
       <hbox align="center">
         <checkbox id="browserContainersCheckbox"
                   class="tail-with-learn-more"
-                  label="&browserContainersEnabled.label;"
-                  accesskey="&browserContainersEnabled.accesskey;"
+                  data-l10n-id="browser-containers-enabled"
                   preference="privacy.userContext.enabled"
                   onsyncfrompreference="return gMainPane.readBrowserContainersCheckbox();"/>
-        <label id="browserContainersLearnMore" class="learnMore text-link">
-          &browserContainersLearnMore.label;
+        <label id="browserContainersLearnMore" class="learnMore text-link" data-l10n-id="browser-containers-learn-more">
         </label>
         <spacer flex="1"/>
         <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
         <hbox>
           <button id="browserContainersSettings"
                   class="accessory-button"
-                  label="&browserContainersSettings.label;"
-                  accesskey="&browserContainersSettings.accesskey;"
+                  data-l10n-id="browser-containers-settings"
                   searchkeywords="&addButton.label;
                                   &preferencesButton.label;
                                   &removeButton.label;"/>
         </hbox>
       </hbox>
     </vbox>
 </groupbox>
 
 <hbox id="languageAndAppearanceCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&languageAndAppearance.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="language-and-appearance-label"></label>
 </hbox>
 
 <!-- Fonts and Colors -->
 <groupbox id="fontsGroup" data-category="paneGeneral" hidden="true">
-  <caption><label>&fontsAndColors.label;</label></caption>
+  <caption><label data-l10n-id="fonts-and-colors-label"></label></caption>
 
   <vbox>
     <hbox id="fontSettings">
       <hbox align="center" flex="1">
-        <label control="defaultFont" accesskey="&defaultFont2.accesskey;">&defaultFont2.label;</label>
+        <label control="defaultFont" data-l10n-id="default-font-label"></label>
         <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
         <hbox flex="1">
           <menulist id="defaultFont" flex="1" delayprefsave="true" onsyncfrompreference="return FontBuilder.readFontSelection(this);"/>
         </hbox>
-        <label id="defaultFontSizeLabel" control="defaultFontSize" accesskey="&defaultSize2.accesskey;">&defaultSize2.label;</label>
+        <label id="defaultFontSizeLabel" control="defaultFontSize" data-l10n-id="default-font-size-label"></label>
         <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
         <hbox>
           <menulist id="defaultFontSize" delayprefsave="true">
             <menupopup>
               <menuitem value="9" label="9"/>
               <menuitem value="10" label="10"/>
               <menuitem value="11" label="11"/>
               <menuitem value="12" label="12"/>
@@ -256,18 +243,17 @@
         </hbox>
       </hbox>
 
       <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
       <hbox>
         <button id="advancedFonts"
                 class="accessory-button"
                 icon="select-font"
-                label="&advancedFonts.label;"
-                accesskey="&advancedFonts.accesskey;"
+                data-l10n-id="advanced-fonts"
                 searchkeywords="&fontsDialog.title;
                                 &fonts.label;
                                 &size2.label;
                                 &proportional2.label;
                                 &serif2.label;
                                 &sans-serif2.label;
                                 &monospace2.label;
                                 &font.langGroup.latin;
@@ -327,18 +313,17 @@
     </hbox>
     <hbox id="colorsSettings">
       <spacer flex="1" />
       <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
       <hbox>
         <button id="colors"
                 class="accessory-button"
                 icon="select-color"
-                label="&colors.label;"
-                accesskey="&colors.accesskey;"
+                data-l10n-id="colors-settings"
                 searchkeywords="&overrideDefaultPageColors2.label;
                                 &overrideDefaultPageColors.always.label;
                                 &overrideDefaultPageColors.auto.label;
                                 &overrideDefaultPageColors.never.label;
                                 &color;
                                 &textColor2.label;
                                 &backgroundColor2.label;
                                 &useSystemColors.label;
@@ -348,191 +333,175 @@
                                 &visitedLinkColor2.label;"/>
       </hbox>
     </hbox>
   </vbox>
 </groupbox>
 
 <!-- Languages -->
 <groupbox id="languagesGroup" data-category="paneGeneral" hidden="true">
-  <caption><label>&language2.label;</label></caption>
+  <caption><label data-l10n-id="language-label"></label></caption>
 
   <hbox id="languagesBox" align="center">
-    <description flex="1" control="chooseLanguage">&chooseLanguage.label;</description>
+    <description flex="1" control="chooseLanguage" data-l10n-id="choose-language-label"></description>
     <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
     <hbox>
       <button id="chooseLanguage"
               class="accessory-button"
-              label="&chooseButton.label;"
-              accesskey="&chooseButton.accesskey;"
+              data-l10n-id="choose-button"
               searchkeywords="&languages.customize.Header;
                               &languages.customize2.description;
                               &languages.customize.moveUp.label;
                               &languages.customize.moveDown.label;
                               &languages.customize.deleteButton.label;
                               &languages.customize.selectLanguage.label;
                               &languages.customize.addButton.label;"/>
     </hbox>
   </hbox>
 
   <hbox id="translationBox" hidden="true">
     <hbox align="center" flex="1">
       <checkbox id="translate" preference="browser.translation.detectLanguage"
-                label="&translateWebPages.label;." accesskey="&translateWebPages.accesskey;"
+                data-l10n-id="translate-web-pages"
                 onsyncfrompreference="return gMainPane.updateButtons('translateButton',
                                               'browser.translation.detectLanguage');"/>
       <hbox id="bingAttribution" hidden="true">
-        <label>&translation.options.attribution.beforeLogo;</label>
-        <separator orient="vertical" class="thin"/>
-        <image id="translationAttributionImage" aria-label="Microsoft Translator"
-               src="chrome://browser/content/microsoft-translator-attribution.png"/>
-        <separator orient="vertical" class="thin"/>
-        <label>&translation.options.attribution.afterLogo;</label>
+        <label data-l10n-id="translation-options-attribution">
+          <image id="translationAttributionImage" aria-label="Microsoft Translator"
+                 src="chrome://browser/content/microsoft-translator-attribution.png"/>
+        </label>
       </hbox>
     </hbox>
     <button id="translateButton"
             class="accessory-button"
-            label="&translateExceptions.label;"
-            accesskey="&translateExceptions.accesskey;"/>
+            data-l10n-id="translate-exceptions"/>
   </hbox>
   <checkbox id="checkSpelling"
-          label="&checkUserSpelling.label;"
-          accesskey="&checkUserSpelling.accesskey;"
+          data-l10n-id="check-user-spelling"
           onsyncfrompreference="return gMainPane.readCheckSpelling();"
           onsynctopreference="return gMainPane.writeCheckSpelling();"
           preference="layout.spellcheckDefault"/>
 </groupbox>
 
 <!-- Files and Applications -->
 <hbox id="filesAndApplicationsCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&filesAndApplications.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="files-and-applications"></label>
 </hbox>
 
 <!--Downloads-->
 <groupbox id="downloadsGroup" data-category="paneGeneral" hidden="true">
-  <caption><label>&downloads.label;</label></caption>
+  <caption><label data-l10n-id="downloads-label"></label></caption>
 
   <radiogroup id="saveWhere"
               preference="browser.download.useDownloadDir"
               onsyncfrompreference="return gMainPane.readUseDownloadDir();">
     <hbox id="saveToRow">
       <radio id="saveTo"
             value="true"
-            label="&saveTo.label;"
-            accesskey="&saveTo.accesskey;"
+            data-l10n-id="download-save-to"
             aria-labelledby="saveTo downloadFolder"/>
       <filefield id="downloadFolder"
                 flex="1"
                 preference="browser.download.folderList"
                 preference-editable="true"
                 aria-labelledby="saveTo"
                 onsyncfrompreference="return gMainPane.displayDownloadDirPref();"/>
       <button id="chooseFolder"
-#ifdef XP_MACOSX
-              accesskey="&chooseFolderMac.accesskey;"
-              label="&chooseFolderMac.label;"
-#else
-              accesskey="&chooseFolderWin.accesskey;"
-              label="&chooseFolderWin.label;"
-#endif
+              data-l10n-id="download-choose-folder"
       />
     </hbox>
     <!-- Additional radio button added to support CloudStorage - Bug 1357171 -->
     <radio id="saveToCloud"
           value="true"
           hidden="true"/>
     <radio id="alwaysAsk"
           value="false"
-          label="&alwaysAskWhere.label;"
-          accesskey="&alwaysAskWhere.accesskey;"/>
+          data-l10n-id="download-always-ask-where"/>
   </radiogroup>
 </groupbox>
 
 <groupbox id="applicationsGroup" data-category="paneGeneral" hidden="true">
-  <caption><label>&applications.label;</label></caption>
-  <description>&applications.description;</description>
+  <caption><label data-l10n-id="applications-label"></label></caption>
+  <description data-l10n-id="applications-description"></description>
   <textbox id="filter" flex="1"
            type="search"
-           placeholder="&filter2.emptytext;"
+           data-l10n-id="applications-filter-empty-text"
            aria-controls="handlersView"/>
 
   <richlistbox id="handlersView" orient="vertical" persist="lastSelectedType"
                preference="pref.downloads.disable_button.edit_actions"
                flex="1">
     <listheader equalsize="always">
-        <treecol id="typeColumn" label="&typeColumn.label;" value="type"
-                 accesskey="&typeColumn.accesskey;" persist="sortDirection"
+        <treecol id="typeColumn" data-l10n-id="applications-type-column" value="type"
+                 persist="sortDirection"
                  flex="1" sortDirection="ascending"/>
-        <treecol id="actionColumn" label="&actionColumn2.label;" value="action"
-                 accesskey="&actionColumn2.accesskey;" persist="sortDirection"
+        <treecol id="actionColumn" data-l10n-id="applications-action-column" value="action"
+                 persist="sortDirection"
                  flex="1"/>
     </listheader>
   </richlistbox>
 </groupbox>
 
 
 <!-- DRM Content -->
 <groupbox id="drmGroup" data-category="paneGeneral" data-subcategory="drm" hidden="true">
-  <caption><label>&drmContent2.label;</label></caption>
+  <caption><label data-l10n-id="drm-content-label"></label></caption>
   <grid id="contentGrid2">
     <columns>
       <column flex="1"/>
       <column/>
     </columns>
     <rows id="contentRows-2">
       <row id="playDRMContentRow">
         <hbox align="center">
           <checkbox id="playDRMContent" preference="media.eme.enabled"
-                    class="tail-with-learn-more" label="&playDRMContent2.label;" accesskey="&playDRMContent2.accesskey;"/>
-          <label id="playDRMContentLink" class="learnMore text-link">
-            &playDRMContent.learnMore.label;
+                    class="tail-with-learn-more" data-l10n-id="play-drm-content" />
+          <label id="playDRMContentLink" class="learnMore text-link" data-l10n-id="play-drm-content-learn-more">
           </label>
         </hbox>
       </row>
     </rows>
   </grid>
 </groupbox>
 
 #ifdef HAVE_SHELL_SERVICE
   <stringbundle id="bundleShell" src="chrome://browser/locale/shellservice.properties"/>
   <stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
 #endif
 
 <hbox id="updatesCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&updateApplication.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="update-application-label"></label>
 </hbox>
 
 <!-- Update -->
 <groupbox id="updateApp" data-category="paneGeneral" hidden="true">
-  <caption class="search-header" hidden="true"><label>&updateApplication.label;</label></caption>
+  <caption class="search-header" hidden="true"><label data-l10n-id="update-application-label"></label></caption>
 
-  <label>&updateApplicationDescription.label;</label>
+  <label data-l10n-id="update-application-description"></label>
   <hbox align="center">
     <vbox flex="1">
-      <description>
-        &updateApplication.version.pre;<label id="version" class="tail-with-learn-more" />&updateApplication.version.post;
-        <label id="releasenotes" class="learnMore text-link" hidden="true">&releaseNotes.link;</label>
+      <description id="updateAppInfo" data-l10n-id="update-application-info">
+        <label id="releasenotes" class="learnMore text-link" hidden="true"></label>
       </description>
       <description id="distribution" class="text-blurb" hidden="true"/>
       <description id="distributionId" class="text-blurb" hidden="true"/>
     </vbox>
 #ifdef MOZ_UPDATER
     <spacer flex="1"/>
     <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
     <vbox>
       <button id="showUpdateHistory"
               class="accessory-button"
-              label="&updateHistory2.label;"
-              accesskey="&updateHistory2.accesskey;"
+              data-l10n-id="update-history"
               preference="app.update.disable_button.showUpdateHistory"
               searchkeywords="&history.title; &history2.intro;"/>
     </vbox>
 #endif
   </hbox>
 #ifdef MOZ_UPDATER
   <vbox id="updateBox">
     <deck id="updateDeck" orient="vertical">
@@ -624,144 +593,133 @@
                 accesskey="&update.updateButton.accesskey;"
                 disabled="true"/>
       </hbox>
     </deck>
   </vbox>
 #endif
 
 #ifdef MOZ_UPDATER
-  <description>&updateApplication.description;</description>
+  <description data-l10n-id="update-application-allow-description"></description>
   <radiogroup id="updateRadioGroup">
     <radio id="autoDesktop"
            value="auto"
-           label="&updateAuto3.label;"
-           accesskey="&updateAuto3.accesskey;"/>
+           data-l10n-id="update-application-auto"/>
     <radio value="checkOnly"
-          label="&updateCheckChoose2.label;"
-          accesskey="&updateCheckChoose2.accesskey;"/>
+           data-l10n-id="update-application-check-choose"/>
     <radio value="manual"
-          label="&updateManual2.label;"
-          accesskey="&updateManual2.accesskey;"/>
+           data-l10n-id="update-application-manual"/>
   </radiogroup>
 #ifdef MOZ_MAINTENANCE_SERVICE
   <checkbox id="useService"
-            label="&useService.label;"
-            accesskey="&useService.accesskey;"
+            data-l10n-id="update-application-use-service"
             preference="app.update.service.enabled"/>
 #endif
 #endif
   <checkbox id="enableSearchUpdate"
-            label="&enableSearchUpdate2.label;"
-            accesskey="&enableSearchUpdate2.accesskey;"
+            data-l10n-id="update-enable-search-update"
             preference="browser.search.update"/>
 </groupbox>
 
 <hbox id="performanceCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&performance.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="performance-label"></label>
 </hbox>
 
 <!-- Performance -->
 <groupbox id="performanceGroup" data-category="paneGeneral" hidden="true">
-  <caption class="search-header" hidden="true"><label>&performance.label;</label></caption>
+  <caption class="search-header" hidden="true"><label data-l10n-id="performance-label"></label></caption>
 
   <hbox align="center">
     <checkbox id="useRecommendedPerformanceSettings"
               class="tail-with-learn-more"
-              label="&useRecommendedPerformanceSettings2.label;"
-              accesskey="&useRecommendedPerformanceSettings2.accesskey;"
+              data-l10n-id="performance-use-recommended-settings-checkbox"
               preference="browser.preferences.defaultPerformanceSettings.enabled"/>
-    <label id="performanceSettingsLearnMore" class="learnMore text-link">&performanceSettingsLearnMore.label;</label>
+    <label id="performanceSettingsLearnMore" class="learnMore text-link" data-l10n-id="performance-settings-learn-more"></label>
   </hbox>
-  <description class="indent tip-caption">&useRecommendedPerformanceSettings2.description;</description>
+  <description class="indent tip-caption" data-l10n-id="performance-use-recommended-settings-desc"></description>
 
   <vbox id="performanceSettings" class="indent" hidden="true">
     <checkbox id="allowHWAccel"
-              label="&allowHWAccel.label;"
-              accesskey="&allowHWAccel.accesskey;"
+              data-l10n-id="performance-allow-hw-accel"
               preference="layers.acceleration.disabled"/>
     <hbox align="center">
-      <label id="limitContentProcess" accesskey="&limitContentProcessOption.accesskey;" control="contentProcessCount">&limitContentProcessOption.label;</label>
+      <label id="limitContentProcess" data-l10n-id="performance-limit-content-process-options" control="contentProcessCount"></label>
       <menulist id="contentProcessCount" preference="dom.ipc.processCount">
         <menupopup>
           <menuitem label="1" value="1"/>
           <menuitem label="2" value="2"/>
           <menuitem label="3" value="3"/>
           <menuitem label="4" value="4"/>
           <menuitem label="5" value="5"/>
           <menuitem label="6" value="6"/>
           <menuitem label="7" value="7"/>
         </menupopup>
       </menulist>
     </hbox>
-    <description id="contentProcessCountEnabledDescription" class="tip-caption">&limitContentProcessOption.description;</description>
-    <description id="contentProcessCountDisabledDescription" class="tip-caption">&limitContentProcessOption.disabledDescription;<label class="text-link" href="https://wiki.mozilla.org/Electrolysis">&limitContentProcessOption.disabledDescriptionLink;</label></description>
+    <description id="contentProcessCountEnabledDescription" class="tip-caption" data-l10n-id="performance-limit-content-process-enabled-desc"></description>
+    <description id="contentProcessCountDisabledDescription" class="tip-caption" data-l10n-id="performance-limit-content-process-disabled-desc">
+      <label class="text-link" href="https://wiki.mozilla.org/Electrolysis"></label>
+    </description>
   </vbox>
 </groupbox>
 
 <hbox id="browsingCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&browsing.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="browsing-label"></label>
 </hbox>
 
 <!-- Browsing -->
 <groupbox id="browsingGroup" data-category="paneGeneral" hidden="true">
-  <caption class="search-header" hidden="true"><label>&browsing.label;</label></caption>
+  <caption class="search-header" hidden="true"><label data-l10n-id="browsing-label"></label></caption>
 
   <checkbox id="useAutoScroll"
-            label="&useAutoScroll.label;"
-            accesskey="&useAutoScroll.accesskey;"
+            data-l10n-id="browsing-use-autoscroll"
             preference="general.autoScroll"/>
   <checkbox id="useSmoothScrolling"
-            label="&useSmoothScrolling.label;"
-            accesskey="&useSmoothScrolling.accesskey;"
+            data-l10n-id="browsing-use-smooth-scrolling"
             preference="general.smoothScroll"/>
 
 #ifdef XP_WIN
   <checkbox id="useOnScreenKeyboard"
             hidden="true"
-            label="&useOnScreenKeyboard.label;"
-            accesskey="&useOnScreenKeyboard.accesskey;"
+            data-l10n-id="browsing-use-onscreen-keyboard"
             preference="ui.osk.enabled"/>
 #endif
   <checkbox id="useCursorNavigation"
-            label="&useCursorNavigation.label;"
-            accesskey="&useCursorNavigation.accesskey;"
+            data-l10n-id="browsing-use-cursor-navigation"
             preference="accessibility.browsewithcaret"/>
   <checkbox id="searchStartTyping"
-            label="&searchOnStartTyping.label;"
-            accesskey="&searchOnStartTyping.accesskey;"
+            data-l10n-id="browsing-search-on-start-typing"
             preference="accessibility.typeaheadfind"/>
 </groupbox>
 
 <hbox id="networkProxyCategory"
       class="subcategory"
       hidden="true"
       data-category="paneGeneral">
-  <label class="header-name" flex="1">&networkProxy.label;</label>
+  <label class="header-name" flex="1" data-l10n-id="network-proxy-label"></label>
 </hbox>
 
 <!-- Network Proxy-->
 <groupbox id="connectionGroup" data-category="paneGeneral" hidden="true">
-  <caption class="search-header" hidden="true"><label>&networkProxy.label;</label></caption>
+  <caption class="search-header" hidden="true"><label data-l10n-id="network-proxy-label"></label></caption>
 
   <hbox align="center">
-    <description flex="1" control="connectionSettings">&connectionDesc.label;</description>
+    <description flex="1" control="connectionSettings" data-l10n-id="network-proxy-connection-desc"></description>
     <!-- Please don't remove the wrapping hbox/vbox/box for these elements. It's used to properly compute the search tooltip position. -->
     <hbox>
       <button id="connectionSettings"
               class="accessory-button"
               icon="network"
-              label="&connectionSettings.label;"
-              accesskey="&connectionSettings.accesskey;"
+              data-l10n-id="network-proxy-connection-settings"
               searchkeywords="&connectionsDialog.title;
                               &noProxyTypeRadio.label;
                               &WPADTypeRadio.label;
                               &systemTypeRadio.label;
                               &manualTypeRadio2.label;
                               &http2.label;
                               &ssl2.label;
                               &ftp2.label;
--- a/browser/components/preferences/in-content/preferences.xul
+++ b/browser/components/preferences/in-content/preferences.xul
@@ -30,30 +30,26 @@
 <!ENTITY % passwordManagerDTD SYSTEM "chrome://passwordmgr/locale/passwordManager.dtd">
 <!ENTITY % historyDTD SYSTEM "chrome://mozapps/locale/update/history.dtd">
 <!ENTITY % certManagerDTD SYSTEM "chrome://pippki/locale/certManager.dtd">
 <!ENTITY % deviceManangerDTD SYSTEM "chrome://pippki/locale/deviceManager.dtd">
 <!ENTITY % connectionDTD SYSTEM "chrome://browser/locale/preferences/connection.dtd">
 <!ENTITY % siteDataSettingsDTD SYSTEM
   "chrome://browser/locale/preferences/siteDataSettings.dtd" >
 <!ENTITY % privacyDTD SYSTEM "chrome://browser/locale/preferences/privacy.dtd">
-<!ENTITY % tabsDTD SYSTEM "chrome://browser/locale/preferences/tabs.dtd">
 <!ENTITY % searchDTD SYSTEM "chrome://browser/locale/preferences/search.dtd">
 <!ENTITY % syncBrandDTD SYSTEM "chrome://browser/locale/syncBrand.dtd">
 <!ENTITY % syncDTD SYSTEM "chrome://browser/locale/preferences/sync.dtd">
 <!ENTITY % securityDTD SYSTEM
   "chrome://browser/locale/preferences/security.dtd">
 <!ENTITY % containersDTD SYSTEM
   "chrome://browser/locale/preferences/containers.dtd">
 <!ENTITY % sanitizeDTD SYSTEM "chrome://browser/locale/sanitize.dtd">
-<!ENTITY % mainDTD SYSTEM "chrome://browser/locale/preferences/main.dtd">
 <!ENTITY % aboutHomeDTD SYSTEM "chrome://browser/locale/aboutHome.dtd">
 <!ENTITY % contentDTD SYSTEM "chrome://browser/locale/preferences/content.dtd">
-<!ENTITY % applicationsDTD SYSTEM
-  "chrome://browser/locale/preferences/applications.dtd">
 <!ENTITY % advancedDTD SYSTEM
   "chrome://browser/locale/preferences/advanced.dtd">
 <!ENTITY % aboutDialogDTD SYSTEM "chrome://browser/locale/aboutDialog.dtd" >
 %aboutDialogDTD;
 %brandDTD;
 %globalPreferencesDTD;
 %preferencesDTD;
 %selectBookmarkDTD;
@@ -63,42 +59,38 @@
 %permissionsDTD;
 %passwordManagerDTD;
 %historyDTD;
 %certManagerDTD;
 %deviceManangerDTD;
 %connectionDTD;
 %siteDataSettingsDTD;
 %privacyDTD;
-%tabsDTD;
 %searchDTD;
 %syncBrandDTD;
 %syncDTD;
 %securityDTD;
 %containersDTD;
 %sanitizeDTD;
-%mainDTD;
 %aboutHomeDTD;
 %contentDTD;
-%applicationsDTD;
 %advancedDTD;
 ]>
 
 #ifdef XP_WIN
 #define USE_WIN_TITLE_STYLE
 #endif
 
 <page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
       xmlns:html="http://www.w3.org/1999/xhtml"
       disablefastfind="true"
       data-l10n-id="pref-page"
       data-l10n-attrs="title">
 
   <link rel="localization" href="branding/brand.ftl"/>
-  <link rel="localization" href="browser/preferences/main.ftl"/>
   <link rel="localization" href="browser/preferences/preferences.ftl"/>
   <script type="text/javascript" src="chrome://global/content/l10n.js"></script>
 
   <html:link rel="shortcut icon"
               href="chrome://browser/skin/settings.svg"/>
 
   <script type="application/javascript"
           src="chrome://browser/content/utilityOverlay.js"/>
deleted file mode 100644
--- a/browser/locales/en-US/browser/preferences/main.ftl
+++ /dev/null
@@ -1,4 +0,0 @@
-// Variables:
-//   $num - default value of the `dom.ipc.processCount` pref.
-default-content-process-count
-    .label = { $num } (default)
--- a/browser/locales/en-US/browser/preferences/preferences.ftl
+++ b/browser/locales/en-US/browser/preferences/preferences.ftl
@@ -79,8 +79,297 @@ extension-controlled-newTabURL = An exte
 extension-controlled-defaultSearch = An extension, <image/> { $name }, has set your default search engine.
 extension-controlled-privacy-containers = An extension, <image/> { $name }, requires Container Tabs.
 extension-controlled-trackingProtectionMode = An extension, <image/> { $name }, is controlling tracking protection.
 
 # Variables:
 #   $addonIcon (HTML): An icon for the Add-ons menu
 #   $toolbarIcon (HTML): An icon for the toolbar menu
 extension-controlled-enable = To enable the extension go to { $addonIcon } Add-ons in the { $toolbarIcon } menu.
+
+## General Section
+
+pane-general-title = General
+
+startup-label = Startup
+
+separate-profile-mode =
+    .label = Allow { -brand-short-name } and Firefox to run at the same time
+use-firefox-sync = Tip: This uses separate profiles. Use Sync to share data between them.
+get-started-not-logged-in = Sign in to { -sync-brand-short-name }…
+get-started-configured = Open { -sync-brand-short-name } preferences
+
+always-check-default =
+    .label = Always check if { -brand-short-name } is your default browser
+    .accesskey = y
+
+is-default = { -brand-short-name } is currently your default browser
+is-not-default = { -brand-short-name } is not your default browser
+
+set-as-my-default-browser =
+    .label = Make Default…
+    .accesskey = D
+
+startup-page =
+    .label = When { -brand-short-name } starts
+    .accesskey = s
+
+startup-user-homepage =
+    .label = Show your home page
+startup-blank-page =
+    .label = Show a blank page
+startup-prev-session =
+    .label = Show your windows and tabs from last time
+
+disable-extension =
+    .label = Disable Extension
+
+home-page-label = Home page
+
+use-current-page =
+    .label =
+        { $tabCount ->
+            [one] Use Current Page
+           *[other] Use Current Pages
+        }
+    .accesskey = C
+
+choose-bookmark =
+    .label = Use Bookmark…
+    .accesskey = B
+
+restore-default =
+    .label = Restore to Default
+    .accesskey = R
+
+tabs-group-label = Tabs
+
+
+ctrl-tab-recently-used-order =
+    .label = Ctrl+Tab cycles through tabs in recently used order
+    .accesskey = T
+
+new-windows-as-tabs =
+    .label = Open links in tabs instead of new windows
+    .acccesskey = w
+
+warn-on-close-multiple-tabs =
+    .label = Warn you when closing multiple tabs
+    .accesskey = m
+
+warn-on-open-many-tabs =
+    .label = Warn you when opening multiple tabs might slow down { -brand-short-name }
+    .accesskey = d
+
+switch-links-to-new-tabs =
+    .label = When you open a link in a new tab, switch to it immediatel
+    .accesskey = h
+
+show-tabs-in-taskbar =
+    .label = Show tab previews in the Windows taskbar
+    .accesskey = k
+
+browser-containers-enabled =
+    .label = Enable Container Tabs
+    .accesskey = n
+
+browser-containers-learn-more = Learn more
+
+browser-containers-settings =
+    .label = Settings…
+    .accesskey = i
+
+containers-disable-alert-title = Close All Container Tabs?
+containers-disable-alert-desc =
+    { $tabCount ->
+        [one] If you disable Container Tabs now, { $tabCount } container tab will be closed. Are you sure you want to disable Container Tabs?
+       *[other] If you disable Container Tabs now, { $tabCount } container tabs will be closed. Are you sure you want to disable Container Tabs?
+    }
+
+containers-disable-alert-ok-button =
+    { $tabsCount ->
+        [one] Close { $tabCount } Container Tab
+       *[other] Close { $tabCount } Container Tabs
+    }
+containers-disable-alert-cancel-button = Keep enabled
+
+## General Section - Language & Appearance
+
+language-and-appearance-label = Language and Appearance
+
+fonts-and-colors = Fonts & Colors
+
+default-font-label = Default font
+    .accesskey = D
+default-font-size-label = Size
+    .accesskey = S
+
+advanced-fonts =
+    .label = Advanced…
+    .accesskey = A
+
+colors-settings =
+    .label = Colors…
+    .accesskey = C
+
+language-label = Language
+
+choose-language-label = Choose your preferred language for displaying pages
+
+choose-button =
+    .label = Choose…
+    .accesskey = o
+
+translate-web-pages =
+    .label = Translate web content
+    .accesskey = T
+
+translation-options-attribution = Translations by <image />
+
+translate-exceptions =
+    .label = Exceptions…
+    .accesskey = x
+
+check-user-spelling =
+    .label = Check your spelling as you type
+    .accesskey = t
+
+## General Section - Files and Applications
+
+files-and-applications-label = Files and Applications
+
+download-label = Downloads
+
+download-save-to =
+    .label = Save files to
+    .accesskey = v
+
+download-choose-folder =
+    .label =
+        { PLATFORM() ->
+            [macosx] Choose…
+           *[other] Browse…
+        }
+    .accesskey =
+        { PLATFORM() ->
+            [macosx] e
+           *[other] o
+        }
+
+download-always-ask-where =
+    .label = Always ask you where to save files
+    .accesskey = A
+
+applications-label = Applications
+
+applications-description = Choose how { -brand-short-name } handles the files you download from the web or the applications you use while browsing.
+
+applications-filter-empty-text = Search file types or applications
+
+applications-type-column =
+    .label = Content Type
+    .accesskey = T
+
+applications-action-column =
+    .label = Action
+    .accesskey = A
+
+drm-content-label = Digital Rights Management (DRM) Content
+
+play-drm-content =
+    .label = Play DRM-controlled content
+    .accesskey = P
+
+play-drm-content-learn-more = Learn more
+
+# Strings from aboutDialog.dtd are displayed in this section of the preferences.
+# Please check for possible accesskey conflicts.
+update-application-label = { -brand-short-name } Updates
+
+update-application-description = Keep { -brand-short-name } up to date for the best performance, stability, and security.
+
+update-application-info = Version { $version }. <label>What's new</label>
+
+update-history =
+    .label = Show Update History…
+    .accesskey = p
+
+update-application-allow-description = Allow { -brand-short-name } to
+
+update-application-auto =
+    .label = Automatically install updates (recommended)
+    .accesskey = A
+
+update-application-check-choose =
+    .label = Check for updates but let you choose to install them
+    .accesskey = C
+
+update-application-manual =
+    .label = Never check for updates (not recommended)
+    .accesskey = N
+
+update-application-use-service =
+    .label = Use a background service to install updates
+    .accesskey = b
+
+update-enable-search-update =
+    .label = Automatically update search engines
+    .accesskey = e
+
+## General Section - Performance
+
+performance-label = Performance
+
+performance-use-recommended-settings-checkbox =
+    .label = Use recommended performance settings
+    .accesskey = U
+
+performance-use-recommended-settings-desc = These settings are tailored to your computer’s hardware and operating system.
+
+performance-settings-learn-more = Learn more
+
+performance-allow-hw-accel =
+    .label = Use hardware acceleration when available
+    .accesskey = r
+
+performance-limit-content-process-option = Content process limit
+    .accesskey = L
+
+performance-limit-content-process-enabled-desc = Additional content processes can improve performance when using multiple tabs, but will also use more memory.
+performance-limit-content-process-disabled-desc = Modifying the number of content processes is only possible with multiprocess { -brand-short-name }. <label>Learn how to check if multiprocess is enabled</label>
+
+# Variables:
+#   $num - default value of the `dom.ipc.processCount` pref.
+performance-default-content-process-count = { $num } (default)
+
+## General Section - Browsing
+
+browsing-label = Browsing
+
+browsing-use-autoscroll =
+    .label = Use autoscrolling
+    .accesskey = a
+
+browsing-use-smooth-scrolling =
+    .label = Use smooth scrolling
+    .accesskey = m
+
+browsing-use-onscreen-keyboard =
+    .label = Show a touch keyboard when necessary
+    .accesskey = k
+
+browsing-cursor-navigation =
+    .label = Show a touch keyboard when necessary
+    .accesskey = k
+
+browsing-search-on-start-typing =
+    .label = Search for text when you start typing
+    .accesskey = x
+
+## General Section - Proxy
+
+network-proxy-label = Network Proxy
+
+network-proxy-connection-desc = Configure how { -brand-short-name } connects to the Internet
+
+network-proxy-connection-settings =
+    .label = Settings…
+    .accesskey = e
--- a/browser/locales/en-US/chrome/browser/preferences/advanced.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/advanced.dtd
@@ -3,29 +3,16 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!-- Note: each tab panel must contain unique accesskeys -->
 
 <!ENTITY generalTab.label                "General">
 
 <!ENTITY useCursorNavigation.label       "Always use the cursor keys to navigate within pages">
 <!ENTITY useCursorNavigation.accesskey   "c">
-<!ENTITY searchOnStartTyping.label       "Search for text when you start typing">
-<!ENTITY searchOnStartTyping.accesskey   "x">
-<!ENTITY useOnScreenKeyboard.label       "Show a touch keyboard when necessary">
-<!ENTITY useOnScreenKeyboard.accesskey   "k">
-
-<!ENTITY browsing.label                  "Browsing">
-
-<!ENTITY useAutoScroll.label             "Use autoscrolling">
-<!ENTITY useAutoScroll.accesskey         "a">
-<!ENTITY useSmoothScrolling.label        "Use smooth scrolling">
-<!ENTITY useSmoothScrolling.accesskey    "m">
-<!ENTITY checkUserSpelling.label         "Check your spelling as you type">
-<!ENTITY checkUserSpelling.accesskey     "t">
 
 <!ENTITY dataChoicesTab.label            "Data Choices">
 
 <!-- LOCALIZATION NOTE (healthReportingDisabled.label): This message is displayed above
 disabled data sharing options in developer builds or builds with no Telemetry support
 available. -->
 <!ENTITY healthReportingDisabled.label   "Data reporting is disabled for this build configuration">
 
@@ -38,22 +25,16 @@ available. -->
 <!ENTITY dataCollectionPrivacyNotice.label    "Privacy Notice">
 
 <!ENTITY alwaysSubmitCrashReports1.label  "Allow &brandShortName; to send crash reports to Mozilla">
 <!ENTITY alwaysSubmitCrashReports1.accesskey "c">
 <!ENTITY crashReporterLearnMore.label    "Learn more">
 
 <!ENTITY networkTab.label                "Network">
 
-<!ENTITY networkProxy.label              "Network Proxy">
-
-<!ENTITY connectionDesc.label            "Configure how &brandShortName; connects to the Internet">
-<!ENTITY connectionSettings.label        "Settings…">
-<!ENTITY connectionSettings.accesskey    "e">
-
 <!ENTITY httpCache.label                 "Cached Web Content">
 
 <!--  Site Data section manages sites using Storage API and is under Network -->
 <!ENTITY siteData.label                  "Site Data">
 <!ENTITY clearSiteData.label             "Clear All Data">
 <!ENTITY clearSiteData.accesskey         "l">
 <!ENTITY siteDataSettings.label          "Settings…">
 <!ENTITY siteDataSettings.accesskey      "i">
@@ -70,72 +51,20 @@ available. -->
 <!ENTITY limitCacheSizeAfter.label       "MB of space">
 <!ENTITY clearCacheNow.label             "Clear Now">
 <!ENTITY clearCacheNow.accesskey         "C">
 <!ENTITY overrideSmartCacheSize.label    "Override automatic cache management">
 <!ENTITY overrideSmartCacheSize.accesskey "O">
 
 <!ENTITY updateTab.label                 "Update">
 
-<!-- LOCALIZATION NOTE (updateApplication.label):
-  Strings from aboutDialog.dtd are displayed in this section of the preferences.
-  Please check for possible accesskey conflicts.
--->
-<!ENTITY updateApplication.label         "&brandShortName; Updates">
-<!-- LOCALIZATION NOTE (updateApplication.version.*): updateApplication.version.pre
-# is followed by a version number, keep the trailing space or replace it with a
-# different character as needed. updateApplication.version.post is displayed
-# after the version number, and is empty on purpose for English. You can use it
-# if required by your language.
- -->
-<!ENTITY updateApplicationDescription.label
-                                         "Keep &brandShortName; up to date for the best performance, stability, and security.">
-<!ENTITY updateApplication.version.pre   "Version ">
-<!ENTITY updateApplication.version.post  "">
-<!ENTITY updateApplication.description   "Allow &brandShortName; to">
-<!ENTITY updateAuto3.label               "Automatically install updates (recommended)">
-<!ENTITY updateAuto3.accesskey           "A">
-<!ENTITY updateCheckChoose2.label        "Check for updates but let you choose to install them">
-<!ENTITY updateCheckChoose2.accesskey    "C">
-<!ENTITY updateManual2.label             "Never check for updates (not recommended)">
-<!ENTITY updateManual2.accesskey         "N">
-
-<!ENTITY updateHistory2.label            "Show Update History…">
-<!ENTITY updateHistory2.accesskey        "p">
-
-<!ENTITY useService.label                "Use a background service to install updates">
-<!ENTITY useService.accesskey            "b">
-
-<!ENTITY enableSearchUpdate2.label       "Automatically update search engines">
-<!ENTITY enableSearchUpdate2.accesskey   "e">
-
 <!ENTITY certificateTab.label            "Certificates">
 <!ENTITY certPersonal2.description       "When a server requests your personal certificate">
 <!ENTITY selectCerts.auto                "Select one automatically">
 <!ENTITY selectCerts.auto.accesskey      "S">
 <!ENTITY selectCerts.ask                 "Ask you every time">
 <!ENTITY selectCerts.ask.accesskey       "A">
 <!ENTITY enableOCSP.label                "Query OCSP responder servers to confirm the current validity of certificates">
 <!ENTITY enableOCSP.accesskey            "Q">
 <!ENTITY viewCerts2.label                "View Certificates…">
 <!ENTITY viewCerts2.accesskey            "C">
 <!ENTITY viewSecurityDevices2.label      "Security Devices…">
 <!ENTITY viewSecurityDevices2.accesskey  "D">
-
-<!ENTITY performance.label               "Performance">
-<!ENTITY useRecommendedPerformanceSettings2.label
-                                         "Use recommended performance settings">
-<!ENTITY useRecommendedPerformanceSettings2.description
-                                         "These settings are tailored to your computer’s hardware and operating system.">
-<!ENTITY useRecommendedPerformanceSettings2.accesskey
-                                         "U">
-<!ENTITY performanceSettingsLearnMore.label
-                                         "Learn more">
-<!ENTITY limitContentProcessOption.label "Content process limit">
-<!ENTITY limitContentProcessOption.description
-                                         "Additional content processes can improve performance when using multiple tabs, but will also use more memory.">
-<!ENTITY limitContentProcessOption.accesskey   "L">
-<!ENTITY limitContentProcessOption.disabledDescription
-                                         "Modifying the number of content processes is only possible with multiprocess &brandShortName;.">
-<!ENTITY limitContentProcessOption.disabledDescriptionLink
-                                         "Learn how to check if multiprocess is enabled">
-<!ENTITY allowHWAccel.label              "Use hardware acceleration when available">
-<!ENTITY allowHWAccel.accesskey          "r">
deleted file mode 100644
--- a/browser/locales/en-US/chrome/browser/preferences/applications.dtd
+++ /dev/null
@@ -1,14 +0,0 @@
-<!-- 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  applications.label       "Applications">
-<!ENTITY  applications.description "Choose how &brandShortName; handles the files you download from the web or the applications you use while browsing.">
-
-<!ENTITY  typeColumn.label        "Content Type">
-<!ENTITY  typeColumn.accesskey    "T">
-
-<!ENTITY  actionColumn2.label     "Action">
-<!ENTITY  actionColumn2.accesskey "A">
-
-<!ENTITY  filter2.emptytext        "Search file types or applications">
--- a/browser/locales/en-US/chrome/browser/preferences/content.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/content.dtd
@@ -21,48 +21,8 @@
 
 <!ENTITY  cameraPermissions.label                               "Camera">
 <!ENTITY  cameraSettingsButton.label                            "Settings…">
 <!ENTITY  cameraSettingsButton.accesskey                        "t">
 
 <!ENTITY  microphonePermissions.label                           "Microphone">
 <!ENTITY  microphoneSettingsButton.label                        "Settings…">
 <!ENTITY  microphoneSettingsButton.accesskey                    "t">
-
-<!ENTITY  fontsAndColors.label        "Fonts &amp; Colors">
-
-<!ENTITY  defaultFont2.label          "Default font">
-<!ENTITY  defaultFont2.accesskey      "D">
-<!ENTITY  defaultSize2.label          "Size">
-<!ENTITY  defaultSize2.accesskey      "S">
-
-<!ENTITY  advancedFonts.label         "Advanced…">
-<!ENTITY  advancedFonts.accesskey     "A">
-
-<!ENTITY  colors.label                "Colors…">
-<!ENTITY  colors.accesskey            "C">
-
-
-<!ENTITY language2.label              "Language">
-<!ENTITY chooseLanguage.label         "Choose your preferred language for displaying pages">
-<!ENTITY chooseButton.label           "Choose…">
-<!ENTITY chooseButton.accesskey       "o">
-
-<!ENTITY translateWebPages.label      "Translate web content">
-<!ENTITY translateWebPages.accesskey  "T">
-<!ENTITY translateExceptions.label    "Exceptions…">
-<!ENTITY translateExceptions.accesskey "x">
-
-<!-- LOCALIZATION NOTE (translation.options.attribution.beforeLogo,
-  -                     translation.options.attribution.afterLogo):
-  -  These 2 strings are displayed before and after a 'Microsoft Translator'
-  -  logo.
-  -  The translations for these strings should match the translations in
-  -  browser/translation.dtd
-  -->
-<!ENTITY translation.options.attribution.beforeLogo "Translations by">
-<!ENTITY translation.options.attribution.afterLogo "">
-
-<!ENTITY  drmContent2.label              "Digital Rights Management (DRM) Content">
-
-<!ENTITY  playDRMContent2.label          "Play DRM-controlled content">
-<!ENTITY  playDRMContent2.accesskey      "P">
-<!ENTITY  playDRMContent.learnMore.label "Learn more">
deleted file mode 100644
--- a/browser/locales/en-US/chrome/browser/preferences/main.dtd
+++ /dev/null
@@ -1,46 +0,0 @@
-<!-- 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 startup.label             "Startup">
-
-<!ENTITY startupPage2.label        "When &brandShortName; starts">
-<!ENTITY startupPage2.accesskey    "s">
-<!ENTITY startupUserHomePage.label "Show your home page">
-<!ENTITY startupBlankPage.label    "Show a blank page">
-<!ENTITY startupPrevSession.label  "Show your windows and tabs from last time">
-
-<!ENTITY homepage2.label           "Home page">
-<!ENTITY homepage2.accesskey       "P">
-<!ENTITY useCurrentPage.label      "Use Current Page">
-<!ENTITY useCurrentPage.accesskey  "C">
-<!ENTITY useMultiple.label         "Use Current Pages">
-<!ENTITY chooseBookmark.label      "Use Bookmark…">
-<!ENTITY chooseBookmark.accesskey  "B">
-<!ENTITY restoreDefault.label      "Restore to Default">
-<!ENTITY restoreDefault.accesskey  "R">
-
-<!ENTITY disableExtension.label    "Disable Extension">
-
-<!ENTITY downloads.label     "Downloads">
-
-<!ENTITY saveTo.label "Save files to">
-<!ENTITY saveTo.accesskey "v">
-<!ENTITY chooseFolderWin.label        "Browse…">
-<!ENTITY chooseFolderWin.accesskey    "o">
-<!ENTITY chooseFolderMac.label        "Choose…">
-<!ENTITY chooseFolderMac.accesskey    "e">
-<!ENTITY alwaysAskWhere.label         "Always ask you where to save files">
-<!ENTITY alwaysAskWhere.accesskey     "A">
-
-<!ENTITY alwaysCheckDefault2.label        "Always check if &brandShortName; is your default browser">
-<!ENTITY alwaysCheckDefault2.accesskey    "y">
-<!ENTITY setAsMyDefaultBrowser3.label     "Make Default…">
-<!ENTITY setAsMyDefaultBrowser3.accesskey "D">
-<!ENTITY isDefault.label                  "&brandShortName; is currently your default browser">
-<!ENTITY isNotDefault.label               "&brandShortName; is not your default browser">
-
-<!ENTITY separateProfileMode.label        "Allow &brandShortName; and Firefox to run at the same time">
-<!ENTITY useFirefoxSync.label             "Tip: This uses separate profiles. Use Sync to share data between them.">
-<!ENTITY getStarted.notloggedin.label     "Sign in to &syncBrand.shortName.label;…">
-<!ENTITY getStarted.configured.label      "Open &syncBrand.shortName.label; preferences">
--- a/browser/locales/en-US/chrome/browser/preferences/preferences.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/preferences.dtd
@@ -1,15 +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/. -->
 
 <!ENTITY  paneSearchResults.title       "Search Results">
-<!ENTITY  paneGeneral.title             "General">
 <!ENTITY  paneSearch.title              "Search">
 <!ENTITY  paneContainers.title          "Container Tabs">
 
-<!ENTITY  languageAndAppearance.label   "Language and Appearance">
-<!ENTITY  filesAndApplications.label    "Files and Applications">
+
 <!ENTITY  browserPrivacy.label          "Browser Privacy">
 
 <!-- LOCALIZATION NOTE (paneSync1.title): This should match syncBrand.fxAccount.label in ../syncBrand.dtd -->
 <!ENTITY  paneSync1.title          "Firefox Account">
--- a/browser/locales/en-US/chrome/browser/preferences/preferences.properties
+++ b/browser/locales/en-US/chrome/browser/preferences/preferences.properties
@@ -224,30 +224,16 @@ spaceAlert.under5GB.okButton.accesskey=K
 # LOCALIZATION NOTE (spaceAlert.under5GB.message): %S = brandShortName
 spaceAlert.under5GB.message=%S is running out of disk space. Website contents may not display properly. Visit “Learn More” to optimize your disk usage for better browsing experience.
 
 # LOCALIZATION NOTE (featureEnableRequiresRestart, featureDisableRequiresRestart, restartTitle): %S = brandShortName
 shouldRestartTitle=Restart %S
 okToRestartButton=Restart %S now
 revertNoRestartButton=Revert
 
-disableContainersAlertTitle=Close All Container Tabs?
-
-# LOCALIZATION NOTE (disableContainersMsg): Semi-colon list of plural forms.
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-# #S is the number of container tabs
-disableContainersMsg=If you disable Container Tabs now, #S container tab will be closed. Are you sure you want to disable Container Tabs?;If you disable Container Tabs now, #S container tabs will be closed. Are you sure you want to disable Container Tabs?
-
-# LOCALIZATION NOTE (disableContainersOkButton): Semi-colon list of plural forms.
-# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
-# #S is the number of container tabs
-disableContainersOkButton=Close #S Container Tab;Close #S Container Tabs
-
-disableContainersButton2=Keep enabled
-
 removeContainerAlertTitle=Remove This Container?
 
 # LOCALIZATION NOTE (removeContainerMsg): Semi-colon list of plural forms.
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #S is the number of container tabs
 removeContainerMsg=If you remove this Container now, #S container tab will be closed. Are you sure you want to remove this Container?;If you remove this Container now, #S container tabs will be closed. Are you sure you want to remove this Container?
 
 removeContainerOkButton=Remove this Container
@@ -262,11 +248,8 @@ searchInput.labelUnix=Find in Preference
 # LOCALIZATION NOTE %S will be replaced by the word being searched
 searchResults.sorryMessageWin=Sorry! There are no results in Options for “%S”.
 searchResults.sorryMessageUnix=Sorry! There are no results in Preferences for “%S”.
 # LOCALIZATION NOTE (searchResults.needHelp3): %S will be replaced with a link to the support page.
 # The label of the link is in searchResults.needHelpSupportLink .
 searchResults.needHelp3=Need help? Visit %S
 # LOCALIZATION NOTE (searchResults.needHelpSupportLink): %S will be replaced with the browser name.
 searchResults.needHelpSupportLink=%S Support
-
-# LOCALIZATION NOTE %S is the default value of the `dom.ipc.processCount` pref.
-defaultContentProcessCount=%S (default)
--- a/browser/locales/en-US/chrome/browser/preferences/privacy.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/privacy.dtd
@@ -95,18 +95,12 @@
 <!ENTITY  rememberSearchForm.accesskey   "f">
 
 <!ENTITY  clearOnClose.label             "Clear history when &brandShortName; closes">
 <!ENTITY  clearOnClose.accesskey         "r">
 
 <!ENTITY  clearOnCloseSettings.label     "Settings…">
 <!ENTITY  clearOnCloseSettings.accesskey "t">
 
-<!ENTITY  browserContainersLearnMore.label      "Learn more">
-<!ENTITY  browserContainersEnabled.label        "Enable Container Tabs">
-<!ENTITY  browserContainersEnabled.accesskey    "n">
-<!ENTITY  browserContainersSettings.label        "Settings…">
-<!ENTITY  browserContainersSettings.accesskey    "i">
-
 <!ENTITY  a11yPrivacy.checkbox.label     "Prevent accessibility services from accessing your browser">
 <!ENTITY  a11yPrivacy.checkbox.accesskey "a">
 <!ENTITY  a11yPrivacy.learnmore.label    "Learn more">
 <!ENTITY enableSafeBrowsingLearnMore.label "Learn more">
--- a/browser/locales/en-US/chrome/browser/preferences/tabs.dtd
+++ b/browser/locales/en-US/chrome/browser/preferences/tabs.dtd
@@ -1,22 +1,3 @@
 <!-- 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 ctrlTabRecentlyUsedOrder.label       "Ctrl+Tab cycles through tabs in recently used order">
-<!ENTITY ctrlTabRecentlyUsedOrder.accesskey   "T">
-
-<!ENTITY newWindowsAsTabs3.label       "Open links in tabs instead of new windows">
-<!ENTITY newWindowsAsTabs3.accesskey   "w">
-
-<!ENTITY warnOnCloseMultipleTabs.label      "Warn you when closing multiple tabs">
-<!ENTITY warnOnCloseMultipleTabs.accesskey  "m">
-
-<!ENTITY warnOnOpenManyTabs.label       "Warn you when opening multiple tabs might slow down &brandShortName;">
-<!ENTITY warnOnOpenManyTabs.accesskey   "d">
-
-<!ENTITY switchLinksToNewTabs.label        "When you open a link in a new tab, switch to it immediately">
-<!ENTITY switchLinksToNewTabs.accesskey    "h">
-
-<!ENTITY showTabsInTaskbar.label          "Show tab previews in the Windows taskbar">
-<!ENTITY showTabsInTaskbar.accesskey      "k">
-<!ENTITY tabsGroup.label          "Tabs">
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -59,37 +59,34 @@
     locale/browser/safebrowsing/safebrowsing.properties   (%chrome/browser/safebrowsing/safebrowsing.properties)
     locale/browser/feeds/subscribe.dtd              (%chrome/browser/feeds/subscribe.dtd)
     locale/browser/feeds/subscribe.properties       (%chrome/browser/feeds/subscribe.properties)
     locale/browser/migration/migration.dtd         (%chrome/browser/migration/migration.dtd)
     locale/browser/migration/migration.properties  (%chrome/browser/migration/migration.properties)
     locale/browser/preferences/advanced.dtd           (%chrome/browser/preferences/advanced.dtd)
     locale/browser/preferences/applicationManager.dtd     (%chrome/browser/preferences/applicationManager.dtd)
     locale/browser/preferences/applicationManager.properties     (%chrome/browser/preferences/applicationManager.properties)
-    locale/browser/preferences/applications.dtd       (%chrome/browser/preferences/applications.dtd)
     locale/browser/preferences/blocklists.dtd         (%chrome/browser/preferences/blocklists.dtd)
     locale/browser/preferences/colors.dtd             (%chrome/browser/preferences/colors.dtd)
     locale/browser/preferences/connection.dtd         (%chrome/browser/preferences/connection.dtd)
     locale/browser/preferences/containers.dtd         (%chrome/browser/preferences/containers.dtd)
     locale/browser/preferences/containers.properties     (%chrome/browser/preferences/containers.properties)
     locale/browser/preferences/content.dtd            (%chrome/browser/preferences/content.dtd)
     locale/browser/preferences/cookies.dtd            (%chrome/browser/preferences/cookies.dtd)
     locale/browser/preferences/fonts.dtd              (%chrome/browser/preferences/fonts.dtd)
     locale/browser/preferences/languages.dtd          (%chrome/browser/preferences/languages.dtd)
-    locale/browser/preferences/main.dtd               (%chrome/browser/preferences/main.dtd)
     locale/browser/preferences/permissions.dtd        (%chrome/browser/preferences/permissions.dtd)
     locale/browser/preferences/preferences.dtd        (%chrome/browser/preferences/preferences.dtd)
     locale/browser/preferences/preferences.properties     (%chrome/browser/preferences/preferences.properties)
     locale/browser/preferences/privacy.dtd            (%chrome/browser/preferences/privacy.dtd)
     locale/browser/preferences/search.dtd             (%chrome/browser/preferences/search.dtd)
     locale/browser/preferences/security.dtd           (%chrome/browser/preferences/security.dtd)
     locale/browser/preferences/selectBookmark.dtd     (%chrome/browser/preferences/selectBookmark.dtd)
     locale/browser/preferences/siteDataSettings.dtd     (%chrome/browser/preferences/siteDataSettings.dtd)
     locale/browser/preferences/sync.dtd               (%chrome/browser/preferences/sync.dtd)
-    locale/browser/preferences/tabs.dtd               (%chrome/browser/preferences/tabs.dtd)
     locale/browser/preferences/translation.dtd        (%chrome/browser/preferences/translation.dtd)
     locale/browser/syncBrand.dtd                (%chrome/browser/syncBrand.dtd)
     locale/browser/syncSetup.properties         (%chrome/browser/syncSetup.properties)
 #if BUILD_FASTER
     locale/browser/searchplugins/               (searchplugins/*.xml)
     locale/browser/searchplugins/list.json      (search/list.json)
 #else
     locale/browser/searchplugins/               (.deps/generated_@AB_CD@/*.xml)