Step 1: Bir çeviri sağlayıcısı seçin
Bu işlem, Azure AI Translator, AWS Translate ve Google Bulut Çevirisi tek bir birleşik API yüzeyi arkasında çalışır. Her çalışma için provider girdisi ile tek bir sağlayıcı seçin — iş akışı sağlayıcıdan bağımsız olarak aynı şekilde davranır; Sadece kimlik bilgileri farklıdır. Tam karşılaştırma için Çeviri sağlayıcıları bakınız.
Step 2: Kimlik bilgileri ve iş akışı ekleyin
Sağlayıcınızın kimlik bilgilerini GitHub deposu sırları olarak saklayıp .github/workflows/translate.yml oluşturun. Aşağıda sağlayıcınızı seçin, özel kurulumu için — iş akışının geri kalanı aynıdır.
Azure AI Translator
Azure varsayılan sağlayıcıdır, bu yüzden provider atlanabilir. Azure portalında bir Azure AI Translator kaynağı sağla, ardından kimlik bilgilerini sakla:
Bunları depo sırları olarak sakla
TRANSLATOR_KEY— Kaynağın abonelik anahtarı.TRANSLATOR_ENDPOINT— bölgesel uç nokta URL'si.TRANSLATOR_REGION— kaynağın Azure bölgesi.
İş akışını ekle
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | azure: subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }} sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationAWS Translate
provider aws ayarlayın. OIDC'yi aws-actions/configure-aws-credentials üzerinden tercih edin ki uzun ömürlü sırlar saklanmaz — adım ihracat sizin için AWS_REGION. Statik anahtarları kullanmak için şunları kaydedin:
Bunları depo sırları olarak sakla
AWS_ACCESS_KEY_ID— AWS erişim anahtarı kimliğiniz.AWS_SECRET_ACCESS_KEY— AWS gizli erişim anahtarınız.
Her zaman bir bölge gereklidir — onu awsRegion veya AWS_REGION ortam değişkeniyle ayarlayın.
İş akışını ekle
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: id-token: write # for aws-actions/configure-aws-credentials (OIDC) contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::123456789012:role/gh-actions-translate aws-region: us-east-1 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | aws: region: us-east-1 # or rely on AWS_REGION from the step above formality: FORMAL brevity: true sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationGoogle Bulut Çevirisi
provider google ayarlayın. Hizmet hesabı JSON kimlik bilgisi veya API anahtarı ile kimlik doğrulama yapın — tam olarak birini verin:
Bunları depo sırları olarak sakla
GCP_TRANSLATE_CREDENTIALS— bir servis-hesap JSON anahtarı (JSON dizisi olarak).GCP_TRANSLATE_API_KEY— veya Google Cloud API anahtarı olabilir.
Isteğe bağlı bir googleProjectId, belge çıkarıldığında çıkarılır.
İş akışını ekle
name: translate
on: push: branches: [main] paths: - "src/**/*.en.resx" - "src/**/*.en.json"
permissions: contents: write pull-requests: write
jobs: translate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - id: translate uses: IEvangelist/resource-translator@v3 with: provider: | google: # Provide EITHER a service-account JSON credential... credentials: ${{ secrets.GCP_TRANSLATE_CREDENTIALS }} # ...OR an API key: # apiKey: ${{ secrets.GCP_TRANSLATE_API_KEY }} model: nmt sourceLocale: en toLocales: '["fr","de","es"]' - if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} branch: machine-translationStep 3: Bir kaynak kaynak dosyası commit et
Kaynak dosyaları Name.<sourceLocale>.<ext> konvansiyonunu kullanır. Örneğin Greetings.en.resx bir koşudan sonra Greetings.fr.resx, Greetings.de.resx ve benzeri olur.
Step 4: Let smart change detection protect your bill
changeDetection defaults to smart and stores a compact .github/resource-translator-state.json manifest in the repo. Commit that file so future runs can reuse stable translations, preserve manual target edits, and send only new, missing, changed, or settings-invalidated keys to the provider. If localized files already exist, run once with snapshotOnly: true to create the manifest without provider calls.
Step 5: Çıkışı inceleyin
İş akışı bittiğinde, eylem PR açıklamasına bağlayabileceğiniz üç çıktıyı ortaya çıkarır: summary-title, summary-details ve has-new-translations. Ayrıca iş sayfasına core.summary aracılığıyla Markdown özeti yazıyor.