django国际化不起作用

xRo*_*bot 1 django internationalization

我在模板和应用程序视图中创建了翻译字符串.

然后我跑了:

django-admin.py makemessages -l it
Run Code Online (Sandbox Code Playgroud)

并且已创建文件it/LC_MESSAGES/django.po

我现在已经在django.po文件中翻译了字符串,然后我跑了:

django-admin.py compilemessages
Run Code Online (Sandbox Code Playgroud)

我收到:

processing file django.po in /home/jobber/Desktop/library/books/locale/it/LC_MESSAGES
Run Code Online (Sandbox Code Playgroud)

我的settings.py看起来像这样:

LANGUAGE_CODE = 'it'
TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media", )
USE_I18N = True
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
)
Run Code Online (Sandbox Code Playgroud)

但我仍然总是看到英文文本.为什么?

Ret*_*old 9

也许您的浏览器语言是英语.LocaleMiddleware尝试基于此算法检测语言(即Accept-Language HTTP标头).
因此,您可以删除LocaleMiddleware以避免这种情况,也可以使用set_language重定向视图.