Pornește traducerea în bloc, în fundal, a documentelor publicate ale unei scheme în limbile țintă.
Pune în coadă pentru traducere în fundal toate documentele publicate din una sau mai multe scheme de componente într-un set de limbi țintă. Rezultatele sunt inserate sau actualizate în tabelul translations pe măsură ce fiecare traducere este finalizată.
Endpoint: POST /translation
Autentificare: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Câmp | Tip | Obligatoriu | Note |
|---|---|---|---|
websiteId | uuid | da | Site-ul web care conține documentele sursă. |
schemaNames | string[] | da* | Schemele de componente care trebuie traduse. Numele duplicate sunt eliminate. |
schemaName | string | da* | Alternativă moștenită pentru trimiterea unei singure scheme. |
languages | string[] | da | Codurile limbilor țintă acceptate. Codurile duplicate sunt eliminate. |
* Furnizați fie schemaNames, fie schemaName.
Sunt luate în considerare numai documentele publicate cu conținut publicat nenul.
{
"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"
}
Returnează:
202 Accepted când traducerile sunt puse în coadă200 OK când fiecare traducere este deja actualizată| Câmp | Descriere |
|---|---|
job_id | Identificator utilizat pentru a prelua progresul lucrării. |
status | Starea curentă a lucrării. |
documents_processed | Numărul documentelor sursă eligibile găsite. |
translations_scheduled | Numărul perechilor document-limbă puse în coadă. |
translations_skipped | Numărul elementelor omise deoarece hash-urile sursă sunt actualizate. |
translations_completed | Numărul traducerilor finalizate cu succes. |
translations_failed | Numărul traducerilor eșuate. |
reused | Indică dacă răspunsul se referă la o lucrare activă existentă. |
Stările posibile ale lucrării sunt:
preparingqueuedrunningcompletedcompleted_with_errorsfailedFiecare pereche document-limbă stochează un hash SHA-256 al conținutului publicat al documentului sursă.
O traducere este omisă atunci când hash-ul sursă stocat corespunde conținutului publicat actual. Astfel, endpointul poate fi apelat în mod repetat fără a retraduce conținutul neschimbat.
Dacă conținutul publicat se modifică în timp ce o lucrare echivalentă este activă, serviciul respinge noua solicitare. Trimiteți-o din nou după finalizarea lucrării active.
Traducerea rulează asincron după răspunsul inițial.
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 — schemele sau limbile lipsesc, o limbă nu este acceptată sau lotul depășește limita configurată401 Unauthorized — tokenul bearer lipsește sau este invalid409 Conflict — există o lucrare corespunzătoare activă, dar conținutul sursă publicat s-a modificat500 Internal Server Error — documentele sursă nu au putut fi pregătite sau o operațiune asupra bazei de date a eșuatPreia cel mai recent progres al unei lucrări de traducere.
Endpoint: GET /translation-jobs/{job_id}
Autentificare: Bearer JWT (WorkOS)
Răspunsul utilizează același obiect de lucrare returnat de POST /translation, cu starea și valorile progresului actualizate.
{
"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 — tokenul bearer lipsește sau este invalid404 Not Found — lucrarea nu există sau nu mai este păstratăLucrările de traducere sunt păstrate momentan în memorie. Starea lucrării se pierde la repornirea serviciului de traducere, iar implementările cu mai multe instanțe necesită rutare persistentă.