Php 将smarty默认变量修饰符与gettext一起使用

Php 将smarty默认变量修饰符与gettext一起使用,php,zend-framework,smarty,gettext,Php,Zend Framework,Smarty,Gettext,我目前正在将smarty与zend framework一起使用,我已将smarty设置为以以下方式使用gettext: {gettext text="resource-identifier"} 这可以正常工作,但我在尝试使用smarty默认变量处理程序时遇到了一个问题。我想这样做: {$somevar|default:gettext text="resource-identifier"} 但这只打印“gettext”。任何关于我如何做到这一点的建议。甚至可能吗?对于smarty来说,链接函数

我目前正在将smarty与zend framework一起使用,我已将smarty设置为以以下方式使用gettext:

{gettext text="resource-identifier"}
这可以正常工作,但我在尝试使用smarty默认变量处理程序时遇到了一个问题。我想这样做:

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

但这只打印“gettext”。任何关于我如何做到这一点的建议。甚至可能吗?

对于smarty来说,链接函数的结果是不可能的。您需要查看gettext是否可以将其结果分配给变量assign=varname param,或者编写您自己的变量,此时只需编写一个类似于default_gettext:'resource-id'的新修饰符

在假定的分配中,它看起来像:

{gettext text="resource-id" assign="myvar"}
{$somevar|default:$myvar}
{$somevar|default_gettext:"resource-id"}
在新的修改器中,它看起来像:

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

嗯,好的。我想我将在视图文件的顶部指定一个带有默认文本的变量,因为它在整个页面中通常是相同的。我也在考虑这样做,只在控制器中设置变量,但在smarty中指定变量是更好的方法。它更好地保持了控制器和视图之间的分离。