var current_locale = 'en-US';
try { current_locale = util.mozilla.prefs().getCharPref('general.useragent.locale'); } catch(E) { alert('util.locale.change, prefs() = ' + E); }
if (locale != current_locale) {
+ var accept_langs;
+ try { accept_langs = util.mozilla.prefs().getCharPref('intl.accept_languages').split(","); } catch(E) { }
+ if (typeof(accept_langs)!='undefined' && accept_langs.length) {
+ var locre = new RegExp('\\b' + locale + '\\b');
+ for (var i = accept_langs.length-1; i >= 0; i--)
+ if (accept_langs[i].match(locre))
+ accept_langs.splice(i, 1);
+ accept_langs.unshift(locale);
+ } else {
+ accept_langs = new Array(locale);
+ }
util.mozilla.prefs().setCharPref('general.useragent.locale',locale);
- util.mozilla.prefs().setCharPref('intl.accept_languages',locale);
+ util.mozilla.prefs().setCharPref('intl.accept_languages',accept_langs.join());
util.mozilla.chromeRegistry().reloadChrome();
}
} catch(E) {
- alert('FIXME: util.mozilla.change_locale( "' + locale + ") = " + E);
+ alert('FIXME: util.mozilla.change_locale( "' + locale + '" ) = ' + E);
}
}