Ruby on rails Rails 5中的i18n全球化回退是一个noop吗?
在这两个应用程序中,Ruby on rails Rails 5中的i18n全球化回退是一个noop吗?,ruby-on-rails,internationalization,globalize,Ruby On Rails,Internationalization,Globalize,在这两个应用程序中,application.rb中都有config.i18n.fallbacks=true: Rails.version # "4.2.4" Globalize.fallbacks # [:de] I18n.fallbacks # { :de => [:de] } Rails.application.config.i18n.fallbacks # nil 以及: 与v5.0.0.1不同,在v4.2.4中,gem文件中有gem“globalize”。 已在其中添加了以下提交
application.rb
中都有config.i18n.fallbacks=true
:
Rails.version # "4.2.4"
Globalize.fallbacks # [:de]
I18n.fallbacks # { :de => [:de] }
Rails.application.config.i18n.fallbacks # nil
以及:
与v5.0.0.1不同,在v4.2.4中,gem文件中有gem“globalize”
。
已在其中添加了以下提交消息:
Upgrade to Rails 2.3.8.
In the process, globalize2 is now updated and runs from a gem, not a plug in.
不幸的是,他一句话也没说。
在v5.0.0.1中,这个gem从未出现过(使用git log-G'globalize'-Gemfile
检查)
在v4.2.4中,使用以下上下文明确添加了该设置:
+ # https://github.com/svenfuchs/globalize3
+ config.i18n.fallbacks = true
只要安装了globalize gem,就有意义
在v5.0.0.1中,该设置是由rails 3.1.0.rc1上的rails new
添加的,因此,除非gem重新实现到rails中,否则该设置从一开始就是一个noop。我错过什么了吗
在这两种情况下,如果我从application.rb
中删除该设置,I18n将抛出以下命令:
# I18n.fallbacks # NoMethodError: undefined method `fallbacks' for I18n:Module
除了在配置文件中进行设置外,我不会在应用程序的任何位置调用回退
我想了解一下:
在v5.0.01中,回退是一个死设置,所以我可以安全地删除它吗
为什么Rails.application.config.i18n.fallbacks
返回nil
,尽管在configs中进行了设置
我搜索了Rails、I18n和Globalize的文档(包括变更日志),但没有发现任何有趣的内容
# I18n.fallbacks # NoMethodError: undefined method `fallbacks' for I18n:Module