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