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_令牌.