Coroid 使用其用于自身十三种语言的同一引擎来翻译您的产品。您的目录文件仍存储在代码库中。对它们的每次更改都会生成一项任务和一条 pull request,只有新增、变更或损坏的字符串才会被发送给模型。
本地化是全球化位于主菜单中。打开对应项目后会显示其工作台:左侧为各个分区,旁边为已打开的分区。尚未支持多语言的项目会从国际化向导。
工作台
| 分区 | 其功能用途 |
|---|---|
| 概览 | 查看每种语言的进度,以及用于翻译缺失内容的操作步骤。 |
| 字符串 | 列出每种语言下的所有字符串,并筛选出需要处理的内容。 |
| 建议 | 来自贡献者的修改建议,等待最终确认。 |
| 交换 | 供第三方机构、翻译工具和电子表格使用的文件,以及对应的回译内容。 |
| 贡献者 | 有权提出文本建议的人员及其支持的语言。 |
| 自动化任务 | 每晚都会应用相关修改,同时也会处理在 Coroid 之外合并的字符串翻译。 |
| 设置 | 语言、全球化检查、访问权限与费用,以及配置文件。 |
建议、贡献者和自动化任务相关内容详见通过建议维护翻译内容。在这些分区上方、国际化栏目下,侧边栏会显示全球就绪性与文化适配。
工作台会读取默认分支中的目录文件。一旦这些文件发生更改,下次有人打开项目时 Coroid 会重新读取它们;在此之前,概览页面会显示正在读取的状态。Coroid 绝不会运行代码库中的代码来完成此操作。使用自定义适配器的目录文件不会被显示;但它们的字符串仍会在任务中被检查。
概览:每种语言对应一行
概览页面首先显示四项总计数据:字符串数量、语言数量、已翻译比例,以及需要处理的字符串数。其下方,每种语言会沿一条横线经历三个阶段:
- 国际化。该语言的目录文件已存在且包含相应字符串。
- 本地化。每条字符串都从当前源文本翻译而来。
- 验证。没有损坏的字符串:每条字符串都能正常解析,保留源文本的占位符,且具备对应语言所需的复数形式。
一种语言的下一步进度由其所在横线位置决定。绿色节点表示已完成,青色圆环表示需继续处理的节点,琥珀色节点则表示存在损坏的字符串。
- 全球就绪假设单一语言的代码
- 文化各市场的预期差异
- 概览展示每种语言的当前状态
- 字符串涵盖所有语言下的每条字符串
- 建议等待最终决策
- 交换用于其他工具的文件
- 贡献者可提出措辞建议的人员
- 自动化夜间及合并时自动执行的任务
- 设置语言、访问权限及相关开销设置
每种语言都要经历三个阶段。其下一步取决于当前所处的处理环节。
- English英语 · en · 来源
1,240字符串位于3目录中
- Deutsch德语 · de100%完成通过
- Français法语 · fr98%18 缺少多个字符串通过
- 日本語日语 · ja96.3%42 缺少多个字符串3 损坏的字符串组
- العربية阿拉伯语 · ar94.6%64 缺少多个字符串通过
- British English英国英语 · en-GB · 源自 英语100%派生且最新通过
工作台概览:每种语言沿国际化、本地化及验证流程排列,清晰呈现阻碍进展的缺口。此为示意性数据。
下方的条形图对应本地化条形图从起点开始显示:深绿色代表人工审核通过的字符串,浅绿色代表模型生成的字符串,琥珀色代表需注意的字符串,空白部分则对应缺失的字符串。条形图下方的文字会标注具体差距,例如缺失42条字符串,并直接打开这些字符串。
通过规则从另一种语言派生出的语言,例如从美式英语派生的英式英语,在应用完所有规则后会被标记为派生且已更新。
翻译缺失的内容
所有者和管理员在概览页面顶部会看到一项操作:翻译,旁边会注明需要处理的字符串数量:缺失的、源文本已更改的,或已损坏的字符串。它会在工作台中分两步完成翻译:
- 翻译记忆库。如果贵组织其他项目中使用完全相同的源文本翻译过某条字符串,系统会直接复用已有的译文。人工翻译的优先级高于机器翻译。此过程无需调用模型,也不产生额外费用。
- 翻译模型。代码库中指定的引擎会通过翻译网关翻译剩余字符串,同时会验证每条回复是否符合占位符和复数形式要求。
翻译过程中,总计数据下方的面板会显示已生成的字符串数量和本次翻译消耗的资源,每种语言的条形图会随着字符串的生成逐渐填充条纹图案。停止翻译会终止翻译流程;已生成的内容将予以保留。
- 全球就绪假设单一语言的代码
- 文化各市场的预期差异
- 概览展示每种语言的当前状态
- 字符串涵盖所有语言下的每条字符串
- 建议等待最终决策
- 交换用于其他工具的文件
- 贡献者可提出措辞建议的人员
- 自动化夜间及合并时自动执行的任务
- 设置语言、访问权限及相关开销设置
每种语言都要经历三个阶段。其下一步取决于当前所处的处理环节。
目前已写入的字符串:71 / 133
从翻译记忆库中复用内容,无需额外成本:26 · US$0.04 已消耗,未超出 US$5.00 限额
- Deutsch德语 · de完成
- Français法语 · fr翻译内容已准备就绪,可提交:24
- 日本語日语 · ja正在翻译:已写入 28 / 45
- العربية阿拉伯语 · ar正在翻译:已写入 19 / 64
机器翻译运行期间的概览:印刷机正常运转,各语言文本随字符串传入而填充,翻译记忆库会匹配其他项目已有的表述。此为示意性数据。
翻译结果不会直接写入代码库。它们会等待提交与其他更改一同提交,并标记为机器翻译,以便您在字符串中先进行检查。若某条字符串已被他人编辑,或有贡献者提出了建议,则相关内容会保留给原编辑者或贡献者处理。
字符串
字符串列出每条字符串的源文本及其在某种语言下的对应值。该页面会在需处理:包含缺失、源文本已更改、存在错误,或与源文本完全一致的字串。可选择其他语言、目录,或搜索键名和文本内容。
| 状态 | 含义 |
|---|---|
| 缺失 | 该字串没有对应译文 |
| 源文本已更改 | 该字串翻译完成后源文本发生了变动 |
| 存在错误 | 该译文无法解析、占位符与源文本不一致,或其复数形式不符合目标语言规范 |
| 与源文本一致 | 该译文与源文本完全相同 |
| 机器生成 | 由模型生成,尚未经过人工审核 |
| 已审核 | 由人工编写或修改 |
| 派生 | 由规则根据其他语言生成 |
选择一个字串即可查看其在各语言中的译文。占位符和标记会以锁定状态的小标签呈现,因为它们必须完全保留在译文中。针对所选语言,详情还会显示该译文的编写者、存在的问题,以及若为复数消息则显示该语言所需的复数形式。
- 全球就绪假设单一语言的代码
- 文化各市场的预期差异
- 概览展示每种语言的当前状态
- 字符串涵盖所有语言下的每条字符串
- 建议等待最终决策
- 交换用于其他工具的文件
- 贡献者可提出措辞建议的人员
- 自动化夜间及合并时自动执行的任务
- 设置语言、访问权限及相关开销设置
涵盖所有语言的全部字符串。通过筛选功能可快速定位需要处理的内容。
| 源文本 | 日本語 |
|---|---|
| Total: {amount} | 合計: {price}内容有误 |
| Your cart is empty | 暂未翻译缺失 |
| Welcome back, {name} | 暂未翻译缺失 |
| Prices include <b>VAT</b> | 価格には<b>消費税</b>が含まれます内容有误 |
| Weekly deals | 暂未翻译缺失 |
- 日本語 · 日语内容有误合計: {price}
由模型生成 · 占位符与源文本不符
- Deutsch已审核Gesamt: {amount}
- Français机器生成Total : {amount}
- العربية机器生成الإجمالي: {amount}
- British English派生内容Total: {amount}
工作台中的字符串,筛选出的需处理的日语字符串;打开的字符串会显示其占位符作为锁定芯片,以及各语言的对应值。此为示意性数据。
编辑并提交
所有者和管理员可在Strings中修改译文。字串。选择一个字串,然后选择编辑对应语言的译文,随后保存修改。编辑器会将源文本中的占位符以可插入的小标签形式展示,并会在您输入时实时校验:占位符、该语言所需的复数形式、术语表中的术语以及文本长度。保存时,Coroid会再次依据默认分支校验译文。
建议编辑器中的“建议”功能会为该字串提供译文:若其他项目已有对应译文则从翻译记忆库调取,否则由Translator模型生成。选择使用此译文将其填入编辑器;在您保存修改前不会真正保存译文。
已保存的修改会显示在字串下方的栏中,您可在其中审核或丢弃每条修改。提交会将所有修改、经认可的贡献者建议以及机器生成的译文合并为单个任务。该任务会使用指定的引擎应用这些译文,并生成一个pull request。一次提交最多可处理5000条修改;剩余的修改需等待下一次提交。在该pull request合并前,字串会显示为未提交或正在应用。
已提交的机器生成译文会保留在引擎缓存中,因此仍会被标记为机器生成直到有人工审核为止。
若要启用编辑功能,需在配置文件中开启贡献权限;国际化向导默认会开启该功能。贡献者也可建议更优的表述在您自己的站点上使用。
交换文件
在交换,下载用于代理机构、翻译工具或电子表格的字符串,再将翻译结果导入回去。
| 格式 | 每个文件的语言数量 | 适用于 |
|---|---|---|
| XLIFF 1.2和2.0 | 一种 | 翻译工具和代理机构;占位符会以锁定标签的形式呈现 |
| Gettext PO | 一种 | Poedit、Weblate及其他Gettext工具 |
| CSV和Excel | 所有语言 | 电子表格,各语言内容并列显示 |
| JSON | 一种 | 键和翻译内容 |
| Apple String Catalog | 所有语言 | Xcode |
| Apple .strings | 一种 | Xcode项目 |
| Android strings.xml | 一种 | Android Studio |
| Flutter ARB | 一种 | Flutter |
导出文件包含需要处理的字符串或全部字符串。占位符和复数消息会原样保留。
导入操作会在保存任何内容前展示每一行数据。可以接受新翻译和变更内容。Coroid会过滤掉项目中不存在的键、源自已变更源文本的翻译、损坏的占位符,以及缺少该语言所需形式的复数消息。被接受的行会变成等待提交的变化。提交,如同在字符串。
JSON、.strings和Android文件不会标注所含语言。Coroid会从文件名中提取语言信息,例如storefront-de.json,否则会询问用户。
检查每一项变更
该全球化检查它在任务检查和拉取请求阶段运行,会核查变更涉及的所有语言的字符串以及新增的代码。在概览页面中,查看上次检查结果位于验证它会打开最新的运行记录。当翻译查找结果阻塞了任务时,开发者智能体会通过针对该任务的翻译会话来修复问题;它绝不会手动编辑其他语言的词库。
翻译模型
翻译功能在 AI 配置文件中拥有独立的角色,翻译员,与架构师、开发者、质检员和审核员并列。默认情况下它使用Hy-MT2翻译模型,在贵组织策略允许的范围内会以GPT-6 Luna作为备用模型。可像调整其他角色一样,在 AI 配置文件中修改其映射关系。
该引擎还会按大小对字符串进行批量处理,验证每条回复是否符合贵组织的占位符和复数规则,若字符串校验失败则会重试或升级处理。
费用
所有套餐均提供翻译功能。翻译请求会通过 Coroid 的翻译网关发送,产生的费用会计入贵组织的模型使用费,与智能体运行费用一致。翻译任务与其他任务一样,会占用套餐规定的智能体运行时长。
采用默认的翻译员路由时,每1000个字符串每种语言的翻译成本约为两美分。我们实测发现,将包含2000个字符串的词库翻译成10种语言的成本约为0.33美元。
- 仅变更内容会产生费用。该引擎会以源文本为键缓存数据,因此未变更的字符串无需再次发送。
- 每个任务和每次运行都有翻译数量限制。任务的会话会在达到花费上限后停止,默认上限为1美元;翻译工作区中的运行会在花费达到5美元时停止。项目可在 设置 → 访问与花费 中设置更低的上限。设置 → 访问与花费。
- 翻译记忆库不收取任何费用。贵组织在其他地方已翻译的字符串会被直接复用,无需调用模型。
- 读取操作不收取任何费用。工作区和全球化检查功能会读取词库,但不会发起模型调用。
在 Coroid 之外进行翻译
该引擎是一款命令行工具,coroid-i18n。贵方的CI系统可以运行相同版本的工具,并使用自有的OpenRouter密钥。在 Coroid 内部,任务始终通过翻译网关处理,因此费用和限制都集中管理。