9
13

More than 5 years have passed since last update.

rails sしたら[deprecated] I18n.enforce_available_locales・・・・って出てくる

Posted at

ターミナル上でrails sしたら
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

って出てくる問題に対応したのでまとめてみます。といっても英語を翻訳すれば良いだけなのだが...

そもそもこのエラーというか警告というのは以下のURLによるとRails 4 (>= 4.0.2) と Rails 3.2 (>= 3.2.14)の間で出るらしい。
参考URL http://stackoverflow.com/questions/20361428/rails-i18n-validation-deprecation-warning

で、まあ対応方法として2通りあります。
存在しないロケールを書いたときエラー発生させるときは

config/application.rb
I18n.enforce_available_locales = true

存在しないロケールを書いてもエラーにさせないときは

config/application.rb
I18n.enforce_available_locales = false

としたらOK!書く場所はどこでもいいが

config/application.rb
config.i18n.default_locale = :ja

と日本語設定をしていると思うのでこんな感じだと見やすいですかね。

config/application.rb
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 の略称らしいです。ここから「文字列の複数言語表示対応」とも言えます。

9
13
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
9
13