Головна/Початок роботи/Швидкий старт ENУКРРУС API-довідник (ReDoc) ↗

Швидкий старт

Один виклик без налаштувань — і три речі, які варто знати про відповідь.

Налаштовувати нічого не треба. 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. Див. Нормалізація вхідних кодів.

Далі