प्रत्येक रन के बाद एक पुल अनुरोध खोलें
- 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 श्रेणी को प्रशिक्षित करें जो आपके उद्योग शब्दावली और टोन (कानूनी, चिकित्सा, विपणन, आंतरिक-इंजीनियरिंग, आदि) को कैप्चर करता है और 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 के साथ संयोजन करें।