titles
Some checks failed
Build & Deploy KLZ Cables / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-01-27 00:07:00 +01:00
parent b8fdbfb10b
commit a805c7b8de
6 changed files with 53 additions and 23 deletions

View File

@@ -23,9 +23,11 @@ interface ContactPageProps {
export async function generateMetadata({ params: { locale } }: ContactPageProps): Promise<Metadata> {
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: {

View File

@@ -38,22 +38,22 @@ export default function HomePage({ params: { locale } }: { params: { locale: str
}
export async function generateMetadata({ params: { locale } }: { params: { locale: string } }): Promise<Metadata> {
// 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,

View File

@@ -15,9 +15,11 @@ interface ProductsPageProps {
export async function generateMetadata({ params: { locale } }: ProductsPageProps): Promise<Metadata> {
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,
},
};
}

View File

@@ -15,9 +15,11 @@ interface TeamPageProps {
export async function generateMetadata({ params: { locale } }: TeamPageProps): Promise<Metadata> {
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,
},
};
}

View File

@@ -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",

View File

@@ -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",