Bắt đầu dịch hàng loạt nền cho các tài liệu đã xuất bản của một lược đồ sang các ngôn ngữ đích.
Xếp hàng dịch nền cho tất cả các tài liệu đã xuất bản từ một hoặc nhiều lược đồ thành phần sang một tập hợp ngôn ngữ đích. Kết quả được chèn mới hoặc cập nhật vào bảng translations khi mỗi bản dịch hoàn tất.
Điểm cuối: POST /translation
Xác thực: Bearer JWT (WorkOS)
{
\"websiteId\": \"<uuid>\",
\"schemaNames\": [\"post\", \"hero\"],
\"languages\": [\"fr\", \"es\", \"de\"]
}
| Trường | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
websiteId | uuid | có | Trang web chứa các tài liệu nguồn. |
schemaNames | string[] | có* | Các lược đồ thành phần cần dịch. Tên trùng lặp sẽ bị loại bỏ. |
schemaName | string | có* | Giải pháp kế thừa để gửi một lược đồ duy nhất. |
languages | string[] | có | Mã ngôn ngữ đích được hỗ trợ. Mã trùng lặp sẽ bị loại bỏ. |
* Cung cấp schemaNames hoặc schemaName.
Chỉ những tài liệu đã xuất bản với nội dung đã xuất bản khác null mới được tính.
{
\"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\"
}
Trả về:
202 Accepted khi các bản dịch được xếp hàng200 OK khi mọi bản dịch đều đã cập nhật| Trường | Mô tả |
|---|---|
job_id | Định danh dùng để truy xuất tiến độ công việc. |
status | Trạng thái hiện tại của công việc. |
documents_processed | Số lượng tài liệu nguồn đủ điều kiện được tìm thấy. |
translations_scheduled | Số cặp tài liệu-ngôn ngữ đã được xếp hàng. |
translations_skipped | Số lượng bị bỏ qua vì hàm băm nguồn của chúng đang cập nhật. |
translations_completed | Số lượng dịch thành công. |
translations_failed | Số lượng thất bại. |
reused | Cho biết phản hồi có tham chiếu đến một công việc đang hoạt động hay không. |
Các trạng thái công việc có thể có là:
preparingqueuedrunningcompletedcompleted_with_errorsfailedMỗi cặp tài liệu-ngôn ngữ lưu một hàm băm SHA-256 của nội dung đã xuất bản của tài liệu nguồn.
Một bản dịch sẽ bị bỏ qua khi hàm băm nguồn đã lưu khớp với nội dung đã xuất bản hiện tại. Điều này cho phép điểm cuối được gọi lặp lại mà không dịch lại nội dung không thay đổi.
Nếu nội dung đã xuất bản thay đổi trong khi một công việc tương đương đang hoạt động, dịch vụ sẽ từ chối yêu cầu mới. Gửi lại sau khi công việc đang hoạt động hoàn tất.
Việc dịch chạy bất đồng bộ sau phản hồi ban đầu.
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 — thiếu lược đồ hoặc ngôn ngữ, một ngôn ngữ không được hỗ trợ, hoặc lô vượt quá giới hạn cấu hình401 Unauthorized — thiếu hoặc không hợp lệ mã thông báo bearer409 Conflict — công việc khớp đang hoạt động nhưng nội dung nguồn đã xuất bản đã thay đổi500 Internal Server Error — không thể chuẩn bị tài liệu nguồn hoặc một thao tác cơ sở dữ liệu thất bạiLấy tiến trình mới nhất của một công việc dịch.
Điểm cuối: GET /translation-jobs/{job_id}
Xác thực: Bearer JWT (WorkOS)
Phản hồi sử dụng cùng đối tượng công việc được trả về bởi POST /translation, với trạng thái và số đếm tiến độ đã cập nhật.
{
\"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 — thiếu hoặc không hợp lệ mã thông báo bearer404 Not Found — công việc không tồn tại hoặc không còn được lưu giữCác công việc dịch hiện được lưu trữ trong bộ nhớ. Trạng thái công việc sẽ mất khi dịch vụ dịch khởi động lại, và các triển khai đa phiên bản yêu cầu định tuyến dính.