Pular para o conteúdo

Astro i18n Next

Roteamento com URLs traduzidas, localização de conteúdo, markdown multilíngue e integração com i18next — tudo através de uma única chamada a createI18n().

Funcionalidades

Roteamento com URLs Traduzidas

Caminhos com prefixo de idioma automáticos para todas as suas páginas. /about/ se torna /es/sobre/ — sem slugs dinâmicos ou rotas catch-all.

Módulo Virtual

Importe t, localePath, switchLocalePath e mais de virtual:i18n. Uma importação, todos os helpers de i18n que você precisa.

Markdown Multilíngue

Escreva todos os idiomas em um único arquivo markdown com frontmatter YAML e marcadores <!-- locale:es --> no corpo. Alimentado pela API Content Loader do Astro 5.

Integração com i18next

Suporte completo ao i18next com chaves em notação de ponto, cadeias de fallback e extensibilidade via plugins (ICU, interpolação e mais).

Tradução de Slugs de Página

Exporte slugs de páginas .astro para definir segmentos de URL por idioma. Descobertos automaticamente no build — sem configuração necessária.

Totalmente Estático

Projetado para a saída estática do Astro. Todas as rotas são pré-renderizadas sem overhead em tempo de execução.

Exemplo 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',
})],
});
---
// Qualquer 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>