tp-sync-api

TranslatePress çeviri entegrasyonu için API Dokümantasyonu (TP Sync API)

TranslatePress çeviri entegrasyonu için API Dokümantasyonu (TP Sync API)

Bu API, TranslatePress eklentisindeki çeviri dizeleri ile çalışmak için iki uç nokta sağlar. Temel dil İngilizcedir (en_us). Tüm istekler, WordPress yönetim panelinde "TP Sync" menüsü altında alınan Bearer jetonu ile yetkilendirme gerektirir.

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

1. Çevrilecek satırların alınması (GET /keys)

Bu uç nokta, belirtilen dil için TranslatePress sözlüğünden bir dizi satır döner. Her satır, ID'yi içerir (formatta sözlük: {id}), orijinal İngilizce metin, mevcut çeviri, durum ve sayfalama meta verileri. ID DESC sıralaması (en yeni üstte). Tarihler, oluşturulma tarihi ve güncellendi her zaman null (SQL'de istenmez).

İstek parametreleri

Parametre Tür Zorunlu Açıklama Varsayılan değer
lang dizi Evet Dil kodu (örneğin, de Almanca için fr Fransızca için). Kısa kodlar normalleştirilir (de → de_de).
sayfa tam sayı Hayır Sayfalama için sayfa numarası. 1
limit tam sayı Hayır Sayfa başına satır sayısı (minimum 1, maksimum 500). 100
güncellenme tarihi dizi Hayır Güncelleme tarihine göre filtre (ISO8601, örneğin,) 2025-10-01T00:00:00Z). Sadece bu tarihten sonra güncellenen satırları döndürür.

Başlıklar

  • Yetkilendirme: Bearer {токен} (zorunlu)

İstek örneği (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"

Örnek yanıt (JSON)

{
  "keys": [
    {
      "key_id": "dictionary:123",
      "original": "Hello World",
      "translated": "Merhaba Dünya",
      "status": 2,
      "created_at": null,
      "updated_at": null
    },
    {
      "key_id": "dictionary:124",
      "original": "Welcome",
      "translated": "Hoşgeldiniz",
      "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"
  }
}

Yanıttaki alanların açıklaması

Alan Tür Açıklama
anahtar_id dizi Satırın benzersiz kimliği: sözlük: {id} (id — tablodaki kayıt numarası wp_trp_dictionary_en_us_{lang}).
orijinal dizi İngilizce orijinal metin.
çevirildi dizi Belirtilen dil için mevcut çeviri (boş olabilir).
durum tam sayı Durum: 0 — çevrilmedi, 1 — işlemde, 2 — çevrildi.
oluşturulma tarihi dizi Oluşturulma Tarihi (ISO8601 null — talep edilmedi).
güncellendi dizi Son güncelleme tarihi (ISO8601 null — talep edilmedi).

Meta verilermeta)

  • total_countToplam satır sayısı (filtreler dahil).
  • sayfaGeçerli sayfa.
  • limitSayfa başına limit.
  • sayfa sayısıToplam sayfa sayısı.
  • sonraki sayfa: Sonraki sayfanın URL'sinull, eğer sonuncusu).

Hatalar

  • 401: Authorization başlığı eksik veya geçersiz.
  • 403: Geçersiz belirteç.
  • 404: TranslatePress'te dil bulunamadı (tablo yok).

2. Çevirilerin güncellenmesi (POST /translations)

Bu uç nokta, bir seferde birden fazla satır için çevirileri günceller (toplu). Satır kimliği, dil ve yeni çeviriyi içeren nesne dizisi geçirilir. Durumu "çevrildi" (2) olarak ve alanı günceller güncellendi.

İstek gövdesi (JSON)

Dizi çeviriler nesnelerle:

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Merhaba Dünya"
    },
    {
      "key_id": "dictionary:124",
      "language_iso": "de",
      "translation": "Hoş geldiniz"
    }
  ]
}

Ayarlar

Nesnedeki alan Tür Zorunlu Açıklama
anahtar_id dizi Evet Satır ID'si: sözlük: {id} (GET /keys üzerinden).
dil_iso_kodu dizi Evet Dil kodu (de → de_de, otomatik olarak normalize edilir).
çeviri dizi Evet Yeni çeviri metni (olduğu gibi kaydedilir).

Başlıklar

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

İstek örneği (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": "Merhaba Dünya"
      }
    ]
  }'

Örnek yanıt (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": "Veritabanında anahtar bulunamadı"
    }
  ]
}

Yanıttaki alanların açıklaması

  • çevirilerBaşarıyla güncellenen çeviriler dizisi (girdi verisini + olarak döndürür değiştirilme tarihi ISO8601).
  • hatalar (isteğe bağlı, başarısızlık varsa): Hata dizisi.
    • dizinOrijinal dizideki öğenin indeksi.
    • anahtar_id: Sorunlu satırın kimliği (uygulanabilir ise).
    • hataHata metni (örnekler: "Gerekli alanlar eksik", "Geçersiz key_id formatı. Beklenen: dictionary:{id}", "Dil bulunamadı", "Anahtar veritabanında bulunamadı", "Veritabanı güncellemesi başarısız oldu").

Hatalar

  • 400: Geçersiz veri (boş/dizi değil) çeviriler, alanların olmaması).
  • 401/403: Yetkilendirme sorunları.
  • 404: Dil veya anahtar bulunamadı (tablo/kayıt yok).

Desteklenen diller

Kısa kodlar otomatik olarak(normalizasyon) koddaki eşlemeye göre normalleştirilir. Bilinmeyenler için: {code}_{code} (örneğin, pl → pl_pl).

  • en → en_us
  • ar
  • id → id_id
  • ko → ko_kr
  • tr → tr_tr
  • vi → vi
  • ru → ru_ru
  • fr → fr_fr
  • de → de_de
  • o
  • için
  • pt → pt_pt
  • zh → zh_cn
  • es → es_es

Jeton alma

  • WordPress yönetim panelinde: Menü TP Senkronizasyonu → "Generate New Token" düğmesi (32 karakterlik token, ilk çalıştırmada otomatik olarak oluşturulur).
  • Token seçenek içinde saklanır tp_senkronizasyonu_api_anahtarı.