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ürdeğiştirilme tarihiISO8601).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ı.