【问题标题】:Rails I18n validation deprecation warning, after setting enforce_available_locales = trueRails I18n验证弃用警告,设置enforce_available_locales = true后
【发布时间】:2013-12-27 12:52:36
【问题描述】:

你在config/application.rb中放置了类似的东西

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.

【问题讨论】:

  • 对于其他通过搜索偶然发现此问题的人,请查看 ruby​​ on rails guides、configuration rails、i18n。这个边缘文档链接有最新的:edgeguides.rubyonrails.org/configuring.html#configuring-i18n我的应用程序仍然是 Rails 3.1(是的,我知道,忙起来……)这个新的 i18n 弃用通过一个小更新溜走了。

标签: localization ruby-on-rails-4 rails-i18n


【解决方案1】:

原因是具有语言国家格式的语言环境存在错误。好消息是它已经修复了。这是在 Github 中使用Issue 13164 报告的,并使用pull request 229 进行了修复。

如果您想通过修复获取最新代码,请像这样更新 gem:

使用以下命令更新您的 Gemfile:

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

然后:bundle install

【讨论】:

  • 这会以某种方式破坏正常的捆绑机制吗?我是否必须这样做,或者当我执行bundle update 时错误会在一段时间后自动消失?
  • 您的 gem 将更新到主存储库中的最新提交,您将始终获得最新的代码。如果您觉得未来的更新可能会破坏某些东西,您可以只执行一次以获得相关的错误修复,然后删除 Gemfile 中的 github 部分。
  • 如果你没有版本锁或类似的东西,bundle update 之后错误可能会消失。我不知道这可能是什么时候,最有可能在新版本的 gem 出现之前。
猜你喜欢
  • 2013-12-20
  • 2014-04-11
  • 2014-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多