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 %>

И все будет хорошо!