Вы можете добавить собственный перегиб для него. По умолчанию Rails добавит inflections.rb
к config/initializers
. Там можно добавить:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular "is", "are"
end
После этого вы сможете использовать pluralize(@total_users, "is")
, чтобы вернуться / использует те же правила, что и пользователь / пользователи.
РЕДАКТИРОВАТЬ : Вы уточнили вопрос о том, как сделать предложение множественным. Это гораздо сложнее сделать в общем, но если вы хотите сделать это, вам придется погрузиться в NLP .
Как следует из комментария, вы могли бы сделать что-то с I18n, если вы просто хотите сделать это с помощью нескольких предложений, вы можете построить что-то вроде этого:
def pluralize_sentence(count, i18n_id, plural_i18n_id = nil)
if count == 1
I18n.t(i18n_id, :count => count)
else
I18n.t(plural_i18n_id || (i18n_id + "_plural"), :count => count)
end
end
pluralize_sentence(@total_users, "user_count")
А в config/locales/en.yml
:
en:
user_count: "There is %{count} user."
user_count_plural: "There are %{count} users."