rails i18nによる日本語化

・gemファイルに記述し、ターミナルで bundle install

gem 'rails-i18n'

・config/application.rbに以下を記述する

config.i18n.default_locale = :ja
( デフォルトのlocaleを日本語(:ja)にする )

config.i18n.load_path += Dir[Rails.root.join('config/locales/**/*.{rb,yml}').to_s]
( i18nの設定ファイルを呼び出す )

(i18nの設定ファイル)

・ja.ymlに記述

config/locales/activerecord/ja.yml   モデルに関連する内容のみを記載するconfig/locales/views/ja.yml      Viewの表示のみの内容を記載する

(*)下記のファイルを作成したら、rails sし直さないと反映されないため注意

( config/locales/activerecord/ja.yml )

ja:
 activerecord:
   models:
     user: 'ユーザー'
     board: '掲示板'
   attributes:
     user:
       email: 'メールアドレス'
       password: 'パスワード'
       password_confirmation: 'パスワード確認'
       last_name: '姓'
       first_name: '名'
( config/locales/views/ja.yml )

ja:
 defaults:
   login: 'ログイン'
   register: '登録'
   logout: 'ログアウト'
 users:                 #usersコントローラ
   new:                 #usersコントローラー内のnewアクション
     title: 'ユーザー登録'
     to_login_page: 'ログインページへ'
 user_sessions:
   new:
     title: 'ログイン'
     to_register_page: '登録ページへ'
     password_forget: 'パスワードをお忘れの方はこちら'
 boards:
   index:
     title: '掲示板一覧'
   new:
     title: '掲示板作成'
   bookmarks:
     title: 'ブックマーク一覧'
 profiles:
   show:
     title: 'プロフィール' 

・実際にViewファイルに記述する
 例) app/views/shared/_before_login_header.html.erb


<div class="collapse navbar-collapse" id="navbarSupportedContent">     
 <ul class="navbar-nav ml-auto main-nav align-items-center">       
   <li class="nav-item">         
     <%= link_to (t 'defaults.login'), login_path ,class: 'nav-link' %>       
   </li>     
  </ul>   
</div>

この( t 'defaults.login' )がconfig/locales/views/ja.yml内のdefaultのloginが呼び出され、"ログイン"のリンクが作成される(日本語化)。

・参考

[初学者]Railsのi18nによる日本語化対応

この記事が気に入ったらサポートをしてみませんか?