我的问题与此Is it possible to put variables inside config files?
几乎相同我有一个控制语言的配置文件。此外,我还有反馈显示的反馈div。
现在我想分配这样的反馈:
$smarty->assign('feedback', 'the_age_of_user_' . $user->name . '_is_changed_to_' . $user->age . '_years');
the_age_of_user_%s_is_changed_to_%s_years
= De leeftijd van gebruiker %s gewijzigd naar %s jaar
the_age_of_user_%s_is_changed_to_%s_years
= The age of user %s is changed to %s years
有谁知道我怎么能做到这一点?或者是否有更好的解决方案将变量分配给配置文件?
答案 0 :(得分:0)
很抱歉,但我不完全明白你想要完成什么。
在我们的项目中,我们有类似问题的解决方案:
语言文件:
the_age_of_user_is_changed = The age of user {user} is changed to {year} years
请注意左侧没有%s或任何变量。它总是不变的。
选项1:
Smarty / code assigment:
$smarty->assign("VARIABLE_TO_USE_IN_TEMPLATE", getLang('the_age_of_user_is_changed', array('user' => $user->name,'year' => $user->age));
然后,在Smarty中,您可以使用以下代码:{$VARIABLE_TO_USE_IN_TEMPLATE}
函数getLang从语言文件中读取字符串信息,并将所有{symbol}替换为相应的数据。
选项2:
在模板中,我们有聪明的用户空间功能:
{LANG key='the_age_of_user_is_changed' name=$user->name year=$user->age}
Lang实际上是从前面的例子中调用函数getLang。
在代码中,您必须分配用户:$smarty->assign("user", $user);
。在那之后,smarty将自己做所有事情。