1
0

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

Posted at

はじめに

プログラミング初心者です。
温かく見守ってください。
何か謝っている点があれば、ぜひご指摘をお願いいたします。

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

事前準備

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を作成
中に英語を日本語に変換する記述をします。
Image from Gyazo

このままだと、「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: "を入力してください。"

解決法については今後探していきます。

テストコードの修正

最後にテストコードを日本語に修正して完了です。

以上

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