我想将变量传递给语言文件。我在MY_language.php
中创建了application/core/MY_language.php
。
class MY_Language extends CI_Lang
{
public function __construct()
{
parent::__construct();
}
function line($line, $params = null)
{
$return = parent::line($line);
if ($return === false) {
return "!-- $line --!";
} else {
if (!is_null($params)) {
$return = $this->_ni_line($return, $params);
}
return $return;
}
}
private function _ni_line($str, $params)
{
$return = $str;
$params = is_array($params) ? $params : array($params);
$search = array();
$cnt = 0;
foreach ($params as $param) {
$search[$cnt] = '/\\$' . ($cnt + 1) . '/';
$cnt++;
}
$return = preg_replace($search, $params, $return);
return $return;
}
}
此文件必须覆盖CodeIgniter line()
函数并接受一个参数数组作为输入,并插入到字符串语言的任何地方我的语言文本中都有$
类型。
$lang['delete'] = "$name was deleted";
上述代码的结果是:
sam was deleted
答案 0 :(得分:1)
in codeigniter 3 the language your core language file must be PREFIX_lang
答案 1 :(得分:0)
由于您要向line()
功能添加参数,因此无法覆盖它。
使用其他名称,例如magic_line()