Step 1: अनुवाद प्रदाता चुनो
एह् क्रिया इक एकीकृत एपीआई सतह दे पिच्छें Azure AI Translator, AWS अनुवाद ते गूगल क्लाउड ट्रांसलेशन कन्नै कम्म करदी ऐ। provider इनपुट दे कन्नै हर रन इक एकल प्रदाता चुनो - प्रदाता दी परवाह कीते बगैर कार्यप्रवाह इक्कै जनेहा बर्ताव करदा ऐ; छड़ा साख गै बक्ख-बक्ख ऐ। पूरी तुलना अनुवाद प्रदाता लेई दिक्खो।
Step 2: क्रेडेंशियल्स ते इक कार्यप्रवाह जोड़ो
अपने प्रदाता दे क्रेडेंशियल्स गी GitHub रिपॉजिटरी सीक्रेट्स दे रूप च स्टोर करो, फ्ही .github/workflows/translate.yml बनाओ। एह् दे बशेश सेटअप आस्तै खʼल्ल अपने प्रदाता दा चुनांऽ करो - बाकी कार्यप्रवाह बराबर ऐ।
Azure AI Translator
Azure डिफ़ॉल्ट प्रदाता ऐ, इस करियै provider छोड़ी दित्ता जाई सकदा ऐ। Azure पोर्टल च Azure AI अनुवादक संसाधन दा प्रावधान करो, फ्ही इसदे क्रेडेंशियल्स स्टोर करो:
इʼनें गी भंडार रहस्यें दे रूप च स्टोर करो
TRANSLATOR_KEY— संसाधन लेई सदस्यता कुंजी।TRANSLATOR_ENDPOINT— खेतरी समापन बिंदु यूआरएल।TRANSLATOR_REGION— संसाधन दा एज़्योर खेतर।
कार्यप्रवाह जोड़ो
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 राहें ओ.आई.डी.सी. गी तरजीह देओ तां जे कोई लम्मे समें तक्कर रौह् ने आह् ले रहस्य स्टोर नेईं होन - स्टेप एक्सपोर्ट तुंʼदे लेई 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 क्रेडेंशियल जां एपीआई कुंजी कन्नै प्रमाणत करो — ठीक इक दी आपूर्ति करो:
इʼनें गी भंडार रहस्यें दे रूप च स्टोर करो
GCP_TRANSLATE_CREDENTIALS— इक सेवा-खाता JSON कुंजी (JSON स्ट्रिंग दे रूप च)।GCP_TRANSLATE_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> परंपरा दा इस्तेमाल करदियां न। मसाल दे तौर 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। एह् core.summary दे राहें नौकरी पेज पर इक मार्कडाउन सारांश बी लिखदा ऐ।