Start massiv baggrundsoversættelse af et skemas udgivne dokumenter til målsprog.
Sæt baggrundsoversættelse af alle udgivne dokumenter fra en eller flere komponentskemaer i kø til et sæt målsprog. Resultater indsættes eller opdateres i translations-tabellen, efterhånden som hver oversættelse fuldføres.
Slutpunkt: POST /translation
Godkendelse: Bærer-JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Felt | Type | Påkrævet | Noter |
|---|---|---|---|
websiteId | uuid | ja | Website, der indeholder kildedokumenterne. |
schemaNames | string[] | ja* | Komponentskemaer, der skal oversættes. Dobbelt forekommende navne fjernes. |
schemaName | string | ja* | Ældre alternativ til at indsende ét enkelt skema. |
languages | string[] | ja | Understøttede målsprogskoder. Dobbelt forekommende koder fjernes. |
* Angiv enten schemaNames eller schemaName.
Kun udgivne dokumenter med udgivet indhold, der ikke er null, medtages.
{
"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"
}
Returnerer:
202 Accepted, når oversættelser er sat i kø200 OK, når alle oversættelser allerede er aktuelle| Felt | Beskrivelse |
|---|---|
job_id | Identifikator, der bruges til at hente jobfremdrift. |
status | Aktuel jobstatus. |
documents_processed | Antal kvalificerede kildedokumenter, der blev fundet. |
translations_scheduled | Antal dokument-sprogspar, der er sat i kø. |
translations_skipped | Antal, der blev sprunget over, fordi deres kildehashes er aktuelle. |
translations_completed | Antal, der er oversat med succes. |
translations_failed | Antal, der mislykkedes. |
reused | Om svaret henviser til et eksisterende aktivt job. |
Mulige jobstatusser er:
preparingqueuedrunningcompletedcompleted_with_errorsfailedHvert dokument-sprogspar gemmer en SHA-256-hash af det udgivne indhold i kildedokumentet.
En oversættelse springes over, når den gemte kildehash matcher det aktuelle udgivne indhold. Dette gør det muligt at kalde slutpunktet gentagne gange uden at oversætte uændret indhold igen.
Hvis udgivet indhold ændrer sig, mens et tilsvarende job er aktivt, afviser tjenesten den nye anmodning. Indsend den igen, efter det aktive job er afsluttet.
Oversættelsen kører asynkront efter det indledende svar.
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 — skemaer eller sprog mangler, et sprog er ikke understøttet, eller batchen overskrider den konfigurerede grænse401 Unauthorized — bearer-token mangler eller er ugyldigt409 Conflict — matchende arbejde er aktivt, men det udgivne kildeindhold blev ændret500 Internal Server Error — kildedokumenterne kunne ikke forberedes, eller en databaseoperation mislykkedesHent den seneste fremdrift for et oversættelsesjob.
Slutpunkt: GET /translation-jobs/{job_id}
Godkendelse: Bærer-JWT (WorkOS)
Svaret bruger det samme jobobjekt, der returneres af POST /translation, med opdateret status og opdaterede fremdriftstællinger.
{
"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-token mangler eller er ugyldigt404 Not Found — jobbet findes ikke eller gemmes ikke længereOversættelsesjob gemmes i øjeblikket i hukommelsen. Jobstatus går tabt, når oversættelsestjenesten genstartes, og implementeringer med flere instanser kræver sticky routing.