Bug 1504751 Migrate about:networking to Fluent r=jaws,flod
authorCollin Wing <masterkrombi@gmail.com>
Tue, 20 Nov 2018 00:53:23 +0000
changeset 508238 f4cb63cf5e47447de99ca1d236696a3a63e09629
parent 508237 1a7497dad85e5674cf508b93f22bb0301e013074
child 508239 65511560940f5ac446b1cb4e76d5dcba74a3bf85
push id1905
push userffxbld-merge
push dateMon, 21 Jan 2019 12:33:13 +0000
treeherdermozilla-release@c2fca1944d8c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersjaws, flod
bugs1504751
milestone65.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1504751 Migrate about:networking to Fluent r=jaws,flod Differential Revision: https://phabricator.services.mozilla.com/D10977
browser/base/content/test/static/browser_misused_characters_in_strings.js
python/l10n/fluent_migrations/bug_1504751_aboutnetworking.py
toolkit/content/aboutNetworking.xhtml
toolkit/locales/en-US/chrome/global/aboutNetworking.dtd
toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl
toolkit/locales/jar.mn
--- a/browser/base/content/test/static/browser_misused_characters_in_strings.js
+++ b/browser/base/content/test/static/browser_misused_characters_in_strings.js
@@ -148,20 +148,16 @@ let gWhitelist = [{
     file: "netErrorApp.dtd",
     key: "securityOverride.warningContent",
     type: "single-quote",
   }, {
     file: "pocket.properties",
     key: "tos",
     type: "double-quote",
   }, {
-    file: "aboutNetworking.dtd",
-    key: "aboutNetworking.logTutorial",
-    type: "single-quote",
-  }, {
     file: "browser.dtd",
     key: "addonPostInstallMessage.label",
     type: "single-quote",
   },
 ];
 
 /**
  * Check if an error should be ignored due to matching one of the whitelist
new file mode 100644
--- /dev/null
+++ b/python/l10n/fluent_migrations/bug_1504751_aboutnetworking.py
@@ -0,0 +1,99 @@
+from __future__ import absolute_import
+import fluent.syntax.ast as FTL
+from fluent.migrate.helpers import transforms_from
+from fluent.migrate import CONCAT
+from fluent.migrate import REPLACE
+from fluent.migrate import COPY
+
+
+def migrate(ctx):
+    """ Bug 1504751 - Migrate about:Networking to Fluent, part {index}. """
+
+    ctx.add_transforms(
+        "toolkit/toolkit/about/aboutNetworking.ftl",
+        "toolkit/toolkit/about/aboutNetworking.ftl",
+        transforms_from(
+"""
+title = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.title")}
+warning = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.warning")}
+show-next-time-checkbox = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.showNextTime")}
+ok = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.ok")}
+http = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.HTTP")}
+sockets = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.sockets")}
+dns = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.dns")}
+websockets = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.websockets")}
+refresh = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.refresh")}
+auto-refresh = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.autoRefresh")}
+hostname = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.hostname")}
+port = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.port")}
+http2 = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.http2")}
+ssl = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.ssl")}
+active = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.active")}
+idle = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.idle")}
+host = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.host")}
+tcp = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.tcp")}
+sent = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.sent")}
+received = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.received")}
+family = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.family")}
+trr = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.trr")}
+addresses = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.addresses")}
+expires = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.expires")}
+messages-sent = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.messagesSent")}
+messages-received = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.messagesReceived")}
+bytes-sent = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.bytesSent")}
+bytes-received = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.bytesReceived")}
+logging = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.logging")}
+current-log-file = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.currentLogFile")}
+current-log-modules = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.currentLogModules")}
+set-log-file = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.setLogFile")}
+set-log-modules = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.setLogModules")}
+start-logging = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.startLogging")}
+stop-logging = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.stopLogging")}
+dns-lookup = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.dnsLookup")}
+dns-lookup-button = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.dnsLookupButton")}
+dns-lookup-table-column = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.dnsLookupTableColumn")}
+rcwn = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwn")}
+rcwn-status = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnStatus")}
+rcwn-cache-won-count = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnCacheWonCount")}
+rcwn-net-won-count = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnNetWonCount")}
+total-network-requests = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.totalNetworkRequests")}
+rcwn-operation = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnOperation")}
+rcwn-perf-open = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnPerfOpen")}
+rcwn-perf-read = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnPerfRead")}
+rcwn-perf-write = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnPerfWrite")}
+rcwn-perf-entry-open = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnPerfEntryOpen")}
+rcwn-avg-short = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnAvgShort")}
+rcwn-avg-long = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnAvgLong")}
+rcwn-std-dev-long = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnStddevLong")}
+rcwn-cache-slow = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnCacheSlow")}
+rcwn-cache-not-slow = { COPY("toolkit/chrome/global/aboutNetworking.dtd", "aboutNetworking.rcwnCacheNotSlow")}
+"""
+        )
+    )
+
+    ctx.add_transforms(
+        "toolkit/toolkit/about/aboutNetworking.ftl",
+        "toolkit/toolkit/about/aboutNetworking.ftl",
+        [
+            FTL.Message(
+                id=FTL.Identifier("log-tutorial"),
+                value=REPLACE(
+                    "toolkit/chrome/global/aboutNetworking.dtd",
+                    "aboutNetworking.logTutorial",
+                    {
+                        "href='https://developer.mozilla.org/docs/Mozilla/Debugging/HTTP_logging'": FTL.TextElement('data-l10n-name="logging"')
+                    }
+                )
+            ),
+            FTL.Message(
+                id=FTL.Identifier("dns-domain"),
+                value=CONCAT(
+                    COPY(
+                        "toolkit/chrome/global/aboutNetworking.dtd",
+                        "aboutNetworking.dnsDomain",
+                    ),
+                    FTL.TextElement(":"),
+                )
+            )
+        ]
+    )
--- a/toolkit/content/aboutNetworking.xhtml
+++ b/toolkit/content/aboutNetworking.xhtml
@@ -1,161 +1,156 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 
-<!DOCTYPE html [
-<!ENTITY % htmlDTD PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> %htmlDTD;
-<!ENTITY % globalDTD SYSTEM "chrome://global/locale/global.dtd"> %globalDTD;
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd"> %brandDTD;
-<!ENTITY % networkingDTD SYSTEM "chrome://global/locale/aboutNetworking.dtd"> %networkingDTD;
-]>
+<!DOCTYPE html>
 
-<html xmlns="http://www.w3.org/1999/xhtml" dir="&locale.dir;">
+<html xmlns="http://www.w3.org/1999/xhtml">
     <head>
-        <title>&aboutNetworking.title;</title>
+        <title data-l10n-id="title"/>
         <link rel="stylesheet" href="chrome://mozapps/skin/aboutNetworking.css" type="text/css" />
         <script type="application/javascript" src="chrome://global/content/aboutNetworking.js" />
+        <link rel="localization"  href="toolkit/about/aboutNetworking.ftl"/>
     </head>
     <body id="body">
         <div id="warning_message" class="warningBackground" hidden="true">
             <div class="container">
-                <h1 class="title">&aboutNetworking.warning;</h1>
+                <h1 class="title" data-l10n-id="warning"/>
                 <div class="toggle-container-with-text">
                     <input id="warncheck" type="checkbox" checked="yes" role="checkbox" />
-                    <label for="warncheck">&aboutNetworking.showNextTime;</label>
+                    <label for="warncheck" data-l10n-id="show-next-time-checkbox"/>
                 </div>
                 <div>
-                    <button id="confpref" class="primary">&aboutNetworking.ok;</button>
+                    <button id="confpref" class="primary" data-l10n-id="ok"/>
                 </div>
             </div>
         </div>
         <div id="categories">
             <div class="category" selected="true" id="category-http">
-                <span class="category-name">&aboutNetworking.HTTP;</span>
+                <span class="category-name" data-l10n-id="http"/>
             </div>
             <div class="category" id="category-sockets">
-                <span class="category-name">&aboutNetworking.sockets;</span>
+                <span class="category-name" data-l10n-id="sockets"/>
             </div>
             <div class="category" id="category-dns">
-                <span class="category-name">&aboutNetworking.dns;</span>
+                <span class="category-name" data-l10n-id="dns"/>
             </div>
             <div class="category" id="category-websockets">
-                <span class="category-name">&aboutNetworking.websockets;</span>
+                <span class="category-name" data-l10n-id="websockets"/>
             </div>
             <hr></hr>
             <div class="category" id="category-dnslookuptool">
-                <span class="category-name">&aboutNetworking.dnsLookup;</span>
+                <span class="category-name" data-l10n-id="dns-lookup"/>
             </div>
             <div class="category" id="category-logging">
-                <span class="category-name">&aboutNetworking.logging;</span>
+                <span class="category-name" data-l10n-id="logging"/>
             </div>
             <div class="category" id="category-rcwn">
-                <span class="category-name">&aboutNetworking.rcwn;</span>
+                <span class="category-name" data-l10n-id="rcwn"/>
             </div>
         </div>
         <div class="main-content">
             <div class="header">
-                <div id="sectionTitle" class="header-name">
-                    &aboutNetworking.HTTP;
-                </div>
+                <div id="sectionTitle" class="header-name" data-l10n-id="http"/>
                 <div id="refreshDiv" class="toggle-container-with-text">
-                    <button id="refreshButton">&aboutNetworking.refresh;</button>
+                    <button id="refreshButton" data-l10n-id="refresh"/>
                     <input id="autorefcheck" type="checkbox" name="Autorefresh" role="checkbox" />
-                    <label for="autorefcheck">&aboutNetworking.autoRefresh;</label>
+                    <label for="autorefcheck" data-l10n-id="auto-refresh"/>
                 </div>
             </div>
 
           <div id="http" class="tab active">
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.hostname;</th>
-                          <th>&aboutNetworking.port;</th>
-                          <th>&aboutNetworking.http2;</th>
-                          <th>&aboutNetworking.ssl;</th>
-                          <th>&aboutNetworking.active;</th>
-                          <th>&aboutNetworking.idle;</th>
+                          <th data-l10n-id="hostname"/>
+                          <th data-l10n-id="port"/>
+                          <th data-l10n-id="http2"/>
+                          <th data-l10n-id="ssl"/>
+                          <th data-l10n-id="active"/>
+                          <th data-l10n-id="idle"/>
                       </tr>
                   </thead>
                   <tbody id="http_content" />
               </table>
           </div>
 
           <div id="sockets" class="tab" hidden="true">
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.host;</th>
-                          <th>&aboutNetworking.port;</th>
-                          <th>&aboutNetworking.tcp;</th>
-                          <th>&aboutNetworking.active;</th>
-                          <th>&aboutNetworking.sent;</th>
-                          <th>&aboutNetworking.received;</th>
+                          <th data-l10n-id="host"/>
+                          <th data-l10n-id="port"/>
+                          <th data-l10n-id="tcp"/>
+                          <th data-l10n-id="active"/>
+                          <th data-l10n-id="sent"/>
+                          <th data-l10n-id="received"/>
                       </tr>
                   </thead>
                   <tbody id="sockets_content" />
               </table>
           </div>
 
           <div id="dns" class="tab" hidden="true">
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.hostname;</th>
-                          <th>&aboutNetworking.family;</th>
-                          <th>&aboutNetworking.trr;</th>
-                          <th>&aboutNetworking.addresses;</th>
-                          <th>&aboutNetworking.expires;</th>
+                          <th data-l10n-id="hostname"/>
+                          <th data-l10n-id="family"/>
+                          <th data-l10n-id="trr"/>
+                          <th data-l10n-id="addresses"/>
+                          <th data-l10n-id="expires"/>
                       </tr>
                   </thead>
                   <tbody id="dns_content" />
               </table>
           </div>
 
           <div id="websockets" class="tab" hidden="true">
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.hostname;</th>
-                          <th>&aboutNetworking.ssl;</th>
-                          <th>&aboutNetworking.messagesSent;</th>
-                          <th>&aboutNetworking.messagesReceived;</th>
-                          <th>&aboutNetworking.bytesSent;</th>
-                          <th>&aboutNetworking.bytesReceived;</th>
+                          <th data-l10n-id="hostname"/>
+                          <th data-l10n-id="ssl"/>
+                          <th data-l10n-id="messages-sent"/>
+                          <th data-l10n-id="messages-received"/>
+                          <th data-l10n-id="bytes-sent"/>
+                          <th data-l10n-id="bytes-received"/>
                       </tr>
                   </thead>
                   <tbody id="websockets_content" />
               </table>
           </div>
 
           <div id="dnslookuptool" class="tab" hidden="true">
-              &aboutNetworking.dnsDomain;: <input type="text" name="host" id="host"></input>
-              <button id="dnsLookupButton">&aboutNetworking.dnsLookupButton;</button>
+              <label data-l10n-id="dns-domain"/>
+              <input type="text" name="host" id="host"></input>
+              <button id="dnsLookupButton" data-l10n-id="dns-lookup-button"/>
               <hr/>
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.dnsLookupTableColumn;</th>
+                          <th data-l10n-id="dns-lookup-table-column"/>
                       </tr>
                   </thead>
                   <tbody id="dnslookuptool_content" />
               </table>
           </div>
 
           <div id="rcwn" class="tab" hidden="true">
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.rcwnStatus;</th>
-                          <th>&aboutNetworking.totalNetworkRequests;</th>
-                          <th>&aboutNetworking.rcwnCacheWonCount;</th>
-                          <th>&aboutNetworking.rcwnNetWonCount;</th>
+                          <th data-l10n-id="rcwn-status"/>
+                          <th data-l10n-id="total-network-requests"/>
+                          <th data-l10n-id="rcwn-cache-won-count"/>
+                          <th data-l10n-id="rcwn-net-won-count"/>
                       </tr>
                   </thead>
                   <tbody id="rcwn_content">
                     <tr>
                       <td id="rcwn_status"> </td>
                       <td id="total_req_count"> </td>
                       <td id="rcwn_cache_won_count"> </td>
                       <td id="rcwn_cache_net_count"> </td>
@@ -163,87 +158,89 @@
                   </tbody>
               </table>
 
               <br/><br/>
 
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.rcwnOperation;</th>
-                          <th>&aboutNetworking.rcwnAvgShort;</th>
-                          <th>&aboutNetworking.rcwnAvgLong;</th>
-                          <th>&aboutNetworking.rcwnStddevLong;</th>
+                          <th data-l10n-id="rcwn-operation"/>
+                          <th data-l10n-id="rcwn-avg-short"/>
+                          <th data-l10n-id="rcwn-avg-long"/>
+                          <th data-l10n-id="rcwn-std-dev-long"/>
                       </tr>
                   </thead>
                   <tbody id="cacheperf_content">
                       <tr>
-                          <td>&aboutNetworking.rcwnPerfOpen;</td>
+                          <td data-l10n-id="rcwn-perf-open"/>
                           <td id="rcwn_perfstats_open_avgShort"> </td>
                           <td id="rcwn_perfstats_open_avgLong"> </td>
                           <td id="rcwn_perfstats_open_stddevLong"> </td>
                       </tr>
                       <tr>
-                          <td>&aboutNetworking.rcwnPerfRead;</td>
+                          <td data-l10n-id="rcwn-perf-read"/>
                           <td id="rcwn_perfstats_read_avgShort"> </td>
                           <td id="rcwn_perfstats_read_avgLong"> </td>
                           <td id="rcwn_perfstats_read_stddevLong"> </td>
                       </tr>
                       <tr>
-                          <td>&aboutNetworking.rcwnPerfWrite;</td>
+                          <td data-l10n-id="rcwn-perf-write"/>
                           <td id="rcwn_perfstats_write_avgShort"> </td>
                           <td id="rcwn_perfstats_write_avgLong"> </td>
                           <td id="rcwn_perfstats_write_stddevLong"> </td>
                       </tr>
                       <tr>
-                          <td>&aboutNetworking.rcwnPerfEntryOpen;</td>
+                          <td data-l10n-id="rcwn-perf-entry-open"/>
                           <td id="rcwn_perfstats_entryopen_avgShort"> </td>
                           <td id="rcwn_perfstats_entryopen_avgLong"> </td>
                           <td id="rcwn_perfstats_entryopen_stddevLong"> </td>
                       </tr>
                   </tbody>
               </table>
 
               <br/><br/>
 
               <table>
                   <thead>
                       <tr>
-                          <th>&aboutNetworking.rcwnCacheSlow;</th>
-                          <th>&aboutNetworking.rcwnCacheNotSlow;</th>
+                          <th data-l10n-id="rcwn-cache-slow"/>
+                          <th data-l10n-id="rcwn-cache-not-slow"/>
                       </tr>
                   </thead>
                   <tbody>
                       <tr>
                           <td id="rcwn_cache_slow"> </td>
                           <td id="rcwn_cache_not_slow"> </td>
                       </tr>
                   </tbody>
               </table>
           </div>
 
           <div id="logging" class="tab" hidden="true">
             <div>
-              &aboutNetworking.logTutorial;
+                <a href='https://developer.mozilla.org/docs/Mozilla/Debugging/HTTP_logging' data-l10n-name="logging"></a>
             </div>
             <br/>
             <div>
-              <button id="start-logging-button"> &aboutNetworking.startLogging; </button>
-              <button id="stop-logging-button"> &aboutNetworking.stopLogging; </button>
+              <button id="start-logging-button" data-l10n-id="start-logging"/>
+              <button id="stop-logging-button" data-l10n-id="stop-logging"/>
             </div>
             <br/>
             <br/>
             <div>
-              &aboutNetworking.currentLogFile; <div id="current-log-file"></div><br/>
+              <label data-l10n-id="current-log-file"/>
+              <div id="current-log-file"></div><br/>
               <input type="text" name="log-file" id="log-file"></input>
-              <button id="set-log-file-button"> &aboutNetworking.setLogFile; </button>
+              <button id="set-log-file-button" data-l10n-id="set-log-file"/>
             </div>
             <div>
-              &aboutNetworking.currentLogModules; <div id="current-log-modules"></div><br/>
+              <label data-l10n-id="current-log-modules"/>
+              <div id="current-log-modules"></div><br/>
               <input type="text" name="log-modules" id="log-modules" value="timestamp,sync,nsHttp:5,cache2:5,nsSocketTransport:5,nsHostResolver:5"></input>
-              <button id="set-log-modules-button"> &aboutNetworking.setLogModules; </button>
+              <button id="set-log-modules-button" data-l10n-id="set-log-modules"/>
             </div>
           </div>
 
         </div>
     </body>
 </html>
 
deleted file mode 100644
--- a/toolkit/locales/en-US/chrome/global/aboutNetworking.dtd
+++ /dev/null
@@ -1,59 +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 aboutNetworking.title                 "About Networking">
-<!ENTITY aboutNetworking.warning               "This is very experimental. Do not use without adult supervision.">
-<!ENTITY aboutNetworking.showNextTime          "Show this warning next time">
-<!ENTITY aboutNetworking.ok                    "OK">
-<!ENTITY aboutNetworking.HTTP                  "HTTP">
-<!ENTITY aboutNetworking.sockets               "Sockets">
-<!ENTITY aboutNetworking.dns                   "DNS">
-<!ENTITY aboutNetworking.websockets            "WebSockets">
-<!ENTITY aboutNetworking.refresh               "Refresh">
-<!ENTITY aboutNetworking.autoRefresh           "Autorefresh every 3 seconds">
-<!ENTITY aboutNetworking.hostname              "Hostname">
-<!ENTITY aboutNetworking.port                  "Port">
-<!ENTITY aboutNetworking.http2                 "HTTP/2">
-<!ENTITY aboutNetworking.ssl                   "SSL">
-<!ENTITY aboutNetworking.active                "Active">
-<!ENTITY aboutNetworking.idle                  "Idle">
-<!ENTITY aboutNetworking.host                  "Host">
-<!ENTITY aboutNetworking.tcp                   "TCP">
-<!ENTITY aboutNetworking.sent                  "Sent">
-<!ENTITY aboutNetworking.received              "Received">
-<!ENTITY aboutNetworking.family                "Family">
-<!ENTITY aboutNetworking.trr                   "TRR">
-<!ENTITY aboutNetworking.addresses             "Addresses">
-<!ENTITY aboutNetworking.expires               "Expires (Seconds)">
-<!ENTITY aboutNetworking.messagesSent          "Messages Sent">
-<!ENTITY aboutNetworking.messagesReceived      "Messages Received">
-<!ENTITY aboutNetworking.bytesSent             "Bytes Sent">
-<!ENTITY aboutNetworking.bytesReceived         "Bytes Received">
-<!ENTITY aboutNetworking.logging               "Logging">
-<!ENTITY aboutNetworking.logTutorial           "See <a href='https://developer.mozilla.org/docs/Mozilla/Debugging/HTTP_logging'>HTTP Logging</a> for instructions on how to use this tool.">
-<!ENTITY aboutNetworking.currentLogFile        "Current Log File:">
-<!ENTITY aboutNetworking.currentLogModules     "Current Log Modules:">
-<!ENTITY aboutNetworking.setLogFile            "Set Log File">
-<!ENTITY aboutNetworking.setLogModules         "Set Log Modules">
-<!ENTITY aboutNetworking.startLogging          "Start Logging">
-<!ENTITY aboutNetworking.stopLogging           "Stop Logging">
-<!ENTITY aboutNetworking.dnsLookup             "DNS Lookup">
-<!ENTITY aboutNetworking.dnsLookupButton       "Resolve">
-<!ENTITY aboutNetworking.dnsDomain             "Domain">
-<!ENTITY aboutNetworking.dnsLookupTableColumn  "IPs">
-<!ENTITY aboutNetworking.rcwn                  "RCWN Stats">
-<!ENTITY aboutNetworking.rcwnStatus            "RCWN Status">
-<!ENTITY aboutNetworking.rcwnCacheWonCount     "Cache won count">
-<!ENTITY aboutNetworking.rcwnNetWonCount       "Net won count">
-<!ENTITY aboutNetworking.totalNetworkRequests  "Total network request count">
-<!ENTITY aboutNetworking.rcwnOperation         "Cache Operation">
-<!ENTITY aboutNetworking.rcwnPerfOpen          "Open">
-<!ENTITY aboutNetworking.rcwnPerfRead          "Read">
-<!ENTITY aboutNetworking.rcwnPerfWrite         "Write">
-<!ENTITY aboutNetworking.rcwnPerfEntryOpen     "Entry Open">
-<!ENTITY aboutNetworking.rcwnAvgShort          "Short Average">
-<!ENTITY aboutNetworking.rcwnAvgLong           "Long Average">
-<!ENTITY aboutNetworking.rcwnStddevLong        "Long Standard Deviation">
-<!ENTITY aboutNetworking.rcwnCacheSlow         "Cache slow count">
-<!ENTITY aboutNetworking.rcwnCacheNotSlow      "Cache not slow count">
new file mode 100644
--- /dev/null
+++ b/toolkit/locales/en-US/toolkit/about/aboutNetworking.ftl
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+title = About Networking
+warning = This is very experimental. Do not use without adult supervision.
+show-next-time-checkbox = Show this warning next time
+ok = OK
+http = HTTP
+sockets = Sockets
+dns = DNS
+websockets = WebSockets
+refresh = Refresh
+auto-refresh = Autorefresh every 3 seconds
+hostname = Hostname
+port = Port
+http2 = HTTP/2
+ssl = SSL
+active = Active
+idle = Idle
+host = Host
+tcp = TCP
+sent = Sent
+received = Received
+family = Family
+trr = TRR
+addresses = Addresses
+expires = Expires (Seconds)
+messages-sent = Messages Sent
+messages-received = Messages Received
+bytes-sent = Bytes Sent
+bytes-received = Bytes Received
+logging = Logging
+log-tutorial =
+    See <a data-l10n-name="logging">HTTP Logging</a>
+    for instructions on how to use this tool.
+current-log-file = Current Log File:
+current-log-modules = Current Log Modules:
+set-log-file = Set Log File
+set-log-modules = Set Log Modules
+start-logging = Start Logging
+stop-logging = Stop Logging
+dns-lookup = DNS Lookup
+dns-lookup-button = Resolve
+dns-domain = Domain:
+dns-lookup-table-column = IPs
+rcwn = RCWN Stats
+rcwn-status = RCWN Status
+rcwn-cache-won-count = Cache won count
+rcwn-net-won-count = Net won count
+total-network-requests = Total network request count
+rcwn-operation = Cache Operation
+rcwn-perf-open = Open
+rcwn-perf-read = Read
+rcwn-perf-write = Write
+rcwn-perf-entry-open = Entry Open
+rcwn-avg-short = Short Average
+rcwn-avg-long = Long Average
+rcwn-std-dev-long = Long Standard Deviation
+rcwn-cache-slow = Cache slow count
+rcwn-cache-not-slow = Cache not slow count
--- a/toolkit/locales/jar.mn
+++ b/toolkit/locales/jar.mn
@@ -6,17 +6,16 @@
 [localization] @AB_CD@.jar:
   crashreporter                                    (%crashreporter/**/*.ftl)
   toolkit                                          (%toolkit/**/*.ftl)
 
 @AB_CD@.jar:
 % locale global @AB_CD@ %locale/@AB_CD@/global/
   locale/@AB_CD@/global/aboutReader.properties          (%chrome/global/aboutReader.properties)
   locale/@AB_CD@/global/aboutRights.dtd                 (%chrome/global/aboutRights.dtd)
-  locale/@AB_CD@/global/aboutNetworking.dtd             (%chrome/global/aboutNetworking.dtd)
   locale/@AB_CD@/global/aboutStudies.properties         (%chrome/global/aboutStudies.properties)
   locale/@AB_CD@/global/aboutServiceWorkers.dtd         (%chrome/global/aboutServiceWorkers.dtd)
   locale/@AB_CD@/global/aboutServiceWorkers.properties  (%chrome/global/aboutServiceWorkers.properties)
   locale/@AB_CD@/global/aboutSupport.dtd                (%chrome/global/aboutSupport.dtd)
   locale/@AB_CD@/global/aboutSupport.properties         (%chrome/global/aboutSupport.properties)
   locale/@AB_CD@/global/aboutTelemetry.dtd              (%chrome/global/aboutTelemetry.dtd)
   locale/@AB_CD@/global/aboutTelemetry.properties       (%chrome/global/aboutTelemetry.properties)
   locale/@AB_CD@/global/aboutWebrtc.properties          (%chrome/global/aboutWebrtc.properties)