対象読者: このガイドは、標準のGitHub Actionsの権限が十分なほとんどのパブリックまたはプライベートリポジトリのユーザーを対象としています。組み込みのGITHUB_TOKEN
を利用します。
Co-op Translator GitHub Actionを使用して、リポジトリのドキュメントの翻訳を自動化します。このガイドでは、ソースのMarkdownファイルや画像が変更されたときに、更新された翻訳を含むプルリクエストを自動的に作成するためのアクションの設定方法を説明します。
[!IMPORTANT]
適切なガイドの選択:
このガイドは、標準の
GITHUB_TOKEN
を使用した簡単なセットアップを詳述しています。これは、機密性の高いGitHub App Private Keysを管理する必要がないため、ほとんどのユーザーに推奨される方法です。
GitHub Actionを設定する前に、必要なAIサービスの資格情報を用意してください。
1. 必須: AI言語モデルの資格情報 少なくとも1つのサポートされている言語モデルの資格情報が必要です:
2. オプション: AIビジョンの資格情報(画像翻訳用)
標準のGITHUB_TOKEN
を使用して、リポジトリにCo-op Translator GitHub Actionを設定する手順に従ってください。
GITHUB_TOKEN
の使用)このワークフローは、GitHub Actionsによって提供される組み込みのGITHUB_TOKEN
を使用します。このトークンは、ステップ3で設定された設定に基づいて、リポジトリと対話するための権限をワークフローに自動的に付与します。
AIサービスの資格情報をリポジトリ設定の暗号化されたシークレットとして追加するだけです。
Repository secretsの下で、以下にリストされた各必要なAIサービスシークレットのためにNew repository secretをクリックします。
(画像参照: シークレットを追加する場所を示しています)
必要なAIサービスシークレット(前提条件に基づいて該当するすべてを追加):
シークレット名 | 説明 | 値のソース |
---|---|---|
AZURE_SUBSCRIPTION_KEY |
Azure AIサービス(コンピュータビジョン)のキー | あなたのAzure AI Foundry |
AZURE_AI_SERVICE_ENDPOINT |
Azure AIサービス(コンピュータビジョン)のエンドポイント | あなたのAzure AI Foundry |
AZURE_OPENAI_API_KEY |
Azure OpenAIサービスのキー | あなたのAzure AI Foundry |
AZURE_OPENAI_ENDPOINT |
Azure OpenAIサービスのエンドポイント | あなたのAzure AI Foundry |
AZURE_OPENAI_MODEL_NAME |
あなたのAzure OpenAIモデル名 | あなたのAzure AI Foundry |
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME |
あなたのAzure OpenAIデプロイメント名 | あなたのAzure AI Foundry |
AZURE_OPENAI_API_VERSION |
Azure OpenAIのAPIバージョン | あなたのAzure AI Foundry |
OPENAI_API_KEY |
OpenAIのAPIキー | あなたのOpenAIプラットフォーム |
OPENAI_ORG_ID |
OpenAI組織ID(オプション) | あなたのOpenAIプラットフォーム |
OPENAI_CHAT_MODEL_ID |
特定のOpenAIモデルID(オプション) | あなたのOpenAIプラットフォーム |
OPENAI_BASE_URL |
カスタムOpenAI APIベースURL(オプション) | あなたのOpenAIプラットフォーム |
GitHub Actionは、コードをチェックアウトし、プルリクエストを作成するためにGITHUB_TOKEN
を介して付与された権限を必要とします。
contents: write
とpull-requests: write
の権限がGITHUB_TOKEN
に付与されます。最後に、GITHUB_TOKEN
を使用して自動化されたワークフローを定義するYAMLファイルを作成します。
.github/workflows/
ディレクトリが存在しない場合は作成します。.github/workflows/
内にco-op-translator.yml
という名前のファイルを作成します。co-op-translator.yml
に貼り付けます。name: Co-op Translator
on:
push:
branches:
- main
jobs:
co-op-translator:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install Co-op Translator
run: |
python -m pip install --upgrade pip
pip install co-op-translator
- name: Run Co-op Translator
env:
PYTHONIOENCODING: utf-8
# === AI Service Credentials ===
AZURE_SUBSCRIPTION_KEY: $
AZURE_AI_SERVICE_ENDPOINT: $
AZURE_OPENAI_API_KEY: $
AZURE_OPENAI_ENDPOINT: $
AZURE_OPENAI_MODEL_NAME: $
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: $
AZURE_OPENAI_API_VERSION: $
OPENAI_API_KEY: $
OPENAI_ORG_ID: $
OPENAI_CHAT_MODEL_ID: $
OPENAI_BASE_URL: $
run: |
# =====================================================================
# IMPORTANT: Set your target languages here (REQUIRED CONFIGURATION)
# =====================================================================
# Example: Translate to Spanish, French, German. Add -y to auto-confirm.
translate -l "es fr de" -y # <--- MODIFY THIS LINE with your desired languages
- name: Create Pull Request with translations
uses: peter-evans/create-pull-request@v5
with:
token: $
commit-message: "🌐 Update translations via Co-op Translator"
title: "🌐 Update translations via Co-op Translator"
body: |
This PR updates translations for recent changes to the main branch.
### 📋 Changes included
- Translated contents are available in the `translations/` directory
- Translated images are available in the `translated_images/` directory
---
🌐 Automatically generated by the [Co-op Translator](https://github.com/Azure/co-op-translator) GitHub Action.
branch: update-translations
base: main
labels: translation, automated-pr
delete-branch: true
add-paths: |
translations/
translated_images/
Run Co-op Translator
ステップで、プロジェクトの要件に合わせてtranslate -l "..." -y
コマンド内の言語コードのリストを必ず確認し、修正してください。例のリスト(ar de es...
)は置き換えるか調整する必要があります。on:
): 現在のトリガーはmain
へのプッシュごとに実行されます。大規模なリポジトリの場合、関連するファイル(例: ソースドキュメント)が変更されたときにのみワークフローを実行するためにpaths:
フィルターを追加することを検討してください(YAMLのコメント例を参照)、ランナーミニッツを節約します。Create Pull Request
ステップでcommit-message
、title
、body
、branch
名、labels
をカスタマイズしてください。免責事項: この文書はAI翻訳サービスCo-op Translatorを使用して翻訳されています。正確性を追求していますが、自動翻訳には誤りや不正確さが含まれる可能性があることにご注意ください。元の言語での文書が権威ある情報源と見なされるべきです。重要な情報については、専門の人間による翻訳をお勧めします。この翻訳の使用に起因する誤解や誤解について、当社は責任を負いません。