用途:为 Apache Airflow UI 添加新语言的翻译或完善、修订已有翻译。
主要能力与流程:
- 判断任务类型:检查 airflow-core/src/airflow/ui/public/i18n/locales/<locale>/ 是否存在,存在则更新,不存在则新建。
- 新建语言:先创建目录,再按字母序更新三处配置——src/i18n/config.ts 的 supportedLanguages、dev/breeze/src/airflow_breeze/commands/ui_commands.py 的 PLURAL_SUFFIXES、.github/boring-cyborg.yml 的标签规则。
- 生成骨架:breeze ui check-translation-completeness --language <locale> --add-missing,将英文命名空间文件复制到新目录,键值填 TODO: translate: 占位符。
- 更新已有翻译:先读该语言的 locale 指南与现有 JSON 以保持术语一致,再用上述命令查询完整性,用 --add-missing 补缺失键、--remove-unused 清理无用键。
- 翻译:替换全部 TODO: translate: 条目,遵守对应语言指南(locales/<code>.md);无指南时遵循全局规则。
- 验证:再次运行完整性检查(应为 0 missing、0 TODO、0 unused、100% 覆盖),并运行 prek run --from-ref main --hook-stage pre-commit 修复格式与 lint。
全局规则:Airflow、Dag、XCom、Provider、REST API、JSON、ID、PID、UTC、Schema 等术语默认保留英文;{{variable}} 插值不得翻译或删除,大小写须保留,可调整顺序;复数按 i18next 后缀(_one、_other 及语言所需的 _zero、_two、_few、_many)提供;hotkey 值不翻译。翻译文件为 JSON,位于 airflow-core/src/airflow/ui/public/i18n/locales/<locale-name>/,命名空间包括 admin、assets、browse、common、components、dag、dags、dashboard、hitl、tasks。已提供指南的语言代码包括 ar、ca、de、el、es、fr、he、hi、hu、it、ja、ko、nl、pl、pt、th、tr、zh-CN、zh-TW。
限制:资料未提供具体翻译文本、价格或平台兼容性信息。