Step 1: ترجمہ فراہم کرن وول ژٲرِو
یہِ عمل چھُ أکِس متحد API سطحَس پَتہٕ Azure AI ٹرانسلیٹر، اے ڈبلیو ایس ترجمہ تہٕ گوگل کلاؤڈ ٹرانسلیشن سۭتۍ کٲم کران۔ provider اِنپُٹ سۭتۍ کٔرِو اکھ فراہم کنندہ منتخب — ورک فلو چھُ فراہم کَرن وٲلِس سۭتۍ قطع نظر ہِوی برتاؤ کران۔ صرف اسناد چھِ مختلف۔ مکمل موازنہٕ خٲطرٕ وُچھِو ترجمہ فراہم کرن وٲل ۔
Step 2: اسناد تہٕ ورک فلو کٔرِو شٲمِل
پنٕنۍ فراہم کَرن وٲلہِ سٕنٛز اسناد کٔرِو گِٹ ہب ذخیرٕ رازٕ پٲٹھۍ ذخیرٕ، پتہٕ بَنٲیِو .github/workflows/translate.yml۔ بۄنہٕ کَنہِ دِنہٕ آمُت پنُن فراہم کَرن وول ژٲرِو امکہِ مخصوٗص سیٹ اپ خٲطرٕ — باقی ورک فلو چھُ ہِوُے۔
Azure AI ٹرانسلیٹر
Azure چُھ ڈیفالٹ فراہم کنندہٕ، لہذا provider ہیکو تراونہٕ یِتھ۔ Azure پورٹلس منز کْریو اکھ Azure AI ٹرانسلیٹر ریسورس فراہمی، تْہ کْریو امِچ کریڈینشیل سٹور:
یِم کٔرِو ذخیرٕ رازٕ پٲٹھۍ محفوظ
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-translationاے ڈبلیو ایس ترجمہ
سیٹ provider aws۔ AWS_REGION aws-actions/configure-aws-credentials ذٔریعہٕ کٔرِو او آی ڈی سی ترجیح۔ امہِ بدلہٕ جامد کیز استعمال کرنہٕ خٲطرٕ، کٔرِو سٹور:
یِم کٔرِو ذخیرٕ رازٕ پٲٹھۍ محفوظ
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 لیکھان۔