【駆け出しエンジニア必見!】Railsバリデーションのエラーメッセージを日本語化する方法

プログラミング

こんにちはpepeです!
Railsでアプリケーションを作成する際、
バリデーションのエラーメッセージを表示させる機会があるかと思います。

↓こんな感じのやつです!

そんなとき、「できれば日本語で表示したい、、、」と思われた方も多いのではないでしょうか。
日本人の方向けのサイトの場合、エラーメッセージは日本語で表示されたほうが親切ですよね。

今回は、エラーメッセージを日本語で表示させる方法をご紹介していきます!

 

エラーメッセージを日本語化する方法

gemをインストールする

エラーメッセージを日本語化するために、gemをインストールします。
まずはGemfileに以下の記述をしましょう。

gem "rails-i18n"

記述ができましたら、ターミナルでbundle installを実行しましょう。

# インストールしたいアプリケーションのディレクトリになっているか確認
bundle install

 

configファイルを編集

次に、config/application.rbのファイルを編集します。
以下を記述することで、エラーメッセージが日本語化されます。

module アプリケーション名
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0

    config.i18n.default_locale = :ja  ← 追記
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration can go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded after loading
    # the framework and any gems in your application.
  end
end

 

これで、晴れてエラーメッセージが日本語化されました!
しかし、このままではカラム名と、modelファイル内に指定したエラーメッセージが英語のままです。
以下のように表示されるはずです。

モデル内に指定したメッセージは、日本語に修正することで対応できます。
次は、カラム名を日本語に直していきましょう。

 

カラム名を日本語にする

カラム名を日本語にするためには、専用のymlファイルを作成する必要があります。
config/locales/models/にja.ymlのファイルを作成しましょう!
作成時のルールも以下に記載します。

ja:
  activerecord:
    models:
      user: ユーザー      ← モデル名を記述
    attributes:
      user:          ← モデル名を記述
        name: 名前    ← 以下カラム名を記述
        email: Eメール
        password: パスワード

ファイルが作成できましたら、このファイルを読み込むための記述を先程のconfig/application.rbのファイルへ追記します。

config.i18n.load_path+=Dir[Rails.root.join('config','locales','**','*.yml').to_s]

これで全てのメッセージを日本語することができました!
以下のような表示になっているはずです。※一部抜粋して日本語化しました。

 

まとめ

 エラーメッセージを日本語化するには

  • gem “rails-18n”をインストールし、config/application.rbファイルを編集する
  • 専用のymlファイルを作成し、カラム名を日本語化する

コメント

タイトルとURLをコピーしました