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_atISO8601 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.