There many levels for the customization of programs.
First of course is making it speak your language by creating i18n messages where tools like gettext and xgettext do a great job.
Another comes when you need to modify the meaning of some messages to suite the purpose of your project.
The question is: is it possible to keep customized messages in a separate file in addition to the boilerplate translation and have the standard tools understand that customized messages take precedence?
This would help to keep those messages from being committed to the public repository and from being overwritten by the boilerplate text when upgrading.
edit: since not too many people care about localization I think it's appropriate to collect answers for any platform, however I'm at the moment interested to implement this python/django.