应如何制作网址国际化?

时间:2011-04-04 13:44:23

标签: python url internationalization routing pylons

我对网站的URL地址国际化有疑问。

问题是如何正确使用它?

我想做的是这样的事情。

假设您的地址栏中有网址

www.mydomain.com/en/book

然后,如果您输入www.mydomain.com/de/book,您将被重定向到某个网站的德语版本,因此该网址将更改为www.mydomain.com/de/buch,依此类推。

我想过制作一个可以用作不同语言之间字典的表。对于网站内容,我仍然会使用 i18n ,但我认为对于网址,它无法应用。

实施

我考虑过修改 routing.py 的方式,在调用任何连接之前,我会在URL中识别出用户想要的语言,并将其存储在会话变量中以供以后使用 I18N 即可。然后我会将用户重定向到这个语言的正确URL并调用一个poper controller / action

欢迎任何想法,建议或推荐。

编辑(2011-04-04 18:35):

  1. 我刚刚提醒自己,我在Opera Blog;
  2. 上遇到过类似的问题
  3. StackOverflow存在问题:Pylons application Internationalization,但它仅涉及网站国际化,包含网址没有问题;
  4. WZeberaFFS 指出,如果不考虑参考以前的语言设置,可能会出现一个小问题;
  5. 其他问题:应该在数据库中存储什么,以使其快速运行?我有自己的想法,但我稍后会试一试。

2 个答案:

答案 0 :(得分:1)

我相信您的实施将作为日志工作,因为您对不同的网页没有相同的名称,例如,如果您有一个名为www.mydomain.com/en/music的网页,并且德语中的music是{{1} },那么问题是,如果你想转到book,那么你不知道你是来自www.mydomain.com/fr/music还是/de/。但这只是一个问题,如果你在不同的页面上有相互冲突的名字,如果你在2个不同的语言中有一个相同的名字你仍然可以工作,你不会真正知道它们的形式,但你会知道它们的前进方向。

如果您遇到该问题,则必须保存会话或希望客户端发送引荐。

答案 1 :(得分:0)

我不知道如何在Python中完成它,但通常人们通过某种URL重写器或URL过滤器来做这些事情 - 这会消耗你的URL并重新指向正确的页面设置Locale at the同一时间。