2010-04-21 158 views
4

我正在Django開發一個多語言站點。Django多國語言(i18n)和SEO

爲了提高搜索引擎優化,我會給每個語言版本的唯一網址,如下所示,

  • 英語:www.foo.com/en/index.html
  • 法語:www.foo。 COM/FR/index.html的
  • 中國:www.foo.com/zh/index.html

然而,

的Django尋找一個「django_la nguage「鍵在用戶的會話或cookie中默認確定語言。所以,儘管用戶選擇了哪種語言,但URL總是相同的。例如:http://www.foo.com/index.html

如何解決此問題?

回答

1

django CMS有你正在尋找的功能。看起來你正在尋找一個CMS,所以它可以是有用的。

如果你想手工做,你應該在urls.py

+1

DZPM: Django的CMS是一個很好的樣本,謝謝 – fumer 2010-04-24 14:49:31

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 我找到了一個好Django應用程序 「的Django loacleurl」。謝謝 – fumer 2010-04-24 14:51:57