From c6eb4fd452ea38f8cd0ee00e7a6ce60e2d5a889c Mon Sep 17 00:00:00 2001 From: Julian Lechner Date: Tue, 28 Apr 2026 18:47:42 +0200 Subject: [PATCH] fix: language errors --- src/languages/de.ts | 16 ++++++++-------- src/languages/en.ts | 10 +++++----- src/styles.scss | 26 ++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 7ec8a52..f83ef42 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -10,7 +10,7 @@ export const deLanguage: LanguagePack = { languageGerman: 'Deutsch', }, footer: { - noscriptMessage: 'Bitte aktiviere JavaScript für die vollständige Nutzung.', + noscriptMessage: 'Bitte aktiviere JavaScript für den vollen Funktionsumfang.', imprintLink: 'Impressum', }, home: { @@ -20,25 +20,25 @@ export const deLanguage: LanguagePack = { contactTitle: 'Kontakt', viewProjects: 'Projekte ansehen', aboutMe: 'Über mich', - nextHighlightAriaLabel: 'Nächstes Highlight-Bild anzeigen', + nextHighlightAriaLabel: 'Nächstes Bild anzeigen', nextHighlightTitle: 'Nächstes Bild anzeigen', singleHighlightTitle: 'Einzelnes Bild', portraitAltSuffix: 'Bild', clickHint: 'Klick mich!', aboutEyebrow: 'Über mich', aboutParagraphs: [ - 'Ich heiße {{firstname}}, die meisten nennen mich Julie. Ich bin {{age}} Jahre alt und komme aus Österreich. Ein großer Teil meines Alltags passiert unterwegs – meistens im Zug, zwischen Terminen, Büros und Zeit mit meiner Familie.', + 'Ich heiße {{firstname}}, viele nennen mich auch Julie. Ich bin {{age}} Jahre alt und komme aus Österreich. Ein großer Teil meines Alltags passiert unterwegs – meistens im Zug, zwischen Terminen, Büros und meiner Familie.', 'Digitale Sicherheit und Privatsphäre sind mir sehr wichtig. Ich baue Systeme mit möglichst kleiner Angriffsfläche, sinnvollen Standards und starkem Fokus auf Datenschutz.', 'Ich arbeite mit modernen Web-Technologien und an geschäftskritischen Systemen. Mein Fokus liegt auf klaren, stabilen Lösungen, die im Alltag funktionieren und echten Nutzen liefern.', ], - detailToggleOpen: 'Erweitertes Profil lesen', - detailToggleClose: 'Erweitertes Profil ausblenden', + detailToggleOpen: 'Mehr lesen', + detailToggleClose: 'Weniger lesen', detailParagraphs: [ 'Was mich wirklich interessiert, ist moderner Code: sauber strukturiert, wartbar und mit Blick auf Performance gebaut.', 'Abseits von Software ist Tauchen mein größtes Hobby. Die Stille unter Wasser zieht mich immer wieder zurück in Österreichs Seen.', 'Hauptsächlich arbeite ich für die SobIT GmbH in Wien, zusätzlich zu Freelance-Projekten für Unternehmen, Organisationen und private Kunden.', ], - getInTouch: 'Kontakt aufnehmen', + getInTouch: 'Kontaktiere mich!', projectsEyebrow: 'Aktuelle Jobs & Projekte', openProjectPrefix: 'Projekt öffnen', projectLanguagesAriaLabel: 'Projekt-Technologien', @@ -194,7 +194,7 @@ export const deLanguage: LanguagePack = { title: 'SynHost', link: 'https://www.synhost.de/', description: - 'Ein Hosting-Dienstleister unter der Verwaltung von GERLACH SYSTEMS, für den ich Schnittstellen entwickle und technischen Support mache.', + 'Ein Hosting-Dienstleister unter der Verwaltung von GERLACH SYSTEMS, für die ich Schnittstellen zwischen einzelnen Systemen entwickle und technischen Support erledige.', skills: ['TypeScript', 'MariaDB', 'YML'], icon: 'assets/optimized/logos/synhost.webp', iconSrcset: @@ -208,7 +208,7 @@ export const deLanguage: LanguagePack = { title: 'SynRadio', link: 'https://www.synradio.de/', description: - 'Ein Internetradio-Projekt, bei dem ich die technische Seite der digitalen Präsenz entwickle und betreue — inklusive Website, Bots und Plugins für Sprachchats und Spiele.', + 'Ein Internetradio-Projekt, auch unter der Verwaltung von GERLACH SYSTEMS, bei dem ich die technische Umsetzung der digitalen Präsenz entwickle und betreue — Website, Bots und Plugins für Sprachchats und Spiele.', skills: ['TypeScript', 'Angular', 'FFmpeg', 'YML'], icon: 'assets/optimized/logos/synradio.webp', iconSrcset: diff --git a/src/languages/en.ts b/src/languages/en.ts index 6334798..be584fd 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -20,19 +20,19 @@ export const enLanguage: LanguagePack = { contactTitle: 'Contact me', viewProjects: 'View projects', aboutMe: 'About me', - nextHighlightAriaLabel: 'Show next highlight image', + nextHighlightAriaLabel: 'Show next image', nextHighlightTitle: 'Show next image', singleHighlightTitle: 'Single image', portraitAltSuffix: 'Image', clickHint: 'Click me!', aboutEyebrow: 'About me', aboutParagraphs: [ - 'My name is {{firstname}}, though most people call me Julie. I am {{age}} and based in Austria. A large part of my day happens on the move, usually on trains, going between meetings, offices, and time with my family.', + 'My name is {{firstname}}, many people also call me Julie. I am {{age}} and based in Austria. A large part of my day happens on the move, usually on trains, going between meetings, offices, and my family.', 'I care deeply about digital security and privacy. I design systems with minimal exposure, sensible defaults, and a strong focus on data protection.', 'I work with modern web technologies and on business-critical systems. I focus on clear, stable solutions that hold up in day-to-day use and deliver value.', ], - detailToggleOpen: 'Read extended profile', - detailToggleClose: 'Hide extended profile', + detailToggleOpen: 'Read more', + detailToggleClose: 'Read less', detailParagraphs: [ 'What really interests me is modern code: well-structured, maintainable, and built with performance in mind.', "Outside of software, my main hobby is scuba diving. The silence underwater keeps pulling me back into Austria's lakes.", @@ -208,7 +208,7 @@ export const enLanguage: LanguagePack = { title: 'SynRadio', link: 'https://www.synradio.de/', description: - 'An online radio project, where I build and maintain the technical side of its digital presence — including the website, bots, and plugins for voice chats and games.', + 'An online radio project, also operated by GERLACH SYSTEMS, where I build and maintain the technical side of its digital presence — including the website, bots, and plugins for voice chats and games.', skills: ['TypeScript', 'Angular', 'FFmpeg', 'YML'], icon: 'assets/optimized/logos/synradio.webp', iconSrcset: diff --git a/src/styles.scss b/src/styles.scss index 7b4bec8..a8e2249 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1084,6 +1084,7 @@ hr { } .language-card { + position: relative; display: grid; gap: 1rem; width: min(100%, 520px); @@ -1103,6 +1104,7 @@ hr { .language-copy { display: grid; gap: 0; + padding-right: 3.4rem; } .language-card h2, @@ -1186,6 +1188,10 @@ hr { } .language-close { + position: absolute; + top: 1rem; + right: 1rem; + z-index: 1; width: 2.8rem; height: 2.8rem; border: 1px solid var(--border-soft); @@ -1269,6 +1275,7 @@ hr { width: min(100%, 460px); gap: 0.9rem; padding: 0.95rem; + padding-top: 1.15rem; } .language-card-header { @@ -1290,5 +1297,24 @@ hr { .language-switcher { right: 0.75rem; top: 0.75rem; + gap: 0.45rem; + min-height: 2.75rem; + padding: 0.4rem 0.65rem 0.4rem 0.4rem; + } + + .language-switcher-tag { + min-width: 1.95rem; + min-height: 1.65rem; + padding: 0.14rem 0.55rem; + font-size: 0.68rem; + } + + .language-switcher-copy strong { + font-size: 0.68rem; + letter-spacing: 0.1em; + } + + .language-switcher-copy span { + font-size: 0.78rem; } }