Multilingual Applications - Switching Languages

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
   // or back to english



  • This API is not present in eMbedded VC++

    Posted by Legacy on 08/07/2003 12:00am

    Originally posted by: Amit Shinde


    this api is not present in evc++ so how can i implement this functionality.

  • Don't you mean SetThreadLocale

    Posted by Legacy on 05/29/2003 12:00am

    Originally 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

  • Easy way for switching languages with DLLs

    Posted by Legacy on 06/27/2001 12:00am

    Originally posted by: Robin Holenweger


    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.
    - 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.

    • Multilingual application.

      Posted by purish87 on 04/08/2009 02:18am

      Your solution is quite interesting. Can u provide any sample application for help? Is there any way to change the text of Afxmessagebox() using this?

  • Multilingual Applications - Switching Languages

    Posted by Legacy on 12/16/1999 12:00am

    Originally posted by: Peter Boenigk

    Es will nicht funktionieren, haben Sie Bitte evtl. ein

  • Changing language in Windows 9x

    Posted by Legacy on 06/22/1999 12:00am

    Originally 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.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 23, 2015 The cloud is not just about a runtime platform for your projects – now, you can do your development in the cloud, too. Check out this webcast to learn how the cloud improves your development experience and team collaboration. Join Dana Singleterry, Principal Product Manager for Oracle Dev Tools, as he discusses how to simplify every aspect of the development lifecycle, including requirements gathering, version management, code reviews, build automation, and …

  • By providing developers with the right tools to detect, understand, and fix problems early, your business can simplify software development, shorten development lifecycles, and improve the quality of software code. The end result is increased innovation, secure applications, and a faster time to market — all at a lower cost.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date