使用 gettext 在 Smarty foreach 循环上翻译变量名称
Translate variable name on Smarty foreach loop with 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);
模板:
{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' 或 'en'。
这可能在 foreach 循环内吗?
在循环之外,我对元标题或元描述执行此操作没有问题。
非常感谢!
男
是的,您可以使用时间变量来组成名称:
{$name_lang='name_cat_'|cat:$lang}
{foreach name=categorie key=key item=value from=$array_cat}
{$value.$name_lang}
{/foreach}
我对 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' 或 'en'。 这可能在 foreach 循环内吗? 在循环之外,我对元标题或元描述执行此操作没有问题。
非常感谢!
男
是的,您可以使用时间变量来组成名称:
{$name_lang='name_cat_'|cat:$lang}
{foreach name=categorie key=key item=value from=$array_cat}
{$value.$name_lang}
{/foreach}