tp-sync-api

Dokumentasi API untuk integrasi terjemahan TranslatePress (TP Sync API)

Dokumentasi API untuk integrasi terjemahan TranslatePress (TP Sync API)

API ini menyediakan dua endpoint untuk bekerja dengan string terjemahan dalam plugin TranslatePress. Bahasa dasar adalah bahasa Inggris (Inggris ASSemua permintaan memerlukan otentikasi melalui Bearer-token (didapatkan di halaman admin WordPress pada menu "TP Sync").

URL Dasar: https://your-site.com/wp-json/tp-sync/v1/

1. Mengambil string untuk diterjemahkan (GET /keys)

Endpoint ini mengembalikan daftar string dari kamus TranslatePress untuk bahasa yang ditentukan. Setiap string mencakup ID (dalam format, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") kamus:{id}Teks asli dalam bahasa Inggris, terjemahan saat ini, status dan metadata paginasi. Urutan berdasarkan ID DESC (terbaru di atas). Tanggal, Dibuat pada dan Diperbarui pada selalu null tidak diminta dalam SQL).

Parameter permintaan

Parameter Tipe Wajib Deskripsi Nilai default
Bahasa string Ya Kode bahasa (misalnya, de untuk bahasa Jerman,, fr untuk bahasa Prancis). Kode pendek dinormalisasi (de → de_de).
halaman bilangan bulat Tidak Nomor halaman untuk paginasi. 1
Batas bilangan bulat Tidak Jumlah baris per halaman (minimal 1, maksimal 500). 100
Diperbarui sejak string Tidak Saring berdasarkan tanggal pembaruan (ISO8601, misalnya, 2025-10-01T00:00:00Zinput=). Hanya mengembalikan baris yang diperbarui setelah tanggal ini.

Judul

  • Otorisasi: Bearer {токен} (wajib)

Contoh permintaan (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"

Contoh respons (JSON)

{
  "keys": [
    {
      "key_id": "dictionary:123",
      "original": "Hello World",
      "translated": "Halo Dunia",
      "status": 2,
      "created_at": null,
      "updated_at": null
    },
    {
      "key_id": "dictionary:124",
      "original": "Welcome",
      "translated": "Selamat datang",
      "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"
  }
}

Deskripsi bidang dalam respons

Kolom Tipe Deskripsi
ID kunci string ID baris unik: kamus:{id} id — nomor rekaman dalam tabel wp_trp_dictionary_en_us_{lang}).
asli string Teks asli dalam bahasa Inggris.
diterjemahkan string Terjemahan saat ini untuk bahasa yang ditentukan (bisa kosong).
status bilangan bulat Status: 0 — belum diterjemahkan, 1 — dalam proses, 2 — diterjemahkan.
Dibuat pada string Tanggal pembuatan (ISO8601, null — не запрашивается).
Diperbarui pada string Tanggal pembaruan terakhir (ISO8601) null — не запрашивается).

Metadata (meta)

  • Jumlah totalJumlah total baris (termasuk filter).
  • halamanHalaman saat ini.
  • BatasBatas halaman.
  • Jumlah halamanJumlah total halaman.
  • halaman berikutnyaURL halaman berikutnya (null, jika yang terakhir).

Kesalahan

  • 401: Header Authorization tidak ada atau tidak valid.
  • 403: Token tidak valid.
  • 404: Bahasa tidak ditemukan di TranslatePress (tabel tidak ada).

Pembaruan terjemahan (POST /translations)

Endpoint ini memperbarui terjemahan untuk beberapa string sekaligus (batch). Diberikan sebuah array objek yang berisi ID string, bahasa, dan terjemahan baru. Endpoint ini mengubah status menjadi "diterjemahkan" (2) serta field, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Diperbarui pada.

Badan Permintaan (JSON)

Array terjemahan dengan objek:

[
  {
    "key_id": "dictionary:123",
    "translation": "Halo Dunia"
  },
  {
    "key_id": "dictionary:124",
    "translation": "Selamat datang"
  }
]

Parameter

Bidang dalam objek Tipe Wajib Deskripsi
ID kunci string Ya ID baris: kamus:{id} dari GET /keys).
language_iso string Ya Kode bahasa (de → de_de, dinormalisasi secara otomatis).
terjemahan string Ya Teks terjemahan baru (tetap sama seperti adanya).

Judul

  • Otorisasi: Bearer {токен} (wajib)
  • Content-Type: application/json (wajib)

Contoh permintaan (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"
      }
    ]
  }'

Contoh respons (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Halo Dunia",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Kunci tidak ditemukan di database"
    }
  ]
}

Deskripsi bidang dalam respons

  • terjemahanArray terjemahan yang berhasil diperbarui (mengembalikan data masukan Diubah pada dalam ISO8601).,
  • kesalahan (opsional, jika ada kegagalan): Array kesalahan
    • indeksIndeks elemen dalam array asli.
    • ID kunciID baris bermasalah (jika berlaku).
    • kesalahanPesan kesalahan (contoh: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Kesalahan

  • 400: Data tidak valid (kosong/bukan array) terjemahan, tidak ada kolom).
  • 401/403: Masalah dengan otorisasi.
  • 404: Bahasa atau kunci tidak ditemukan (tabel/entri tidak ada).

Bahasa yang didukung

Kode pendek secara otomatis dinormalisasi (berdasarkan pemetaan dalam kode). Untuk yang tidak dikenal: masukan={code}_{code} misalnya, 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

Pengambilan token

  • Di bagian admin WordPress: Menu TP Sync → Tombol "Generate New Token" (token 32 karakter, dihasilkan secara otomatis saat pertama kali dijalankan).
  • Token disimpan dalam opsi tp_sync_api_token.