HAML / i18n的长串自动注册

时间:2014-04-03 18:11:28

标签: ruby-on-rails ruby-on-rails-4 haml ruby-2.0 rails-i18n

在我的应用程序中,我有一段本地化文本。它是由换行符分隔的两段。我看到它在每个段落的开头插入一个额外的行并缩进。这些段落不应缩进。

翻译:

translated_text:
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
    Suspendisse facilisis scelerisque orci ut mattis. Nunc 
    vehicula fermentum. Praesent euismod congue condimentum.
    turpis ac risus vulputate pellentesque. Proin non metus 
    lorem est, dictum in venenatis ac, tristique vitae leo. 
    nec ultrices. Integer viverra, velit ac rutrum lobortis, 
    iaculis quis justo et posuere.

    Fusce eu sem dictum, tristique nisi ullamcorper, porttitor n
    accumsan id pretium nec, mollis eu erat. Suspendisse adipisc
    consequat diam, eu facilisis est. Vivamus vitae congue risus.
    a sagittis. Aliquam fermentum mattis justo. Nam pretium libero 
    adipiscing augue molestie erat lobortis, eu semper velit consequat."

当我删除分隔线中断时,文本左对齐按预期方式。我检查了CSS规则(text-indent,white-space),HAML / i18n配置,并尝试使用YAML的||+|-块语法。没有运气。

1 个答案:

答案 0 :(得分:1)

我和Saedar一起工作。我们挖掘了HAML代码并意识到缩进只发生在“丑陋”的时候。选项是假的。问题是,它试图缩进多行文字,以便它与格式化的HTML相得益彰。

例如,如果您在一个范围内有一行文字,那么:

<div>
  <div>
    <span>This is a single line... doesn't matter how long it is.</span>
  </div>
</div>

但是一旦你开始分割线条,文本就会自行消失并且在源代码中缩进:

<div>
  <div>
    <span>
      This has multiple lines.

      It's formatted to be pretty in the source code.
    </span>
  </div>
</div>

这会导致文本在我们的案例中缩进每个段落,因为在该元素上我们将text-wrap CSS样式设置为pre-wrap

我们采用的解决方案是在config / initializers / haml.rb中设置Haml::Template.options[:ugly] = true

此更改会将所有html缩进设置为关闭:

<div>
<div>
<span>
This has multiple lines.

It's formatted to be pretty in the source code.
</span>
</div>
</div>