Перезапишіть шлях за допомогою 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 | Ліміт (мс) на будь-якому одному відступному сні. За замовчуванням 30000. Заголовок Azure Retry-After вшановується саме тоді, коли він присутній; інакше використовується експоненціальне відскокування з обмеженням на цьому значенні. |
protectPlaceholders | boolean | За замовчуванням true. Коли токени ввімкнені, такі як {{name}}, ${var}, {0}, {0:N2}, %s, %1$s та HTML-сутності, замінюються на токени Sentinel перед перекладом і відновлюються після цього. Вимкніть лише тоді, коли джерело навмисно містить тимчасові літерали. |
customPlaceholderPatterns | string[] | Додаткові шаблони regex (без розділівників) додаються до стандартного набору заповнювачів, наприклад, <<.+?>> для синтаксису кастомних токенів. Некоректні виключні виключі ігноруються. |
noTranslatePatterns | string[] | Шаблони Glob співставлялися з ключами рівня парсера (JSON пунктирний шлях, RESX name, PO msgid, XLIFF unit id, INI/restext key). Відповідні ключі відкидаються із запиту і проходять із збереженням їхнього вихідного значення. |
Порядок завантаження
- Дія зачитує явні введення з робочого процесу.
- Він завантажує конфігурацію YAML з
configPath. - Для кожного спільного поля виграє вхід; інакше використовується значення YAML.
- Об'єднані значення перевіряються. Некоректні enums (наприклад,
profanityAction: Mask) призводять до швидкої невдачі дії з чітким повідомленням.
Тон і індустрія, простими словами
Azure AI Translator v3 API не має єдиної ручки тону. Два режими разом дають майже однаковий контроль:
- Галузь / домен: використовуйте
categoryId, щоб вказати на категорію Azure Custom Translator, навчену на власному корпусі — юридичному, технічному, медичному, маркетинговому чи будь-чому іншому. Це найсильніший важіль для тону, брендового голосу та словникового запасу. - Поверхневий текст: Використовуйте Глосарій, щоб дослівно закріпити назви брендів і терміни продукту, а також використовуйте
profanityActionдля видалення нецензурних термінів при таргетингу локалізації для молодшої аудиторії.