profound-logoProfound CMS
⌘K
Admin
Theme
DocsTutorialBlogPhilosophy
DocsTutorialBlogPhilosophy

Hybrid

Параметрична маршрутизаціяTypes of ComponentsSetup server sent events (SSE) content refetchInstall Profound CMS as a proxyСкрипти у конструкторі шаблонівProject ScaffoldingMedia Library

Headless

Швидкий стартSplit Screen JSON Component Builder with LLMComponent Zod Pull

REST API

Огляд REST APIgetПідключення вебсайту до APIgetGET /routesgetGET /routegetGET /blocksgetотримати-блоки-з-CEL-кешемgetGET /blocks/generatedgetGET /componentsgetGET /components/{name}getGET /dataset/{schema_name}getGET /content-changes (SSE)patchPATCH /dataset/{schema_name}postПереклад публікаційpatchОновлення перекладівgetGET /usagepostPOST /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-хеш опублікованого вмісту вихідного документа.

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

Якщо опублікований вміст змінюється, поки аналогічне завдання активне, сервіс відхиляє новий запит. Надішліть його знову після завершення активного завдання.

Поведінка оброблення

Переклад виконується асинхронно після початкової відповіді.

  • Роботу обробляють із обмеженою паралельністю.
  • Тимчасові збої повторно запускаються із затримкою (backoff).
  • Успішні результати зберігаються одразу після завершення.
  • Окремі збої під час інференсу або збереження фіксуються в завданні.
  • Частково успішне завдання завершується зі статусом 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 — завдання не існує або більше не зберігається

Наразі завдання перекладу зберігаються в пам’яті. Статус завдання втрачається під час перезапуску сервісу перекладу, а для розгортань із кількома екземплярами потрібна маршрутизація з фіксацією сеансів (sticky routing).

Continue Reading
Previous‹PATCH /dataset/{schema_name}NextОновлення перекладів›