Sovrascrivi il percorso con l'input configPath se ti serve una posizione non predefinita.
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.*"Riferimento sul campo
| Campo | Tipo | Note |
|---|---|---|
sourceLocale | string | Torna all'input sourceLocale se non è impostato. È anche inoltrato a Translator come from=<locale> così le stringhe corte non vengono rilevate automaticamente. |
toLocales | string[] | O un array o una stringa separata da virgole. |
include / exclude | string[] | Modelli glob valutati rispetto a percorsi assoluti e relativi allo spazio di lavoro. |
glossary | map<string,string> | Sovrascritti dei termini post-traduzione. Consapevole del confine delle parole (gestisce C++, .NET). |
categoryId | string | Azure Custom Translator categoria — la tua manopola di industria/dominio (legale, medico, tono marketing, ecc.). Inviato come ?category=.... |
textType | "plain" | "html" | Di default è plain. Usa html solo se i valori delle tue risorse contengono frammenti HTML reali. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Come trattare termini profani in output tradotti. |
profanityMarker | "Asterisk" | "Tag" | Significato solo quando profanityAction è "Marked". |
allowFallback | boolean | Impostato su false fallire la traduzione quando il tuo categoryId non ha un deployment per una località target invece di tornare al modello generale. |
apiVersion | string | Versione dell'API REST del traduttore. Di default è 3.0. |
maxRetries | integer | Tentativi massimi di ritentativi sulle risposte HTTP transitorie (408, 425, 429, 500, 502, 503, 504). Di default è 5. Il totale delle chiamate HTTP per richiesta è 1 + maxRetries. |
retryBackoffMs | integer | Limiti (ms) su qualsiasi singolo sonno di retrocesso. Di default è 30000. L'intestazione Retry-After di Azure viene onorata esattamente quando presente; altrimenti si usa un backoff esponenziale jittered, limitato a questo valore. |
protectPlaceholders | boolean | Di default è true. Quando sono attivi, token come {{name}}, ${var}, {0}, {0:N2}, %s, %1$s e HTML vengono sostituiti con token sentinella prima della traduzione e ripristinati successivamente. Disabilita solo quando la sorgente contiene intenzionalmente letterali a forma di segnaposto. |
customPlaceholderPatterns | string[] | Pattern regex extra (senza delimitatori) aggiunti al set segnaposto predefinito, ad esempio <<.+?>> per la sintassi personalizzata dei token. Le regex non valide vengono ignorate. |
noTranslatePatterns | string[] | I pattern glob si abbinavano alle chiavi a livello di parser (JSON doted path, RESX name, PO msgid, unità XLIFF id, chiave INI/restext). Le chiavi corrispondenti vengono eliminate dalla richiesta e passate mantenendo il loro valore sorgente. |
Ordine di carico
- L'azione legge input espliciti dal flusso di lavoro.
- Carica la configurazione YAML da
configPath. - Per ogni campo condiviso, l'input vince; altrimenti viene utilizzato il valore YAML.
- I valori uniti sono validati. Gli enum non validi (ad esempio
profanityAction: Mask) fanno fallire rapidamente l'azione con un messaggio chiaro.
Tono e industria, in termini semplici
L'API Azure AI Translator v3 non ha una singola manopola di tono. Due impostazioni si combinano per darti quasi sempre lo stesso controllo:
- Settore / dominio: usa
categoryIdper indicare una categoria Azure Custom Translator addestrata sul tuo corpus — legale, tecnico, medico, marketing o altro. Questa è la leva più forte per il tono, la voce del marchio e il vocabolario. - Testo superficiale: Usa il Glossario per bloccare nomi di marchi e termini di prodotto parola per parola, e usa
profanityActionper eliminare termini volgari quando si mira alla localizzazione per un pubblico più giovane.