From 47512bbf057acc0fb9bbefcac23e1f541cf4967b Mon Sep 17 00:00:00 2001 From: Vivien Nicolas <21@vingtetun.org> Date: Thu, 25 Oct 2012 15:02:15 +0200 Subject: [PATCH] Bug 796079 - language.current should map to general.useragent.locale instead of intl.accept_languages. r=pike --- b2g/chrome/content/settings.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/b2g/chrome/content/settings.js b/b2g/chrome/content/settings.js index 661bbd6a41a..eecde264715 100644 --- a/b2g/chrome/content/settings.js +++ b/b2g/chrome/content/settings.js @@ -67,7 +67,22 @@ SettingsListener.observe('audio.volume.master', 0.5, function(value) { // =================== Languages ==================== SettingsListener.observe('language.current', 'en-US', function(value) { - Services.prefs.setCharPref('intl.accept_languages', value); + Services.prefs.setCharPref('general.useragent.locale', value); + + let prefName = 'intl.accept_languages'; + if (Services.prefs.prefHasUserValue(prefName)) { + Services.prefs.clearUserPref(prefName); + } + + let intl = ''; + try { + intl = Services.prefs.getComplexValue(prefName, + Ci.nsIPrefLocalizedString).data; + } catch(e) {} + + if (!((new RegExp('^' + value + '[^a-z-_] *[,;]?', 'i')).test(intl))) { + Services.prefs.setCharPref(prefName, value + ', ' + intl); + } });