Ruby on Rails のセキュリティアップデートがあって、 4.0.2 にあげたら i18n gem も 0.6.5 から 0.6.9 にあがって locale の設定変更をしているところで [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. という警告が出るようになりました。
警告の出るタイミング
deprecated - Rails 4.0.2 I18n validation deprecation warning - Stack Overflow 経由で Add I18n.locale_available? and enforce available locales のコミットから入った変更ということで、 コミットログをみてみると、
I18n.config.default_locale=I18n.config.locale=I18n.translateI18n.localizeI18n.transliterate
を呼んだときに影響するようです。 つまり rails new で作っただけだと config/application.rb の config.i18n.default_locale = :de がコメントアウトされていて、 警告は出ません。
日本語のみで使う場合
日本語のみで使うのなら、 将来のデフォルトの I18n.enforce_available_locales = true にしてしまってから、 普通に日本語をデフォルトにする config.i18n.default_locale = :ja を呼べば良いと思います。
# config/application.rb
I18n.enforce_available_locales = true
config.i18n.default_locale = :ja
ただし、先にちゃんと日本語の locale ファイルを作っておかないと I18n::InvalidLocale という例外が発生して、 rake などで :ja is not a valid locale と言われてしまいます。
今まで通りの挙動にする場合
I18n.enforce_available_locales = false にすれば今まで通りの挙動になり、 存在しない locale を設定しても例外は発生しません。
今のデフォルト
今は I18n.enforce_available_locales = nil がデフォルトになっていて、 nil だと警告がでる、 ということのようです。