学習日記

学習記録

Railsでの翻訳i18nで便利なメソッド

Railsの翻訳をもっと便利にしたい

共通した処理を簡単に翻訳する

例えば3個のビューでタイトルに戻るみたいなリンクを作って、翻訳しようとすると

ja:
  books:
    index:
      back_title: "タイトルに戻る"
    show:
      back_title: "タイトルに戻る"
    edit:
      back_title: "タイトルに戻る"

こんな風に書くのはいささか効率が悪いので

ja:
  normal:
    back_title: "タイトルに戻る"

こうしてやってビューのほうの定義を<%= t('normal.back_title') %>に全て置き換えると、これだけで全て翻訳できる

特定のビューでしか使わない翻訳を簡単にする

特定のビューでしか使わない翻訳を、階層化して記述するのは面倒なので、例えばindexでしか使わないhogeというキーに対する翻訳があるならymlファイルを

ja:
  books:
    index:
      hoge: "ほげ"

とした上でビューの記述を <%= t('.hoge') %>としてやれば、これだけで翻訳される(キーの前に.がついてるのに注目)

参考

Rails 国際化(I18n)API - Railsガイド