代码之家  ›  专栏  ›  技术社区  ›  eos87

如何从django url更改语言?

  •  13
  • eos87  · 技术社区  · 16 年前

    当用户在URL中引入区域设置时,我想更改语言,如下所示 http://example.com/es/ , http://example.com/es/article-name , http://example.com/en/ .

    我该怎么做?

    3 回复  |  直到 9 年前
        1
  •  8
  •   Adam Rosenfield    14 年前

    结帐 django-locale-url .

    它提供了一个中间件,可以完全满足您的要求,因此您不需要检查URL中的语言。

        2
  •  3
  •   AdmiralNemo    16 年前

    有很多方法可以做到这一点。可以说,最“符合标准”的方法是使用HTTP Accept-Language 标题,可用于查看 request.META['HTTP_ACCEPT_LANGUAGE'] 确定用户希望使用哪种语言接收资源并简单地返回翻译的 HttpResponse 用适当的语言。

    另一种更常见的方法是,要求用户在第一次到达时选择一种语言,并将所选内容存储在会话中。一旦用户做出选择,将浏览器重定向到适当的语言子目录,并在视图中使用相对链接,这样就不必担心跨语言了。您可以调整您的urlconf以将语言关键字传递给视图,如下所示:

    urlpatterns = patterns('',
        (r'^(?P<lang>[a-zA-Z]{2})/ ...
    

    有一个 Internationalization/Localization Django文档网站上关于i18n的页面,这可能有助于您入门。

        3
  •  3
  •   chaim pafcu    10 年前

    现在最好的方法是在URL模式中使用内置的语言前缀: https://docs.djangoproject.com/en/1.8/topics/i18n/translation/#language-prefix-in-url-patterns