2016-09-29 5 views
1

Согласно Ruby on Rails Guides (http://guides.rubyonrails.org/i18n.html#using-safe-html-translations) все, что мне нужно сделать для рендеринга моих переводов без вызова html_safe, на них должно быть имя ключа с _html. Это то, что я пробовал:i18n HTML escaping не работает

en: 
    breadcrumbs: 
    root_html: "<i class='material-icons'>home</i>" 

Назвать это так:

I18n.t('breadcrumbs.root_html') 

вызывает выход быть это очень строка определяется в моих переводах, но не оказанные HTML. Что я делаю неправильно?

Использование Ruby on Rails 4.2.1. Спасибо заранее!

+0

Вы попробовали 'I18n.t ('breadcrumbs.root.html')' (также, вместе с изменением 'root_html:' на 'root:')? –

ответ

2

Прокрутка вниз немного дальше в руководстве я нашел проблему:

Автоматического преобразование в HTML безопасного перевода текст доступен только из перевода зрения вспомогательного метода.

Поскольку я пытался подготовить ссылку внутри своего контроллера и передать ее через жемчужину, это не сработало.

Чтобы сделать эту работу, вам придется позвонить html_safe на строку, например, так:

I18n.t('breadcrumbs.root_html').html_safe 

Если вы нашли другое решение, ударил меня!

+0

То же самое здесь. Я не знал, что есть разница между I18n.t (: my_html) и view helper t (: my_html) либо, thx для этого намека! – ToniTornado