这就是问题所在。在我的应用程序中,如果某些记录没有转换,则globalize2返回NIL字符串,而不是回退到default_locale。我想知道如何启用瘦功能?有没有人想到这一点?
答案 0 :(得分:10)
从http://github.com/svenfuchs/i18n
安装sven fuchs的i18n库然后,在你的environment.rb中:
require "i18n/backend/fallbacks"
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)
使用:“en-US”作为默认语言环境:
I18n.default_locale = :"en-US"
I18n.fallbacks[:ca] # => [:ca, :"en-US", :en]
I18n.fallbacks :dk => [:"se-FI", :"fi-FI"] # => [:dk, :"se-FI", :se, :"fi-FI", :fi, :"en-US", :en]
答案 1 :(得分:1)
在最新的i18n gem(0.7.0)中,我发现有必要定义这样的回退语言环境(在config/application.rb
中):
# Custom I18n fallbacks
config.after_initialize do
I18n.fallbacks = I18n::Locale::Fallbacks.new(at: :"de-DE", ch: :"de-DE", gb: :"en-US")
end
您还需要在所有config.i18n.fallbacks = true
个文件中设置config/environments/*.rb
。
答案 2 :(得分:0)
这对我有用(i18n宝石版0.4x不起作用)。
# config/environment.rb
config.gem 'i18n', :version => '0.3.7'
# config/initializers/i18n.rb
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)