Я хочу передать переменную в языковой файл. Я создал 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
in codeigniter 3 the language your core language file must be PREFIX_lang
Поскольку вы добавляете параметры в line()
функция, которую вы не можете переопределить.
Используйте другое имя, например magic_line()