Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
230
Help us understand the problem. What is going on with this article?
@Ushinji

Railsのバリデーションエラーのメッセージの日本語化

More than 1 year has passed since last update.

修正履歴

  • 2018/10/07 Gemfileへの記述方法の修正(クオーテーションで囲む)

デフォルトのエラーメッセージ

通常Modelのバリデーションエラーのデフォルトメッセージは以下のように英語です。日本人にとっては、日本語で表示してくれた方が親切。

スクリーンショット 2018-01-04 15.42.18.png

エラーメッセージの日本語化

エラーメッセージの日本語化するには、rails-i18nというgemを使用します。Gemfileに以下の一文を追加して、bundle installをします。

gem 'rails-i18n'

次に、config/application.rbに以下の一文を追記します。これにより、サーバ再起動後にエラーメッセージが日本語化されていると思います。

config/application.rb
config.i18n.default_locale = :ja

スクリーンショット 2018-01-04 15.41.17.png

ただ、modelの属性名については英語のままになっています。

カラム名の日本語化

modelの属性名については、日本語変換用のymlファイルを作ってあげる必要があります。config/locales/models/に、ja.ymlというファイルを作成して、以下のようにカラム名と日本語の対応表を記述してあげます。

config/locales/models/ja.yml
ja:
  activerecord:
    models:
      event: イベント
    attributes:
      event:
        name: イベント名
        place: 開催場所
        content: イベント内容

最後に、config/application.rbにこのymlファイルの読み込む一文を追記してあげればOKです。これは、正規表現を使い、config/locales以下のディレクトリ内にある全てのymlファイルを読み込むように指示する一文となります。

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

最終的なエラーメッセージの表示は以下の通り。

スクリーンショット 2018-01-04 15.39.25.png

参考文献

Rails で I18n を使って日本語化

230
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Ushinji
Software engineer.
rymansat
「2機目の人工衛星が2021年に宇宙へ飛び立ちます!」 ●普段は宇宙開発に関わっていないサラリーマンが身近で誰でもできる宇宙開発を実現させることがリーマンサット・プロジェクト(rsp.)の目的です。●キューブサットの開発をはじめ、宇宙を軸として様々なコミュニティやクリエイターとコラボレーションし、民間宇宙開発に関するネットワークを強化、拡張することを目指して活動しています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
230
Help us understand the problem. What is going on with this article?