Åbn en pull request efter hvert gennemløb
- 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: scope-oversættelse pr. pakke
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Ordliste for mærkenavne og produkttermer
Læg en .github/resource-translator.yml i repoet:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Ordlistetermer anvendes Efter oversættelse, så det maskinoversatte output bevarer dit foretrukne branding, selv når modellen har skiftet det ud med et synonym.
Kategori for brugerdefineret oversætter (branche / domæne)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Træn en Azure Custom Translator-kategori på et korpus, der fanger dit branchevokabular og tone (jura, medicin, marketing, intern ingeniørvidenskab osv.), og bestod dens ID via categoryId. Dette er den stærkeste tonehåndtag, Azure tilbyder.
Tonekontrol + streng 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 Kombinér en brugerdefineret oversætter categoryId med profanityAction og allowFallback: false for at sikre en ensartet stemme og fejle arbejdsgangen, hvis den valgte kategori ikke har en udrulning til et af dine målsteder.
Kør det grundigt, før du tænder for arbejdsgangen
with: dryRun: true failOnError: false Handlingen udsender stadig resumé-output og et trinoversigt, men der skrives ingen filer. Kombiner med failOnError: false for at fremhæve hvert problem som en advarsel, mens du itererer.