個人アプリ作成中にエラーメッセージを日本語で表示したい!と思いましたが、想定よりも苦戦したので、以下に記載します。
(想定よりも苦戦した原因はymlファイルの設置と内容の編集です。。笑)
はじめに
-背景:
Tweet機能を持たせたアプリを作成中、文字数制限をValidationで設定していたため、
Tweet時、文字数制限をオーバーしたときにValidationエラーメッセージを出そうとしていました。
この機能自体は、無事実装できましたが、出てくるエラーメッセージのデフォルトは英語になってます。
そこで、今回エラーメッセージを日本語にする方法を調べましたので、以下にまとめます。
機能実装方法
1.rails-i18n(gem)実装
日本語化するにはrails-i18nというgemを使用します。
gem 'rails-i18n'
忘れずにbundle installします。
bundle install
2.application.rbを編集
次にconfig/application.rb内に以下を追記しましょう。
# デフォルトのlocaleを日本語(:ja)にする
config.i18n.default_locale = :ja
# 複数のロケールファイルが読み込まれるようpathを通す
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
これで、各フォルダにおけるymlファイルを読み込めるようになりました。
3.ymlファイルの設置+編集
まず、ymlファイルを設置します。
今回はpostモデルに関する内容だったので、models配下に設置します。
config
└── locales
└──models
└──ja.yml
続いて、ymlファイルを編集します。
ja:
activerecord:
models:
post: 投稿
attributes:
post:
address: メールアドレス
content: 投稿内容
ymlの記載はインデント量で構造を表すので、注意が必要です!
(自分はそれで、何度か引っかかりました。。。笑)
これで、エラーメッセージが日本語で表示できるようになりました!
今回記載しきれなかった内容もございます。
気になる方がいらっしゃいましたら、参考のページをご確認いただけますと幸いです!
以上となります。最後までご覧いただき、ありがとうございました!
今後も学習した事項に関してQiitaに投稿していきますので、よろしくお願いします!
記述に何か誤りなどございましたら、お手数ですが、ご連絡いただけますと幸いです。
参考
Ruby on Railsでエラーメッセージを表示する方法【初心者向け】
https://techacademy.jp/magazine/10024
[初学者]Railsのi18nによる日本語化対応
https://qiita.com/shi-ma-da/items/7e5c3d75c9a9f51abdd5#4-configlocales%E4%BB%A5%E4%B8%8B%E3%81%AB%E3%83%AD%E3%82%B1%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%85%8D%E7%BD%AE
Ruby on Rails モデルのエラー表示が日本語にならない
https://ja.stackoverflow.com/questions/38880/ruby-on-rails-%E3%83%A2%E3%83%87%E3%83%AB%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E8%A1%A8%E7%A4%BA%E3%81%8C%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84