如何将变量放在Codeigniter的语言文件中?

时间:2011-03-19 09:40:26

标签: variables codeigniter

我正在使用Codeigniter 2.0.1,我想在语言行中添加一个变量。例如:如果用户想要注册一个帐户,并且该用户名已经存在,我想在我的语言行中添加“此用户名$ username是alrady in use”。我在验证错误语言中看到他们使用%s作为变量。但是,如果我把它放在我的自定义身份验证错误lang文件中,我只得到一个简单的%s而不是变量。

1 个答案:

答案 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';