Obre una sol·licitud de tirada després de cada partida
- 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: traducció d'àmbit per paquet
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Glossari de noms de marca i termes de producte
Deixa un .github/resource-translator.yml al repositori:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Els termes del glossari s'apliquen després traducció, de manera que la traducció automàtica manté la teva marca preferida fins i tot quan el model l'ha canviat per un sinònim.
Categoria de traductor personalitzat (indústria / domini)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Entrena una categoria de Custom Translator d'Azure en un corpus que reculli el vocabulari i el to de la teva indústria (legal, mèdic, màrqueting, enginyeria interna, etc.) i aprova el seu ID per categoryId. Aquesta és la palanca de to més potent que ofereix Azure.
Control de to + alternativa estricta
# .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 Combina un categoryId de traductor personalitzat amb profanityAction i allowFallback: false per fer complir una veu consistent i falla el flux de treball si la categoria escollida no té un desplegament per a una de les teves localitzacions objectiu.
Prova en sec abans d'activar el flux de treball
with: dryRun: true failOnError: false L'acció encara emet resultats resumits i un resum de passos, però no s'escriu cap fitxer. Combina amb failOnError: false per posar en evidència cada problema com a advertència mentre iteres.