프로그래밍/python

PyQt5로 구글 번역기 프로그램 만들기

마루의 일상 2024. 6. 12. 01:34
728x90
반응형

PyQt5를 사용하여 간단한 구글 번역기 프로그램을 만드는 방법을 소개해드리겠습니다. 이 프로그램은 Google Translate API를 활용하여 텍스트를 번역하는 기능을 제공합니다.

준비물

  1. Python (3.x 버전 권장)
  2. PyQt5 라이브러리
  3. googletrans 라이브러리

1. PyQt5 및 googletrans 설치

먼저 PyQt5와 googletrans 라이브러리를 설치해야 합니다. 터미널 또는 CMD에서 다음 명령어를 입력하여 설치할 수 있습니다:

pip install pyqt5 googletrans==4.0.0-rc1

2. GUI 설계

PyQt5를 사용하여 간단한 GUI를 설계해보겠습니다. 여기서는 두 개의 텍스트 박스와 하나의 버튼을 사용하여 번역 기능을 구현할 것입니다.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QTextEdit, QPushButton, QVBoxLayout, QHBoxLayout
from googletrans import Translator

class TranslatorApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        
    def initUI(self):
        self.setWindowTitle('Google Translator')
        
        self.input_label = QLabel('Enter text to translate:')
        self.input_text = QTextEdit()
        
        self.output_label = QLabel('Translated text:')
        self.output_text = QTextEdit()
        self.output_text.setReadOnly(True)
        
        self.translate_button = QPushButton('Translate')
        self.translate_button.clicked.connect(self.translate_text)
        
        vbox = QVBoxLayout()
        vbox.addWidget(self.input_label)
        vbox.addWidget(self.input_text)
        vbox.addWidget(self.output_label)
        vbox.addWidget(self.output_text)
        vbox.addWidget(self.translate_button)
        
        self.setLayout(vbox)
        
    def translate_text(self):
        translator = Translator()
        input_text = self.input_text.toPlainText()
        translated_text = translator.translate(input_text, dest='en').text
        self.output_text.setText(translated_text)

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

3. 코드 설명

3.1. 라이브러리 임포트

필요한 라이브러리를 임포트합니다. PyQt5는 GUI를 만들기 위해, googletrans는 번역을 위해 사용됩니다.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QTextEdit, QPushButton, QVBoxLayout
from googletrans import Translator

3.2. TranslatorApp 클래스

TranslatorApp 클래스는 QWidget을 상속받아 GUI 애플리케이션을 만듭니다. __init__ 메서드에서 initUI 메서드를 호출하여 UI를 초기화합니다.

3.3. UI 초기화

initUI 메서드에서 다음과 같이 UI 요소를 초기화합니다:

  • QLabel을 사용하여 텍스트 레이블을 추가
  • QTextEdit을 사용하여 입력 및 출력 텍스트 박스를 추가
  • QPushButton을 사용하여 번역 버튼을 추가하고, 버튼 클릭 시 translate_text 메서드를 호출하도록 연결
def initUI(self):
    self.setWindowTitle('Google Translator')
    
    self.input_label = QLabel('Enter text to translate:')
    self.input_text = QTextEdit()
    
    self.output_label = QLabel('Translated text:')
    self.output_text = QTextEdit()
    self.output_text.setReadOnly(True)
    
    self.translate_button = QPushButton('Translate')
    self.translate_button.clicked.connect(self.translate_text)
    
    vbox = QVBoxLayout()
    vbox.addWidget(self.input_label)
    vbox.addWidget(self.input_text)
    vbox.addWidget(self.output_label)
    vbox.addWidget(self.output_text)
    vbox.addWidget(self.translate_button)
    
    self.setLayout(vbox)

3.4. 번역 기능

translate_text 메서드는 googletrans의 Translator 객체를 사용하여 입력 텍스트를 번역하고, 결과를 출력 텍스트 박스에 표시합니다.

def translate_text(self):
    translator = Translator()
    input_text = self.input_text.toPlainText()
    translated_text = translator.translate(input_text, dest='en').text
    self.output_text.setText(translated_text)

4. 프로그램 실행

위의 코드를 translator.py 파일로 저장한 후, 터미널에서 다음 명령어로 실행할 수 있습니다:

python translator.py
 

프로그램이 실행되면 텍스트를 입력하고 "Translate" 버튼을 눌러 번역된 결과를 확인할 수 있습니다.


이상으로 PyQt5를 사용하여 간단한 구글 번역기 프로그램을 만드는 방법을 알아보았습니다. 이 프로그램을 통해 PyQt5와 googletrans 라이브러리를 활용하는 방법을 익히실 수 있기를 바랍니다. 

감사합니다.

728x90
반응형