2010-02-16 74 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後,它也適用於我...