Öppna en pull request efter varje körning
- 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: omfångsöversättning per paket
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Ordlista för varumärken och produkttermer
Lägg in en .github/resource-translator.yml i repot:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Ordlista används Efter översättning, så maskinöversättningen behåller din föredragna varumärkesprofil även när modellen bytt ut den mot en synonym.
Kategori anpassad översättare (bransch / domän)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Träna en Azure Custom Translator-kategori på en korpus som fångar ditt branschvokabulär och din ton (juridik, medicin, marknadsföring, intern ingenjörskonst, etc.) och klara dess ID via categoryId. Detta är den starkaste tonspaken Azure erbjuder.
Tonkontroll + strikt fallback
# .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 Kombinera en anpassad översättar categoryId med profanityAction och allowFallback: false för att upprätthålla en konsekvent röst och misslyckas med arbetsflödet om den valda kategorin inte har en distribution för någon av dina målplatser.
Kör på prov innan du slår på arbetsflödet
with: dryRun: true failOnError: false Handlingen ger fortfarande sammanfattningar och en stegsammanfattning, men inga filer skrivs. Kombinera med failOnError: false för att lyfta fram varje problem som en varning medan du itererar.