在Rails翻译文件中使用HTML

在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?我想这是因为

我在我的Rails应用程序(config/locale/[en | de].yml)中有一些翻译,我在视图中与
一起使用它。例如:

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 ..."