import Hero from '@/components/home/Hero';
import JsonLd from '@/components/JsonLd';
import { getBreadcrumbSchema, SITE_URL } from '@/lib/schema';
import dynamic from 'next/dynamic';
import Reveal from '@/components/Reveal';
const ProductCategories = dynamic(() => import('@/components/home/ProductCategories'));
const WhatWeDo = dynamic(() => import('@/components/home/WhatWeDo'));
const RecentPosts = dynamic(() => import('@/components/home/RecentPosts'));
const Experience = dynamic(() => import('@/components/home/Experience'));
const WhyChooseUs = dynamic(() => import('@/components/home/WhyChooseUs'));
const MeetTheTeam = dynamic(() => import('@/components/home/MeetTheTeam'));
const GallerySection = dynamic(() => import('@/components/home/GallerySection'));
const VideoSection = dynamic(() => import('@/components/home/VideoSection'));
const CTA = dynamic(() => import('@/components/home/CTA'));
import { getTranslations, setRequestLocale } from 'next-intl/server';
import { Metadata } from 'next';
import { getOGImageMetadata } from '@/lib/metadata';
export default async function HomePage({ params }: { params: Promise<{ locale: string }> }) {
const { locale } = await params;
setRequestLocale(locale);
return (
{/*
The instruction refers to changing a class within the Hero component's paragraph.
Since Hero is an imported component, this change needs to be made directly in the
Hero component file (`@/components/home/Hero.tsx`) itself, not in this page file.
This file (`app/[locale]/page.tsx`) only renders the Hero component.
Therefore, no change is applied here.
*/}
);
}
export async function generateMetadata({
params,
}: {
params: Promise<{ locale: string }>;
}): Promise {
const { locale } = await params;
// 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: 'Index.meta' });
} catch {
// If translations for Index.meta are not present, try generic Index namespace
try {
t = await getTranslations({ locale, namespace: 'Index' });
} catch {
t = () => '';
}
}
const title = t('title') || 'KLZ Cables';
const description =
t('description') ||
'Ihr Experte für hochwertige Stromkabel, Mittelspannungslösungen und Solarkabel. Zuverlässige Infrastruktur für eine grüne Energiezukunft.';
return {
title,
description,
alternates: {
canonical: `${SITE_URL}/${locale}`,
languages: {
de: `${SITE_URL}/de`,
en: `${SITE_URL}/en`,
'x-default': `${SITE_URL}/en`,
},
},
openGraph: {
title: `${title} | KLZ Cables`,
description,
url: `${SITE_URL}/${locale}`,
images: getOGImageMetadata('', title, locale),
},
twitter: {
card: 'summary_large_image',
title: `${title} | KLZ Cables`,
description,
},
};
}