2010-04-21 3 views
4

Я разрабатываю многоязычный сайт в Django.Django multi-language (i18n) и SEO

Для того, чтобы улучшить SEO, я дам все языковые версии уникальный URL-адрес, как показано ниже,

  • английский: www.foo.com/en/index.html
  • французский: www.foo. ком/фр/index.html
  • китайский: www.foo.com/zh/index.html

Однако

Джанго ищет «django_la nguage "в сеансе пользователя или в файле cookie для определения языка по умолчанию. Таким образом, несмотря на то, какой язык выбрал пользователь, URL-адрес всегда один и тот же. Например: http://www.foo.com/index.html

Как решить эту проблему?

ответ

1

django CMS имеет функцию, которую вы ищете. Похоже, вы ищете CMS, так что это может быть полезно.

Если вы хотите сделать это вручную, вы должны смотреть на urls.py

+1

DZPM: Джанго CMS хороший пример, спасибо – fumer

1

Мы сделали это путем реализации части промежуточного слоя, чтобы активировать нужный язык, анализируя его из URL запроса.

Что-то вроде этого:

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 я нашел хорошее приложение Джанго "Джанго-loacleurl". Спасибо – fumer