import type { Metadata } from 'next'; import './globals.css'; export async function generateMetadata({ params, }: { params: { lang: string }; }): Promise { const domain = 'https://your-domain.com'; // Map of language-specific metadata const metadataByLang: Record = { en: { title: 'AWS Cloud Services Partner - Professional Cloud Computing Solutions', description: 'Providing comprehensive AWS cloud services including EC2, RDS, S3, AI/ML and more', keywords: 'AWS, cloud computing, EC2, RDS, S3, cloud services, AI, machine learning', }, 'zh-CN': { title: 'AWS云服务合作伙伴 - 专业云计算解决方案', description: '提供AWS云服务器、数据库、存储、AI/ML等全方位云计算服务', keywords: 'AWS,云服务器,云计算,数据库,存储,AI,机器学习', }, 'zh-TW': { title: 'AWS雲端服務合作夥伴 - 專業雲端運算解決方案', description: '提供AWS雲端伺服器、資料庫、儲存、AI/ML等全方位雲端運算服務', keywords: 'AWS,雲端伺服器,雲端運算,資料庫,儲存,AI,機器學習', }, ko: { title: 'AWS 클라우드 서비스 파트너 - 전문 클라우드 컴퓨팅 솔루션', description: 'EC2, RDS, S3, AI/ML 등 포괄적인 AWS 클라우드 서비스 제공', keywords: 'AWS,클라우드 컴퓨팅,EC2,RDS,S3,클라우드 서비스,AI,머신러닝', }, ja: { title: 'AWSクラウドサービスパートナー - プロフェッショナルクラウドコンピューティングソリューション', description: 'EC2、RDS、S3、AI/MLなど包括的なAWSクラウドサービスを提供', keywords: 'AWS,クラウドコンピューティング,EC2,RDS,S3,クラウドサービス,AI,機械学習', }, }; // Get metadata for the current language or fall back to English const metadata = metadataByLang[params.lang] || metadataByLang.en; return { metadataBase: new URL(domain), ...metadata, alternates: { languages: { en: '/en', 'zh-CN': '/zh-CN', 'zh-TW': '/zh-TW', ko: '/ko', ja: '/ja', 'x-default': '/en', }, }, openGraph: { title: metadata.title || undefined, description: metadata.description || undefined, url: `${domain}/${params.lang}`, siteName: 'AWS Cloud Services Partner', images: [ { url: '/og-image.png', // Must be an absolute URL width: 1200, height: 630, }, ], locale: params.lang, type: 'website', }, twitter: { card: 'summary_large_image', title: metadata.title || undefined, description: metadata.description || undefined, images: ['/og-image.png'], // Must be an absolute URL }, }; } export default function RootLayout({ children, params, }: Readonly<{ children: React.ReactNode; params: { lang: string } }>) { return ( {children} ); }