django国际化不起作用

时间:2010-05-09 09:32:32

标签: django internationalization

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

然后我跑了:

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',
)

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

2 个答案:

答案 0 :(得分:9)

也许您的浏览器语言是英语。 LocaleMiddleware尝试基于this algorithm检测语言(即Accept-Language HTTP标头) 因此,您可以删除LocaleMiddleware以避免这种情况,也可以使用set_language redirect view

答案 1 :(得分:2)

除了接受的答案:如果您使用的是Firefox,您可以安装Quick Locale Switcher以使用不同的语言(基于浏览器语言)测试您的应用程序。它会在屏幕底部添加一个按钮,您可以在其中轻松更改浏览器语言。