[ Python ] googletrans을 이용한 간단한 번역 프로그램
반응형
Python의 googletrans 라이브러리를 사용하여 텍스트와 문장을 다른 언어로 빠르게 번역할 수 있습니다. 매우 간단하며 몇 줄의 코드만 있으면 됩니다.
Install
Python 환경에서 간단하게 googletrans만 설치하면 사용이 가능합니다. pip 를 이용하여 googletrans 설치를 진행하면 3.0.0 버전으로 설치가 되지만 3.0.0 버전은 오류가 있으니 아래와 같이 버전을 지정하여 4.0.0rc1 버전으로 설치하시기 바랍니다.
pip install googletrans==4.0.0rc1
Import packages
from googletrans import Translator
options = ['text', 'file']
Class declaration
Googletrans는 Google Translate API를 이용하여 구현한 Python 라이브러리이고 무료입니다. 이것은 현재 Google에서 제공하는 번역기 Google Translate Ajax API와 동일한 method를 사용합니다.
class Google_Translator:
def __init__(self):
self.translator = Translator()
self.result = {'src_text': '', 'src_lang': '', 'tgt_text': '', 'tgt_lang': ''}
def translate(self, text, lang='en'):
translated = self.translator.translate(text, dest=lang)
self.result['src_text'] = translated.origin
self.result['src_lang'] = translated.src
self.result['tgt_text'] = translated.text
self.result['tgt_lang'] = translated.dest
return self.result
def translate_file(self, file_path, lang='en'):
with open(file_path, 'r') as f:
text = f.read()
return self.translate(text, lang)
translator.translate() method의 파라미터는 아래와 같습니다.
- text : 원본 텍스트
- dest : 번역 할 언어
- src : 원본 텍스트 언어 (지정하지 않으면 자동으로 언어 감지)
더보기
지원 언어
LANGUAGES = {
'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',
}
Run
간단하게 프롬프트에서 입력을 받아 처리하도록 만들었습니다. (AttributeError: 'NoneType' object has no attribute 'group' 오류 발생 시 googletrans uninstall 후 4.0.0rc1 버전으로 재설치하시기 바랍니다.)
if __name__ == '__main__':
translator = Google_Translator()
# Select the language you want to translate to
tgt_lang_code = input('# Enter language code (Default: ko): ')
if tgt_lang_code == '':
tgt_lang_code = 'ko'
print('>> You chose: {}\n'.format(tgt_lang_code))
# Select the option you want to use
input_message = '# Pick an option: text or file: \n'
for index, option in enumerate(options):
input_message += f'{index + 1}. {option}\n'
input_message += 'Enter your choice: '
option = input(input_message)
print('>> You chose: {}\n'.format(options[int(option) - 1]))
# Translate the text
if option == '1':
input_text = input('Press Enter to translate: ')
result = translator.translate(input_text, tgt_lang_code)
print('[{}] -> [{}]'.format(result['src_lang'], result['tgt_lang']))
print('=' * 50)
print('Source Text : {}'.format(result['src_text']))
print('Target Text : {}'.format(result['tgt_text']))
# Translate the file
elif option == '2':
file_path = input('Enter file path: ')
result = translator.translate_file(file_path, tgt_lang_code)
print('[{}] -> [{}]'.format(result['src_lang'], result['tgt_lang']))
print('=' * 50)
print('Source Text : [{}]\n'.format(result['src_text']))
print('Target Text : [{}]'.format(result['tgt_text']))
텍스트를 입력하여 번역 수행
파일을 읽어 번역 수행
Source
반응형
'Tech & Development > Automation & RPA' 카테고리의 다른 글
Python으로 Discord Bot 만들기 (1) (8) | 2023.02.16 |
---|---|
Discord 채널 ID 확인 (0) | 2023.02.16 |
웹 스크래핑이란? (0) | 2022.04.26 |
Python으로 Slack App(Bot) 만들기 (4) - Slash Commands (3) | 2022.03.14 |
Python으로 Slack App(Bot) 만들기 (3) - 챗봇 (0) | 2022.03.08 |
댓글
이 글 공유하기
다른 글
-
Python으로 Discord Bot 만들기 (1)
Python으로 Discord Bot 만들기 (1)
2023.02.16 -
Discord 채널 ID 확인
Discord 채널 ID 확인
2023.02.16 -
웹 스크래핑이란?
웹 스크래핑이란?
2022.04.26 -
Python으로 Slack App(Bot) 만들기 (4) - Slash Commands
Python으로 Slack App(Bot) 만들기 (4) - Slash Commands
2022.03.14