Bug 1117863 - Correct Loop's language fallback to use all of accept languages properly. r=mikedeboer
--- a/browser/components/loop/standalone/content/libs/l10n-gaia-02ca67948fe8.js
+++ b/browser/components/loop/standalone/content/libs/l10n-gaia-02ca67948fe8.js
@@ -1236,21 +1236,29 @@
return locales[code] = new Locale(code, this);
};
// Getting ready
function negotiate(available, requested, defaultLocale) {
- if (available.indexOf(requested[0]) === -1 ||
- requested[0] === defaultLocale) {
+ var supportedLocale;
+ for (var i = 0; i < requested.length; ++i) {
+ var locale = requested[i];
+ if (available.indexOf(locale) !== -1) {
+ supportedLocale = locale;
+ break;
+ }
+ }
+ if (!supportedLocale ||
+ supportedLocale === defaultLocale) {
return [defaultLocale];
} else {
- return [requested[0], defaultLocale];
+ return [supportedLocale, defaultLocale];
}
}
function freeze(supported) {
var locale = this.getLocale(supported[0]);
if (locale.isReady) {
setReady.call(this, supported);
} else {