Step 1: Pêşkêşvanek wergerê hilbijêrin
Çalakî bi Azure AI Translator, AWS Wergere û Wergera Google Cloud li pişt yek rûyê API-yê yê yekbûyî dixebite. Her xebatê bi têketina provider yek dabînkerê hilbijêrin - herikîna kar bêyî ku dabînker be heman tevdigere; Tenê bawername cuda ne. Ji bo berhevdana tevahî li Pêşkêşvanên wergerê binêrin.
Step 2: Nasnameyan û herikîna kar lê zêde bikin
Nasnameyên dabînkerê xwe wekî razên depoya GitHub hilînin, dûv re .github/workflows/translate.yml biafirînin. Ji bo sazkirina wê ya taybetî dabînkerê xwe li jêr hilbijêrin - herikîna mayî heman e.
Azure AI Translator
Azure dabînkerê xwerû ye, ji ber vê yekê provider dibe ku were jêbirin. Çavkaniyek Azure AI Translator di portala Azure de peyda bikin, paşê nasnameyên wê hilînin:
Van wekî razên depoyê hilînin
TRANSLATOR_KEY— mifteya abonetiyê ji bo çavkaniyê.TRANSLATOR_ENDPOINT— URL-ya xala dawîn a herêmî.TRANSLATOR_REGION— Herêma Azure ya çavkaniyê.
Workflow lê zêde bikin
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 Wergere
Li provider saz aws. OIDC-ê bi rêya aws-actions/configure-aws-credentials tercîh bikin da ku razên demdirêj neyên veşartin - hinardekirina gav ji bo we AWS_REGION. Ji bo ku hûn bişkokên statîk bikar bînin, hilînin:
Van wekî razên depoyê hilînin
AWS_ACCESS_KEY_ID— Nasnameya we ya mifteya gihîştina AWS.AWS_SECRET_ACCESS_KEY— mifteya we ya gihîştina veşartî ya AWS.
Herêmek her dem hewce ye - wê bi guhêrbarên hawîrdorê awsRegion an AWS_REGION saz bikin.
Workflow lê zêde bikin
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-translationWergera Google Cloud
Li provider saz google. Bi nasnameya JSON an mifteya API-yê ya karûbarê nasnameyê piştrast bikin - tam yekê peyda bikin:
Van wekî razên depoyê hilînin
GCP_TRANSLATE_CREDENTIALS— mifteya JSON-ê ya karûbar-hesabê (wekî rêzika JSON).GCP_TRANSLATE_API_KEY— an mifteya Google Cloud API.
Dema ku googleProjectId were derxistin ji bawernameyê vebijarkek vebijarkî tê derxistin.
Workflow lê zêde bikin
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: Pelê çavkaniya çavkaniyê pêk bînin
Pelên çavkaniyê peymana Name.<sourceLocale>.<ext> bikar tînin. Mînak Greetings.en.resx piştî bezê dibe Greetings.fr.resx, Greetings.de.resx û hwd.
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: Hilberînê kontrol bikin
Dema ku herikîna kar bi dawî dibe, çalakî sê hilberên ku hûn dikarin di nav danasîna PR-ê de girêbidin derdixe holê: summary-title, summary-details û has-new-translations. Di heman demê de ew bi navgîniya navnîşanê kurteyek Markdown di rûpela kar de dinivîse core.summary.