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— संसाधनक 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 के माध्यम सँ नौकरी पृष्ठ पर एकटा मार्कडाउन सारांश सेहो लिखैत अछि।