[파이썬] Django를 이용한 다국어 지원

Django는 파이썬을 기반으로한 강력한 웹 프레임워크로, 다국어 지원에 편리한 기능들을 제공합니다. 다국어 지원은 웹 애플리케이션을 여러 언어로 제공하기 위해 필수적인 기능이며, Django는 이를 쉽게 구현할 수 있도록 도와줍니다.

언어 설정하기

Django에서 다국어 지원을 시작하기 위해서는, settings.py 파일에서 언어 관련 설정을 변경해야 합니다. LANGUAGE_CODE 변수를 원하는 언어 코드로 설정하고, LOCALE_PATHS 변수에 번역 파일이 위치하는 경로를 추가해야 합니다.

LANGUAGE_CODE = 'ko-KR'

LOCALE_PATHS = [
    '/path/to/translations/',
]

위의 예제는 한국어(Korean)를 기본 언어로 설정하고, /path/to/translations/ 경로에 번역 파일이 위치한다고 가정한 것입니다.

번역 파일 만들기

Django는 언어별 번역을 위해 gettext 도구를 사용합니다. 이를 통해 번역 파일을 자동으로 생성하거나 수정할 수 있습니다.

  1. 애플리케이션 폴더에서 makemessages 명령어를 실행하여 번역할 문자열을 추출합니다.

    $ python manage.py makemessages -l ko
    

    위의 예제는 한국어 번역을 위해 ko 언어 코드로 번역할 문자열을 추출합니다.

  2. locale 디렉토리에 생성된 .po 파일을 열고, 번역할 문자열을 해당 언어로 번역합니다.

    msgid "Hello, World!"
    msgstr "안녕, 세상!"
    

    예를 들어, Hello, World! 문자열을 한국어로 번역하려면 안녕, 세상!로 수정합니다.

다국어 문자열 사용하기

번역이 완료된 문자열을 템플릿이나 뷰에서 사용할 수 있습니다. {% trans %} 템플릿 태그를 사용하거나 gettext 함수를 호출하여 다국어 문자열을 표시할 수 있습니다.


<!-- 템플릿에서의 다국어 문자열 사용 -->
<h2>{% trans "Welcome to my website!" %}</h2>

# 뷰 함수에서의 다국어 문자열 사용
from django.utils.translation import gettext as _

def my_view(request):
    message = _('Hello, World!')
    return HttpResponse(message)

위의 예제는 템플릿에서 Welcome to my website! 문자열을 다국어로 표시하고, 뷰 함수에서 Hello, World! 문자열을 다국어로 표시하는 방법을 보여줍니다.

다국어 URL 패턴 설정하기

다국어 지원 웹 애플리케이션에서는 URL에 언어 코드를 포함해야 합니다. Django는 i18n_patterns 함수를 사용하여 언어 코드를 포함한 URL 패턴을 생성할 수 있습니다.

from django.conf.urls.i18n import i18n_patterns

urlpatterns = [
    path('admin/', admin.site.urls),
    # ...
]

urlpatterns += i18n_patterns(
    path('', include('myapp.urls')),
)

위의 예제는 myapp.urls 모듈로 들어오는 URL 패턴을 언어 코드를 포함한 패턴으로 변경하고, 이를 전체 URL 패턴에 추가하는 방법을 보여줍니다.

결론

Django를 이용하여 웹 애플리케이션에 다국어 지원 기능을 추가하는 것은 간단하고 편리합니다. 언어 설정, 번역 파일 작성, 다국어 문자열 사용, URL 패턴 설정 등을 적절히 활용하여 사용자들에게 원활한 다국어 경험을 제공할 수 있습니다. Django의 다국어 지원 기능을 잘 활용하여 다양한 언어로 애플리케이션을 제공해 보세요!