我在模板和应用程序视图中创建了翻译字符串。
然后我跑了:
django-admin.py makemessages -l it
已创建文件/ LC_MESSAGES / django.po
我现在已经在django.po文件中翻译了字符串,然后我跑了:
django-admin.py compilemessages
我收到了:
processing file django.po in /home/jobber/Desktop/library/books/locale/it/LC_MESSAGES
我的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',
)
但我仍然总是看到英文文本。为什么呢?
答案 0 :(得分:9)
也许您的浏览器语言是英语。 LocaleMiddleware尝试基于this algorithm检测语言(即Accept-Language HTTP标头) 因此,您可以删除LocaleMiddleware以避免这种情况,也可以使用set_language redirect view。
答案 1 :(得分:2)
除了接受的答案:如果您使用的是Firefox,您可以安装Quick Locale Switcher以使用不同的语言(基于浏览器语言)测试您的应用程序。它会在屏幕底部添加一个按钮,您可以在其中轻松更改浏览器语言。