Please suggest way other than maintaining different rc files.
In VC++ 2010 we can create multiple string tables of different language,yes, string tables are a good way to translate multi-language strings.
Now with help of SetDlgItemText we can put that text.that isn't a practicable way to translate dialog resources. it is error-prone and you have no visual feedback when creating the resource for the second language. note, some texts will get longer when translated or even have more lines. you would have to add string resources for any control and any language and make a visual test with your application for each little change.
As a client based software,our main rc file is also subject to change constantly so we cannot maintain so many rc files maintained constantlybut you can maintain hundreds of string id's instead and map each of them to a control id and dialog? you may see how much work it makes by creating a sample form.
if you have the first, you may add rc files where all text was translated to the new language.
then add a further rc file which can switch between the rc files:
Open in new window
in your project you would exclude both lang1.rc and lang2.rc from build and add lang.rc to the resource files.
finally add a new configuration to your project where you define OFFSHORE_LANG in the preprocessor macros.