如何从Django URL更改语言?

时间:2010-06-10 00:45:13

标签: python django localization internationalization

我想在用户在网址中引入语言环境时更改语言,例如http://example.com/es/http://example.com/es/article-namehttp://example.com/en/

我该怎么做?

3 个答案:

答案 0 :(得分:8)

结帐django-locale-url

它提供的中间件完全符合您的要求,因此您无需在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