Rails 3, i18n: интерполяция HTML-тегов в текст - PullRequest
13 голосов
/ 20 марта 2011

Моя проблема точно та, которая описана в этом вопросе . Единственная разница: я использую Rails 3 (точно 3.0.4), который использует синтаксис %{...} вместо старого {{...}}.

Проблема: Rails 3 экранирует все теги внутри %{...}, поэтому я не могу интерполировать, скажем, ссылки там.

Есть ли способ преодолеть это?

Ответы [ 2 ]

42 голосов
/ 20 марта 2011

Я наконец понял, вы должны использовать _html в качестве суффикса для любых yaml-ключей, которые вы не хотите экранировать html:

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

и вуаля, у вас есть ссылка на i18nized.

10 голосов
/ 25 апреля 2011

Вы можете сделать это

my_translation: "Click to access %{link} page"

тогда:

<%= t( my_translation, :link => link_to("Google", "http://google.com") ).html_safe %>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...