Öffne nach jedem Durchlauf eine Pull Request
- 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-Übersetzung pro Paket
with: sourceLocale: en include: | apps/web/**/*.en.resx packages/shared/**/*.en.json exclude: | **/dist/** **/__tests__/**Glossar für Markennamen und Produktbegriffe
Geben Sie einen .github/resource-translator.yml in das Repository ein:
glossary: Acme: Contoso Octocat: Octocat ".NET": ".NET" "C++": "C++"Glossarbegriffe werden danach Übersetzung angewendet, sodass die maschinell übersetzte Ausgabe auch dann Ihr bevorzugtes Branding beibehält, wenn das Modell es gegen ein Synonym ausgetauscht hat.
Kategorie benutzerdefinierter Übersetzer (Branche / Domäne)
with: sourceLocale: en subscriptionKey: ${{ secrets.TRANSLATOR_KEY }} endpoint: ${{ secrets.TRANSLATOR_ENDPOINT }} categoryId: 1234abcd-5678-90ef-... Trainiere eine Azure-Custom Translator-Kategorie auf einem Korpus, der deinen Branchenwortschatz und Ton (Recht, Medizin, Marketing, interne Ingenieurwesen usw.) abdeckt, und bestehe seine ID über categoryId. Das ist der stärkste Tonhebel, den Azure bietet.
Tonregelung + strikter Rückfall
# .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 Kombinieren Sie einen benutzerdefinierten Übersetzer categoryId mit profanityAction und allowFallback: false, um eine konsistente Stimme zu erzwingen und den Workflow zu versagen, falls die gewählte Kategorie keine Bereitstellung für einen Ihrer Zielstandorte hat.
Probelauf, bevor der Workflow eingeschaltet wird
with: dryRun: true failOnError: false Die Aktion sendet weiterhin Zusammenfassungsausgaben und eine Schritt-Zusammenfassung, aber es werden keine Dateien geschrieben. Kombinieren Sie es mit failOnError: false, um jedes Problem als Warnung zu erkennen, während Sie iterieren.