@@Orlok
Vielleicht hilft dir die Lektüre dieses und dieses Beitrags von mir bei der Entscheidungsfindung.
Weil „Variablen prinzipiell so lokal wie möglich angelegt werden sollten“ also nirgends var
. Und da sämtliche Variablen ihren einmal zugewiesenen Wert behalten, überall const
. So also?
const currentLanguage = document.documentElement.lang;
const urls = [
'config/available-languages.json',
'lib/language-names.json',
'lib/language-names.' + currentLanguage + '.json'
];
Promise.all(
urls.map(
url => fetch(url).then(response => response.json())
)
).then(values => {
const [availableLanguages, languageNames, localLanguageNames] = values;
const template = document.querySelector('#lang-menu-item');
availableLanguages.forEach(lang => {
if (lang != currentLanguage)
{
const clone = template.content.cloneNode(true);
const liElement = clone.querySelector('li');
const aElement = liElement.querySelector('a');
aElement.href = '?lang=' + lang;
aElement.hreflang = lang;
aElement.lang = lang;
aElement.textContent = languageNames[lang] || lang;
liElement.title = localLanguageNames[lang] || '';
template.parentNode.appendChild(clone);
}
});
});
LLAP 🖖
--
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
“When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory