Rozpocznij masowe tłumaczenie w tle opublikowanych dokumentów schematu na języki docelowe.
Kolejkowanie w tle tłumaczenia wszystkich opublikowanych dokumentów z jednego lub większej liczby schematów komponentów na zestaw języków docelowych. Wyniki są zapisywane za pomocą operacji upsert w tabeli translations po zakończeniu każdego tłumaczenia.
Endpoint: POST /translation
Uwierzytelnianie: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Pole | Typ | Wymagane | Uwagi |
|---|---|---|---|
websiteId | uuid | tak | Witryna zawierająca dokumenty źródłowe. |
schemaNames | string[] | tak* | Schematy komponentów do przetłumaczenia. Zduplikowane nazwy są usuwane. |
schemaName | string | tak* | Starsza alternatywa umożliwiająca przesłanie pojedynczego schematu. |
languages | string[] | tak | Obsługiwane kody języków docelowych. Zduplikowane kody są usuwane. |
* Należy podać schemaNames albo schemaName.
Uwzględniane są wyłącznie opublikowane dokumenty z niepustą opublikowaną treścią.
{
"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"
}
Zwraca:
202 Accepted — gdy tłumaczenia zostaną umieszczone w kolejce200 OK — gdy każde tłumaczenie jest już aktualne| Pole | Opis |
|---|---|
job_id | Identyfikator używany do pobierania postępu zadania. |
status | Bieżący status zadania. |
documents_processed | Liczba znalezionych kwalifikujących się dokumentów źródłowych. |
translations_scheduled | Liczba par dokument-język umieszczonych w kolejce. |
translations_skipped | Liczba pominiętych, ponieważ ich hasze źródłowe są aktualne. |
translations_completed | Liczba pomyślnie przetłumaczonych elementów. |
translations_failed | Liczba elementów, których tłumaczenie się nie powiodło. |
reused | Czy odpowiedź odnosi się do istniejącego aktywnego zadania. |
Możliwe statusy zadania:
preparingqueuedrunningcompletedcompleted_with_errorsfailedKażda para dokument-język przechowuje skrót SHA-256 opublikowanej treści dokumentu źródłowego.
Tłumaczenie jest pomijane, gdy zapisany skrót źródłowy odpowiada bieżącej opublikowanej treści. Dzięki temu endpoint można wywoływać wielokrotnie bez ponownego tłumaczenia niezmienionej treści.
Jeśli opublikowana treść zmieni się, gdy równoważne zadanie będzie aktywne, usługa odrzuci nowe żądanie. Należy przesłać je ponownie po zakończeniu aktywnego zadania.
Tłumaczenie jest wykonywane asynchronicznie po udzieleniu początkowej odpowiedzi.
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 — brakuje schematów lub języków, język nie jest obsługiwany albo partia przekracza skonfigurowany limit401 Unauthorized — token bearer nie został podany lub jest nieprawidłowy409 Conflict — istnieją pasujące aktywne zadania, ale opublikowana treść źródłowa uległa zmianie500 Internal Server Error — nie można było przygotować dokumentów źródłowych lub operacja na bazie danych nie powiodła sięPobieranie najnowszych informacji o postępie zadania tłumaczeniowego.
Endpoint: GET /translation-jobs/{job_id}
Uwierzytelnianie: Bearer JWT (WorkOS)
Odpowiedź korzysta z tego samego obiektu zadania, który jest zwracany przez POST /translation, ze zaktualizowanym statusem i licznikami postępu.
{
"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 — token bearer nie został podany lub jest nieprawidłowy404 Not Found — zadanie nie istnieje lub nie jest już przechowywaneZadania tłumaczeniowe są obecnie przechowywane w pamięci. Status zadania zostaje utracony po ponownym uruchomieniu usługi tłumaczeniowej, a wdrożenia wieloinstancyjne wymagają kierowania żądań do tej samej instancji.