Швидкий старт
Один виклик без налаштувань — і три речі, які варто знати про відповідь.
Налаштовувати нічого не треба. API публічний, без автентифікації, лише на читання.
Зарезолвити одну мову
curl "https://languages.service.custom.mt/v1/resolve?provider=deepl_api&language=pt_BR"
{
"query": "pt_BR",
"provider": "deepl_api",
"language": "pt-BR",
"code": "PT-BR",
"supported": true,
"match": "exact",
"matched_alias": null,
"via_language": null
}
code — це відповідь, рядок для запиту до провайдера. Решта полів її пояснює.
Три речі про цю відповідь
code повертається навіть коли він дорівнює вашому вводу. Не робіть окремий кейс для «нічого не змінилось» — завжди надсилайте те, що каже code. У цьому й суть: ваш код перестає знати, які провайдери примхливі.
language — канонічний код. Зберігайте саме його, а не те написання, яке ви отримали. pt_BR, PT-BR і por-br канонізуються в pt-BR, і саме зберігання канонічної форми робить два записи порівнюваними згодом.
match каже, наскільки ми впевнені. exact означає, що пару налаштували свідомо. Будь-що інше означає, що відповідь виведена — коректна й безпечна, але не курована. Повна драбина — Resolution Ladder.
Уся задача за один раунд-тріп
Задача перекладу потребує source і target; проєкт розгортає один source на багато targets. Спитайте все одразу:
curl -X POST https://languages.service.custom.mt/v1/resolve/batch \
-H 'Content-Type: application/json' \
-d '{"pairs":[
{"provider":"deepl_api","language":"en-GB"},
{"provider":"deepl_api","language":"pt_BR"}
]}'
Порядок відповіді збігається із запитом, і кожен елемент несе або result, або error — одна невідома мова ніколи не коштує вам решти батча.
Як назвати провайдера
Код каталогу (deepl_api) — канонічна форма, і він той самий, що у provider_credentials, тож один ідентифікатор працює в обох сервісах.
Провайдер також відгукується на будь-який зі своїх аліасів: коротку назву на кшталт deepl і будь-який інший ідентифікатор, який викликачі, як відомо, надсилають для цього рушія. GET /v1/providers/{code} повертає їх у полі aliases. Надсилайте той, який у вас є, — усі резолвляться в того самого провайдера. Див. Providers and Vendors.
Як назвати мову
Будь-яке зареєстроване написання; регістр і роздільники ігноруються. zh_hans, ZH-HANS і zh-Hans — один ключ. Див. Aliases and Normalisation.
Коли нічого не знайдено
{ "error": { "code": "language_not_found",
"message": "Unknown language code: 'xx-YY'",
"details": { "language": "xx-YY" } } }
Розгалужуйтесь по error.code, ніколи по тексту. Повний перелік — Error Codes.
Якщо ви чистите список кодів і волієте класифікувати, а не ловити винятки, беріть /v1/normalize — він віддає 200 з known: false замість 404. Див. Нормалізація вхідних кодів.
Далі
- Core Concepts — чотири сутності, якими оперує сервіс
- Resolution Ladder — як обчислюється
match - Endpoints Index — усі операції на одній сторінці