過去の記事
[Rails]よく使うバリデーションまとめ
[Rails]フラッシュメッセージとエラーメッセージ違いと実装方法
で、
バリデーションによるエラーメッセージの表示を解説して、実装しましたが、デフォルトではエラーメッセージが英語のままなので、日本語化していきます。
#開発環境
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
に設定を追加していきます。
:
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
これで、デフォルトの言語を日本語に設定できました。
サーバーを再起動して試してみてください。
#③カラム名も日本語化する
カラム名は各Webサービスによって、表示したい名前も変わってくると思うので、開発者側で設定する必要があります。
config/locales配下にja.ymlファイルを作成
してその中に、モデル、カラム名の設定を記述していきます。
ja:
activerecord:
models:
モデル名: 表記したい名称
attributes:
モデル名:
カラム名: 表記したい名称
カラム名: 表記したい名称
基本はこのような形で記述していきます。
表記したい名称には、imageカラムなら「画像」が入ります。
これだけだとわかりにくいと思うので、実際に記述したコードを載せておきます。
モデルは、以下です。
- User
- Post
- Comment
- Like
- Contact
# エラーメッセージのカラム名日本語化
ja:
activerecord:
# 全てのモデル記載
models:
user: ユーザー
post: 投稿
comment: コメント
like: いいね
contact: お問い合わせ
attributes:
# 各モデルのカラム名を記載
user:
name: 名前
email: メールアドレス
password: パスワード
post:
content: 説明
image: 画像
comment:
comment: コメント内容
contact:
name: 名前
email: メールアドレス
content: お問い合わせ内容
これで、カラム名も任意の名前に変更できました。
確認してみてください。
#まとめ
エラーメッセージを日本語化するには3ステップ
です!
①rails-i18nをインストール
②デフォルトの言語を日本語にする
③カラム名も日本語化する
エラーメッセージをかんたんに実装することができました。
あらためてgemの偉大さを痛感しました!(かんたんすぎ)
最後まで見ていただきありがとうございました。