Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
3 lines
No EOL
1.9 KiB
JavaScript
3 lines
No EOL
1.9 KiB
JavaScript
;'use strict';var LanguageManager={settings:window.navigator.mozSettings,init:function init(){this.buildLanguageList();document.getElementById('languages').addEventListener('change',this);var onSettingChange=this._boundHandleSettingChange=this.handleSettingChange.bind(this);this.settings.addObserver('language.current',onSettingChange);this.settings.addObserver('accessibility.screenreader',onSettingChange);},uninit:function uninit(){if(this._boundHandleSettingChange){this.settings.removeObserver('language.current',this._boundHandleSettingChange);this.settings.removeObserver('accessibility.screenreader',this._boundHandleSettingChange);}},handleSettingChange:function(evt){switch(evt.settingName){case'accessibility.screenreader':this.buildLanguageList();break;case'language.current':KeyboardHelper.changeDefaultLayouts(evt.settingValue,true);break;}},handleEvent:function handleEvent(evt){if(!this.settings||evt.target.name!='language.current'){return true;}
|
|
this.setLanguage(evt.target.value);return false;},setLanguage:function settings_setLanguage(language){this.settings.createLock().set({'language.current':language});},buildLanguageList:function settings_buildLanguageList(){var panel=document.querySelector('#languages');var container=panel.querySelector('ul');container.innerHTML='';LanguageList.get(function fillLanguageList(allLanguages,currentLanguage){for(var lang in allLanguages){var label=document.createElement('label');label.textContent=LanguageList.wrapBidi(lang,allLanguages[lang]);var radio=document.createElement('gaia-radio');radio.className='checkone';radio.setAttribute('name','language.current');radio.setAttribute('value',lang);radio.checked=(lang===currentLanguage);radio.appendChild(label);radio.configureClass();var li=document.createElement('li');li.dataset.value=lang;li.appendChild(radio);container.appendChild(li);}
|
|
panel.dataset.languagesReady=true;window.dispatchEvent(new CustomEvent('languagelistready'));});}}; |