目前我有一些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",
感谢您的建议
答案 0 :(得分:0)
更改application.rb =>重新启动Rails服务器
我想补充一点,无论何时对application.rb进行任何更改,都必须重新启动服务器才能使更改生效,不仅仅是i18n组件。