profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Collection of Pages with ComponentsТипове компонентиSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyСкриптове в конструктора на шаблониProject ScaffoldingМедийна библиотека

Без глава

Бърз стартSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

Преглед на REST APIgetСвързване на уебсайт към CMS APIgetGET /routesgetGET /routegetGET /blocksgetВземане на блокове с CEL кешgetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postПревод на публикацияpatchPATCH /translationsgetПолучаване на използванетоpostPOST /csvpatchPATCH /csv
All Systems Operational
Powered Byprofound-logo
Theme

Превод на публикация

Стартиране на групов фонов превод на публикуваните документи на схема на целеви езици.

Поставя на опашка фонов превод на всички публикувани документи от една или повече компонентни схеми на набор от целеви езици. Резултатите се добавят или актуализират в таблицата translations при завършването на всеки превод.

Крайна точка: POST /translation Удостоверяване: Bearer JWT (WorkOS)

Тяло на заявката

{
  "websiteId": "<uuid>",
  "schemaNames": ["post", "hero"],
  "languages": ["fr", "es", "de"]
}
ПолеТипЗадължителноБележки
websiteIduuidдаУебсайтът, съдържащ изходните документи.
schemaNamesstring[]да*Компонентните схеми за превод. Дублиращите се имена се премахват.
schemaNamestringда*Стара алтернатива за подаване на една схема.
languagesstring[]даПоддържаните кодове на целеви езици. Дублиращите се кодове се премахват.

* Посочете или 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Дали отговорът се отнася до съществуваща активна задача.

Възможните състояния на задачата са:

  • preparing
  • queued
  • running
  • completed
  • completed_with_errors
  • failed

Пропускане на актуалните преводи

Всяка двойка документ–език съхранява 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 — задачата не съществува или вече не се съхранява

Понастоящем задачите за превод се съхраняват в паметта. Състоянието на задачата се губи при рестартиране на услугата за превод, а внедряванията с множество инстанции изискват залепващо маршрутизиране.

Continue Reading
Previous‹PATCH /dataset/{schema_name}NextPATCH /translations›