|
文档
预约演示平台
平台MCPCLIAPI工作流
指南更新日志

持续本地化

  • 工作原理
  • 设置

平台

  • GitHub App
  • GitHub Actions
  • GitLab CI/CD
  • Bitbucket Pipelines
  • 高级实践

GitHub Actions

官方 Lingo.dev GitHub Action 会在每次 push 时运行本地化流水线,并根据你的工作流,直接提交翻译结果或发起拉取请求。

更想用托管方案?

GitHub App 是在 GitHub 上实现持续本地化的最省心方式——安装一次后,它就能响应 push 和拉取请求,无需 runner、无需 API key secret,也无需 lockfile。若你希望翻译在自有流水线中与其他 CI 步骤一同运行,则请使用 GitHub Action(见下文)。

前提条件

请先完成 CI/CD Setup。你需要一个可正常使用的 i18n.json 和 LINGODOTDEV_API_KEY,并将它们保存为仓库 secret。

最简配置#

创建 .github/workflows/translate.yml:

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

这样一来,每次 push 时都会将翻译直接提交到 main。

工作流示例#

提交到 main#

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

从 main 发起拉取请求#

yaml
name: Translate
on:
  push:
    branches: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
          pull-request: true
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

如果使用基于 PR 的工作流,请启用 Settings > Actions > General > Allow GitHub Actions to create and approve pull requests。

提交到功能分支#

yaml
name: Translate
on:
  push:
    branches-ignore: [main]
permissions:
  contents: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

从功能分支发起拉取请求#

yaml
name: Translate
on:
  push:
    branches-ignore: [main]
permissions:
  contents: write
  pull-requests: write
jobs:
  translate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Lingo.dev
        uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
          pull-request: true
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

可用输入参数#

输入参数默认值说明
api-key必填Lingo.dev API key
pull-requestfalse创建拉取请求,而非直接提交
commit-messagefeat: update translations via @LingoDotDev自定义提交信息
pull-request-titlefeat: update translations via @LingoDotDev自定义 PR 标题
commit-author-nameLingo.devGit 提交作者名称
commit-author-emailsupport@lingo.devGit 提交作者邮箱
working-directory.monorepo 的工作目录
process-own-commitsfalse处理由此 Action 创建的提交
parallelfalse以并行模式运行
versionlatestLingo.dev CLI 版本

下一步#

GitHub App
托管式替代方案——无需 runner、secret 或 lockfile
高级模式
翻译检查、合并冲突、工作流选择
GitLab CI/CD
配置 GitLab CI/CD 集成
Bitbucket Pipelines
配置 Bitbucket Pipelines 集成

这个页面对你有帮助吗?

Max PrilutskiyMax Prilutskiy·已更新 24 天前·2 分钟阅读