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

Ruby on Rails中rails-i18n下:de locale的ordinalize方法失效原因及解决

问题成因
  1. Rails默认仅加载项目config/locales目录下的翻译文件,不会自动读取rails-i18n gem内置的翻译配置。
  2. 尽管rails-i18n已包含德语number.nth.ordinalized的翻译规则,但你的项目de.yml仅定义了hello键,且未配置加载gem内的翻译文件,导致I18n无法找到对应翻译键,触发缺失报错。
  3. 法语ordinalize正常工作是因为rails-i18n对法语的翻译配置被间接加载(或部分版本默认包含),但德语无此默认处理。
修复方案

方案一:手动补充项目德语翻译文件

直接在项目的config/locales/de.yml中添加序数词翻译规则,示例如下:

de:
  hello: "Hallo Welt"
  number:
    nth:
      ordinalized:
        one: "%{number}."
        two: "%{number}."
        few: "%{number}."
        other: "%{number}."

添加后重启控制台,即可正常使用1.ordinalize得到符合德语规范的序数词格式。

方案二:配置Rails加载gem内置翻译文件

在config/application.rb中修改I18n加载路径,让Rails自动加载rails-i18n gem内的所有locale文件:

module Test1
  class Application < Rails::Application
    # 其他配置...
    config.i18n.load_path += Dir[Gem.loaded_specs['rails-i18n'].full_gem_path + '/rails/locale/*.yml']
  end
end

保存后重启Rails服务器或控制台,Rails会自动加载gem内的德语翻译配置,无需手动修改de.yml即可正常使用ordinalize方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:42