728x90
728x90
PyQt로 구글 번역기 프로그램 만들기
들어가며
- PyQt를 이용하여 간단하게 한글의 문장을 영어 문장으로 번역하는 프로그램을 만들어보자.
- 이때, 무료로 사용할 수 있는 구글 번역기 패키지(
googletrans
)를 사용하도록 한다.

코드
import sys from PyQt5.QtWidgets import * from googletrans import Translator class MyApp(QWidget): def __init__(self): super().__init__() self.lbl1 = QLabel('한국어:', self) self.lbl2 = QLabel('영어:', self) self.le = QLineEdit(self) self.te = QTextEdit(self) self.trans_btn = QPushButton('번역', self) self.translator = Translator() self.initUI() def initUI(self): vbox = QVBoxLayout() vbox.addWidget(self.lbl1) vbox.addWidget(self.le) vbox.addWidget(self.lbl2) vbox.addWidget(self.te) vbox.addWidget(self.trans_btn) self.setLayout(vbox) self.trans_btn.clicked.connect(self.translate_kor) self.le.editingFinished.connect(self.translate_kor) self.setWindowTitle('Google Translator') self.setGeometry(200, 200, 400, 300) self.show() def translate_kor(self): text_kor = self.le.text() text_en = self.translator.translate(text_kor, dest="en").text # dest에 번역할 언어의 키워드를 지정해준다. self.te.setText(text_en) if __name__ == '__main__': app = QApplication(sys.argv) ex = MyApp() sys.exit(app.exec_())
![]() |
![]() |
구글 번역기 패키지(googletrans)
- 파이썬에서 구글 번역기를 무료로 사용할 수 있는 패키지이다.
Googletrans: Free and Unlimited Google translate API for Python — Googletrans 3.0.0 documentation
Googletrans: Free and Unlimited Google translate API for Python Googletrans is a free and unlimited python library that implemented Google Translate API. This uses the Google Translate Ajax API to make calls to such methods as detect and translate. Feature
py-googletrans.readthedocs.io
패키지 설치하기
> pip install googletrans
다른 언어로 변경하는 방법
translate()
메소드의dest
인자를 다른 언어 코드로 지정해주면 된다.
self.translator.translate(text_kor, dest="언어코드")
- 언어 코드는 아래의 코드를 실행하여 알 수 있다.
from googletrans import LANGUAGES print(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' }
Type None
이슈 해결하기
- 터미널에
pip install googletrans
명령을 실행하여 패키지를 설치하고 바로 실습을 진행할 경우, 아래와 같은 오류 문장이 뜰 수 있다.
AttributeError: 'NoneType' object has no attribute 'group'
- ChatGPT에게 해결 방법을 물어봤으나 알려주지 않았다. 🗿
- 그래서 직접 구글링을 해서 문제 해결 방법을 찾았다.
- 베타 테스터 버전을 설치하면 이 이슈를 해결할 수 있다고 한다. 그래서
4.0-rc1
버전을 설치해보기로 하였다.
> pip install googletrans==4.0.0-rc1
- 베타 테스터 버전을 설치한 후, 프로그램을 실행하면 정상적으로 작동되는 것을 확인할 수 있다.
728x90
728x90
'Framework > PyQt' 카테고리의 다른 글
[PyQt] 간단한 CRUD(Create, Read, Update, Delete) 프로그램 (0) | 2023.07.18 |
---|---|
[PyQt] QTimer.singleShot 함수를 특정 시간 간격으로 여러번 실행하는 방법 (0) | 2023.07.16 |
[PyQt] QAction에서 triggered 시그널을 사용할 때, 인자를 triggered 메서드에 전달하는 방법 (0) | 2023.07.08 |
[PyQt] QClipboard.Clipboard와 QClipboard.Selection의 차이점 (0) | 2023.07.07 |
[PyQt] 커스텀 아이콘 패키지(fugueicons) 설치 및 사용해보기 (0) | 2023.07.05 |
[PyQt] style().standardIcon() 메서드에서 사용할 수 있는 아이콘 종류 및 숫자 (1) | 2023.05.17 |
[PyQt] PyQt5에서 QWebView 사용하기 (0) | 2023.05.16 |
[PyQt] self.width()와 self.height()를 사용할 때, 실행창이 튕기는 경우 해결 방법 (0) | 2023.05.14 |