Fix Firefox 55 breakage (and remove unnecessary locale lookups)
We were manually looking up the current locale in various places and passing it to nsIStringBundleService::createBundle(), but that hasn't even been a supported argument for years. (I assume it was a long time ago?)
This commit is contained in:
parent
59edca783e
commit
55b2dc39bf
|
@ -257,20 +257,10 @@ function getTooltipText(button) {
|
||||||
|
|
||||||
// Use defaults if necessary
|
// Use defaults if necessary
|
||||||
if (!text) {
|
if (!text) {
|
||||||
// Get the stringbundle manually
|
|
||||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
||||||
let appLocale;
|
|
||||||
if (Services.locale.getAppLocale) {
|
|
||||||
appLocale = Services.locale.getAppLocale();
|
|
||||||
}
|
|
||||||
// Fx <=53
|
|
||||||
else {
|
|
||||||
appLocale = Services.locale.getApplicationLocale();
|
|
||||||
}
|
|
||||||
let src = 'chrome://zotero/locale/zotero.properties';
|
let src = 'chrome://zotero/locale/zotero.properties';
|
||||||
let stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
let stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
||||||
.getService(Components.interfaces.nsIStringBundleService);
|
.getService(Components.interfaces.nsIStringBundleService);
|
||||||
let stringBundle = stringBundleService.createBundle(src, appLocale);
|
let stringBundle = stringBundleService.createBundle(src);
|
||||||
text = stringBundle.GetStringFromName('startupError');
|
text = stringBundle.GetStringFromName('startupError');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -240,24 +240,13 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
|
||||||
this.locale = this.locale + '-' + this.locale.toUpperCase();
|
this.locale = this.locale + '-' + this.locale.toUpperCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load in the localization stringbundle for use by getString(name)
|
_localizedStringBundle = Services.strings.createBundle("chrome://zotero/locale/zotero.properties");
|
||||||
if (Services.locale.getAppLocale) {
|
|
||||||
var appLocale = Services.locale.getAppLocale();
|
|
||||||
}
|
|
||||||
// Fx <=53
|
|
||||||
else {
|
|
||||||
var appLocale = Services.locale.getApplicationLocale();
|
|
||||||
}
|
|
||||||
|
|
||||||
_localizedStringBundle = Services.strings.createBundle(
|
|
||||||
"chrome://zotero/locale/zotero.properties", appLocale);
|
|
||||||
// Fix logged error in PluralForm.jsm when numForms() is called before get(), as it is in
|
// Fix logged error in PluralForm.jsm when numForms() is called before get(), as it is in
|
||||||
// getString() when a number is based
|
// getString() when a number is based
|
||||||
PluralForm.get(1, '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16')
|
PluralForm.get(1, '1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16')
|
||||||
|
|
||||||
// Also load the brand as appName
|
// Also load the brand as appName
|
||||||
var brandBundle = Services.strings.createBundle(
|
var brandBundle = Services.strings.createBundle("chrome://branding/locale/brand.properties");
|
||||||
"chrome://branding/locale/brand.properties", appLocale);
|
|
||||||
this.appName = brandBundle.GetStringFromName("brandShortName");
|
this.appName = brandBundle.GetStringFromName("brandShortName");
|
||||||
|
|
||||||
// Set the locale direction to Zotero.dir
|
// Set the locale direction to Zotero.dir
|
||||||
|
@ -1313,19 +1302,33 @@ Services.scriptloader.loadSubScript("resource://zotero/polyfill.js");
|
||||||
return this.collation;
|
return this.collation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 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) {
|
if (Services.locale.getAppLocale) {
|
||||||
var locale = Services.locale.getAppLocale();
|
locale = Services.locale.getAppLocale();
|
||||||
}
|
}
|
||||||
// Fx <=53
|
// Fx <=53
|
||||||
else {
|
else {
|
||||||
var locale = Services.locale.getApplicationLocale();
|
locale = Services.locale.getApplicationLocale();
|
||||||
locale = locale.getCategory('NSILOCALE_COLLATE');
|
locale = locale.getCategory('NSILOCALE_COLLATE');
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
// Extract a valid language tag
|
// Extract a valid language tag
|
||||||
locale = locale.match(/^[a-z]{2}(\-[A-Z]{2})?/)[0];
|
locale = locale.match(/^[a-z]{2}(\-[A-Z]{2})?/)[0];
|
||||||
var collator = new Intl.Collator(locale, {
|
locales = [locale];
|
||||||
|
}
|
||||||
|
|
||||||
|
var collator = new Intl.Collator(locales, {
|
||||||
ignorePunctuation: true,
|
ignorePunctuation: true,
|
||||||
numeric: true,
|
numeric: true,
|
||||||
sensitivity: 'base'
|
sensitivity: 'base'
|
||||||
|
|
|
@ -4697,18 +4697,10 @@ var ZoteroPane = new function()
|
||||||
var errFunc = Zotero.startupErrorHandler;
|
var errFunc = Zotero.startupErrorHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the stringbundle manually
|
|
||||||
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"]
|
var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
||||||
.getService(Components.interfaces.nsIStringBundleService);
|
.getService(Components.interfaces.nsIStringBundleService);
|
||||||
var src = 'chrome://zotero/locale/zotero.properties';
|
var src = 'chrome://zotero/locale/zotero.properties';
|
||||||
var stringBundle = stringBundleService.createBundle(src, appLocale);
|
var stringBundle = stringBundleService.createBundle(src);
|
||||||
|
|
||||||
var title = stringBundle.GetStringFromName('general.error');
|
var title = stringBundle.GetStringFromName('general.error');
|
||||||
if (!errMsg) {
|
if (!errMsg) {
|
||||||
|
|
|
@ -6,19 +6,10 @@ var lastJumpToYearValue;
|
||||||
* Set up the localization string bundle from timeline.properties
|
* Set up the localization string bundle from timeline.properties
|
||||||
*/
|
*/
|
||||||
function initLocaleBundle() {
|
function initLocaleBundle() {
|
||||||
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 src = 'chrome://zotero/locale/timeline.properties';
|
var src = 'chrome://zotero/locale/timeline.properties';
|
||||||
var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
var stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
||||||
.getService(Components.interfaces.nsIStringBundleService);
|
.getService(Components.interfaces.nsIStringBundleService);
|
||||||
return stringBundleService.createBundle(src, appLocale);
|
return stringBundleService.createBundle(src);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -378,18 +378,10 @@ function ZoteroService() {
|
||||||
let quitStr = "Quit";
|
let quitStr = "Quit";
|
||||||
let checkForUpdateStr = "Check for Update";
|
let checkForUpdateStr = "Check for Update";
|
||||||
try {
|
try {
|
||||||
let appLocale;
|
|
||||||
if (Services.locale.getAppLocale) {
|
|
||||||
appLocale = Services.locale.getAppLocale();
|
|
||||||
}
|
|
||||||
// Fx <=53
|
|
||||||
else {
|
|
||||||
appLocale = Services.locale.getApplicationLocale();
|
|
||||||
}
|
|
||||||
let src = 'chrome://zotero/locale/zotero.properties';
|
let src = 'chrome://zotero/locale/zotero.properties';
|
||||||
let stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
let stringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"]
|
||||||
.getService(Components.interfaces.nsIStringBundleService);
|
.getService(Components.interfaces.nsIStringBundleService);
|
||||||
let stringBundle = stringBundleService.createBundle(src, appLocale);
|
let stringBundle = stringBundleService.createBundle(src);
|
||||||
errorStr = stringBundle.GetStringFromName('general.error');
|
errorStr = stringBundle.GetStringFromName('general.error');
|
||||||
checkForUpdateStr = stringBundle.GetStringFromName('general.checkForUpdate');
|
checkForUpdateStr = stringBundle.GetStringFromName('general.checkForUpdate');
|
||||||
quitStr = stringBundle.GetStringFromName('general.quit');
|
quitStr = stringBundle.GetStringFromName('general.quit');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user