【问题标题】:symfony2: how to include line breaks / newlines in translations?symfony2:如何在翻译中包含换行符/换行符?
【发布时间】:2014-07-05 17:14:45
【问题描述】:

我应该如何让换行符在 Symfony 2.4 中工作?

#messages.de.yml
foo: |
    Hello i am a line
    Hello i am a new line

#messages.de.yml
foo: >
    Hello i am a line
    Hello i am a new line

树枝

#template.html.twig
{{ 'foo'|trans }}

翻译正常,但换行无效。

文档对我来说并不是很清楚。提示将不胜感激。

【问题讨论】:

    标签: symfony internationalization twig yaml


    【解决方案1】:

    Twig 不会自动将换行符转换为 <br />

    使用 nl2br 过滤器。

    #template.html.twig
    {{ 'foo'|trans|nl2br }}
    

    我不太确定,但最终您必须将\n 添加到翻译字符串中。

    #messages.<locale>.yml
    foo: >
        Hello i am a line \n
        Hello i am a new line
    

    【讨论】:

    • "我不太确定,但最终您必须将 \n 添加到翻译字符串中。" pipe annotation 就是为此目的 :)
    • 好的答案是 Dado 的答案。你必须使用管道 |让 nl2br 过滤器工作。
    【解决方案2】:

    在您的 YAML 文件中使用:

    foo: |
        first line
        second line
    

    在您的 TWIG 文件中:

    <p>{{ 'foo'|trans|nl2br }}</p>
    

    测试于:

    • Symfony 2.6.6 版
    • 树枝/树枝 1.x-dev 6792014

    【讨论】:

      【解决方案3】:

      对我来说,以下版本成功了:

      foo: "| Hello \n this is a new line"
      

      【讨论】:

        猜你喜欢
        • 2014-01-23
        • 2019-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-28
        • 2012-07-05
        • 1970-01-01
        相关资源
        最近更新 更多