在我的rails控制台中:
[10] pry> I18n.locale
=> :fr
[11] pry> "information".pluralize I18n.locale
=> "information"
这是我最终遇到问题的唯一一个词 我想在英语中,这个词是不可数的,但在法语中它不是。
我也尝试过以下的变形金刚:
inflect.plural /ion$/i, 'ions'
inflect.plural /information$/i, 'informations'
但没有区别。
答案 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"