Політики фолбеку
Що робить провайдер із ненастроєною регіональною мовою — і чому жоден не їде на 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 — каталог провайдерів