[PHP] DeepL 의 API로 html 태그를 유지한 채로 번역해보기


DeepL 라는 번역 서비스에서는 API도 제공하고 있고, 제한은 있지만 무료枠(枠)도 제공되고 있어 편리하고 고마운 서비스여서 유용하게 사용하고 있습니다.

이 웹사이트에서도 DeepL 의 API를 이용하여 본문 등을 번역하고 있습니다.

DeepL API의 장점은 무료로 번역할 수 있고, API 지정으로 html 태그를 깨뜨리지 않고 번역할 수 있다는 점입니다.

아래는 샘플 코드입니다.

param = array(
'auth_key' => 'API 키',
'text' => '<p>雨</p>',
'target_lang' => 'EN',
'tag_handling' => 'xml',
'source_lang' => 'JA'
);;
curl = curl_init("https://api-free.deepl.com/v2/translate"); $curl = curl_init("https://api-free.deepl.com/v2/translate");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param)); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

res = curl_exec($curl);
curl_close($curl);

re = json_decode($res, true); $re = json_decode($res, true);
echo $re["translations"][0]["text"];

먼저 DeepL 의 API 사이트에 등록하여 API 키를 발급받는다.

auth_key에 해당 API 키를 복사하여 붙여 넣는다.

text에는 번역하고 싶은 단어를 입력합니다.

target_lang은 번역하고자 하는 언어이다. 위 코드에서는 영어로 번역하도록 설정했다.

‘tag_handling’ => ‘xml’은 html을 처리하기 위한 설정이다.

source_lang에는 번역할 언어를 설정하고 있지만, 없어도 문제없을 것 같았습니다.

target_lang의 중국어에 빠져들었는데, 중국어 간체는 ZH, 대만 등에서 사용하는 번체어는 ZH-HANT를 설정하는 것 같습니다.

그럼, 이번 포스팅은 여기까지!


관련성이 높은 기사