Rails应用使用i18n翻译shared文件夹下局部视图的问题求助
以下是问题根因和对应修复步骤:
- 配置目录拼写错误:你的翻译配置文件存放路径写为
config/locals/views/shared/_footer.en.yml,Rails i18n默认的配置目录名为locales,该拼写错误会导致你配置的全局加载规则无法扫描到对应翻译文件,请先将目录名修正为config/locales。 - 翻译键调用规则错误:你在
shared/_footer.html.erb中使用<%= t('copyright_disclaimer') %>属于全局键调用,需要和yml配置的全路径匹配,两种修复方案二选一即可:- 推荐使用视图相对键(和你pages页面的调用逻辑一致):将调用代码修改为
<%= t('.copyright_disclaimer') %>(开头加.),Rails会自动根据局部视图路径匹配翻译键,注意局部视图的前缀下划线会被自动省略,因此需要同步调整_footer.en.yml的层级结构:
en: shared: footer: copyright_disclaimer: "xxx"- 保留现有yml结构不变,直接使用全路径全局键调用:
<%= t('shared._footer.copyright_disclaimer') %>
- 推荐使用视图相对键(和你pages页面的调用逻辑一致):将调用代码修改为
- 配置生效检查:修改目录结构、新增翻译文件后需要重启Rails服务,改动才会生效。
内容的提问来源于stack exchange,提问作者Mathieu EUSTACHY
相关产品推荐
相关产品推荐

