我正在使用最新的codeigniter 3.1.3
有如何使用语言的说明 https://www.codeigniter.com/userguide3/libraries/language.html#handling-multiple-languages
$idiom = $this->session->get_userdata('language');
$this->lang->load('error_messages', $idiom); --> gives ERROR (home_view line 14)
$oops = $this->lang->line('message_key');
echo $oops;
但如果我写了那行代码,我会得到以下错误:
遇到PHP错误
严重性:警告
消息:preg_match()期望参数2为字符串,给定数组
文件名:core / Lang.php
行号:109
回溯:
文件:... / application / views / home_view.php 行:14 功能:加载
文件:... / controllers / Home.php 行:14 功能:查看
文件:... / project / index.php 行:315 功能:require_once
如果我删除
$idiom = $this->session->get_userdata('language');
$this->lang->load('error_messages', $idiom); --> ERROR (home_view
并放入autoload.php
$autoload['language'] = array('error_messages');
一切都很好。
但我不想自动加载所有语言文件,因为我不知道用户是否需要所有语言文件。
任何人都可以提供帮助吗?
感谢
答案 0 :(得分:0)
你可以这样实现。使用$this->session->userdata('item_name')
访问会话变量。
$idiom = $this->session->userdata('language');
$this->lang->load('error_messages', $idiom);
$oops = $this->lang->line('message_key');
echo $oops;
或强>
$this->config->set_item('language', $idiom );//dynamically set language
$this->lang->load('error_messages');//load lang file
$oops = $this->lang->line('message_key');
echo $oops;
希望它对你有所帮助。
有关详情,请参阅此处https://codeigniter.com/userguide3/libraries/sessions.html