如何使用globalize2在I18n中启用回退

时间:2010-01-27 13:36:37

标签: ruby-on-rails internationalization globalize2

这就是问题所在。在我的应用程序中,如果某些记录没有转换,则globalize2返回NIL字符串,而不是回退到default_locale。我想知道如何启用瘦功能?有没有人想到这一点?

3 个答案:

答案 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)