Spustite hromadný preklad na pozadí publikovaných dokumentov schémy do cieľových jazykov.
Zaradí na pozadí preklad všetkých publikovaných dokumentov z jednej alebo viacerých schém komponentov do množiny cieľových jazykov. Výsledky sa postupne vkladajú alebo aktualizujú do tabuľky translations, keď sa každý preklad dokončí.
Koncový bod: POST /translation
Autentifikácia: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Pole | Typ | Povinné | Poznámky |
|---|---|---|---|
websiteId | uuid | áno | Webová lokalita obsahujúca zdrojové dokumenty. |
schemaNames | string[] | áno* | Schémy komponentov na preklad. Duplicitné názvy sa odstránia. |
schemaName | string | áno* | Staršia alternatíva na odoslanie jednej schémy. |
languages | string[] | áno | Podporované kódy cieľových jazykov. Duplicitné kódy sa odstránia. |
* Poskytnite buď schemaNames, alebo schemaName.
Zohľadňujú sa iba publikované dokumenty s neprázdnym publikovaným obsahom.
{
"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"
}
Vracia:
202 Accepted — keď sú preklady zaradené do frontu200 OK — keď sú všetky preklady už aktuálne| Pole | Popis |
|---|---|
job_id | Identifikátor používaný na získanie priebehu úlohy. |
status | Aktuálny stav úlohy. |
documents_processed | Počet nájdených vyhovujúcich zdrojových dokumentov. |
translations_scheduled | Počet dvojíc dokument–jazyk vo fronte. |
translations_skipped | Počet vynechaných, pretože ich hash zdroja je aktuálny. |
translations_completed | Počet úspešne preložených. |
translations_failed | Počet neúspešných. |
reused | Informácia, či odpoveď odkazuje na existujúcu aktívnu úlohu. |
Možné stavy úlohy sú:
preparingqueuedrunningcompletedcompleted_with_errorsfailedKaždá dvojica dokument–jazyk uchováva hash SHA-256 publikovaného obsahu zdrojového dokumentu.
Preklad sa vynechá, keď uložený hash zdroja zodpovedá aktuálnemu publikovanému obsahu. Vďaka tomu je možné koncový bod vyvolať opakovane bez prekladania nezmeneného obsahu.
Ak sa publikovaný obsah zmení počas toho, ako je aktívna ekvivalentná úloha, služba novú požiadavku odmietne. Odošlite ju znova po dokončení aktívnej úlohy.
Preklad prebieha asynchrónne po úvodnej odpovedi.
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 — chýbajú schémy alebo jazyky, jazyk nie je podporovaný alebo dávka prekračuje nakonfigurovaný limit401 Unauthorized — chýba bearer token alebo je neplatný409 Conflict — zodpovedajúca práca je aktívna, ale publikovaný zdrojový obsah sa zmenil500 Internal Server Error — zdrojové dokumenty sa nepodarilo pripraviť alebo zlyhala databázová operáciaZískajte najnovší priebeh úlohy prekladu.
Koncový bod: GET /translation-jobs/{job_id}
Autentifikácia: Bearer JWT (WorkOS)
Odpoveď používa rovnaký objekt úlohy ako odpoveď POST /translation, s aktualizovaným stavom a počtami priebehu.
{
"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 — chýba bearer token alebo je neplatný404 Not Found — úloha neexistuje alebo sa už neuchovávaÚlohy prekladu sa momentálne uchovávajú v pamäti. Stav úlohy sa stratí pri reštarte prekladovej služby a nasadenia s viacerými inštanciami vyžadujú sticky routing.