[python] PyQt에서의 자동 번역 기능 구현

PyQt는 파이썬으로 GUI 애플리케이션을 개발하기 위한 툴킷입니다. 그리고 PyQt를 활용하면 간단하게 자동 번역 기능을 애플리케이션에 추가할 수 있습니다. 이번 포스트에서는 PyQt를 사용하여 자동 번역 기능을 구현하는 방법에 대해 알아보겠습니다.

번역 API 선택

자동 번역을 구현하기 위해서는 먼저 번역 API를 선택해야 합니다. 여러 가지 번역 API 중에서 사용하고자 하는 API를 선택하여 API 키를 발급받아야 합니다. 예를 들어, Google Translate API, Naver Papago API 등이 있습니다.

필요한 모듈 설치

자동 번역을 구현하기 위해 PyQt 및 번역 API를 사용하기 위한 모듈을 설치해야 합니다. PyQt 모듈은 pip를 통해 아래의 명령을 실행하여 설치할 수 있습니다.

pip install PyQt5

번역 API를 사용하기 위해서는 해당 API의 클라이언트 모듈을 설치해야 합니다. 예를 들어, Google Translate API를 사용한다면 아래의 명령을 실행하여 googletrans 모듈을 설치할 수 있습니다.

pip install googletrans

GUI 설정

PyQt를 사용하여 GUI를 구성하고, 필요한 UI 요소를 추가합니다. 예를 들어, 번역할 텍스트를 입력받는 QTextEdit 위젯과 번역 결과를 표시하는 QLabel 위젯, 번역 버튼을 추가할 수 있습니다.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QPushButton, QVBoxLayout, QWidget

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("자동 번역")
        self.setGeometry(100, 100, 400, 200)

        layout = QVBoxLayout()
        self.text_edit = QTextEdit()
        layout.addWidget(self.text_edit)

        self.translate_button = QPushButton("번역")
        self.translate_button.clicked.connect(self.translate_text)
        layout.addWidget(self.translate_button)

        self.translation_label = QLabel()
        layout.addWidget(self.translation_label)

        widget = QWidget()
        widget.setLayout(layout)
        self.setCentralWidget(widget)

    def translate_text(self):
        # 번역 기능을 여기에 추가

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

번역 기능 추가

translate_text() 메소드를 구현하여 번역 기능을 추가합니다. 선택한 번역 API를 사용하여 입력받은 텍스트를 번역하고, 번역 결과를 화면에 표시합니다.

from googletrans import Translator

translator = Translator(service_urls=['translate.google.com'])

def translate_text(self):
    text = self.text_edit.toPlainText()
    result = translator.translate(text, dest="ko")

    self.translation_label.setText(result.text)

위의 예제에서 translator.translate() 메소드를 사용하여 번역을 수행하고, 결과는 result.text로 얻을 수 있습니다. dest 매개변수를 사용하여 번역할 언어를 설정할 수 있습니다.

실행

번역 기능을 추가한 후에는 애플리케이션을 실행하여 테스트할 수 있습니다. 번역할 텍스트를 입력한 후 번역 버튼을 클릭하면 번역 결과가 표시되는 것을 확인할 수 있습니다.

이렇게 PyQt와 선택한 번역 API를 활용하여 간단하게 자동 번역 기능을 구현할 수 있습니다. 추가적으로 번역 언어 선택 기능이나 다양한 번역 API 옵션들을 적용할 수도 있습니다. 또한, GUI 디자인을 개선하여 보다 사용자 친화적인 애플리케이션을 만들 수도 있습니다.

참고 자료