Политики фолбэка
Что делает провайдер с ненастроенным региональным языком — и почему ни один не едет на strict.
fallback_policy провайдера решает одно: что ответить для регионального языка без явной строки. Она никогда не влияет на базовые языки и никогда не перекрывает существующую строку.
Три политики
base_language
Отправить код базового языка. pt-BR → pt, de-CH → de, ar-EG → ar.
{ "language": "pt-BR", "code": "pt", "match": "base_language", "via_language": "pt" }
Вы теряете региональное различие, но получаете код, который провайдер наверняка понимает. Именно на этом едут все провайдеры, и именно это делает консоль сегодня.
passthrough
Отправить канонический код без изменений. pt-BR остаётся pt-BR.
{ "language": "pt-BR", "code": "pt-BR", "match": "passthrough" }
Для движков, чей набор принимаемых кодов не является стандартом: клиентская дообученная модель знает ровно те теги, на которых её учили, и обрезание до базового тега — худшая догадка, чем не обрезать.
strict
Ответить supported: false, code: null. Не гадать.
{ "language": "pt-BR", "code": null, "supported": false, "match": null }
Для API, отклоняющих неизвестные теги с 4xx, — после того, как вы скурировали, какие пары действительно работают. Ошибочная догадка там стоит упавшей задачи; упасть раньше дешевле.
Почему ни один не едет на strict
Соблазнительно пометить DeepL, Azure и Amazon как strict — их API действительно отдают 400 на неизвестные теги, и их notes это говорят.
Это сломало бы прод.
Фолбэк консоли — lang_region_list.code[:2], так что сегодня незамапленный pt-BR доходит до Amazon Translate как pt — и работает, потому что pt не является неизвестным тегом для Amazon. У Amazon 6 явных строк консоли на 87 активных региональных языков; остальные 81 резолвятся именно через это обрезание прямо сейчас. Засеять Amazon как strict означало бы превратить 81 рабочую пару в supported: false в тот день, когда сервис пошёл в бой.
Правило
strict — это опт-ин по провайдеру, включается после того, как действительно неподдерживаемые пары этого провайдера зафиксированы явно, а не до. Пометить пару неподдерживаемой — утверждение о факте; пометить провайдера strict — утверждение обо всём, что вы не проверяли.
Поле notes провайдера несёт шортлист кандидатов.
Пометить одну пару неподдерживаемой
strict нужен редко. Если вы знаете, что конкретная пара падает, зафиксируйте именно её — из матрицы, кнопкой ✕ Unsupported, или:
POST /admin/mapping
provider=deepl_api&language=ceb&action=unsupported
Это даёт supported: false для пары, которую вы проверили, и не трогает ни одну другую. См. Закрепить код провайдера.
Изменение политики
Админка → Providers → выберите провайдера → Fallback policy. Действует со следующего запроса; кеш каталога сбрасывается при записи.
Прежде чем переводить провайдера на strict, посмотрите на его счётчик derived в таблице покрытия. Это ровно то количество пар, которые начнут отвечать supported: false.
Далее
- Resolution Ladder — где политика стоит в порядке поиска
- Providers and Vendors — каталог провайдеров