symfony中的i18n(国际化)

Pur*_*lot 3 php internationalization symfony-1.4

__('text')在symfony中使用构造,因此我可以进行国际化.但是我试图在setFlash消息中使用它,如下所示

$this->getUser()->setFlash('error', __('message'));
Run Code Online (Sandbox Code Playgroud)

在actions/actions.class.php中但是它给了我一个错误

Fatal error: Call to undefined function __()
Run Code Online (Sandbox Code Playgroud)

我是否可以假设我不能__()在动作级别使用但只能使用模板级别?

j0k*_*j0k 13

在动作中,您必须使用上下文使用__():

echo $this->getContext()->getI18N()->__('message');
Run Code Online (Sandbox Code Playgroud)

您还可以使用:

sfProjectConfiguration::getActive()->loadHelpers(array('I18N'));
$this->getUser()->setFlash('error', __('message'));
Run Code Online (Sandbox Code Playgroud)