django在网址中内化?如何制作这样的网址:“en / articles”和“pt / artigos”......?

时间:2011-11-07 09:09:39

标签: django internationalization django-urls

HY!

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

示例:

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

/en/articles/...

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

/pt/artigos/...

我该怎么办? 我必须使用urls.py或一些monkeypatches?

感谢

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

我一直在使用transurlvania取得了巨大的成功,它完全满足您的需求和更多,但我发现在下一个Django版本中django-i18nurls将包含在django核心中,所以也许它会更好地了解