繁体   English   中英

symfony中的i18n(国际化)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM