|
ドキュメント
デモを予約プラットフォーム
プラットフォームMCPCLIAPIワークフロー
ガイド変更履歴

継続的ローカリゼーション

  • 仕組み

継続的ローカライゼーション

  • セットアップ

プラットフォーム

  • GitHub App
  • GitHub
  • GitLab CI/CD
  • Bitbucket Pipelines
  • 高度なパターン

高度なパターン

CI/CDローカライズにおける高度なパターン — ワークフローの選定、翻訳の完全性チェック、マージ競合の解消。

ワークフローの選び方#

4つのワークフローパターンで、ほとんどのチーム構成をカバーできます。それぞれ、自動化、レビュー負荷、ブランチ運用のしやすさの面で異なるトレードオフがあります。

ワークフロー最適なケーストレードオフ
main にコミット小規模チーム、手間なく更新したい場合翻訳のレビュー工程がない
main から PR翻訳をレビューしたいチーム手動でのPR承認が必要
feature ブランチにコミット長期間運用する feature ブランチブランチ履歴に翻訳コミットが残る
feature ブランチから PR機能単位で最大限コントロールしたい場合機能ごとに複数のPRを管理する必要がある

GitHub では、Lingo.dev GitHub App がこうしたパターンの大半をサーバー側で処理してくれます。push や PR をトリガーに動作し、翻訳をコミットとして反映し、runner や secret も必要ありません。ローカリゼーションを自社のパイプライン内で実行する場合は、以下の CLI パターンを利用してください。

迷ったら、まずは "main にコミット" から始めるのがおすすめです。もっともシンプルなワークフローで、ブランチの分岐が発生しないため、マージ競合を完全に防げます。

翻訳の完全性チェック#

lingo check コマンドは、新しい翻訳を生成することなく、すべてのコンテンツが翻訳済みかどうかを検証します。未翻訳のコンテンツがある場合は、非ゼロのステータスコードで終了します。

bash
lingo check

未翻訳コンテンツのリリースを防ぐためのデプロイゲートとして活用できます。CLI は npm install -g @lingo.dev/cli でインストールし(Node 22+)、runner は LINGO_API_KEY 環境変数で認証します。

yaml
name: Check translations
on: [push, pull_request]
jobs:
  check:
    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 check
        env:
          LINGO_API_KEY: ${{ secrets.LINGO_API_KEY }}

マージ競合の解消#

マージ競合は、ブランチ間で .lingo/lock.json ファイルの内容がずれたときに発生します。多くの場合、別々のブランチで翻訳が独立して更新されたことが原因です。

予防策#

翻訳用に feature ブランチを使うのではなく、翻訳を直接 main にコミットすれば、lockfile の競合を完全に回避できます。

マージで解消する#

1

マージを開始する

bash
git merge <branch-name>
2

競合している lockfile を削除する

bash
rm .lingo/lock.json
3

マージを完了する

bash
git add .
git merge --continue
4

lockfile を再生成する

bash
lingo push

lingo push を実行すると、通常の同期処理の一環として、現在のソースファイルの状態をもとに .lingo/lock.json が再構築されます。

rebase で解消する#

この方法は rebase でも同様に有効です。競合解消の各ステップで .lingo/lock.json を削除し、rebase を続行して、最後に lingo push を実行して lockfile を再生成します。

bash
git rebase <branch-name>
# On each conflict: rm .lingo/lock.json && git add . && git rebase --continue
lingo push

次のステップ#

GitHub App
runner なしで GitHub のローカリゼーションを自動化
lingo push
ソースコンテンツと翻訳を同期
仕組み
CI/CDローカライズパイプライン
セットアップ
プロジェクト向けに CI/CD を設定する

このページは役に立ちましたか?

Max PrilutskiyMax Prilutskiy·更新済み 29日前·2分で読めます