[python] Django에서의 다국어 처리 방법

다국어 웹 애플리케이션을 개발할 때, Django는 언어 선택, 번역 및 로캘화, 다국어 콘텐츠 관리 등을 위한 다양한 기능을 제공합니다. 이 포스트에서는 Django에서의 다국어 처리를 위한 방법에 대해 알아보겠습니다.

  1. 언어 선택
  2. 번역 및 로캘화
  3. 다국어 콘텐츠 관리

언어 선택

Django는 사용자가 선호하는 언어를 식별하는 기능을 제공합니다. 이를 위해 django.middleware.locale.LocaleMiddleware를 설정하여, 웹 애플리케이션은 사용자의 선호 언어에 따라 적절한 번역을 제공할 수 있습니다.

# settings.py
MIDDLEWARE = [
    'django.middleware.locale.LocaleMiddleware',
    # other middlewares
]

번역 및 로캘화

Django의 내장된 gettext 기능을 이용하여 번역과 로캘화를 쉽게 처리할 수 있습니다. 번역할 문구들을 django.po 파일에 작성하고, msgfmt를 사용하여 컴파일하여 django.mo 파일을 생성합니다.

from django.utils.translation import gettext as _

def my_view(request):
    output = _('안녕하세요!')
    return HttpResponse(output)

다국어 콘텐츠 관리

Django admin 페이지에서는 다국어 콘텐츠를 효과적으로 관리할 수 있습니다. 다국어 필드를 갖는 모델을 정의하고 admin 페이지에서 번역된 콘텐츠를 추가 및 수정할 수 있습니다.

from django.db import models
from django.utils.translation import gettext_lazy as _

class MyModel(models.Model):
    name_en = models.CharField(max_length=100, verbose_name=_('Name (English)'))
    name_ko = models.CharField(max_length=100, verbose_name=_('Name (Korean)'))

이제 Django를 이용하여 웹 애플리케이션을 개발하거나 관리할 때, 다국어 처리를 위한 기능을 쉽게 활용할 수 있습니다.

관련 참고 자료: