이 모듈은 네이버 PAPAGO API를 사용합니다.
필요항목 - 파파고 API KEY를 기입한 .ini파일 (./iniFiles/papago.ini)
전에 번역기를 사용할 일이 있어 네이버에서 파파고 API 키를 발급받아서 사용할 수 있는 모듈을 만들었습니다.
인터넷에 정리되어 있는 코드가 네이버 개발문서에 정의된 코드를 복붙한 코드밖에 없어서 정갈하게 정리한 코드를 한번 올려봅니다.
참고사항: 네이버 PAPAGO API 가이드 문서
https://developers.naver.com/docs/papago/papago-nmt-api-reference.md
jade_papago.py에 번역할 문장을 method 에 따라 넘겨주면 번역된 결과를 리턴합니다.
jade_reference.py처럼 작성하여 사용가능합니다.
파파고 API 키는 iniFiles 안에 있는 jade_papago.ini 안에 기입합니다.
메인 로직
경로 & 파일명 : /jade_papago.py
import urllib.request
import json
import configparser
configINI = configparser.ConfigParser()
configINI.read('./iniFiles/jade_papago.ini', encoding="UTF-8")
client_id = configINI['KEYS']['client_id']
client_secret = configINI['KEYS']['client_secret']
URL_PAPAGO_Trans = "[https://openapi.naver.com/v1/papago/n2mt](https://openapi.naver.com/v1/papago/n2mt)"
class CLASS_PAPAGO():
def EnKo(str_enText):
str_enText = urllib.parse.quote(str_enText)
inputData = f"source=en&target=ko&text={str_enText}"
returnVal = CLASS_PAPAGO.ret_Translation(inputData)
return returnVal
def KoEn(str_koText):
str_koText = urllib.parse.quote(str_koText)
inputData = f"source=ko&target=en&text={str_koText}"
CLASS_PAPAGO.ret_Translation(inputData)
returnVal = CLASS_PAPAGO.ret_Translation(inputData)
return returnVal
def ret_Translation(inputData):
req_papago = urllib.request.Request(URL_PAPAGO_Trans)
req_papago.add_header("X-Naver-Client-Id", client_id)
req_papago.add_header("X-Naver-Client-Secret", client_secret)
res_papago = urllib.request.urlopen(
req_papago, data=inputData.encode("utf-8"))
res_Result = json.load(res_papago)
res_Txt = res_Result["message"]["result"]["translatedText"]
return res_Txt
경로 & 파일명 : ./iniFiles/jade_papago.ini
[KEYS]
client_id=
client_secret=
경로 & 파일명 : /jade_papago_reference.py
from jade_papago import CLASS_PAPAGO as papago
EngToKor = papago.EnKo("Astin is brilliant")
KorToEng = papago.KoEn("이제 잘 시간이야.")
print(f"결과1: {EngToKor}, 결과2: {KorToEng}")
jade_papago_reference.py를 실행시키면, 번역된 결과물을 확인할 수 있습니다.
테스팅 편의를 위해 __init__.py
파일을 정의하지 않았습니다.