Ξεκινήστε μαζική μετάφραση στο παρασκήνιο των δημοσιευμένων εγγράφων ενός σχήματος σε γλώσσες-στόχους.
Τοποθετήστε σε ουρά τη μετάφραση στο παρασκήνιο όλων των δημοσιευμένων εγγράφων από ένα ή περισσότερα σχήματα στοιχείων σε ένα σύνολο γλωσσών-στόχων. Τα αποτελέσματα εισάγονται ή ενημερώνονται στον πίνακα translations καθώς ολοκληρώνεται κάθε μετάφραση.
Σημείο πρόσβασης: POST /translation
Έλεγχος ταυτότητας: Bearer JWT (WorkOS)
{
"websiteId": "<uuid>",
"schemaNames": ["post", "hero"],
"languages": ["fr", "es", "de"]
}
| Πεδίο | Τύπος | Απαιτείται | Σημειώσεις |
|---|---|---|---|
websiteId | uuid | ναι | Ιστότοπος που περιέχει τα έγγραφα προέλευσης. |
schemaNames | string[] | ναι* | Σχήματα στοιχείων προς μετάφραση. Τα διπλότυπα ονόματα αφαιρούνται. |
schemaName | string | ναι* | Παραδοσιακή εναλλακτική για την υποβολή ενός μόνο σχήματος. |
languages | string[] | ναι | Υποστηριζόμενοι κωδικοί γλωσσών-στόχων. Τα διπλά αντίγραφα κωδικών αφαιρούνται. |
schemaNames είτε schemaName.Λαμβάνονται υπόψη μόνο τα δημοσιευμένα έγγραφα με περιεχόμενο δημοσίευσης που δεν είναι null.
{
"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"
}
Επιστρέφει:
202 Accepted όταν οι μεταφράσεις έχουν τοποθετηθεί σε ουρά200 OK όταν κάθε μετάφραση είναι ήδη ενημερωμένη| Πεδίο | Περιγραφή |
|---|---|
job_id | Αναγνωριστικό που χρησιμοποιείται για την ανάκτηση της προόδου της εργασίας. |
status | Τρέχουσα κατάσταση της εργασίας. |
documents_processed | Αριθμός κατάλληλων εγγράφων προέλευσης που βρέθηκαν. |
translations_scheduled | Αριθμός ζευγών εγγράφου-γλώσσας που τοποθετήθηκαν σε ουρά. |
translations_skipped | Αριθμός που παραλείφθηκαν επειδή τα hash προέλευσης είναι ενημερωμένα. |
translations_completed | Αριθμός που μεταφράστηκαν επιτυχώς. |
translations_failed | Αριθμός που απέτυχαν. |
reused | Αν η απόκριση αναφέρεται σε υφιστάμενη ενεργή εργασία. |
Οι πιθανές καταστάσεις εργασίας είναι:
preparingqueuedrunningcompletedcompleted_with_errorsfailedΚάθε ζεύγος εγγράφου-γλώσσας αποθηκεύει ένα hash SHA-256 του δημοσιευμένου περιεχομένου του εγγράφου προέλευσης.
Μια μετάφραση παραλείπεται όταν το αποθηκευμένο hash προέλευσης ταιριάζει με το τρέχον δημοσιευμένο περιεχόμενο. Αυτό επιτρέπει την επαναλαμβανόμενη κλήση του σημείου πρόσβασης χωρίς εκ νέου μετάφραση αμετάβλητου περιεχομένου.
Εάν το δημοσιευμένο περιεχόμενο αλλάξει ενώ είναι ενεργή μια ισοδύναμη εργασία, η υπηρεσία απορρίπτει το νέο αίτημα. Υποβάλετέ το ξανά αφού ολοκληρωθεί η ενεργή εργασία.
Η μετάφραση εκτελείται ασύγχρονα μετά την αρχική απόκριση.
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 — λείπουν σχήματα ή γλώσσες, μία γλώσσα δεν υποστηρίζεται, ή η παρτίδα υπερβαίνει το ρυθμισμένο όριο401 Unauthorized — λείπει ή είναι άκυρο το διακριτικό φορέα409 Conflict — υπάρχει ενεργή αντίστοιχη εργασία, αλλά το δημοσιευμένο περιεχόμενο προέλευσης άλλαξε500 Internal Server Error — δεν ήταν δυνατή η προετοιμασία των εγγράφων προέλευσης ή απέτυχε μια λειτουργία βάσης δεδομένωνΑνακτήστε την πιο πρόσφατη πρόοδο για μια εργασία μετάφρασης.
Σημείο πρόσβασης: GET /translation-jobs/{job_id}
Έλεγχος ταυτότητας: Bearer JWT (WorkOS)
Η απόκριση χρησιμοποιεί το ίδιο αντικείμενο εργασίας που επιστρέφεται από το POST /translation, με ενημερωμένη κατάσταση και μετρητές προόδου.
{
"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 — λείπει ή είναι άκυρο το διακριτικό φορέα404 Not Found — η εργασία δεν υπάρχει ή δεν διατηρείται πλέονΟι εργασίες μετάφρασης διατηρούνται προσωρινά στη μνήμη. Η κατάσταση της εργασίας χάνεται όταν γίνεται επανεκκίνηση της υπηρεσίας μετάφρασης και οι αναπτύξεις πολλαπλών παρουσιών απαιτούν sticky routing.