Bug 1449505 - Migrate translation-infobar to use mozIntl.getLocaleDisplayNames. r?jfkthame
MozReview-Commit-ID: I3aK212eJtE
--- 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",