Php 如何更改codeigniter中的语言
我用两种语言(En&Fr)在数据库中保存了一个产品名称 如何通过更改url以不同方式加载它们 比如说Php 如何更改codeigniter中的语言,php,codeigniter,Php,Codeigniter,我用两种语言(En&Fr)在数据库中保存了一个产品名称 如何通过更改url以不同方式加载它们 比如说 localhost/mysite/en/products/ 从我的表中加载“en_name” 及 为我加载“fr\u name”?我认为最简单的方法可能是将uri段传递给查询的where子句 比如: $lang = $this-uri->segment(3); $this->db->where('language', $lang); $this->db->ge
localhost/mysite/en/products/
从我的表中加载“en_name”
及
为我加载“fr\u name”?我认为最简单的方法可能是将uri段传递给查询的where子句 比如:
$lang = $this-uri->segment(3);
$this->db->where('language', $lang);
$this->db->get('table');
如果要将不同语言的文本存储在文件中(将包含在页面中),而不是存储在数据库中,则使用语言库。因此,如果语言文本存储在数据库中,则需要检查负责检查url段的方法,以检查url是否包含
en
或fr
,并加载相应的语言
因此,使用的方法是:
$this->uri->segment(n)
有关如何使用它的更多信息:您的情况应该是:
编辑
if($this->uri->segment(1) == "fr"){
$this->session->set_userdata('lang', 'fr');
}else{
$this->session->set_userdata('lang', 'en');
}
现在,通过检查
lang
会话的值,您可以轻松地检查从模型(db文件)中选择的语言。最后,我使用此CI扩展名执行了此操作,下面是我的代码:
$lang = $this->uri->segment(1);
echo $prodct[$lang."_name"];
现在如果我像这样输入我的url
localhost/mysite/en/products/
它将从DB中获取类似“en_name”的字段,
“fr”也是一样。到目前为止你都试过什么?我试过用语言库来做,但我不知道如何告诉它从我的数据库加载名称:(我的问题不是段或类似的,我的问题是当我调用“en”或“fr”时,如何告诉它加载“en\u name”或“fr\u name”我的数据库中的字段用于我的全部products@hamidreza检查我的更新答案,我使用会话指定使用的语言,当然所有人都可以访问它pages@hamidreza为什么要删除“已解决”选项?
localhost/mysite/en/products/