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