立即
在配置文件中,您可以设置默认语言:
$config['language'] = 'german';
现在,每个加载的语言文件都从“german”文件夹
加载$this->lang->load('custom_messages');
echo $this->lang->line('hello'); //prints "hallo"
通过
在本地更改语言很容易$this->lang->load('custom_messages', 'english');
echo $this->lang->line('hello'); //prints "hello"
的愿望:
但我想改变语言系统范围(登录时的语言选择),就像配置文件一样。因此,我不必逐个使用正确的语言属性加载每个_lang-File。
伪代码(配置语言 - >德语)
$this->lang->set('english');
$this->lang->load('custom_messages');
echo $this->lang->line('hello'); //should print "hello"
没有任何文件记录(在我看来常见的)用例。
这不起作用:
$this->config->set_item('language', 'english');
答案 0 :(得分:0)
我已经在本地对此进行了测试,看来你可以使用set_item更改语言,但在加载语言文件之前你必须这样做。
您可以在构造函数中执行此操作,在会话中保存当前语言名称,然后在构造函数
中设置它public function __construct () {
parent::__construct();
$this->config->set_item('language', $this->session->userdata('current_language'));
}
这是我的测试控制器:
public function index()
{
var_dump($this->config->item('language')); // english
$this->config->set_item('language', 'german');
var_dump($this->config->item('language')); // german
$this->lang->load('test');
var_dump($this->lang->line('something')); // german translated line
}