2016-07-09 97 views
1

我有一個Smarty 3 foreach循環和gettext翻譯的問題。 在我的控制,我從一個MySQL數據庫攔截變量,然後我創建磁盤陣列:在Smarty foreach循環中使用gettext翻譯變量名稱

控制器:

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循環? 在循環之外,我對元標題或元描述執行此操作沒有任何問題。

非常感謝!

中號

回答

1

是的,你可以使用一個時間變量組成的名稱:

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