Rails 3, i18n: Interpolating html tags into text
My problem is exactly the one des开发者_如何学Pythoncribed in this question. Only difference: I'm using Rails 3 (3.0.4 exactly), which uses the %{...}
syntax rather than the old {{...}}
.
Problem: Rails 3 escapes all tags inside %{...}
so I cannot interpolate, say, links in there.
Is there any way to overcome this?
I finally figured it out, you have to use _html
as a suffix for any yaml-keys, that you do not want html-escaped:
paragraph_html: "This is some text with a %{link}"
paragraph_linktext: "really cool link"
and then
link = link_to t( paragraph_linktext ), "http://www.example.com"
<%= t( paragraph_html, :link => link ) %>
and voila, there you have your i18n-ized link.
You can do like this
my_translation: "Click to access %{link} page"
then:
<%= t( my_translation, :link => link_to("Google", "http://google.com") ).html_safe %>
And everything will be ok!
精彩评论