我想在用户在网址中引入语言环境时更改语言,例如http://example.com/es/,http://example.com/es/article-name,http://example.com/en/。
我该怎么做?
答案 0 :(得分:8)
它提供的中间件完全符合您的要求,因此您无需在urls.py中检查语言
答案 1 :(得分:3)
有许多想到这一点的方法。可以说,最符合标准的方法是使用HTTP Accept-Language
标头,该标头可用作request.META['HTTP_ACCEPT_LANGUAGE']
视图,以确定用户更喜欢接收资源的语言,并简单地返回已翻译的{ {1}}用适当的语言。
另一种常见的方式,更像是您所描述的内容,是要求用户在首次到达时选择一种语言并将选择内容存储在会话中。用户做出选择后,将浏览器重定向到相应的语言子目录,并在视图中使用相对链接,以免出现跨语言问题。您可以调整URLconf以将语言关键字传递给您的视图,如下所示:
HttpResponse
Django文档网站上有一个关于i18n的Internationalization/Localization页面可能有助于您入门。
答案 2 :(得分:3)
现在最好的方法是在url模式中使用内置语言前缀: https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#language-prefix-in-url-patterns