Anula el camino con la entrada configPath si necesitas una ubicación no 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 | Vuelve a la entrada sourceLocale si no está activado. También se reenvió a Translator como from=<locale> para que las cadenas cortas no se detecten automáticamente. |
toLocales | string[] | Ya sea un array o una cadena separada por comas. |
include / exclude | string[] | Patrones de globos evaluados frente a caminos absolutos y relativos al espacio de trabajo. |
glossary | map<string,string> | Anulaciones de términos post-traducción. Consciente de la frontera de palabras (maneja C++, .NET). |
categoryId | string | Azure Custom Translator categoría — tu perilla de industria/dominio (legal, médico, tono de marketing, etc.). Enviado como ?category=.... |
textType | "plain" | "html" | Por defecto es plain. Usa html solo si los valores de tus recursos contienen fragmentos HTML reales. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Cómo tratar términos profanos en la traducción de la traducción. |
profanityMarker | "Asterisk" | "Tag" | Solo tiene sentido cuando profanityAction es "Marked". |
allowFallback | boolean | Configura para false falle la traducción cuando tu categoryId no tiene despliegue para una localidad objetivo en lugar de volver al modelo general. |
apiVersion | string | Versión de la API REST del traductor. Por defecto es 3.0. |
maxRetries | integer | Intentos máximos de reintentos en respuestas HTTP transitorias (408, 425, 429, 500, 502, 503, 504). Por defecto se pone 5. El total de llamadas HTTP por solicitud es 1 + maxRetries. |
retryBackoffMs | integer | Límite (ms) en cualquier sueño de retroceso individual. Por defecto es 30000. El encabezado de Retry-After de Azure se respeta exactamente cuando está presente; de lo contrario, se utiliza un retroceso exponencial con jitter, limitado a este valor. |
protectPlaceholders | boolean | Por defecto es true. Cuando están activados, tokens como {{name}}, ${var}, {0}, {0:N2}, %s, %1$s y HTML se reemplazan por tokens centinela antes de la traducción y se restauran después. Desactiva solo cuando la fuente contiene intencionadamente literales con forma de marcador de posición. |
customPlaceholderPatterns | string[] | Patrones regex adicionales (sin delimitadores) añadidos al conjunto de marcadores de posición por defecto, por ejemplo, <<.+?>> para sintaxis personalizada de tokens. Se ignoran las regex inválidas. |
noTranslatePatterns | string[] | Los patrones glob coincidían con las claves a nivel de analizador (JSON con puntos de camino, name RESX, msgid PO, id de unidad XLIFF, clave INI/restext). Las claves coincidentes se eliminan de la solicitud y pasan manteniendo su valor fuente. |
Orden de carga
- La acción lee entradas explícitas del flujo de trabajo.
- Carga la configuración YAML desde
configPath. - Para cada campo compartido, la entrada gana; de lo contrario, se utiliza el valor YAML.
- Los valores fusionados se validan. Los enums inválidos (por ejemplo,
profanityAction: Mask) hacen que la acción falle rápidamente con un mensaje claro.
Tono e industria, en términos claros
La API de Azure AI Translator v3 no tiene ni un solo control de tono. Dos ajustes combinados te dan la mayor parte del mismo control:
- Industria / dominio: usa
categoryIdpara señalar una categoría de Azure Custom Translator entrenada con tu propio corpus — legal, técnico, médico, de marketing o cualquier otra cosa. Esta es la palanca más fuerte para el tono, la voz de marca y el vocabulario. - Texto superficial: Utiliza el Glosario para bloquear los nombres de marcas y términos de producto literalmente, y usa
profanityActionpara eliminar términos profanes cuando se dirija a la localización para audiencias más jóvenes.