Step 1: Elija 'nar proveedor traducción
Ar nt'ot'e funciona ko Azure AI Translator, AWS Translate ne Traducción ar gui Google jár xu̲tha 'nar superficie API unificada. Da 'ñets'i 'nar Honto proveedor ya ejecutar ko ar entrada provider — ar flujo ar 'be̲fi ar comporta idénticamente independientemente ar proveedor; Ho̲ntho ya credenciales 'na'ño. Vea Proveedores traducción pa 'nar comparación nxo̲ge.
Step 2: Añadir credenciales ne 'nar flujo ar 'be̲fi
Almacenar ya credenciales ár proveedor komongu ar secretos repositorio GitHub, xu̲ki da t'ot'e .github/workflows/translate.yml. Seleccione ár proveedor tso̲kwa continuación pa ár configuración específica — resto ar flujo ar 'be̲fi ar idéntica.
Azure AI Translator
Azure ge ar proveedor ya defecto, nä'ä provider to da omitido. Provisione 'nar hño Azure AI Translator jar portal Azure, xu̲ki almacenar yá credenciales:
Almacenar nuya komongu secretos repositorio
TRANSLATOR_KEY— Ar clave suscripción pa ar recurso.TRANSLATOR_ENDPOINT— ar URL ar punto final regional.TRANSLATOR_REGION— región Azure ar recurso.
Añadir ar flujo ar 'be̲fi
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
Da t'ot'e provider aws Prefiere OIDC a través de aws-actions/configure-aws-credentials nja'bu̲ hingi bí almacenan yá secretos duraderos — ya exportaciones bi thogi AWS_REGION pa gí. Pa utilizar teclas estáticas da su lugar, almacenar:
Almacenar nuya komongu secretos repositorio
AWS_ACCESS_KEY_ID— ár ID clave nthogi AWS.AWS_SECRET_ACCESS_KEY— ár clave nthogi nj'ot'i AWS.
'Nar hnini nzäm'bu̲ ar mahyoni — da t'ot'e nä'ä ko awsRegion wa ar variable entorno AWS_REGION.
Añadir ar flujo ar 'be̲fi
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-translationTraducción ar gui Google
Da t'ot'e provider google Autenticar ko 'nar credencial JSON nu hontho wa 'nar clave API — suministrar exactamente 'na:
Almacenar nuya komongu secretos repositorio
GCP_TRANSLATE_CREDENTIALS— 'nar hontho — nu JSON clave (komongu 'nar cadena JSON).GCP_TRANSLATE_API_KEY— wa 'nar clave API Google Cloud.
'Nar googleProjectId opcional ar infiere ar credencial nu'bu̲ ar omite.
Añadir ar flujo ar 'be̲fi
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: Comprometer 'nar archivo recursos fuente
Archivos recursos utilizan ar nkohi Name.<sourceLocale>.<ext>. 'Nar nt'udi Greetings.en.resx bi pa̲ti jar Greetings.fr.resx, Greetings.de.resx ne bí nja'bu̲ bí sucesivamente 'me̲fa 'nar carrera.
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: Inspeccione ar salida
'Nar pa finalizada ar flujo ar 'be̲fi ar nt'ot'e expone hñu salidas nä'ä to cablear ja 'nar descripción PR: summary-title, summary-details ne has-new-translations. 'Nehe 'yot'i 'nar resumen Markdown jar página ar 'be̲fi a través de core.summary.