[python] 파이썬을 이용한 웹 애플리케이션의 국제화 방법
국제화(Internationalization, i18n)는 웹 애플리케이션을 다국어 및 지역에 대해 대응 가능하게 하는 프로세스입니다. 파이썬을 사용하여 웹 애플리케이션을 국제화하는 방법을 알아보겠습니다.
1. 언어 코드 사용
다국어 지원을 위해 지원할 언어의 코드를 정의하고, 해당 언어에 대한 번역 텍스트를 관리해야 합니다. 파이썬의 gettext
모듈은 이러한 작업을 간편하게 할 수 있도록 지원합니다.
from flask import Flask, request, g
from flask_babel import Babel, _
app = Flask(__name__)
babel = Babel(app)
@babel.localeselector
def get_locale():
return request.accept_languages.best_match(['en', 'fr'])
@app.route('/')
def index():
return _("Hello, World!")
2. 번역 파일 작성
gettext
을 사용하여 번역 파일을 작성합니다. 해당 언어 코드에 맞는 디렉터리와 messages.po
파일을 생성하고 번역을 작성합니다.
locale/
├── en/
│ └── LC_MESSAGES/
│ └── messages.po
└── fr/
└── LC_MESSAGES/
└── messages.po
3. 번역 파일 컴파일
작성한 번역 파일을 컴파일하여 실제로 어플리케이션에서 사용할 수 있는 형식으로 변환합니다.
pybabel compile -d locale -D messages
4. 템플릿에서 번역 사용
플라스크(Flask)와 함께 Babel을 사용하여 템플릿에서 번역된 문구를 사용합니다.
<!DOCTYPE html>
<html>
<body>
<h1>{{ _('Hello, World!') }}</h1>
</body>
</html>
이와 같은 방법을 통해 파이썬으로 작성된 웹 애플리케이션의 국제화를 간단하게 처리할 수 있습니다.
이러한 과정 외에도, 날짜 형식, 통화, 숫자 형식 등의 지역화 처리에 대한 고려가 필요합니다. 또한, 문자열의 하드코딩을 피하고, 번역 메모리(memory)도 축적하는 것이 중요합니다. 이러한 지식을 토대로, 웹 애플리케이션을 효과적으로 국제화할 수 있습니다.