CLI 没有专门的 ci 命令。要在 CI 中完成本地化,你有两种方式:让 Lingo.dev GitHub App 在服务端自动处理(GitHub 场景下推荐),或者在你自己的流水线中运行 lingo push 并提交结果。
方案 1:GitHub App(推荐)#
在你的仓库中安装 Lingo.dev GitHub App。将它指向已提交的 .lingo/config.json(包含 engineId)后,它就会自动响应 push 和 pull request:检测变更过的源字符串,通过你的引擎完成翻译,并将结果提交回分支,或直接发起 pull request。无需 runner、无需 API key secret,也无需维护 lockfile。
方案 2:在你自己的 runner 中运行 lingo push#
任何支持 Node.js 22+ 的 CI 环境都可以直接运行 CLI。使用 API key 进行身份验证(以 secret 形式存储),执行 push,然后提交输出结果。
yaml
name: Translate
on:
push:
branches: [main]
permissions:
contents: write
jobs:
localize:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm install -g @lingo.dev/cli
- run: lingo push
env:
LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}
- name: Commit translations
run: |
git config user.name "lingo-bot"
git config user.email "support@lingo.dev"
git add .
git diff --cached --quiet || git commit -m "chore: update translations"
git pushlingo push 只会翻译自上次运行以来发生变化的内容(记录在 .lingo/lock.json 中),等待运行完成后再写出结果。若你希望发起 pull request,而不是直接提交到分支,请先将更改推送到专用分支,再使用所在平台的工具(例如 gh pr create)创建 PR。
部署前先验证#
在构建前添加一个 lingo check 步骤;如果有任何源字符串缺少翻译,就让流水线直接失败:
bash
lingo check另请参阅#
- GitHub App - 托管式持续本地化,无需 runner 或 secret。
- lingo push - 作用域模式、
--backfill-missing和重试机制。 - Configuration -
.lingo/config.json和 lockfile。
