模型的复数形式

13

我有一个名为车辆(vehicle)的模型。

在我的翻译中,该模型必须为: vehicle => Fahrzeug vehicles => Fahrzeuge

我尝试将其设置在locales文件中,但它没有起作用:

  activerecord:
    models:
      vehicle: Fahrzeug
      vehicles: Fahrzeuge
3个回答

31

ActiveRecord首先使用默认值和I18n.translate翻译模型名称。

:count => 1

之后对此字符串进行复数处理时,不会考虑模型翻译。

但是,人类接受选项。

Vehicle.model_name.human(:count => 2)

与复数翻译一起使用可以解决问题:

de:
  activerecord:
    models:
      vehicle:
        one: 'Fahrzeug'
        other: 'Fahrzeuge'

1
由于不同的语言有不同的复数规则,查看这个表格可能会很有趣。 - martin
阿拉伯人在索引的标题中会使用什么?是“few”还是“many”?我不知道。但是你可以使用“:count=>8”表示“few”,或者使用“:count => 70”表示“many”。如果你知道数量,你可以将它传递给“human”。 - Martin M
应该有一个更加舒适的版本供用户使用。 - mzrnsh

0

不知何故,它仍将车辆翻译为“Fahrzeugs”。 - Mark
我能想到的唯一另一件事就是 "inflections.rb" 文件,但我不认为它会有帮助... - phoet

-1
你试过用other代替many吗?这个方法至少对我有效。我使用的是Rails 3.2.3。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接