Impressum mit den Anbieterdaten der GEFIM UG

Daten aus gefim.de/impressum als zentrale Konstante (src/lib/marketing/imprint.ts), Seite
/impressum öffentlich und in der Fußzeile verlinkt. Der dort abgeschnittene Satz zur
Verbraucherstreitbeilegung ist mit der Standardformulierung vervollständigt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 09:02:30 +02:00
co-authored by Claude Opus 5
parent 4815a957b0
commit f665999d81
6 changed files with 125 additions and 2 deletions
+70
View File
@@ -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<Metadata> {
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 (
<article className="mx-auto max-w-3xl px-4 py-12 sm:px-6">
<h1 className="font-heading text-[30px] font-bold text-[var(--ui-primary)]">{t("title")}</h1>
<p className="mt-2 text-[14px] text-muted-foreground">{t("intro")}</p>
<h2 className={block}>{t("provider")}</h2>
<address className="mt-2 text-[15px] leading-relaxed not-italic">
{IMPRINT.company}
<br />
{IMPRINT.street}
<br />
{IMPRINT.city}
<br />
{IMPRINT.country}
</address>
<h2 className={block}>{t("represented")}</h2>
<p className="mt-2 text-[15px]">{IMPRINT.representatives.join(", ")}</p>
<h2 className={block}>{t("contact")}</h2>
<dl className="mt-2 grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 text-[15px]">
<dt className="text-muted-foreground">{t("phone")}</dt>
<dd>
<a href={IMPRINT.phoneHref} className="underline-offset-2 hover:underline">
{IMPRINT.phone}
</a>
</dd>
<dt className="text-muted-foreground">{t("email")}</dt>
<dd>
<a href={`mailto:${IMPRINT.email}`} className="underline-offset-2 hover:underline">
{IMPRINT.email}
</a>
</dd>
</dl>
<h2 className={block}>{t("register")}</h2>
<dl className="mt-2 grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 text-[15px]">
<dt className="text-muted-foreground">{t("registerCourt")}</dt>
<dd>{IMPRINT.registerCourt}</dd>
<dt className="text-muted-foreground">{t("registerNumber")}</dt>
<dd>{IMPRINT.registerNumber}</dd>
</dl>
<h2 className={block}>{t("vat")}</h2>
<p className="mt-2 text-[15px]">
{t("vatText")} {IMPRINT.vatId}
</p>
<h2 className={block}>{t("editorial")}</h2>
<p className="mt-2 text-[15px]">{IMPRINT.editorial}</p>
<h2 className={block}>{t("dispute")}</h2>
<p className="mt-2 text-[15px] leading-relaxed">{t("disputeText")}</p>
</article>
);
}