API-Dokumentation zur Integration von Übersetzungen in TranslatePress (TP Sync API)
Diese API bietet zwei Endpunkte für die Arbeit mit Übersetzungsstrings im TranslatePress-Plugin. Die Standardsprache ist Englisch (US-EnglischAlle Anfragen erfordern eine Authentifizierung mittels Bearer-Token (wird im WordPress-Adminbereich im Menü "TP Sync" abgerufen).
Basis-URL: https://your-site.com/wp-json/tp-sync/v1/
1. Abrufen von Übersetzungsstrings (GET /keys)
Dieser Endpunkt gibt eine Liste von Zeichenketten aus dem TranslatePress-Wörterbuch für die angegebene Sprache zurück. Jede Zeichenkette enthält eine ID (im Format, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") Wörterbuch:{id}Originaltext in Englisch, aktuelle Übersetzung, Status und Paginierungsmetadaten. Sortierung nach ID DESC (neueste oben). Daten, Erstellt am und Aktualisiert am immer null werden in SQL nicht abgefragt).
Abfrageparameter
| Parameter | Typ | Erforderlich | Beschreibung | Standardwert |
|---|---|---|---|---|
Sprache |
Zeichenkette | Ja | Sprachcode (zum Beispiel, 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 (mindestens 1, höchstens 500). | 100 |
Aktualisiert seit |
Zeichenkette | Nein | Filter nach Aktualisierungsdatum (ISO8601, z.B., 2025-10-01T00:00:00Zinput=). Gibt nur Zeilen zurück, die nach diesem Datum aktualisiert wurden. |
— |
Überschriften
Autorisierung: Bearer {токен}(Pflicht)
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": "Willkommen",
"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 |
|---|---|---|
Schlüssel-ID |
Zeichenkette | Eindeutige Zeilen-ID: Wörterbuch:{id} id — die Nummer des Eintrags in der Tabelle wp_trp_dictionary_en_us_{lang}). |
original |
Zeichenkette | Originaltext in Englisch. |
übersetzt |
Zeichenkette | Aktuelle Übersetzung für die angegebene Sprache (kann leer sein). |
Status |
Ganzzahl | Status: 0 — nicht übersetzt, 1 — in Bearbeitung, 2 — übersetzt. |
Erstellt am |
Zeichenkette | Erstellungsdatum (ISO8601, null — не запрашивается). |
Aktualisiert am |
Zeichenkette | Aktualisierungsdatum (ISO8601) null — не запрашивается). |
Metadaten (meta)
GesamtanzahlGesamtanzahl der Zeilen (inklusive Filter).SeiteAktuelle Seite.LimitSeitenlimit.SeitenanzahlGesamtanzahl der Seiten.Nächste SeiteURL der nächsten Seite (null, wenn es die letzte ist).
Fehler
- 401: Fehlender oder ungültiger Authorization-Header.
- 403: Ungültiges Token.
- 404: Sprache in TranslatePress nicht gefunden (Tabelle fehlt).
Übersetzungsaktualisierung (POST /translations)
Dieser Endpunkt aktualisiert Übersetzungen für mehrere Zeichenketten gleichzeitig (Batch). Es wird ein Array von Objekten mit der ID der Zeichenkette, der Sprache und der neuen Übersetzung übergeben. Es aktualisiert den Status auf „übersetzt“ (2) sowie das Feld, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Aktualisiert am.
Anfragekörper (JSON)
Array Übersetzungen mit Objekten:
[
{
"key_id": "dictionary:123",
"translation": "Hallo Welt"
},
{
"key_id": "dictionary:124",
"translation": "Willkommen"
}
]
Parameter
| Feld im Objekt | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
Schlüssel-ID |
Zeichenkette | Ja | Zeilen-ID: Wörterbuch:{id} aus GET /keys). |
language_iso |
Zeichenkette | Ja | Sprachcode (de → de_de, wird automatisch normalisiert). |
Übersetzung |
Zeichenkette | Ja | Neuer Übersetzungstext (wird wie gehabt beibehalten). |
Überschriften
Autorisierung: Bearer {токен}(Pflicht)Content-Type: application/json(Pflicht)
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": "Schlüssel wurde in der Datenbank nicht gefunden"
}
]
}
Beschreibung der Felder in der Antwort
ÜbersetzungenArray der erfolgreich aktualisierten Übersetzungen (gibt die Eingabedaten zurückGeändert amin ISO8601).,Fehler(optional, falls Fehler auftreten): Fehler-ArrayIndexIndex des Elements im ursprünglichen Array.Schlüssel-IDID der problematischen Zeile (falls zutreffend).FehlerFehlermeldung (Beispiele: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").
Fehler
- 400: Ungültige Daten (leer/nicht-Array)
Übersetzungen, fehlende Felder). - 401/403: Autorisierungsprobleme.
- 404: Sprache oder Schlüssel nicht gefunden (Tabelle/Eintrag fehlt).
Unterstützte Sprachen
Kurzcodes werden automatisch normalisiert (basierend auf der Zuordnung im Code). Für Unbekannte: Eingabe={code}_{code} zum Beispiel, 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 abrufen
- Im WordPress-Adminbereich: Menü TP Sync → Schaltfläche "Generate New Token" (32-Zeichen-Token, wird beim ersten Start automatisch generiert).
- Der Token wird in der Option gespeichert
tp_sync_api_token.