我使用Django以两种语言创建一个Web项目:英语和德语。 该文档的默认语言是英语,我自己用德语翻译它并创建了一个.po文件。
我的想法是,如果有人说德语并且浏览器的语言环境设置为“de”,Django应该切换到德语(我提供的翻译)。但在其他所有情况下,都应该改用英语。
问题是它完全相反,我不知道为什么!
现状:如果浏览器的语言环境设置为英语,则网站将以英语显示。但在任何其他情况下,它都以德语显示。
LANGUAGE_CODE = 'en-us'
_ = lambda s: s
LANGUAGES = (
('en', _('English')),
('de', _('German')),
)
正确设置中间件,区域设置路径也是如此! 当我测试网站时,我清除了所有的cookie和缓存。 我试图提供两种翻译(germand和英语,即使它已经用英文写成),但仍然有相同的效果。
感谢您的帮助。
答案 0 :(得分:0)
如果您希望用户能够指定语言,请确保已启用LocaleMiddleware:
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
...
)
然后Django将按顺序查找用户的语言首选项:
因此,在Django会话中显式设置语言最直接的方法是重写request.session ['django_language']:
def someview (request):
...
request.session['django_language'] = 'en'
...