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) => (
  • - {lang.label} + {t['label'][lang]}
  • )) diff --git a/src/i18n/components/LanguagePicker.ts b/src/i18n/components/LanguagePicker.ts index d185652..fca0741 100644 --- a/src/i18n/components/LanguagePicker.ts +++ b/src/i18n/components/LanguagePicker.ts @@ -1,11 +1,17 @@ export const texts = { es: { alttext: 'Selector de idioma', + label: { es: 'es', en: 'en', ca: 'ca' }, + labelariadesc: 'Idioma español', }, en: { alttext: 'Language selector', + label: { es: 'es', en: 'en', ca: 'ca' }, + labelariadesc: 'English language', }, ca: { alttext: "Selector d'idioma", + label: { es: 'es', en: 'en', ca: 'ca' }, + labelariadesc: 'Idioma català', }, } as const diff --git a/src/pages/index.astro b/src/pages/index.astro index 0c20087..a25049c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,17 +1,18 @@ --- +import { i18n } from 'astro:config/client' import IndexPage from '../components/index.astro' --- - +