Стартиране на групов фонов превод на публикуваните документи на схема на целеви езици.
Поставя на опашка фонов превод на всички публикувани документи от една или повече компонентни схеми на набор от целеви езици. Резултатите се добавят или актуализират в таблицата translations при завършването на всеки превод.
Крайна точка: POST /translation
Удостоверяване: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Поле | Тип | Задължително | Бележки |
|---|---|---|---|
websiteId | uuid | да | Уебсайтът, съдържащ изходните документи. |
schemaNames | string[] | да* | Компонентните схеми за превод. Дублиращите се имена се премахват. |
schemaName | string | да* | Стара алтернатива за подаване на една схема. |
languages | string[] | да | Поддържаните кодове на целеви езици. Дублиращите се кодове се премахват. |
* Посочете или schemaNames, или schemaName.
Разглеждат се само публикувани документи с ненулево публикувано съдържание.
{
"job_id": "<uuid>",
"website_id": "<uuid>",
"schema_name": null,
"schema_names": ["post", "hero"],
"languages": ["fr", "es", "de"],
"status": "queued",
"documents_processed": 12,
"translations_scheduled": 30,
"translations_skipped": 6,
"translations_completed": 0,
"translations_failed": 0,
"reused": false,
"created_at": "2026-07-15T18:00:00Z",
"updated_at": "2026-07-15T18:00:00Z"
}
Връща:
202 Accepted когато преводите са поставени на опашка200 OK когато всеки превод вече е актуален| Поле | Описание |
|---|---|
job_id | Идентификатор, използван за извличане на напредъка на задачата. |
status | Текущото състояние на задачата. |
documents_processed | Броят на намерените подходящи изходни документи. |
translations_scheduled | Броят на поставените на опашка двойки документ–език. |
translations_skipped | Броят на пропуснатите, тъй като хешовете на източниците им са актуални. |
translations_completed | Броят на успешно преведените. |
translations_failed | Броят на неуспешните. |
reused | Дали отговорът се отнася до съществуваща активна задача. |
Възможните състояния на задачата са:
preparingqueuedrunningcompletedcompleted_with_errorsfailedВсяка двойка документ–език съхранява SHA-256 хеш на публикуваното съдържание на изходния документ.
Преводът се пропуска, когато съхраненият хеш на източника съвпада с текущото публикувано съдържание. Това позволява крайната точка да бъде извиквана многократно, без непромененото съдържание да се превежда повторно.
Ако публикуваното съдържание се промени, докато еквивалентна задача е активна, услугата отхвърля новата заявка. Изпратете я отново, след като активната задача приключи.
Преводът се изпълнява асинхронно след първоначалния отговор.
completed_with_errors.curl -X POST '{TRANSLATION_API_URL}/translation' \
-H 'Authorization: Bearer <workos-jwt>' \
-H 'Content-Type: application/json' \
-d '{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es"]
}'
400 Bad Request — схемите или езиците липсват, езикът не се поддържа или пакетът надхвърля конфигурирания лимит401 Unauthorized — bearer токенът липсва или е невалиден409 Conflict — съответстваща работа е активна, но публикуваното изходно съдържание се е променило500 Internal Server Error — изходните документи не могат да бъдат подготвени или операцията с базата данни е неуспешнаИзвлича най-новия напредък по задача за превод.
Крайна точка: GET /translation-jobs/{job_id}
Удостоверяване: Bearer JWT (WorkOS)
Отговорът използва същия обект на задачата, върнат от POST /translation, с актуализирани състояние и броячи за напредъка.
{
"job_id": "<uuid>",
"website_id": "<uuid>",
"schema_name": null,
"schema_names": ["post", "hero"],
"languages": ["fr", "es"],
"status": "running",
"documents_processed": 12,
"translations_scheduled": 24,
"translations_skipped": 0,
"translations_completed": 16,
"translations_failed": 1,
"reused": false,
"created_at": "2026-07-15T18:00:00Z",
"updated_at": "2026-07-15T18:01:30Z"
}
curl '{TRANSLATION_API_URL}/translation-jobs/<job-id>' \
-H 'Authorization: Bearer <workos-jwt>'
401 Unauthorized — bearer токенът липсва или е невалиден404 Not Found — задачата не съществува или вече не се съхраняваПонастоящем задачите за превод се съхраняват в паметта. Състоянието на задачата се губи при рестартиране на услугата за превод, а внедряванията с множество инстанции изискват залепващо маршрутизиране.