2012-03-23 60 views
1

我使用的语言文件允许用户在英语和荷兰语之间切换。使用与页面上设置的PHP变量相结合的语言文件

语言文件包含名为$lang的数组中的站点文本。通过单击页面顶部的语言链接,使用GET方法选择语言。所有这一切都很好。

如果我在英文文件中有$lang['my_account']="My Account";,则在页面中添加echo $lang['my_account'];会正确显示“我的帐户”。

但是我有很多头衔,包括其在网页上设置PHP变量,例如的:

Account Statement on <?php echo $today; ?> for user <?php echo $user; ?> 

现在我需要添加这些多语言支持,和我卡,因为我不能在包含语言文件之前声明$ today和$ user变量。所以,我的问题是,我必须“对账户结单”和“用户”页面上单独条目添加到语言文件,做这样的事情:

<?php echo $lang['acc_statement'].$today.$lang['for_user'].$user; ?> 

或者是有没有解决办法这个?

+0

你的建议是第一件事情这也会跨越我的想法,说实话... – 2012-03-23 11:43:31

回答

3

我不知道如果我理解你的权利,但不应该像sprintf()解决这个问题:

$lang['account'] = "Account Statement on %s for user %s"; 

,然后像呼应:

echo sprintf($lang['account'], $today, $user); 
+0

是的,那正是我需要的。非常感谢你! – jovan 2012-03-23 11:48:40

+0

这也是这样做的可接受的方式,因为其他语言可能需要更改单词顺序。永远不要翻译少于一句话的东西。 – Sprachprofi 2012-03-24 09:20:10