본 포스트에서는 Python의 googletrans 라이브러리를 이용하여, 자동 번역 프로그램을 작성하는 방법에 대해 다룬다.
01. 관련 라이브러리 설치
구글 번역 라이브러리를 사용하기 위해서 googletrans를 설치해야 한다.
pip를 사용한다는 가정하에 다음과 같은 명령어로 설치가 가능하다.
pip install googletrans==4.0.0rc1
포스트 작성 시점에서는 버전을 지정하지 않으면 3.0.0 버전이 설치가 되고, 해당 버전은 에러가 발생하는 경우가 있었다. 따라서 3.1.0a0 또는 최신 버전인 4.0.0rc1을 설치하도록 하자.
만약 다른 버전이 설치되어 있다면, 다음 명령으로 기존 googletrans를 제거한 후 재설치해야 한다.
pip uninstall googletrans
참고로 현재 설치된 버전은 다음 명령어로 조회할 수 있다.
pip show googletrans

02. 기본적인 사용 방법
googletrans 사용을 위해서는 (1) 모듈 임포트, (2) Translator 객체 선언 및 할당, (3) translate 함수 호출을 거쳐야 한다.
(1) 모듈 임포트
import googletrans
(2) Translator 객체 선언 및 할당
translator = googletrans.Translator()
(3) translate 함수 호출
translatedSentence = translator.translate("お早う御座います", dest='ko', src='auto')
translate 함수의 인자는 다음과 같다.
번역할 문장, src=’번역 대상 문장의 언어 코드’, dest=’번역 완료 문장의 언어코드’
src와 dest의 순서는 상관없다. 언어코드는 ISO-639를 따르며 주요 코드는 다음과 같다.
번역 대상 문장의 언어코드를 auto로 지정할 경우 자동으로 번역기에서 입력된 언어를 탐지한다.
언어 | 코드 |
아프리칸스어 | af |
알바니아어 | sq |
암하라어 | am |
아랍어 | ar |
아르메니아어 | hy |
아삼어 | as |
아이마라어 | ay |
아제르바이잔어 | az |
밤바라어 | bm |
바스크어 | eu |
벨라루스어 | be |
벵골어 | bn |
보지푸리어 | bho |
보스니아어 | bs |
불가리아어 | bg |
카탈루냐어 | ca |
세부아노어 | ceb |
중국어(간체) | zh-CN 또는 zh(BCP-47) |
중국어(번체) | zh-TW(BCP-47) |
코르시카어 | co |
크로아티아어 | hr |
체코어 | cs |
덴마크어 | da |
디베히어 | dv |
도그리어 | doi |
네덜란드어 | nl |
영어 | en |
에스페란토 | eo |
에스토니아어 | et |
에웨어 | ee |
필리핀어(타갈로그어) | fil |
핀란드어 | fi |
프랑스어 | fr |
프리지아어 | fy |
갈리시아어 | gl |
조지아어 | ka |
독일어 | de |
그리스어 | el |
과라니어 | gn |
구자라트어 | gu |
아이티 크리올어 | ht |
하우사어 | ha |
하와이어 | haw |
히브리어 | he 또는 iw |
힌디어 | hi |
몽어 | hmn |
헝가리어 | hu |
아이슬란드어 | is |
이보어 | ig |
일로카노어 | ilo |
인도네시아어 | id |
아일랜드 | ga |
이탈리아어 | it |
일본어 | ja |
자바어 | jv 또는 jw |
칸나다어 | kn |
카자흐어 | kk |
크메르어 | km |
키냐르완다어 | rw |
콘칸어 | gom |
한국어 | ko |
크리오어 | kri |
쿠르드어 | ku |
쿠르드어(소라니어) | ckb |
키르기스어 | ky |
라오어 | lo |
라틴어 | la |
라트비아어 | lv |
링갈라어 | ln |
리투아니아어 | lt |
루간다어 | lg |
룩셈부르크어 | lb |
마케도니아어 | mk |
마이틸리어 | mai |
말라가시어 | mg |
말레이어 | ms |
말라얄람어 | ml |
몰타어 | mt |
마오리어 | mi |
마라티어 | mr |
메이테이어(마니푸르어) | mni-Mtei |
미조어 | lus |
몽골어 | mn |
미얀마어(버마어) | my |
네팔어 | ne |
노르웨이어 | no |
니안자어(치츄어) | ny |
오리야어 | or |
오로모어 | om |
파슈토어 | ps |
페르시아어 | fa |
폴란드어 | pl |
포르투갈어(포르투갈, 브라질) | pt |
펀자브어 | pa |
케추아어 | qu |
루마니아어 | ro |
러시아어 | ru |
사모아어 | sm |
산스크리트어 | sa |
스코틀랜드 게일어 | gd |
북소토어 | nso |
세르비아어 | sr |
세소토어 | st |
쇼나어 | sn |
신디어 | sd |
스리랑카어(싱할라어) | si |
슬로바키아어 | sk |
슬로베니아어 | sl |
소말리어 | so |
스페인어 | es |
순다어 | su |
스와힐리어 | sw |
스웨덴어 | sv |
타갈로그어(필리핀어) | tl |
타지크어 | tg |
타밀어 | ta |
타타르어 | tt |
텔루구어 | te |
태국어 | th |
티그리냐어 | ti |
총가어 | ts |
튀르키예어 | tr |
투르크멘어 | tk |
트위어(아칸어) | ak |
우크라이나어 | uk |
우르두어 | ur |
위구르어 | ug |
우즈베크 | uz |
베트남어 | vi |
웨일즈어 | cy |
코사어 | xh |
이디시어 | yi |
요루바어 | yo |
줄루어 | zu |
또한 translate 함수의 반환값은 객체로 다음과 같은 프로퍼티를 갖는다.
- src: 번역 대상 문장의 언어코드
- dest: 번역 완료 문장의 언어코드
- origin: 원문
- text: 번역 완료 문장
- pronunciation: 번역 완료 문장의 발음 방법(영어로 표기)
- extra_data: 번역 과정에서 사용되거나 도출된 중간 결과물들
03. 예제
다음은 일본어 문장 お早う御座います 를 한국어로 번역하는 예제 코드이다.
src=auto 로 설정하여 googletrans에서 검출하도록 설정했다.
import googletrans
transaltor = googletrans.Translator()
originSentence = "お早う御座います"
translatedSentence = transaltor.translate(originSentence, dest='ko', src='auto')
print(translatedSentence)
print(translatedSentence.text)
print(translatedSentence.src)
print(translatedSentence.dest)
print(translatedSentence.pronunciation)
print(translatedSentence.extra_data)
파일을 실행한 결과는 다음과 같다.
