Step 1: تەرجىمە تەمىنلىگۈچىنى تاللاڭ
بۇ ھەرىكەت Azure AI تەرجىمانى، AWS تەرجىمە ۋە گۇگۇل بۇلۇت تەرجىمە بىرلىككە كەلگەن API يۈزىنىڭ ئارقىسىدا ئىشلەيدۇ. ھەر قېتىم provider كىرگۈزۈش ئارقىلىق بىرلا تەمىنلىگۈچىنى تاللاڭ—خىزمەت تەرتىپى تەمىنلىگۈچىنىڭ قانداق بولۇشىدىن قەتئىينەزەر ئوخشاش بولىدۇ. پەقەت سالاھىيەت گۇۋاھنامىسىلا پەرقلىنىدۇ. تولۇق سېلىشتۇرۇش ئۈچۈن تەرجىمە بىلەن تەمىنلىگۈچى قاراڭ.
Step 2: سالاھىيەت گۇۋاھنامىسى ۋە خىزمەت تەرتىپى قوشۇش پروگراممىسى
تەمىنلىگۈچىنىڭ سالاھىيەت ئۇچۇرلىرىنى GitHub ئامبىرى مەخپىيەتلىكى قىلىپ ساقلاپ، ئاندىن .github/workflows/translate.yml. تۆۋەندىكى تەمىنلىگۈچىنى تاللاڭ، باشقا خىزمەت تەرتىپى ئوخشاش.
Azure AI تەرجىمانى
Azure سۈكۈتتىكى تەمىنلىگۈچى، شۇڭا provider چىقىرىۋېتىشى مۇمكىن. Azure پورتالىدا Azure AI تەرجىمە مەنبەسىنى تەمىنلەپ، ئاندىن ئۇنىڭ سالاھىيەت ئۇچۇرلىرىنى ساقلاڭ:
بۇلارنى ئامبار مەخپىيەتلىكى قىلىپ ساقلاش
TRANSLATOR_KEY— مەنبەنىڭ مۇشتەرى بولۇش ئاچقۇچى .TRANSLATOR_ENDPOINT— رايون ئاخىرقى نۇقتىسى ئادرېسى.TRANSLATOR_REGION— مەنبەنىڭ Azure رايونى.
خىزمەت تەرتىپىنى قوشۇش
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 تەرجىمە
تەڭشەش provider aws OIDC ئارقىلىق aws-actions/configure-aws-credentials ئارقىلىق مەخپىيەتلىكنى ياخشى كۆرىسىز، بۇنداق بولغاندا ئۇزۇن مۇددەتلىك مەخپىيەتلىكلەر ساقلىنىپ قالمىسۇن — ئېكسپورت AWS_REGION سىزگە پايدىلىق. تىنچ كۇنۇپكىنى ئىشلىتىش ئۈچۈن تۆۋەندىكىلەرنى ساقلاڭ:
بۇلارنى ئامبار مەخپىيەتلىكى قىلىپ ساقلاش
AWS_ACCESS_KEY_ID— سىزنىڭ AWS زىيارەت ئاچقۇچلۇق كىملىكىڭىز.AWS_SECRET_ACCESS_KEY— سىزنىڭ AWS مەخپىي زىيارەت ئاچقۇچىڭىز.
بىر رايون ھامان تەلەپ قىلىنىدۇ — ئۇنى awsRegion ياكى AWS_REGION مۇھىت ئۆزگەرگۈچى مىقدارى بىلەن تەڭشەپ قويۇڭ.
خىزمەت تەرتىپىنى قوشۇش
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-translationگۇگۇل بۇلۇت تەرجىمە
تەڭشەش provider google مۇلازىمەت ھېساباتى JSON سالاھىيەت گۇۋاھنامىسى ياكى API ئاچقۇچى بىلەن سالاھىيەت دەلىللەش — دەل بىرسى تەمىنلەڭ:
بۇلارنى ئامبار مەخپىيەتلىكى قىلىپ ساقلاش
GCP_TRANSLATE_CREDENTIALS— مۇلازىمەت ھېساباتى JSON ئاچقۇچى (JSON تىزمىسى).GCP_TRANSLATE_API_KEY— ياكى Google Cloud API ئاچقۇچى.
googleProjectId ئۆچۈرۈلگەندە سالاھىيەت گۇۋاھنامىسىدىن ئىختىيارىي خۇلاسە چىقىرىلىدۇ.
خىزمەت تەرتىپىنى قوشۇش
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 قىلىش
مەنبە ھۆججىتى قائىدىسىنى Name.<sourceLocale>.<ext> ئىشلىتىدۇ . مەسىلەن، Greetings.en.resx يۈگۈرگەندىن كېيىن Greetings.fr.resx، Greetings.de.resx قاتارلىقلارغا ئايلىنىدۇ.
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: چىقىرىشنى تەكشۈرۈش
خىزمەت تەرتىپى ئاخىرلاشقاندىن كېيىن، مەشغۇلات ئۈچ خىل چىقىرىشنى ئاشكارىلايدۇ: summary-title، summary-details ۋە has-new-translations. ئۇ يەنە خىزمەت بېتىگە Markdown قىسقىچە مەزمۇنىنى core.summary.