GitHub Actions
GitHub ActionsとLingo.dev CI/CDによるAI翻訳
GitHub Actionsとは?
GitHub Actionsは、GitHubに組み込まれたCI/CD・自動化プラットフォームです。ユーザーはYAMLファイルでワークフローを定義し、コードのビルド、テスト、デプロイ、またはリポジトリイベントによってトリガーされるタスクの自動化を行うことができます。
Lingo.dev CI/CDとは?
Lingo.dev CI/CDは、CI/CD環境でアプリやコンテンツをローカライズするためのAI搭載ツールで、翻訳が常に最新の状態に保たれることを保証します。GitHub向けには、Lingo.devが統合を簡素化するカスタムGitHub Actionを提供しています。
このガイドについて
このガイドでは、Lingo.dev GitHub ActionとLingo.dev Engineを使用してLingo.dev CI/CDをセットアップする方法を説明します。
ステップ 1. Lingo.dev CLIのセットアップ
まず、Lingo.dev CLIのクイックスタートに従ってください。
最終的に以下が揃います:
- Lingo.devのAPIキー
- 翻訳パイプラインの動作を設定する
i18n.jsonファイル npx lingo.dev@latest runでコンテンツを翻訳する機能
ステップ 2. リポジトリシークレットの設定
- Settings > Secrets and variables > Actionsに移動します。
- New repository secretをクリックします。
- Nameフィールドに
LINGODOTDEV_API_KEYと入力します。 - SecretフィールドにLingo.dev APIキーを入力します。
- Add secretをクリックします。
ステップ 3. ワークフローの選択
Lingo.dev CI/CDは、さまざまなワークフローをサポートするために異なる方法でセットアップできます。以下は、推奨するワークフロー(および例を提供するもの)の一部です:
- コンテンツが
mainにマージされた場合、翻訳をmainにコミットする - コンテンツが
mainにマージされた場合、mainからプルリクエストを作成する - コンテンツがフィーチャーブランチにマージされた場合、翻訳をそのブランチにコミットする
- コンテンツがフィーチャーブランチにマージされた場合、そのブランチからプルリクエストを作成する
ただし、「最適な」ワークフローというものは存在しません。すべてにトレードオフがあります。どこから始めればよいかわからない場合は、最初のオプションから始めることをお勧めします。これが最もシンプルで、最も目立たないワークフローです。
ステップ4. ワークフローのセットアップ
-
リポジトリに
.github/workflowsディレクトリを作成します:mkdir -p .github/workflows.githubの先頭に.を必ず含めてください。 -
.github/workflowsディレクトリ内にYAMLファイルを作成します:touch .github/workflows/translate.ymlファイル名は重要ではありません。
-
ワークフロー例のいずれかをファイルにコピーします。
-
ワークフローがプルリクエストを作成する場合:
- 設定 > アクション > 全般に移動します。
- GitHub Actionsによるプルリクエストの作成と承認を許可するを有効にします。
- 保存をクリックします。
-
変更を
mainブランチにコミットしてプッシュします:git add .github/workflows/translate.yml git commit -m "feat: GitHub action for Lingo.dev" git push
(オプション)ステップ5. ワークフローのカスタマイズ
Lingo.dev CI/CDには、ほとんどの場合カスタマイズする必要のないデフォルト値があります。GitHub Actionに入力を渡すことで、これらをオーバーライドできます:
利用可能な入力:
version: Lingo.dev CLIバージョン(デフォルト:"latest")api-key: Lingo.dev Platform APIキー(必須)pull-request: 変更を含むプルリクエストを作成(デフォルト:false)commit-message: カスタムコミットメッセージ(デフォルト:"feat: update translations via @LingoDotDev")pull-request-title: カスタムプルリクエストタイトル(デフォルト:"feat: update translations via @LingoDotDev")commit-author-name: Gitコミット作成者名(デフォルト:"Lingo.dev")commit-author-email: Gitコミット作成者メールアドレス(デフォルト:"[email protected]")working-directory: 作業ディレクトリ(デフォルト:".")process-own-commits: このアクションによって作成されたコミットを処理(デフォルト:false)parallel: 並列モードで実行(デフォルト:false)
カスタム入力を使用した例:
- name: Lingo.dev
uses: lingodotdev/lingo.dev@main
with:
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}
commit-message: "My custom commit message!"
parallel: true
ワークフロー例
mainにコミット
コンテンツがmainにマージされたとき、翻訳をmainにコミットします。
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からのプルリクエスト
コンテンツがmainにマージされたとき、mainからプルリクエストを作成します。
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 }}
フィーチャーブランチへのコミット
コンテンツがフィーチャーブランチにマージされたとき、翻訳をそのブランチにコミットします。
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 }}
フィーチャーブランチからのプルリクエスト
コンテンツがフィーチャーブランチにマージされたとき、そのブランチからプルリクエストを作成します。
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 }}