【问题标题】:Symfony 2.3 messages to user saved as resource yml fileSymfony 2.3 给用户的消息保存为资源 yml 文件
【发布时间】:2013-12-24 17:23:23
【问题描述】:

Symfony 2.3 中有没有办法使用从 yml 文件加载的消息?

示例:CRUD 控制器回显一条消息,仅用于创建或不创建实体为 Entity created.

有没有办法在 yml 文件中定义这个字符串并将其用于每个 CRUD 控制器/Twig 模板并定义一次而不是为每个 crud 编写它?

用一个更好的例子来解释:

创建实体时:

$this->get('session')->getFlashBag()->add('success-close', 'Entity created.');

但我只是喜欢像这样使用 something

$this->get('session')->getFlashBag()->add('success-close', $str_entity_created);

$str_entity_creted 在假设的messages.ymlfile 中定义

#MyBundle/Resources/messages.yml
messages:
  str_entity_created: "Entity created."
  ...
  ....

因此,对于每个 CRUD,我只需要在一个地方更改字符串,并且它已在我的整个应用程序中全局更改,而不是更改每个 CRUD 控制器中的每个字符串。

有没有办法做到这一点?

如果我必须全局加载一个 yml 资源,它会在多大程度上降低内存消耗和性能?

【问题讨论】:

    标签: symfony


    【解决方案1】:

    使用translations

    $translated = $this->get('translator')->trans('Symfony2 is great');
    

    messages.fr.yml

    Symfony2 is great: J'aime Symfony2
    

    【讨论】:

    • 这根本不是我问题的答案。是的,我知道翻译,但在我想要的用例中:字符串“Symfony2 很棒”是从 yml 文件作为“全局资源”加载的。它在某种程度上类似于翻译器资源,但对于主(根)语言,我希望与翻译器资源文件 xliff 一样。使用字符串的全局标识符。
    猜你喜欢
    • 2016-06-12
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多