Bear with me as I'm not familiar with this part of the Sphinx codebase, but those messages look to me more like internal messages rather than anything an end-user would see. A quick inspection of the code that calls this function (add_refcount_annotations), suggests to me those results are ignored anyway (e.g. sphinx/environment.py: app.emit('doctree-read' ...).
Why do you want (or need?) these specific messages to be translatable?
Great! I stand educated. As is often the case, I should have run the code first, rather than trying to read it alone.
I'll suggest a minor change below: rather than use two-ifs, do it in one if-elif-else branch. This elides the need to build the string in two parts, only calls gettext once, and also makes plainer the final structure of message.
Either way, @Takayuki Shimizukawa, you will probably have a greater interaction with this than myself. I'll step out of this conversation.