在我们的Rails 4.2应用视图中,只要I18n
文件中找不到密钥,就会出现zh-CN
错误:
translation missing: zh-CN.no key
这是在config / initializers /:
下的local.rb中I18n.default_locale = 'zh-CN' if Rails.env.production? || Rails.env.development?
我们希望关闭此错误并阻止它在视图上显示。有关Rails 3错误的post。但是解决方案不适用于Rails 4.2。 config.i18n.fallbacks = false/true
也没有做到这一点。
答案 0 :(得分:3)
您必须添加 后备区域设置和后备语言。
config.i18n.default_locale = :en
config.i18n.fallbacks = true
这会迫使I18n
回归英语。我在Rails 4.1应用程序上广泛使用它,但我不确定它是否因为4.2而改变了它。
答案 1 :(得分:0)
我们可以在Rails应用程序中配置I18n回调。例如,当zh-CN
翻译丢失时,I18n将回退到en
。在我的Rails 4.2.2应用程序中配置如下:
配置/ application.rb中
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]
config.i18n.default_locale = :"zh-CN"
config.i18n.fallbacks = true
配置/初始化/ i18n.rb
Rails.configuration.after_initialize do
I18n.fallbacks.map(:"zh-CN" => :en)
end
参考文档: