Language Service Wiki

Как каждый провайдер называет каждый язык — и как это у нас спросить.

Это вики для разработчиков Language Service: единого источника правды о языках, которые платформа умеет переводить, и о точной строке кода, которую API каждого провайдера ожидает для них.

Задача узкая и неблагодарная. Упрощённый китайский — это zh-CN для Yandex, zh-Hans для DeepL и Azure, zh-Hans-CN ещё для нескольких. Бразильский португальский приходит из интеграций как pt-BR, pt_BR, PT-BR или por-br. Ошибка здесь — не ошибка валидации, которую видно на тестах: это либо задача, упавшая на стороне провайдера, либо, что хуже, задача, которая тихо вернулась переведённой не в тот вариант.

Итак: пришлите любое написание и провайдера — получите точную строку, которую нужно положить в запрос.

GET /v1/resolve?provider=deepl_api&language=pt_BR
{ "query": "pt_BR", "provider": "deepl_api", "language": "pt-BR",
  "code": "PT-BR", "supported": true, "match": "exact" }

Без аутентификации

Здесь только открытые справочные данные — какие языки существуют и как они называются. Нет токена, который нужно получить, и нет заголовка, который нужно выставить. Редактирование каталога — другое дело: оно за логином на /admin.

Выберите свой путь

Вы… Начните здесь
Новичок — хочу, чтобы один вызов просто сработал Quickstart
Рантайм перевода, резолвящий source и target Resolution Ladder, далее Резолвинг всей задачи
Интеграция, принимающая коды снаружи Aliases and Normalisation, далее Нормализация входящих кодов
Переводите вызовы с хелперов консоли Migrating from the Console
Курируете каталог Admin Panel · Editing the Matrix
Запускаете или деплоите сервис Deployment · Rebuilding the Seed

Две идеи, которые стоит прочитать первыми

Один код на пару. Для любой (провайдер, язык) есть ровно одна строка, которую мы отправляем. Легаси-консоль допускала несколько и брала ту строку, которую база вернула первой — 330 пар были неоднозначными именно так. См. Core Concepts.

Каждый ответ говорит, как он получен. match отличает настроенный маппинг от разумного фолбэка, так что вызывающий, которому нужна точность, видит разницу. См. Resolution Ladder.

Справочник API

Интерактивный ReDoc отдаёт сам API. Однострочное описание каждой операции со ссылками на страницы — Endpoints Index.

Карта разделов

00 Начало работыQuickstart · Core Concepts · Errors and Conventions

01 ЯзыкиLanguage Catalog · Aliases and Normalisation

02 ПровайдерыProviders and Vendors · Fallback Policies

03 РезолвингResolution Ladder

04 АдминкаAdmin Panel · Editing the Matrix

05 ИнтеграцияMigrating from the Console

06 ЭксплуатацияDeployment · Rebuilding the Seed

07 РецептыРезолвинг языка · Резолвинг всей задачи · Нормализация входящих кодов · Закрепить код провайдера · Добавить язык · Подключить провайдера

08 СправочникEndpoints Index · Error Codes · Glossary