ruby-on-rails - i18n 在 Ruby on Rails 上, < 和 > 被替换为 &gt ; <不打算的时候

标签 ruby-on-rails internationalization yaml escaping

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

html.erb

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



.yml 文件

foo: bar: xxxx: "xxxx"



结果

&lt ;a href= "/info/index.html"&gt ;xxxx</a&gt ;



这打破了我的链接。我在 ruby​​ 部分没有 h,所以这不应该工作吗?
或者我应该在 yml 文件中没有 html 标签?

Rails 版本是 3.0.1
Ruby 版本是 1.8.7 p249

最佳答案

您的 HTML YAML key 需要有 _html后缀:

foo:
  bar:
    xxxx_html: "<strong>Some HTML Here</strong>"

这样做 Rails 会将字符串标记为 html_safe并将呈现 HTML 而不是将其转换为 &gt;&lt; .

您还需要使用完整的键名来引用它,当您调用 xxxx 时,Rails 不会自动看到 _html 后缀。 .
<%= t 'foo.bar.xxxx_html' %>

关于ruby-on-rails - i18n 在 Ruby on Rails 上, < 和 > 被替换为 &gt ; <不打算的时候,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3989337/

相关文章:

ruby-on-rails - 是否可以以编程方式清除 Rails 3 布局和 View 缓存?

Javascript国际计算?

mysql group_concat order by utf8

amazon-web-services - Cloudformation 如何在 Sub 内的 ImportValue 内进行 Sub ?

ruby-on-rails - 翻译 Rails Devise 错误消息

ruby-on-rails - Rails 服务器无法运行——这是 mysql2 的问题吗?

ruby-on-rails - 在模型中使用 self.attribute 和 attribute 有什么区别?

java - Java 中带有 ResourceBundle 的 i18n 工具

php - Symfony YAML 用逗号解析内容

azure-devops - 在 Azure 管道中重用其他作业的工作区