Bug 1449505 - Migrate translation-infobar to use mozIntl.getLocaleDisplayNames. r?jfkthame draft
authorZibi Braniecki <zbraniecki@mozilla.com>
Sun, 01 Apr 2018 14:54:53 +0200
changeset 780084 eecd6cda118996ce369deb752ada62d6fa87ebaf
parent 780083 2c9adb9f14e2e8ae3e568c1ff64885ed76e6338a
child 780085 bbad963421986a36a24b1eda540a8f2d5510ab22
push id105961
push userbmo:gandalf@aviary.pl
push dateWed, 11 Apr 2018 07:08:45 +0000
reviewersjfkthame
bugs1449505
milestone61.0a1
Bug 1449505 - Migrate translation-infobar to use mozIntl.getLocaleDisplayNames. r?jfkthame MozReview-Commit-ID: I3aK212eJtE
browser/components/translation/translation-infobar.xml
--- a/browser/components/translation/translation-infobar.xml
+++ b/browser/components/translation/translation-infobar.xml
@@ -177,19 +177,20 @@
         </setter>
       </property>
 
       <method name="init">
         <parameter name="aTranslation"/>
         <body>
           <![CDATA[
             this.translation = aTranslation;
-            let bundle = Services.strings.createBundle("chrome://global/locale/languageNames.properties");
+
             let sortByLocalizedName = function(aList) {
-              return aList.map(code => [code, bundle.GetStringFromName(code)])
+              let names = Services.intl.getLanguageDisplayNames(undefined, aList);
+              return aList.map((code, i) => [code, names[i]])
                           .sort((a, b) => a[1].localeCompare(b[1]));
             };
 
             // Fill the lists of supported source languages.
             let detectedLanguage = this._getAnonElt("detectedLanguage");
             let fromLanguage = this._getAnonElt("fromLanguage");
             let sourceLanguages =
               sortByLocalizedName(Translation.supportedSourceLanguages);
@@ -350,19 +351,17 @@
               lang = this._getAnonElt("fromLanguage").value;
 
               // If we have never attempted to translate the page before the
               // service became unavailable, "fromLanguage" isn't set.
               if (!lang && this.state == Translation.STATE_UNAVAILABLE)
                 lang = this.translation.detectedLanguage;
             }
 
-            let langBundle =
-              Services.strings.createBundle("chrome://global/locale/languageNames.properties");
-            let langName = langBundle.GetStringFromName(lang);
+            let langName = Services.intl.getLanguageDisplayNames(undefined, [lang])[0];
 
             // Set the label and accesskey on the menuitem.
             let bundle =
               Services.strings.createBundle("chrome://browser/locale/translation.properties");
             let item = this._getAnonElt("neverForLanguage");
             const kStrId = "translation.options.neverForLanguage";
             item.setAttribute("label",
                               bundle.formatStringFromName(kStrId + ".label",