tp-sync-api

用于集成 TranslatePress(TP Sync API)翻译的 API 文档

用于集成 TranslatePress(TP Sync API)翻译的 API 文档

此 API 提供两个端点,用于处理 TranslatePress 插件中的翻译字符串。基础语言是英语 (美式英语所有请求都需要通过 Bearer-token 进行授权(可在 WordPress 后台的 "TP Sync" 菜单中获取)。

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

1. 获取待翻译字符串 (GET /keys)

此端点返回指定语言的 TranslatePress 字典中的字符串列表。每个字符串都包含一个 ID(格式为 languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]") 字典:{id}英文原始文本、当前翻译、状态和分页元数据。按 ID DESC 排序(最新在上)。日期, 创建于更新时间 始终 null 不会在 SQL 中查询).

请求参数

参数 类型 必填 描述 默认值
语言 字符串 是的 语言代码(例如: de 用于德语,, fr 用于法语). 缩写代码被标准化 (de → de_de).
页面 整数 用于分页的页码. 1
限制 整数 每页行数(最少 1,最多 500)。 100
更新自 字符串 通过更新日期过滤 (ISO8601,例如, 2025-10-01T00:00:00Zinput=). 仅返回此日期之后更新的行。

标题

  • 授权:Bearer {токен} (必填)

请求示例 (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"

示例回复 (JSON)

{
  "keys": [
    {
      "key_id": "dictionary:123",
      "original": "Hello World",
      "translated": "你好,世界",
      "status": 2,
      "created_at": null,
      "updated_at": null
    },
    {
      "key_id": "dictionary:124",
      "original": "Welcome",
      "translated": "欢迎",
      "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"
  }
}

响应中字段的描述

字段 类型 描述
密钥ID 字符串 唯一的行 ID: 字典:{id} id — 表格中的记录编号 wp_trp_dictionary_en_us_{lang}).
original 字符串 英文原文
已翻译 字符串 指定语言的当前翻译(可能为空)。
状态 整数 状态: 0 — 未翻译, 1 — 翻译中, 2 — 已翻译.
创建于 字符串 创建日期 (ISO8601, null — не запрашивается).
更新时间 字符串 最后更新日期 (ISO8601) null — не запрашивается).

元数据 (meta)

  • 总数总行数(包括筛选条件)。
  • 页面当前页面.
  • 限制每页限制.
  • 页数总页数.
  • 下一页下一页的 URL (null, 如果是最后一个)。

错误

  • 401:缺少或无效的Authorization标头。
  • 403: 无效令牌。
  • 404:在 TranslatePress 中未找到语言(缺少表)。

翻译更新 (POST /translations)

此端点批量更新多个字符串的翻译。传入一个包含字符串 ID、语言和新翻译的对象数组。它会将状态更新为“已翻译”(2)以及字段 languages="[\"de\",\"fr\",\"id\",\"it\",\"ko\",\"tr\",\"vi\",\"zh\",\"ru\",\"pt\",\"es\"]" 更新时间.

请求主体 (JSON)

数组 翻译 与对象:

[
  {
    "key_id": "dictionary:123",
    "translation": "你好,世界"
  },
  {
    "key_id": "dictionary:124",
    "translation": "欢迎"
  }
]

参数

对象中的字段 类型 必填 描述
密钥ID 字符串 是的 行ID: 字典:{id} 从 GET /keys) 中
language_iso 字符串 是的 语言代码 (de → de_de,自动规范化)。
翻译 字符串 是的 新的翻译文本(保持原样)。

标题

  • 授权:Bearer {токен} (必填)
  • Content-Type: application/json (必填)

请求示例 (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"
      }
    ]
  }'

示例回复 (JSON)

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "你好,世界",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "在数据库中未找到键"
    }
  ]
}

响应中字段的描述

  • 翻译成功更新的翻译数组(返回输入数据 修改于 在 ISO8601).,
  • 错误 (可选,如果有失败的情况): 错误数组
    • 索引原始数组中元素的索引.
    • 密钥ID问题行的ID(如果适用)。
    • 错误错误信息(示例:"Missing required fields", "Invalid key_id format. Expected: dictionary:{id}", "Language not found", "Key not found in database", "Database update failed")。

错误

  • 400:无效数据(空的/非数组) 翻译, 缺少字段).
  • 401/403:授权问题.
  • 404:未找到语言或键(表/记录不存在)。

支持的语言

短代码会根据代码中的映射自动标准化。对于未知的: 输入={code}_{code} 例如,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

获取令牌

  • 在 WordPress 管理后台:菜单 TP Sync → 按钮 "Generate New Token" (32字符令牌,首次运行时自动生成)。
  • 令牌存储在选项中 tp_sync_api_token.