i18nでtranslateでHTMLタグ付きの文字列をとってきたい。
YAMLでHTMLタグの入った文字列を定義して、i18nで引っ張ってくると、HTMLセーフな文字列になっちゃってタグが効かないのでムキーッとなった。
解決法をちょろっと日本語で書いてあるとこが見当たらなかった(探すの下手)だから、書いておく。
つまるとこ、こんなん。
以下YAMLに書く。
wellcome_message: "やあ (´・ω・`)<br />ようこそ、バーボンハウスへ。<br />このテキーラはサービスだから、まず飲んで落ち着いて欲しい。"
例文はぱっと思いつかなかったから入れたものなので、あとで差し替えるかもしれず。
あと、改行タグは嫌いなんだけど、まぁ、なんでもよい。
で、これを素直にやるとタグがHTMLセーフな文字列(<br / >みたいなの)になっちゃって、hoge.html.erbに渡しても普通に表示されちゃうの。
以下erbに書く。
<%= t("wellcome_message") %>
で、たぶんムキーッってなって色々試したところはあんまり興味ないだろうから、正解は以下。
以下YAMLに書く。
wellcome_message_html: "やあ (´・ω・`)<br />ようこそ、バーボンハウスへ。<br />このテキーラはサービスだから、まず飲んで落ち着いて欲しい。"
以下erbに書く。
<%= t("wellcome_message_html") %>
YAML Keyの末尾をfuga_htmlみたいな感じにすれってことみたい。
(fuga.htmlでも良いのかとおもったけど、そっちはうまくいかなかった。)
最初からリファレンス見ろ! てか英語やだーとか言わないで読め! って話だね。
参考 : http://api.rubyonrails.org/ ActionView::Helpers::TranslationHelper
8月 3, 2013 土曜日 at 4:45 pm