django 国际化翻译

Django国际化

本地环境

  • python 3.9
  • Django 3.2

项目初始化后,在根目录的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

posted @ 2022-05-07 15:44  phper-liunian  阅读(135)  评论(0编辑  收藏  举报