DĂ©marrer la traduction groupĂ©e en arriĂšre-plan des documents publiĂ©s dâun schĂ©ma vers les langues cibles.
Mettre en file dâattente la traduction en arriĂšre-plan de tous les documents publiĂ©s provenant dâun ou plusieurs schĂ©mas de composants vers un ensemble de langues cibles. Les rĂ©sultats sont insĂ©rĂ©s ou mis Ă jour dans la table translations Ă mesure que chaque traduction est terminĂ©e.
Endpoint : POST /translation
Authentification : JWT Bearer (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Champ | Type | Obligatoire | Notes |
|---|---|---|---|
websiteId | uuid | oui | Site web contenant les documents sources. |
schemaNames | string[] | oui* | Schémas de composants à traduire. Les noms en double sont supprimés. |
schemaName | string | oui* | Alternative héritée pour soumettre un seul schéma. |
languages | string[] | oui | Codes des langues cibles prises en charge. Les codes en double sont supprimés. |
* Fournir soit schemaNames, soit schemaName.
Seuls les documents publiĂ©s dont le contenu publiĂ© nâest pas nul sont pris en compte.
{
"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"
}
Renvoie :
202 Accepted lorsque les traductions sont mises en file dâattente200 OK lorsque toutes les traductions sont dĂ©jĂ Ă jour| Champ | Description |
|---|---|
job_id | Identifiant utilisé pour récupérer la progression du job. |
status | Ătat actuel du job. |
documents_processed | Nombre de documents sources admissibles trouvés. |
translations_scheduled | Nombre de paires document-langue mises en file dâattente. |
translations_skipped | Nombre dâĂ©lĂ©ments ignorĂ©s, car leurs hachages sources sont Ă jour. |
translations_completed | Nombre de traductions réussies. |
translations_failed | Nombre dâĂ©checs. |
reused | Indique si la réponse fait référence à un job actif existant. |
Les Ă©tats possibles dâun job sont :
preparingqueuedrunningcompletedcompleted_with_errorsfailedChaque paire document-langue stocke un hachage SHA-256 du contenu publié du document source.
Une traduction est ignorĂ©e lorsque son hachage source stockĂ© correspond au contenu publiĂ© actuel. Cela permet dâappeler lâendpoint Ă plusieurs reprises sans retraduire le contenu inchangĂ©.
Si le contenu publiĂ© change alors quâun job Ă©quivalent est actif, le service rejette la nouvelle requĂȘte. Soumettez-la Ă nouveau une fois le job actif terminĂ©.
La traduction sâexĂ©cute de maniĂšre asynchrone aprĂšs la rĂ©ponse initiale.
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 â des schĂ©mas ou des langues sont manquants, une langue nâest pas prise en charge ou le lot dĂ©passe la limite configurĂ©e401 Unauthorized â le jeton bearer est manquant ou invalide409 Conflict â un traitement correspondant est actif, mais le contenu source publiĂ© a changĂ©500 Internal Server Error â les documents sources nâont pas pu ĂȘtre prĂ©parĂ©s ou une opĂ©ration de base de donnĂ©es a Ă©chouĂ©RĂ©cupĂ©rer la progression la plus rĂ©cente dâun job de traduction.
Endpoint : GET /translation-jobs/{job_id}
Authentification : JWT Bearer (WorkOS)
La rĂ©ponse utilise le mĂȘme objet de job que celui renvoyĂ© par POST /translation, avec un Ă©tat et des compteurs de progression mis Ă jour.
{
"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 â le jeton bearer est manquant ou invalide404 Not Found â le job nâexiste pas ou nâest plus conservĂ©Les jobs de traduction sont actuellement conservĂ©s en mĂ©moire. LâĂ©tat du job est perdu lorsque le service de traduction redĂ©marre, et les dĂ©ploiements Ă plusieurs instances nĂ©cessitent un routage persistant.