Multilingual Applications - Switching Languages
Posted
by Daniel Zuppinger
on June 19th, 1999
Environment: Windows NT 4, Windows 2000
The support for multiple languages within one application has always been a drag, for NT 4.0 and Window 2000 I have fond a simple solution. Unfortunatley this does not work for Windows 95 or 98 :-(
1. Add all the resources (dialogs, strings, menues etc.) in all of the desired languages in your project.
2. Add a menu, or language selection dialog in your project which calls the code shown below.
3. Thats it.
// switch language to german ::SetThreadLocal(MAKELCID(MAKELANGID(LANG_GERMAN,SUBLANG_DEFAULT),SORT_DEFAULT)); ... // or back to english ::SetThreadLocal(MAKELCID(MAKELANGID(LANG_ENGLISH,SUBLANG_DEFAULT),SORT_DEFAULT));

Comments
This API is not present in eMbedded VC++
Posted by Legacy on 08/07/2003 12:00amOriginally posted by: Amit Shinde
hi,
this api is not present in evc++ so how can i implement this functionality.
ReplyDon't you mean SetThreadLocale
Posted by Legacy on 05/29/2003 12:00amOriginally posted by: Will
Don't you mean SetThreadLocale instead of SetThreadLocal
It really bugs me when people don't post example projects.
SORT IT OUT you fool
ReplyEasy way for switching languages with DLLs
Posted by Legacy on 06/27/2001 12:00amOriginally posted by: Robin Holenweger
Hi
In my last project I was responsible for GUI development and NLS. I've found another way. The only disadvantage is, that you have to buy another software: a so called "localization tool".
What I did is to extract all resources into a DLL which can be loaded at runtime (on-the-fly). So it's possible to load any language specific resource DLL at any time to change the language. No modifications to other code than just unloading the current and loading the new DLL.
Advantages:
- you only have to make a resource change once, e.g. if you change a dialog, you don't have to do this change in all other languages. Just generate the new DLLs
- it's easy to give a text file or excel sheet to a translator and to use these files as a glossary to generate destination DLLs.
- often there exist the possibility in these tools to autotranslate
For those who don't want to buy another software: it's also possible to modify the DLLs with Visual Studio but then it's almost the same as in this article.
-
ReplyMultilingual application.
Posted by purish87 on 04/08/2009 02:18amYour solution is quite interesting. Can u provide any sample application for help? Is there any way to change the text of Afxmessagebox() using this?
ReplyMultilingual Applications - Switching Languages
Posted by Legacy on 12/16/1999 12:00amOriginally posted by: Peter Boenigk
Es will nicht funktionieren, haben Sie Bitte evtl. ein
ReplyProgrammbeispiel
Changing language in Windows 9x
Posted by Legacy on 06/22/1999 12:00amOriginally posted by: Pierre Couderc
Ok, it is impossible.
The way we have found is to change in the registry HKEY_USERS,".DEFAULT\\Control Panel\\Desktop\\ResourceLocale"
which is filled with a MAKELANGID()
Changed there, it seems to keep the new language after... a reboot of Win9x.
Reply