Step 1: Zaɓi mai ba da sabis na fassara
Aikin yana aiki tare da Azure AI Translator, Fassarar AWS, da Fassarar Google Cloud a bayan farfajiyar API guda ɗaya. Zaɓi mai ba da sabis guda ɗaya a kowane gudu tare da shigarwar provider — aikin aiki yana aiki iri ɗaya ba tare da la'akari da mai ba da sabis ba; kawai takardun shaida sun bambanta. Duba Masu ba da fassara don cikakken kwatantawa.
Step 2: Ƙara takaddun shaida da aiki
Adana takardun shaidar mai ba da sabis ɗinku azaman asirin ajiyar GitHub, sannan ƙirƙirar .github/workflows/translate.yml. Zaɓi mai ba da sabis ɗin ku a ƙasa don takamaiman saitin sa - sauran aikin iri ɗaya ne.
Azure AI Translator
Azure shine mai ba da sabis na asali, don haka provider iya watsi da shi. Samar da kayan aikin mai fassara na Azure AI a cikin tashar Azure, sannan adana takardun shaidarsa:
Ajiye waɗannan a matsayin asirin ajiya
TRANSLATOR_KEY— Maɓallin Biyan kuɗi don Kayan TTRANSLATOR_ENDPOINT— Ƙarshen Ƙarshen Yankin Ƙarshen YankinTRANSLATOR_REGION— Yankin Azure na Resource.
Ƙara aikin aiki
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-translationFassarar AWS
Saita provider zuwa aws. Zaɓi OIDC ta hanyar aws-actions/configure-aws-credentials don haka ba a adana sirri na dogon lokaci ba - matakin fitarwa AWS_REGION gare ku. Don amfani da maɓallan tsayayye maimakon, adana:
Ajiye waɗannan a matsayin asirin ajiya
AWS_ACCESS_KEY_ID— ID ɗinku na maɓallin keɓaɓɓen maɓallAWS_SECRET_ACCESS_KEY— Maɓallin Samun Sirri na AWS
Ana buƙatar yanki koyaushe - saita shi tare da awsRegion ko AWS_REGION yanayin yanayi.
Ƙara aikin aiki
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-translationFassarar Google Cloud
Saita provider zuwa google. Tabbatar da ko dai takardar shaidar JSON ta asusun sabis ko maɓallin API - samar da daidaito ɗaya:
Ajiye waɗannan a matsayin asirin ajiya
GCP_TRANSLATE_CREDENTIALS— Maɓallin JSON na asusun sabis (a matsayin kirtani na JSON).GCP_TRANSLATE_API_KEY— Ko maɓallin Google Cloud API.
An cire zaɓi googleProjectId daga takardun shaida idan an cire shi.
Ƙara aikin aiki
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: Shigar da fayil ɗin tushen tushen
Fayilolin albarkatu suna amfani da yarjejeniyar Name.<sourceLocale>.<ext>. Alal misali, Greetings.en.resx ya zama Greetings.fr.resx, Greetings.de.resx, da sauransu bayan gudu.
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: Duba fitarwa
Da zarar aikin ya ƙare, aikin ya fallasa fitarwa guda uku da zaku iya waya a cikin bayanin PR: summary-title, summary-details, da has-new-translations. Har ila yau, yana rubuta taƙaitaccen bayani a cikin shafin aikin ta hanyar core.summary.