2009-05-14 2 views
0

настоящее время я использую Smarty с Zend Framework, и я настроил Smarty использовать Gettext следующим образом:Использование Smarty по умолчанию с Gettext

{gettext text="resource-identifier"} 

Это работает нормально, но у меня проблема при попытке использовать это с помощью обработчика переменной по умолчанию smarty. Я хочу сделать это:

{$somevar|default:gettext text="resource-identifier"} 

Но это только печатает «gettext». Любые предложения, как я могу это сделать. Возможно ли это?

ответ

0

Для умного, цепочки результата функции не возможно. Вам нужно будет увидеть, может ли gettext присваивать свой результат переменной (присваивать = varname param) или написать свой собственный (и в этот момент просто написать новый модификатор, подобный default_gettext: «resource-id»)

в предполагаемом правопреемника, было бы выглядеть следующим образом:

{gettext text="resource-id" assign="myvar"} 
{$somevar|default:$myvar} 

в новом модификатором было бы выглядеть следующим образом:

{$somevar|default_gettext:"resource-id"} 
+0

Хм, хорошо. Я думаю, что я собираюсь назначить переменную в верхней части файла вида с текстом по умолчанию, поскольку она обычно одинакова на всей странице. Я думал о том, чтобы делать то же самое, только устанавливая переменную в контроллере, но назначение переменной в smarty - лучший подход. Он поддерживает разницу между контроллером и улучшает представление. – Erik