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 | Sì | 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 | Sì | ID della riga: dizionario:{id} da GET /keys). |
language_iso |
stringa | Sì | Codice lingua (de → de_de, normalizzato automaticamente). |
traduzione |
stringa | Sì | 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 inputModificato ilin ISO8601).,errori(opzionale, in caso di errori): Array di erroriindiceIndice 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.