728x90
gettext 설치
- Windows
https://mlocati.github.io/articles/gettext-iconv-windows.html
gettext 0.21 and iconv 1.16 - Binaries for Windows
Download gettext & iconv binaries for Windows - 32 and 64 bits - shared and static.
mlocati.github.io
- Linux
터미널에 명령어 입력하여 설치
sudo apt install gettext
settings.py 수정
- 모듈 import
from django.utils.translation import ugettext_lazy as _
- middleware 추가
MIDDLEWARE = [ ... 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', ... ]
- LANGUAGES 추가 및 LOCALE_PATHS 추가 (원하는 언어 목록 작성)
폴더구조 -- projectLANGUAGES =[ ('ko', _('Korean')), ('en', _('English')), ] LOCALE_PATHS = ( os.path.join(BASE_DIR, 'locale'), )
ㄴ locale
ㄴ ko
ㄴ en
번역 파일 생성
# 최초 실행 시에는 언어별로 별도 실행
python3 manage.py makemessages -l ko
python3 manage.py makemessages -l en
# 최초 실행이 아닐 경우
python manage.py makemessages -a
- locale/ko/django.po, locale/en/django.po 파일이 생긴다
- 무시하고 싶은 파일, 폴더가 있다면
이런식으로 적어주면 된다.python3 manage.py makemessages -a -ignore "venv/*” -ignore "static/*”
- *.po 파일을 만들고 나 후 ""와 fuzzy를 검색하여 수정해준다.
번역 파일 컴파일
python3 manage.py compilemessages
- django.mo 파일이 생긴다.
- 컴파일 또한 무시하고 싶으면 같은 방식
사용
- 브라우저의 언어설정에 따라 바뀌게 된다.
- html에서 사용법
{% load i18n %} {% trans "msgid" %}
- view.py에서의 사용법
from django.utils.translation import ugettext_lazy as _ msg = _('msgid')
'개발 지식 > Python' 카테고리의 다른 글
[Python] Window python 설치 및 vscode 환경 구성 (1) | 2024.01.18 |
---|---|
[Python] Tkinter 마우스 드래그 감지 (0) | 2024.01.10 |