我有一个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)
我错过了什么?
感谢。
萨姆
答案 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
的引用。