国际化向导能让项目支持多语言。它会读取你的代码库,根据检测结果自动执行每一步操作,最终生成一个可打开 pull request 的任务。你无需手动输入语言代码或编辑 JSON;只需修改所需内容,且在合并前代码库不会发生任何变动。
所有者和管理员可以运行该向导。从 开始启动它。本地化:选择将项目国际化,或者启动向导在项目行上操作。对于已经支持多语言的项目,设置 → 更改语言会打开同一个向导来提出修改建议。
操作步骤
1. 扫描
Coroid 会在不执行任何代码的情况下读取默认分支,查找目录及其对应的语言、使用的框架,以及代码中直接写入的文本,并按文件统计数量。
- 已找到目录。向导会保留这些目录:Coroid 会添加相关校验规则,并翻译缺失的内容。这一过程称为采纳。
- 尚未找到目录。Coroid 会将代码中的文本移入目录,并用查找引用替换原文本。这一过程称为引入。
- 已完成设置。该项目已有 Coroid 配置,向导会针对该配置提出修改建议。
2. 源语言
产品编写时所用的语言;其他语言均由此语言翻译而来。向导会根据目录内容或代码中的文本推测出源语言。任何语言都可充当源语言:比如瑞典语产品翻译成英语和德语时,流程完全一致。
3. 语言
可逐个挑选语言,也可一次性添加整个市场的语言:使用人数最多的语言、欧洲、北欧、东亚、美洲或者从右向左书写的语言。每种语言都会显示其名称、是否为从右向左书写的语言,以及所需的复数形式数量。
区域变体可通过派生而非翻译得到。比如英式英语由美式英语派生而来且采用英国拼写,瑞士德语由德语派生而来且采用瑞士拼写,因此无需额外成本,还能与母版保持同步。
每一步都基于代码库已有的内容展开。仅修改指定的部分;在pull request被合并前,任何更改都不会生效。
- 扫描
- 源语言
- 语言
- 字符串
- 风格与术语
- 质量与自动化
- 审核
可逐一选择语言,也可直接添加整个目标市场。诸如英式英语之类的地区变体可通过预设规则自动生成,无需重复翻译。
- Deutsch德语 · de · 2复数形式
- Français法语 · fr · 3复数形式
- 日本語日语 · ja · 1复数形式
- العربية阿拉伯语 · ar · 从右到左 · 6复数形式
- British English英国英语 · en-GB · 2复数形式采用英式拼写派生
国际化向导的语言步骤:每种语言标注其书写方向与复数形式,英式英语通过规则派生而来,可一次性添加目标市场。此为示意性数据。
4. 字符串
采纳模式下,可选择由 Coroid 保留并翻译的目录;其键名和结构保持不变。引入模式下,可选择将哪些文件中的文本移入目录;未选中的文件将维持原状。
5. 风格与术语
以上均为可选设置,且适用于所有语言:
- 正式或非正式语气。对于区分正式和非正式称呼的语言,比如德语Sie和du。默认情况下,每种语言的语气会与源文本保持一致。
- 术语按原文保留。产品、品牌和功能名称在所有语言中均保持一致。
- 关于产品介绍。几句话介绍产品及其受众,帮助译者选择合适的词汇。
6. 质量与自动化
默认开启,且后续均可调整:
- 每次变更时检查翻译内容。质量控制中的翻译检查功能会在发现字符串缺失或出错时反馈变更请求。
- 翻译在 Coroid 之外合并的字符串。若有人在未通过 Coroid 的情况下合并新文本,系统会自动生成对应任务进行翻译。
- 每晚应用修正内容。贡献者提出的获批建议会每晚整合成一个 pull request。
- 允许受邀人员提出措辞建议。你邀请的母语使用者可在网站上修正翻译内容。详见 通过建议维护翻译内容。
配置文件会保存最后一次的设置。下次所有者或管理员在 pull request 合并后打开本地化功能时,Coroid 才会启用这些设置,且仅启用一次:后续若关闭某项设置,它将保持关闭状态。
7. 审核
审核内容包含项目概要、任务执行内容、源语言、所用语言及派生语言、翻译量、按原文保留的术语,以及合并后启用的功能。翻译费用按模型使用情况计费,与其他代理任务一致,且每个任务都有费用上限。
选择国际化。Coroid 会生成一个包含规格说明和验收标准的任务,并立即启动该任务。
任务执行内容
- 采纳它会按照向导生成的样式写入配置文件,随后翻译所有缺失的字符串。
- 功能介绍它会关联你的框架,将所选文件的文本移入目录,添加语言路由、回退机制及从右到左排版支持,最后执行翻译。
- 修改操作它会编写新的配置文件,并修复受此次修改影响的翻译内容。
该任务最终会生成一个pull request。一旦它合并到默认分支,所有语言内容就会在本地化中显示出来。
格式说明
Coroid可读取以下格式的目录:
| 格式类型 | 适用场景 |
|---|---|
| ICU JSON | 包含ICU复数和选择规则的消息文件 |
| i18next JSON | i18next及react-i18next目录,包含复数后缀 |
| Vue i18n JSON | vue-i18n消息文件,包含关联消息及管道复数规则 |
| Rails YAML | config/locales/*.yml,支持%{name}插值及复数键 |
| gettext PO | .po文件及.pot模板,包含Plural-Forms每种语言的对应内容 |
| Markdown和MDX | 语言文件夹下的文档页面(docs/en/…):文本、图片描述及选定的前置元数据字段;代码和标记内容保持不变 |
| 自定义设置 | 其他任何格式,只需在仓库中调用小型适配器命令即可支持。 |
配置文件
向导会生成.coroid/i18n.json。它用于描述你的仓库结构,因此会存放在仓库中,并通过拉取请求进行更新:
{
"version": 1,
"cli": { "version": "1.9.0", "sha256": "…" },
"sourceLocale": "en",
"targetLocales": ["de", "fr", "ja", "ar"],
"derivedLocales": [
{ "locale": "en-GB", "from": "en", "rules": "en-gb-spelling" }
],
"catalogs": [
{
"id": "ui",
"format": "i18next-json",
"source": "messages/{locale}.json"
}
],
"protectedTerms": ["Storefront"],
"localeInstructions": {
"de": "Address the reader informally (du)."
}
}cli它会锁定引擎的确切版本及校验和。每次运行时,Coroid都会下载并验证该版本,确保更新不会意外改变输出结果。derivedLocales它会列出规则生成的各区域变体。protectedTerms和localeInstructions会保存你选定的相关内容。 样式与术语。
该文件还可存储词汇表、产品上下文、各语言翻译路径以及贡献者的建议绑定信息。
设置 → 配置文件工作台中的该选项会显示默认分支上的确切文件。若要在此处修改,需编辑提案并选择提议修改:Coroid会开启一个任务,应用该文件并修复受修改影响的翻译内容。若涉及语言和样式调整,使用向导会更加便捷。