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ürDeğiştirilme tarihiISO8601’de).,hatalar(isteğe bağlı, başarısızlık olması durumunda): Hata dizisiindeksOrijinal 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.