Php 使用gettext在Smarty foreach循环上转换变量名

Php 使用gettext在Smarty foreach循环上转换变量名,php,foreach,smarty,gettext,Php,Foreach,Smarty,Gettext,Smarty 3 foreach循环和gettext翻译有问题。 在我的控制器中,我从MySQL数据库截取变量,然后创建一个数组: 控制器: array_categories[] = array( 'name_cat_it' => $name_cat_it, 'name_cat_en' => $name_cat_en, ); $smarty->assign('array_cat', $array_categories); 模板:

Smarty 3 foreach循环和gettext翻译有问题。 在我的控制器中,我从MySQL数据库截取变量,然后创建一个数组:

控制器:

array_categories[] = array(
            'name_cat_it' => $name_cat_it,
            'name_cat_en' => $name_cat_en,
);
$smarty->assign('array_cat', $array_categories);
模板:

{foreach name=categorie key=key item=value from=$array_cat}
{$value.name_cat_it}
{/foreach}
到目前为止,一切都很好,但我想这样做:

{foreach name=categorie key=key item=value from=$array_cat}
{$value.name_cat_{$lang}}
{/foreach}
$lang可以是'it'o'en'。 这在foreach循环中是可能的吗? 在循环之外,我对元标题或元描述这样做没有问题

非常感谢


M

是的,您可以使用时间变量组成名称:

{$name_lang='name_cat_'|cat:$lang}    
{foreach name=categorie key=key item=value from=$array_cat}
{$value.$name_lang}
{/foreach}