Papago Translation API는 입력된 텍스트를 다국어로 번역해주는 기계 번역 API이다.
또한 단순 텍스트 번역 뿐만 아니라 웹 번역, 문서 번역, 언어 인식 기능도 갖추고 있다.
Papago Translation API의 경우 네이버 클라우드 플랫폼에 가입 후 이용할 수 있는데, 무료 API도 다양하게 지원하고있다.
가입이 완료 되었다면 Papago Translation 이용 신청하기를 통해 API 이용 신청을 완료한다.
이후 Console 탭으로 가보면
이처럼 Papago Translation이 추가되어 있을 것이다.
이제 Application 등록
을 눌러 API 권한을 부여받아야 하는데,
본인이 원하는 Application 이름을 입력하고 어떤 API를 사용하고 싶은지 선택하면 된다.
이후 등록
버튼을 누르면 API 권한이 부여된 Application을 확인할 수 있다.
Client ID
와 Client Secret
이 정상적으로 발급되었다면 API를 이용할 수 있다.
이제 직접 Papago Translation API 예제를 참고하여 텍스트 번역을 해보자.
다음은 파이썬으로 작성된 Papago Text Translation 예제이다.
# Papago Text Translation API
client_id = "본인의 client ID"
client_secret = "본인의 client secret"
def translate(source_text: str, source_language="ko", target_language="en") -> str:
"""
Translate text by papago api.
Args:
source_text (str): original text to translate.
source_language (str, optional): source language to translate. Defaults to "ko".
target_language (str, optional): target language to translate. Defaults to "en".
Returns:
str: translated text.
"""
try:
url = "https://naveropenapi.apigw.ntruss.com/nmt/v1/translation"
encText = urllib.parse.quote(source_text)
data = "source=%s&target=%s&text=%s" % (source_language, target_language, encText)
request = urllib.request.Request(url)
request.add_header("X-NCP-APIGW-API-KEY-ID", client_id)
request.add_header("X-NCP-APIGW-API-KEY", client_secret)
response = urllib.request.urlopen(request, data=data.encode("utf-8"))
rescode = response.getcode()
if rescode == 200:
response_body = response.read()
result_json = json.loads(response_body.decode("utf-8"))
translated_text = result_json['message']['result']['translatedText']
return translated_text
elif rescode == 401:
self.__error_message("Unauthorized", "Check your API key or client ID.")
return
elif rescode == 403:
self.__error_message("Forbidden", "You don't have permission to access the server.")
return
except HTTPError as e:
pass
except Exception as e:
self.__error_message("Error", str(e))
return
print(translate("안녕하세요"))
>>> "Hello"
이처럼 url
, client ID
, client secret
, lang_code
가 모두 올바르게 입력됐다면 정상적으로 번역 결과가 출력된다.
다음은 Papago Text Translation과 Papago Language Detection을 종합해서 제작한 간단한 번역기 앱이다.
앱을 사용하기 위해서는 model.py
에 client ID
와 client secret
을 입력해주어야 한다.
입력 후 controller.py
를 실행하면 정상적으로 앱이 작동한다.
이 앱은 Language Detection(언어 감지)를 통해 사용자가 입력한 언어를 자동으로 감지해 한국어로 번역한다.
또한 QTimer
를 활용해 Translate
버튼을 누르지 않아도 입력 후 일정 시간이 지나면 자동으로 번역이 실행되게 했다.
자세한 내용은 GitHub 링크의 README를 참고.