【问题标题】:I18n::InvalidLocaleData - can not load translations fromI18n::InvalidLocaleData - 无法从
【发布时间】:2025-11-25 19:10:01
【问题描述】:

我使用 i18n 进行国际化。 但是,作为打击出现问题。

config/locales/view/en.yml:期望它返回一个哈希,但没有

虽然,我以正确的意图编写 yml(2 个空格,没有点击),
发生错误。
我该如何解决这个问题?

en.yml

en:
  moderna:
    language:
      en: English
      jp: Japanese
      kr: Korean
    menu:
      company: Company
      home: Home
    submenu:
      company:
        history: History
        introduce: Introduce
        philosophy: Philosophy
        subsidiary: Subsidiary
        vision: Vision

erb

<%= link_to t("moderna.menu.home"), xx_path %>
<%= link_to t("moderna.submenu.company.introduce"), introduce_path %>
<%= link_to t("moderna.submenu.company.history"), history_path %>
<%= link_to t("moderna.submenu.company.philosophy"), philosophy_path %>
<%= link_to t("moderna.submenu.company.subsidiary"), subsidiary_path %>
<%= link_to t("moderna.submenu.company.vision"), vision_path %>

【问题讨论】:

标签: ruby-on-rails internationalization erb


【解决方案1】:

我找到了原因。当你在项目中使用 i18n 时

  1. 应该生成不同名称的内化文件。

    config/locales/default/en.yml
    config/locales/default/kr.yml
    config/locales/model/en.yml
    config/locales/model/kr.yml
    引擎/hoge_engines/config/locales/default/en.yml
    引擎/hoge_engines/config/locales/default/kr.yml
    引擎/hoge_engines/config/locales/model/en.yml
    引擎/hoge_engines/config/locales/model/kr.yml

=> 可能会出现错误。[无法从~~~~~加载翻译] 所以,我把文件名改成了blow

config/locales/default/default_en.yml  
config/locales/default/default_kr.yml  
config/locales/model/model_en.yml  
config/locales/model/model_kr.yml  
engines/hoge_engines/config/locales/default/default_en.yml   
engines/hoge_engines/config/locales/default/default_kr.yml  
engines/hoge_engines/config/locales/modle/model_en.yml   
engines/hoge_engines/config/locales/model/model_kr.yml  
  1. 不要为内部化 (yml) 创建空文件。 我制作了空的 yml 文件以供之后使用。它也会导致引发错误。

【讨论】:

  • 第二点(空 yml 文件)对我造成了这个异常。