Bug 1451992 - Migrate Preferences::Subdialogs::Fonts to Fluent. r?jaws,stas draft
authorZibi Braniecki <zbraniecki@mozilla.com>
Thu, 05 Apr 2018 21:28:32 +0200
changeset 780752 981f9584b09ffd51240839e333750e5e7ade57b3
parent 780751 d571eec4f0267560c885e03b5f64cafe33764993
child 780753 988a7d4ce6820665785e8dcdbc2ec05fd9578f20
push id106121
push userbmo:gandalf@aviary.pl
push dateThu, 12 Apr 2018 00:27:59 +0000
reviewersjaws, stas
bugs1451992
milestone61.0a1
Bug 1451992 - Migrate Preferences::Subdialogs::Fonts to Fluent. r?jaws,stas MozReview-Commit-ID: LwNCJJIVobl
browser/components/preferences/fonts.xul
browser/components/preferences/in-content/main.xul
browser/components/preferences/in-content/preferences.xul
browser/locales/en-US/browser/preferences/fonts.ftl
browser/locales/en-US/chrome/browser/preferences/fonts.dtd
browser/locales/jar.mn
python/l10n/fluent_migrations/bug_1451992_preferences_fonts.py
--- a/browser/components/preferences/fonts.xul
+++ b/browser/components/preferences/fonts.xul
@@ -3,86 +3,83 @@
 <!-- -*- 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/. -->
 
 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
 <?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css"?>
 
-<!DOCTYPE dialog [
-  <!ENTITY % preferencesDTD SYSTEM "chrome://global/locale/preferences.dtd">
-  %preferencesDTD;
-  <!ENTITY % fontsDTD SYSTEM "chrome://browser/locale/preferences/fonts.dtd">
-  %fontsDTD;
-]>
-
 <dialog id="FontsDialog" type="child" class="prefwindow"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        title="&fontsDialog.title;"
+        data-l10n-id="fonts-window"
+        data-l10n-attrs="title"
         buttons="accept,cancel,help"
         persist="lastSelected screenX screenY"
         role="dialog"
         helpTopic="prefs-fonts-and-colors"
         ondialoghelp="openPrefsHelp()"
         onbeforeaccept="return gFontsDialog.onBeforeAccept();">
 
+  <link rel="localization" href="browser/preferences/fonts.ftl"/>
+  <script type="application/javascript" src="chrome://global/content/l10n.js"></script>
+
   <script type="application/javascript" src="chrome://browser/content/utilityOverlay.js"/>
   <script type="application/javascript" src="chrome://global/content/preferencesBindings.js"/>
 
   <keyset>
-    <key key="&windowClose.key;" modifiers="accel" oncommand="Preferences.close(event)"/>
+    <key data-l10n-id="fonts-window-close" modifiers="accel" oncommand="Preferences.close(event)"/>
   </keyset>
 
   <vbox id="FontsDialogPane" class="prefpane largeDialogContainer">
 
     <stringbundle id="bundlePreferences" src="chrome://browser/locale/preferences/preferences.properties"/>
     <script type="application/javascript" src="chrome://mozapps/content/preferences/fontbuilder.js"/>
     <script type="application/javascript" src="chrome://browser/content/preferences/fonts.js"/>
 
     <!-- Fonts for: [ Language ] -->
     <groupbox>
       <caption>
         <hbox align="center">
-          <label accesskey="&fonts.accesskey;" control="selectLangs">&fonts.label;</label>
+          <label data-l10n-id="fonts-langgroup-header" control="selectLangs"/>
         </hbox>
         <!-- 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="selectLangs" preference="font.language.group"
                     onsyncfrompreference="return gFontsDialog.readFontLanguageGroup();">
             <menupopup>
