2010-02-16 10 views
1

Utilisation de django-multilingual et localeurl.Utilisation de multilingue et localeurl dans django

petit échantillon de ma vue principale de la page:

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}) 

Saisie http://www.mysite.com/ me redirige vers http://www.mysite.com/ru/ et variable "name" obtient la localisation russe. Pour l'instant, il est ok ...

Mais ...

Saisie http://www.mysite.com/en/ me montre même russe variables loclized.

Au cours de mes expériences avec debuger j'ai découvert:

  • request.LANGUAGE_CODE change correctement selon/fr/ou/ru/url suffixe (merci à localeurl)
  • invoquant multilingual.languages.set_default_language() rend la variable "name" changer loclization

La question est: dois-je changer la langue de django-multilingue à request.LANGUAGE_CODE dans chacun de mes vue moi-même, ou il doit être résolu automatiquement et j'ai fait quelque chose de mal ?

Répondre

3

J'ai le même problème, après la rotation avec des positions dans MIDDLEWARE_CLASSES J'ai le bon ordre:

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

I Commentaire # 'django.middleware.locale.LocaleMiddleware' son faire la même chose que « localeurl .middleware.LocaleURLMiddleware 'Je pense.

+0

Merci beaucoup! Il a enflé. –

1

après avoir enlevé django.middleware.locale.LocaleMiddleware il a travaillé pour moi aussi ...