Step 1: अनुवाद प्रदाता चुनें
कार्रवाई एक एकीकृत एपीआई सतह के पीछे Azure AI अनुवादक, एडब्ल्यूएस अनुवाद और गूगल क्लाउड अनुवाद के साथ काम करती है। 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-translationएडब्ल्यूएस अनुवाद
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 क्रेडेंशियल या API कुंजी के साथ प्रमाणित करें - ठीक एक आपूर्ति करें:
इन्हें रिपॉजिटरी सीक्रेट्स के रूप में स्टोर करें
GCP_TRANSLATE_CREDENTIALS— एक सेवा-खाता JSON कुंजी (JSON स्ट्रिंग के रूप में)।GCP_TRANSLATE_API_KEY— या Google क्लाउड 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: आउटपुट का निरीक्षण करें
एक बार वर्कफ़्लो समाप्त हो जाने के बाद, कार्रवाई तीन आउटपुट को उजागर करती है जिन्हें आप पीआर विवरण में तार कर सकते हैं: summary-title, summary-details और has-new-translations। यह core.summary के माध्यम से नौकरी पृष्ठ में एक मार्कडाउन सारांश भी लिखता है।