From 5b525acf624c95b79adf4cdcf75cb2ef2797a103 Mon Sep 17 00:00:00 2001 From: Chneemann Date: Thu, 6 Aug 2026 11:21:50 +0200 Subject: [PATCH] feat: update common translations and add imprint page localizations --- src/app/[locale]/imprint/page.tsx | 66 ++++++++++++++++--------------- src/components/Contact.tsx | 2 +- src/components/Hero.tsx | 4 +- src/i18n/messages/de.json | 25 ++++++++++-- src/i18n/messages/en.json | 25 ++++++++++-- 5 files changed, 79 insertions(+), 43 deletions(-) diff --git a/src/app/[locale]/imprint/page.tsx b/src/app/[locale]/imprint/page.tsx index f47f0d9..1b8d9f5 100644 --- a/src/app/[locale]/imprint/page.tsx +++ b/src/app/[locale]/imprint/page.tsx @@ -1,20 +1,27 @@ -import Link from "next/link"; +"use client"; + +import { useTranslations } from "next-intl"; +import { Link } from "@/i18n/navigation"; /** * Legal notice page pursuant to German telemedia law (§ 5 DDG & § 18 MStV) */ export default function ImprintPage() { + const tCommon = useTranslations("Common"); + const tImprint = useTranslations("Imprint"); + return (
{/* Page Heading & Back Navigation */}

- Legal Notice. + {tCommon("imprint")} + .

- ← Back to Homepage + ← {tCommon("backHome")}
@@ -23,16 +30,18 @@ export default function ImprintPage() {

//{" "} - Information Pursuant to § 5 DDG + {tImprint("section1Title")}

André Kempf

-

Full-Stack Web Developer

+

+ {tCommon("rolePrefix")} {tCommon("roleSuffix")} +

Großschneidersweg 2a

76149 Karlsruhe, Germany

- Also responsible for content pursuant to § 18 Abs. 2 MStV. + {tImprint("section1Sub")}

@@ -40,11 +49,12 @@ export default function ImprintPage() {

- // Contact + //{" "} + {tImprint("section2Title")}

- Email:{" "} + {tCommon("emailLabel")}:{" "} dev@andre-kempf.com @@ -57,38 +67,31 @@ export default function ImprintPage() {

//{" "} - Disclaimer & Legal Notes + {tImprint("section3Title")}

-

Liability for Content

+

+ {tImprint("liabilityContentTitle")} +

- As a service provider, I am responsible for my own content on - these pages according to general laws pursuant to § 7 Abs. 1 DDG. - However, according to §§ 8 to 10 DDG, I am not obligated to - monitor transmitted or stored third-party information or to - investigate circumstances that indicate illegal activity. + {tImprint("liabilityContentText")}

-

Liability for Links

+

{tImprint("liabilityLinksTitle")}

- My website contains links to external third-party websites over - whose content I have no control. Therefore, I cannot accept any - liability for these external contents. The respective provider or - operator of the pages is always responsible for the content of the - linked pages. + {tImprint("liabilityLinksText")}

-

Copyright

+

+ {tImprint("copyrightTitle")} +

- The content and works created on these pages are subject to German - copyright law. Duplication, processing, distribution, or any form - of commercialization beyond the scope of copyright law require the - prior written consent of the author or creator. + {tImprint("copyrightText")}

@@ -97,12 +100,11 @@ export default function ImprintPage() {

- // Dispute - Resolution + //{" "} + {tImprint("section4Title")}

- The European Commission provides a platform for online dispute - resolution (OS):{" "} + {tImprint("disputeText1")}{" "} https://ec.europa.eu/consumers/odr/ - .
I am neither willing nor obligated to participate in dispute - resolution proceedings before a consumer arbitration board. + .
+ {tImprint("disputeText2")}

diff --git a/src/components/Contact.tsx b/src/components/Contact.tsx index fe2b376..d6d20e5 100644 --- a/src/components/Contact.tsx +++ b/src/components/Contact.tsx @@ -198,7 +198,7 @@ export default function Contact() { {/* Email Input */}

- {tHero("rolePrefix")}{" "} + {tCommon("rolePrefix")}{" "} - {tHero("roleSuffix")} + {tCommon("roleSuffix")}

diff --git a/src/i18n/messages/de.json b/src/i18n/messages/de.json index ed7d06c..ce35530 100644 --- a/src/i18n/messages/de.json +++ b/src/i18n/messages/de.json @@ -5,15 +5,17 @@ "portfolio": "Portfolio", "contact": "Kontakt", "imprint": "Impressum", - "privacy": "Datenschutz" + "privacy": "Datenschutz", + "rolePrefix": "Full-Stack", + "roleSuffix": "Entwickler", + "emailLabel": "E-Mail", + "backHome": "Zurück zur Startseite" }, "Header": { "search": "Suchen" }, "Hero": { "greeting": "Hi, mein Name ist", - "rolePrefix": "Full-Stack", - "roleSuffix": "Entwickler", "description": "Ich konzipiere und entwickle moderne Web-Anwendungen. Mit einem klaren Auge fürs Detail und einem Fokus auf sauberen Code erwecke ich digitale Ideen zum Leben.", "downloadCv": "Lebenslauf" }, @@ -60,7 +62,6 @@ "successTitle": "Vielen Dank!", "successText": "Deine Nachricht wurde erfolgreich gesendet. Ich melde mich schnellstmöglich bei dir!", "formName": "Name", - "formEmail": "E-Mail", "formMessage": "Nachricht", "formMessagePlaceholder": "Hi André, ich würde gerne ein potenzielles Projekt besprechen...", "errorMessage": "Ein Fehler ist aufgetreten. Bitte versuche es später erneut.", @@ -69,5 +70,21 @@ }, "Footer": { "rights": "Alle Rechte vorbehalten." + }, + "Imprint": { + "backHome": "Zurück zur Startseite", + "section1Title": "Angaben gemäß § 5 DDG", + "section1Sub": "Verantwortlich für den Inhalt nach § 18 Abs. 2 MStV.", + "section2Title": "Kontakt", + "section3Title": "Haftungsausschluss", + "liabilityContentTitle": "Haftung für Inhalte", + "liabilityContentText": "Als Diensteanbieter bin ich gemäß § 7 Abs.1 DDG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG bin ich als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.", + "liabilityLinksTitle": "Haftung für Links", + "liabilityLinksText": "Mein Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte ich keinen Einfluss habe. Deshalb kann ich für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich.", + "copyrightTitle": "Urheberrecht", + "copyrightText": "Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers.", + "section4Title": "Streitschlichtung", + "disputeText1": "Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:", + "disputeText2": "Ich bin nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen." } } diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json index 9f26ca9..619891a 100644 --- a/src/i18n/messages/en.json +++ b/src/i18n/messages/en.json @@ -5,15 +5,18 @@ "portfolio": "Portfolio", "contact": "Contact me", "imprint": "Legal Notice", - "privacy": "Privacy Policy" + "privacy": "Privacy Policy", + "rolePrefix": "Full-Stack", + "roleSuffix": "Developer", + "emailLabel": "Email", + "backHome": "Back to Homepage" }, "Header": { "search": "Search" }, "Hero": { "greeting": "Hi, my name is", - "rolePrefix": "Full-Stack", - "roleSuffix": "Developer", + "description": "I conceptualize and develop modern web applications. With a sharp eye for detail and a focus on clean code, I bring digital ideas to life.", "downloadCv": "Download CV" }, @@ -60,7 +63,6 @@ "successTitle": "Thank you!", "successText": "Your message has been sent successfully. I'll get back to you as soon as possible!", "formName": "Name", - "formEmail": "Email", "formMessage": "Message", "formMessagePlaceholder": "Hi André, I would like to discuss a potential project...", "errorMessage": "An error occurred. Please try again later.", @@ -69,5 +71,20 @@ }, "Footer": { "rights": "All rights reserved." + }, + "Imprint": { + "section1Title": "Information Pursuant to § 5 DDG", + "section1Sub": "Also responsible for content pursuant to § 18 Abs. 2 MStV.", + "section2Title": "Contact", + "section3Title": "Disclaimer & Legal Notes", + "liabilityContentTitle": "Liability for Content", + "liabilityContentText": "As a service provider, I am responsible for my own content on these pages according to general laws pursuant to § 7 Abs. 1 DDG. However, according to §§ 8 to 10 DDG, I am not obligated to monitor transmitted or stored third-party information or to investigate circumstances that indicate illegal activity.", + "liabilityLinksTitle": "Liability for Links", + "liabilityLinksText": "My website contains links to external third-party websites over whose content I have no control. Therefore, I cannot accept any liability for these external contents. The respective provider or operator of the pages is always responsible for the content of the linked pages.", + "copyrightTitle": "Copyright", + "copyrightText": "The content and works created on these pages are subject to German copyright law. Duplication, processing, distribution, or any form of commercialization beyond the scope of copyright law require the prior written consent of the author or creator.", + "section4Title": "Dispute Resolution", + "disputeText1": "The European Commission provides a platform for online dispute resolution (OS):", + "disputeText2": "I am neither willing nor obligated to participate in dispute resolution proceedings before a consumer arbitration board." } }