【问题标题】:django internalization in urls? how to make urls like this: "en/articles" and "pt/artigos"...?django 在 URL 中内化?如何制作这样的网址:“en/articles”和“pt/artigos”......?
【发布时间】:2011-11-07 09:09:38
【问题描述】:

喂!

我需要根据语言制作网址。

例子:

如果我有英语语言和名为“文章”的子类别,那么网址可能是这样的:

/en/articles/...

如果语言是葡萄牙语并且已经翻译的子类别是“artigos”,那么网址将是:

/pt/artigos/...

我该怎么做? 我必须使用 urls.py 或一些猴子补丁?

谢谢

【问题讨论】:

    标签: django internationalization django-urls


    【解决方案1】:

    此功能已存在于尚未发布的 1.4 版中。你可以阅读about it in the release note

    如果您确实需要此功能,并且没有现有的应用程序满足您的需求,您仍然可以尝试自己应用相应的补丁。

    【讨论】:

      【解决方案2】:

      Django LocaleURL 是一个完全可以做到这一点的中间件。文档可以在源代码中找到,或者online

      编辑:我阅读了您想要翻译 url 本身的事实......我不知道有任何提供此功能的代码。也许您可以扩展 LocalURL 中间件来为您处理翻译。假设你有一个像(?P<articles>\w+) 这样的正则表达式匹配,你可以在中间件中确定你想使用哪个视图。可能类似于以下映射?

      if article_slug in ['articles', 'artigos', 'article']:
          article(request) # Call the article view
      

      【讨论】:

        【解决方案3】:

        我一直在使用 transurlvania 并取得了巨大的成功,它可以满足您的需求,而且还可以做更多,但是我看到在下一个 Django 版本中 django-i18nurls 将包含在 django 核心中,所以也许学习起来会更好那个

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-05
          • 2010-11-01
          相关资源
          最近更新 更多