Working on developing international applications myself, I'd say (assuming you have the source-code) that you should re-write some small parts of your code to ensure all strings are within a resource file or a language DLL and you replace all of your string initialisations with a call to retrieve a given enumerated string from there. Hot switching languages then becomes a case of switching between DLL's and is a damn sight easier (assuming you can re-initalise all of your user-interface components). I have a derived CString class that stops me from being lazy, since it must retrieve information from such a source. If you don't have the source code then your results, with the proposed solution, will be variable at best! Many strings are concatinated and decorated with information on the fly... automatic translation of these, especially where word order or tenses can change as the result of some other setting would make this very hard! Ray