tp-sync-api

Documentazione API per l'integrazione delle traduzioni in TranslatePress (TP Sync API)

Documentazione API per l'integrazione delle traduzioni in TranslatePress (TP Sync API)

Questa API offre due endpoint per gestire le stringhe di traduzione nel plugin TranslatePress. La lingua di base è l'inglese (inglese americanoTutte le richieste richiedono l'autenticazione tramite Bearer-token (disponibile nell'area di amministrazione di WordPress nel menu "TP Sync").

URL di base: https://your-site.com/wp-json/tp-sync/v1/

1. Recupero delle stringhe da tradurre (GET /keys)

Questo endpoint restituisce un elenco di stringhe dal dizionario TranslatePress per la lingua specificata. Ogni stringa include un ID (nel formato, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") dizionario:{id}Testo originale in inglese, traduzione attuale, stato e metadati della paginazione. Ordinamento per ID DESC (i più recenti in alto). Date, Creato il e Aggiornato il sempre null non vengono richiesti in SQL).

Parametri della richiesta

Parametro Tipo Obbligatorio Descrizione Valore predefinito
lingua stringa Codice della lingua (ad esempio, de per il tedesco,, fr per il francese). I codici brevi vengono normalizzati (de → de_de).
pagina intero No Numero di pagina per la paginazione. 1
Limite intero No Numero di righe per pagina (minimo 1, massimo 500). 100
Aggiornato da stringa No Filtra per data di aggiornamento (ISO8601, ad esempio, 2025-10-01T00:00:00Zinput=). Restituisce solo le righe aggiornate dopo questa data.

Titoli

  • Autorizzazione: Bearer {токен} (obbligatorio)

Esempio di richiesta (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"

Esempio di risposta (JSON)

{
  "keys": [
    {
      "key_id": "dictionary:123",
      "original": "Hello World",
      "translated": "Ciao Mondo",
      "status": 2,
      "created_at": null,
      "updated_at": null
    },
    {
      "key_id": "dictionary:124",
      "original": "Welcome",
      "translated": "Benvenuto",
      "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"
  }
}

Descrizione dei campi nella risposta

Campo Tipo Descrizione
ID chiave stringa ID riga univoco: dizionario:{id} id — il numero della voce nella tabella wp_trp_dictionary_en_us_{lang}).
original stringa Testo originale in inglese.
tradotto stringa Traduzione attuale per la lingua specificata (può essere vuota).
Stato intero Stato: 0 — non tradotto, 1 — in corso, 2 — tradotto.
Creato il stringa Data di creazione (ISO8601, null — не запрашивается).
Aggiornato il stringa Data dell'ultimo aggiornamento (ISO8601) null — не запрашивается).

Metadati (meta)

  • Conteggio totaleNumero totale di righe (inclusi i filtri).
  • paginaPagina corrente.
  • LimiteLimite per pagina.
  • Numero di pagineNumero totale di pagine.
  • pagina successivaURL della pagina successiva (null, se è l'ultima).

Errori

  • 401: Intestazione Authorization assente o non valida.
  • 403: Token non valido.
  • 404: Lingua non trovata in TranslatePress (tabella assente).

Aggiornamento delle traduzioni (POST /translations)

Questo endpoint aggiorna le traduzioni per più stringhe contemporaneamente (batch). Viene passato un array di oggetti contenenti l'ID della stringa, la lingua e la nuova traduzione. Aggiorna lo stato a "tradotto" (2) e il campo, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Aggiornato il.

Corpo della richiesta (JSON)

Array traduzioni con oggetti:

[
  {
    "key_id": "dictionary:123",
    "translation": "Ciao mondo"
  },
  {
    "key_id": "dictionary:124",
    "translation": "Benvenuto"
  }
]

Parametri

Campo nell'oggetto Tipo Obbligatorio Descrizione
ID chiave stringa ID della riga: dizionario:{id} da GET /keys).
language_iso stringa Codice lingua (de → de_de, normalizzato automaticamente).
traduzione stringa Nuovo testo di traduzione (rimane invariato).

Titoli

  • Autorizzazione: Bearer {токен} (obbligatorio)
  • Content-Type: application/json (obbligatorio)

Esempio di richiesta (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"
      }
    ]
  }'

Esempio di risposta (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Ciao mondo",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Chiave non trovata nel database"
    }
  ]
}

Descrizione dei campi nella risposta

  • traduzioniArray delle traduzioni aggiornate con successo (restituisce i dati di input Modificato il in ISO8601).,
  • errori (opzionale, in caso di errori): Array di errori
    • indiceIndice dell'elemento nell'array originale.
    • ID chiaveID della riga problematica (se applicabile).
    • erroreMessaggio di errore (esempi: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Errori

  • 400: Dati non validi (vuoto/non un array) traduzioni, assenza di campi).
  • 401/403: Problemi di autorizzazione.
  • 404: Lingua o chiave non trovata (tabella/record assente).

Lingue supportate

I codici brevi vengono normalizzati automaticamente (basandosi sul mapping nel codice). Per gli sconosciuti: input={code}_{code} ad esempio, 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

Ottenimento del token

  • Nella dashboard di WordPress: Menu TP Sync → Pulsante "Generate New Token" (token di 32 caratteri, generato automaticamente al primo avvio).
  • Il token è memorizzato nell'opzione tp_sync_api_token.