API-Dokumentation für die Integration von TranslatePress-Übersetzungen (TP Sync API)

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_at in 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.