🌎

【Rails】Move locale texts to the locale...の対処法

2023/09/30に公開

はじめに

  • Rubocupにお叱りを受けたので、対応をまとめました。

エラー文

Move locale texts to the locale files in the config/locales directory.

エラーの原因

エラーの再現性

  • 例えば、下記のようにflashに日本語のメッセージを直接書いているときに起こります
flash[:error] = '商品が見つかりませんでした!'

エラーの原因

  • 要は「国際化(i18n)のために、テキストをロケールファイルに移動してね!」という警告です
  • もうちょっと噛み砕いて言うと「そのメッセージを海外の人も読めるようにしてね!」と言う感じです

対処法

  • 例えば「config/locales/en.yml」と「config/locales/ja.yml」を作成して対応します
  • en.ymlは英語版のメッセージをまとめたもので、ja.ymlは日本語版です
  • それぞれの書き方は
en.yml
en:
  item:
    not_found: "Item not found!"
ja.yml
ja:
  item:
    not_found: "商品が見つかりませんでした!"
  • 呼び出し方は
some_contoller.rb
flash[:error] = I18n.t('item.not_found')

実行環境

  • Rubocup 1.56.3
  • ruby 3.2.1 (2023-02-08 revision 31819e82c8) [aarch64-linux]
  • Rails 7.0.8

Discussion