-              <menuitem value="ar"              label="&font.langGroup.arabic;"/>
-              <menuitem value="x-armn"          label="&font.langGroup.armenian;"/>
-              <menuitem value="x-beng"          label="&font.langGroup.bengali;"/>
-              <menuitem value="zh-CN"           label="&font.langGroup.simpl-chinese;"/>
-              <menuitem value="zh-HK"           label="&font.langGroup.trad-chinese-hk;"/>
-              <menuitem value="zh-TW"           label="&font.langGroup.trad-chinese;"/>
-              <menuitem value="x-cyrillic"      label="&font.langGroup.cyrillic;"/>
-              <menuitem value="x-devanagari"    label="&font.langGroup.devanagari;"/>
-              <menuitem value="x-ethi"          label="&font.langGroup.ethiopic;"/>
-              <menuitem value="x-geor"          label="&font.langGroup.georgian;"/>
-              <menuitem value="el"              label="&font.langGroup.el;"/>
-              <menuitem value="x-gujr"          label="&font.langGroup.gujarati;"/>
-              <menuitem value="x-guru"          label="&font.langGroup.gurmukhi;"/>
-              <menuitem value="he"              label="&font.langGroup.hebrew;"/>
-              <menuitem value="ja"              label="&font.langGroup.japanese;"/>
-              <menuitem value="x-knda"          label="&font.langGroup.kannada;"/>
-              <menuitem value="x-khmr"          label="&font.langGroup.khmer;"/>
-              <menuitem value="ko"              label="&font.langGroup.korean;"/>
-              <menuitem value="x-western"       label="&font.langGroup.latin;"/>
-              <menuitem value="x-mlym"          label="&font.langGroup.malayalam;"/>
-              <menuitem value="x-math"          label="&font.langGroup.math;"/>
-              <menuitem value="x-orya"          label="&font.langGroup.odia;"/>
-              <menuitem value="x-sinh"          label="&font.langGroup.sinhala;"/>
-              <menuitem value="x-tamil"         label="&font.langGroup.tamil;"/>
-              <menuitem value="x-telu"          label="&font.langGroup.telugu;"/>
-              <menuitem value="th"              label="&font.langGroup.thai;"/>
-              <menuitem value="x-tibt"          label="&font.langGroup.tibetan;"/>
-              <menuitem value="x-cans"          label="&font.langGroup.canadian;"/>
-              <menuitem value="x-unicode"       label="&font.langGroup.other;"/>
+              <menuitem value="ar"              data-l10n-id="fonts-langgroup-arabic"/>
+              <menuitem value="x-armn"          data-l10n-id="fonts-langgroup-armenian"/>
+              <menuitem value="x-beng"          data-l10n-id="fonts-langgroup-bengali"/>
+              <menuitem value="zh-CN"           data-l10n-id="fonts-langgroup-simpl-chinese"/>
+              <menuitem value="zh-HK"           data-l10n-id="fonts-langgroup-trad-chinese-hk"/>
+              <menuitem value="zh-TW"           data-l10n-id="fonts-langgroup-trad-chinese"/>
+              <menuitem value="x-cyrillic"      data-l10n-id="fonts-langgroup-cyrillic"/>
+              <menuitem value="x-devanagari"    data-l10n-id="fonts-langgroup-devanagari"/>
+              <menuitem value="x-ethi"          data-l10n-id="fonts-langgroup-ethiopic"/>
+              <menuitem value="x-geor"          data-l10n-id="fonts-langgroup-georgian"/>
+              <menuitem value="el"              data-l10n-id="fonts-langgroup-el"/>
+              <menuitem value="x-gujr"          data-l10n-id="fonts-langgroup-gujarati"/>
+              <menuitem value="x-guru"          data-l10n-id="fonts-langgroup-gurmukhi"/>
+              <menuitem value="he"              data-l10n-id="fonts-langgroup-hebrew"/>
+              <menuitem value="ja"              data-l10n-id="fonts-langgroup-japanese"/>
+              <menuitem value="x-knda"          data-l10n-id="fonts-langgroup-kannada"/>
+              <menuitem value="x-khmr"          data-l10n-id="fonts-langgroup-khmer"/>
+              <menuitem value="ko"              data-l10n-id="fonts-langgroup-korean"/>
+              <menuitem value="x-western"       data-l10n-id="fonts-langgroup-latin"/>
+              <menuitem value="x-mlym"          data-l10n-id="fonts-langgroup-malayalam"/>
+              <menuitem value="x-math"          data-l10n-id="fonts-langgroup-math"/>
+              <menuitem value="x-orya"          data-l10n-id="fonts-langgroup-odia"/>
+              <menuitem value="x-sinh"          data-l10n-id="fonts-langgroup-sinhala"/>
+              <menuitem value="x-tamil"         data-l10n-id="fonts-langgroup-tamil"/>
+              <menuitem value="x-telu"          data-l10n-id="fonts-langgroup-telugu"/>
+              <menuitem value="th"              data-l10n-id="fonts-langgroup-thai"/>
+              <menuitem value="x-tibt"          data-l10n-id="fonts-langgroup-tibetan"/>
+              <menuitem value="x-cans"          data-l10n-id="fonts-langgroup-canadian"/>
+              <menuitem value="x-unicode"       data-l10n-id="fonts-langgroup-other"/>
             </menupopup>
           </menulist>
         </hbox>
       </caption>
 
       <grid>
         <columns>
           <column/>
@@ -93,30 +90,29 @@
 
         <rows>
           <row>
             <separator class="thin"/>
           </row>
 
           <row align="center">
             <hbox align="center" pack="end">
-              <label accesskey="&proportional2.accesskey;" control="defaultFontType">&proportional2.label;</label>
+              <label data-l10n-id="fonts-proportional-header" control="defaultFontType"/>
             </hbox>
             <!-- This <hbox> is needed to position search tooltips correctly. -->
             <hbox>
               <menulist id="defaultFontType" flex="1" style="width: 0px;">
                 <menupopup>
-                  <menuitem value="serif" label="&useDefaultFontSerif.label;"/>
-                  <menuitem value="sans-serif" label="&useDefaultFontSansSerif.label;"/>
+                  <menuitem value="serif" data-l10n-id="fonts-default-serif"/>
+                  <menuitem value="sans-serif" data-l10n-id="fonts-default-sans-serif"/>
                 </menupopup>
               </menulist>
             </hbox>
             <hbox align="center" pack="end">
