import type { Metadata } from "next"; import { headers } from "next/headers"; import { SoftwareApplicationStructuredData, BreadcrumbStructuredData } from "@/components/seo/StructuredData"; export async function generateMetadata(): Promise { const headersList = await headers(); const acceptLanguage = headersList.get("accept-language") || ""; const lang = acceptLanguage.includes("zh") ? "zh" : "en"; const titles = { en: "Image Compression - Optimize PNG, JPEG, WebP Online Free", zh: "图片压缩 - 免费在线优化 PNG、JPEG、WebP 图片", }; const descriptions = { en: "Free online image compressor. Optimize PNG, JPEG, WebP, AVIF images without quality loss. Batch processing, format conversion, browser-based with no uploads required.", zh: "免费在线图片压缩工具。无损优化 PNG、JPEG、WebP、AVIF 图片。支持批量处理、格式转换,浏览器本地处理无需上传。", }; const keywords = { en: [ "image compression", "image compressor online", "compress PNG", "compress JPEG", "WebP converter", "image optimizer", "batch image compression", "reduce image size", "AVIF converter", "browser-based", ], zh: [ "图片压缩", "在线图片压缩", "PNG压缩", "JPEG压缩", "WebP转换", "图片优化", "批量压缩", "缩小图片", "AVIF转换", "浏览器端", ], }; const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://kymr.top"; return { title: titles[lang], description: descriptions[lang], keywords: keywords[lang], alternates: { canonical: `${baseUrl}/tools/image-compress`, }, openGraph: { title: titles[lang], description: descriptions[lang], url: `${baseUrl}/tools/image-compress`, type: "website", }, twitter: { title: titles[lang], description: descriptions[lang], card: "summary_large_image", }, }; } export default function ImageCompressLayout({ children, }: { children: React.ReactNode; }) { return ( <> {children} ); }