Overschrijf het pad met de configPath input als je een niet-standaard locatie nodig hebt.
Schema
# .github/resource-translator.ymlsourceLocale: entoLocales: - fr - de - esinclude: - "src/**/*.en.json" - "apps/**/*.en.resx"exclude: - "**/__tests__/**"glossary: Acme: Contoso Octocat: Octocat # keep brand names verbatim
# Domain / industry — uses an Azure Custom Translator category trained on# your tone and vocabulary. Leave unset for the general model.categoryId: my-custom-translator-category
# Translator request shape — most users can ignore these.textType: plain # plain | htmlprofanityAction: NoAction # NoAction | Marked | DeletedprofanityMarker: Asterisk # Asterisk | Tag (only when profanityAction == Marked)allowFallback: true # false fails when the categoryId has no deployment
apiVersion: "3.0"
# Resilience — Translator returns 429 under load. Defaults are usually# fine; tune only if your runs are large enough to hit them.maxRetries: 5retryBackoffMs: 30000 # cap on any single backoff sleep (ms)
# Placeholder protection. ON by default — wraps tokens like {{name}},# {0}, %s, ${var} into sentinels before translation and restores them# on the way back. Set false only when source intentionally contains# placeholder-shaped literals.protectPlaceholders: truecustomPlaceholderPatterns: - "<<.+?>>" # any extra token syntax you use
# Per-key opt-out. Keys matching any glob are dropped from the request# and pass through with the source value preserved.noTranslatePatterns: - "errors.code.*" - "brands.*"Veldreferentie
| Veld | Type | Noten |
|---|---|---|
sourceLocale | string | Valt terug op de sourceLocale input als hij niet ingesteld is. Ook doorgestuurd naar de Vertaler als from=<locale> zodat korte strings niet automatisch worden gedetecteerd. |
toLocales | string[] | Ofwel een array of een komma-gescheiden string. |
include / exclude | string[] | Globpatronen geëvalueerd aan de hand van absolute en werkruimte-relatieve paden. |
glossary | map<string,string> | Term-overruling na vertaling. Woordgrensbewust (verwerkt C++, .NET). |
categoryId | string | Azure Custom Translator categorie — je branche-/domeinknop (juridisch, medisch, marketingtoon, enz.). Verzonden als ?category=.... |
textType | "plain" | "html" | Standaard staat plain. Gebruik html alleen als je resourcewaarden echte HTML-fragmenten bevatten. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Hoe je grof taalgebruik in vertaalde output te gebruiken. |
profanityMarker | "Asterisk" | "Tag" | Alleen betekenisvol als profanityAction "Marked" is. |
allowFallback | boolean | Stel het in op false om de vertaling te falen wanneer je categoryId geen deployment voor een doellocatie heeft, in plaats van terug te vallen op het algemene model. |
apiVersion | string | Translator REST API-versie. Standaard staat 3.0. |
maxRetries | integer | Maximale herpogingen bij transiente HTTP-antwoorden (408, 425, 429, 500, 502, 503, 504). Standaard staat 5. Het totale aantal HTTP-oproepen per verzoek is 1 + maxRetries. |
retryBackoffMs | integer | Limiet (ms) op elke enkele backoff-slaap. Standaard staat 30000. Azure's Retry-After header wordt precies gerespecteerd wanneer aanwezig; anders wordt een jitterde exponentiële backoff gebruikt, gecapt op deze waarde. |
protectPlaceholders | boolean | Standaard staat true. Wanneer aan, worden tokens zoals {{name}}, ${var}, {0}, {0:N2}, %s, %1$s en HTML-entiteiten vervangen door sentinel-tokens vóór de vertaling en daarna hersteld. Schakel alleen uit wanneer de bron opzettelijk tijdelijke literals bevat. |
customPlaceholderPatterns | string[] | Extra regex-patronen (zonder scheidingstekens) toegevoegd aan de standaard plaatshouderset, bijvoorbeeld <<.+?>> voor aangepaste tokensyntaxis. Ongeldige regexes worden genegeerd. |
noTranslatePatterns | string[] | Glob-patronen matchen parser-niveau sleutels (JSON dotted path, RESX name, PO msgid, XLIFF unit id, INI/restext key). Overeenkomende sleutels worden uit het verzoek verwijderd en doorgegeven, waarbij hun bronwaarde behouden blijft. |
Laadvolgorde
- De actie leest expliciete invoer uit de workflow.
- Het laadt de YAML-configuratie vanaf
configPath. - Voor elk gedeeld veld wint de invoer; anders wordt de YAML-waarde gebruikt.
- De samengevoegde waarden worden gevalideerd. Ongeldige enums (bijvoorbeeld
profanityAction: Mask) zorgen ervoor dat de actie snel afloopt met een duidelijke melding.
Toon en industrie, in gewone bewoordingen
De Azure AI Translator v3 API heeft geen enkele toonknop. Twee instellingen combineren om je grotendeels dezelfde controle te geven:
- Industrie / domein: gebruik
categoryIdom te wijzen op een Azure Custom Translator categorie die is getraind op je eigen corpus — juridisch, technisch, medisch, marketing, of iets anders. Dit is de sterkste hefboom voor toon, merkstem en woordenschat. - Oppervlaktetekst: Gebruik de Verklarende woordenlijst om merknamen en producttermen letterlijk te vergrendelen, en gebruik
profanityActionom grof te schrappen bij het richten op lokalisatie voor jongere doelgroepen.