[rails]国際化対応時にviewごとにlocaleファイルを持つようにする


localeファイルをどうやって管理しようかなと思った時に、フロントエンドのエンジニアに相談したら「viewごとにlocaleファイルを置きたい」という要望をもらったので分けてみました。

#tree config/locales

config/locales
├── defaults
│   ├── en.yml
│   └── ja.yml
├── models
│   ├── default
│   │   ├── en.yml
│   │   └── ja.yml
│   └── user
└── views
    └── pages
        └── index
            ├── en.yml
            └── ja.yml

こんな感じです。

  • localeファイル
# config/locales/views/pages/index/ja.yml
ja:
  views:
    pages:
      index:
        greeting: こんにちわ
  • テンプレート
# app/views/pages/index.html.erb
<%= t('views.pages.index.greeting') %>

参考