Otvorite pull request nakon svakog pokretanja
- 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: prijevod opsega po paketu
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Rječnik za nazive robnih marki i nazive proizvoda
Ubacite .github/resource-translator.yml u repozitorij:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Pojmovi iz rječnika primjenjuju se Nakon prijevod, tako da strojno prevedeni izlaz zadržava vaš preferirani brend čak i kad ga je model zamijenio sinonimom.
Kategorija prilagođenih prevoditelja (industrija / domena)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Obučite Azure Custom Translator kategoriju na korpusu koji obuhvaća vaš industrijski vokabular i ton (pravni, medicinski, marketing, interni inženjering itd.) i proslijedite ID putem categoryId. Ovo je najjači ton lever koji Azure nudi.
Kontrola tona + strogi rezervni sustav
# .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 Kombinirajte categoryId prilagođenog prevoditelja s profanityAction i allowFallback: false kako biste osigurali dosljedan glas i ne uspjeli u tijeku rada ako odabrana kategorija nema implementaciju za jednu od vaših ciljanih lokacija.
Isprobavanje prije uključivanja tijeka rada
with: dryRun: true failOnError: false Akcija i dalje prikazuje sažete izlaze i sažetak koraka, ali datoteke se ne pišu. Kombinirajte s failOnError: false da svaki problem istaknete kao upozorenje dok iterirate.