【发布时间】:2010-07-22 06:51:14
【问题描述】:
在 Django 中支持多语言 URL 的最佳方式是什么?喜欢:
http://myenglishwebsite.com/user/foo
http://mygermanwebsite.com/benutzer/foo
我应该在 urls.py 中使用多语言吗:
(r'^%s/(?P<slug>[-w]+)/$' % _('user'), 'myapp.view.relatedaction')
这似乎不是一个好的解决方案,我无法让它工作:))
【问题讨论】:
-
我对 Python 一无所知,但如果您要使用多语言 URL,请务必对任何非 US-ASCII 字符进行编码。此外,最好将其他 URL 重定向到单个规范页面,但如果您不能这样做,请确保在规范页面中包含
<link rel="canonical" />。有关详细信息,请参阅此 Google 博客文章:googlewebmastercentral.blogspot.com/2010/03/… -
@Lèse majesté:感谢您的提示。它说“开发多语言网站时无需创建特殊的 URL”。这是否意味着谷歌没有区别?例如:/product 和 /produkte URL 对 Google 来说是一样的吗?我记得我读过一篇谷歌文章,说的正好相反。
-
该部分的意思是,最好的做法是像您已经做过的那样,使 URL 清楚地表明您所在网站的本地化版本(无论是通过语言代码子域或使用本地化 URL)。您不需要这样做,因为 Google 仍然能够仅通过内容来确定页面的语言,但这仍然是一种很好的做法。
-
阅读更多内容后,如果您有多个本地化页面,我不确定是否需要使用规范链接。一方面,您不希望因重复内容而受到处罚,但也不希望 Google 仅为您的英文网页编制索引。我认为本地化页面会有另一个
rel值,但我能找到的最好的是lang-alt-(例如lang-alt-fr)和lang-orig-(例如lang-orig-en)的HTML5 提案:wiki.whatwg.org/wiki/RelExtensions跨度> -
@Lèse majesté:谢谢你们的cmets。
标签: python django url-routing multilingual