Update language options after preferences are read
This commit is contained in:
parent
ff22f25937
commit
af7154c8ae
@ -10,6 +10,16 @@
|
|||||||
margin-right: .5rem;
|
margin-right: .5rem;
|
||||||
border: 1px solid gray;
|
border: 1px solid gray;
|
||||||
border-radius: 1px;
|
border-radius: 1px;
|
||||||
|
background: #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wiai-language-chooser .wiai-language-option.active {
|
||||||
|
background-color: white;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sectionname {
|
||||||
|
padding-left: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wiai-english {
|
.wiai-english {
|
||||||
|
|||||||
23
bilingual.js
23
bilingual.js
@ -34,8 +34,9 @@ function init() {
|
|||||||
categorizeElementsByPrefix();
|
categorizeElementsByPrefix();
|
||||||
initializeMultiLanguageElements();
|
initializeMultiLanguageElements();
|
||||||
addLanguageChooser();
|
addLanguageChooser();
|
||||||
updateMultiLanguageElements();
|
|
||||||
readUserPreferences();
|
readUserPreferences();
|
||||||
|
updateMultiLanguageElements();
|
||||||
|
updateLanguageOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -77,10 +78,7 @@ function addLanguageChooser() {
|
|||||||
languageLink.addEventListener('click', function (event) {
|
languageLink.addEventListener('click', function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
switchLanguage(currentLanguage, language);
|
switchLanguage(currentLanguage, language);
|
||||||
languageChooserOptions.forEach(function (element) {
|
updateLanguageOptions();
|
||||||
element.classList.remove('active');
|
|
||||||
});
|
|
||||||
languageLink.classList.add('active');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (language === currentLanguage) {
|
if (language === currentLanguage) {
|
||||||
@ -94,6 +92,19 @@ function addLanguageChooser() {
|
|||||||
contentArea.prepend(languageChooser);
|
contentArea.prepend(languageChooser);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Marks the language option for the `currentLanguage` as `.active`.
|
||||||
|
*/
|
||||||
|
function updateLanguageOptions() {
|
||||||
|
languageChooserOptions.forEach(function (element) {
|
||||||
|
if (element.getAttribute('data-wiai-language') === currentLanguage) {
|
||||||
|
element.classList.add('active');
|
||||||
|
} else {
|
||||||
|
element.classList.remove('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update the language class on the document body (`wiai-language-XYZ`)
|
* Update the language class on the document body (`wiai-language-XYZ`)
|
||||||
* and update all elements in `multiLanguageElements`.
|
* and update all elements in `multiLanguageElements`.
|
||||||
@ -176,12 +187,10 @@ function readUserPreferences() {
|
|||||||
|
|
||||||
if (localStorageEntry != null) {
|
if (localStorageEntry != null) {
|
||||||
currentLanguage = localStorage.getItem(STORAGE_LANGUAGE_PREFERENCE_KEY);
|
currentLanguage = localStorage.getItem(STORAGE_LANGUAGE_PREFERENCE_KEY);
|
||||||
updateMultiLanguageElements();
|
|
||||||
document.body.classList.add(`wiai-language-${currentLanguage}`);
|
document.body.classList.add(`wiai-language-${currentLanguage}`);
|
||||||
} else if (documentLanguage === 'en' || documentLanguage === 'en_us'
|
} else if (documentLanguage === 'en' || documentLanguage === 'en_us'
|
||||||
|| navigator.language === 'en' || navigator.language.includes('en-')) {
|
|| navigator.language === 'en' || navigator.language.includes('en-')) {
|
||||||
currentLanguage = 'english';
|
currentLanguage = 'english';
|
||||||
updateMultiLanguageElements();
|
|
||||||
document.body.classList.add(`wiai-language-${currentLanguage}`);
|
document.body.classList.add(`wiai-language-${currentLanguage}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user