Step 1: रावसोलायनाय होग्राखौ सायख'
बे खामानिआ मोनसे खौसे Azure AI Translator, AWS रावसोलायनाय आरो गुगोल क्लाउड रावसोलायनाय एपिआइ बिखंनि उनथिं खामानि मावो। provider इनपुटजों मोनफ्रोमबो रानआव मोनसेल' होग्राखौ सायख' - वर्कफ्लोआ होग्राखौ लायालासे रोखोमसे आखु दिन्थियो; खालि फोरमान बिलाइफोराल' जुदा जायो। आबुं रुजुनायनि रावसोलायनाय होग्राफोर नाय।
Step 2: क्रेडेन्शियेल आरो मोनसे वर्कफ्लो दाजाबदेर
नोंथांनि होग्रानि क्रेडेंशियलफोरखौ GitHub रिप'जिटरी सिक्रेट्स महरै दोन, बेनि उनाव .github/workflows/translate.yml सोरजि। बेनि थि सेटअपनि थाखाय गाहायाव नोंथांनि होग्राखौ सायख' - आद्रा थानाय वर्कफ्लोआ रोखोमसे।
Azure AI Translator
Azure आ default provider बेनिखायनो provider एंगारनो हागौ। Azure पर्टेलाव मोनसे Azure AI Translator resource खौ Provision खालाम, बेनि क्रेडेंशियल्सखौ store खालाम:
बेफोरखौ दोनथुमनानै दोन।
TRANSLATOR_KEY— फुंखानि थाखाय साब्सक्रिप्सन 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 जायो। बेनि सोलायै static key बाहायनो थाखाय, store खालाम:
बेफोरखौ दोनथुमनानै दोन।
AWS_ACCESS_KEY_ID— नोंथांनि AWS access key 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-translationगुगोल क्लाउड रावसोलायनाय
provider google। सिबिथाय-एकाउन्ट JSON क्रेडेन्शियेल एबा API key जों फोरमान खालाम — रोखायै मोनसे जगाय:
बेफोरखौ दोनथुमनानै दोन।
GCP_TRANSLATE_CREDENTIALS— मोनसे सिबिथाय-एकाउन्ट JSON key (JSON string महरै)।GCP_TRANSLATE_API_KEY— एबा मोनसे Google Cloud API key ।
मोनसे सायखʼजानाय 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> convention बाहायो। बिदिन्थि 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।