API-Dokumentation für die Integration von TranslatePress-Übersetzungen (TP Sync API)
Этот API предоставляет два эндпоинта для работы со строками переводов в плагине TranslatePress. Базовый язык — английский (en_us). Alle Anfragen erfordern eine Autorisierung über ein Bearer-Token (erhältlich im WordPress-Adminbereich im Menü "TP Sync").
Basis-URL: https://your-site.com/wp-json/tp-sync/v1/
1. Abrufen von Strings zur Übersetzung (GET /keys)
Dieser Endpunkt gibt eine Liste von Zeichenfolgen aus dem TranslatePress-Wörterbuch für die angegebene Sprache zurück. Jede Zeichenfolge enthält ID (im Format, Wörterbuch:{id}), Originaltext auf Englisch, aktuelle Übersetzung, Status und Paginierungsmetadaten. Sortierung nach ID DESC (neueste oben). Daten, created_at und updated_at immer null (werden in SQL nicht abgefragt).
Anfrageparameter
| Parameter, | Typ | Erforderlich | Beschreibung | Standardwert |
|---|---|---|---|---|
lang |
Zeichenfolge | Ja | Код языка (например, de für Deutsch, fr für Französisch). Kurzcodes werden normalisiert (de → de_de). |
— |
Seite |
Ganzzahl | Nein | Seitennummer für die Paginierung. | 1 |
Limit |
Ganzzahl | Nein | Anzahl der Zeilen pro Seite (Minimum 1, Maximum 500). | 100 |
updated_since |
Zeichenfolge | Nein | Фильтр по дате обновления (ISO8601, например, 2025-10-01T00:00:00Z). Gibt nur Zeilen zurück, die nach diesem Datum aktualisiert wurden. |
— |
Überschriften
Authorization: Bearer {токен}(erforderlich)
Beispielanfrage (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"
Beispielantwort (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"
}
}
Beschreibung der Felder in der Antwort
| Feld | Typ | Beschreibung |
|---|---|---|
key_id |
Zeichenfolge | Eindeutige Zeilen-ID: Wörterbuch:{id} id — Datensatznummer in der Tabelle wp_trp_dictionary_en_us_{lang}). |
Original |
Zeichenfolge | Originaltext auf Englisch. |
übersetzt |
Zeichenfolge | Aktuelle Übersetzung für die angegebene Sprache (kann leer sein). |
Status |
Ganzzahl | Status: 0 — nicht übersetzt, 1 — in Bearbeitung, 2 — übersetzt. |
created_at |
Zeichenfolge | Erstellungsdatum (ISO8601, null — nicht angefordert). |
updated_at |
Zeichenfolge | Дата последнего обновления (ISO8601, null — nicht angefordert). |
Metadaten (meta)
total_count: Gesamtanzahl der Zeilen (unter Berücksichtigung der Filter).Seite: Aktuelle Seite.Limit: Limit pro Seite.page_count=: Gesamtanzahl der Seiten.Nächste_Seite: URL следующей страницы (null, wenn es die letzte ist).
Fehler
- 401: Authorization-Header fehlt oder ist ungültig.
- 403: Ungültiges Token.
- 404: Sprache in TranslatePress nicht gefunden (Tabelle fehlt).
2. Aktualisierung von Übersetzungen (POST /translations)
Dieser Endpunkt aktualisiert Übersetzungen für mehrere Zeichenfolgen auf einmal (Batch). Es wird ein Array von Objekten mit der Zeichenfolgen-ID, der Sprache und der neuen Übersetzung übergeben. Aktualisiert den Status auf "übersetzt" (2) und das Feld, updated_at.
Anfragetext (JSON)
Array Übersetzungen mit Objekten:
{
"translations": [
{
"key_id": "dictionary:123",
"language_iso": "de",
"translation": "Hallo Welt"
},
{
"key_id": "dictionary:124",
"language_iso": "de",
"translation": "Willkommen"
}
]
}
Einstellungen
| Feld im Objekt, | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key_id |
Zeichenfolge | Ja | Zeilen-ID: Wörterbuch:{id} (aus GET /keys). |
language_iso |
Zeichenfolge | Ja | Sprachcode (de → de_de, wird automatisch normalisiert). |
Übersetzung |
Zeichenfolge | Ja | Новый текст перевода (сохраняется как есть). |
Überschriften
Authorization: Bearer {токен}(erforderlich)Content-Type: application/json(erforderlich)
Beispielanfrage (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"
}
]
}'
Beispielantwort (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"
}
]
}
Beschreibung der Felder in der Antwort
Übersetzungen: Array der erfolgreich aktualisierten Übersetzungen (gibt Eingabedaten zurück +modified_atin ISO8601).Fehler(optional, falls Fehler vorliegen): Array von Fehlern.Index: Index des Elements im Quellarray.key_id: ID der problematischen Zeile (falls zutreffend).Fehler: Fehlertext (Beispiele: "Erforderliche Felder fehlen", "Ungültiges key_id-Format. Erwartet: dictionary:{id}", "Sprache nicht gefunden", "Schlüssel nicht in der Datenbank gefunden", "Datenbankaktualisierung fehlgeschlagen").
Fehler
- 400: Неверные данные (пустой/не-массив
Übersetzungen, Fehlen von Feldern). - 401/403: Autorisierungsprobleme.
- 404: Sprache oder Schlüssel nicht gefunden (Tabelle/Datensatz fehlt).
Unterstützte Sprachen
Kurzcodes werden automatisch normalisiert (basierend auf der Zuordnung im Code). Für unbekannte:, {code}_{code} (zum Beispiel, 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 abrufen
- Im WordPress-Adminbereich: Menü, TP Synchronisierung → Schaltfläche "Neues Token generieren" (Token mit 32 Zeichen, wird beim ersten Start automatisch generiert).
- Das Token wird in der Option gespeichert,
tp_sync_api_token.