Aller au contenu

Astro i18n Next

Routage d'URL traduites, localisation de contenu, markdown multilingue et intégration i18next — le tout via un seul appel à createI18n().

Fonctionnalités

Routage d'URL Traduites

Chemins avec préfixe de langue automatiques pour toutes vos pages. /about/ devient /es/sobre/ — sans slugs dynamiques ni routes catch-all.

Module Virtuel

Importez t, localePath, switchLocalePath et plus depuis virtual:i18n. Un seul import, tous les helpers i18n dont vous avez besoin.

Markdown Multilingue

Écrivez toutes les langues dans un seul fichier markdown avec un frontmatter YAML et des marqueurs <!-- locale:es --> dans le corps. Propulsé par l’API Content Loader d’Astro 5.

Intégration i18next

Support complet d’i18next avec clés en notation pointée, chaînes de fallback et extensibilité via plugins (ICU, interpolation et plus).

Traduction de Slugs de Page

Exportez slugs depuis les pages .astro pour définir des segments d’URL par langue. Découverts automatiquement lors de la compilation — aucune configuration nécessaire.

Entièrement Statique

Conçu pour la sortie statique d’Astro. Toutes les routes sont pré-rendues sans surcharge à l’exécution.

Exemple Rapide

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',
})],
});
---
// N'importe quel composant .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>