i18n是否全球化Rails 5中的后备数据?

时间:2018-03-20 18:08:00

标签: ruby-on-rails internationalization globalize

在这两个应用中,config.i18n.fallbacks = true中都有application.rb

Rails.version # "4.2.4"
Globalize.fallbacks # [:de]
I18n.fallbacks # { :de => [:de] }
Rails.application.config.i18n.fallbacks # nil

Rails.version # "5.0.0.1"
Globalize # NameError: uninitialized constant Globalize
I18n.fallbacks # {}
Rails.application.config.i18n.fallbacks # nil

与v5.0.0.1不同,在v4.2.4中,Gemfile中有gem "globalize"。 它已被添加到以下提交消息:

Upgrade to Rails 2.3.8.
    In the process, globalize2 is now updated and runs from a gem, not a plug in.

不幸的是rails configuration doc for v2.3.8没有对此说一句话。 在v5.0.0.1中,这个gem永远不存在(用git log -G'globalize' -- Gemfile检查)。

在v4.2.4中,使用以下上下文明确添加了设置:

+    # https://github.com/svenfuchs/globalize3
+    config.i18n.fallbacks = true
只要你安装了globalize gem,

Which就有意义了。

在v5.0.0.1中,rails new在rails 3.1.0.rc1上添加了设置,因此除非将gem重新实现为rails,否则从一开始就设置为noop。我错过了什么吗?

在这两种情况下,如果我从application.rb删除设置,I18n会抛出此信息:

# I18n.fallbacks # NoMethodError: undefined method `fallbacks' for I18n:Module

除了在配置文件中设置之外,我不会在应用中的任何地方调用fallbacks

我想知道:

  1. 在v5.0.01 fallbacks是一个死设置,所以我可以安全地删除它吗?
  2. 为什么Rails.application.config.i18n.fallbacks会返回nil,尽管已设置在配置中?
  3. 我搜索了Rails,I18n和Globalize的文档(包括更改日志),但没有找到任何有趣的内容。

0 个答案:

没有答案