2011-04-04 72 views
2

我对网站的URL地址国际化有疑问。如何进行网址国际化?

问题是如何正确使用?

我想要做的就是这样的事情。

假设你有一个URL在地址栏中

www.mydomain.com/en/book

然后如果你键入www.mydomain.com/de/book,你会被重定向到一个站点的德语版本,因此网址将变更为www.mydomain.com/de/buch等。

想法

我想过做这将作为不同语言之间的字典表。对于网站内容,我仍然会使用i18n,但我认为网址无法应用。

实施

我想过的方式,在调用任何连接之前,我将在URL识别出用户想要的语言,并将其存储在一个会话变量修改routing.py用于以后使用i18n。然后我会将用户重定向到此lanugage的正确url并调用poper 控制器/操作

欢迎任何想法,建议或recomendations。

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

  1. 我刚才提醒自己,我已经遇到了类似的问题上Opera Blog;
  2. StackOverflow存在问题:Pylons application Internationalization,但它仅处理网站国际化,没有问题,包含网址;
  3. WZeberaFFS指出我们如果没有参考以前的语言设置考虑到可能出现的一个小问题;
  4. 附加问题:应该在数据库中存储什么,以使其工作速度更快?我有我自己的想法,但我稍后会试一试。
+0

为什么这些网址需要翻译? – Daenyth 2011-04-04 19:37:01

+0

为什么不呢?给你一个理由:我认为这将是一个很好的搜索引擎优化实践,因为每个链接/网址将始终有效,并将适当的单词和语言。所以,不会有像'/ de/book'这样的情况,这是没有意义的。此外,我认为这将是一个很好的功能。 ;) – 2011-04-04 19:53:13

回答

0

我不知道它是如何在Python中完成的,但通常人们通过某种URL重写或URL过滤来做这样的事情 - 这会消耗你的URL并重新指向适当的页面设置区域设置在同一时间。

1

我相信你的实现将工作日志,你不必到一样,如果你有一个名为www.mydomain.com/en/music和页面不同的页面相同的名称,如果music在德国是book,那么问题将是,如果你想去www.mydomain.com/fr/music,那么你不知道你是否来自/de//en/。但是这只是一个问题,如果你在不同的页面上碰撞名字,如果你不知道它们在哪里形成凸轮形式,但是你会知道他们在哪里前进,如果你有两个不同页面的单词的同名,它仍然可以工作。

如果你有这个问题,那么你必须保存一个会话或希望客户端发送一个引用。

+0

好点(upvote)。虽然,这不太可能会发生。但是,正如你所提到的,我将不得不检查会话变量**或**引用。 – 2011-04-04 16:31:45