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.