2010-02-16 24 views
1

使用django-多语言和localeurl。在django中使用多语言和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/重定向我http://www.mysite.com/ru/和“名”变量换成俄罗斯的本地化。现在它的确定...

但是......

进入http://www.mysite.com/en/显示我同俄罗斯loclized变量。

在我的实验与debuger我发现:

  • request.LANGUAGE_CODE根据/ EN /或/ RU/URL后缀适当变化(感谢名单以localeurl)
  • 调用multilingual.languages.set_default_language ()使“名称”变量变化本地化

现在的问题是:我应该改变Django多语言语言request.LANGUAGE_CODE在我的每个视图我自己,或者它必须自动解决,我做了一些错误?

回答

3

我有同样的问题,在MIDDLEWARE_CLASSES位置旋转后,我已经得到了正确的顺序:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    #'django.middleware.locale.LocaleMiddleware', 
    'localeurl.middleware.LocaleURLMiddleware', 
    'multilingual.middleware.DefaultLanguageMiddleware', 
    'multilingual.flatpages.middleware.FlatpageFallbackMiddleware', 
    'django.middleware.common.CommonMiddleware', 
) 

我的评论#“django.middleware.locale.LocaleMiddleware”它做同样为“localeurl .middleware.LocaleURLMiddleware'我想。

+0

非常感谢!它晕了。 – 2010-02-24 11:04:23

1

删除django.middleware.locale.LocaleMiddleware后,它也适用于我...