Ouvrez une pull request après chaque partie
- 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 : traduction de portée par paquet
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Glossaire des noms de marque et termes de produits
Déposez un .github/resource-translator.yml dans le dépôt :
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Les termes du glossaire sont appliqués après traduction, donc la traduction automatique conserve votre image de marque préférée même lorsque le modèle l’a remplacée par un synonyme.
Catégorie de traducteur personnalisé (industrie / domaine)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Formez une catégorie Azure Custom Translator sur un corpus qui capture le vocabulaire et le ton de votre industrie (juridique, médical, marketing, ingénierie interne, etc.) et passez son ID via categoryId. C’est le levier de tonalité le plus puissant qu’Azure offre.
Contrôle de tonalité + repli strict
# .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 Combinez un categoryId de traducteur personnalisé avec profanityAction et allowFallback: false pour imposer une voix cohérente et échouez au flux de travail si la catégorie choisie n’a pas de déploiement pour l’un de vos sites ciblés.
Répétition générale avant d’activer le flux de travail
with: dryRun: true failOnError: false L’action affiche toujours des résultats résumés et un résumé d’étape, mais aucun fichier n’est écrit. Combinez-le avec failOnError: false pour mettre chaque problème en alerte pendant que vous itérerez.