ワシはワシが育てる

週刊少年ジャンプと任天堂のゲームが三度のメシより好きです。

Railsのi18nでタグを仕込む

ぶっちゃけ公式ドキュメントが平易な英語で丁寧に説明してあるので、こっちを1度目を通せば事足りる話ですがメモがてら。

公式ドキュメント: http://guides.rubyonrails.org/i18n.html

デフォルトで国際対応の文言はタグがエスケープされてしまいますが、それを回避するためには2つ方法があります。

  • view出力時に「raw」を挿入する
  • yamlのキーに「html」を付ける
# i18n定義ファイル
hoge:
  hoge2: <b>hoge2!</b>
  hoge2_html: <b>hoge2!</b>

# view
= t('hoge.hoge2') # エスケープされる
= raw t('hoge.hoge2') # エスケープされない
= t('hoge.hoge2_html') # エスケープされない

ただAPI等にも使用する場合は通常バージョンとHTMLバージョンの2つ用意するのは微妙な気がするので、普通にrawを指定するほうが手っ取り早いんじゃないかと思います。

ちなみにyamlは数字だけのキーを許可しているのですが、Railsi18nは他のライブラリに乗っかっている影響でハッシュとして使える型でないとエラーになるので注意が必要です。