跳到主要内容

本地化

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)。

在站点上,语言选择器位于顶部栏(website/docusaurus.config.ts 中的 localeDropdown),使用上表中的标签,并跳转到所选语言的同一页面;每种语言都有自己的路径(/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。

agent 回答所用的语言是另一项偏好,有自己的机制(ADR 0177),不取决于界面语言。

缺失的文本​

  • 在站点中,某个 locale 下没有翻译的页面会在同一地址以 pt-BR 来源提供,顶部的横幅用读者的语言说明这一点。翻译之后来源又发生变化的已翻译页面,会说明翻译日期以及原文已改变。
  • 在界面中,文本不会缺失:键和复数的一致性是被测量的,fallbackLng 是 pt-BR。

每个已翻译页面的 frontmatter 中都带有 traducao_de: <SHA>——它所翻译的来源的最后一次提交。正是它区分“最新”与“过时”。当前的测量见翻译一致性,由 pnpm docs:generate 生成。

侧边栏“参考”中的标签和顶部导航栏的标签来自 website/sidebars.ts 以及各语言的 navbar.json/current.json;自 ADR 0219 起,reference/ 页面的内容(包括生成块)也会翻译,只有平价页面除外。

永不翻译的内容​

  • Brabo,以及术语表中的 agent 名称和角色名称(Criativo、PO、Arquiteto、Dev Lead、Infra Lead、owner、maintainer…);
  • 用户数据(项目名称、消息、构件);
  • 命令、路径、变量名、分支名和事件名;
  • RN 和 ADR 的编号以及锚点 {#rn-NNN}。