'use client'; import { useLocale } from 'next-intl'; import { usePathname, useRouter } from 'next/navigation'; import { Badge } from '@/components/ui/badge'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; export function LocaleSwitcher() { const locale = useLocale(); const router = useRouter(); const pathname = usePathname(); const handleLocaleChange = (newLocale: string) => { const newPath = pathname.replace(`/${locale}`, `/${newLocale}`); router.push(newPath); }; const locales = [ { code: 'en', name: 'English', flag: '🇺🇸' }, { code: 'fr', name: 'Français', flag: '🇫🇷' }, ]; const currentLocale = locales.find(l => l.code === locale); return (
{currentLocale?.flag} {currentLocale?.code.toUpperCase()} {currentLocale?.name}
{locales.map(loc => ( handleLocaleChange(loc.code)} className="flex cursor-pointer items-center gap-3 p-3" > {loc.flag}
{loc.name} {loc.code.toUpperCase()}
{loc.code === locale && ( Active )}
))}
); }