Integrierte Mehrsprachigkeit (Deutsch und Englisch) mit Cookie-basierter Sprachauswahl

This commit is contained in:
Developer 02
2024-05-15 16:11:26 +02:00
parent cf9286e4c3
commit 68714c2937
32 changed files with 282 additions and 253 deletions

View File

@@ -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');
});
}