在Rails翻译文件中使用HTML
我在我的Rails应用程序(config/locale/[en | de].yml)中有一些翻译,我在视图中与在Rails翻译文件中使用HTML,html,ruby-on-rails,localization,translation,Html,Ruby On Rails,Localization,Translation,我在我的Rails应用程序(config/locale/[en | de].yml)中有一些翻译,我在视图中与一起使用它。例如: teasers: welcome: "<strong>Welcome</strong> to the Website ..." 预告: 欢迎:欢迎访问该网站 在Rails2.3.8中,这很好,在Rails3中,HTML被转义并翻译成。。。我如何防止这种形式的翻译,并在我的翻译文件中使用HTML,如Rails 2.3.8?我想这是因为
一起使用它。例如:
teasers:
welcome: "<strong>Welcome</strong> to the Website ..."
预告:
欢迎:欢迎访问该网站
在Rails2.3.8中,这很好,在Rails3中,HTML被转义并翻译成
。。。我如何防止这种形式的翻译,并在我的翻译文件中使用HTML,如Rails 2.3.8?我想这是因为
<%= t("blah") %>
在Rails2.x中,now相当于
<%=h t("blah") %>
当您使用rails 3时
从s:
默认情况下,切换到on XSS转义
用于轨道
要解决此问题,请再次参阅发行说明:
您不再需要调用h(字符串)
要转义HTML输出,请按打开它
所有视图样板中的默认值。如果你
想要未转换的字符串,请调用
原始(字符串)
那就换一个吧
<%= t("blah") %>
借
除了使用
raw
之外,还有一种未记录(但官方)的方法。
所有以\u html
结尾的键都会自动呈现为未缩放
从中重命名密钥
teasers:
welcome: "<strong>Welcome</strong> to the Website ..."
预告:
欢迎:欢迎访问该网站
到
预告:
欢迎使用html:欢迎访问网站
非常感谢您的回答!常规方法是使用以\u html
结尾的键。如果您像使用
那样向翻译添加动态数据,请务必小心。如果用户将name
值设置为某个javascript,则表示您遭受了XSS攻击
teasers:
welcome: "<strong>Welcome</strong> to the Website ..."
teasers:
welcome_html: "<strong>Welcome</strong> to the Website ..."