Отваряйте pull заявка след всяко изпълнение
- 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. Това е най-силният лост за тон, който 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 Комбинирайте Custom Translator categoryId с profanityAction и allowFallback: false, за да наложите постоянен глас и да се провалите работния процес, ако избраната категория няма деплоър за някое от целевите ви локации.
Пробно изпълнение преди да включа работния процес
with: dryRun: true failOnError: false Действието все още излъчва обобщени резултати и обобщение на стъпките, но не се записват файлове. Комбинирайте с failOnError: false, за да изявите всеки проблем като предупреждение, докато итерацията.