mirror of
https://github.com/zyqunix/tools.git
synced 2025-07-06 06:20:30 +02:00
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
setTimeout(() => {
|
|
let translations = {
|
|
en: null,
|
|
de: null,
|
|
fr: null,
|
|
sk: null,
|
|
cz: null
|
|
};
|
|
|
|
async function fetchLang(lang) {
|
|
if (translations[lang] !== null) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const res = await fetch(`/assets/js/lang/${lang}.json`);
|
|
if (!res.ok) {
|
|
throw new Error(`Failed to fetch ${lang} translations`);
|
|
}
|
|
const texts = await res.json();
|
|
translations[lang] = texts;
|
|
applyTranslations(lang);
|
|
} catch (error) {
|
|
console.error(error);
|
|
}
|
|
}
|
|
|
|
function applyTranslations(lang) {
|
|
if (!translations[lang]) return;
|
|
|
|
document.title = translations[lang].title;
|
|
|
|
const elements = [
|
|
"hobbies", "status", "languages", "skills", "coding_stats", "stats_since",
|
|
"contact", "software", "tooltip_py", "tooltip_js", "tooltip_djs", "tooltip_c",
|
|
"tooltip_cpp", "tooltip_cs", "tooltip_java", "tooltip_kt", "tooltip_mn", "tooltip_en",
|
|
"tooltip_de", "tooltip_fr", "tooltip_sk", "tooltip_cz"
|
|
];
|
|
|
|
elements.forEach((selector) => {
|
|
const element = document.getElementById(selector);
|
|
if (element) {
|
|
const key = selector.replace('#', '');
|
|
element.textContent = translations[lang][key] || element.textContent;
|
|
} else {
|
|
console.warn(`Element with ID '${selector}' not found`);
|
|
}
|
|
});
|
|
}
|
|
|
|
async function switchLanguage(lang) {
|
|
await fetchLang(lang);
|
|
}
|
|
|
|
document.querySelector("div#en.language-name.tooltip").addEventListener('click', () => switchLanguage('en'));
|
|
document.querySelector("div#de.language-name.tooltip").addEventListener('click', () => switchLanguage('de'));
|
|
document.querySelector("div#fr.language-name.tooltip").addEventListener('click', () => switchLanguage('fr'));
|
|
document.querySelector("div#sk.language-name.tooltip").addEventListener('click', () => switchLanguage('sk'));
|
|
document.querySelector("div#cz.language-name.tooltip").addEventListener('click', () => switchLanguage('cz'));
|
|
|
|
}, 1000);
|