我在我的Rails应用程序(config/locale/[en | de] .yml)中有一些翻译,我在我的视图中使用它<%=t "teasers.welcome" %>
.例:
teasers: welcome: "Welcome to the Website ..."
在Rails 2.3.8中这很好用,使用Rails 3,HTML被转义并转换为<
...如何防止这种形式的翻译并在我的翻译文件中使用HTML,如Rails 2.3.8?
除了使用之外raw
,还有其他无证(但官方)的方法.所有以#结尾的键都会_html
自动呈现为非转义状态.
重命名密钥
teasers: welcome: "Welcome to the Website ..."
至
teasers: welcome_html: "Welcome to the Website ..."
我想是因为这样做
<%= t("blah") %>
在rails 2.x中,现在相当于做
<%=h t("blah") %>
当你使用rails 3时.
从发行说明 s:
切换到默认的XSS转义为rails.
要解决这个问题,请再次从发行说明中解决:
您不再需要调用h(字符串)来转义HTML输出,默认情况下它在所有视图模板中都处于打开状态.如果你想要未转义的字符串,请调用raw(string).
所以只需更换
<%= t("blah") %>
通过
<%= raw t("blah") %>