如何在codeigniter语言行字符串中返回变量值?

Moh*_*aji 2 multilingual codeigniter-2

更清楚的是,默认语言中的这些行都general_lang.php不起作用:

$lang['general_welcome_message'] = 'Welcome, %s ( %s )';
Run Code Online (Sandbox Code Playgroud)

要么

$lang['general_welcome_message'] = 'Welcome, %1 ( %2 )';
Run Code Online (Sandbox Code Playgroud)

我希望输出像Welcome, FirstName ( user_name ).

我在/sf/answers/768156791/上跟踪了第二个(未接受的)答案.

我在视图中编写的代码是:

<div id="welcome-box">
    <?php echo lang('general_welcome_message',
               $this->session->userdata('user_firstname'),
               $this->session->userdata('username')
               );
    ?>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用codeigniter 2.

Luc*_*Luc 12

你需要使用php的sprintf函数(http://php.net/manual/en/function.sprintf.php)

来自http://ellislab.com/forums/viewthread/145634/#749634的示例:

//in english
$lang['unread_messages'] = "You have %1$s unread messages, %2$s";

//in another language
$lang['unread_messages'] = "Hi %2$s, You have %1$s unread messages";

$message = sprintf($this->lang->line(‘unread_messages’), $number, $name);
Run Code Online (Sandbox Code Playgroud)