본문 바로가기
카테고리 없음

파파고 번역 API 도전기(2) - PHP 연동

파파고 API를 내 홈페이지에서 적용해 볼까요?
보편적으로 흔하게 사용되는 PHP로 코딩을 진행해보겠습니다.
PHP  웹페이지는 기본적으로 아신다는 가정하에 진행하니 양해해주세요 :)

이 게시글은 2022. 7. 5일에 작성되었습니다.
추후  네이버측의 의도에 따라 화면이 변경될 수 있습니다.

이전 게시글은 아래와 같습니다.

https://itadventure.tistory.com/538

 

파파고 번역 API 도전기(1)

네이버 파파고는 번역 웹사이트인데요. 아래 사이트에 방문하시면 문장을 세계 각국의 여러 언어로 번역이 가능합니다. https://papago.naver.com/ 네이버 파파고 번역을 부탁해 파파고 papago.naver.com 이

itadventure.tistory.com

 

PHP 샘플코드? 한번에!

 

정석대로라면 API 개발 문서를 보고 처음부터 기능을 구현하는게 일반적이지만,
대한민국의 자랑스런 네이버는 아주 친절하게도 샘플코드를 제공합니다.

네이버 개발자 센터 홈페이지 ( https://developers.naver.com/main/ ) 에 접속하신 다음

Document - Papago  번역 메뉴를 선택하시면 상세한 안내 문서가 보이실텐데요.

왼쪽의 구현 예제 메뉴를 선택하시고

그리고 나서 PHP 를 선택하시면,


짜잔, 아래와 같은 샘플코드가 보이실 겁니다.
이 소스를 PHP 웹서버에 하나 올려주시고,
동그라미로 표시된 부분은 지난 게시글에서 발급받은 2개의 키로 변경해주시면 됩니다.

이 웹페이지의 실행결과는, 아래와 같은데요.

단순한 예제라서 반갑습니다라는 고정된 문장을 Nice to meet you 로 변환해 줍니다.
하지만 고정된 문장만 번역 가능해서야 그다지 쓸모가 없겠지요?

 

활용예제

 

그래서 문장을 입력하면 번역을 해주는 웹페이지를 하나 마련해보았습니다.

<?
  $sentence = $_POST['sentence'];
  $translate_opt= $_POST['translate_opt'];
?>
<html>
<head>
<title></title>
</head>
<body>
파파고 번역 API <br/>
<form style='margin:0' method='post'>
  <select name='translate_opt'>
  <option value="ko>en" <?=$translate_opt=="ko>en"?"selected":""?>>한글을 영어로</option>
  <option value="en>ko" <?=$translate_opt=="en>ko"?"selected":""?>>영어를 한글로</option>
  </select>
  <input type='text' name='sentence' value="<?=$sentence?>"/>
  <button>번역</button>
</form>
<?php
if($sentence=="")die("번역할 문장을 입력하세요.");

// 네이버 Papago NMT 기계번역 Open API 예제
$client_id = "{여러분의 키를 넣어주세요}"; // 네이버 개발자센터에서 발급받은 CLIENT ID
$client_secret = "{여러분의 키를 넣어주세요}";// 네이버 개발자센터에서 발급받은 CLIENT SECRET
$encText = urlencode($sentence);

$postvars="";
if($translate_opt=="ko>en")$postvars="source=ko&target=en";
if($translate_opt=="en>ko")$postvars="source=en&target=ko";
$postvars .= "&text=".$encText;
$url = "https://openapi.naver.com/v1/papago/n2mt";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $postvars);
$headers = array();
$headers[] = "X-Naver-Client-Id: ".$client_id;
$headers[] = "X-Naver-Client-Secret: ".$client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec ($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close ($ch);
if($status_code == 200) {
  $responseObj = json_decode($response);
  echO "번역된 문장 : <b>" . $responseObj->message->result->translatedText . "</b>";
} else {
  echo "Error:".$response;
}
?>
</body>
</html>

 

이 웹페이지를 실행하면 아래와 같은 페이지가 나옵니다.

 

한글을 영어로 번역할지, 아니면 영어를 한글로 번역할지를 선택 후,

문장을 입력하고 '번역' 버튼을 클릭하면 번역된 문장이 짜잔~, 표시됩니다.

크레이의 홈페이지에 관련 페이지를 마련해 두었으니 구경만 하실분은 그냥 구경하러 와보셔도 좋습니다 :)

http://dreamplan7.cafe24.com/papago/

 

언어감지는 어떻게 하나요?

 

그런데 파파고 사이트를 살펴보면, 원본 언어 선택하는 부분에 이런 부분이 있을 겁니다.
이 기능은 파파고 번역 API에서는 지원하지 않습니다.

하지만 언어감지라는 API 가 별도로 마련되어 있더라구요.

https://developers.naver.com/docs/papago/papago-detectlangs-overview.md

이 기능을 이용하면 동일한 효과를 볼 수 있을것 같습니다.
다음번 게시글에 도전해보도록 하겠습니다 :)

 

마무~리

 

오늘은 파파고 API 를 PHP에서 연동하는 방법을 알아보았습니다.
간단한 예제라 어느 정도 아시는 분들에게는 그다지 도움이 되지 않을수도 있으나
그래도 주저리 주저리 써봅니다. 

오늘도 찾아오시는 모든 분들, 발뻗고 편히 주무시기 바랍니다 :D :D :D

유익하셨다면, 공감 한방, 댓글은 굿잡!
감사합니다~


다음 게시글 : https://itadventure.tistory.com/540

 

파파고 번역 API 도전기(3) - 언어 감지 API ( PHP )

파파고 홈페이지 ( https://papago.naver.com/ ) 에서 번역서비스를 사용해보면, 원본언어는 '언어감지'로 설정해 놓고, 번역할 대상 언어만 선택하면 되는데요. 앞에서 다루어보았던 파파고 API 만으로

itadventure.tistory.com