killistさんノート

killistさんの記録帖

RSS 2.0

i18nでtranslateでHTMLタグ付きの文字列をとってきたい。

YAMLでHTMLタグの入った文字列を定義して、i18nで引っ張ってくると、HTMLセーフな文字列になっちゃってタグが効かないのでムキーッとなった。

解決法をちょろっと日本語で書いてあるとこが見当たらなかった(探すの下手)だから、書いておく。

つまるとこ、こんなん。

以下YAMLに書く。
wellcome_message: "やあ (´・ω・`)<br />ようこそ、バーボンハウスへ。<br />このテキーラはサービスだから、まず飲んで落ち着いて欲しい。"

例文はぱっと思いつかなかったから入れたものなので、あとで差し替えるかもしれず。
あと、改行タグは嫌いなんだけど、まぁ、なんでもよい。

で、これを素直にやるとタグがHTMLセーフな文字列(&lt;br / &gt;みたいなの)になっちゃって、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

Categories: 未分類 Tags: ,

killist


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Category