Överskriv vägen med configPath-ingången om du behöver en icke-standardplats.
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.*"Fältreferens
| Fält | Typ | Noter |
|---|---|---|
sourceLocale | string | Den faller tillbaka till sourceLocale ingång om den inte är inställd. Vidarebefordrade också till Translator som from=<locale> så att korta strängar inte automatiskt upptäcks. |
toLocales | string[] | Antingen en array eller en kommaseparerad sträng. |
include / exclude | string[] | Globmönster utvärderade mot absoluta och arbetsområdesrelativa vägar. |
glossary | map<string,string> | Termöverskridande efter översättning. Ordgränsmedveten (hanterar C++, .NET). |
categoryId | string | Azure Custom Translator kategori — din bransch-/domänknopp (juridisk, medicinsk, marknadsföringston, etc.). Skickad som ?category=.... |
textType | "plain" | "html" | Standardinställningen är plain. Använd html endast om dina resursvärden innehåller riktiga HTML-fragment. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Hur man behandlar grova termer i översatt utfall. |
profanityMarker | "Asterisk" | "Tag" | Endast meningsfullt när profanityAction är "Marked". |
allowFallback | boolean | Ställ in på false att misslyckas med översättningen när din categoryId inte har någon distribution för en mållokal istället för att falla tillbaka på den allmänna modellen. |
apiVersion | string | Translator REST API-version. Standardinställningen är 3.0. |
maxRetries | integer | Maximala försök på tillfälliga HTTP-svar (408, 425, 429, 500, 502, 503, 504). Ställer sig till 5. Totalt antal HTTP-anrop per förfrågan är 1 + maxRetries. |
retryBackoffMs | integer | Gräns (MS) på vilken enkel backoff-sömn som helst. Standardinställningen är 30000. Azures Retry-After rubrik är precis när den är närvarande; annars används jitterad exponentiell backoff, med ett tak på detta värde. |
protectPlaceholders | boolean | Standardinställningen är true. När de är aktiverade ersätts tokens som {{name}}, ${var}, {0}, {0:N2}, %s, %1$s och HTML-entiteter med sentinel-tokens före översättning och återställs efteråt. Inaktivera endast när källan medvetet innehåller platshållarformade literals. |
customPlaceholderPatterns | string[] | Extra regex-mönster (utan avgränsare) lades till standardplatshållaren, t.ex. <<.+?>> för anpassad tokensyntax. Ogiltiga regex-registreringar ignoreras. |
noTranslatePatterns | string[] | Glob-mönster matchade mot parser-nivånycklar (JSON prickad path, RESX name, PO msgid, XLIFF unit id, INI/restext-nyckel). Matchande nycklar tas bort från förfrågan och skickas vidare med sitt källvärde bevarat. |
Lastordning
- Åtgärden läser explicita indata från arbetsflödet.
- Den laddar YAML-konfigurationen från
configPath. - För varje delat fält vinner indatan; annars används YAML-värdet.
- De sammanslagna värdena valideras. Ogiltiga enums (t.ex.
profanityAction: Mask) gör att åtgärden misslyckas snabbt med ett tydligt meddelande.
Ton och industri, i klara termer
Azure AI Translator v3 API har inte en enda tonratt. Två inställningar kombineras för att ge dig nästan samma kontroll:
- Bransch / område: använd
categoryIdför att peka på en Azure Custom Translator-kategori som tränas på din egen korpus — juridisk, teknisk, medicinsk, marknadsföring eller något annat. Detta är den starkaste hävstången för ton, varumärkesröst och ordförråd. - Yttext: Använd Ordlista för att låsa varumärken och produkttermer ordagrant, och använd
profanityActionför att rensa bort grova termer när du riktar lokalisering till yngre målgrupper.