প্রতিটি দৌড়ের পরে একটি টানের অনুরোধ খুলুন
- 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: localizationMonorepos: প্যাকেজ প্রতি স্কোপ অনুবাদ
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 বিভাগকে প্রশিক্ষণ দিন যা আপনার শিল্পের শব্দভাণ্ডার এবং স্বর (আইনি, মেডিকেল, বিপণন, অভ্যন্তরীণ-প্রকৌশল ইত্যাদি) ক্যাপচার করে এবং categoryId এর মাধ্যমে তার আইডি পাস করে। এটি অ্যাজুর লিভারের সবচেয়ে শক্তিশালী টোন অফার।
টোন কন্ট্রোল + কঠোর ফলব্যাক
# .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 এর সাথে একত্রিত করুন।