Bug 1504751 Migrate about:networking to Fluent r=jaws,flod
☠☠ backed out by 38de1a06d486 ☠ ☠
authorCollin Wing <masterkrombi@gmail.com>
Fri, 16 Nov 2018 18:01:08 +0000
changeset 503239 962527f12004f42c50cddd1475cdb7d62c91134c
parent 503238 ae7984aa48035013da1f4f5431748221be279b70
child 503240 113e5589cea7f811d1aa3e3ef5164a09f5177089
push id10290
push userffxbld-merge
push dateMon, 03 Dec 2018 16:23:23 +0000
treeherdermozilla-beta@700bed2445e6 [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,87 @@
                   </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/>
+            <div 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/>
+            <div 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)