Localização
O Brabo fala quatro idiomas na documentação e na interface, e o português do Brasil é a fonte e o padrão dos dois produtos (ADR 0216). Todo texto novo nasce em pt-BR; os outros idiomas são traduções dele.
A regra vale para todos os repositórios (ADR 0266,
que substitui o 0260): a
doc dos irmãos também nasce em pt-BR e pode ter traduções em <raiz>/docs/i18n/.
A página de irmão que ainda está em inglês leva idioma_original: en no
frontmatter e segue aceita até ser retraduzida.
Idiomas e códigos
| idioma | código | formas de plural (Intl.PluralRules) |
nota |
|---|---|---|---|
| Português (Brasil) | pt-BR |
one, many, other (+ _zero obrigatório na interface) |
fonte |
| English | en |
one, other | Notas do inglês |
| Русский | ru |
one, few, many, other | Notas do russo |
| 简体中文 | zh-Hans |
other | Notas do chinês |
Os códigos são os mesmos no gerador do site, no i18next, no <html lang> e em
users.locale. A busca local do site usa os dela (pt, en, ru, zh).
No site, o seletor de idioma fica na barra de cima (scripts/docs/site/layout.mjs), com os rótulos acima, e leva à mesma página no
idioma escolhido; cada idioma mora no próprio caminho (/en/, /ru/,
/zh-Hans/; o pt-BR na raiz do degrau).
Resolução do idioma na interface
A escolha gravada na conta vence sempre e nunca é sobrescrita por detecção.
Sem escolha, o idioma do navegador sugere
(resolverIdiomaDoNavegador, apps/web/src/lib/idioma.ts):
pt*→pt-BR;zh,zh-CN,zh-SGezh-Hans*→zh-Hans;ru*→ru;en*→en;- qualquer outro — alemão, chinês tradicional (
zh-TW,zh-Hant) — →pt-BR.
O idioma das RESPOSTAS dos agentes é outra preferência, com mecanismo próprio (ADR 0177), e não depende do idioma da interface.
O texto que falta
- No site, a página sem tradução num locale é servida da fonte pt-BR, no mesmo endereço, e uma faixa no topo DIZ isso no idioma de quem lê. A página traduzida cuja fonte mudou depois da tradução diz a data da tradução e que o original mudou.
- No site, a página de irmão com
idioma_original: ené a própria fonte no/en/, sem faixa; em pt-BR,ruezh-Hanso site serve a MESMA fonte inglesa com a faixa "esta página só existe em inglês". Se o irmão ainda tem a tradução do locale, ela vale nele (estado misto, página a página). - Na interface, o texto não falta: a paridade de chaves e de plurais é
medida no
brabo-web(não neste relatório, ADR 0273), e ofallbackLngé o pt-BR.
Toda página traduzida leva no frontmatter traducao_de: <SHA> — o último
commit da fonte que ela traduz. É ele que separa "em dia" de "defasada". A
medição de hoje, só da doc do brabo (ADR 0273), está em Paridade de tradução,
gerada por pnpm docs:generate.
Os rótulos da lateral de Referência e da barra de cima vêm de scripts/docs/site/navegacao.mjs e do current.json de cada idioma em docs/i18n/<locale>/; desde o ADR 0219 o conteúdo das páginas de reference/ também é traduzido, inclusive o bloco gerado, e só a página de paridade fica fora.
O que nunca se traduz
- Brabo, e os nomes de agente e de papel do glossário
(Criativo, PO, Arquiteto, Dev Lead, Infra Lead,
owner,maintainer…); - dados do usuário (nomes de projeto, mensagens, artefatos);
- comandos, caminhos, nomes de variável, de branch e de evento;
- números de RN e de ADR e as âncoras
{#rn-NNN}.