Kintarou'sBlog

プログラミング学習中。学習内容のアウトプットや読書で学んだことなど随時投稿!

【Rails】deviseの表記を日本語に変える

こんにちは😊Kintarouです。

現在エンジニア転職を目指してTECH CAMPにてプログラミング学習中です👨‍🎓
夢はフリーランスエンジニアになって働く人が働きやすいシステムを作ること!
と、愛する妻と海外移住すること🗽

プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry


今日は備忘録として、deviseやエラーメッセージなどの日本語対応についてまとめていきます。

日本語対応の設定方法

  • config/application.rbで言語設定を日本語にする。
# 中略
 class Application < Rails::Application
   # Initialize configuration defaults for originally generated Rails version.
   config.load_defaults 6.0

   # 日本語の言語設定
   config.i18n.default_locale = :ja #←この文を追記
  # 省略
 end
end
  • rails-i18nのGemを導入する。 Gemfileに
gem 'rails-i18n'

としてからbundle installしましょう。

  • config/localesディレクトリにdevise.ja.ymlファイルを作成する。
    devise導入時に既にdevise.en.ymlというファイルがありますが、それとは別にファイルを作ります。

  • devise.ja.ymlに日本語データをコピペする。

devise-i18n/ja.yml at master · tigrish/devise-i18n · GitHub

こちらのページの内容を貼り付けます。

以上で、基本的な内容は日本語になります。

まだ日本語になっていないワードを日本語化する

config/licales内にja.ymlというファイルを作成し、日本語データを入力していきます。

ja:
 activerecord:
   attributes:
     user:
       nickname: ニックネーム
     task:
       runtime: 実行時間
       place: 場所

※ymlファイルは改行とインデントで階層を表します。
上記の場合、ja:→activerecord:→attribures:→user:→nickname:ニックネームという階層になっており、インデントを誤ると正しく認識されなくなります。

フォームオブジェクトにしたモデルのカラムを日本語化する

フォームオブジェクトにした場合、activerecord層に日本語データを入れても認識されません。
activerecordと同じ層にactivemodel層を作りましょう。

ja:
 activerecord:
   attributes:
     user:
       nickname: ニックネーム
     task:
       runtime: 実行時間
       place: 場所
  activemodel:
    attributes:
      room_tag:
        room_name:ルーム名

以上、どなたかの参考になれば幸いです😊