Step 1: Chwazi yon founisè tradiksyon
Aksyon an travay ak Azure AI tradiktè, AWS Tradui ak Google Cloud Tradiksyon dèyè yon sèl sifas API inifye. Chwazi yon founisè sèl pou chak kouri ak opinyon an provider - workflow la konpòte yo menm jan kèlkeswa founisè a; Se sèlman kalifikasyon yo diferan. Gade Founisè tradiksyon yo pou yon konparezon konplè.
Step 2: Ajoute kalifikasyon ak yon workflow
Sere kalifikasyon founisè ou kòm sekrè depo GitHub, Lè sa a, kreye .github/workflows/translate.yml. Chwazi founisè ou anba a pou konfigirasyon espesifik li yo - rès la nan workflow la idantik.
Azure AI tradiktè
Azure se founisè a default, kidonk provider ka omisyon. Pwovizyone yon resous Azure AI Translator nan Azure Portal, Lè sa a, magazen kalifikasyon li yo:
Sere sa yo kòm sekrè depo
TRANSLATOR_KEY— kle abònman nan resous la.TRANSLATOR_ENDPOINT— URL ekstremite rejyonal la.TRANSLATOR_REGION— Resous la rejyon Azure.
Ajoute workflow la
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 Tradui
Mete provider aws Pito OIDC via aws-actions/configure-aws-credentials se konsa pa gen sekrè ki viv lontan ki estoke — ekspòtasyon etap la AWS_REGION pou ou. Pou itilize kle estatik olye, magazen an:
Sere sa yo kòm sekrè depo
AWS_ACCESS_KEY_ID— ID kle aksè AWS ou.AWS_SECRET_ACCESS_KEY— kle aksè sekrè AWS ou a.
Yon rejyon se toujou obligatwa — mete li ak awsRegion oswa varyab anviwònman an AWS_REGION.
Ajoute workflow la
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 Cloud Tradiksyon
Mete provider google Otantifye ak swa yon sèvis kont JSON kalifikasyon oswa yon kle API — bay egzakteman yon sèl:
Sere sa yo kòm sekrè depo
GCP_TRANSLATE_CREDENTIALS— yon sèvis-kont JSON kle (kòm yon JSON string).GCP_TRANSLATE_API_KEY— oswa yon kle API Google Cloud
Yon googleProjectId si ou vle dedwi soti nan kalifikasyon an lè li omite.
Ajoute workflow la
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: Komèt yon dosye resous sous
Dosye resous yo itilize konvansyon Name.<sourceLocale>.<ext> Pou egzanp Greetings.en.resx vin Greetings.fr.resx, Greetings.de.resx ak sou sa apre yon kouri.
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: Enspekte pwodiksyon an
Yon fwa workflow la fini, aksyon an ekspoze twa pwodiksyon ou ka fil nan yon deskripsyon PR: summary-title, summary-details, ak has-new-translations. Li ekri tou yon rezime Markdown nan paj travay la atravè core.summary.