django에서 i18n 지원 방법


django 프로젝트 공식 문서를 참고하자.

https://docs.djangoproject.com/en/1.9/topics/i18n/translation/#how-django-discovers-language-preference


i18n을 사용하려면 gettext를 설치해야 하는데 윈도우 용은 아래 링크를 클릭해서 설치를 한다.

http://mlocati.github.io/gettext-iconv-windows/


settings.py 에서 MIDDLEWARE_CLASSES 에 django.middleware.locale.LocaleMiddleware 를 추가한다.


MIDDLEWARE_CLASSES = [

...

    'django.middleware.locale.LocaleMiddleware',

    'django.middleware.common.CommonMiddleware',

...

]


ugettext_lazy 를 함수를 import한다.


from django.utils.translation import ugettext_lazy as _


언어설정

LANGUAGE_CODE = 'ko-KR'


언어목록

LANGUAGES = [

  ('ko', _('Korean')),

  ('en', _('English')),

]


언어 파일 경로

LOCALE_PATHS = (

    os.path.join(BASE_DIR, 'locale'),

)


settings.py에서 위와 같이 설정 후,

python manage.py makemessages 명령을 내리면 언어파일 경로에 각 언어별로 폴더가 생성된다. django.po 파일이 생성되면 파일을 열어서 수정한다.

msgid에는 소스에 있는 문구가 들어있고 msgstr에 한글로 번역을 하면 된다.


예)

#: .\snippets\templates\main.html:122 .\snippets\templates\main.html.py:127

msgid "Welcome to our page"

msgstr "홈페이지에 오신걸 환영합니다"


그런다음 python manage.py compilemessages 를 하면 컴파일이 된다.

언어별로 설정하려면 -l ko 와 같이 언어 옵션을 설정한다.


예) python manage.py makemessages -l ko


이제 템플릿 파일에서 {% load i18n %} 을 첫줄에 넣고 tran 구문을 넣으면 다국어지원이 가능해진다.


{% trans "Welcome to our page" %}

' > django' 카테고리의 다른 글

https://github.com/mirumee/saleor  (0) 2018.04.09
requirements usage  (0) 2017.06.08
django settings 분리  (0) 2017.06.03
장고 헬로우월드  (0) 2015.10.11
장고 부트스트랩 장고에 쓰기.  (0) 2015.10.11
Posted by wakira
,