Tài liệu API cho tích hợp bản dịch TranslatePress (TP Sync API)
API này cung cấp hai điểm cuối để làm việc với các chuỗi dịch trong plugin TranslatePress. Ngôn ngữ cơ sở là tiếng Anh (en_us). Tất cả các yêu cầu đều yêu cầu xác thực qua Bearer token (lấy trong admin WordPress dưới menu "TP Sync").
URL cơ bản: https://your-site.com/wp-json/tp-sync/v1/
1. Lấy các dòng cần dịch (GET /keys)
Đầu cuối này trả về danh sách các chuỗi từ từ điển TranslatePress cho ngôn ngữ được chỉ định. Mỗi chuỗi bao gồm ID (theo định dạng 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 tháng, tạo lúc và cập nhật lúc luôn luôn null (không được yêu cầu trong SQL).
Tham số yêu cầu
| Tham số | Loại | Bắt buộc | Mô tả | Giá trị mặc định |
|---|---|---|---|---|
lang |
chuỗi | Vâng | Mã ngôn ngữ (ví dụ, de cho tiếng Đức fr đối với tiếng Pháp). Mã ngắn được chuẩn hóa (de → de_de). |
— |
trang |
số nguyên | Không | Số trang để phân trang. | 1 |
giới hạn |
số nguyên | Không | Số dòng trên mỗi 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ụ,) 2025-10-01T00:00:00Z). 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ụ về 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": "Xin 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ả |
|---|---|---|
khóa_id |
chuỗi | ID duy nhất của dòng: từ điển: {id} (id — số ghi trong bảng wp_trp_dictionary_en_us_{lang}). |
gốc |
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 tiến hành, 2 — đã dịch. |
tạo lúc |
chuỗi | Ngày tạo (ISO8601 null — không được yêu cầu). |
cập nhật lúc |
chuỗi | Ngày cập nhật cuối cùng (ISO8601 null — không được yêu cầu). |
Siêu dữ liệumeta)
total_countTổng số dòng (bao gồm cả bộ lọc).trangTrang hiện tại.giới hạnGiới hạn trên mỗi trang.số trangTổng số trang.trang tiếp theo: URL của trang tiếp theonull, nếu là cái cuối cùng).
Lỗi
- 401: Thiếu hoặc sai tiêu đề Authorization.
- 403: Mã thông báo không hợp lệ.
- 404: Ngôn ngữ không tìm thấy trong TranslatePress (bảng bị thiếu).
2. Cập nhật bản dịch (POST /translations)
Đầu cuối này cập nhật bản dịch cho nhiều dòng cùng lúc (theo lô). Truyền một mảng các đối tượng với ID dòng, ngôn ngữ và bản dịch mới. Cập nhật trạng thái thành "đã dịch" (2) và trường cập nhật lúc.
Thân yêu cầu (JSON)
Mảng bản dịch với các đối tượng:
{
"translations": [
{
"key_id": "dictionary:123",
"language_iso": "de",
"translation": "Xin chào thế giới"
},
{
"key_id": "dictionary:124",
"language_iso": "de",
"translation": "Chào mừng"
}
]
}
Cài đặt
| Trường trong đối tượng | Loại | Bắt buộc | Mô tả |
|---|---|---|---|
khóa_id |
chuỗi | Vâng | ID dòng: từ điển: {id} (từ GET /keys). |
mã_iso_ngôn_ngữ |
chuỗi | Vâng | Mã ngôn ngữ (de → de_de, được chuẩn hóa tự động). |
bản 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ụ về 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": "Xin chào Thế giới"
}
]
}'
Ví dụ về phản hồi (JSON)
{
"translations": [
{
"key_id": "dictionary:123",
"language_iso": "de",
"translation": "Hallo Welt",
"modified_at": "2025-10-15T12:00:00Z"
}
],
"errors": [
{
"index": 1,
"key_id": "dictionary:999",
"error": "Không tìm thấy khóa 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ập nhật thành công (trả về dữ liệu đầu vào +đã sửa vàotheo định dạng ISO8601).lỗi(tùy chọn, nếu có thất bại): Mảng lỗi.chỉ mụcChỉ số của phần tử trong mảng gốc.khóa_id: ID dòng có vấn đề (nếu có).lỗiVăn bản lỗi (ví dụ: "Thiếu các trường bắt buộc", "Định dạng key_id không hợp lệ. Mong đợi: dictionary:{id}", "Không tìm thấy ngôn ngữ", "Không tìm thấy khóa trong cơ sở dữ liệu", "Cập nhật cơ sở dữ liệu thất bại").
Lỗi
- 400: Dữ liệu không hợp lệ (rỗng/không phải mảng)
bản dịch, thiếu trường). - 401/403: Vấn đề về xác thực.
- 404: Ngôn ngữ hoặc khóa không tìm thấy (bảng/bản ghi không tồn tại).
Các ngôn ngữ được hỗ trợ
Mã ngắn được tự động chuẩn hóa (dựa trên ánh xạ trong mã). Đối với những mã không xác định: {code}_{code} (ví dụ, pl → pl_pl).
- en → en_us
- đến
- id → id_id
- ko → ko_kr
- tr → tr_tr
- vi → vi
- ru → ru_ru
- fr → fr_fr
- de → de_de
- nó
- đến
- pt → pt_pt
- zh → zh_cn
- es → es_es
Lấy mã thông báo
- Trong quản trị WordPress: Menu Đồng bộ TP → Nút "Generate New Token" (mã thông báo 32 ký tự, được tạo tự động khi chạy lần đầu).
- Token được lưu trữ trong tùy chọn
token_api_đồng_bộ_tp.