-              <label accesskey="&sizeProportional.accesskey;"
-                     control="sizeVar">&size2.label;</label>
+              <label data-l10n-id="fonts-proportional-size" control="sizeVar"/>
             </hbox>
             <!-- This <hbox> is needed to position search tooltips correctly. -->
             <hbox>
               <menulist id="sizeVar" delayprefsave="true">
                 <menupopup>
                   <menuitem value="9" label="9"/>
                   <menuitem value="10" label="10"/>
                   <menuitem value="11" label="11"/>
@@ -143,45 +139,44 @@
                   <menuitem value="64" label="64"/>
                   <menuitem value="72" label="72"/>
                 </menupopup>
               </menulist>
             </hbox>
           </row>
           <row align="center">
             <hbox align="center" pack="end">
-              <label accesskey="&serif2.accesskey;" control="serif">&serif2.label;</label>
+              <label data-l10n-id="fonts-serif" control="serif"/>
             </hbox>
             <hbox>
               <menulist id="serif" flex="1" style="width: 0px;" delayprefsave="true"
                         onsyncfrompreference="return FontBuilder.readFontSelection(this);"/>
             </hbox>
             <spacer/>
           </row>
           <row align="center">
             <hbox align="center" pack="end">
-              <label accesskey="&sans-serif2.accesskey;" control="sans-serif">&sans-serif2.label;</label>
+              <label data-l10n-id="fonts-sans-serif" control="sans-serif"/>
             </hbox>
             <hbox>
               <menulist id="sans-serif" flex="1" style="width: 0px;" delayprefsave="true"
                         onsyncfrompreference="return FontBuilder.readFontSelection(this);"/>
             </hbox>
             <spacer/>
           </row>
           <row align="center">
             <hbox align="center" pack="end">
-              <label accesskey="&monospace2.accesskey;" control="monospace">&monospace2.label;</label>
+              <label data-l10n-id="fonts-monospace" control="monospace"/>
             </hbox>
             <hbox>
               <menulist id="monospace" flex="1" style="width: 0px;" crop="right" delayprefsave="true"
                         onsyncfrompreference="return FontBuilder.readFontSelection(this);"/>
             </hbox>
             <hbox align="center" pack="end">
-              <label accesskey="&sizeMonospace.accesskey;"
-                     control="sizeMono">&size2.label;</label>
+              <label data-l10n-id="fonts-monospace-size" control="sizeMono"/>
             </hbox>
             <hbox>
               <menulist id="sizeMono" delayprefsave="true">
                 <menupopup>
                   <menuitem value="9" label="9"/>
                   <menuitem value="10" label="10"/>
                   <menuitem value="11" label="11"/>
                   <menuitem value="12" label="12"/>
@@ -211,22 +206,22 @@
             </hbox>
           </row>
         </rows>
       </grid>
       <separator class="thin"/>
       <hbox flex="1">
         <spacer flex="1"/>
         <hbox align="center" pack="end">
-          <label accesskey="&minSize2.accesskey;" control="minSize">&minSize2.label;</label>
+          <label data-l10n-id="fonts-minsize" control="minSize"/>
           <!-- 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="minSize">
               <menupopup>
-                <menuitem value="0" label="&minSize.none;"/>
+                <menuitem value="0" data-l10n-id="fonts-minsize-none"/>
                 <menuitem value="9" label="9"/>
                 <menuitem value="10" label="10"/>
                 <menuitem value="11" label="11"/>
                 <menuitem value="12" label="12"/>
                 <menuitem value="13" label="13"/>
                 <menuitem value="14" label="14"/>
                 <menuitem value="15" label="15"/>
                 <menuitem value="16" label="16"/>
@@ -251,51 +246,50 @@
             </menulist>
           </hbox>
         </hbox>
       </hbox>
       <separator/>
       <separator class="groove"/>
       <hbox>
         <checkbox id="useDocumentFonts"
-                  label="&allowPagesToUseOwn.label;" accesskey="&allowPagesToUseOwn.accesskey;"
+                  data-l10n-id="fonts-allow-own"
                   preference="browser.display.use_document_fonts"
                   onsyncfrompreference="return gFontsDialog.readUseDocumentFonts();"
                   onsynctopreference="return gFontsDialog.writeUseDocumentFonts();"/>
       </hbox>
     </groupbox>
 
     <!-- Text Encoding -->
     <groupbox>
-      <caption><label>&languages.customize.Fallback2.grouplabel;</label></caption>
-      <description>&languages.customize.Fallback2.desc;</description>
+      <caption><label data-l10n-id="fonts-languages-fallback-header"/></caption>
+      <description data-l10n-id="fonts-languages-fallback-desc"/>
       <hbox align="center">
-        <label accesskey="&languages.customize.Fallback3.accesskey;"
-               control="DefaultCharsetList">&languages.customize.Fallback3.label;</label>
+        <label data-l10n-id="fonts-languages-fallback-label" control="DefaultCharsetList"/>
         <!-- 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="DefaultCharsetList" preference="intl.charset.fallback.override">
             <menupopup>
