用于集成 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.