tp-sync-api

TranslatePress (TP Sync API)의 번역 통합을 위한 API 문서

TranslatePress (TP Sync API)의 번역 통합을 위한 API 문서

이 API는 TranslatePress 플러그인에서 번역 문자열을 처리하기 위한 두 개의 엔드포인트를 제공합니다. 기본 언어는 영어입니다 (미국 영어모든 요청은 Bearer-토큰을 통한 인증이 필요합니다 (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

토큰 받기

  • 워드프레스 관리자: 메뉴 TP Sync → "Generate New Token" 버튼 (32자 토큰, 첫 실행 시 자동 생성됩니다).
  • 토큰은 옵션에 저장됩니다 tp_sync_api_token.