ターミナル上でrails s
したら
って出てくる問題に対応したのでまとめてみます。といっても英語を翻訳すれば良いだけなのだが...
そもそもこのエラーというか警告というのは以下のURLによるとRails 4 (>= 4.0.2) と Rails 3.2 (>= 3.2.14)の間で出るらしい。
参考URL http://stackoverflow.com/questions/20361428/rails-i18n-validation-deprecation-warning
で、まあ対応方法として2通りあります。
存在しないロケールを書いたときエラー発生させるときは
I18n.enforce_available_locales = true
存在しないロケールを書いてもエラーにさせないときは
I18n.enforce_available_locales = false
としたらOK!書く場所はどこでもいいが
config.i18n.default_locale = :ja
と日本語設定をしていると思うのでこんな感じだと見やすいですかね。
I18n.enforce_available_locales = false
config.i18n.default_locale = :ja
ただし、先にちゃんと日本語の locale ファイルを作っておかないと I18n::InvalidLocale
という例外が発生して、 rake などで :ja is not a valid locale
と怒られるらしいです。
参考URL http://blog.n-z.jp/blog/2013-12-04-rails-i18n-deprecated-warning.html
trueとfalseどちらにすればわからないというかたに補足!
今まで通りの挙動にするときはfalseみたいです。
locale(ロケール)ってなに(余談)
簡単に言うと「使用する言語の設定」です。複数定義することもできます。
ちなみにI18nってのはIで始まり、間に18文字を挟んで、nで終わる文字列という意味で Internationalization の略称らしいです。ここから「文字列の複数言語表示対応」とも言えます。