Step 1: ترجمہ فراہم کنندہ منتخب کریں
ایکشن Azure AI Translator، AWS ترجمہ، اور گوگل کلاؤڈ ترجمہ کے ساتھ ایک متحدہ API سطح کے پیچھے کام کرتا ہے۔ ہر رن میں provider ان پٹ کے ساتھ ایک فراہم کنندہ منتخب کریں — ورک فلو فراہم کنندہ سے قطع نظر ایک جیسا ہی کام کرتا ہے؛ صرف اسناد مختلف ہیں۔ مکمل موازنہ کے لیے ترجمہ فراہم کرنے والے دیکھیں۔
Step 2: اسناد اور ورک فلو شامل کریں
اپنے فراہم کنندہ کی اسناد GitHub ریپوزٹری سیکریٹس کے طور پر محفوظ کریں، پھر .github/workflows/translate.yml بنائیں۔ اپنے فراہم کنندہ کو اس کے مخصوص سیٹ اپ کے لیے نیچے منتخب کریں — باقی ورک فلو بھی بالکل ویسا ہی ہے۔
Azure AI Translator
Azure ڈیفالٹ فراہم کنندہ ہے، اس لیے provider کو چھوڑ دیا جا سکتا ہے۔ Azure پورٹل میں Azure AI Translator ریسورس فراہم کریں، پھر اس کی اسناد محفوظ کریں:
انہیں ریپوزٹری سیکرٹس کے طور پر محفوظ کریں
TRANSLATOR_KEY— اس وسیلہ کی سبسکرپشن کی۔TRANSLATOR_ENDPOINT— علاقائی اینڈ پوائنٹ URL۔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— یا گوگل کلاؤڈ 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 کے ذریعے جاب پیج پر مارک ڈاؤن سمری بھی لکھتا ہے۔