Spusťte hromadný překlad zveřejněných dokumentů schématu na pozadí do cílových jazyků.
Zařaďte na pozadí překlad všech zveřejněných dokumentů z jedné nebo více komponentních schémat do sady cílových jazyků. Výsledky se vkládají nebo aktualizují v tabulce translations, jakmile se každý překlad dokončí.
Koncový bod: POST /translation
Autorizace: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Pole | Typ | Povinné | Poznámky |
|---|---|---|---|
websiteId | uuid | ano | Web obsahující zdrojové dokumenty. |
schemaNames | string[] | ano* | Schémata komponent k překladu. Duplicitní názvy jsou odstraněny. |
schemaName | string | ano* | Zastaralá alternativa pro odeslání jednoho schématu. |
languages | string[] | ano | Podporované kódy cílových jazyků. Duplicitní kódy jsou odstraněny. |
* Uveďte buď schemaNames, nebo schemaName.
Zohledňují se pouze zveřejněné dokumenty s ne-null hodnotou zveřejněného obsahu.
{
"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"
}
Vrací:
202 Accepted, když jsou překlady zařazeny do fronty200 OK, když jsou všechny překlady již aktuální| Pole | Popis |
|---|---|
job_id | Identifikátor používaný k získání průběhu úlohy. |
status | Aktuální stav úlohy. |
documents_processed | Počet nalezených způsobilých zdrojových dokumentů. |
translations_scheduled | Počet dvojic dokument–jazyk ve frontě. |
translations_skipped | Počet přeskočených, protože jejich zdrojové hashe jsou aktuální. |
translations_completed | Počet úspěšně přeložených. |
translations_failed | Počet neúspěšných. |
reused | Zda se odpověď týká existující aktivní úlohy. |
Možné stavy úlohy jsou:
preparingqueuedrunningcompletedcompleted_with_errorsfailedKaždá dvojice dokument–jazyk uchovává hash SHA-256 zveřejněného obsahu zdrojového dokumentu.
Překlad se přeskočí, když jeho uložený zdrojový hash odpovídá aktuálnímu zveřejněnému obsahu. Díky tomu lze koncový bod volat opakovaně bez překládání nezměněného obsahu.
Pokud se zveřejněný obsah změní během aktivní totožné úlohy, služba nový požadavek odmítne. Odešlete jej znovu po dokončení aktivní úlohy.
Překlad probíhá asynchronně po úvodní odpovědi.
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 — schémata nebo jazyky chybí, jazyk není podporovaný nebo dávka překračuje nakonfigurovaný limit401 Unauthorized — chybí nebo je neplatný token Bearer409 Conflict — odpovídající práce je aktivní, ale zveřejněný zdrojový obsah se změnil500 Internal Server Error — zdrojové dokumenty se nepodařilo připravit nebo selhala databázová operaceZískejte nejnovější průběh překladové úlohy.
Koncový bod: GET /translation-jobs/{job_id}
Autorizace: Bearer JWT (WorkOS)
Odpověď používá stejný objekt úlohy jako POST /translation, pouze se aktualizovaným stavem a počty.
{
"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 — chybí nebo je neplatný token Bearer404 Not Found — úloha neexistuje nebo už není uchovánaPřekladové úlohy jsou v současnosti uchovávány v paměti. Stav úloh se ztratí při restartu překladové služby a nasazení s více instancemi vyžaduje lepkavé směrování.