Pular para o conteúdo

Internacionalização

Por decisão arquitetural estratégica (consulte ADR-012 e ADR-024 em DECISIONS.md), este portal opera nativamente com arquitetura monolíngue direta na raiz focada em Português do Brasil (pt-BR).

Essa escolha elimina fricção de SEO nacional, evita prefixos artificiais nas URLs (/cursos, /calendario, /noticias, /sobre, /contato) e proporciona máxima simplicidade para a equipe escolar gerenciar o portal através do Pages CMS sem campos redundantes de idioma.

Como as Traduções de Interface São Organizadas

Section titled “Como as Traduções de Interface São Organizadas”

Embora o site opere em pt-BR, os textos fixos de interface e componentes continuam estruturados de forma modular em src/i18n/:

  1. Dicionários Semânticos: Os textos residem em src/i18n/pt-BR.json (com espelho de compatibilidade em src/i18n/en.json);
  2. Helper t(): Acesso tipado aos textos através da função utilitária t():
---
import { t } from "../i18n/ui";
const locale = (Astro.currentLocale || "pt-BR") as "pt-BR";
---
<p>{t(locale, "nav.home")}</p>
  1. Fallback Automático: Caso alguma chave não seja encontrada, o helper retorna a própria chave, evitando quebras em tempo de execução.

Expansão Sob Demanda para Múltiplos Idiomas

Section titled “Expansão Sob Demanda para Múltiplos Idiomas”

Se no futuro houver necessidade de suporte a outros idiomas:

  1. Configuração de Locales em astro.config.ts: Ative o roteamento i18n nativo do Astro definindo os idiomas desejados:

    i18n: {
    defaultLocale: "pt-BR",
    locales: ["pt-BR", "en"],
    }
  2. Dicionários em src/i18n/: Adicione as novas chaves no respectivo arquivo de tradução (ex.: src/i18n/en.json) e registre em src/i18n/ui.ts.

  3. Validação Automatizada: Execute a validação contínua para garantir que os dicionários possuam exatamente as mesmas chaves:

    Terminal window
    pnpm run validate:i18n

A validação de dicionários é executada automaticamente pelo pipeline de CI (pnpm run lint).