2014-04-13 56 views
0

我在我的数据库有两个语言(恩& FR)如何改变语言笨

我如何加载它们通过不同的只是更改URL

例如

保存产品名称
localhost/mysite/en/products/ 

加载 “en_name” 我的表

localhost/mysite/fr/products/ 

为我加载“fr_name”?

+0

你到目前为止试过的东西? –

+0

我试过这样做的语言库,但我不知道如何告诉它从我的分贝加载名称:( –

回答

1

,如果你想在不同的语言文本存储在一个文件(它将包含在页),而不是语言库用于在数据库中。因此,如果语言文本存储在数据库中,您需要检查负责检查url段的方法,以检查url是否包含enfr并加载相应的语言。

所以使用的方法是:

$this->uri->segment(n) 
关于如何使用它

更多信息:
http://ellislab.com/codeigniter/user-guide/libraries/uri.html

和你的情况应该是这样的:
编辑

if($this->uri->segment(1) == "fr"){ 
    $this->session->set_userdata('lang', 'fr'); 
}else{ 
    $this->session->set_userdata('lang', 'en'); 
} 

现在你可以很容易地检查f或通过检查lang会议

+0

我的问题是不是段或类似的,我的问题是当我打电话给“EN “或”fr“,如何告诉它为我的所有产品加载我的db的”en_name“或”fr_name“字段 –

+0

@hamidreza检查我更新的答案,我使用会话来指定使用的语言,当然它会所有页面都可访问 – CMPS

+0

@hamidreza为什么你删除了“已解决”? – CMPS

0

我终于有这个CI扩展i18n做到了,这里的值从model(数据库文件),选择的语言是我的代码:

$lang = $this->uri->segment(1); 
echo $prodct[$lang."_name"]; 

所以现在,如果我进入我的网址这样

localhost/mysite/en/products/ 

它会得到从数据库这些字段是像“en_name”, 同样为“FR”了。