Перейти к основному содержимому

Локализация

Brabo говорит на четырёх языках в документации и интерфейсе, а бразильский португальский — источник и значение по умолчанию обоих продуктов (ADR 0216). Каждый новый текст рождается на pt-BR; остальные языки — его переводы.

Языки и коды​

языккодформы множественного числа (Intl.PluralRules)примечание
Português (Brasil)pt-BRone, many, other (+ обязательный _zero в интерфейсе)источник
Englishenone, otherЗаметки об английском
Русскийruone, few, many, otherЗаметки о русском
简体中文zh-HansotherЗаметки о китайском

Коды одинаковы в 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}.