I was looking for missing use of gettext plural forms, which led me to
errdetail_busy_db().
While we can't do much about this:
errdetail("There are %d other session(s) and %d prepared transaction(s) using the database.",
notherbackends, npreparedxacts);
I think it's still worth pluralizing the other cases
errdetail("There are %d other session(s) using the database.",
notherbackends);
and
errdetail("There are %d prepared transaction(s) using the database.",
npreparedxacts);
Especially the "other sessions" case is probably the one most seen by users.
So I propose the attached patch.