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