在 django 中使用多语言和 localeurl
使用 django-multilingual 和 localeurl。
我的主页视图的小示例:
def main(request): #View for http://www.mysite.com/
name = Dog.objects.all()[0].full_name #this is a translated field
return render_to_response("home.html", {"name" : name})
输入 http://www.mysite.com/ 将我重定向到 < a href="http://www.mysite.com/ru/" rel="nofollow noreferrer">http://www.mysite.com/ru/ 和“name”变量获取俄语本地化。现在还可以...
但是...
输入 http://www.mysite.com/en/< /a> 显示相同的俄语本地化变量。
在我使用调试器的实验中,我发现:
- request.LANGUAGE_CODE 根据 /en/ 或 /ru/ url 后缀(比 localeurl)正确更改,
- 调用 multilingual.languages.set_default_language() 使“name”变量更改定位
问题是:我应该在我自己的每个视图中将 django-multilingual 的语言更改为 request.LANGUAGE_CODE ,还是必须自动解决并且我做错了什么?
Using django-multilingual and localeurl.
Small sample of my main page view:
def main(request): #View for http://www.mysite.com/
name = Dog.objects.all()[0].full_name #this is a translated field
return render_to_response("home.html", {"name" : name})
Entering http://www.mysite.com/ redirects me to http://www.mysite.com/ru/ and "name" variable gets russian localization. For now it's ok...
But...
Entering http://www.mysite.com/en/ shows me same russian loclized variable.
During my experiments with debuger I've discovered:
- request.LANGUAGE_CODE is changing properly according to /en/ or /ru/ url suffix (thanx to localeurl)
- invoking multilingual.languages.set_default_language() makes "name" variable change loclization
The question is: should I change language of django-multilingual to request.LANGUAGE_CODE in each of my view myself, or it must be solved automaticly and I've done something wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我也有同样的问题,在 MIDDLEWARE_CLASSES 中的位置轮换后,我得到了正确的顺序:
我评论 #'django.middleware.locale.LocaleMiddleware' 它的作用与我认为的 'localeurl.middleware.LocaleURLMiddleware' 相同。
I have the same problem, after rotation with positions in MIDDLEWARE_CLASSES I've got the right order:
I comment #'django.middleware.locale.LocaleMiddleware' its doing the same as 'localeurl.middleware.LocaleURLMiddleware' I think.
删除 django.middleware.locale.LocaleMiddleware 后它也对我有用......
after removing django.middleware.locale.LocaleMiddleware it worked for me also ...