我正在使用I18n-js,并且我的客户端I18n.t调用在生产中运行时都返回了翻译缺失消息。运行“bin/rake资源:预编译”时,I18n加载路径未被设置!
在开发和测试中一切正常。
此问题的根源似乎在资产管道中。 (运行斌/耙资产时:预编译)
I18n.load_path不包含任何我翻译的,它只包含以下路径:
["/home/chris/.rvm/gems/[email protected]/gems/activesupport-3.2.3/lib/active_support/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/activemodel-3.2.3/lib/active_model/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/activerecord-3.2.3/lib/active_record/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/actionpack-3.2.3/lib/action_view/locale/en.yml"]
这些看起来像默认的ActiveSupport,activemodel的,ActiveRecord的和ActionPack的从宝石翻译...
我的翻译路径运行时斌预期也不过被置/轨道控制台在研发和生产:
1.9.3p125 :002 > I18n.load_path
=> ["/home/chris/.rvm/gems/[email protected]/gems/activesupport-3.2.3/lib/active_support/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/activemodel-3.2.3/lib/active_model/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/activerecord-3.2.3/lib/active_record/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/actionpack-3.2.3/lib/action_view/locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/carrierwave-0.6.1/lib/carrierwave/validations/../locale/en.yml",
"/home/chris/.rvm/gems/[email protected]/gems/devise-2.0.4/config/locales/en.yml",
"/media/sf_code/Project/config/locales/active_record.en.yml",
"/media/sf_code/Project/config/locales/project.en.yml"]
事实上,I18n文档指出:“默认语言环境是:en,并且config/locales/*。rb,yml中的所有翻译都会自动加载。”
我也试过在指定application.rb中
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
但仍然没有喜悦。
任何人有任何的想法运行资产什么时候可能会导致I18n.load_path不应只设置:预编译?
感谢您的任何想法