2016-07-09 2 views
1

Ich habe ein Problem mit Smarty 3 foreach Schleife und gettext Übersetzungen. In meinem Controller abfängt i die Variablen aus einer MySQL-Datenbank und ich dann einen Array erstellen:Übersetzen Variable Name auf Smarty foreach Schleife mit gettext

REGLER:

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

TEMPLATE:

{foreach name=categorie key=key item=value from=$array_cat} 
{$value.name_cat_it} 
{/foreach} 

Bis jetzt alles in Ordnung ist, aber ich würde gerne etwas wie das tun:

{foreach name=categorie key=key item=value from=$array_cat} 
{$value.name_cat_{$lang}} 
{/foreach} 

$ lang kann es sein 'o' en '. Ist das in einer foreach-Schleife möglich? Außerhalb der Schleife habe ich kein Problem, dies für den Meta-Titel oder die Meta-Beschreibung zu tun.

Vielen Dank!

M

Antwort

1

Ja, können Sie eine Zeitvariable, um den Namen zu komponieren:

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