tp-sync-api

Documentación de la API para la integración de traducciones en TranslatePress (TP Sync API)

Documentación de la API para la integración de traducciones en TranslatePress (TP Sync API)

Esta API proporciona dos endpoints para trabajar con cadenas de traducción en el plugin TranslatePress. El idioma base es el inglés (inglés estadounidenseTodas las solicitudes requieren autenticación a través de un Bearer-token (se obtiene en el panel de administración de WordPress en el menú "TP Sync").

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

1. Obtención de cadenas para traducción (GET /keys)

Este endpoint devuelve una lista de cadenas del diccionario TranslatePress para el idioma especificado. Cada cadena incluye un ID (en el formato, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") diccionario:{id}Texto original en inglés, traducción actual, estado y metadatos de paginación. Ordenado por ID DESC (los más recientes arriba). Fechas, Creado el y Actualizado a siempre null no se solicitan en SQL).

Parámetros de la solicitud

Parámetro Tipo Obligatorio Descripción Valor por defecto
idioma cadena Código de idioma (por ejemplo, de para el alemán,, fr para el francés). Los códigos cortos se normalizan (de → de_de).
página entero No Número de página para la paginación. 1
Límite entero No Número de filas por página (mínimo 1, máximo 500). 100
Actualizado desde cadena No Filtro por fecha de actualización (ISO8601, por ejemplo, 2025-10-01T00:00:00Zinput=). Devuelve solo las filas actualizadas después de esta fecha.

Títulos

  • Autorización: Bearer {токен} (obligatorio)

Ejemplo de solicitud (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"

Ejemplo de respuesta (JSON)

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

Descripción de los campos en la respuesta

Campo Tipo Descripción
ID de la clave cadena ID único de la línea: diccionario:{id} id — el número de registro en la tabla wp_trp_dictionary_en_us_{lang}).
original cadena Texto original en inglés.
traducido cadena Traducción actual para el idioma especificado (puede estar vacía).
estado entero Estado: 0 — no traducido, 1 — en progreso, 2 — traducido.
Creado el cadena Fecha de creación (ISO8601, null — не запрашивается).
Actualizado a cadena Fecha de la última actualización (ISO8601) null — не запрашивается).

Metadatos (meta)

  • Conteo totalCantidad total de filas (incluyendo filtros).
  • páginaPágina actual.
  • LímiteLímite por página.
  • Número de páginasCantidad total de páginas.
  • página siguienteURL de la siguiente página (null, si es la última).

Errores

  • 401: Falta o es inválido el encabezado Authorization.
  • 403: Token no válido.
  • 404: Idioma no encontrado en TranslatePress (tabla ausente).

Actualización de traducciones (POST /translations)

Este endpoint actualiza las traducciones de varias cadenas a la vez (batch). Se pasa un array de objetos con el ID de la cadena, el idioma y la nueva traducción. Actualiza el estado a "traducido" (2) y el campo, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Actualizado a.

Cuerpo de la solicitud (JSON)

Array traducciones con objetos:

[
  {
    "key_id": "dictionary:123",
    "translation": "Hola Mundo"
  },
  {
    "key_id": "dictionary:124",
    "translation": "Bienvenido"
  }
]

Parámetros

Campo en el objeto Tipo Obligatorio Descripción
ID de la clave cadena ID de la línea: diccionario:{id} de GET /keys).
language_iso cadena Código de idioma (de → de_de, normalizado automáticamente).
traducción cadena Nuevo texto de traducción (se mantiene tal cual).

Títulos

  • Autorización: Bearer {токен} (obligatorio)
  • Content-Type: application/json (obligatorio)

Ejemplo de solicitud (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"
      }
    ]
  }'

Ejemplo de respuesta (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Hola Mundo",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Clave no encontrada en la base de datos"
    }
  ]
}

Descripción de los campos en la respuesta

  • traduccionesArreglo de traducciones actualizadas con éxito (devuelve los datos de entrada Modificado a en ISO8601).,
  • errores (opcional, si hay fallos): Array de errores
    • índiceÍndice del elemento en el array original.
    • ID de la claveID de la línea problemática (si es aplicable).
    • errorMensaje de error (ejemplos: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Errores

  • 400: Datos inválidos (vacío/no es un array) traducciones, falta de campos).
  • 401/403: Problemas de autorización.
  • 404: Idioma o clave no encontrada (tabla/registro ausente).

Idiomas soportados

Los códigos cortos se normalizan automáticamente (basados en el mapeo del código). Para los desconocidos: entrada={code}_{code} por ejemplo, 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

Obtención del token

  • En el administrador de WordPress: Menú TP Sync → Botón "Generate New Token" (token de 32 caracteres, generado automáticamente en el primer inicio).
  • El token se almacena en la opción tp_sync_api_token.