Tôi đang sử dụng I18n-js và tất cả các cuộc gọi I18n.t phía khách hàng của tôi đều trả về một bản dịch bị mất khi đang chạy trong sản xuất.Đường dẫn tải I18n không được đặt khi chạy "tài sản bin/cào: biên dịch trước"!
Tất cả đều ổn trong quá trình phát triển và thử nghiệm.
Gốc của vấn đề này dường như nằm trong đường ống nội dung.
I18n.load_path không chứa bất kỳ các bản dịch của tôi (khi chạy tài sản bin/rake: tiền biên dịch) nó chỉ chứa các đường dẫn sau:
["/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"]
Những trông giống như activesupport mặc định, activemodel, activerecord và actionpack bản dịch từ đá quý ...
đường dẫn dịch của tôi làm tuy nhiên được thiết lập như mong đợi khi chạy bin/ray console trong việc phát triển và sản xuất:
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"]
Thật vậy, trạng thái tài liệu I18n: "Ngôn ngữ mặc định là: vi và tất cả các bản dịch từ cấu hình/ngôn ngữ/*. Rb, yml được tải tự động".
Tôi cũng đã cố gắng xác định trong application.rb
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
Nhưng vẫn không có niềm vui.
Bất cứ ai có bất kỳ ý tưởng nào có thể khiến I18n.load_path không được đặt chỉ khi chạy tài sản: biên dịch trước?
Cảm ơn mọi ý tưởng