Lingo.dev 让翻译始终与代码保持同步。每次代码变更时,它都会识别发生变化的内容,通过你已连接的 本地化引擎 完成翻译——一致应用术语表规则、品牌语调和按语言区域配置的模型设置——然后提交结果或创建拉取请求。未完成的翻译绝不会进入生产环境。
选择适合你的集成方式#
每种集成方式都有对应的使用指南。请选择与你当前环境匹配的方案:
| 集成方式 | 运行方式 |
|---|---|
| GitHub App | 一次安装即可。Lingo.dev 会在默认分支有 push 时为你自动运行本地化;启用后,也会在拉取请求上运行——无需 runner、无需 API 密钥 secret、无需 lockfile。 |
| GitHub Actions | 通过官方 Action,在你的 GitHub Actions 流水线中运行 CLI。 |
| GitLab CI/CD | 通过官方 Docker 镜像,在 GitLab 流水线中运行 CLI。 |
| Bitbucket Pipelines | 通过官方 Pipe,在 Bitbucket 流水线中运行 CLI。 |
除 GitHub App 外,所有集成方式运行的都是 Lingo.dev CLI——这意味着任何支持 Node.js 的 CI/CD 环境都能直接运行本地化,即使没有官方集成也没问题。
GitHub App 如何工作#
安装应用一次,并在仓库中添加一个 .lingo/config.json。从此以后,Lingo.dev 就会自动为你运行本地化——无需流水线、无需 API 密钥 secret、无需 lockfile:
- 监测变更 —— 默认开箱即用地响应默认分支上的 push;启用
onPullRequest后,也会响应拉取请求,并根据你配置的源文件模式检查变更文件 - 翻译增量内容 —— 将变更后的源内容发送到由
engineId指定的引擎进行翻译 - 将结果写回 GitHub —— 在默认分支 push 时,它会创建或更新翻译拉取请求;在拉取请求中,它会把翻译后的文件提交到 PR 分支,并发布状态评论
- 补漏与分批处理 —— 检测先前运行遗漏的变更,并将超大更新拆分为多个提交
你可以通过审批步骤来控制运行,也可以在拉取请求中使用 /lingo 命令手动触发翻译。完整配置请参阅 GitHub App 指南。
流水线集成如何工作#
GitHub Action、GitLab CI/CD、Bitbucket Pipelines 以及独立 CLI,都以你现有流水线中的一个步骤来运行同一个 Lingo.dev CLI。它们需要两样东西:你的 i18n.json 配置和一个 API 密钥。
每次运行时,集成都会:
- 发现源文件 —— 读取你的 bucket 配置,找到可翻译内容
- 检测变更 —— 对比
i18n.locklockfile,识别新增或修改的字符串,因此只有增量内容会被翻译 - 执行翻译 —— 通过你配置的 本地化引擎 处理变更内容,并应用所有规则——包括术语表、品牌语调和按语言区域设置的模型参数
- 写入结果 —— 直接更新目标语言区域文件
- 提交或创建 PR —— 具体取决于你选择的工作流
由于只翻译发生变化的字符串,因此运行速度快、成本更优——即使要覆盖数十种语言区域也是如此。
工作流选项#
GitHub App#
应用的行为通过 .lingo/config.json 配置:
| 选项 | 作用 |
|---|---|
推送到默认分支(onPushToDefaultBranch) | 默认启用。当源内容变更进入默认分支时,会创建或更新翻译 PR。 |
拉取请求翻译(onPullRequest) | 默认禁用。会随着 PR 的变化,将翻译提交到 PR 分支。 |
审批门禁(requireApproval) | 默认禁用。在自动运行执行翻译前,需要在 check run 中选择 Approve/Deny,或在 PR 上使用 /lingo approve。 |
手动命令(/lingo translate) | 可随时通过 PR 评论为特定文件补跑或强制翻译。 |
完整配置和命令参考请参阅 GitHub App 指南。
GitHub Action、GitLab CI、Bitbucket 和 CLI#
四种工作流模式已覆盖大多数团队的使用场景:
| 工作流 | 触发方式 | 输出 |
|---|---|---|
| 提交到 main | 推送到 main | 翻译直接提交到 main |
| 从 main 创建 PR | 推送到 main | 包含翻译内容的拉取请求 |
| 提交到功能分支 | 推送到功能分支 | 翻译已提交到该分支 |
| 从功能分支创建 PR | 推送到功能分支 | 从该分支发起拉取请求 |
第一种方式——提交到 main——最简单。翻译会自动出现,开发者零干预。基于 PR 的方案则会在翻译合入前增加一个审核步骤。
如需了解如何在这些方案之间做选择,请参阅 高级模式。
