应用无法访问引擎或gem中的翻译文件

bob*_*sol 5 ruby-on-rails rails-i18n

我尝试了我能想到的每一个组合,但我无法让我的应用程序看到我的引擎提供的本地化内容.现在发动机做得很好.

我看到了同样的问题Rails_admin.它的i18n文件在一个单独的宝石中.主应用程序似乎无法看到文件.我确定我的指定方式一定有错误I18n.load_path,但它让我受到打击.

来自Ryan Bates的铁杆演员:

I18n.load_path += Dir[Rails.root.join('config', 'locale', '*.{rb,yml}')]
Run Code Online (Sandbox Code Playgroud)

我的一次黑客尝试:

I18n.load_path += Dir[Rails.root.join('**','locales', '**', '*.{rb,yml}')]
Run Code Online (Sandbox Code Playgroud)

应用程序内部的任何引用都会导致找不到翻译.

任何线索.

Dee*_*bur 14

我遇到了同样的问题,如果你开发的rails引擎然后在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
Run Code Online (Sandbox Code Playgroud)

其他方式

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
Run Code Online (Sandbox Code Playgroud)