translations

This commit is contained in:
zyqunix 2025-05-12 23:26:18 +02:00
parent 021a3789a5
commit a9ea7c0a80
No known key found for this signature in database
GPG key ID: 134A8DEEA83B80E6
10 changed files with 229 additions and 16 deletions

View file

@ -66,7 +66,12 @@ function lan() {
}
if (gameActivity) {
activityNameElem.innerHTML = `<strong>Playing</strong> ${gameActivity.name}: ${gameActivity.details}, ${gameActivity.state}`;
const parts = [];
if (gameActivity.name) parts.push(`<strong>Playing</strong> ${gameActivity.name}`);
if (gameActivity.details) parts.push(gameActivity.details);
if (gameActivity.state) parts.push(gameActivity.state);
activityNameElem.innerHTML = parts.join(': ');
if (gameActivity.assets && gameActivity.assets.large_image) {
const imgId = gameActivity.assets.large_image;
@ -137,6 +142,7 @@ function generateSkillCards(skillData) {
skillData.skills.forEach(skill => {
const skillItem = document.createElement('a');
skillItem.classList.add('skill-item', 'tooltip');
skillItem.id = skill.id;
skillItem.href = skill.url;
skillItem.target = '_blank';

61
assets/js/lang.js Normal file
View file

@ -0,0 +1,61 @@
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);

27
assets/js/lang/cz.json Normal file
View file

@ -0,0 +1,27 @@
{
"title": "Portfolio zyqa",
"hobbies": "Programování, poslouchání hudby, reverzní inženýrství, hraní Counter-Strike",
"status": "Stav",
"languages_header": "Jazyky",
"skills_header": "Dovednosti",
"stats_header": "Statistiky programování",
"stats_since": "Od 5. ledna 2025",
"contact_header": "Kontakt",
"software_header": "Software, který používám",
"software_equicord_tooltip": "Pomohl jsem vytvořit 2 pluginy",
"tooltip_py": "Druhý programovací jazyk, který jsem se naučil",
"tooltip_html": "Nenávidím tě, CSS",
"tooltip_js": "Zábavný jazyk s nejčistší syntaxí po C",
"tooltip_djs": "Použito v mém selfbotovi",
"tooltip_c": "Vytvořil jsem malé programy a malware",
"tooltip_cpp": "Vytvořil jsem GDI malware pro Windows",
"tooltip_cs": "Vytvořil jsem hodně malwaru",
"tooltip_java": "Vytvořil jsem Minecraft mod a Android aplikaci",
"tooltip_kt": "Vytvořil jsem Android aplikace",
"tooltip_mn": "Profesionální mongolský házeč kamenů",
"tooltip_en": "Začal jsem se učit v 1. třídě",
"tooltip_de": "Začal jsem se učit ve 2. třídě",
"tooltip_fr": "Začal jsem se učit v 7. třídě",
"tooltip_sk": "Můj první jazyk, narozený na Slovensku",
"tooltip_cz": "DLC zdarma, když se narodíš na Slovensku, češtině rozumíš plynule"
}

27
assets/js/lang/de.json Normal file
View file

@ -0,0 +1,27 @@
{
"title": "zyq's Portfolio",
"hobbies": "Programmieren, Musikhören, Reverse Engineering, Counter-Strike Spielen",
"status": "Status",
"languages_header": "Sprachen",
"skills_header": "Fähigkeiten",
"stats_header": "Programmierungsstatistiken",
"stats_since": "Seit 5. Januar 2025",
"contact_header": "Kontakt",
"software_header": "Software",
"software_equicord_tooltip": "Bei der Herstellung von 2 Plugins beigetragen",
"tooltip_py": "Die zweite Programmiersprache die ich je gelernt have",
"tooltip_html": "Ich hasse dich, CSS",
"tooltip_js": "Lustige Sprache mit der saubersten Syntax nach C",
"tooltip_djs": "In meinem Selfbot verwendet",
"tooltip_c": "Kleine Software und Malware",
"tooltip_cpp": "GDI-Malware für Windows gemacht",
"tooltip_cs": "Sehr viel Malware gemacht",
"tooltip_java": "Machte einen Minecraft Mod und eine Android App",
"tooltip_kt": "Android Apps gemacht",
"tooltip_mn": "Professioneller Mongolischer Steinewerfer",
"tooltip_en": "In der 1. Klasse angefangen zu lernen",
"tooltip_de": "In der 2. Klasse angefangen zu lernen",
"tooltip_fr": "In der 7. Klasse angefangen zu lernen",
"tooltip_sk": "Muttersprache - wurde in der Slowakei geboren",
"tooltip_cz": "Freie DLC wenn man in der Slowakei geboren ist, man versteht Tschechisch fließend"
}

27
assets/js/lang/en.json Normal file
View file

@ -0,0 +1,27 @@
{
"title": "zyq's Portfolio",
"hobbies": "Coding, Listening to Music, Reverse Engineering, Playing Counter-Strike",
"status": "Status",
"languages_header": "Languages",
"skills_header": "Skills",
"stats_header": "Coding Stats",
"stats_since": "Since January 5th, 2025",
"contact_header": "Contact",
"software_header": "Software I Use",
"software_equicord_tooltip": "I have contributed in making 2 plugins",
"tooltip_py": "The second programming language I've learned",
"tooltip_html": "I hate you, CSS",
"tooltip_js": "Fun language with the cleanest syntax after C",
"tooltip_djs": "Used in my selfbot",
"tooltip_c": "Made little software and malware",
"tooltip_cpp": "Made GDI Malware for Windows",
"tooltip_cs": "Made a lot of malware",
"tooltip_java": "Made a Minecraft mod and an Android app",
"tooltip_kt": "Made Android apps",
"tooltip_mn": "Professional Mongolian Stone Thrower",
"tooltip_en": "Started learning in 1st grade",
"tooltip_de": "Started learning in 2nd grade",
"tooltip_fr": "Started learning in 7th grade",
"tooltip_sk": "First language, born in Slovakia",
"tooltip_cz": "Free DLC when you're born in Slovakia, you understand Czech fluently"
}

27
assets/js/lang/fr.json Normal file
View file

@ -0,0 +1,27 @@
{
"title": "Portfolio de zyq",
"hobbies": "Coder, écouter de la musique, faire de l'ingénierie inverse, jouer à Counter-Strike",
"status": "Statut",
"languages_header": "Langues",
"skills_header": "Compétences",
"stats_header": "Statistiques de codage",
"stats_since": "Depuis le 5 janvier 2025",
"contact_header": "Contact",
"software_header": "Logiciels que j'utilise",
"software_equicord_tooltip": "J'ai contribué à créer 2 plugins",
"tooltip_py": "Le deuxième langage de programmation que j'ai appris",
"tooltip_html": "Je te déteste, CSS",
"tooltip_js": "Langage amusant avec la syntaxe la plus propre après C",
"tooltip_djs": "Utilisé dans mon selfbot",
"tooltip_c": "Créé des petits logiciels et des malwares",
"tooltip_cpp": "Créé un malware GDI pour Windows",
"tooltip_cs": "Créé beaucoup de malwares",
"tooltip_java": "Créé un mod Minecraft et une appli Android",
"tooltip_kt": "Créé des applis Android",
"tooltip_mn": "Lanceur de pierres mongol professionnel",
"tooltip_en": "Commencé à apprendre en CP",
"tooltip_de": "Commencé à apprendre en CE1",
"tooltip_fr": "Commencé à apprendre en 5e",
"tooltip_sk": "Langue maternelle, né en Slovaquie",
"tooltip_cz": "DLC gratuit quand on naît en Slovaquie, on comprend le tchèque couramment"
}

27
assets/js/lang/sk.json Normal file
View file

@ -0,0 +1,27 @@
{
"title": "Portfólio zyqa",
"hobbies": "Programovanie, počúvanie hudby, reverzné inžinierstvo, hranie Counter-Strike",
"status": "Stav",
"languages_header": "Jazyky",
"skills_header": "Zručnosti",
"stats_header": "Štatistiky programovania",
"stats_since": "Od 5. januára 2025",
"contact_header": "Kontakt",
"software_header": "Softvér, ktorý používam",
"software_equicord_tooltip": "Pomohol som vytvoriť 2 pluginy",
"tooltip_py": "Druhý programovací jazyk, ktorý som sa naučil",
"tooltip_html": "Nenávidím ťa, CSS",
"tooltip_js": "Zábavný jazyk s najčistejšou syntaxou po C",
"tooltip_djs": "Použité v mojom selfbote",
"tooltip_c": "Vytvoril som malé programy a malvér",
"tooltip_cpp": "Vytvoril som GDI malvér pre Windows",
"tooltip_cs": "Vytvoril som veľa malvéru",
"tooltip_java": "Vytvoril som Minecraft mod a Android aplikáciu",
"tooltip_kt": "Vytvoril som Android aplikácie",
"tooltip_mn": "Profesionálny mongolský hádzač kameňov",
"tooltip_en": "Začal som sa učiť v 1. ročníku",
"tooltip_de": "Začal som sa učiť v 2. ročníku",
"tooltip_fr": "Začal som sa učiť v 7. ročníku",
"tooltip_sk": "Môj prvý jazyk, narodený na Slovensku",
"tooltip_cz": "DLC zadarmo keď sa narodíš na Slovensku, češtine rozumieš plynulo"
}

View file

@ -4,60 +4,70 @@
"name": "Python",
"url": "https://www.python.org",
"tooltip": "The second programming language I've learned",
"id": "tooltip_py",
"img": "https://search.im-in.space/image_proxy?url=https%3A%2F%2F1.bp.blogspot.com%2F-wAuQ3GCX8r4%2FWgIvLOr23tI%2FAAAAAAAACdA%2Fppii2ACqTR8VqkYW-MeYJqXr1myTdR01ACLcBGAs%2Fs1600%2Flogo-python-programacion.png&h=59be89f2146eb4db14955882451f2a4631f92e88832a7e7627804d7968a63755"
},
{
"name": "JavaScript",
"url": "https://www.javascript.com/",
"tooltip": "Fun language the cleanest syntax after C",
"tooltip": "Fun language with the cleanest syntax after C",
"id": "tooltip_js",
"img": "https://search.im-in.space/image_proxy?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F6a%2FJavaScript-logo.png%2F640px-JavaScript-logo.png&h=bc8b69a465219df76ce937bf1c6e32deda0d982f1fa0bf41d13f51b58ccef960"
},
{
"name": "HTML/CSS",
"url": "https://www.w3schools.com/html/default.asp",
"tooltip": "I hate you, CSS",
"id": "tooltip_html",
"img": "https://search.im-in.space/image_proxy?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F6%2F61%2FHTML5_logo_and_wordmark.svg%2F640px-HTML5_logo_and_wordmark.svg.png&h=60a773175af1c2795e1afb8ba22e19e3089744ca988c667999c756319c6c09e3"
},
{
"name": "Discord.JS",
"url": "https://discord.js.org/",
"tooltip": "Used in my selfbot",
"id": "tooltip_djs",
"img": "https://avatars.githubusercontent.com/u/26492485?s=200&v=4"
},
{
"name": "C",
"url": "https://wikiless.funami.tech/wiki/C_(programming_language)",
"tooltip": "Made little software",
"id": "tooltip_c",
"img": "https://upload.wikimedia.org/wikipedia/commons/1/18/C_Programming_Language.svg"
},
{
"name": "C++",
"url": "https://wikiless.funami.tech/wiki/C%252B%252B",
"tooltip": "Made GDI Malware for Windows",
"id": "tooltip_cpp",
"img": "https://wikiless.funami.tech/media/wikipedia/commons/1/18/ISO_C%2B%2B_Logo.svg"
},
{
"name": "C#",
"url": "https://wikiless.funami.tech/wiki/C_Sharp_(programming_language)",
"tooltip": "Made a lot of malware",
"id": "tooltip_cs",
"img": "https://wikiless.funami.tech/media/wikipedia/commons/b/bd/Logo_C_sharp.svg"
},
{
"name": "Java",
"url": "https://wikiless.funami.tech/wiki/Java_(programming_language)",
"tooltip": "Made a Minecraft mod and an Android app",
"id": "tooltip_java",
"img": "https://wikiless.funami.tech/media/wikipedia/en/3/30/Java_programming_language_logo.svg"
},
{
"name": "Kotlin",
"url": "https://wikiless.funami.tech/wiki/Kotlin_(programming_language)",
"tooltip": "Made Android apps",
"id": "tooltip_kt",
"img": "https://upload.wikimedia.org/wikipedia/commons/3/37/Kotlin_Icon_2021.svg"
},
{
"name": "Mongolian Stone Throwing",
"url": "https://wikiless.funami.tech/wiki/Mongolia",
"tooltip": "Professional Mongolian Stone Thrower",
"id": "tooltip_mn",
"img": "https://wikiless.funami.tech/media/wikipedia/commons/4/4c/Flag_of_Mongolia.svg"
}
]