的Rails的I18n验证弃用警告,设置enforce_available_locales后=真

问题描述:

你放在这样的事情在config/application.rb的Rails的I18n验证弃用警告,设置enforce_available_locales后=真

I18n.enforce_available_locales = true           
config.i18n.load_path += Dir[Rails.root.join('config/locales/', '*.{rb,yml}').to_s] 
config.i18n.available_locales = ['es-LA', :en]        
config.i18n.default_locale = 'es-LA' 

,警告仍出现:

[deprecated] I18n.enforce_available_locales will default to true in the future. 
+1

对于其他人绊倒在此通过搜索,检查导轨上的红宝石,配置导轨,i18n。这个边缘文档链接有最新的:http://edgeguides.rubyonrails.org/configuring.html#configuring-i18n我的应用程序仍然是Rails 3.1(是的,我知道,很忙......)这个新的国际化折旧与一个未成年人更新。 –

的原因是由于与语言环境中的错误具有语言国家格式。好消息是它已经被修复了。这在Github中报告为Issue 13164并且与pull request 229固定。

如果你想抓住与修订的最新代码,更新这样的宝石:有

更新您的Gemfile:

gem 'i18n', github: 'svenfuchs/i18n' 

然后:bundle install

+0

这会不会破坏正常的捆绑机制?我是否必须这样做,或者在我进行捆绑更新时,错误会自动消失吗? –

+1

你的宝石将被更新为主存储库中的最新提交,你会一直获得最新的代码。如果您觉得未来的更新可能会破坏某些东西,您可以只做一次以获得相关的错误修复,然后删除Gemfile中的github部分。 – givanse

+1

如果你没有版本锁或类似的东西,那么'bundle update'后面的错误可能会消失。我不知道这可能是什么时候,最有可能的,直到一个新版本的宝石出来。 – givanse