2012-06-25 39 views
2

当使用英语以下网址应适用:Yii的国际化 - URL

http://example.org/services/myservice/ 

当使用另一种语言,下面的网址应适用:

http://example.org/sirvici/misirvice/ 

任何简单/标准,我们应该处理这个问题的方式与Yii?

+2

我不认为你可以动态地做到这一点,只能手动(使用URL重写规则和.htaccess重定向)。 – adamors

回答

1

是的,你可以做到这一点Yii中,但你会牺牲:

  • 自动控制器/ Action映射(取决于它如何工作了)
  • 由于在每次请求的额外工作负担一点速度。

如果你仍然可以,那么你可以继续它。您需要创建一个自定义URL规则并让它处理每个URL,这是有据可查的。然后,您需要手动剥离URL(通过文档记载的方法),然后翻译用户当前所选语言的每个部分(除非您想尝试猜测O.o语言,否则您需要知道这一点)。您现在已经翻译了网址的每个部分。恭喜。

继承人的,可能会或可能无法正常工作
你可以传递回通过Yii的URL解析器去通过控制器和行动和参数的自动映射的一部分。这意味着你只需要在URL上做一个准备工作,然后Yii继续。

如果这样做不行,你必须建立你自己的(使用CUrlRule等方法稍微背诵一下Yii)并且执行映射逻辑。

我的两个检测
对于大多数Web Apps的我不推荐这个。这意味着您可以通过多种方式从不同的网址访问相同的内容。这在搜索引擎优化条款和可用性方面都是不好的。它也不会为您提供一种将这些内容映射回彼此的方式,让Google知道不要再次为您的内容编制索引。另外我看不出它会让你获得很多。大多数傻瓜用户都不会关注网址栏,即使它们是用母语编写的,大多数用户都不会推断出网页的大部分内容,而是来自网址字词的内容。

让我知道如果你继续这个,但我想知道它是怎么回事。

+0

谢谢你的两分钱。所以Örs是对的,我们做不到,没有调整。我确信这可能会对SEO建议带来好处。我们知道,像这样的东西有:'mypage.com/somethingsemanticrelevant/anotheremanticrelevant'-如果URL结构很重要,那么也许,使用“正确”语言也可能对搜索引擎意味着什么。如果没有,那么我实际上没有理由通过所有这些痛苦。然而,我希望保留这个答案,所以如果由于某种原因,我们发现它与搜索引擎优化相关,我们可能会玩。非常感谢。 – MEM