Tài liệu API cho tích hợp bản dịch của TranslatePress (TP Sync API)
API này cung cấp hai điểm cuối để xử lý chuỗi bản dịch trong plugin TranslatePress. Ngôn ngữ cơ sở là tiếng Anh (Tiếng Anh (Mỹ)Tất cả các yêu cầu đều yêu cầu xác thực qua Bearer-token (có thể lấy ở trang quản trị WordPress trong mục "TP Sync").
URL cơ sở: https://your-site.com/wp-json/tp-sync/v1/
1. Lấy chuỗi để dịch (GET /keys)
Endpoint này trả về danh sách chuỗi từ từ điển TranslatePress cho ngôn ngữ đã chỉ định. Mỗi chuỗi bao gồm ID (theo định dạng, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") từ điển:{id}Văn bản gốc bằng tiếng Anh, bản dịch hiện tại, trạng thái và siêu dữ liệu phân trang. Sắp xếp theo ID DESC (mới nhất ở trên). Ngày, Ngày tạo và Đã cập nhật lúc luôn luôn null không được truy vấn trong SQL).
Tham số yêu cầu
| Tham số | Loại | Bắt buộc | Mô tả | Giá trị mặc định |
|---|---|---|---|---|
ngôn ngữ |
chuỗi | Vâng | Mã ngôn ngữ (ví dụ, de cho tiếng Đức,, fr cho tiếng Pháp). Mã ngắn được chuẩn hóa (de → de_de). |
— |
trang |
số nguyên | Không | Số trang cho phân trang. | 1 |
Giới hạn |
số nguyên | Không | Số dòng trên trang (tối thiểu 1, tối đa 500). | 100 |
Đã cập nhật từ |
chuỗi | Không | Bộ lọc theo ngày cập nhật (ISO8601, ví dụ như, 2025-10-01T00:00:00Zinput=). Chỉ trả về các dòng đã được cập nhật sau ngày này. |
— |
Tiêu đề
Ủy quyền: Bearer {токен}(bắt buộc)
Ví dụ yêu cầu (cURL)
curl -X GET "https://your-site.com/wp-json/tp-sync/v1/keys?lang=de&page=1&limit=50&updated_since=2025-10-01T00:00:00Z" \
-H "Authorization: Bearer your-api-token-here"
Ví dụ về phản hồi (JSON)
{
"keys": [
{
"key_id": "dictionary:123",
"original": "Hello World",
"translated": "Chào thế giới",
"status": 2,
"created_at": null,
"updated_at": null
},
{
"key_id": "dictionary:124",
"original": "Welcome",
"translated": "Chào mừng",
"status": 0,
"created_at": null,
"updated_at": null
}
],
"meta": {
"total_count": 150,
"page": 1,
"limit": 50,
"page_count": 3,
"next_page": "https://your-site.com/wp-json/tp-sync/v1/keys?lang=de&page=2&limit=50&updated_since=2025-10-01T00:00:00Z"
}
}
Mô tả các trường trong phản hồi
| Trường | Loại | Mô tả |
|---|---|---|
ID khóa |
chuỗi | ID dòng duy nhất: từ điển:{id} id — số thứ tự trong bảng wp_trp_dictionary_en_us_{lang}). |
original |
chuỗi | Văn bản gốc bằng tiếng Anh. |
đã dịch |
chuỗi | Bản dịch hiện tại cho ngôn ngữ được chỉ định (có thể trống). |
trạng thái |
số nguyên | Trạng thái: 0 — chưa dịch, 1 — đang dịch, 2 — đã dịch. |
Ngày tạo |
chuỗi | Ngày tạo (ISO8601, null — не запрашивается). |
Đã cập nhật lúc |
chuỗi | Ngày cập nhật cuối cùng (ISO8601) null — не запрашивается). |
Siêu dữ liệu (meta)
Tổng sốTổng số dòng (bao gồm các bộ lọc).trangTrang hiện tại.Giới hạnGiới hạn trên trang.Số trangTổng số trang.trang tiếp theoURL của trang tiếp theo (null, nếu là cái cuối cùng).
Lỗi
- 401: Thiếu tiêu đề Authorization hoặc tiêu đề không hợp lệ.
- 403: Mã thông báo không hợp lệ.
- 404: Không tìm thấy ngôn ngữ trong TranslatePress (bảng không có).
Cập nhật bản dịch (POST /translations)
Endpoint này cập nhật bản dịch cho nhiều chuỗi cùng lúc (batch). Một mảng các đối tượng với ID chuỗi, ngôn ngữ và bản dịch mới được truyền vào. Nó cập nhật trạng thái thành "đã dịch" (2) và trường, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Đã cập nhật lúc.
Nội dung yêu cầu (JSON)
Mảng bản dịch với các đối tượng:
[
{
"key_id": "dictionary:123",
"translation": "Xin chào Thế giới"
},
{
"key_id": "dictionary:124",
"translation": "Chào mừng"
}
]
Tham số
| Trường trong đối tượng | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
ID khóa |
chuỗi | Vâng | ID dòng: từ điển:{id} từ GET /keys). |
language_iso |
chuỗi | Vâng | Mã ngôn ngữ (de → de_de, được chuẩn hóa tự động). |
dịch |
chuỗi | Vâng | Văn bản dịch mới (giữ nguyên như cũ). |
Tiêu đề
Ủy quyền: Bearer {токен}(bắt buộc)Content-Type: application/json(bắt buộc)
Ví dụ yêu cầu (cURL)
curl -X POST "https://your-site.com/wp-json/tp-sync/v1/translations" \
-H "Authorization: Bearer your-api-token-here" \
-H "Content-Type: application/json" \
-d '{
"translations": [
{
"key_id": "dictionary:123",
"language_iso": "de",
"translation": "Hallo Welt"
}
]
}'
Ví dụ về phản hồi (JSON)
{
"translations": [
{
"key_id": "dictionary:123",
"language_iso": "de",
"translation": "Chào thế giới",
"modified_at": "2025-10-15T12:00:00Z"
}
],
"errors": [
{
"index": 1,
"key_id": "dictionary:999",
"error": "Khóa không được tìm thấy trong cơ sở dữ liệu"
}
]
}
Mô tả các trường trong phản hồi
bản dịchMảng bản dịch đã được cập nhật thành công (trả về dữ liệu đầu vàoSửa đổi lúctrong ISO8601).,lỗi(tùy chọn, nếu có lỗi): Mảng lỗichỉ mụcChỉ mục của phần tử trong mảng gốc.ID khóaID của dòng gặp vấn đề (nếu có).lỗiThông báo lỗi (ví dụ: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").
Lỗi
- 400: Dữ liệu không hợp lệ (trống/không phải mảng)
bản dịch, không có trường). - 401/403: Vấn đề về ủy quyền.
- 404: Ngôn ngữ hoặc khóa không được tìm thấy (bảng/bản ghi không tồn tại).
Ngôn ngữ được hỗ trợ
Mã ngắn được chuẩn hóa tự động (dựa trên ánh xạ trong mã). Đối với những mã không xác định: nhập={code}_{code} ví dụ, pl → pl_pl).
- en → en_us
- ar → ar
- id → id_id
- ko → ko_kr
- tr → tr_tr
- vi
- ru → ru_ru
- fr → fr_fr
- de → de_de
- it → it_it
- ja
- pt → pt_pt
- zh → zh_cn
- es → es_es
Nhận token
- Trong trang quản trị WordPress: Menu TP Sync → Nút "Generate New Token" (mã token 32 ký tự, được tạo tự động khi chạy lần đầu tiên).
- Token được lưu trữ trong tùy chọn
tp_sync_api_token.