tp-sync-api

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

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

此 API 提供两个端点,用于处理 TranslatePress 插件中的翻译字符串。基础语言为英语(en_us). 所有请求均需通过 Bearer 令牌授权(在 WordPress 后台“TP Sync”菜单下获取)。

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

1. 获取翻译行 (GET /keys)

此端点返回指定语言的 TranslatePress 字典字符串列表。每个字符串包括一个 ID(格式为 字典:{id}), 原始英文文本、当前翻译、状态和分页元数据。按ID DESC排序(最新的在上方)。日期, 创建于更新于 总是 null (在 SQL 中未请求)。

请求参数

参数 类型 必填 描述 默认值
lang 字符串 语言代码(例如, de 针对德语 fr 对于法语)。短代码会被规范化(de → de_de)。
页面 整数 用于分页的页码。 1
限制 整数 每页行数(最少1行,最多500行)。 100
更新于 字符串 按更新时间过滤(ISO8601,例如,) 2025-10-01T00:00:00Z). 仅返回在此日期之后更新的行。

标题

  • 授权: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}).
原始 字符串 英文原文。
已翻译 字符串 指定语言的当前翻译(可能为空)。
状态 整数 状态:0 — 未翻译,1 — 处理中,2 — 已翻译。
创建于 字符串 创建日期(ISO8601 null — 未请求)。
更新于 字符串 最后更新日期(ISO8601 null — 未请求)。

元数据元数据)

  • total_count总行数(包括筛选器)。
  • 页面当前页面。
  • 限制每页限制。
  • 页数总页数。
  • 下一页: 下一页的 URLnull, 如果是最后一个).

错误

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

2. 更新翻译 (POST /translations)

此端点批量更新多个行的翻译。传递包含行ID、语言和新翻译的对象数组。更新状态为“已翻译”(2)并更新字段 更新于.

请求体(JSON)

数组 翻译 带有对象:

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

参数

对象中的字段 类型 必填 描述
键_id 字符串 行ID: 字典:{id} (来自 GET /keys)。
语言_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": "你好,世界"
      }
    ]
  }'

示例回答(JSON)

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

响应中字段的描述

  • 翻译成功更新的翻译数组(返回输入数据 + 修改于 以 ISO8601 格式)。
  • 错误 (可选,如果有失败):错误数组。
    • 索引原始数组中元素的索引。
    • 键_id: 问题行的ID(如果适用)。
    • 错误错误文本(示例:“缺少必填字段”,“无效的 key_id 格式。预期:dictionary:{id}”,“未找到语言”,“数据库中未找到密钥”,“数据库更新失败”)。

错误

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

支持的语言

短代码会自动规范化(基于代码中的映射)。对于未知的: {code}_{code} (例如,pl → pl_pl)。

  • en → en_us
  • id → id_id
  • ko → ko_kr
  • tr → tr_tr
  • vi → vi
  • ru → ru_ru
  • fr → fr_fr
  • de → de_de
  • pt → pt_pt
  • zh → zh_cn
  • es → es_es

获取令牌

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