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 で並べ替え (新しいものが上). 日付, created_at および updated_at 常に null (SQL では要求されません).

リクエストパラメータ

パラメーター、 タイプ 必須 説明 デフォルト値
lang 文字列 はい Код языка (например, de ドイツ語用, fr フランス語用). 短いコードは正規化されます (de → de_de). —
ページ 整数 いいえ ページネーション用のページ番号. 1
制限 整数 いいえ ページあたりの行数 (最小 1、最大 500). 100
updated_since 文字列 いいえ Фильтр по дате обновления (ISO8601, например, 2025-10-01T00:00:00Z). この日付以降に更新された行のみを返します. —

見出し

  • Authorization: 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": "Hallo Welt",
      "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"
  }
}

レスポンス内のフィールドの説明

フィールド タイプ 説明
key_id 文字列 一意の行 ID: 辞書:{id} id — テーブル内のレコード番号 wp_trp_dictionary_en_us_{lang}).
オリジナル 文字列 英語の原文.
翻訳済み 文字列 指定された言語の現在の翻訳(空の場合があります)。
ステータス 整数 ステータス: 0 — 未翻訳, 1 — 処理中, 2 — 翻訳済み.
created_at 文字列 作成日 (ISO8601, null — 要求されません).
updated_at 文字列 Дата последнего обновления (ISO8601, null — 要求されません).

メタデータ (meta)

  • total_count: 行の総数 (フィルターを考慮).
  • ページ: 現在のページ.
  • 制限: ページあたりの上限.
  • page_count=: ページの総数.
  • 次の_ページ: URL следующей страницы (null, 最後の場合).

エラー

  • 401: Authorization ヘッダーがないか無効です.
  • 403: 無効なトークン.
  • 404: TranslatePressで言語が見つかりません (テーブルがありません).

2. 翻訳の更新 (POST /translations)

このエンドポイントは、複数の文字列の翻訳を一度に更新します(バッチ)。文字列ID、言語、新しい翻訳を含むオブジェクトの配列が渡されます。ステータスを"翻訳済み" (2) とフィールドに更新します, updated_at.

リクエスト本文 (JSON)

配列 翻訳 オブジェクトあり:

{
  "translations": [
    {
      "key_id": "dictionary:123",
      "language_iso": "de",
      "translation": "Hallo Welt"
    },
    {
      "key_id": "dictionary:124",
      "language_iso": "de",
      "translation": "Willkommen"
    }
  ]
}

設定

オブジェクト内のフィールド, タイプ 必須 説明
key_id 文字列 はい 行ID: 辞書:{id} (GET /keys から).
language_iso 文字列 はい 言語コード (de → de_de, 自動的に正規化されます).
翻訳 文字列 はい Новый текст перевода (сохраняется как есть).

見出し

  • Authorization: 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": "Hallo Welt",
      "modified_at": "2025-10-15T12:00:00Z"
    }
  ],
  "errors": [
    {
      "index": 1,
      "key_id": "dictionary:999",
      "error": "Key not found in database"
    }
  ]
}

レスポンス内のフィールドの説明

  • 翻訳: 正常に更新された翻訳の配列 (入力データを返します + modified_at ISO8601で).
  • エラー (任意, 失敗がある場合): エラーの配列.
    • インデックス: 元の配列内の要素のインデックス.
    • key_id: 問題のある行のID (該当する場合).
    • エラー: エラーテキスト (例: "必須フィールドがありません", "key_id の形式が無効です。期待される形式: dictionary:{id}", "言語が見つかりません", "データベースにキーが見つかりません", "データベースの更新に失敗しました").

エラー

  • 400: Неверные данные (пустой/не-массив 翻訳, フィールドの欠如).
  • 401/403: 認証に関する問題.
  • 404: 言語またはキーが見つかりません (テーブル/レコードが存在しません).

対応言語

短いコードは自動的に正規化されます (コード内のマッピングに基づく). 不明なものについては:, {code}_{code} (例, pl → pl_pl).

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

トークンの取得

  • WordPress管理画面: メニュー, TP 同期 → "新しいトークンを生成" ボタン (32文字のトークン, 初回起動時に自動生成されます).
  • トークンはオプションに保存されます, tp_sync_api_token.