rails-i18nによる国際化

rails-i18n

一般的なメッセージについての日本語での国際化設定ファイル(以下)を参照するようにできる。 rails-i18n/ja.yml at master · svenfuchs/rails-i18n · GitHub

インストール

gem 'rails-i18n'

設定

config/application.rb

class Application < Rails::Application

  # デフォルトを変更
  config.i18n.default_locale = :ja

  # locale/ja.yml以外に用途別の定義ファイルを使えるようにする
  config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]

以上の設定の上、
モデルに関連する内容のみを記載する=locale/appricationrecord/ja.yml と、
Viewの表示のみの内容を記載する=locale/view/ja.yml を作成する。

ビューファイルの名前を省略(Lazy Lookup記法)

ja:
  books:
    index:
      title: "タイトル"

このとき、app/views/books/index.html.erb内で以下の記法が使える。

<%= t '.title' %>

モデル名と属性名の翻訳

ja:
  activerecord:
    models:
      user: 'ユーザー'
    attributes:
      user:
        name: '名前'
User.model_name.human # モデル名の翻訳
=> 'ユーザー'
User.human_attribute_name(name) # 属性名の翻訳
=> '名前'