Die Hintergrundübersetzung der veröffentlichten Dokumente eines Schemas in Zielsprachen starten.
Hintergrundübersetzung aller veröffentlichten Dokumente aus einem oder mehreren Komponentenschemas in eine Reihe von Zielsprachen in die Warteschlange einreihen. Die Ergebnisse werden nach Abschluss jeder Übersetzung in die Tabelle translations eingefügt oder dort aktualisiert.
Endpunkt: POST /translation
Authentifizierung: Bearer-JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Feld | Typ | Erforderlich | Hinweise |
|---|---|---|---|
websiteId | uuid | ja | Website, die die Quelldokumente enthält. |
schemaNames | string[] | ja* | Zu übersetzende Komponentenschemas. Doppelte Namen werden entfernt. |
schemaName | string | ja* | Veraltete Alternative zur Übermittlung eines einzelnen Schemas. |
languages | string[] | ja | Unterstützte Sprachcodes der Zielsprachen. Doppelte Codes werden entfernt. |
* Entweder schemaNames oder schemaName angeben.
Es werden nur veröffentlichte Dokumente mit nicht-leerem veröffentlichtem Inhalt berücksichtigt.
{
"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"
}
Rückgabewerte:
202 Accepted, wenn Übersetzungen in die Warteschlange eingereiht wurden200 OK, wenn jede Übersetzung bereits aktuell ist| Feld | Beschreibung |
|---|---|
job_id | Bezeichner zum Abrufen des Auftragsfortschritts. |
status | Aktueller Status des Auftrags. |
documents_processed | Anzahl der gefundenen geeigneten Quelldokumente. |
translations_scheduled | Anzahl der eingereihten Dokument-Sprach-Paare. |
translations_skipped | Anzahl der übersprungenen Paare, weil ihre Quell-Hashes aktuell sind. |
translations_completed | Anzahl der erfolgreich übersetzten Paare. |
translations_failed | Anzahl der fehlgeschlagenen Paare. |
reused | Gibt an, ob sich die Antwort auf einen bestehenden aktiven Auftrag bezieht. |
Mögliche Auftragsstatus sind:
preparingqueuedrunningcompletedcompleted_with_errorsfailedJedes Dokument-Sprach-Paar speichert einen SHA-256-Hash des veröffentlichten Inhalts des Quelldokuments.
Eine Übersetzung wird übersprungen, wenn der gespeicherte Quell-Hash mit dem aktuellen veröffentlichten Inhalt übereinstimmt. Dadurch kann der Endpunkt wiederholt aufgerufen werden, ohne unveränderte Inhalte erneut zu übersetzen.
Wenn sich der veröffentlichte Inhalt ändert, während ein gleichwertiger Auftrag aktiv ist, lehnt der Dienst die neue Anfrage ab. Reichen Sie sie erneut ein, nachdem der aktive Auftrag abgeschlossen ist.
Die Übersetzung wird nach der ersten Antwort asynchron ausgeführt.
completed_with_errors abgeschlossen.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 — Schemas oder Sprachen fehlen, eine Sprache wird nicht unterstützt oder der Batch überschreitet das konfigurierte Limit401 Unauthorized — Bearer-Token fehlt oder ist ungültig409 Conflict — Eine passende Verarbeitung ist aktiv, aber der veröffentlichte Quellinhalt hat sich geändert500 Internal Server Error — Quelldokumente konnten nicht vorbereitet werden oder ein Datenbankvorgang ist fehlgeschlagenDen aktuellen Fortschritt eines Übersetzungsauftrags abrufen.
Endpunkt: GET /translation-jobs/{job_id}
Authentifizierung: Bearer-JWT (WorkOS)
Die Antwort verwendet dasselbe Auftragsobjekt wie POST /translation, mit aktualisiertem Status und aktualisierten Fortschrittszählern.
{
"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 fehlt oder ist ungültig404 Not Found — Der Auftrag existiert nicht oder wird nicht mehr aufbewahrtÜbersetzungsaufträge werden derzeit im Arbeitsspeicher aufbewahrt. Der Auftragsstatus geht verloren, wenn der Übersetzungsdienst neu gestartet wird, und Bereitstellungen mit mehreren Instanzen erfordern Sticky Routing.