From 20910e5cbfac128fd06a86d0edd16eec95c0f556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=B6rdle=20Bot?= Date: Mon, 1 Dec 2025 14:08:31 +0100 Subject: [PATCH] feat: add multilingual about page with imprint and privacy info --- app/[locale]/about/page.tsx | 163 +++++++++++++++++ components/AppFooter.tsx | 69 +++++--- messages/de.json | 341 ++++++++++++++++++++---------------- messages/en.json | 341 ++++++++++++++++++++---------------- 4 files changed, 577 insertions(+), 337 deletions(-) create mode 100644 app/[locale]/about/page.tsx diff --git a/app/[locale]/about/page.tsx b/app/[locale]/about/page.tsx new file mode 100644 index 0000000..bc64bb6 --- /dev/null +++ b/app/[locale]/about/page.tsx @@ -0,0 +1,163 @@ +import { getTranslations } from "next-intl/server"; +import { Link } from "@/lib/navigation"; + +interface AboutPageProps { + params: Promise<{ locale: string }>; +} + +export default async function AboutPage({ params }: AboutPageProps) { + const { locale } = await params; + const t = await getTranslations({ locale, namespace: "About" }); + + const sheetUrl = + "https://docs.google.com/spreadsheets/d/1LuMkDsnidlvMtzzSqwrz-GACnqMaqzs-VBa-ZK0nZeI/edit?usp=sharing"; + + return ( +
+

{t("title")}

+

{t("intro")}

+ +
+

+ {t("projectTitle")} +

+

{t("projectPrivateNote")}

+

{t("projectIdea")}

+
+ +
+

+ {t("imprintTitle")} +

+

+ {t("imprintOperator")} +

+

Max Mustermann

+

Musterstraße 1

+

12345 Musterstadt

+

{t("imprintCountry")}

+

+ {t("imprintEmailLabel")}{" "} + kontakt@example.com +

+

+ {t("imprintDisclaimer")} +

+
+ +
+

+ {t("costsTitle")} +

+

{t("costsIntro")}

+
    +
  • {t("costsDomain")}
  • +
  • {t("costsServer")}
  • +
  • {t("costsEmail")}
  • +
  • {t("costsLicenses")}
  • +
+

+ {t.rich("costsSheetLinkText", { + link: (chunks) => ( + + {chunks} + + ), + })} +

+

+ {t("costsSheetPrivacyNote")} +

+
+