Yii 国际化 - 网址.


Yii internationalization - URL

使用英语时,应应用以下URL:

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

使用其他语言时,应应用以下 URL:

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

我们应该在 Yii 中处理这个问题的任何简单/标准方法?

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

  • 自动控制器/动作映射(取决于如何工作)
  • 由于每个请求都有额外的工作量,因此速度有点快。

如果你仍然同意,那么你可以继续下去。您需要创建自定义 URL 规则并让它处理每个 URL,这是有据可查的。然后,您需要手动将URL剥离(通过也有据可查的方法)并从用户当前选择的语言中翻译每个部分(除非您想尝试猜测语言O.o),否则您需要知道这一点)。现在,您拥有 URL 每个部分的翻译。恭喜。

这是可能工作或可能不起作用
的部分你可以通过 Yii URL 解析器传回它,通过控制器、动作和参数的自动映射。这意味着你只是在URL上做一个预解析,Yii从那里继续。

如果这行不通,你将不得不构建自己的(用CUrlRule等稍微背负Yii)并做映射逻辑。

我的两种感觉
对于大多数 Web 应用程序,我不建议这样做。这意味着您可以通过多种方式从非常不同的 URL 访问相同的内容。这在SEO方面和可用性方面都是坏事。它也没有为您提供一种特别容易地将它们映射回彼此的方法,让谷歌知道不要再次索引您的内容。另外,我看不出它能给你带来很多好处。大多数傻瓜用户不会关注URL栏,即使它是他们的母语,大多数人也不会从URL的措辞中推断出太多关于页面及其内容的信息。

不过,如果您继续这样做,请告诉我,我想知道情况如何。