OTOH, maybe we can go for database based solution like some PHP CMS I
seen?
This is, maybe, more user-friendlier way?
Good thing is that users can change messages within admin interface,
no need for external software on the server (for online editing of
translations) and all apps can have own message tables
Bad thing is that this solution requires more changes in django core
than gettext one, and requires adding admin interface for changing
messages, importing and exporting messages from/to external files
(probably import/export to gettext .po format).
For all that to work admin view, validators, etc. must be changed to
use some gettext-like function to get messages, and core must ensure
that all locale tables exists before going into request.
All message access must be cached to reduce load to database.
I have send example implementation in django-users some days ago.
I'm working on booth solutions, because I'm must have user changeable
messages for current project I'm working on.