ہر رن کے بعد پل ریکویسٹ کھولیں
- id: translate uses: IEvangelist/resource-translator@v3 with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} region: ${{ secrets.TRANSLATOR_REGION }}
- if: steps.translate.outputs.has-new-translations == 'true' uses: peter-evans/create-pull-request@v7 with: branch: machine-translation title: ${{ steps.translate.outputs.summary-title }} body: ${{ steps.translate.outputs.summary-details }} labels: localizationمونوریپوس: ہر پیکج کے لیے اسکوپ ترجمہ
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**برانڈ ناموں اور مصنوعات کی اصطلاحات کے لیے لغت
ریپو میں ایک .github/resource-translator.yml ڈالیں:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"لغت کی اصطلاحات ترجمے بعد میں لاگو ہوتی ہیں، اس لیے مشین سے ترجمہ شدہ آؤٹ پٹ آپ کی پسندیدہ برانڈنگ برقرار رکھتا ہے چاہے ماڈل نے اسے مترادف سے بدل دیا ہو۔
کسٹم ٹرانسلیٹر کیٹیگری (صنعت / ڈومین)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Azure Custom Translator کیٹیگری کو ایک ایسے کورپس پر تربیت دیں جو آپ کی انڈسٹری کی لغت اور لہجہ (قانونی، میڈیکل، مارکیٹنگ، انٹرنل انجینئرنگ وغیرہ) کو ظاہر کرے اور اس کا ID categoryId کے ذریعے پاس کرے۔ یہ Azure کی سب سے مضبوط ٹون لیور ہے۔
ٹون کنٹرول + سخت متبادل
# .github/resource-translator.yml# Industry / domain — choose your tone via a Custom Translator categorycategoryId: legal-en
# Treat profanity strictly for content aimed at younger audiencesprofanityAction: MarkedprofanityMarker: Tag
# Fail the run rather than silently fall back to the general modelallowFallback: false کسٹم ٹرانسلیٹر categoryId کو profanityAction اور allowFallback: false کے ساتھ ملا کر ایک مستقل آواز کو یقینی بنائیں اور اگر منتخب کیٹیگری میں آپ کے ہدف لوکیشن کے لیے تعیناتی نہ ہو تو ورک فلو ناکام ہو جائے۔
ورک فلو آن کرنے سے پہلے ڈرائی رن کریں
with: dryRun: true failOnError: false یہ عمل اب بھی خلاصہ آؤٹ پٹ اور ایک مرحلہ خلاصہ خارج کرتا ہے، لیکن کوئی فائل نہیں لکھی جاتی۔ failOnError: false کے ساتھ مل کر ہر مسئلے کو ایک وارننگ کے طور پر سامنے لائیں جب آپ دوبارہ کام کر رہے ہوں۔