"use client"; import { useState } from "react"; import { usePathname, useRouter } from "@/i18n/navigation"; import { useLocale, useTranslations } from "next-intl"; import { Globe } from "lucide-react"; import { routing } from "@/i18n/routing"; import { cn } from "@/lib/utils"; /** * 语言切换器。 * * 使用 next-intl 的 usePathname / useRouter,切换语言时保留当前路径, * 而不是跳回首页。通过 useParams 需要传参的场景在这里不适用, * 因为本项目的动态段只有 slug,路径本身已经能表达。 */ export function LocaleSwitcher({ className }: { className?: string }) { const t = useTranslations("LocaleSwitcher"); const locale = useLocale(); const router = useRouter(); const pathname = usePathname(); const [open, setOpen] = useState(false); const handleSelect = (nextLocale: string) => { setOpen(false); router.replace(pathname, { locale: nextLocale }); }; return (