Estructura de Archivos

astro-intl espera una estructura de carpetas específica dentro de tu proyecto. Aquí está el layout recomendado:

Project structure
src/
├── i18n/
│   ├── messages/
│   │   ├── en.json       ← English translations
│   │   └── es.json       ← Spanish translations
│   └── request.ts        ← Locale resolver
├── layouts/
│   └── Layout.astro      ← Shared layout
├── pages/
│   └── [lang]/           ← Dynamic locale segment
│       ├── index.astro
│       └── docs.astro
└── components/
    └── MyComponent.astro
pages/[lang]/ Las páginas deben estar anidadas bajo un segmento dinámico [lang] para que Astro genere una ruta por locale.
messages/ Cada locale tiene su propio archivo JSON dentro de src/i18n/messages/. El nombre del archivo debe coincidir exactamente con el código del locale (ej. en.json, es.json).
request.ts El archivo request.ts exporta una función que recibe el string del locale y retorna los mensajes para ese locale.