From cff102585bed80efe53e2559b761433fb004819a Mon Sep 17 00:00:00 2001 From: Simon Eisenmann Date: Tue, 2 Sep 2014 15:59:24 +0200 Subject: [PATCH] Make it possible to correctly provide language codes as query parameter. --- static/js/app.js | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/static/js/app.js b/static/js/app.js index aa2e9b0d..0de12b2d 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -188,9 +188,16 @@ define([ // Configure language. var lang = (function() { + var lang = "en"; var wanted = []; - var html = document.getElementsByTagName("html")[0]; + var addLanguage = function(l) { + wanted.push(l); + if (l.indexOf("-") != -1) { + wanted.push(l.split("-")[0]); + } + }; + // Get from storage. if (modernizr.localstorage) { var lsl = localStorage.getItem("mediastream-language"); @@ -198,28 +205,32 @@ define([ wanted.push(lsl); } } + // Get from query. var qsl = urlQuery.lang; if (qsl) { - wanted.push(qsl); + addLanguage(qsl); } - // Expand browser languages with combined fallback. - _.each(globalContext.Languages, function(l) { - wanted.push(l); - if (l.indexOf("-") != -1) { - wanted.push(l.split("-")[0]); - } - }); - // Loop through browser languages and use first one we got. + + // Get from server side configuration (As provided by browser). + _.each(globalContext.Languages, addLanguage); + + // Loop through requested languages and use first one we have. for (var i = 0; i < wanted.length; i++) { if (languages.hasOwnProperty(wanted[i])) { lang = wanted[i]; break; } } + + // Storage at DOM. + var html = document.getElementsByTagName("html")[0]; html.setAttribute("lang", lang); + return lang; + }()); + console.info("Selected language: "+lang); // Set language and load default translations. translationData.lang = lang;