0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails]バリデーションのエラーメッセージを3ステップで日本語化

Posted at

過去の記事
[Rails]よく使うバリデーションまとめ
[Rails]フラッシュメッセージとエラーメッセージ違いと実装方法
で、
バリデーションによるエラーメッセージの表示を解説して、実装しましたが、デフォルトではエラーメッセージが英語のままなので、日本語化していきます。

スクリーンショット 2021-07-19 21.44.34.png

#開発環境

ruby 2.6.3
Rails 5.2.6

#3ステップ

エラーメッセージを日本語化するには3ステップです!

①rails-i18nをインストール
②デフォルトの言語を日本語にする
③カラム名も日本語化する

#①rails-i18nをインストール

エラーメッセージを日本語化するには、rails-i18nというgemを使います。
Gemfileに追加します。

gem 'rails-i18n'

追加したら、インストールします。

$bundle install

これで、rails-i18nをインストールできました。

#②デフォルトの言語を日本語にする

次に、デフォルトの言語を日本語に設定します。
config/application.rbに設定を追加していきます。

config/application.rb
:
module SampleApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 5.2

    # 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.
    # 以下一文を追加
    config.i18n.default_locale = :ja
  end
end

これで、デフォルトの言語を日本語に設定できました。
サーバーを再起動して試してみてください。

これだけでカラム名以外は、日本語で表示ができています。
スクリーンショット 2021-07-19 22.08.15.png

#③カラム名も日本語化する

カラム名は各Webサービスによって、表示したい名前も変わってくると思うので、開発者側で設定する必要があります。

config/locales配下にja.ymlファイルを作成してその中に、モデル、カラム名の設定を記述していきます。

基本形
ja:
  activerecord:
    models:
      モデル名: 表記したい名称
    attributes:
      モデル名:
        カラム名: 表記したい名称
        カラム名: 表記したい名称

基本はこのような形で記述していきます。
表記したい名称には、imageカラムなら「画像」が入ります。

これだけだとわかりにくいと思うので、実際に記述したコードを載せておきます。

モデルは、以下です。

  • User
  • Post
  • Comment
  • Like
  • Contact
config/locales/ja.yml
# エラーメッセージのカラム名日本語化
ja:
  activerecord:
    # 全てのモデル記載
    models:
      user: ユーザー
      post: 投稿
      comment: コメント
      like: いいね
      contact: お問い合わせ
    attributes:
      # 各モデルのカラム名を記載
      user:
        name: 名前
        email: メールアドレス
        password: パスワード
      post:
        content: 説明
        image: 画像
      comment:
        comment: コメント内容
      contact:
        name: 名前
        email: メールアドレス
        content: お問い合わせ内容

これで、カラム名も任意の名前に変更できました。
確認してみてください。
スクリーンショット 2021-07-19 22.32.12.png

#まとめ

エラーメッセージを日本語化するには3ステップです!

①rails-i18nをインストール
②デフォルトの言語を日本語にする
③カラム名も日本語化する

エラーメッセージをかんたんに実装することができました。

あらためてgemの偉大さを痛感しました!(かんたんすぎ)

最後まで見ていただきありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?