From 7f52280a9527ace3b4604d14ed8c0f39c66eb0e9 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Thu, 25 May 2017 19:49:20 -0400 Subject: [PATCH] Firefox 54 compatiblity for locale service --- chrome/content/zotero/icon.js | 9 +++++- chrome/content/zotero/xpcom/zotero.js | 28 +++++++++---------- .../zotero/timeline/timelineControls.js | 12 ++++++-- 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/chrome/content/zotero/icon.js b/chrome/content/zotero/icon.js index ccfcbee10..2f2c06d69 100644 --- a/chrome/content/zotero/icon.js +++ b/chrome/content/zotero/icon.js @@ -248,7 +248,14 @@ function getTooltipText(button) { let src = 'chrome://zotero/locale/zotero.properties'; let localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1'] .getService(Components.interfaces.nsILocaleService); - let appLocale = localeService.getApplicationLocale(); + 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); diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js index b00e86559..d9ddf2f1c 100644 --- a/chrome/content/zotero/xpcom/zotero.js +++ b/chrome/content/zotero/xpcom/zotero.js @@ -270,9 +270,13 @@ Components.utils.import("resource://gre/modules/Services.jsm"); var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); - var localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1']. - getService(Components.interfaces.nsILocaleService); - var appLocale = localeService.getApplicationLocale(); + 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); @@ -1492,17 +1496,13 @@ Components.utils.import("resource://gre/modules/Services.jsm"); return this.collation; } - var localeService = Components.classes["@mozilla.org/intl/nslocaleservice;1"] - .getService(Components.interfaces.nsILocaleService); - var appLocale = localeService.getApplicationLocale(); - - // Use nsICollation before Fx30 - if (Zotero.platformMajorVersion < 30) { - var localeService = Components.classes["@mozilla.org/intl/nslocaleservice;1"] - .getService(Components.interfaces.nsILocaleService); - var collationFactory = Components.classes["@mozilla.org/intl/collation-factory;1"] - .getService(Components.interfaces.nsICollationFactory); - return this.collation = collationFactory.CreateCollation(appLocale); + 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(); } try { diff --git a/chrome/skin/default/zotero/timeline/timelineControls.js b/chrome/skin/default/zotero/timeline/timelineControls.js index d0cd1f18b..80fd121ef 100644 --- a/chrome/skin/default/zotero/timeline/timelineControls.js +++ b/chrome/skin/default/zotero/timeline/timelineControls.js @@ -7,9 +7,15 @@ var lastJumpToYearValue; */ function initLocaleBundle() { var src = 'chrome://zotero/locale/timeline.properties'; - var localeService = Components.classes['@mozilla.org/intl/nslocaleservice;1'] - .getService(Components.interfaces.nsILocaleService); - var appLocale = localeService.getApplicationLocale(); + + 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);