2010-04-21 7 views
4

Je développe un site multilingue dans Django.Django multi-language (i18n) et SEO

Afin d'améliorer le référencement, je vais donner à chaque version d'une URL unique comme ci-dessous,

  • anglais: www.foo.com/en/index.html
  • français: www.foo. com/fr/index.html
  • chinois: www.foo.com/zh/index.html

Cependant,

Django recherche un « django_la nguage "dans la session de l'utilisateur ou cookie pour déterminer la langue par défaut. Ainsi, malgré la langue choisie par l'utilisateur, l'URL est toujours la même. Par exemple: http://www.foo.com/index.html

Comment résoudre ce problème?

Répondre

1

django CMS a la particularité que vous cherchez. On dirait que vous cherchez un CMS, donc ça peut être utile.

Si vous voulez le faire à la main, vous devriez jeter un oeil à urls.py

+1

DZPM: django CMS est un bon exemple, je vous remercie – fumer

1

Nous avons fait cela en mettant en œuvre un morceau de middleware pour activer la langue souhaitée par l'analyse à partir de l'URL de la demande.

Quelque chose comme ceci:

class LanguageInPathMiddleware(object): 
    def __init__(self): 
     self.language_codes = set(dict(settings.LANGUAGES).keys()) 

    def process_request(self, request): 
     language_code = request.path_info.lstrip('/').split('/', 1)[0] 
     if language_code in self.language_codes: 
      translation.activate(language_code) 
      request.LANGUAGE_CODE = translation.get_language() 
+3

à: NotANumber j'ai trouvé une bonne application django "django-loacleurl". Je vous remercie – fumer