Overskriv stien med configPath input, hvis du har brug for en ikke-standard placering.
Skema
# .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.*"Feltreference
| Bane | Type | Noter |
|---|---|---|
sourceLocale | string | Den falder tilbage til sourceLocale input, hvis den ikke er sat. Også videresendt til Oversætteren som from=<locale>, så korte strenge ikke automatisk opdages. |
toLocales | string[] | Enten et array eller en komma-separeret streng. |
include / exclude | string[] | Glob-mønstre evalueret mod absolutte og arbejdsområde-relative stier. |
glossary | map<string,string> | Efter-oversættelse overstyrer termer. Ord-grænsebevidst (håndterer C++, .NET). |
categoryId | string | Azure Custom Translator kategori — din branche-/domæneknap (juridisk, medicinsk, markedsføringstone osv.). Sendt som ?category=.... |
textType | "plain" | "html" | Som standard er plain. Brug kun html, hvis dine ressourceværdier indeholder ægte HTML-fragmenter. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Hvordan man behandler bandeord i oversat output. |
profanityMarker | "Asterisk" | "Tag" | Kun meningsfuldt, når profanityAction er "Marked". |
allowFallback | boolean | Sæt til false til at fejle oversættelsen, når din categoryId ikke har nogen udrulning til et målområde, i stedet for at falde tilbage til den generelle model. |
apiVersion | string | Oversætter REST API-version. Som standard er 3.0. |
maxRetries | integer | Maksimale genforsøg på transiente HTTP-svar (408, 425, 429, 500, 502, 503, 504). Som standard er 5. Det samlede antal HTTP-kald pr. forespørgsel er 1 + maxRetries. |
retryBackoffMs | integer | Grænse (MS) for enhver enkelt backoff-søvn. Som standard er 30000. Azures Retry-After header bliver respekteret præcis, når den er til stede; ellers bruges jitteret eksponentiel backoff, begrænset til denne værdi. |
protectPlaceholders | boolean | Som standard er true. Når de er tændt, erstattes tokens som {{name}}, ${var}, {0}, {0:N2}, %s, %1$s og HTML-enheder med sentinel-tokens før oversættelse og gendannes bagefter. Deaktiver kun, når kildekoden bevidst indeholder pladsholderformede literals. |
customPlaceholderPatterns | string[] | Ekstra regex-mønstre (uden afgrænsere) tilføjet til standardpladsholdersættet, f.eks. <<.+?>> til brugerdefineret tokensyntaks. Ugyldige regexes ignoreres. |
noTranslatePatterns | string[] | Glob-mønstre matchede mod parser-niveau nøgler (JSON sti, RESX name, PO msgid, XLIFF enhed id, INI/restext-nøgle). Matchende nøgler fjernes fra forespørgslen og sendes videre med deres kildeværdi bevaret. |
Lasterækkefølge
- Handlingen læser eksplicitte input fra workflowet.
- Den indlæser YAML-konfigurationen fra
configPath. - For hvert delt felt vinder inputtet; ellers bruges YAML-værdien.
- De sammenlagte værdier valideres. Ugyldige enums (f.eks.
profanityAction: Mask) får handlingen til hurtigt at fejle med en klar besked.
Tone og industri, i klare vendinger
Azure AI Translator v3 API'en har ikke en enkelt toneknap. To indstillinger kombineres for at give dig det meste af den samme kontrol:
- Branche / domæne: brug
categoryIdtil at pege på en Azure Custom Translator-kategori, der er trænet på dit eget korpus — juridisk, teknisk, medicinsk, marketing eller noget andet. Dette er den stærkeste løftestang for tone, brandets stemme og ordforråd. - Overfladetekst: Brug Ordliste til at låse brandnavne og produkttermer ordret, og brug
profanityActiontil at fjerne bandeord, når du målretter lokalisering til yngre målgrupper.