I was about saying we can detect if the call is `ngettext` so we know which variable to replace, instead of replacing all, but that would mean adding further specific rules if needed.

I better like your solution, it is very elegant and generic.