在Codeigniter中添加语言的URI段

时间:2012-12-30 13:39:55

标签: php codeigniter codeigniter-url

我有一个网站;我需要开发支持多种语言,例如en,tr,ar,sp等。

但问题是,使用Codeigniter进行此操作的最佳方式是什么?

我有一个控制器(SITE)。我有很多功能(酒店,城市,页面,博客)

我想在此方法之前添加一个段(语言)。这是旧链接

http://example.com/hotel/mariot
http://example.com/hotel/hilton
http://example.com/city/london
http://example.com/city/paris
...
..

我希望链接像这样

http://example.com/en/hotel/mariot
http://example.com/ar/hotel/mariot
http://example.com/sp/hotel/mariot
http://example.com/tr/hotel/mariot
http://example.com/en/city/london
http://example.com/ar/city/paris
....
..

有时候认为每种语言都有控制器,但有可能......

更改支持语言的所有链接的最佳方法是什么?

对不起,如果我的问题不明确,这是我的英文。

2 个答案:

答案 0 :(得分:2)

正确的方法是使用routes.php在里面查找(application / config / routes.php)

您可以针对特定问题使用正则表达式。

这是手册:http://ellislab.com/codeigniter/user-guide/general/routing.html

答案 1 :(得分:1)

如果您希望您的链接是这样的话     http://example.com/en/something

然后您可能需要在项目中使用名为en的子域或文件夹。但这不是完美的解决方案。

您需要做的是将文本输出分配到变量中,这些变量从xml文件中获取它们的值。就像你有一些名为“你的房间号是:0”的文本,这个值是硬编码的HTML然后你应该把它放在某个标签下的en.xml文件中,并从用户请求的xml文件中获取它。所需的郎。

您可以使用所有语言执行上一个解决方案,但您必须考虑阿拉伯语言是RTL语言,所以只需在您的CSS中考虑。但通常您可以使用xml文件来控制语言。

希望这就是你所需要的。