Closes #541, Option to force use of English (or any arbitrary locale?) in bibliographies

For now, via hidden pref, extensions.zotero.export.bibliographyLocale -- we'll add it to the UI in 1.5
This commit is contained in:
Dan Stillman 2007-10-23 00:14:33 +00:00
parent 96a95f0e1c
commit 5bf7106d5b
35 changed files with 97 additions and 18 deletions

View File

@ -1178,18 +1178,57 @@ Zotero.CSL.Global = new function() {
*/
function init() {
if(!Zotero.CSL.Global._xmlLang) {
// get XML lang
Zotero.CSL.Global._xmlLang = Zotero.locale;
var prefix = "chrome://zotero/content/locale/csl/locales-";
var ext = ".xml";
// read locales.xml from directory
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", "chrome://zotero/locale/locales.xml", false);
req.overrideMimeType("text/plain");
req.send(null);
// If explicit bib locale, try to use that
var bibLocale = Zotero.Prefs.get('export.bibliographyLocale');
if (bibLocale) {
var loc = bibLocale;
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
if (req.responseText) {
Zotero.CSL.Global._xmlLang = loc;
var xml = req.responseText;
}
}
// If no or invalid bib locale, try Firefox locale
if (!xml) {
var loc = Zotero.locale;
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
if (req.responseText) {
Zotero.CSL.Global._xmlLang = loc;
var xml = req.responseText;
}
}
// Fall back to en-US if no locales.xml
if (!xml) {
var loc = 'en-US';
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
Zotero.CSL.Global._xmlLang = loc;
var xml = req.responseText;
}
Zotero.debug('CSL: Using ' + loc + ' as bibliography locale');
// get default terms
var locales = new XML(Zotero.CSL.Global.cleanXML(req.responseText));
var locales = new XML(Zotero.CSL.Global.cleanXML(xml));
Zotero.CSL.Global._defaultTerms = Zotero.CSL.Global.parseLocales(locales, true);
}
}

View File

@ -132,18 +132,57 @@ Zotero.CSL.Compat.Global = new function() {
*/
this.init = function() {
if(!Zotero.CSL.Compat.Global._xmlLang) {
// get XML lang
Zotero.CSL.Compat.Global._xmlLang = Zotero.locale;
var prefix = "chrome://zotero/content/locale/csl/locales-";
var ext = ".xml";
// read locales.xml from directory
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", "chrome://zotero/locale/locales.xml", false);
req.overrideMimeType("text/plain");
req.send(null);
// If explicit bib locale, try to use that
var bibLocale = Zotero.Prefs.get('export.bibliographyLocale');
if (bibLocale) {
var loc = bibLocale;
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
if (req.responseText) {
Zotero.CSL.Compat.Global._xmlLang = bibLocale;
var xml = req.responseText;
}
}
// If no or invalid bib locale, try Firefox locale
if (!xml) {
var loc = Zotero.locale;
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
if (req.responseText) {
Zotero.CSL.Compat.Global._xmlLang = loc;
var xml = req.responseText;
}
}
// Fall back to en-US if no locales.xml
if (!xml) {
var loc = 'en-US';
var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].
createInstance();
req.open("GET", prefix + loc + ext, false);
req.overrideMimeType("text/plain");
req.send(null);
Zotero.CSL.Compat.Global._xmlLang = loc;
var xml = req.responseText;
}
Zotero.debug('CSL: Using ' + loc + ' as bibliography locale');
// get default terms
var locales = new XML(Zotero.CSL.Compat.Global.cleanXML(req.responseText));
var locales = new XML(Zotero.CSL.Compat.Global.cleanXML(xml));
Zotero.CSL.Compat.Global._defaultTerms = Zotero.CSL.Compat.Global.parseLocales(locales, true);
}
}

View File

@ -58,6 +58,7 @@ pref("extensions.zotero.export.lastTranslator", '14763d24-8ba0-45df-8f52-b8d1108
pref("extensions.zotero.export.translatorSettings", 'true,false');
pref("extensions.zotero.export.lastStyle", 'http://purl.org/net/xbiblio/csl/styles/chicago-note.csl');
pref("extensions.zotero.export.bibliographySettings", 'save-as-rtf');
pref("extensions.zotero.export.bibliographyLocale", '');
pref("extensions.zotero.export.quickCopy.setting", 'bibliography=http://purl.org/net/xbiblio/csl/styles/chicago-note.csl');