diff --git a/web/themes/default/app.js b/web/themes/default/app.js index e42b1dc..aa1add4 100644 --- a/web/themes/default/app.js +++ b/web/themes/default/app.js @@ -105,8 +105,40 @@ function _langToggleLabel(lang){ return 'Espanol'; } +function _mapSupportedLang(lang){ + if(!lang)return ''; + var l=String(lang).toLowerCase().replace(/_/g,'-').trim(); + if(l==='de'||l==='en'||l==='es'||l==='zh-cn')return l; + + var base=l.split('-')[0]; + if(base==='de'||base==='en'||base==='es')return base; + + if(base==='zh'){ + if(l.indexOf('cn')>=0||l.indexOf('hans')>=0||l==='zh')return 'zh-cn'; + } + return ''; +} + function _normalizeLang(lang){ - return (lang==='de'||lang==='en'||lang==='es'||lang==='zh-cn')?lang:'de'; + return _mapSupportedLang(lang)||'de'; +} + +function _detectBrowserLanguage(){ + var prefs=[]; + if(Array.isArray(navigator.languages)&&navigator.languages.length)prefs=navigator.languages; + else if(navigator.language)prefs=[navigator.language]; + for(var i=0;i