我正在使用Codeigniter 2.0.1,我想在语言行中添加一个变量。例如:如果用户想要注册一个帐户,并且该用户名已经存在,我想在我的语言行中添加“此用户名$ username是alrady in use”。我在验证错误语言中看到他们使用%s作为变量。但是,如果我把它放在我的自定义身份验证错误lang文件中,我只得到一个简单的%s而不是变量。
答案 0 :(得分:0)
使用默认的Lang类看起来不太可能。就个人而言,我这样做了。
首先是i18n_helper:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('line_with_arguments'))
{
function line_with_arguments($line, $swap)
{
return str_replace('%s', $swap, $line);
}
}
然后我在我的控制器中调用它:
<?php
class Home extends CI_Controller
{
public function index()
{
$this->lang->load('test', 'english');
$this->load->helper('i18n');
echo line_with_arguments($this->lang->line('test'), 'Matt');
}
}
和我的郎文件:
<?php
$lang['test'] = 'Hello %s';