Локализация
Brabo говорит на четырёх языках в документации и интерфейсе, а бразильский португальский — источник и значение по умолчанию обоих продуктов (ADR 0216). Каждый новый текст рождается на pt-BR; остальные языки — его переводы.
Языки и коды
| язык | код | формы множественного числа (Intl.PluralRules) | примечание |
|---|---|---|---|
| Português (Brasil) | pt-BR | one, many, other (+ обязательный _zero в интерфейсе) | источник |
| English | en | one, other | Заметки об английском |
| Русский | ru | one, few, many, other | Заметки о русском |
| 简体中文 | zh-Hans | other | Заметки о китайском |
Коды одинаковы в Docusaurus, в i18next, в <html lang> и в
users.locale. Локальный поиск сайта использует свои (pt, en, ru, zh).
На сайте переключатель языка находится в верхней панели (localeDropdown в
website/docusaurus.config.ts), с метками выше, и ведёт на ту же страницу на
выбранном языке; каждый язык живёт по своему пути (/en/, /ru/,
/zh-Hans/; pt-BR — в корне ступени).
Разрешение языка в интерфейсе
Выбор, записанный в учётной записи, всегда побеждает и никогда не перезаписывается обнаружением.
Без выбора язык браузера подсказывает
(resolverIdiomaDoNavegador, apps/web/src/lib/idioma.ts):
pt*→pt-BR;zh,zh-CN,zh-SGиzh-Hans*→zh-Hans;ru*→ru;en*→en;- любой другой — немецкий, традиционный китайский (
zh-TW,zh-Hant) — →pt-BR.
Язык ОТВЕТОВ агентов — другое предпочтение, с собственным механизмом (ADR 0177), и он не зависит от языка интерфейса.
Недостающий текст
- На сайте страница без перевода на какую-либо локаль отдаётся из источника pt-BR, по тому же адресу, и полоса наверху ГОВОРИТ об этом на языке читателя. Переведённая страница, источник которой изменился после перевода, сообщает дату перевода и то, что оригинал изменился.
- В интерфейсе текст не отсутствует: паритет ключей и форм множественного числа
измеряется, а
fallbackLng— pt-BR.
Каждая переведённая страница несёт во frontmatter traducao_de: <SHA> — последний
коммит источника, который она переводит. Именно он отделяет "актуальную" от "устаревшей".
Сегодняшнее измерение — в Paridade de tradução,
генерируемом pnpm docs:generate.
Подписи раздела «Справочник» в боковой панели и пунктов верхней панели берутся из website/sidebars.ts и из navbar.json/current.json каждого языка; с ADR 0219 содержимое страниц reference/ тоже переводится, включая сгенерированный блок, и вне перевода остаётся только страница паритета.
Что никогда не переводится
- Brabo и имена агентов и ролей из глоссария
(Criativo, PO, Arquiteto, Dev Lead, Infra Lead,
owner,maintainer…); - данные пользователя (имена проектов, сообщения, артефакты);
- команды, пути, имена переменных, веток и событий;
- номера RN и ADR и якоря
{#rn-NNN}.