4월, 2016의 게시물 표시

django에서 i18n 지원 방법

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에