diff --git a/static/skin/i18n.js b/static/skin/i18n.js index d451f11b4..6c5eb0ad1 100644 --- a/static/skin/i18n.js +++ b/static/skin/i18n.js @@ -97,6 +97,18 @@ function setUserLanguage(lang, callback) { Translations.whenReady(callback); } +function initUILanguageSelector(activeLanguage, languageChangeCallback) { + const languageSelector = document.getElementById("ui_language"); + for (const lang of uiLanguages ) { + const lang_name = Object.getOwnPropertyNames(lang)[0]; + const lang_code = lang[lang_name]; + const is_selected = lang_code == activeLanguage; + languageSelector.appendChild(new Option(lang_name, lang_code, is_selected, is_selected)); + } + languageSelector.onchange = languageChangeCallback; +} + window.$t = $t; window.getUserLanguage = getUserLanguage; window.setUserLanguage = setUserLanguage; +window.initUILanguageSelector = initUILanguageSelector; diff --git a/static/skin/viewer.js b/static/skin/viewer.js index db7bc2ba8..3349a2d8b 100644 --- a/static/skin/viewer.js +++ b/static/skin/viewer.js @@ -416,16 +416,6 @@ function makeURL(search, hash) { return url; } -function initUILanguageSelector() { - const languageSelector = document.getElementById("ui_language"); - for (const lang of uiLanguages ) { - const lang_name = Object.getOwnPropertyNames(lang)[0]; - const lang_code = lang[lang_name]; - const is_selected = lang_code == viewerState.uiLanguage; - languageSelector.appendChild(new Option(lang_name, lang_code, is_selected, is_selected)); - } -} - function updateUILanguageSelector(userLang) { console.log(`updateUILanguageSelector(${userLang})`); const languageSelector = document.getElementById("ui_language"); @@ -481,7 +471,7 @@ function setupViewer() { document.getElementById("kiwix_serve_taskbar_library_button").remove(); } - initUILanguageSelector(); + initUILanguageSelector(viewerState.uiLanguage, changeUILanguage); setupSuggestions(); // cybook hack diff --git a/static/viewer.html b/static/viewer.html index 4c66abbcd..2fcbfb9e6 100644 --- a/static/viewer.html +++ b/static/viewer.html @@ -29,7 +29,7 @@