我的语言环境是:de和我喜欢这个:
Sheet.model_name.human.pluralize # => Belegs
给我添加一个尾随“e”而不是“s”
Sheet.model_name.human.pluralize # => Belege
仅适用于Sheet-class。 我可以在config / locales / models / de.yml中以某种方式添加它吗?
答案 0 :(得分:53)
首先,您需要停止使用.pluralize
。它使用Inflector(主要用于Rails内部,例如为模型Sheet猜测表名 - >表)。
Sheet.model_name.human # => "Beleg"
"Beleg".pluralize # => "Belegs"
您应该使用:count
选项。
Sheet.model_name.human(:count => 2) # => "Belege"
这要求您修改了de.yml
:
de:
...
activerecord:
...
models:
sheet:
one: Beleg
other: Belege
答案 1 :(得分:13)
您可以通过以下方式覆盖复数:
在config/initializers/inflections.rb
做的:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'Beleg', 'Belege'
end
答案 2 :(得分:1)
如果您不喜欢明确的计数(例如2),您可以使用:many
,例如
Sheet.model_name.human(count => :many)
或没有哈希火箭(对于Ruby> = 1.9):
Sheet.model_name.human(count: :many)