Thread:User talk:CodeCat/Category:head tracking/singular category/reply (4)

The way I see it, it makes more sense if the second parameter is treated as just the first in the series of category parameters. This is especially so if there is no  parameter, but only. There was actually a  parameter before, but I removed it as it wasn't used in many places and with some adjustments it could be omitted.

Another important reason is that templates can never perfectly predict what the plural of any given bit of text is going to be. Long ago, and similar templates (the ones we just merged into it) used to take their second parameter just like, in singular, presumably to match it and make it intuitively easier. But that led to an increasing number of words that all had to be added to (which did the pluralisation), which was a pain and in some cases it didn't even make any sense to speak of a singular. For example, think of what we might have done in the case of Category:English terms by etymology; would we have used "term by etymology" as the singular? That wouldn't have made any sense, and so at the time I think I made the (fairly unilateral, if I remember) decision to make the parameter already pluralised, so that it could be used as the category name verbatim.

The same reasoning applies here. Pluralising automatically is always going to lead to problems and exceptions; Module:headword/templates already has a list of words that should not be pluralised in the regular way. There are probably also terms that don't allow themselves to be de-pluralised in a sensible way, like the example above. By making this change, I am hoping to simply the template/module logic and make the process more straightforward: what you type is what appears in the category name. That would eliminate the need for strange workarounds like the list of exceptions and, in the past, the  parameter.

And finally, there is the argument of consistency with. This template originally pluralised its parameter because did. Now that it no longer does, we might as well make match it once again, by taking the parameter verbatim as well.