Презапишете пътя с входа configPath, ако ви трябва нестандартна локация.
Схема
# .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.*"Полева справка
| Поле | Тип | Бележки |
|---|---|---|
sourceLocale | string | Връща се към sourceLocale входа, ако не е настроен. Също така се препраща към Translator като from=<locale>, така че късите низове не се откриват автоматично. |
toLocales | string[] | Или масив, или низ, разделен със запетая. |
include / exclude | string[] | Моделите на глоба, оценени спрямо абсолютни и относителни на работното пространство пътища. |
glossary | map<string,string> | Преодоляване на термини след превода. Осъзнаване на границите на думите (обработва C++, .NET). |
categoryId | string | Azure Custom Translator категория — вашият регулатор за индустрия/домейн (правен, медицински, маркетингов тон и др.). Изпратено като ?category=.... |
textType | "plain" | "html" | По подразбиране е plain. Използвайте html само ако стойностите на ресурсите ви съдържат реални HTML фрагменти. |
profanityAction | "NoAction" | "Marked" | "Deleted" | Как да третираме руфанни термини в преведените изходи. |
profanityMarker | "Asterisk" | "Tag" | Смислено е само когато profanityAction е "Marked". |
allowFallback | boolean | Настрой false да се провали преводът, когато categoryId ти няма внедряване за целева локация, вместо да се върнеш към общия модел. |
apiVersion | string | Версия на REST API за преводач. По подразбиране е 3.0. |
maxRetries | integer | Максимални опити за повторни опити на преходни HTTP отговори (408, 425, 429, 500, 502, 503, 504). По подразбиране е 5. Общият брой HTTP обаждания на заявка е 1 + maxRetries. |
retryBackoffMs | integer | Лимит (ms) на всяко едно заспиване назад. По подразбиране е 30000. Заглавието Retry-After на Azure се отбелязва точно когато е там; в противен случай се използва треперещ експоненциален откат, ограничен до тази стойност. |
protectPlaceholders | boolean | По подразбиране е true. Когато са включени, токени като {{name}}, ${var}, {0}, {0:N2}, %s, %1$s и HTML обекти се заменят със sentinel токени преди превода и се възстановяват след това. Изключвайте само когато изходният код умишлено съдържа заместващи литерали. |
customPlaceholderPatterns | string[] | Добавени са допълнителни regex шаблони (без делимитери), добавени към стандартния набор за запълване, напр. <<.+?>> за персонализиран синтаксис на токени. Невалидните regex-и се игнорират. |
noTranslatePatterns | string[] | Шаблоните на Glob съвпадаха с ключове на ниво парсер (JSON пунктиран път, RESX name, PO msgid, XLIFF единица id, INI/restext ключ). Съответстващите ключове се изпускат от заявката и преминават през тях с запазена изходна стойност. |
Ред на зареждане
- Действието чете явни входни данни от работния процес.
- Зарежда YAML конфигурацията от
configPath. - За всяко споделено поле входът печели; в противен случай се използва стойността YAML.
- Обединените стойности се валидират. Невалидните enums (напр.
profanityAction: Mask) карат действието бързо да се провали с ясно съобщение.
Тон и индустрия, в прости думи
Azure AI Translator v3 API няма единен тонален бутон. Две настройки се комбинират, за да ви дадат почти същия контрол:
- Индустрия / домейн: използвай
categoryId, за да посочиш категория Azure Custom Translator, обучена на собствения си корпус — юридически, технически, медицински, маркетингов или каквото и да е друго. Това е най-силният лост за тон, бранд глас и речник. - Текст на повърхността: Използвайте Речник, за да заключите имената на марките и продуктовите термини дословно, и използвайте
profanityAction, за да изтриете нецензурни термини при таргетиране на локализация към по-млада аудитория.