Step 1: ལོ་ཙཱའི་མཁོ་སྤྲོད་པ་འདེམས་སྒྲུག་བྱས་པ།
འགུལ་སྐྱོད་འདི་གཅིག་གྱུར་གྱི་APIཕྱི་ངོས་གཅིག་གི་རྒྱབ་ཏུ་Azure AI ལོ་ཙཱ་བ་ དང་། AWS ལོ་ཙཱ། Google སྤྲིན་གྱི་ལོ་ཙཱ བཅས་དང་ནུས་པ་ཐོན་ཡོད། provider ནང་འཇུག་བྱས་ནས་འཁོར་སྐྱོད་ཐེངས་རེར་མཁོ་སྤྲོད་བྱེད་མཁན་རྐྱང་པ་འདེམས་དགོས། ལས་ཀའི་བརྒྱུད་རིམ་ནི་མཁོ་སྤྲོད་བྱེད་མཁན་གང་ཡིན་ལ་མ་བལྟོས་པར་གཅིག་མཚུངས་ཡིན། དཔང་ཡིག་ཁོ་ན་མི་འདྲ། ཞིབ་བསྡུར་ཆ་ཚང་ལོ་ཙཱའི་མཁོ་སྤྲོད་བྱེད་མཁན། གསལ།
Step 2: དཔང་ཡིག་དང་ལས་ཀའི་བརྒྱུད་རིམ་ཁ་སྣོན་བྱས་པ།
ཁྱོད་ཀྱི་མཁོ་སྤྲོད་བྱེད་མཁན་གྱི་དཔང་ཡིག་དེ་GitHub མཛོད་ཁང་གི་གསང་བའི་ཚུལ་དུ་ཉར་ཚགས་བྱས་རྗེས། དེ་ནས་.github/workflows/translate.yml གསར་བཟོ་བྱེད་དགོས། གཤམ་གྱི་མཁོ་སྤྲོད་པ་བདམས་ནས་དེའི་བྱེ་བྲག་གི་སྒྲིག་སྟངས་ལ་གཞིགས་ན། དེ་བྱིངས་ཀྱི་ལས་ཀའི་བརྒྱུད་རིམ་གཅིག་མཚུངས་ཡིན།
Azure AI ལོ་ཙཱ་བ་
Azure ནི་སྔོན་འགྲོའི་མཁོ་སྤྲོད་བྱེད་མཁན་ཡིན་སྟབས། provider འདོར་སྲིད། Azure དྲ་ཚིགས་ནང་Azure AI ལོ་ཙཱའི་ཐོན་ཁུངས་འདོན་སྤྲོད་བྱས་རྗེས། དེའི་དཔང་ཡིག་ཉར་ཚགས་བྱེད་དགོས།
འདི་དག་མཛོད་ཁང་གི་གསང་བར་ཉར་ཚགས་བྱས་པ།
TRANSLATOR_KEY— ཐོན་ཁུངས་ཀྱི་མངག་ཉོ་ལྡེ་མིག་།TRANSLATOR_ENDPOINT— ས་ཁོངས་ཀྱི་མཐའ་སྣེའི་URLཡིན།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 དུ་བཞག་ཡོད། aws-actions/configure-aws-credentials བརྒྱུད་ནས་OIDCལ་དགའ་བས། ཡུན་རིང་གི་གསང་བ་ཉར་ཚགས་མི་བྱེད་པས། གོམ་རིམ་ཕྱིར་གཏོང་AWS_REGION ཁྱོད་ལ་ཕན་ཐོགས་ཡོད། གཏན་འཇགས་ཀྱི་མཐེབ་མཐེབ་བཀོལ་དགོས་ན། ཉར་ཚགས་བྱས་ཆོག་པ་སྟེ།
འདི་དག་མཛོད་ཁང་གི་གསང་བར་ཉར་ཚགས་བྱས་པ།
AWS_ACCESS_KEY_ID— ཁྱོད་ཀྱི་AWS འཛུལ་ཞུགས་ལྡེ་མིག་གི་IDཡིན།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-translationGoogle སྤྲིན་གྱི་ལོ་ཙཱ
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: འབྱུང་ཁུངས་ཐོན་ཁུངས་ཡིག་ཚགས་ཁས་ལེན་པ།
ཐོན་ཁུངས་ཡིག་ཚགས་ཀྱིས་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: ཐོན་ཚད་ལ་ཞིབ་བཤེར་བྱ་དགོས།
ལས་ཀའི་བརྒྱུད་རིམ་མཇུག་རྫོགས་རྗེས། བྱ་སྤྱོད་དེས་ཁྱོད་ཀྱིས་PRཡི་གསལ་བཤད་ནང་འཇུག་ཐུབ་པའི་ཕྱིར་ཐོན་གསུམ་ཕྱིར་མངོན་པ་སྟེ། summary-title དང་། summary-details། has-new-translations བཅས་ཡིན། དེས་ད་དུང་core.summary བརྒྱུད་ནས་ལས་གནས་ཀྱི་ཤོག་ངོས་སུ་Markdown ཕྱོགས་སྡོམ་ཞིག་བྲིས་ཡོད།