Rails 3, i18n: Интерполирование html-тегов в текст
Моя проблема - это именно тот, который описан в этом вопросе. Единственное отличие: я использую Rails 3 (точно 3.0.4), который использует синтаксис %{...}
, а не старый {{...}}
.
Проблема: Rails 3 избегает всех тегов внутри %{...}
, поэтому я не могу интерполировать, скажем, ссылки.
Есть ли способ преодолеть это?
Ответы
Ответ 1
Я, наконец, понял это, вы должны использовать _html
как суффикс для любых yaml-ключей, которые вы не хотите html-escaped:
paragraph_html: "This is some text with a %{link}"
paragraph_linktext: "really cool link"
а затем
link = link_to t( paragraph_linktext ), "http://www.example.com"
<%= t( paragraph_html, :link => link ) %>
и voila, там у вас есть ссылка i18n-ized.
Ответ 2
Вы можете сделать это следующим образом:
my_translation: "Click to access %{link} page"
то
<%= t( my_translation, :link => link_to("Google", "http://google.com") ).html_safe %>
И все будет хорошо!