Rails区域设置回退在生产环境中不起作用

时间:2013-08-09 22:54:55

标签: ruby-on-rails locale fallback rails-i18n

我有一个rails 3.2应用程序。 它有2个区域ko&恩。 ko是默认值,但如果它不可用,我希望它回退到en。 后备工作在开发环境中,但不在生产环境中。

[config/application.rb]
    config.i18n.default_locale = :ko
    config.i18n.fallbacks = [:en]

[config/environments/production.rb]
  config.i18n.fallbacks = true


[config/locales/en.yml]
  ttt: TTT

[config/locales/ko.yml]
  (ttt is not defined)


**In development console:**

I18n.localt #=> :ko
I18n.t("ttt") #=> "TTT" (Works fine)


**In production console:**

I18n.locale #=> :ko
I18n.t("ttt") #=> "translation missing: ko.ttt" (Not working)

我错过了什么?

感谢。

萨姆

2 个答案:

答案 0 :(得分:5)

如果您在生产 / 暂存环境中注释掉config.i18n.fallbacks = true,则可以按预期工作。

答案 1 :(得分:0)

即使这个问题/答案已经很老了,我也会把我在案例中发现的内容(Rails 5.X)放在这里。 application.rb

中的设置应如下所示
config.i18n.default_locale = :en

config.i18n.available_locales = %i(en de)
config.i18n.fallbacks = {
  de: :en
}

因此,应该从不同的环境中删除所有对config.i18n.fallbacks = true的引用。