为什么字符串“信息”不能复数?

时间:2018-02-19 16:56:27

标签: ruby-on-rails ruby-on-rails-5

在我的rails控制台中:

[10] pry> I18n.locale
=> :fr
[11] pry> "information".pluralize I18n.locale
=> "information"

这是我最终遇到问题的唯一一个词 我想在英语中,这个词是不可数的,但在法语中它不是。

我也尝试过以下的变形金刚:

inflect.plural /ion$/i, 'ions'
inflect.plural /information$/i, 'informations'

但没有区别。

1 个答案:

答案 0 :(得分:1)

  

为什么字符串“信息”不会多元化?

因为它是rails认为不可数的少数几个词之一(有趣的是,这个列表不包括其他正确的英语不可数,如“茶”)。

ActiveSupport::Inflector.inflections.uncountables
# => ["equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police"]

这个规则列表依赖于当前的语言环境(它在rails中是hardcoded),所以即使这个词在法语中是可数的,rails也不知道。< / p>

但是,覆盖规则有效:

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.plural 'information', 'informations'
end

# then
"information".pluralize # => "informations"