我有一个受欢迎的控制器,它允许用户选择一种语言(en或fr),然后指向它的相应控制器(en或fr),因此url看起来像这样www.xxx。 COM/EN /功能/ FUNC。我希望可以有一个可以改变语言的链接,我希望它能够切换语言,但是保持在同一页面上。只需从适当的语言文件中获取相应的语言行。更改语言动态codeigniter
这是最好的方法吗?
我有一个受欢迎的控制器,它允许用户选择一种语言(en或fr),然后指向它的相应控制器(en或fr),因此url看起来像这样www.xxx。 COM/EN /功能/ FUNC。我希望可以有一个可以改变语言的链接,我希望它能够切换语言,但是保持在同一页面上。只需从适当的语言文件中获取相应的语言行。更改语言动态codeigniter
这是最好的方法吗?
你应该使用路由对于这一点,在你的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
}
简单的方法是添加到您更改语言链接,您需要重新加载页面后,必须保存
所以看在你的代码的所有导航变量,只需将它们添加到您的语言变量链接
如何你目前是否达到了I18N? 每当我在网站上处理多种语言时,我都会使用解析器类,因为它允许非常轻松地添加多种语言。
通过使用它,通过确定url中请求的语言切换语言非常简单。
如果通过“实时”您的意思是改变语言,而不实现页面,那么这是另一回事。
该网页将不得不重新加载。基本上,一个链接,但我希望页面是相同的,只是从右侧语言的文件中提取的字词 – JonYork 2012-02-27 19:56:00
这就是我所做的 '<!--- 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