TranslatePress çevirileri entegrasyonu için API dokümantasyonu (TP Sync API)

TranslatePress çevirileri entegrasyonu için API dokümantasyonu (TP Sync API)

Этот API предоставляет два эндпоинта для работы со строками переводов в плагине TranslatePress. Базовый язык — английский (en_us). Tüm istekler Bearer token ile yetkilendirme gerektirir (WordPress yönetici panelinde "TP Sync" menüsünden alınır).

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

1. Çeviri için dizeleri alma (GET /keys)

Bu uç nokta, belirtilen dil için TranslatePress sözlüğünden bir dize listesi döndürür. Her dize ID içerir (şu formatta, sözlük:{id}), İngilizce orijinal metin, mevcut çeviri, durum ve sayfalama meta verileri. ID DESC'ye göre sıralama (yeniler üstte). Tarihler, created_at ve updated_at her zaman null (SQL'de istenmez).

İstek parametreleri

Parametre, Tür Zorunlu Açıklama Varsayılan değer
lang dize Evet Код языка (например, 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
sınır tam sayı Hayır Sayfa başına satır sayısı (minimum 1, maksimum 500). 100
updated_since dize Hayır Фильтр по дате обновления (ISO8601, например, 2025-10-01T00:00:00Z). Yalnızca bu tarihten sonra güncellenen satırları döndürür. —

Başlıklar

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

Örnek istek (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": "Hallo Welt",
      "status": 2,
      "created_at": null,
      "updated_at": null
    },
    {
      "key_id": "dictionary:124",
      "original": "Welcome",
      "translated": "",
      "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
key_id dize Benzersiz satır ID'si: sözlük:{id} id — tablodaki kayıt numarası wp_trp_dictionary_en_us_{lang}).
orijinal dize İngilizce orijinal metin.
çevrildi dize Belirtilen dil için geçerli çeviri (boş olabilir).
durum tam sayı Durum: 0 — çevrilmedi, 1 — devam ediyor, 2 — çevrildi.
created_at dize Oluşturma tarihi (ISO8601, null — istenmez).
updated_at dize Дата последнего обновления (ISO8601, null — istenmez).

Meta veriler (meta)

  • total_count: Toplam satır sayısı (filtreler dikkate alınarak).
  • sayfa: Geçerli sayfa.
  • sınır: Sayfa başına limit.
  • page_count=: Toplam sayfa sayısı.
  • sonraki_sayfa: URL следующей страницы (null, sonuncuysa).

Hatalar

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

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

Bu endpoint, birden çok dizenin çevirilerini tek seferde günceller (toplu işlem). Dize ID’si, dil ve yeni çeviriyi içeren bir nesne dizisi iletilir. Durumu "çevrildi" (2) ve alanı olarak günceller, updated_at.

İstek gövdesi (JSON)

Dizi çeviriler nesnelerle:

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Hallo Welt"
    },
    {
      "key_id": "dictionary:124",
      "language_iso": "de",
      "translation": "Willkommen"
    }
  ]
}

Ayarlar

Nesnedeki alan, Tür Zorunlu Açıklama
key_id dize Evet Satır ID'si: sözlük:{id} (GET /keys kaynağından).
language_iso dize Evet Dil kodu (de → de_de, otomatik olarak normalleştirilir).
Çeviri dize Evet Новый текст перевода (сохраняется как есть).

Başlıklar

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

Örnek istek (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"
      }
    ]
  }'

Ö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": "Key not found in database"
    }
  ]
}

Yanıttaki alanların açıklaması

  • çeviriler: Başarıyla güncellenen çeviriler dizisi (giriş verilerini döndürür + modified_at ISO8601 olarak).
  • hatalar (isteğe bağlı, hatalar varsa): Hata dizisi.
    • dizin: Kaynak dizideki öğenin indeksi.
    • key_id: Sorunlu satırın ID'si (varsa).
    • hata: Hata metni (örnekler: "Gerekli alanlar eksik", "Geçersiz key_id biçimi. Beklenen: dictionary:{id}", "Dil bulunamadı", "Anahtar veritabanında bulunamadı", "Veritabanı güncellemesi başarısız oldu").

Hatalar

  • 400: Неверные данные (пустой/не-массив çeviriler, alanların bulunmaması).
  • 401/403: Yetkilendirme sorunları.
  • 404: Dil veya anahtar bulunamadı (tablo/kayıt yok).

Desteklenen diller

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

  • en → en_us
  • ar → ar
  • id → id_id
  • ko → ko_kr
  • tr → tr_tr
  • vi → vi
  • ru → ru_ru
  • fr → fr_fr
  • de → de_de
  • it → it_it
  • ja → ja
  • pt → pt_pt
  • zh → zh_cn
  • es → es_es

Token alma

  • WordPress yönetici panelinde: Menü, TP Senkronizasyonu → "Yeni Token Oluştur" düğmesi (32 karakterlik token, ilk başlatmada otomatik olarak oluşturulur).
  • Token seçenekte saklanır, tp_sync_api_token.