Anula o camiño coa entrada configPath se precisas unha localización non predeterminada.
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.*"Referencia de campo
| Campo | Tipo | Notas |
|---|---|---|
sourceLocale | string | Volve á entrada sourceLocale se non está activada. Tamén se reenvia a Tradutor como from=<locale> para que as cadeas curtas non se detecten automaticamente. |
toLocales | string[] | Ou un array ou unha cadea separada por comas. |
include / exclude | string[] | Patróns de globos avaliados fronte a camiños absolutos e relativos ao espazo de traballo. |
glossary | map<string,string> | Anulacións de termos post-tradución. Consciente da fronteira de palabras (manexa C++, .NET). |
categoryId | string | Azure Custom Translator categoría — a túa perilla de industria/dominio (legal, médica, ton de marketing, etc.). Enviado como ?category=.... |
textType | "plain" | "html" | Por defecto é plain. Usa html só se os valores dos teus recursos conteñen fragmentos HTML reais. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Como tratar termos profanos na saída traducida. |
profanityMarker | "Asterisk" | "Tag" | Só ten sentido cando profanityAction é "Marked". |
allowFallback | boolean | Configúrase para false falle a tradución cando o teu categoryId non teña despregamento para unha localización obxectivo en vez de volver ao modelo xeral. |
apiVersion | string | Versión da API REST do tradutor. Por defecto é 3.0. |
maxRetries | integer | Máximo de intentos de reintento en respostas HTTP transitorias (408, 425, 429, 500, 502, 503, 504). Por defecto é 5. O total de chamadas HTTP por solicitude é 1 + maxRetries. |
retryBackoffMs | integer | Límite (ms) en calquera sono de retroceso individual. Por defecto é 30000. A cabeceira Retry-After de Azure honrase exactamente cando está presente; doutra maneira, utilízase un retroceso exponencial con jitter, limitado a este valor. |
protectPlaceholders | boolean | Por defecto é true. Cando están activados, tokens como {{name}}, ${var}, {0}, {0:N2}, %s, %1$s e HTML substitúense por tokens sentinel antes da tradución e restabrávanse despois. Desactiva só cando a fonte contén intencionadamente literais en forma de marcador de posición. |
customPlaceholderPatterns | string[] | Patróns regex adicionais (sen delimitadores) engadidos ao conxunto predeterminado de marcadores, por exemplo, <<.+?>> para sintaxe personalizada de tokens. Ignóranse as regex inválidas. |
noTranslatePatterns | string[] | Os patróns glob coincidían con claves a nivel de analizador (camiño punteado JSON, name RESX, msgid PO, id da unidade XLIFF, clave INI/restext). As claves coincidentes pérdense da solicitude e pasan mantendo o seu valor de orixe. |
Orde de carga
- A acción le entradas explícitas do fluxo de traballo.
- Carga a configuración YAML desde
configPath. - Para cada campo compartido, a entrada gaña; se non, úsase o valor YAML.
- Os valores combinados son validados. Enums inválidos (por exemplo,
profanityAction: Mask) fan que a acción falle rapidamente cunha mensaxe clara.
Ton e industria, en termos claros
A API Azure AI Translator v3 non ten un único botón de ton. Dúas configuracións combinadas che dan a maior parte do mesmo control:
- Industria / dominio: usa
categoryIdpara sinalar unha categoría de Azure Custom Translator adestrada co teu propio corpus — legal, técnico, médico, de marketing ou calquera outra cousa. Esta é a palanca máis forte para o ton, a voz da marca e o vocabulario. - Texto superficial: Usa o Glosario para bloquear nomes de marcas e termos de produto literalmente, e usa
profanityActionpara eliminar termos profanes cando se dirixe á localización para públicos máis novos.