Step 1: Roghnaigh soláthraí aistriúcháin
Oibríonn an gníomh le Azure AI Translator, AWS Aistrigh, agus Aistriúchán Google Cloud taobh thiar de dhromchla API aontaithe amháin. Roghnaigh soláthraí amháin in aghaidh an rith leis an ionchur provider - iompraíonn an sreabhadh oibre mar an gcéanna beag beann ar an soláthraí; Ní hionann ach na dintiúir a dhéanamh. Féach Soláthraithe aistriúcháin le haghaidh comparáid iomlán.
Step 2: Cuir dintiúir agus sreabhadh oibre leis
Stóráil dintiúir do sholáthraí mar rúin stór GitHub, ansin cruthaigh .github/workflows/translate.yml. Roghnaigh do sholáthraí thíos dá shocrú sonrach - tá an chuid eile den sreabhadh oibre mar an gcéanna.
Azure AI Translator
Is é Azure an soláthraí réamhshocraithe, mar sin d'fhéadfaí provider a fhágáil ar lár. Soláthraigh acmhainn Azure AI Translator sa tairseach Azure, ansin stóráil a dhintiúir:
Stóráil iad seo mar rúin stórtha
TRANSLATOR_KEY— an eochair síntiúis don acmhainn.TRANSLATOR_ENDPOINT— an URL críochphointe réigiúnach.TRANSLATOR_REGION— réigiún Azure na hacmhainne.
Cuir an sreabhadh oibre leis
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 Aistrigh
Socraigh provider go aws. B'fhearr leat OIDC trí aws-actions/configure-aws-credentials ionas nach stóráiltear rúin fhadsaoil - AWS_REGION easpórtálacha céime duitse. Chun eochracha statacha a úsáid ina ionad, stóráil:
Stóráil iad seo mar rúin stórtha
AWS_ACCESS_KEY_ID— d'aitheantas eochair rochtana AWS.AWS_SECRET_ACCESS_KEY— d'eochair rochtana rúnda AWS.
Tá réigiún ag teastáil i gcónaí - socraigh é le awsRegion nó leis an athróg timpeallachta AWS_REGION.
Cuir an sreabhadh oibre leis
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-translationAistriúchán Google Cloud
Socraigh provider go google. Fíordheimhnigh le dintiúr JSON cuntas seirbhíse nó eochair API - soláthraigh ceann amháin:
Stóráil iad seo mar rúin stórtha
GCP_TRANSLATE_CREDENTIALS— eochair JSON cuntais seirbhíse (mar teaghrán JSON).GCP_TRANSLATE_API_KEY— nó eochair API Google Cloud.
Baintear googleProjectId roghnach as an dintiúr nuair a fhágtar ar lár é.
Cuir an sreabhadh oibre leis
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: Comhad acmhainne foinseacha a thiomnú
Baineann comhaid acmhainne úsáid as an gcoinbhinsiún Name.<sourceLocale>.<ext>. Mar shampla, éiríonn Greetings.en.resx Greetings.fr.resx, Greetings.de.resx, agus mar sin de tar éis rith.
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: Déan iniúchadh ar an aschur
Nuair a chríochnaíonn an sreabhadh oibre, nochtann an gníomh trí aschur is féidir leat a shreangú isteach i gcur síos PR: summary-title, summary-details, agus has-new-translations. Scríobhann sé achoimre Markdown isteach sa leathanach poist trí core.summary.