diff --git a/src/components/LanguagePicker.astro b/src/components/LanguagePicker.astro index 9a4cc02..859de12 100644 --- a/src/components/LanguagePicker.astro +++ b/src/components/LanguagePicker.astro @@ -1,30 +1,27 @@ --- +import { i18n } from 'astro:config/client' import { texts } from '../i18n/components/LanguagePicker' // Idiomas disponibles -const languages = [ - { code: 'es', label: 'es', ariadesc: 'Idioma español' }, - { code: 'en', label: 'en', ariadesc: 'English language' }, - { code: 'ca', label: 'ca', ariadesc: 'Idioma català' }, -] +const languages = i18n.locales as string[] interface Props { lang: string } -const { lang = 'es' } = Astro.params +const { lang = i18n.defaultLocale } = Astro.params const t = texts[lang as keyof typeof texts] // Idioma actual detectado desde la URL const pathname = Astro.url.pathname -const currentLang = pathname.split('/')[1] || 'es' +const currentLang = pathname.split('/')[1] || i18n.defaultLocale // Función para construir la URL destino const getPathForLang = (lang) => { const parts = pathname.split('/').filter(Boolean) // Si ya hay idioma, lo reemplaza - if (languages.some((l) => l.code === parts[0])) { + if (languages.some((l) => l === parts[0])) { parts[0] = lang } else { parts.unshift(lang) @@ -39,14 +36,14 @@ const getPathForLang = (lang) => { languages.map((lang) => (