define()里面的翻译消息

时间:2011-08-19 10:23:17

标签: php mysql

我将已翻译的邮件保存到php文件中并在

define("TEXT", "text");

事情就是当我有一个文字显示:

We have 30 users online.

并且用户将此消息翻译成他自己的语言当我从define变量中获取翻译文本时,我应该如何在线显示用户?

例如,如果用户将文本翻译为We have % users online

然后我在php语言文件中有这个:

define("USERS_ONLINE", "We have % users online");

我应该打破字符串并将%替换为我的总在线用户变量吗?如果需要,我是否应该使用更多变量?

2 个答案:

答案 0 :(得分:5)

我建议您使用类似printf的语法:

define("USERS_ONLINE", "We have %s users online");
echo sprintf(USERS_ONLINE, 30);

然后你可以在字符串中有多个变量:

define("USERS_ONLINE", "We have %s users online since %s");
echo sprintf(USERS_ONLINE, 30, $date);

答案 1 :(得分:1)

你可以:

$users_online = 30;
echo str_replace( '%' , $users_online , USERS_ONLINE );

请参阅http://www.php.net/manual/en/function.str-replace.php