在Ruby on Rails中,ordinalize方法在:de语言环境中不起作用。给出的错误是:
> 1.ordinalize
=> "translation missing: de.number.nth.ordinalized"
这很容易重现:
1.使用命令rails new test1
创建一个全新的rails应用程序
1.通过将rails-i18n
gem添加到Gemfile并运行bundle
来安装它
1.复制并编辑config/locale/en.yml文件,通过以下编辑创建fr.yml和de.yml:
==> config/locales/de.yml <==
de:
hello: "Hallo Welt"
==> config/locales/en.yml <==
en:
hello: "Hello world"
==> config/locales/fr.yml <==
fr:
hello: "Bonjour le monde"
然后尝试在rails控制台中使用ordinalize:
test1 git:(main) ✗ rails console
Loading development environment (Rails 7.0.4.3)
3.1.2 :001 > I18n.locale
=> :en
3.1.2 :002 > 1.ordinalize
=> "1st"
3.1.2 :003 > I18n.locale = :fr
=> :fr
3.1.2 :004 > 1.ordinalize
=> "1er"
3.1.2 :005 > I18n.locale = :de
=> :de
3.1.2 :006 > 1.ordinalize
=> "translation missing: de.number.nth.ordinalized"
查看rails-i18 n源代码,其中似乎有处理German和French中的number.nth.ordinalized
转换密钥的代码
如果我手动添加一个number.nth.ordinalized
键到de.yml文件中,那么就可以找到该翻译。
请有人能帮助我理解为什么这是不工作,并理想地解释什么需要改变,使其工作。
先谢谢你了。
1条答案
按热度按时间20jt8wwn1#
rails-i18 n gem的最后一个版本(7.0.6)是在去年11月发布的。
您可以等待发布或切换到主分支,方法是将Gemfile中的行更改为:
之后,您应该能够获得: