구글 번역기 프로그램

이번 예제에서는 Googletrans 라이브러리를 이용해서 간단한 구글 번역기 프로그램을 만들어 보겠습니다.

Googletrans는 파이썬을 위한 구글 번역 API 입니다. Googletrans에 대한 자세한 내용은 아래의 링크를 참고하세요.

(Googletrans - 파이썬을 위한 구글 번역 API)


예제

## Ex 10-3. 구글 번역기 프로그램.

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).text
        self.te.setText(text_en)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())


설명

self.lbl1 = QLabel('한국어:', self)
self.lbl2 = QLabel('영어:', self)
self.le = QLineEdit(self)
self.te = QTextEdit(self)
self.trans_btn = QPushButton('번역', self)
self.translator = Translator()

프로그램에 배치할 위젯들을 만듭니다.

두 개의 라벨과 줄 편집기, 텍스트 편집기, 푸시 버튼을 하나씩 만들었습니다.

Translator는 구글 번역기를 구현한 파이썬 클래스입니다.

(참고: Googletrans - googletrans.Translator)



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)

수직 박스 레이아웃을 이용해서 만든 위젯들을 수직으로 배치합니다.

(참고: PyQt5 레이아웃 - 박스 레이아웃)



self.trans_btn.clicked.connect(self.translate_kor)
self.le.editingFinished.connect(self.translate_kor)

번역 버튼을 클릭하거나, 줄 편집기의 텍스트 편집이 완료되면 self.translate_kor 메서드가 호출됩니다.

(참고: PyQt5 위젯 - QLineEdit)



def translate_kor(self):
    text_kor = self.le.text()
    text_en = self.translator.translate(text_kor).text
    self.te.setText(text_en)

translate_kor() 함수는 구글 번역기 API를 이용해서 줄 편집기의 텍스트를 영어로 번역하고, 번역된 텍스트를 텍스트 편집기에 표시하는 기능을 합니다.

아래의 결과와 같이 ‘만나서 반갑습니다.’라는 문장이 ‘Nice to meet you.’라는 영어 문장으로 번역됩니다.



결과

../_images/9_3_translator.png

그림 10-3. 구글 번역기 프로그램.



이전글/다음글