在Symfony控制器上获取翻译文本

时间:2018-01-25 08:34:34

标签: symfony symfony-2.1

我在位置messages.en.yml上有一个名为<My-Bundle>/Resources/translations文件的翻译文件,如下所示:

company:
    messages:
        schedule:
            success:  Schedule saved successfully
            failed:   Something went wrong on saving schedule

现在我需要在此处按键调用此消息:

$this->get('session')->getFlashBag()->add(
    'success',
    '%company.messages.schedule.success%'
);

我尝试了很多方法,但无法解决这个问题。

2 个答案:

答案 0 :(得分:1)

不幸的是,不可能来翻译闪存包中的密钥翻译......

您可以使用依赖项

创建自定义服务
  • 翻译
  • 会话

然后在将消息添加到flashBag之前自己执行翻译

{{1}}

有点令人失望,不是吗?

答案 1 :(得分:0)

试试这个

$this->get('session')->getFlashBag()->add(
'success',
$this->get('translator')->trans('company.messages.schedule.success')
);

另外,需要在配置中启用:

framework:
    default_locale: 'en'
    translator:
        fallbacks: ['en']

查看官方文档:Symfony Basic Translation