You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails I18n缺失翻译键时显示转换文本而非报错,如何触发报错?

问题

现有翻译配置如下:

en:
  welcomes:
    index:
      welcome: Hello World!

使用Rails I18n的懒加载方式调用<%= t('.welcome') %>可以正常显示Hello World!。但在welcomes/index.html.erb中调用<%= t('.welcome_abc') %>时,预期会出现「translation missing」相关提示,实际却显示「Welcome Abc」。翻遍Rails I18n官方文档也没找到相关设置,请问如何触发「translation missing」的错误提示?

解决方案

这个翻译键确实是缺失的。根据ActionView的TranslationHelper机制,当遇到MissingTranslation异常时,默认行为是渲染一个内联<span>标签:该标签的title属性值为完整的缺失翻译键,而页面上显示的文本则是将键名转换为自然语言格式的结果(比如welcome_abc会被自动转换为Welcome Abc)。

如果想要明确触发「translation missing」的错误提示,可以通过两种方式设置:

  • 全局配置(开发环境推荐):在config/environments/development.rb中添加如下配置:
    config.i18n.raise_on_missing_translations = true
    
    开启后,开发环境中遇到缺失的翻译键时会直接抛出异常,便于快速定位问题。
  • 单次调用配置:在调用t方法时传入raise: true参数:
    <%= t('.welcome_abc', raise: true) %>
    
    该设置仅对当前t方法调用生效,触发缺失翻译的异常。

内容的提问来源于stack exchange,提问作者HJW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 16:30:16