0
0

More than 1 year has passed since last update.

I18n::InvalidPluralizationData について

Posted at

初めに

自分用の備忘録として書きます。
プログラミング初学者(2ヶ月)ですので間違えていることもあると思います・・・
なので、なにかおかしいことを言っていたらコメントなどでご指摘くださると助かります。

エラー画面

チームでECサイト作成しているときにエラーのフラッシュメッセージを日本語化しようとしていたときに出たエラーです。
スクリーンショット 2023-06-24 221325.png

これは新規会員登録をわざと空にしてエラーのフラッシュメッセージを出そうとしたときに起こりました。
色々調べた(あまり記事がなかった為、殆どChatGPT様に聞いた)結果、原因としては

「このエラーメッセージは、複数形のデータに対して :count => 1 のような単数形のカウントが指定された場合に発生します。具体的には、_errors.html.erb テンプレートの7行目でエラーメッセージを表示する際に、translation data 内のキーと値が複数形形式になっていることが原因です。」

とのことで・・・

うーん、分からん!

とりあえずhtmlではなくymlファイルが原因っぽいのは分かりました。

config/locales/ja.yml
activerecord:
  models:
    customer:
      email: メールアドレス
      password: パスワード
      last_name: 姓
      first_name: 名
      kana_last_name: セイ
      kana_first_name: メイ
      post_code: 郵便番号
      address: 住所
      telephone_number: 電話番号

また「translation data」は翻訳データだそうです。

結果

結論としては「models:」から「attributes:」に修正したら解決しました

config/locales/ja.yml
activerecord:
  attributes:
    customer:
      email: メールアドレス
      password: パスワード
      last_name: 姓
      first_name: 名
      kana_last_name: セイ
      kana_first_name: メイ
      post_code: 郵便番号
      address: 住所
      telephone_number: 電話番号

参考にしたサイト
https://makandracards.com/makandra/47056-dealing-with-i18n-invalidpluralizationdata-errors

私の英語力が雑魚なのでGoogle先生に翻訳してもらいましたが、結局のところ理由はわかってもどういう処理でエラーになるのかはよくわからなかったです・・・
どうやらI18nはオプションの複数形化をする?らしく、単数形も複数形にしようとしてエラーが出る?んですかね・・・

完全に理解するのは未来の自分に任せます。

閲覧していただきありがとうございました!

0
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
0
0