Sobreescriu el camí amb l'entrada configPath si necessiteu una ubicació no per defecte.
Esquema
# .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.*"Referència de camp
| Camp | Tipus | Notes |
|---|---|---|
sourceLocale | string | Torna a l'entrada sourceLocale si no està configurat. També es redirigeix a Translator com a from=<locale> perquè les cadenes curtes no es detectin automàticament. |
toLocales | string[] | O bé una matriu o una cadena separada per comes. |
include / exclude | string[] | Patrons glob avaluats contra camins absoluts i relatius a l'espai de treball. |
glossary | map<string,string> | Sobreescriptures de termes post-traducció. Conscient de la frontera de paraules (gestiona C++, .NET). |
categoryId | string | Azure Custom Translator categoria — la teva perilla d'indústria/domini (legal, mèdic, to de màrqueting, etc.). Enviat com a ?category=.... |
textType | "plain" | "html" | Per defecte és plain. Utilitza html només si els valors dels teus recursos contenen fragments HTML reals. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Com tractar termes profans en una sortida traduïda. |
profanityMarker | "Asterisk" | "Tag" | Només té sentit quan profanityAction és "Marked". |
allowFallback | boolean | Configura't a false que falli la traducció quan el teu categoryId no tingui desplegament per a una ubicació objectiu en comptes de tornar al model general. |
apiVersion | string | Versió de l'API REST del traductor. Per defecte és 3.0. |
maxRetries | integer | Intents màxims de reintents en respostes HTTP transitories (408, 425, 429, 500, 502, 503, 504). Per defecte és 5. El total de trucades HTTP per sol·licitud és 1 + maxRetries. |
retryBackoffMs | integer | Límit (ms) en qualsevol son de reculada individual. Per defecte és 30000. La capçalera Retry-After d'Azure s'honora exactament quan hi és; en cas contrari, s'utilitza retrocés exponencial amb jitter, limitat a aquest valor. |
protectPlaceholders | boolean | Per defecte és true. Quan estan activats, tokens com {{name}}, ${var}, {0}, {0:N2}, %s, %1$s i HTML es substitueixen per tokens sentinel abans de la traducció i es restauren després. Desactiva només quan la font contingui intencionadament literals en forma de marcador de posició. |
customPlaceholderPatterns | string[] | Patrons regex addicionals (sense delimitadors) afegits al conjunt de marcadors per defecte, per exemple, <<.+?>> per a la sintaxi personalitzada dels tokens. Els regex invàlids s'ignoren. |
noTranslatePatterns | string[] | Els patrons glob coincidien amb claus a nivell d'analitzador (JSON doted path, RESX name, PO msgid, unitat XLIFF id, clau INI/restext). Les claus coincidents es retiren de la sol·licitud i passen amb el seu valor d'origen preservat. |
Ordre de càrrega
- L'acció llegeix entrades explícites del flux de treball.
- Carrega la configuració YAML des de
configPath. - Per a cada camp compartit, guanya l'entrada; en cas contrari, s'utilitza el valor YAML.
- Els valors fusionats es validen. Els enums invàlids (per exemple,
profanityAction: Mask) fan que l'acció falli ràpidament amb un missatge clar.
To i indústria, en termes senzills
L'API Azure AI Translator v3 no té cap botó de to. Dues configuracions combinades et donen gairebé el mateix control:
- Indústria / domini: utilitza
categoryIdper assenyalar una categoria d'Azure Custom Translator entrenada amb el teu propi corpus — legal, tècnic, mèdic, de màrqueting o qualsevol altra cosa. Aquesta és la palanca més potent per al to, la veu de marca i el vocabulari. - Text superficial: Utilitza el Glossari per bloquejar noms de marques i termes de producte literalment, i utilitza
profanityActionper eliminar termes profanes quan es dirigeix a la localització per a públics més joves.