tp-sync-api

Documentação da API para integração das traduções no TranslatePress (TP Sync API)

Documentação da API para integração das traduções no TranslatePress (TP Sync API)

Esta API fornece dois endpoints para trabalhar com strings de tradução no plugin TranslatePress. O idioma básico é o inglês (inglês americanoTodas as requisições exigem autenticação via Bearer-token (obtido no painel de administração do WordPress, no menu "TP Sync").

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

1. Obtenção de strings para tradução (GET /keys)

Este endpoint retorna uma lista de strings do dicionário TranslatePress para o idioma especificado. Cada string inclui um ID (no formato, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") dicionário:{id}Texto original em inglês, tradução atual, status e metadados de paginação. Ordenação por ID DESC (os mais recentes no topo). Datas, Criado em e Atualizado em sempre null não são consultados no SQL).

Parâmetros de solicitação

Parâmetro Tipo Obrigatório Descrição Valor padrão
idioma cadeia de caracteres Sim Código do idioma (por exemplo, de para o alemão,, fr para o francês). Os códigos curtos são normalizados (de → de_de).
página número inteiro Não Número da página para paginação. 1
Limite número inteiro Não Número de linhas por página (mínimo 1, máximo 500). 100
Atualizado desde cadeia de caracteres Não Filtro por data de atualização (ISO8601, por exemplo, 2025-10-01T00:00:00Zinput=). Retorna apenas as linhas atualizadas após esta data.

Títulos

  • Autorização: Bearer {токен} (obrigatório)

Exemplo de solicitação (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"

Exemplo de resposta (JSON)

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

Descrição dos campos na resposta

Campo Tipo Descrição
ID da chave cadeia de caracteres ID único da linha: dicionário:{id} id — o número do registro na tabela wp_trp_dictionary_en_us_{lang}).
original cadeia de caracteres Texto original em inglês.
traduzido cadeia de caracteres Tradução atual para o idioma especificado (pode estar vazia).
status número inteiro Status: 0 — não traduzido, 1 — em processo, 2 — traduzido.
Criado em cadeia de caracteres Data de criação (ISO8601, null — не запрашивается).
Atualizado em cadeia de caracteres Data da última atualização (ISO8601) null — не запрашивается).

Metadados (meta)

  • Contagem totalNúmero total de linhas (incluindo filtros).
  • páginaPágina atual.
  • LimiteLimite por página.
  • Número de páginasNúmero total de páginas.
  • próxima páginaURL da próxima página (null, se for o último).

Erros

  • 401: Cabeçalho Authorization ausente ou inválido.
  • 403: Token inválido.
  • 404: Idioma não encontrado no TranslatePress (tabela ausente).

Atualização de traduções (POST /translations)

Este endpoint atualiza traduções para várias strings de uma só vez (batch). É passado um array de objetos contendo o ID da string, o idioma e a nova tradução. Atualiza o status para "traduzido" (2) e o campo, languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" Atualizado em.

Corpo da requisição (JSON)

Array traduções com objetos:

[
  {
    "key_id": "dictionary:123",
    "translation": "Olá Mundo"
  },
  {
    "key_id": "dictionary:124",
    "translation": "Bem-vindo"
  }
]

Parâmetros

Campo no objeto Tipo Obrigatório Descrição
ID da chave cadeia de caracteres Sim ID da linha: dicionário:{id} de GET /keys).
language_iso cadeia de caracteres Sim Código de idioma (de → de_de, normalizado automaticamente).
tradução cadeia de caracteres Sim Novo texto de tradução (permanece inalterado).

Títulos

  • Autorização: Bearer {токен} (obrigatório)
  • Content-Type: application/json (obrigatório)

Exemplo de solicitação (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"
      }
    ]
  }'

Exemplo de resposta (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Olá Mundo",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Chave não encontrada no banco de dados"
    }
  ]
}

Descrição dos campos na resposta

  • traduçõesArray de traduções atualizadas com sucesso (retorna os dados de entrada Modificado em em ISO8601).,
  • erros (opcional, se houver falhas): Array de erros
    • índiceÍndice do elemento no array original.
    • ID da chaveID da linha problemática (se aplicável).
    • erroMensagem de erro (exemplos: "Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed").

Erros

  • 400: Dados inválidos (vazio/não é um array) traduções, ausência de campos).
  • 401/403: Problemas com a autorização.
  • 404: Idioma ou chave não encontrada (tabela/registro ausente).

Idiomas suportados

Códigos curtos são normalizados automaticamente (com base no mapeamento no código). Para desconhecidos: entrada={code}_{code} por exemplo, 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

Obtenção do token

  • No painel do WordPress: Menu TP Sync → Botão "Generate New Token" (token de 32 caracteres, gerado automaticamente na primeira execução).
  • O token está armazenado na opção tp_sync_api_token.