[python] PySimpleGUI에서 다국어 지원하기

PySimpleGUI는 사용자 인터페이스(GUI)를 만들기 위한 파이썬 라이브러리로, 다양한 플랫폼에서 동작할 수 있는 간단하고 직관적인 인터페이스를 제공합니다. 이번 포스트에서는 PySimpleGUI를 사용하여 다국어 지원을 구현하는 방법에 대해 알아보겠습니다.

다국어 지원을 위한 번역 파일 작성하기

먼저, 다국어 지원을 위해 번역 파일을 작성해야 합니다. 번역 파일은 각 언어별로 텍스트를 포함하며, 일반적으로 JSON 또는 CSV 형식으로 작성됩니다. 예를 들어, 다음과 같이 translations.json 파일을 작성할 수 있습니다.

{
  "en": {
    "greeting": "Hello!",
    "message": "Welcome to PySimpleGUI!"
  },
  "ko": {
    "greeting": "안녕하세요!",
    "message": "PySimpleGUI에 오신 것을 환영합니다!"
  }
}

위의 예시에서는 영어(en)와 한국어(ko)에 대한 번역을 제공합니다. 각 언어에 해당하는 텍스트를 필요한 만큼 추가할 수 있습니다.

PySimpleGUI에서 다국어 지원 구현하기

다음으로, 이제 PySimpleGUI를 사용하여 다국어 지원을 구현해보겠습니다. 예제 코드를 참고해주세요.

import PySimpleGUI as sg
import json

def get_translations():
    with open('translations.json', 'r') as file:
        translations = json.load(file)
    return translations

def main():
    translations = get_translations()
    language = sg.popup_get_text('Please enter your language code (e.g. en, ko):')
    text = translations.get(language, translations['en'])
    
    layout = [[sg.Text(text['greeting'])],
              [sg.Text(text['message'])],
              [sg.Button('OK')]]
    window = sg.Window('GUI', layout)
    
    while True:
        event, values = window.read()
        if event == sg.WINDOW_CLOSED or event == 'OK':
            break
    
    window.close()

if __name__ == '__main__':
    main()

위의 예제 코드에서는 get_translations() 함수를 통해 번역 파일을 읽어와서 번역 데이터를 가져옵니다. 사용자로부터 언어 코드를 입력받아 해당하는 언어의 텍스트를 가져와 GUI에 표시하는 것이 핵심입니다.

위의 예제에서는 sg.popup_get_text() 함수를 통해 사용자에게 언어 코드를 입력받았지만, 실제로는 언어 선택을 위한 드롭다운 목록 또는 라디오 버튼 등을 사용하는 것이 좋습니다.

결론

이렇게 PySimpleGUI를 사용하여 다국어 지원을 구현할 수 있습니다. 번역 파일에 필요한 언어의 텍스트를 추가하고, 해당 언어의 텍스트를 가져와서 GUI에 표시하는 방법을 배웠습니다. PySimpleGUI의 간편한 인터페이스를 활용하여 다국어 지원 기능을 구현해보세요.

참고 자료