[ 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) (9) | 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
댓글을 사용할 수 없습니다.