Separation of messages from programs

It is necessary to keep messages separate from the programs and provide them in the form of message catalogs that a program can access at run time. It facilitates translations of messages into various languages and to make the translated messages available to the program based on a user's locale.