tp-sync-api

Documentation de l'API pour l'intégration des traductions dans TranslatePress (TP Sync API)

Documentation de l'API pour l'intégration des traductions dans TranslatePress (TP Sync API)

Cette API fournit deux points de terminaison pour gérer les chaînes de traduction dans le plugin TranslatePress. La langue de base est l'anglais (anglais américainToutes les requêtes nécessitent une authentification via un Bearer-token (disponible dans l’administration WordPress sous le menu « TP Sync »).

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

1. Récupération des chaînes à traduire (GET /keys)

Ce point de terminaison renvoie une liste de chaînes provenant du dictionnaire TranslatePress pour la langue spécifiée. Chaque chaîne inclut un ID (au format, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") dictionnaire:{id}Texte original en anglais, traduction actuelle, statut et métadonnées de pagination. Tri par ID DESC (les plus récents en premier). Dates, Créé le et Mis à jour le toujours null ne sont pas demandées dans SQL).

Paramètres de requête

Paramètre Type Obligatoire Description Valeur par défaut
Langue chaîne Oui Code de langue (par exemple, de pour l'allemand,, fr pour le français). Les codes abrégés sont normalisés (de → de_de).
page entier Non Numéro de page pour la pagination. 1
Limite entier Non Nombre de lignes par page (minimum 1, maximum 500). 100
Mis à jour depuis chaîne Non Filtrer par date de mise à jour (ISO8601, par exemple, 2025-10-01T00:00:00Zinput=). Renvoie uniquement les lignes mises à jour après cette date.

Titres

  • Autorisation : Bearer {токен} (obligatoire)

Exemple de requête (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"

Exemple de réponse (JSON)

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

Description des champs dans la réponse

Champ Type Description
ID de clé chaîne Identifiant unique de la ligne: dictionnaire:{id} id — le numéro de l'enregistrement dans la table wp_trp_dictionary_en_us_{lang}).
original chaîne Texte original en anglais.
traduit chaîne Traduction actuelle pour la langue spécifiée (peut être vide).
statut entier Statut : 0 — non traduit, 1 — en cours, 2 — traduit.
Créé le chaîne Date de création (ISO8601, null — не запрашивается).
Mis à jour le chaîne Date de dernière mise à jour (ISO8601) null — не запрашивается).

Métadonnées (meta)

  • Nombre totalNombre total de lignes (y compris les filtres).
  • pagePage actuelle.
  • LimiteLimite par page.
  • Nombre de pagesNombre total de pages.
  • page suivanteURL de la page suivante (null, si c'est la dernière).

Erreurs

  • 401 : En-tête Authorization manquant ou invalide.
  • 403 : Jeton invalide.
  • 404 : Langue non trouvée dans TranslatePress (table absente).

Mise à jour des traductions (POST /translations)

Ce point de terminaison met à jour les traductions pour plusieurs chaînes simultanément (batch). Un tableau d’objets contenant l’ID de la chaîne, la langue et la nouvelle traduction est transmis. Il met à jour le statut à « traduit » (2) ainsi que le champ, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Mis à jour le.

Corps de la requête (JSON)

Tableau traductions avec des objets :

[
  {
    "key_id": "dictionary:123",
    "translation": "Bonjour le monde"
  },
  {
    "key_id": "dictionary:124",
    "translation": "Bienvenue"
  }
]

Paramètres

Champ dans l'objet Type Obligatoire Description
ID de clé chaîne Oui ID de la ligne: dictionnaire:{id} depuis GET /keys).
language_iso chaîne Oui Code langue (de → de_de, normalisé automatiquement).
traduction chaîne Oui Nouveau texte de traduction (restera tel quel).

Titres

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

Exemple de requête (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"
      }
    ]
  }'

Exemple de réponse (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Bonjour le monde",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Clé non trouvée dans la base de données"
    }
  ]
}

Description des champs dans la réponse

  • traductionsTableau des traductions mises à jour avec succès (retourne les données d'entrée Modifié le en ISO8601).,
  • erreurs (optionnel, en cas d'échecs) : tableau d'erreurs
    • indexIndex de l'élément dans le tableau source.
    • ID de cléID de la ligne problématique (si applicable).
    • ErreurMessage d'erreur (exemples : "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Erreurs

  • 400 : Données invalides (vide/pas un tableau) traductions, absence de champs).
  • 401/403 : Problèmes d'autorisation.
  • 404 : Langue ou clé introuvable (table/enregistrement absent).

Langues prises en charge

Les codes courts sont automatiquement normalisés (sur la base du mapping dans le code). Pour les inconnus : entrée={code}_{code} par exemple, 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

Récupération du token

  • Dans l'administration WordPress : Menu TP Sync → Bouton "Generate New Token" (jeton de 32 caractères, généré automatiquement lors du premier lancement).
  • Le jeton est stocké dans l'option tp_sync_api_token.