App cannot access translation files in engine or gem

rails-i18n, ruby-on-rails

Solution

I was facing same issue , If your developing rails engine then add following lines to lib/engine_name/engine.rb

module MyEngine
  class MyEngine < Rails::Engine
    config.before_initialize do                                                      
      config.i18n.load_path += Dir["#{config.root}/config/locales/**/*.yml"]
    end
  end
end

Another way

module MyEngine
  class MyEngine < Rails::Engine
    initializer 'MyEngine', before: :load_config_initializers do
      Rails.application.config.i18n.load_path += Dir["#{config.root}/config/locales/**/*.yml"]        
    end
  end
end

Problem

I tried every combination I can think of but I cannot get my app to see the localized content provided by my engine. Now the engine does just fine. I see the same problem with `Rails_admin`. Where it's i18n files are in a separate gem. The main app cannot seem to see the files. I'm sure there must be an error in how I'm specifying the `I18n.load_path`, but it's got me beat. from Ryan Bates rails cast: ``` I18n.load_path += Dir[Rails.root.join('config', 'locale', '*.{rb,yml}')] ``` And one of my hack attempts: ``` I18n.load_path += Dir[Rails.root.join('**','locales', '**', '*.{rb,yml}')] ``` And any reference from inside the app results in a translation not found. Any clues.

Original source