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_토큰.