如何在codeigniter的语言文件中使用带变量的字符串?

时间:2012-01-29 22:28:18

标签: php codeigniter multilingual

对于本地化网站我想创建不同的语言文件。 但是在开始本地化之前我的主要问题是,我可能有变量字符串。

我的理论是我可以在我的语言文件中使用占位符,例如:

$lang['somekey'] = "Hello Mr. %s, how are you?";

是否有一种干净又好的方法来解析这些变量,还是我必须为此开发一个函数?

感谢。

2 个答案:

答案 0 :(得分:9)

我遇到同样的问题,只需使用

即可
echo sprintf($this->lang->line('somekey'),'XYZ');//load language library before use

阅读 sprintf()

答案 1 :(得分:3)

您可以使用codeigniter i18n与PHP .sprintf()来实现您的目标。加载codeigniter非变量字符串(使用那些格式的东西),然后将其传递给.sprintf()以进行格式化和赋值。它应该替换%s部分。

它类似于this question.sprintf()的作用类似于.printf(),只是它返回字符串而不是打印它。