tp-sync-api

TranslatePress (TP Sync API) çeviri entegrasyonu için API belgeleri

TranslatePress (TP Sync API) çeviri entegrasyonu için API belgeleri

Bu API, TranslatePress eklentisinde çeviri dizeleriyle çalışmak için iki uç nokta sağlar. Temel dil İngilizcedir (Amerikan İngilizcesiTüm istekler Bearer token ile kimlik doğrulaması gerektirir (WordPress yönetim panelinde "TP Sync" menüsünde alınır).

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

1. Çevrilecek dizelerin alınması (GET /keys)

Bu uç nokta, belirtilen dil için TranslatePress sözlüğündeki dize listesini döndürür. Her dize, bir kimlik içerir (format: languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") sözlük:{id}İngilizce orijinal metin, mevcut çeviri, durum ve sayfalama meta verileri. ID'ye göre DESC sıralama (en yeniler üstte). Tarihler, Oluşturulma tarihi ve Güncellendi her zaman null SQL'de sorgulanmazlar).

İstek parametreleri

Parametre Tür Zorunlu Açıklama Varsayılan değer
dil dize Evet Dil kodu (örneğin, de almanca için,, fr Fransızca için). Kısa kodlar standartlaştırılır (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ı (en az 1, en fazla 500). 100
Güncellendiği tarih dize Hayır Güncelleme tarihine göre filtrele (ISO8601, örneğin, 2025-10-01T00:00:00Zinput=). Yalnızca 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"

Cevap örneği (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"
  }
}

Cevap içindeki alanların açıklaması

Alan Tür Açıklama
Anahtar Kimliği dize Benzersiz satır ID'si: sözlük:{id} id — tablodaki kaydın numarası wp_trp_dictionary_en_us_{lang}).
original dize İngilizce orijinal metin.
çevirildi dize Belirtilen dil için mevcut çeviri (boş olabilir).
durum tam sayı Durum: 0 — çevrilmedi, 1 — çeviri aşamasında, 2 — çevrildi.
Oluşturulma tarihi dize Oluşturulma Tarihi (ISO8601, null — не запрашивается).
Güncellendi dize Son güncelleme tarihi (ISO8601) null — не запрашивается).

Meta veriler (meta)

  • Toplam adetFiltreler dahil toplam satır sayısı.
  • sayfaGeçerli sayfa.
  • SınırSayfa limiti.
  • Sayfa sayısıToplam sayfa sayısı.
  • sonraki sayfaSonraki sayfanın URL'si (null, eğer sonuncuysa).

Hatalar

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

Çevirilerin Güncellenmesi (POST /translations)

Bu uç nokta, bir seferde birden fazla metnin çevirilerini günceller (batch). Metin ID'si, dili ve yeni çeviriyi içeren nesne dizisi gönderilir. Durumu "çevirildi" (2) olarak ve alanı languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" şeklinde günceller. Güncellendi.

İstek gövdesi (JSON)

Dizi çeviriler nesnelerle:

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

Parametreler

Nesnedeki alan Tür Zorunlu Açıklama
Anahtar Kimliği dize Evet Satır Kimliği: sözlük:{id} GET /keys)'den
language_iso dize Evet Dil kodu (de → de_de, otomatik olarak normalize edilir).
çeviri dize Evet Yeni çeviri metni (olduğu gibi korunacaktır).

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": "Hallo Welt"
      }
    ]
  }'

Cevap örneği (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Merhaba Dünya",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Anahtar veri tabanında bulunamadı"
    }
  ]
}

Cevap içindeki alanların açıklaması

  • çevirilerBaşarıyla güncellenmiş çevirilerin dizisi (giriş verilerini döndürür Değiştirilme tarihi ISO8601’de).,
  • hatalar (isteğe bağlı, başarısızlık olması durumunda): Hata dizisi
    • indeksOrijinal dizideki elemanın indeksi.
    • Anahtar KimliğiSorunlu satırın ID'si (varsa).
    • hataHata mesajı (örnekler: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Hatalar

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

Desteklenen diller

Kısa kodlar, koddaki eşlemeye göre otomatik olarak normalize edilir. Bilinmeyenler için: girdi={code}_{code} örneğin, 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

Token alma

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