Zero argument for pluralize text helper

I’m considering making a PR to add an optional “zero” argument to the pluralize text helper. This would allow you to set an alternative word for 0 (zero) when the count is zero. This is especially useful in cases where a more human “You have no bookmarks.” is preferred over “You have 0 bookmarks.”)

Since this would be a named parameter, I don’t think it would negatively affect any existing code.

pluralize(0, “bookmark”, zero: “no”)
=> “no bookmarks”


Here’s the code I have so far:

Is it worth making an official PR for this?

I believe you should use i18n for cases like this:

Also it’s enough to add a word ‘no’ before people in English, but that might not be enough for other languages where you need to add that word after ‘people’ or change the word ‘people’ in general.

I wonder how many Rails apps use i18n though. I personally never use it and it seems counter intuitive to use it just for cases like these.

I didn’t consider the proposed solution might not work for all languages. That’s a fair point. While it does work for the handful of languages I know, I can imagine there might be some (or a lot) it wouldn’t work for.

This doesn’t work for many languages, and only works for English if you format your copy to match (ex: “you don’t have any bookmarks” vs “you have no bookmarks”)

Daniel Heath