Step 1: भाषांतर प्रदाता निवडा
ही क्रिया एका एकत्रित एपीआय पृष्ठभागाच्या मागे Azure AI Translator, एडब्ल्यूएस भाषांतर आणि Google क्लाऊड भाषांतर सह कार्य करते. provider इनपुटसह प्रति धाव एकच प्रदाता निवडा - प्रदात्याची पर्वा न करता वर्कफ्लो एकसारखे वागते; फक्त क्रेडेन्शियल्स भिन्न आहेत. संपूर्ण तुलनेसाठी भाषांतर प्रदाते पहा.
Step 2: क्रेडेन्शियल्स आणि वर्कफ्लो जोडा
आपल्या प्रदात्याची क्रेडेन्शियल्स गिटहब रिपॉझिटरी रहस्ये म्हणून संचयित करा, नंतर .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-translationएडब्ल्यूएस भाषांतर
provider aws वर सेट करा. aws-actions/configure-aws-credentials द्वारे ओआयडीसीला प्राधान्य द्या जेणेकरून कोणतीही दीर्घकाळ टिकणारी रहस्ये संग्रहित केली जाणार नाहीत - स्टेप एक्सपोर्ट आपल्यासाठी AWS_REGION आहे. त्याऐवजी स्थिर की वापरण्यासाठी, संचयित करा:
हे भांडार रहस्ये म्हणून संचयित करा
AWS_ACCESS_KEY_ID— आपला एडब्ल्यूएस प्रवेश की आयडी.AWS_SECRET_ACCESS_KEY— आपली एडब्ल्यूएस गुप्त प्रवेश की.
एक प्रदेश नेहमीच आवश्यक असतो - त्यास 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 क्लाऊड 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 द्वारे जॉब पृष्ठावर मार्कडाउन सारांश देखील लिहिते.