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