问题描述
|
我的语言环境是:de,我喜欢这个:
Sheet.model_name.human.pluralize # => Belegs
给我加上尾随的\“ e \”而不是\“ s \”
Sheet.model_name.human.pluralize # => Belege
仅适用于图纸类。
我可以在我的config / locales / models / de.yml中添加它吗?
解决方法
首先,您需要停止使用
.pluralize
。它使用了Inflector(主要用于Rails内部,例如猜测模型Sheet-> sheets的表名)。
Sheet.model_name.human # => \"Beleg\"
\"Beleg\".pluralize # => \"Belegs\"
您应该做的是使用:count
选项。
Sheet.model_name.human(:count => 2) # => \"Belege\"
这就要求您对ѭ6进行如下修改:
de:
...
activerecord:
...
models:
sheet:
one: Beleg
other: Belege
, 您可以通过以下方式覆盖复数形式:
在config/initializers/inflections.rb
做:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular \'Beleg\',\'Belege\'
end
, 如果您不喜欢显式计数(例如2),则可以使用:many
,例如
Sheet.model_name.human(count => :many)
或没有哈希火箭(对于Ruby> = 1.9):
Sheet.model_name.human(count: :many)