diff --git a/chrome/content/zotero/icon.js b/chrome/content/zotero/icon.js index 2f2c06d69..86a622358 100644 --- a/chrome/content/zotero/icon.js +++ b/chrome/content/zotero/icon.js @@ -249,16 +249,9 @@ function getTooltipText(button) { let localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1'] .getService(Components.interfaces.nsILocaleService); Components.utils.import("resource://gre/modules/Services.jsm"); - if (Services.locale.getAppLocale) { - var appLocale = Services.locale.getAppLocale(); - } - // Fx <=53 - else { - var appLocale = Services.locale.getApplicationLocale(); - } let stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); - let stringBundle = stringBundleService.createBundle(src, appLocale); + let stringBundle = stringBundleService.createBundle(src); text = stringBundle.GetStringFromName('startupError'); } } diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js index 278640372..a37027501 100644 --- a/chrome/content/zotero/xpcom/zotero.js +++ b/chrome/content/zotero/xpcom/zotero.js @@ -266,24 +266,10 @@ Components.utils.import("resource://gre/modules/Services.jsm"); this.locale = this.locale + '-' + this.locale.toUpperCase(); } - // Load in the localization stringbundle for use by getString(name) - var stringBundleService = - Components.classes["@mozilla.org/intl/stringbundle;1"] - .getService(Components.interfaces.nsIStringBundleService); - if (Services.locale.getAppLocale) { - var appLocale = Services.locale.getAppLocale(); - } - // Fx <=53 - else { - var appLocale = Services.locale.getApplicationLocale(); - } - - _localizedStringBundle = stringBundleService.createBundle( - "chrome://zotero/locale/zotero.properties", appLocale); + _localizedStringBundle = Services.strings.createBundle("chrome://zotero/locale/zotero.properties"); // Also load the brand as appName - var brandBundle = stringBundleService.createBundle( - "chrome://branding/locale/brand.properties", appLocale); + var brandBundle = Services.strings.createBundle("chrome://branding/locale/brand.properties"); this.appName = brandBundle.GetStringFromName("brandShortName"); // Set the locale direction to Zotero.dir @@ -1496,20 +1482,33 @@ Components.utils.import("resource://gre/modules/Services.jsm"); return this.collation; } - Components.utils.import("resource://gre/modules/Services.jsm"); - if (Services.locale.getAppLocale) { - var locale = Services.locale.getAppLocale(); - } - // Fx <=53 - else { - var locale = Services.locale.getApplicationLocale(); - locale = locale.getCategory('NSILOCALE_COLLATE'); - } - try { - // Extract a valid language tag - locale = locale.match(/^[a-z]{2}(\-[A-Z]{2})?/)[0]; - var collator = new Intl.Collator(locale, { + // DEBUG: Is this necessary, or will Intl.Collator just default to the same locales we're + // passing manually? + + let locales; + // Fx55+ + if (Services.locale.getAppLocalesAsBCP47) { + locales = Services.locale.getAppLocalesAsBCP47(); + } + else { + let locale; + // Fx54 + if (Services.locale.getAppLocale) { + locale = Services.locale.getAppLocale(); + } + // Fx <=53 + else { + locale = Services.locale.getApplicationLocale(); + locale = locale.getCategory('NSILOCALE_COLLATE'); + } + + // Extract a valid language tag + locale = locale.match(/^[a-z]{2}(\-[A-Z]{2})?/)[0]; + locales = [locale]; + } + + var collator = new Intl.Collator(locales, { ignorePunctuation: true, numeric: true, sensitivity: 'base' diff --git a/chrome/content/zotero/zoteroPane.js b/chrome/content/zotero/zoteroPane.js index 5ca1128ae..a6434ece7 100644 --- a/chrome/content/zotero/zoteroPane.js +++ b/chrome/content/zotero/zoteroPane.js @@ -4076,14 +4076,9 @@ var ZoteroPane = new function() } if (!errMsg) { - // Get the stringbundle manually - var src = 'chrome://zotero/locale/zotero.properties'; - var localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1']. - getService(Components.interfaces.nsILocaleService); - var appLocale = localeService.getApplicationLocale(); var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); - var stringBundle = stringBundleService.createBundle(src, appLocale); + var stringBundle = stringBundleService.createBundle(src); var errMsg = stringBundle.GetStringFromName('startupError'); } diff --git a/chrome/skin/default/zotero/timeline/timelineControls.js b/chrome/skin/default/zotero/timeline/timelineControls.js index 80fd121ef..f4e5a1708 100644 --- a/chrome/skin/default/zotero/timeline/timelineControls.js +++ b/chrome/skin/default/zotero/timeline/timelineControls.js @@ -7,19 +7,9 @@ var lastJumpToYearValue; */ function initLocaleBundle() { var src = 'chrome://zotero/locale/timeline.properties'; - - Components.utils.import("resource://gre/modules/Services.jsm"); - if (Services.locale.getAppLocale) { - var appLocale = Services.locale.getAppLocale(); - } - // Fx <=53 - else { - var appLocale = Services.locale.getApplicationLocale(); - } - var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); - return stringBundleService.createBundle(src, appLocale); + return stringBundleService.createBundle(src); } /*