Django国际化
本地环境
项目初始化后,在根目录的settings.py文件中
# 设置语言环境变量
LANGUAGES = [
('zh-hans', 'Chinese'),
]
# 国际化钩子开启
USE_I18N = True
# 本地语言变量的地址
LOCALE_PATHS = [
os.path.join(BASE_DIR, 'locale')
]
# 新增中间件 "django.middleware.locale.LocaleMiddleware",且在它应该在 SessionMiddleware 之后
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
]
# 在py文件中, 引用下面的库
from django.utils.translation import gettext as _
# 示例
def test(request):
"""test translation
:param request:
:return:
"""
output = _("test")
return HttpResponse(output)
# 命令行执行
django-admin makemessages -l zh_hans
# 这条指令会生成已zh_hans的语言包,具体路径/path/locale/zh_hans/LC_MESSAGES/django.po
# django.po中的格式如下,其中只要填写msgstr的内容就是你要翻译的内容
#: path/xx/xx.py:91
msgid "test"
msgstr "测试"
# 运行命令
django-admin compilemessages
这条指令会生成具体路径/path/locale/zh_hans/LC_MESSAGES/django.mo