Step 1: Pumili ng isang tagapagbigay ng pagsasalin
Ang pagkilos ay gumagana sa Azure AI Translator, Email Address *, at Pagsasalin ng Google Cloud sa likod ng isang pinag-isang API surface. Pumili ng isang solong provider sa bawat run gamit ang input ng provider - ang daloy ng trabaho ay kumikilos nang magkapareho anuman ang provider; Ang mga kredensyal lamang ang naiiba. Tingnan ang Mga tagapagbigay ng pagsasalin para sa isang kumpletong paghahambing.
Step 2: Magdagdag ng mga kredensyal at isang daloy ng trabaho
Mag-imbak ng mga kredensyal ng iyong provider bilang mga lihim ng repositoryo ng GitHub, pagkatapos ay lumikha ng .github/workflows/translate.yml. Piliin ang iyong provider sa ibaba para sa tukoy na pag-setup nito - ang natitirang bahagi ng daloy ng trabaho ay magkapareho.
Azure AI Translator
Ang Azure ay ang default na provider, kaya maaaring alisin provider. Maglalaan ng isang mapagkukunan ng Azure AI Translator sa Azure portal, pagkatapos ay mag-imbak ng mga kredensyal nito:
Itabi ang mga ito bilang mga lihim ng repositoryo
TRANSLATOR_KEY— Ang susi ng subscription para sa mapagkukunan.TRANSLATOR_ENDPOINT— Ang URL ng Endpoint ng Rehiyon.TRANSLATOR_REGION— Ang rehiyon ng Azure ng mapagkukunan.
Idagdag ang daloy ng trabaho
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-translationEmail Address *
Itakda provider sa aws. Mas gusto ang OIDC sa pamamagitan ng aws-actions/configure-aws-credentials upang walang pangmatagalang lihim na naka-imbak - ang hakbang na pag-export ay AWS_REGION para sa iyo. Upang magamit ang mga static key sa halip, mag-imbak:
Itabi ang mga ito bilang mga lihim ng repositoryo
AWS_ACCESS_KEY_ID— ang iyong AWS access key ID.AWS_SECRET_ACCESS_KEY— Ang iyong lihim na susi sa pag-access sa AWS.
Ang isang rehiyon ay palaging kinakailangan - itakda ito sa awsRegion o ang variable ng kapaligiran ng AWS_REGION.
Idagdag ang daloy ng trabaho
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-translationPagsasalin ng Google Cloud
Itakda provider sa google. Magpatunay gamit ang alinman sa isang kredensyal ng JSON ng service-account o isang API key - magbigay ng eksaktong isa:
Itabi ang mga ito bilang mga lihim ng repositoryo
GCP_TRANSLATE_CREDENTIALS— isang service account JSON key (bilang isang string ng JSON).GCP_TRANSLATE_API_KEY— o isang Google Cloud API key.
Ang isang opsyonal na googleProjectId ay hinuha mula sa kredensyal kapag tinanggal na.
Idagdag ang daloy ng trabaho
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: Mag-commit ng source resource file
Ginagamit ng mga file ng mapagkukunan ang Name.<sourceLocale>.<ext> convention. Halimbawa, Greetings.en.resx ay nagiging Greetings.fr.resx, Greetings.de.resx, at iba pa pagkatapos ng isang pagtakbo.
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: Inspeksyunin ang output
Kapag natapos na ang daloy ng trabaho, inilalantad ng pagkilos ang tatlong output na maaari mong i-wire sa isang paglalarawan ng PR: summary-title, summary-details, at has-new-translations. Nagsusulat din ito ng buod ng Markdown sa pahina ng trabaho sa pamamagitan ng core.summary.