spfn-website/static/js/locale.js
2026-08-08 12:40:00 +01:00

36 lines
783 B
JavaScript

const langs = [
"en",
"es",
"ja",
"fr",
"it",
"de",
]
function t(key, locale) {
return key
.split(".")
.reduce((obj, part) => obj && obj[part], locale)
}
window.addEventListener("load", async () => {
let lang = "en";
let savedLang = localStorage.getItem("lang");
if (savedLang) {
lang = savedLang;
} else {
let currentLang = navigator.language.split("-")[0];
if (langs.includes(currentLang)) {
localStorage.setItem("lang", currentLang);
lang = currentLang;
}
}
const locale = await fetch(`/locales/${lang}.json`).then(r => r.json());
document.querySelectorAll("[data-i18n]").forEach(e => {
e.innerHTML = t(e.dataset.i18n, locale)
});
})