Rails 4 I18n - 添加新的语言环境文件后缺少翻译

时间:2015-09-09 10:13:06

标签: ruby-on-rails-4 rails-i18n

目前我有一些locales子目录,这些子目录在配置中正确设置

        config/application.rb
        config.i18n.load_path += Dir["#{Rails.root.to_s}/config/locales/**/*.{rb,yml}"]

我已经有2个语言环境文件,我可以轻松获得翻译:

        config/locales/admin/dashboard.en.yml
        en:
          dashboard:
            title: Dashboard

        config/locales/admin/dashboard.fr.yml
        fr:
          dashboard:
            title: Tableau de bord

        irb(main):014:0> I18n.locale = :en
        => :en
        irb(main):015:0> I18n.t("dashboard.title")
        => "Dashboard"
        irb(main):016:0> I18n.locale = :fr
        => :fr
        irb(main):017:0> I18n.t("dashboard.title")
        => "Tableau de bord"

现在我在SAME子目录'locales / admin'中添加了2个其他语言环境文件(与以前的文件非常相似...)

        # =============

        config/locales/admin/sheet.en.yml
        en:
          sheet:
            title: Sheet

        config/locales/admin/sheet.fr.yml
        fr:
          sheet:
            title: Table

我重新启动了服务器......并尝试成功获得新增的翻译

        irb(main):010:0> I18n.locale = :en
        => :en
        irb(main):011:0> I18n.t("sheet.title")
        => "translation missing: en.sheet.title"
        irb(main):012:0> I18n.locale = :fr
        => :fr
        irb(main):013:0> I18n.t("sheet.title")
        => "translation missing: fr.sheet.title"

BOTH语言中缺少翻译?所以我猜app.rb配置文件中的子目录定义有问题,因为我检查了Rails.application.config.i18n.load_path,一个dn新添加的文件不在路径中..

"..../config/locales/admin/dashboard.en.yml",   
"..../config/locales/admin/dashboard.fr.yml",

但不是

"..../config/locales/admin/sheet.en.yml", 
"..../config/locales/admin/sheet.fr.yml", 

感谢您的建议

1 个答案:

答案 0 :(得分:0)

更改application.rb =>重新启动Rails服务器

我想补充一点,无论何时对application.rb进行任何更改,都必须重新启动服务器才能使更改生效,不仅仅是i18n组件。