Estructura de archivos

Esta es toda la estructura necesaria para el ejemplo inicial. Los nombres en messages deben coincidir con los imports de tu configuración.

Archivos mínimos

astro.config.mjs conecta idiomas y mensajes. Los JSON guardan los textos. La página genera las dos URLs y elige el idioma antes de traducir.

Estructura mínima
astro.config.mjs
src/
  i18n/messages/
    en.json
    es.json
  pages/[lang]/
    index.astro

Archivos opcionales al crecer

layouts/Layout.astro comparte HTML; components/ contiene piezas reutilizables. i18n/request.ts solo hace falta si eliges un cargador personalizado. middleware.ts centraliza la inicialización antes del render. i18n/routing.ts organiza rutas traducidas. Ninguno es un requisito para el inicio rápido.