Передать переменную в языковой файл без sprintf

Я хочу передать переменную в языковой файл. Я создал 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

1

Решение

in codeigniter 3  the language your core language file must be PREFIX_lang
1

Другие решения

Поскольку вы добавляете параметры в line() функция, которую вы не можете переопределить.

Используйте другое имя, например magic_line()

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector