i18n在Ruby on Rails上,<和>被&gt;取代 &lt; 什么时候不打算

Sai*_*fis 6 yaml escaping ruby-on-rails internationalization

我正在rails应用程序中创建国际化的语言环境文件,并且有一个我想要翻译的URL,例如包含标签

html.erb

<%= t(foo.bar.xxxx)%>

yml文件

foo:bar:xxxx:"xxxx"

结果

< a href ="/ info/index.html"> xxxx </ a>

这打破了我的链接.我没有红宝石部分,所以不应该这样吗?或者我应该在yml文件中没有html标签?

Rails版本是3.0.1 Ruby版本是1.8.7 p249

Gar*_*ett 28

您的HTML YAML密钥需要有一个_html后缀:

foo:
  bar:
    xxxx_html: "<strong>Some HTML Here</strong>"
Run Code Online (Sandbox Code Playgroud)

执行此Rails将标记字符串has html_safe并将呈现HTML而不是将其转换为&gt;&lt;.

您还需要使用完整的密钥名称来引用它,Rails在您调用时不会自动看到_html后缀xxxx.

<%= t 'foo.bar.xxxx_html' %>
Run Code Online (Sandbox Code Playgroud)