Improper use of ngettext
This followed by this does not do what you seem to think it does. The strings appear as two separate strings in the po files and translators don’t get a chance to implement their plural forms properly. Maybe removing the underscore function at the top solves the issue but I am not sure of that at all, one would have to test it. I somewhat see the appeal of grouping all strings like that, but it seems like a bad idea.