【问题标题】:Why aren't the newlines preserved in Symfony translation YAML files with the | (pipe)?为什么 Symfony 翻译 YAML 文件中不保留换行符 | (管道)?
【发布时间】:2021-08-14 20:48:47
【问题描述】:

根据Symfony Documentation,可以使用|(管道)符号来

表示字符串将跨越多行。在文字中,会保留换行符

我有一个用于翻译的 YAML 文件,其中包含一个带有换行符的段落,比如说:

test: |
    foo
    bar
    baz

在我的树枝模板中,我有:

{{ 'test'|trans }}

我的浏览器中显示的文字是:

富吧巴兹

代替:


酒吧
呵呵

为什么不保留换行符?

【问题讨论】:

  • 这是翻译问题还是html问题?你试过nl2br filter吗?
  • 请分享更多细节 - 您尝试检查是否保留了换行符?通常,标记中的单个换行符不会在浏览器中呈现为换行符
  • @NicoHaase 我应该澄清一下,“显示在我的浏览器中”是指“我在网页中看到的”(而不是在浏览器的控制台中)。是的,谢谢,我实际上在字符串换行符 (\n) 和 HTML 换行符 (
    ) 之间搞混了!
  • @msg 这实际上是一个 HTML 问题,我可以使用 Darius Mann 提供的解决方案单独解决,并且我认为我已经尝试过了。但我不会了解 nl2br 过滤器,这正是我所需要的。谢谢!

标签: symfony yaml twig


【解决方案1】:

使用nl2br twig 过滤器,YAML 中的换行符不会自动转换为 HTML 中的<br /> 标记。

{{ 'test'|trans|nl2br }}

【讨论】:

    【解决方案2】:

    表示字符串将跨越多行。在文字中,保留换行符

    我认为这一行引用了 .yml 文件本身。保留在我的那个

    foo
    bar
    baz
    

    在您的 twig 文件中呈现为 HTML。这意味着如果您不在单词之间放置任何(例如)<br>,它将呈现为

    foo bar baz
    

    【讨论】:

    • 是的,我在字符串 (\n) 和 HTML (
      ) 中呈现的换行符之间混淆了。在某些时候,我(想我)尝试在树枝模板中添加带有 |raw 过滤器的
      ,但它显示了转义的标签。我刚才又试了,YAML文件中的<br>标签+raw在`trans̀工作后过滤!谢谢。
    猜你喜欢
    • 2021-05-11
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2017-03-30
    • 1970-01-01
    相关资源
    最近更新 更多