From a805c7b8de645024916e31e531b7d7f8378b078f Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Tue, 27 Jan 2026 00:07:00 +0100 Subject: [PATCH] titles --- app/[locale]/contact/page.tsx | 14 ++++++++------ app/[locale]/page.tsx | 10 +++++----- app/[locale]/products/page.tsx | 14 ++++++++------ app/[locale]/team/page.tsx | 14 ++++++++------ messages/de.json | 12 ++++++++++++ messages/en.json | 12 ++++++++++++ 6 files changed, 53 insertions(+), 23 deletions(-) diff --git a/app/[locale]/contact/page.tsx b/app/[locale]/contact/page.tsx index d7d43c31..9d7f62e7 100644 --- a/app/[locale]/contact/page.tsx +++ b/app/[locale]/contact/page.tsx @@ -23,9 +23,11 @@ interface ContactPageProps { export async function generateMetadata({ params: { locale } }: ContactPageProps): Promise { const t = await getTranslations({ locale, namespace: 'Contact' }); + const title = t('meta.title') || t('title'); + const description = t('meta.description') || t('subtitle'); return { - title: t('title'), - description: t('subtitle'), + title, + description, alternates: { canonical: `https://klz-cables.com/${locale}/contact`, languages: { @@ -34,8 +36,8 @@ export async function generateMetadata({ params: { locale } }: ContactPageProps) }, }, openGraph: { - title: `${t('title')} | KLZ Cables`, - description: t('subtitle'), + title: `${title} | KLZ Cables`, + description, url: `https://klz-cables.com/${locale}/contact`, siteName: 'KLZ Cables', images: [ @@ -51,8 +53,8 @@ export async function generateMetadata({ params: { locale } }: ContactPageProps) }, twitter: { card: 'summary_large_image', - title: `${t('title')} | KLZ Cables`, - description: t('subtitle'), + title: `${title} | KLZ Cables`, + description, images: ['https://klz-cables.com/logo.png'], }, robots: { diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index b1b46300..8d452073 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -38,22 +38,22 @@ export default function HomePage({ params: { locale } }: { params: { locale: str } export async function generateMetadata({ params: { locale } }: { params: { locale: string } }): Promise { - // Use translations for meta where available (namespace: Home.meta) + // Use translations for meta where available (namespace: Index.meta) // Fallback to a sensible default if translation keys are missing. let t; try { - t = await getTranslations({ locale, namespace: 'Home.meta' }); + t = await getTranslations({ locale, namespace: 'Index.meta' }); } catch (err) { - // If translations for Home.meta are not present, try generic Home namespace + // If translations for Index.meta are not present, try generic Index namespace try { - t = await getTranslations({ locale, namespace: 'Home' }); + t = await getTranslations({ locale, namespace: 'Index' }); } catch (e) { t = (key: string) => ''; } } const title = t('title') || 'KLZ Cables'; - const description = t('description') || t('subtitle') || ''; + const description = t('description') || ''; return { title, diff --git a/app/[locale]/products/page.tsx b/app/[locale]/products/page.tsx index a36b0a29..3f7b63b3 100644 --- a/app/[locale]/products/page.tsx +++ b/app/[locale]/products/page.tsx @@ -15,9 +15,11 @@ interface ProductsPageProps { export async function generateMetadata({ params: { locale } }: ProductsPageProps): Promise { const t = await getTranslations({ locale, namespace: 'Products' }); + const title = t('meta.title') || t('title'); + const description = t('meta.description') || t('subtitle'); return { - title: t('title'), - description: t('subtitle'), + title, + description, alternates: { canonical: `/${locale}/products`, languages: { @@ -27,14 +29,14 @@ export async function generateMetadata({ params: { locale } }: ProductsPageProps }, }, openGraph: { - title: `${t('title')} | KLZ Cables`, - description: t('subtitle'), + title: `${title} | KLZ Cables`, + description, url: `https://klz-cables.com/${locale}/products`, }, twitter: { card: 'summary_large_image', - title: `${t('title')} | KLZ Cables`, - description: t('subtitle'), + title: `${title} | KLZ Cables`, + description, }, }; } diff --git a/app/[locale]/team/page.tsx b/app/[locale]/team/page.tsx index 13438f91..63dde4c4 100644 --- a/app/[locale]/team/page.tsx +++ b/app/[locale]/team/page.tsx @@ -15,9 +15,11 @@ interface TeamPageProps { export async function generateMetadata({ params: { locale } }: TeamPageProps): Promise { const t = await getTranslations({ locale, namespace: 'Team' }); + const title = t('meta.title') || t('hero.subtitle'); + const description = t('meta.description') || t('hero.title'); return { - title: t('hero.subtitle'), - description: t('hero.title'), + title, + description, alternates: { canonical: `/${locale}/team`, languages: { @@ -27,14 +29,14 @@ export async function generateMetadata({ params: { locale } }: TeamPageProps): P }, }, openGraph: { - title: `${t('hero.subtitle')} | KLZ Cables`, - description: t('hero.title'), + title: `${title} | KLZ Cables`, + description, url: `https://klz-cables.com/${locale}/team`, }, twitter: { card: 'summary_large_image', - title: `${t('hero.subtitle')} | KLZ Cables`, - description: t('hero.title'), + title: `${title} | KLZ Cables`, + description, }, }; } diff --git a/messages/de.json b/messages/de.json index a4d20975..7139dc1e 100644 --- a/messages/de.json +++ b/messages/de.json @@ -89,6 +89,10 @@ "tagline": "Wegweisend in der Kabelinfrastruktur und bei nachhaltigen Energielösungen. Qualität, Innovation und Zuverlässigkeit seit 1998." }, "Team": { + "meta": { + "title": "Unser Team | Die Experten hinter KLZ Cables", + "description": "Lernen Sie die Menschen kennen, die KLZ Cables antreiben. Jahrzehntelange Erfahrung in der Kabelindustrie trifft auf innovative Lösungen für die Energiewende." + }, "hero": { "title": "Die Köpfe, die Energie zum Laufen bringen", "subtitle": "Wir verbinden Energie, Know-how und Innovation, um eine nachhaltigere Zukunft zu gestalten.", @@ -155,6 +159,10 @@ } }, "Contact": { + "meta": { + "title": "Kontaktieren Sie KLZ Cables | Ihr Partner für Kabelinfrastruktur", + "description": "Haben Sie Fragen zu unseren Strom- oder Solarkabeln? Kontaktieren Sie unser Expertenteam für technische Beratung und maßgeschneiderte Lösungen." + }, "title": "Kontaktieren Sie uns", "subtitle": "Haben Sie Fragen zu unseren Produkten oder benötigen Sie eine maßgeschneiderte Lösung? Wir sind für Sie da.", "heroSubtitle": "Kontakt aufnehmen", @@ -187,6 +195,10 @@ } }, "Products": { + "meta": { + "title": "Produktportfolio | Hochwertige Kabel für jede Anwendung", + "description": "Entdecken Sie unser umfassendes Sortiment an zertifizierten Kabeln: von Niederspannung über Mittel- und Hochspannung bis hin zu spezialisierten Solarkabeln." + }, "title": "Unsere Produkte", "subtitle": "Entdecken Sie unser umfassendes Sortiment an hochwertigen Kabeln für jede Anwendung.", "heroSubtitle": "Produktportfolio", diff --git a/messages/en.json b/messages/en.json index 83f58e10..b50393d9 100644 --- a/messages/en.json +++ b/messages/en.json @@ -89,6 +89,10 @@ "tagline": "Leading the way in cable infrastructure and sustainable energy solutions. Quality, innovation, and reliability since 1998." }, "Team": { + "meta": { + "title": "Our Team | The Experts Behind KLZ Cables", + "description": "Meet the people driving KLZ Cables. Decades of experience in the cable industry meets innovative solutions for the energy transition." + }, "hero": { "title": "The bright sparks behind the power", "subtitle": "We connect energy, expertise, and innovation to power a greener future.", @@ -155,6 +159,10 @@ } }, "Contact": { + "meta": { + "title": "Contact KLZ Cables | Your Partner for Cable Infrastructure", + "description": "Have questions about our power or solar cables? Contact our expert team for technical advice and tailor-made solutions." + }, "title": "Get in Touch", "subtitle": "Have questions about our products or need a custom solution? We're here to help.", "heroSubtitle": "Get in Touch", @@ -187,6 +195,10 @@ } }, "Products": { + "meta": { + "title": "Product Portfolio | High-Quality Cables for Every Application", + "description": "Explore our comprehensive range of certified cables: from low voltage to medium and high voltage, as well as specialized solar cables." + }, "title": "Our Products", "subtitle": "Explore our comprehensive range of high-quality cables designed for every application.", "heroSubtitle": "Product Portfolio",