본문 바로가기

Software/Python

[Python] 번역 프로그램

728x90

- 구글 번역기 라이브러리 설치

2021.11월 기준 안정적인 라이브러리 버전

pip install googletrans==4.0.0-rc1

 

<번역 프로그램  코드>

import googletrans   # googletrans를 불러옴

translator = googletrans.Translator()

# dest : 번역 후 언어, src: 번역할 문자의 언어로 auto가 기본으로 되어있음.
str1 = "행복하세요"
result1 = translator.translate(str1, dest='en', src='auto')
print(f"행복하세요 => {result1.text}")

str2 = "I am happy"
result2 = translator.translate(str2, dest='ko', src='en')
print(f"I am happy => {result2.text}")

 

<번역 사용 가능한 언어 확인하는 코드>

import googletrans
lang = googletrans.LANGUAGES
print(lang)

[결과]

{'af': 'afrikaans', 'sq': 'albanian', 'am': 'amharic', 'ar': 'arabic', 'hy': 'armenian', 'az': 'azerbaijani', 'eu': 'basque', 'be': 'belarusian', 'bn': 'bengali', 'bs': 'bosnian', 'bg': 'bulgarian', 'ca': 'catalan', 'ceb': 'cebuano', 'ny': 'chichewa', 'zh-cn': 'chinese (simplified)', 'zh-tw': 'chinese (traditional)', 'co': 'corsican', 'hr': 'croatian', 'cs': 'czech', 'da': 'danish', 'nl': 'dutch', 'en': 'english', 'eo': 'esperanto', 'et': 'estonian', 'tl': 'filipino', 'fi': 'finnish', 'fr': 'french', 'fy': 'frisian', 'gl': 'galician', 'ka': 'georgian', 'de': 'german', 'el': 'greek', 'gu': 'gujarati', 'ht': 'haitian creole', 'ha': 'hausa', 'haw': 'hawaiian', 'iw': 'hebrew', 'he': 'hebrew', 'hi': 'hindi', 'hmn': 'hmong', 'hu': 'hungarian', 'is': 'icelandic', 'ig': 'igbo', 'id': 'indonesian', 'ga': 'irish', 'it': 'italian', 'ja': 'japanese', 'jw': 'javanese', 'kn': 'kannada', 'kk': 'kazakh', 'km': 'khmer', 'ko': 'korean', 'ku': 'kurdish (kurmanji)', 'ky': 'kyrgyz', 'lo': 'lao', 'la': 'latin', 'lv': 'latvian', 'lt': 'lithuanian', 'lb': 'luxembourgish', 'mk': 'macedonian', 'mg': 'malagasy', 'ms': 'malay', 'ml': 'malayalam', 'mt': 'maltese', 'mi': 'maori', 'mr': 'marathi', 'mn': 'mongolian', 'my': 'myanmar (burmese)', 'ne': 'nepali', 'no': 'norwegian', 'or': 'odia', 'ps': 'pashto', 'fa': 'persian', 'pl': 'polish', 'pt': 'portuguese', 'pa': 'punjabi', 'ro': 'romanian', 'ru': 'russian', 'sm': 'samoan', 'gd': 'scots gaelic', 'sr': 'serbian', 'st': 'sesotho', 'sn': 'shona', 'sd': 'sindhi', 'si': 'sinhala', 'sk': 'slovak', 'sl': 'slovenian', 'so': 'somali', 'es': 'spanish', 'su': 'sundanese', 'sw': 'swahili', 'sv': 'swedish', 'tg': 'tajik', 'ta': 'tamil', 'te': 'telugu', 'th': 'thai', 'tr': 'turkish', 'uk': 'ukrainian', 'ur': 'urdu', 'ug': 'uyghur', 'uz': 'uzbek', 'vi': 'vietnamese', 'cy': 'welsh', 'xh': 'xhosa', 'yi': 'yiddish', 'yo': 'yoruba', 'zu': 'zulu'}

 

<영어 문서 한글로 번역하는 코드>

파일에서 문자를 읽어 줄별로 한글로 번역

 

from os import linesep
import googletrans

translator = googletrans.Translator()

read_file_path = r"영어파일.txt"     # 파일을 읽어올 경로 지정

# 파일에서 줄별로 읽어 readlines에 리스트형태로 바인딩
with open(read_file_path, 'r') as f :
    readLines = f.readlines()

# 리스트형태로 저장된 readlines에서 한 줄씩 한글로 변환하여 출력
for lines in readLines:
    result1 = translator.translate(lines, dest='ko', src='en')
    print(result1.text)
 

[ 영어파일.txt ]

A big fish in a little pond
A good medicine tastes bitter
No pain No gain

 

[출력]

작은 연못에 큰 물고기

좋은 약은 쓴 맛입니다

고통이 없으면 얻는 것도 없다

 

 

< 번역 내용을 새 파일로 저장하는 코드 >

from os import linesep
import googletrans

translator = googletrans.Translator()

read_file_path = r"영어파일.txt"     # 파일을 읽어올 경로 지정
write_file_path = r"한글파일.txt"    # 저장할 경로와 파일명 지정

# 파일에서 줄별로 읽어 readlines에 리스트형태로 바인딩
with open(read_file_path, 'r') as f :
    readLines = f.readlines()

# 리스트형태로 저장된 readlines에서 한 줄씩 한글로 변환하여 출력
for lines in readLines:
    result1 = translator.translate(lines, dest='ko', src='en')
    print(result1.text)
   
    # 파일 저장. 'a' 옵션은 마지막에 추가로 쓰는 모드. 한글을 사용하기 위해 encoding='UTF8'
    # 한 줄 쓴 다음 \n을 더하여 줄바꿈
    with open(write_file_path, 'a', encoding='UTF8') as f:
        f.write(result1.text + '\n')
728x90