我正在Django开发一个多语言网站。
为了改善搜索引擎优化,我会为每种语言版本提供如下所示的唯一网址
然而,
Django在用户会话或cookie中查找“django_language”键以确定默认语言。因此,尽管用户选择了哪种语言,但URL始终相同。例如:http://www.foo.com/index.html
如何解决此问题?
答案 0 :(得分:1)
django CMS具有您正在寻找的功能。看起来你正在寻找一个CMS,所以它很有用。
如果您想亲手操作,请查看urls.py
答案 1 :(得分: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()