2012-02-27 145 views
2

我有一个受欢迎的控制器,它允许用户选择一种语言(en或fr),然后指向它的相应控制器(en或fr),因此url看起来像这样www.xxx。 COM/EN /功能/ FUNC。我希望可以有一个可以改变语言的链接,我希望它能够切换语言,但是保持在同一页面上。只需从适当的语言文件中获取相应的语言行。更改语言动态codeigniter

这是最好的方法吗?

回答

2

你应该使用路由对于这一点,在你的routes.php你应该补充一点:

$route['([a-z]{2})/(:any)'] = 'yourdefaulthomecontroller/$2/lang/$1'; // rearrange as you like 

然后在您的默认控制器,你可以找到rsegment并用它对付任何你所需要的。

print_r($this->uri->rsegment_array()); // This will print out the routes 

在实际:

if($this->uri->rsegment(3) == 'lang' && $this->uri->rsegment(4)) 
{ 
    // Do something 
} 
+0

这就是我所做的 '<!--- Language Chooser - > <?php if($ this-> uri-> segment(1)==='fr') {this-> lang-> load('fr','french'); } else { $ this-> lang-> load('en','english'); } > < - 语言选择结束 - >' 然后,只需 '朗>线( '你好')?!?; ?> 其中'你好'是我想拉的语言文件中的行 – JonYork 2012-02-27 21:39:42

0

简单的方法是添加到您更改语言链接,您需要重新加载页面后,必须保存

所以看在你的代码的所有导航变量,只需将它们添加到您的语言变量链接

0

如何你目前是否达到了I18N? 每当我在网站上处理多种语言时,我都会使用解析器类,因为它允许非常轻松地添加多种语言。

通过使用它,通过确定url中请求的语言切换语言非常简单。

如果通过“实时”您的意思是改变语言,而不实现页面,那么这是另一回事。

+0

该网页将不得不重新加载。基本上,一个链接,但我希望页面是相同的,只是从右侧语言的文件中提取的字词 – JonYork 2012-02-27 19:56:00