Saltearse al contenido

Astro i18n Next

Enrutamiento con URLs traducidas, localización de contenido, markdown multilingüe e integración con i18next — todo a través de una sola llamada a createI18n().

Características

Enrutamiento con URLs Traducidas

Rutas con prefijo de idioma automáticas para todas tus páginas. /about/ se convierte en /es/sobre/ — sin necesidad de slugs dinámicos ni rutas catch-all.

Módulo Virtual

Importa t, localePath, switchLocalePath y más desde virtual:i18n. Una importación, todos los helpers de i18n que necesitas.

Markdown Multilingüe

Escribe todos los idiomas en un solo archivo markdown con frontmatter YAML y marcadores <!-- locale:es --> en el cuerpo. Impulsado por la API Content Loader de Astro 5.

Integración con i18next

Soporte completo de i18next con claves en notación de punto, cadenas de fallback y extensibilidad mediante plugins (ICU, interpolación y más).

Traducción de Slugs de Página

Exporta slugs desde páginas .astro para definir segmentos de URL por idioma. Descubiertos automáticamente en tiempo de compilación — sin configuración adicional.

Completamente Estático

Diseñado para la salida estática de Astro. Todas las rutas se pre-renderizan sin overhead en tiempo de ejecución.

Ejemplo Rápido

astro.config.mjs
import { createI18n } from '@otrodigital/astro-i18n-next';
export default defineConfig({
integrations: [createI18n({
defaultLocale: 'en',
locales: ['en', 'es'],
localeLabels: { en: 'English', es: 'Español' },
localeHtmlLang: { en: 'en', es: 'es' },
translations: { en, es },
pagesDir: 'src/pages',
})],
});
---
// Cualquier componente .astro
import { t, localePath } from 'virtual:i18n';
const locale = Astro.locals.locale;
---
<h1>{t(locale, 'home.title')}</h1>
<a href={localePath(locale, '/about/')}>{t(locale, 'nav.about')}</a>