Django ブログサイト locale/LC_MESSAGES 多言語対応
2020/07/04 (更新:2020/11/19)
本サイトは複数の言語に対応します。
アプリケーション設定
MIDDLEWAREにdjango.middleware.locale.LocaleMiddlewareを定義します。
LANGUAGESに使用する言語を指定します。
settings
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
LANGUAGE_CODE = 'ja'
LANGUAGES = [
('ja', gettext_lazy('Japanese')),
('en', gettext_lazy('English')),
]
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
コード
template html
{% load i18n %}
<h1>{% trans 'Test' %}</h1>
メッセージファイル作成
Djangoツールよりメッセージファイルlocale/*/LC_MESSAGESを作成します。
Command
python manage.py makemessages -l en --no-location
python manage.py makemessages -l ja --no-location
メッセージファイルlocale/*/LC_MESSAGESを修正し、Djangoツールよりビルドします。
Command
python manage.py compilemessages