1
0

Railsにおけるエラーメッセージの日本語化

Posted at

【課題】

エラーメッセージをわかりやすい日本語に設定したい

英語表記ではユーザーが視覚的に判断しにくい

エラーメッセージが出現した際に、パッと見で何でエラーが起きで弾かれてるのかを判断しやすくしたい

【実装】

①Gemファイルへの記述

Gemfile
gem 'rails-i18n'

②gemを設定したのでここでbundle instalを行う

ターミナル
$ bundle install

③config/application.rbのファイルを編集

config/application.rb
module BoardApp
  class Application < Rails::Application
    config.time_zone = 'Tokyo'
    config.active_record.default_timezone = :local

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

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

  end
end  

ここまでの記述で
can't be blank、is invalid、Include both letters and numbersなどが日本語表記になることを確認。
このままではカラム名がまだ英語表記のままになっている

④config/locales/ja.ymlのファイルを作成

config/locales/ja.yml
ja:
  activerecord:
    models:
      user: ユーザー
    attributes:
      user:
        nickname: ニックネーム
        email: Eメール
        password: パスワード
        password_confirmation: パスワード(確認用)
        family_name: 名字
        first_name: 名前
        family_name_kana: 名字(カナ)
        first_name_kana: 名前(カナ)
        gender: 性別
        birth_day: 生年月日
  errors:
    messages:
      blank: "を入力してください"
      taken: "はすでに存在します"
      invalid: "は有効でありません"
      too_short: "は%{count}文字以上で入力してください"
      not_a_number: "は数値で入力してください"
      inclusion: "は一覧にありません"
      confirmation: "とパスワード(確認用)が一致しません"
      # カスタムエラーメッセージ
      invalid_password: "は英数字混合で入力してください"
  devise:
    failure:
      user:
        invalid: "メールアドレスまたはパスワードが正しくありません。"

1faad78017bae5aae1f65239469bb4f9.png

1d07a84ffe94667e9c5ce15ba9146b91.png

無事、全てを日本語表記にすることができました

1
0
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
1
0