- Add dynamic sitemap.ts, robots.ts, and llms.txt route - Add metadataBase and JSON-LD Organization schema to layout - Set canonical alternates for all routes - Migrate raw img tags to next/image for LCP optimization - Add SEO dictionary strings to tr.json and en.json
27 lines
709 B
TypeScript
27 lines
709 B
TypeScript
import { getDictionary, Locale } from "../../dictionaries";
|
|
import GaleriClient from "./GaleriClient";
|
|
|
|
export async function generateMetadata({ params }: { params: Promise<{ lang: string }> }) {
|
|
const { lang } = await params;
|
|
const dict = await getDictionary(lang as Locale);
|
|
return {
|
|
title: dict.seo.gallery.title,
|
|
description: dict.seo.gallery.description,
|
|
alternates: {
|
|
canonical: `/${lang}/galeri`,
|
|
},
|
|
};
|
|
}
|
|
|
|
export default async function GaleriPage({
|
|
params,
|
|
}: {
|
|
params: Promise<{ lang: string }>;
|
|
}) {
|
|
const { lang } = await params;
|
|
const locale = lang as Locale;
|
|
const dict = await getDictionary(locale);
|
|
|
|
return <GaleriClient lang={locale} dict={dict} />;
|
|
}
|