私はI18n-jsを使用しています。クライアントサイドのI18n.tはすべて、本番環境で稼働しているときに翻訳漏れのメッセージを返します。"bin/rake assets:precompile"を実行しているときにI18nロードパスが設定されていません!
開発とテストはすべて問題ありません。
この問題の原因はアセットパイプラインにあるようです。これらは、デフォルトのactivesupportの、activemodel、ActiveRecordのとactionpackように見える
["/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"]
:それだけで次のパスが含まれています(プリコンパイルビン/すくい資産を実行している場合)
I18n.load_pathは私の翻訳のいずれかが含まれていません予想通り、開発と生産にビン/レールコンソールを実行しているときに宝石からの翻訳は...
私の翻訳・パスは、しかし、設定を取得します:
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がアセットを実行しているときにのみ設定されないようにすることができます。プリコンパイル?
ありがとうございました