-              <menuitem label="&languages.customize.Fallback.auto;"        value=""/>
-              <menuitem label="&languages.customize.Fallback.arabic;"      value="windows-1256"/>
-              <menuitem label="&languages.customize.Fallback.baltic;"      value="windows-1257"/>
-              <menuitem label="&languages.customize.Fallback.ceiso;"       value="ISO-8859-2"/>
-              <menuitem label="&languages.customize.Fallback.cewindows;"   value="windows-1250"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-auto"        value=""/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-arabic"      value="windows-1256"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-baltic"      value="windows-1257"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-ceiso"       value="ISO-8859-2"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-cewindows"   value="windows-1250"/>
               <!-- Using gbk instead of GBK for compat with previously-stored prefs.
                   The value gets normalized in dom/encoding/FallbackEncoding.cpp. -->
-              <menuitem label="&languages.customize.Fallback.simplified;"  value="gbk"/>
-              <menuitem label="&languages.customize.Fallback.traditional;" value="Big5"/>
-              <menuitem label="&languages.customize.Fallback.cyrillic;"    value="windows-1251"/>
-              <menuitem label="&languages.customize.Fallback.greek;"       value="ISO-8859-7"/>
-              <menuitem label="&languages.customize.Fallback.hebrew;"      value="windows-1255"/>
-              <menuitem label="&languages.customize.Fallback.japanese;"    value="Shift_JIS"/>
-              <menuitem label="&languages.customize.Fallback.korean;"      value="EUC-KR"/>
-              <menuitem label="&languages.customize.Fallback.thai;"        value="windows-874"/>
-              <menuitem label="&languages.customize.Fallback.turkish;"     value="windows-1254"/>
-              <menuitem label="&languages.customize.Fallback.vietnamese;"  value="windows-1258"/>
-              <menuitem label="&languages.customize.Fallback.other;"       value="windows-1252"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-simplified"  value="gbk"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-traditional" value="Big5"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-cyrillic"    value="windows-1251"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-greek"       value="ISO-8859-7"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-hebrew"      value="windows-1255"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-japanese"    value="Shift_JIS"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-korean"      value="EUC-KR"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-thai"        value="windows-874"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-turkish"     value="windows-1254"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-vietnamese"  value="windows-1258"/>
+              <menuitem data-l10n-id="fonts-languages-fallback-name-other"       value="windows-1252"/>
             </menupopup>
           </menulist>
         </hbox>
       </hbox>
     </groupbox>
   </vbox>
 </dialog>
--- a/browser/components/preferences/in-content/main.xul
+++ b/browser/components/preferences/in-content/main.xul
@@ -194,76 +194,78 @@
       </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"
                 data-l10n-id="advanced-fonts"
-                searchkeywords="&fontsDialog.title;
-                                &fonts.label;
-                                &size2.label;
-                                &proportional2.label;
-                                &serif2.label;
-                                &sans-serif2.label;
-                                &monospace2.label;
-                                &font.langGroup.latin;
-                                &font.langGroup.japanese;
-                                &font.langGroup.trad-chinese;
-                                &font.langGroup.simpl-chinese;
-                                &font.langGroup.trad-chinese-hk;
-                                &font.langGroup.korean;
-                                &font.langGroup.cyrillic;
-                                &font.langGroup.el;
-                                &font.langGroup.other;
-                                &font.langGroup.thai;
-                                &font.langGroup.hebrew;
-                                &font.langGroup.arabic;
-                                &font.langGroup.devanagari;
-                                &font.langGroup.tamil;
-                                &font.langGroup.armenian;
-                                &font.langGroup.bengali;
-                                &font.langGroup.canadian;
-                                &font.langGroup.ethiopic;
-                                &font.langGroup.georgian;
-                                &font.langGroup.gujarati;
-                                &font.langGroup.gurmukhi;
-                                &font.langGroup.khmer;
-                                &font.langGroup.malayalam;
-                                &font.langGroup.math;
-                                &font.langGroup.odia;
-                                &font.langGroup.telugu;
-                                &font.langGroup.kannada;
-                                &font.langGroup.sinhala;
-                                &font.langGroup.tibetan;
-                                &minSize2.label;
-                                &minSize.none;
-                                &useDefaultFontSerif.label;
-                                &useDefaultFontSansSerif.label;
-                                &allowPagesToUseOwn.label;
-                                &languages.customize.Fallback2.grouplabel;
-                                &languages.customize.Fallback3.label;
-                                &languages.customize.Fallback2.desc;
-                                &languages.customize.Fallback.auto;
-                                &languages.customize.Fallback.arabic;
-                                &languages.customize.Fallback.baltic;
-                                &languages.customize.Fallback.ceiso;
-                                &languages.customize.Fallback.cewindows;
-                                &languages.customize.Fallback.simplified;
-                                &languages.customize.Fallback.traditional;
-                                &languages.customize.Fallback.cyrillic;
-                                &languages.customize.Fallback.greek;
-                                &languages.customize.Fallback.hebrew;
-                                &languages.customize.Fallback.japanese;
-                                &languages.customize.Fallback.korean;
-                                &languages.customize.Fallback.thai;
-                                &languages.customize.Fallback.turkish;
-                                &languages.customize.Fallback.vietnamese;
-                                &languages.customize.Fallback.other;"/>
+                search-l10n-ids="
+                  fonts-window.title,
+                  fonts-header,
+                  fonts-proportional-size,
+                  fonts-proportional-header,
+                  fonts-serif,
+                  fonts-sans-serif,
+                  fonts-monospace,
+                  fonts-langgroup-arabic.label,
+                  fonts-langgroup-armenian.label,
+                  fonts-langgroup-bengali.label,
+                  fonts-langgroup-simpl-chinese.label,
+                  fonts-langgroup-trad-chinese-hk.label,
+                  fonts-langgroup-trad-chinese.label,
+                  fonts-langgroup-cyrillic.label,
+                  fonts-langgroup-devanagari.label,
+                  fonts-langgroup-ethiopic.label,
+                  fonts-langgroup-georgian.label,
+                  fonts-langgroup-el.label,
+                  fonts-langgroup-gujarati.label,
+                  fonts-langgroup-gurmukhi.label,
+                  fonts-langgroup-japanese.label,
+                  fonts-langgroup-hebrew.label,
+                  fonts-langgroup-kannada.label,
+                  fonts-langgroup-khmer.label,
+                  fonts-langgroup-korean.label,
+                  fonts-langgroup-latin.label,
+                  fonts-langgroup-malayalam.label,
+                  fonts-langgroup-math.label,
+                  fonts-langgroup-odia.label,
+                  fonts-langgroup-sinhala.label,
+                  fonts-langgroup-tamil.label,
+                  fonts-langgroup-telugu.label,
+                  fonts-langgroup-thai.label,
+                  fonts-langgroup-tibetan.label,
+                  fonts-langgroup-canadian.label,
+                  fonts-langgroup-other.label,
+                  fonts-minsize,
+                  fonts-minsize-none.label,
+                  fonts-default-serif.label,
+                  fonts-default-sans-serif.label,
+                  fonts-allow-own.label,
+                  fonts-languages-fallback-header,
+                  fonts-languages-fallback-label,
+                  fonts-languages-fallback-desc,
+                  fonts-languages-fallback-name-auto.label,
+                  fonts-languages-fallback-name-arabic.label,
+                  fonts-languages-fallback-name-baltic.label,
+                  fonts-languages-fallback-name-ceiso.label,
+                  fonts-languages-fallback-name-cewindows.label,
+                  fonts-languages-fallback-name-simplified.label,
+                  fonts-languages-fallback-name-traditional.label,
+                  fonts-languages-fallback-name-cyrillic.label,
+                  fonts-languages-fallback-name-greek.label,
+                  fonts-languages-fallback-name-hebrew.label,
+                  fonts-languages-fallback-name-japanese.label,
+                  fonts-languages-fallback-name-korean.label,
+                  fonts-languages-fallback-name-thai.label,
+                  fonts-languages-fallback-name-turkish.label,
+                  fonts-languages-fallback-name-vietnamese.label,
+                  fonts-languages-fallback-name-other.label,
+                " />
       </hbox>
     </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"
