diff --git a/messages/de/marketing.json b/messages/de/marketing.json index bf14540..d2b6856 100644 --- a/messages/de/marketing.json +++ b/messages/de/marketing.json @@ -398,5 +398,22 @@ }, "shotFrame": { "label": "Bildschirmfoto aus Craftvia" + }, + "imprint": { + "title": "Impressum", + "intro": "Angaben gemäß § 5 Digitale-Dienste-Gesetz (DDG).", + "provider": "Anbieter", + "represented": "Vertreten durch", + "contact": "Kontakt", + "phone": "Telefon", + "email": "E-Mail", + "register": "Registereintrag", + "registerCourt": "Registergericht", + "registerNumber": "Handelsregister", + "vat": "Umsatzsteuer-ID", + "vatText": "Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:", + "editorial": "Redaktionell verantwortlich", + "dispute": "Verbraucherstreitbeilegung / Universalschlichtungsstelle", + "disputeText": "Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen." } } diff --git a/messages/en/marketing.json b/messages/en/marketing.json index a7fe7d9..2f8c740 100644 --- a/messages/en/marketing.json +++ b/messages/en/marketing.json @@ -398,5 +398,22 @@ }, "shotFrame": { "label": "Screenshot from Craftvia" + }, + "imprint": { + "title": "Imprint", + "intro": "Information pursuant to § 5 of the German Digital Services Act (DDG).", + "provider": "Provider", + "represented": "Represented by", + "contact": "Contact", + "phone": "Phone", + "email": "E-mail", + "register": "Commercial register", + "registerCourt": "Register court", + "registerNumber": "Register number", + "vat": "VAT ID", + "vatText": "VAT identification number pursuant to § 27 a of the German VAT Act:", + "editorial": "Editorially responsible", + "dispute": "Consumer dispute resolution", + "disputeText": "We are neither willing nor obliged to take part in dispute resolution proceedings before a consumer arbitration board." } } diff --git a/src/app/(marketing)/impressum/page.tsx b/src/app/(marketing)/impressum/page.tsx new file mode 100644 index 0000000..3e0cd66 --- /dev/null +++ b/src/app/(marketing)/impressum/page.tsx @@ -0,0 +1,70 @@ +import type { Metadata } from "next"; +import { getTranslations } from "next-intl/server"; +import { IMPRINT } from "@/lib/marketing/imprint"; + +export async function generateMetadata(): Promise { + const t = await getTranslations("marketing.imprint"); + return { title: t("title"), robots: { index: true, follow: true } }; +} + +/** Impressum der Produktseite — Daten aus src/lib/marketing/imprint.ts. */ +export default async function ImprintPage() { + const t = await getTranslations("marketing.imprint"); + const block = "mt-8 font-heading text-[17px] font-semibold"; + + return ( +
+

{t("title")}

+

{t("intro")}

+ +

{t("provider")}

+
+ {IMPRINT.company} +
+ {IMPRINT.street} +
+ {IMPRINT.city} +
+ {IMPRINT.country} +
+ +

{t("represented")}

+

{IMPRINT.representatives.join(", ")}

+ +

{t("contact")}

+
+
{t("phone")}
+
+ + {IMPRINT.phone} + +
+
{t("email")}
+
+ + {IMPRINT.email} + +
+
+ +

{t("register")}

+
+
{t("registerCourt")}
+
{IMPRINT.registerCourt}
+
{t("registerNumber")}
+
{IMPRINT.registerNumber}
+
+ +

{t("vat")}

+

+ {t("vatText")} {IMPRINT.vatId} +

+ +

{t("editorial")}

+

{IMPRINT.editorial}

+ +

{t("dispute")}

+

{t("disputeText")}

+
+ ); +} diff --git a/src/components/marketing/shell.tsx b/src/components/marketing/shell.tsx index 87a378d..079972d 100644 --- a/src/components/marketing/shell.tsx +++ b/src/components/marketing/shell.tsx @@ -70,7 +70,7 @@ export async function MarketingShell({ children }: { children: React.ReactNode }