缺失翻译的 activeadmin,Ruby on Rails。

6

我翻译了我的Active Admin菜单:

# encoding: utf-8
ActiveAdmin.register City do
    menu :parent => "Données géographiques", :label => I18n.t(:cities)
end

在我的 active_admin.fr.yml 文件中:

    fr:
      active_admin:
        dashboard: "Tableau de Bord"
        dashboard_welcome:
          welcome: "Bienvenue dans Active Admin. Ceci est la page par défaut."
          call_to_action: "Pour ajouter des sections au tableau de bord, consultez 'app/admin/dashboards.rb'"
      cities: "Villes"

在我的本地(debian 6)一切正常,但在我的预生产环境(debian 6)上,它显示为:
translation missing: fr.cities

我尝试重新启动Apache,清除缓存,重新加载I18n...但是我失败了。

有什么想法吗?

3个回答

8
这对我起作用:
config.after_initialize do
  I18n.reload!
end

6
我找到了解决方案,你需要在你的 application.rb 文件中写入以下内容:
config.before_configuration do
  I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
  I18n.locale = :fr
  I18n.default_locale = :fr
  config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
  config.i18n.locale = :fr
  # bypasses rails bug with i18n in production\
  I18n.reload!
  config.i18n.reload!
end

config.i18n.locale = :fr
config.i18n.default_locale = :fr

重新启动Apache,就可以了!

感谢您发布解决方案,我也遇到了同样的问题! - brentvatne
1
前三行对我来说已经足够了。 - KARASZI István

2
我找到了解决方案,在application.rb中添加此代码。
config.before_configuration do # FIX conflict I18n ActiveAdmin
  I18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
  I18n.locale = I18n.default_locale = config.i18n.default_locale
  I18n.reload!
end

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接