Integrierte Mehrsprachigkeit (Deutsch und Englisch) mit Cookie-basierter Sprachauswahl
This commit is contained in:
@@ -159,3 +159,39 @@ class WrappedResponse {
|
||||
this.fatal = (data === null && error === null)
|
||||
}
|
||||
}
|
||||
|
||||
async function setLangAsync(language, flagCode) {
|
||||
document.getElementById('selectedFlag').className = 'fi ' + flagCode + ' me-2';
|
||||
|
||||
await fetch(`/lang/${language}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
async function setLanguage(language) {
|
||||
|
||||
const hasLang = await fetch('/lang', {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
})
|
||||
.then(res => res.json())
|
||||
.then(langs => langs.includes(language))
|
||||
.catch(err => false);
|
||||
|
||||
if(hasLang)
|
||||
return await fetch(`/lang/${language}`, {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' }
|
||||
})
|
||||
.then(response => {
|
||||
if (response.redirected)
|
||||
window.location.href = response.url;
|
||||
else if (!response.ok)
|
||||
return Promise.reject('Failed to set language');
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user