--- a/browser/components/preferences/in-content/preferences.xul
+++ b/browser/components/preferences/in-content/preferences.xul
@@ -16,17 +16,16 @@
 <?xml-stylesheet href="chrome://browser/skin/preferences/in-content/containers.css"?>
 <?xml-stylesheet href="chrome://browser/skin/preferences/in-content/privacy.css"?>
 
 <!DOCTYPE page [
 <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
 <!ENTITY % selectBookmarkDTD SYSTEM
   "chrome://browser/locale/preferences/selectBookmark.dtd">
 <!ENTITY % languagesDTD SYSTEM "chrome://browser/locale/preferences/languages.dtd">
-<!ENTITY % fontDTD SYSTEM "chrome://browser/locale/preferences/fonts.dtd">
 <!ENTITY % permissionsDTD SYSTEM "chrome://browser/locale/preferences/permissions.dtd">
 <!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 % siteDataSettingsDTD SYSTEM
   "chrome://browser/locale/preferences/siteDataSettings.dtd" >
 <!ENTITY % privacyDTD SYSTEM "chrome://browser/locale/preferences/privacy.dtd">
@@ -35,17 +34,16 @@
 <!ENTITY % sanitizeDTD SYSTEM "chrome://browser/locale/sanitize.dtd">
 <!ENTITY % aboutHomeDTD SYSTEM "chrome://browser/locale/aboutHome.dtd">
 <!ENTITY % contentDTD SYSTEM "chrome://browser/locale/preferences/content.dtd">
 <!ENTITY % aboutDialogDTD SYSTEM "chrome://browser/locale/aboutDialog.dtd" >
 %aboutDialogDTD;
 %brandDTD;
 %selectBookmarkDTD;
 %languagesDTD;
-%fontDTD;
 %permissionsDTD;
 %passwordManagerDTD;
 %historyDTD;
 %certManagerDTD;
 %deviceManangerDTD;
 %siteDataSettingsDTD;
 %privacyDTD;
 %syncBrandDTD;
@@ -69,16 +67,17 @@
   <link rel="localization" href="browser/branding/sync-brand.ftl"/>
   <link rel="localization" href="browser/preferences/preferences.ftl"/>
 
   <!-- Links below are only used for search-l10n-ids into subdialogs -->
   <link rel="localization" href="browser/preferences/blocklists.ftl"/>
   <link rel="localization" href="browser/preferences/clearSiteData.ftl"/>
   <link rel="localization" href="browser/preferences/colors.ftl"/>
   <link rel="localization" href="browser/preferences/connection.ftl"/>
+  <link rel="localization" href="browser/preferences/fonts.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"/>
new file mode 100644
--- /dev/null
+++ b/browser/locales/en-US/browser/preferences/fonts.ftl
@@ -0,0 +1,153 @@
+# 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/.
+
+fonts-window =
+    .title = Fonts
+
+fonts-window-close =
+    .key = w
+
+## Font groups by language
+
+fonts-langgroup-header = Fonts for
+    .accesskey = F
+
+fonts-langgroup-arabic =
+    .label = Arabic
+fonts-langgroup-armenian =
+    .label = Armenian
+fonts-langgroup-bengali =
+    .label = Bengali
+fonts-langgroup-simpl-chinese =
+    .label = Simplified Chinese
+fonts-langgroup-trad-chinese-hk =
+    .label = Traditional Chinese (Hong Kong)
+fonts-langgroup-trad-chinese =
+    .label = Traditional Chinese (Taiwan)
+fonts-langgroup-cyrillic =
+    .label = Cyrillic
+fonts-langgroup-devanagari =
+    .label = Devanagari
+fonts-langgroup-ethiopic =
+    .label = Ethiopic
+fonts-langgroup-georgian =
+    .label = Georgian
+fonts-langgroup-el =
+    .label = Greek
+fonts-langgroup-gujarati =
+    .label = Gujarati
+fonts-langgroup-gurmukhi =
+    .label = Gurmukhi
+fonts-langgroup-japanese =
+    .label = Japanese
+fonts-langgroup-hebrew =
+    .label = Hebrew
+fonts-langgroup-kannada =
+    .label = Kannada
+fonts-langgroup-khmer =
+    .label = Khmer
+fonts-langgroup-korean =
+    .label = Korean
+# Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+fonts-langgroup-latin =
+    .label = Latin
+fonts-langgroup-malayalam =
+    .label = Malayalam
+fonts-langgroup-math =
+    .label = Mathematics
+fonts-langgroup-odia =
+    .label = Odia
+fonts-langgroup-sinhala =
+    .label = Sinhala
+fonts-langgroup-tamil =
+    .label = Tamil
+fonts-langgroup-telugu =
+    .label = Telugu
+fonts-langgroup-thai =
+    .label = Thai
+fonts-langgroup-tibetan =
+    .label = Tibetan
+fonts-langgroup-canadian =
+    .label = Unified Canadian Syllabary
+fonts-langgroup-other =
+    .label = Other Writing Systems
+
+## Default fonts and their sizes
+
+fonts-proportional-header = Proportional
+    .accesskey = P
+
+fonts-default-serif =
+    .label = Serif
+fonts-default-sans-serif =
+    .label = Sans Serif
+
+fonts-proportional-size = Size
+    .accesskey = z
+
+fonts-serif = Serif
+    .accesskey = S
+
+fonts-sans-serif = Sans-serif
+    .accesskey = n
+
+fonts-monospace = Monospace
+    .accesskey = M
+
+fonts-monospace-size = Size
+    .accesskey = e
+
+fonts-minsize = Minimum font size
+    .accesskey = o
+
+fonts-minsize-none =
+    .label = None
+
+fonts-allow-own =
+    .label = Allow pages to choose their own fonts, instead of your selections above
+    .accesskey = A
+
+## Text Encodings
+##
+## Translate the encoding names as adjectives for an encoding, not as the name
+## of the language.
+
+fonts-languages-fallback-header = Text Encoding for Legacy Content
+fonts-languages-fallback-desc = This text encoding is used for legacy content that fails to declare its encoding.
+
+fonts-languages-fallback-label = Fallback Text Encoding
+    .accesskey = T
+
+fonts-languages-fallback-name-auto =
+    .label = Default for Current Locale
+fonts-languages-fallback-name-arabic =
+    .label = Arabic
+fonts-languages-fallback-name-baltic =
+    .label = Baltic
+fonts-languages-fallback-name-ceiso =
+    .label = Central European, ISO
+fonts-languages-fallback-name-cewindows =
+    .label = Central European, Microsoft
+fonts-languages-fallback-name-simplified =
+    .label = Chinese, Simplified
+fonts-languages-fallback-name-traditional =
+    .label = Chinese, Traditional
+fonts-languages-fallback-name-cyrillic =
+    .label = Cyrillic
+fonts-languages-fallback-name-greek =
+    .label = Greek
+fonts-languages-fallback-name-hebrew =
+    .label = Hebrew
+fonts-languages-fallback-name-japanese =
+    .label = Japanese
+fonts-languages-fallback-name-korean =
+    .label = Korean
+fonts-languages-fallback-name-thai =
+    .label = Thai
+fonts-languages-fallback-name-turkish =
+    .label = Turkish
+fonts-languages-fallback-name-vietnamese =
+    .label = Vietnamese
+fonts-languages-fallback-name-other =
+    .label = Other (incl. Western European)
deleted file mode 100644
--- a/browser/locales/en-US/chrome/browser/preferences/fonts.dtd
+++ /dev/null
@@ -1,107 +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  fontsDialog.title                       "Fonts">
-
-<!ENTITY  fonts.label                             "Fonts for">
-<!ENTITY  fonts.accesskey                         "F">
-
-<!ENTITY  size2.label                             "Size">
-<!ENTITY  sizeProportional.accesskey              "z">
-<!ENTITY  sizeMonospace.accesskey                 "e">
-
-<!ENTITY  proportional2.label                     "Proportional">
-<!ENTITY  proportional2.accesskey                 "P">
-
-<!ENTITY  serif2.label                            "Serif">
-<!ENTITY  serif2.accesskey                        "S">
-<!ENTITY  sans-serif2.label                       "Sans-serif">
-<!ENTITY  sans-serif2.accesskey                   "n">
-<!ENTITY  monospace2.label                        "Monospace">
-<!ENTITY  monospace2.accesskey                    "M">
-
-<!-- LOCALIZATION NOTE (font.langGroup.latin) :
-     Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language. -->
-<!ENTITY  font.langGroup.latin                    "Latin">
-<!ENTITY  font.langGroup.japanese                 "Japanese">
-<!ENTITY  font.langGroup.trad-chinese             "Traditional Chinese (Taiwan)">
-<!ENTITY  font.langGroup.simpl-chinese            "Simplified Chinese">
-<!ENTITY  font.langGroup.trad-chinese-hk          "Traditional Chinese (Hong Kong)">
-<!ENTITY  font.langGroup.korean                   "Korean">
-<!ENTITY  font.langGroup.cyrillic                 "Cyrillic">
-<!ENTITY  font.langGroup.el                       "Greek">
-<!ENTITY  font.langGroup.other                    "Other Writing Systems">
-<!ENTITY  font.langGroup.thai                     "Thai">
-<!ENTITY  font.langGroup.hebrew                   "Hebrew">
-<!ENTITY  font.langGroup.arabic                   "Arabic">
-<!ENTITY  font.langGroup.devanagari               "Devanagari">
-<!ENTITY  font.langGroup.tamil                    "Tamil">
-<!ENTITY  font.langGroup.armenian                 "Armenian">
-<!ENTITY  font.langGroup.bengali                  "Bengali">
-<!ENTITY  font.langGroup.canadian                 "Unified Canadian Syllabary">
-<!ENTITY  font.langGroup.ethiopic                 "Ethiopic">
-<!ENTITY  font.langGroup.georgian                 "Georgian">
-<!ENTITY  font.langGroup.gujarati                 "Gujarati">
-<!ENTITY  font.langGroup.gurmukhi                 "Gurmukhi">
-<!ENTITY  font.langGroup.khmer                    "Khmer">
-<!ENTITY  font.langGroup.malayalam                "Malayalam">
-<!ENTITY  font.langGroup.math                     "Mathematics">
-<!ENTITY  font.langGroup.odia                     "Odia">
-<!ENTITY  font.langGroup.telugu                   "Telugu">
-<!ENTITY  font.langGroup.kannada                  "Kannada">
-<!ENTITY  font.langGroup.sinhala                  "Sinhala">
-<!ENTITY  font.langGroup.tibetan                  "Tibetan">
-<!-- Minimum font size -->
-<!ENTITY minSize2.label                           "Minimum font size">
-<!ENTITY minSize2.accesskey                       "o">
-<!ENTITY minSize.none                             "None">
-
-<!-- default font type -->
-<!ENTITY  useDefaultFontSerif.label               "Serif">
-<!ENTITY  useDefaultFontSansSerif.label           "Sans Serif">
-
-<!ENTITY  allowPagesToUseOwn.label                "Allow pages to choose their own fonts, instead of your selections above">
-<!ENTITY  allowPagesToUseOwn.accesskey            "A">
-
-<!ENTITY languages.customize.Fallback2.grouplabel "Text Encoding for Legacy Content">
-<!ENTITY languages.customize.Fallback3.label      "Fallback Text Encoding">
-<!ENTITY languages.customize.Fallback3.accesskey  "T">
-<!ENTITY languages.customize.Fallback2.desc       "This text encoding is used for legacy content that fails to declare its encoding.">
-
-<!ENTITY languages.customize.Fallback.auto        "Default for Current Locale">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.arabic):
-     Translate "Arabic" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.arabic      "Arabic">
-<!ENTITY languages.customize.Fallback.baltic      "Baltic">
-<!ENTITY languages.customize.Fallback.ceiso       "Central European, ISO">
-<!ENTITY languages.customize.Fallback.cewindows   "Central European, Microsoft">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.simplified):
-     Translate "Chinese" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.simplified  "Chinese, Simplified">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.traditional):
-     Translate "Chinese" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.traditional "Chinese, Traditional">
-<!ENTITY languages.customize.Fallback.cyrillic    "Cyrillic">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.greek):
-     Translate "Greek" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.greek       "Greek">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.hebrew):
-     Translate "Hebrew" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.hebrew      "Hebrew">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.japanese):
-     Translate "Japanese" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.japanese    "Japanese">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.korean):
-     Translate "Korean" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.korean      "Korean">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.thai):
-     Translate "Thai" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.thai        "Thai">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.turkish):
-     Translate "Turkish" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.turkish     "Turkish">
-<!-- LOCALIZATION NOTE (languages.customize.Fallback.vietnamese):
-     Translate "Vietnamese" as an adjective for an encoding, not as the name of the language. -->
-<!ENTITY languages.customize.Fallback.vietnamese  "Vietnamese">
-<!ENTITY languages.customize.Fallback.other       "Other (incl. Western European)">
--- a/browser/locales/jar.mn
+++ b/browser/locales/jar.mn
@@ -52,17 +52,16 @@
     locale/browser/safebrowsing/report-phishing.dtd                    (%chrome/browser/safebrowsing/report-phishing.dtd)
     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/clearSiteData.properties     (%chrome/browser/preferences/clearSiteData.properties)
     locale/browser/preferences/content.dtd            (%chrome/browser/preferences/content.dtd)
