はじめに
プログラミング初心者です。
温かく見守ってください。
何か謝っている点があれば、ぜひご指摘をお願いいたします。
エラーメッセージの日本語化
事前準備
config/aplication.rb
# 中略
module アプリの名前
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 7.0
# 日本語の言語設定
config.i18n.default_locale = :ja ←追記
# 省略
end
end
Gemfile
#中略
gem 'rails-i18n' ←追記
bundle installをして、サーバーを再起動します。
ファイルを新規作成(2つ)
1、config/localesディレクトリに、devise.ja.ymlを作成
中に英語を日本語に変換する記述をします。
このままだと、「Nicknameを入力してください。」と言った状態になります。
次にカラム名を手動で変換していきます。
2、config/localesディレクトリに、ja.ymlを作成します。
config/locales/ja.yml
ja:
activerecord:
attributes:
user:
nickname: ニックネーム
birthday: 誕生日
last_name: 名字
first_name: 名前
last_name_ruby: 名字カナ
first_name_ruby: 名前カナ
item:
text: テキスト
image: 画像
product_name: 商品名
description: 商品の説明
category_id: カテゴリー
condition_id: 商品の状態
delivery_charge_id: 配送料の負担
prefecture_id: 発送元の地域
delivery_time_id: 発送までの日数
price: 販売価格
activemodel:
attributes:
order_address:
post_code: 郵便番号
municipalities: 市区町村
street_address: 番地
phone_number: 電話番号
token: クレジットカード情報
prefecture_id: 都道府県
ポイント
1、インデントを正確に記載する。
Tabキーを使うとエラーになるみたいです。スペースキーを使う。
2、Formオブジェクト(複数のカラムに同時に保存するやつ)を使用している場合は
activerecord内には記述せず、activemodel内に記述します。
独自でエラーメッセージを設定している場合
config/locales/ja.yml
省略
token: クレジットカード情報
prefecture_id: 都道府県
erros:
messages:
blank: 入力してください。
blank: のように変数化して記述します。
models/user.rb(例)
validates :nickname, presence: true, message: :blank
こんな感じです。
しかし、私の場合これだとテストコードでうまくいきませんでした。
なので、結局直接日本語のエラーメッセージを入力することにしました。
models/user.rb(例)
validates :nickname, presence: true, message: "を入力してください。"
解決法については今後探していきます。
テストコードの修正
最後にテストコードを日本語に修正して完了です。
以上