tp-sync-api

Tài liệu API cho tích hợp bản dịch của TranslatePress (TP Sync API)

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Đã 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ào Sửa đổi lúc trong ISO8601).,
  • lỗi (tùy chọn, nếu có lỗi): Mảng lỗi
    • chỉ 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.