-    locale/browser/preferences/fonts.dtd              (%chrome/browser/preferences/fonts.dtd)
     locale/browser/preferences/languages.dtd          (%chrome/browser/preferences/languages.dtd)
     locale/browser/preferences/permissions.dtd        (%chrome/browser/preferences/permissions.dtd)
     locale/browser/preferences/preferences.properties     (%chrome/browser/preferences/preferences.properties)
     locale/browser/preferences/privacy.dtd            (%chrome/browser/preferences/privacy.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)
new file mode 100644
--- /dev/null
+++ b/python/l10n/fluent_migrations/bug_1451992_preferences_fonts.py
@@ -0,0 +1,797 @@
+# coding=utf8
+
+# Any copyright is dedicated to the Public Domain.
+# http://creativecommons.org/publicdomain/zero/1.0/
+
+from __future__ import absolute_import
+import fluent.syntax.ast as FTL
+from fluent.migrate.helpers import MESSAGE_REFERENCE
+from fluent.migrate import COPY, CONCAT, REPLACE
+
+def migrate(ctx):
+    """Bug 1451992 - Migrate Preferences::Subdialogs::Fonts to Fluent, part {index}."""
+
+    ctx.add_transforms(
+        'browser/browser/preferences/fonts.ftl',
+        'browser/browser/preferences/fonts.ftl',
+        [
+            FTL.Message(
+                id=FTL.Identifier('fonts-window'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('title'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'fontsDialog.title'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-window-close'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('key'),
+                        COPY(
+                            'toolkit/chrome/global/preferences.dtd',
+                            'windowClose.key'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-header'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'fonts.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'fonts.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-arabic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.arabic'
+                        )
+                    )
+                ]
+            ),
+
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-armenian'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.armenian'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-bengali'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.bengali'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-simpl-chinese'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.simpl-chinese'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-trad-chinese-hk'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.trad-chinese-hk'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-trad-chinese'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.trad-chinese'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-cyrillic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.cyrillic'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-devanagari'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.devanagari'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-ethiopic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.ethiopic'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-georgian'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.georgian'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-el'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.el'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-gujarati'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.gujarati'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-gurmukhi'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.gurmukhi'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-japanese'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.japanese'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-hebrew'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.hebrew'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-kannada'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.kannada'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-khmer'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.khmer'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-korean'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.korean'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-latin'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.latin'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-malayalam'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.malayalam'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-math'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.math'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-odia'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.odia'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-sinhala'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.sinhala'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-tamil'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.tamil'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-telugu'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.telugu'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-thai'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.thai'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-tibetan'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.tibetan'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-canadian'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.canadian'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-langgroup-other'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'font.langGroup.other'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-proportional-header'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'proportional2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'proportional2.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-default-serif'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'useDefaultFontSerif.label'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-default-sans-serif'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'useDefaultFontSansSerif.label'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-proportional-size'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'size2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'sizeProportional.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-serif'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'serif2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'serif2.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-sans-serif'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'sans-serif2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'sans-serif2.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-monospace'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'monospace2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'monospace2.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-monospace-size'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'size2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'sizeMonospace.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-minsize'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'minSize2.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'minSize2.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-minsize-none'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'minSize.none'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-allow-own'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'allowPagesToUseOwn.label'
+                        )
+                    ),
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'allowPagesToUseOwn.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-header'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'languages.customize.Fallback2.grouplabel'
+                )
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-desc'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'languages.customize.Fallback2.desc'
+                )
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-label'),
+                value=COPY(
+                    'browser/chrome/browser/preferences/fonts.dtd',
+                    'languages.customize.Fallback3.label'
+                ),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('accesskey'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback3.accesskey'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-auto'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.auto'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-arabic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.arabic'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-baltic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.baltic'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-ceiso'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.ceiso'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-cewindows'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.cewindows'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-simplified'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.simplified'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-traditional'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.traditional'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-cyrillic'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.cyrillic'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-greek'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.greek'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-hebrew'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.hebrew'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-japanese'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.japanese'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-korean'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.korean'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-thai'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.thai'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-turkish'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.turkish'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-vietnamese'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.vietnamese'
+                        )
+                    )
+                ]
+            ),
+            FTL.Message(
+                id=FTL.Identifier('fonts-languages-fallback-name-other'),
+                attributes=[
+                    FTL.Attribute(
+                        FTL.Identifier('label'),
+                        COPY(
+                            'browser/chrome/browser/preferences/fonts.dtd',
+                            'languages.customize.Fallback.other'
+                        )
+                    )
+                ]
+            )
+        ]
+    )