4

我有一个 Rails 3.2 应用程序。它有 2 个语言环境 ko 和 en。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.locale #=> :ko
I18n.t("ttt") #=> "TTT" (Works fine)


**In production console:**

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

我错过了什么?

4

2 回答 2

7

config.i18n.fallbacks = true如果您在生产/登台环境中注释掉,它会按预期工作。

于 2014-01-06T14:12:54.860 回答
3

即使这个问题/答案已经很老了,我也会在这里给出我为我的案例找到的内容(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应该从不同的环境中删除。

于 2018-11-15T13:15:52.033 回答