2 Commits
Author SHA1 Message Date
Lucas RayanandAntigravity d479a8d361 feat(i18n): restrict public routes and metadata to enabled locales
CI / Lint e auditorias (push) Successful in 41s
CI / Trivy (dependências e segredos) (push) Successful in 10s
CI / Imagem Docker (linux/arm64) (push) Successful in 2m5s
- Add ENABLED_LOCALES configuration in i18n/links.js (currently ["pt"])
- Redirect inactive locale prefixes to /pt via 307 in middleware.js
- Restrict root locale negotiation to active locales with fallback to pt
- Hide LanguageSelector when only one locale is enabled
- Generate sitemap, hreflang alternates, and og:locale only for active locales
- Generate static SSG pages only for active locales in build
- Adapt check:i18n and smoke-imagem.sh to validate active vs inactive locales

Co-Authored-By: Antigravity <noreply@google.com>
2026-11-01 12:10:25 -03:00
Lucas RayanandAntigravity fb59015fca feat(i18n): canonical strings, data extraction and validation (phase 2)
CI / Lint e auditorias (push) Failing after 1m11s
CI / Trivy (dependências e segredos) (push) Successful in 27s
CI / Imagem Docker (linux/arm64) (push) Skipped
Implement Phase 2 of i18n spec:
- Extract UI interface strings to messages/pt.json across 15 namespaces
- Extract canonical data files to data/pt/ (series, frameworks, conexoes)
- Create lib/data/pt/ modules (glossario, diagnostico, componentes, topicos)
- Implement lib/data/index.js async data loaders by locale
- Add automated check:i18n script to validate key parity and enforce no-book rules

Co-Authored-By: Antigravity <noreply@google.com>
2026-11-01 09:37:44 -03:00