🌎
【Rails】Move locale texts to the locale...の対処法
はじめに
- 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