Javadoc
Specialized translate class that handles parameterized messages.
Parameterized messages contain a catalogue and key like normal but
also add the ability for extra parameters to be added to the
message. These parameters are inserted into the final translated
string based upon the key's definition.
No one out side of this class should even know this class exists,
hence the privacy, but haveing two implementations allows us to
sepearete all the functionality for paramaterization into this
one place. Since most of the messages used are unparameterized
this is not wasted on them and is only invoked when needed. There
may be some performance increase by doing this but i doubt it is
of much consequence, instead the main reason is to be able to create
a new instance when messages are parameterized so that concurrent
threads do not step on each other.