Step 1: Dooro bixiye turjumaad
Ficilkan wuxuu la shaqeeyaa Azure AI Translator, AWS Translate, iyo Tarjumaadda Google Cloud oo ka dambeeya hal API oo mideysan. Dooro hal bixiye mar kasta oo isticmaalaya gelinta provider — habka shaqadu wuu isku mid yahay iyadoon loo eegin bixiyaha; Kaliya aqoonsiga ayaa kala duwan yahay. Eeg Bixiyeyaasha turjumaadda si aad u hesho isbarbardhig buuxa.
Step 2: Ku dar aqoonsi iyo hab socod
Kaydi aqoonsiga bixiyahaaga sida siraha kaydka GitHub, kadibna abuur .github/workflows/translate.yml. Dooro bixiyahaaga hoose si aad u aragto qaab-dhismeedkiisa gaarka ah — inta kale ee workflow-ka waa isku mid.
Azure AI Translator
Azure waa bixiyaha asalka ah, sidaas darteed provider laga saari karo. Soo bandhig kheyraad Azure AI Translator ah portal-ka Azure, kadibna kaydi aqoonsigiisa:
Kaydi kuwani sida siraha kaydka
TRANSLATOR_KEY— furaha rukhsadda ee kheyraadka.TRANSLATOR_ENDPOINT— URL-ka dhamaadka gobolka.TRANSLATOR_REGION— aagga Azure-ka ee kheyraadka.
Ku dar habka shaqada
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
U deji provider aws. Doorbid OIDC adigoo adeegsanaya aws-actions/configure-aws-credentials si aan siraha waqti dheer loo keydinin — talaabada dhoofinta AWS_REGION adiga. Si aad u isticmaasho furayaasha static-ka beddelkeeda, kaydi:
Kaydi kuwani sida siraha kaydka
AWS_ACCESS_KEY_ID— aqoonsiga furaha gelitaanka AWS.AWS_SECRET_ACCESS_KEY— furahaaga sirta ah ee AWS.
Gobol mar walba waa loo baahan yahay — ku deji awsRegion ama beddelka deegaanka AWS_REGION.
Ku dar habka shaqada
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-translationTarjumaadda Google Cloud
U deji provider google. Xaqiiji adigoo isticmaalaya aqoonsi JSON oo akoonka adeegga ah ama furaha API — si sax ah u bixi mid sax ah:
Kaydi kuwani sida siraha kaydka
GCP_TRANSLATE_CREDENTIALS— furaha JSON ee akoonka adeegga (sida xadhig JSON).GCP_TRANSLATE_API_KEY— ama furaha Google Cloud API.
googleProjectId ikhtiyaari ah ayaa laga soo saaraa aqoonsiga marka la dhaafo.
Ku dar habka shaqada
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: Commit faylka kheyraadka ilaha
Faylasha kheyraadka waxay isticmaalaan nidaamka Name.<sourceLocale>.<ext>. Tusaale ahaan, Greetings.en.resx waxay noqotaa Greetings.fr.resx, Greetings.de.resx, iyo wixii la mid ah kadib socod.
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: Eeg wax soo saarka
Marka hawsha shaqada la dhammeeyo, falku wuxuu soo bandhigayaa saddex natiijo oo aad ku xiri karto sharaxaadda PR: summary-title, summary-details, iyo has-new-translations. Sidoo kale waxay ku qoraa dulmar Markdown bogga shaqada iyada oo loo marayo core.summary.