📘

I18n.translate メソッドのメモ

2022/02/15に公開

Rails には I18n.translate メソッドがあります。
translatet と略せるので、だいたいこんな形で使うんじゃないでしょうか。

I18n.t('hoge')
ja:
  hoge: ほげ

で、先日、I18n を付けずに単に t だけでかけることを知りました。
view で使うときには t の方を使うのが良いのかな。これ helper が定義されてるんですね。

NOTE: Rails adds a t (translate) helper method to your views so that you do not need to spell out I18n.t all the time. Additionally this helper will catch missing translations and wrap the resulting error message into a <span class="translation_missing">.

例えば fuga というキーが定義されていないとき、こんなアウトプットの違いがあります。

I18n.t('fuga') #= translation missing: ja.fuga
t('fuga') #= <span class="translation_missing">Fuga</span>

参考
https://github.com/rails/rails/blob/main/actionview/lib/action_view/helpers/translation_helper.rb#L73

Discussion