Primeros pasos

Define i18n una vez y deja que la URL elija el idioma.

El idioma fuente queda sin prefijo. Los idiomas secundarios viven bajo /es y /uk, y sus catálogos se cargan solo cuando alguien los pide.

Define el catálogo una vez

Importa el catálogo fuente de forma estática para claves tipadas y fallback. Mantén los catálogos secundarios detrás de imports dinámicos para separarlos del primer bundle.

export const i18n = defineI18n({
  locales: ['en', 'es', 'uk'],
  sourceLocale: 'en',
  source: en,
  loaders: {
    es: () => import('./es.json'),
    uk: () => import('./uk.json')
  }
});

Rutas localizadas

/docs es inglés, /es/docs es español y /uk/docs es ucraniano. Cambiar idioma conserva la página, la query y el fragmento.

Fallback al fuente

This sentence exists only in the source catalog, so Spanish and Ukrainian fall back to it.

MessageFormat 2

Hay 1 comportamiento de producción cubierto.

Hay 3 comportamientos de producción cubiertos.

Hay 12 comportamientos de producción cubiertos.