[英]i18n (internationalization) in symfony
我在symfony中使用了__('text')
构造,因此我可以进行国际化。 但是我试图在setFlash消息中使用它,如下所示
$this->getUser()->setFlash('error', __('message'));
在actions / actions.class.php中但是它给了我一个错误
Fatal error: Call to undefined function __()
所以我假设我不能在动作级别使用__()
但只能使用模板级别?
在动作中,您必须使用上下文使用__():
echo $this->getContext()->getI18N()->__('message');
您还可以使用:
sfProjectConfiguration::getActive()->loadHelpers(array('I18N'));
$this->getUser()->setFlash('error', __('message'));
如果要执行此操作,最好的选择是将此方法添加到actions.class.php:
public function preExecute()
{
sfProjectConfiguration::getActive()->loadHelpers(array('I18N'));
parent::preExecute();
}
它对我很有用! 谢谢
你也可以做$ this-> loadHelpers(array('I18N')); 在ProjectConfiguration类或前端| backendConfiguration类中
问候
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.